Supported Hardware: Difference between revisions

From MidasWiki
Jump to navigation Jump to search
No edit summary
 
(31 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Over the last 20 years, the hardware used for physics experiment did evolved from CAMAC or FastBus to VME and more recently Network devices gathering data from custome FPGAs acquisition boards.
{{Pagelinks}}
The Midas '''drivers''' directory will reflect this evolution as you will find sub-directories specific to each of these hardware family.
 
Obviously not all Models for a given category are present, but similarity between their operations may provide you a good starting point for a particular driver development.
Over the last 20 years, the hardware used for physics experiment evolved from CAMAC or FastBus to VME and more recently to Network devices gathering data from custom FPGAs acquisition boards. Obviously not all models for a given category are present, but similarity between their operations may provide you a good starting point for a particular driver development.
Find out what type of hardware is currently supported in [https://bitbucket.org/tmidas/midas/src/93fa5ed4a40df94d4241e4a1910e44d1c5c8b866/drivers/?at=develop the Midas Git Repository /Drivers]


=== CAMAC ===   
=== CAMAC ===   
Even though CAMAC is not much used any more, when simple test need to be setup and old equipment can be found, it can provide a quick solution to a usually
Even though CAMAC is no longer very much used, when a simple test needs to be done and old equipment are still available and functional, CAMAC can provide a quick solution to an otherwise heavy or cumbersome DAQ system.
cumbersome system.
Recent USB/CAMAC interfaces can be attractive as they provide '''fast CAMAC cycle''' (data collection through preloaded CAMAC list) but not necessarily fully supported anymore. ISA-CAMAC interfaces are definitively gone and PCI-CAMAC can still be found in our lab. If CAMAC is to be used to old CAMAC board availability, CAMAC-Ethernet is the best solution now-a-days. Some vendors are still providing such interface but we did our own using commercial ARM-based cards.
Recent USB/CAMAC interface is quite attractive as they provide '''fast CAMAC cycle''', data collection through preloaded CAMAC list and shelf permanently the old ISA or PCI interfaces that newer hardware can't support anymore.  
 
=== FastBus ===
=== FastBus ===
This hardware was accessed through VME. Modules are obsolete.
This hardware was accessed through VME. Modules are now obsolete.


=== VME ===
=== VME ===
VME is still widely used and various type of VME interfaces can be found such as: VME processors, USB link, Optical link to PCIe card, Network based interfaces. '''BS Bit3 617''', '''SIS3100''' interfaces, '''VMIC''' and '''VxWorks''' processors are the main DAQ platform used with Midas.
VME is still widely used and various type of VME interfaces can be found. The more common interfaces are supported by Midas, such as: VME processors, USB device, Optical link to PCIe card, Network based interfaces, SIS3100 PCIe interfaces, or VME processors for more demanding VME requirements.
 
It's worth mentioning that manufacturers of commercial VME modules are using the VME crate housing for power distribution and provide access to their device using propitiatory links (such as optical) to improve the data transfer rate. This configuration requires a dedicated PCIe interface sitting in a PC. The VME access remains available in all cases but requires a VME controller.


=== USB ===
=== Serial communication ===
RS232, USB communication are sometime necessary. Network interface devices to these type of serial interfaces are getting popular by providing a common programming layer independent of the hardware communication. Similarly, software layer such as ser2net will bridge serial devices connected to a PC to a remote network application for communication.


=== Firmware layer ===
The readout of specific detector type (Si-, light-, gas-based) and the particular geometry or implementation may require dedicated hardware interfaces. The density of channel to gather as well as the physical data path is to be carefully considered. The tendency is to locally aggregate multiple channel information to reduce the physical connections and increase the data throughput using faster data communication protocol. Midas has been used in such setup where firmware package the data in a know format such that the Frontend section resides in the FPGA firmware. Such a code is not generic and needs to be developed case by case.


=== Software layers ===
=== Software layers ===
Midas includes support for the so called "slow control hardware" a multi-layer concept based on the Object-Oriented programming. It is composed of 3 layers (3 directories)
* ''Class/'' describes the main functionality of the device
** High Voltage devices provides similar functionality across the different brand, ex:class/hv.c will implement the user/Midas(ODB) interface and call the appropriate function for that device through the device layer.
* ''Device/'' describes the functionality implementation for that particular device.
** Depending on the device hardware, the requested function may involve a specific access sequence. The ex:device/lrs4420.c will format that transaction and call the appropriate communication function implemented into by this device
* ''Bus/'' describes the access specific to the device.
** Serial, parallel, GPIB, Ethernet or proprietary communication to the device. The ex:bus/rs232.h will package the request into the appropriate form to be delivered to the device.
''Note:'' not all the device drivers implement the triple layer (Class, Device, Bus) as some include the hardware calls directly from the device layer. 


==== Class ====
See [[Slow Control System]] for more details.
==== Device ====
==== Bus ====
The software layers sections are used in particular for Slow Control System. Example are available in the distribution under '''examples/slowcont/frontend.c''' including the ''hv'' and ''multi'' class with the ''nulldev'' device and ''null'' bus driver.  


Note: not all the device drivers implement the triple layer (Class, Device, Bus) as some include the hardware calls directly from the device layer.
[[Category:Appendices]] [[Category:Driver]]

Latest revision as of 12:23, 10 September 2015


Over the last 20 years, the hardware used for physics experiment evolved from CAMAC or FastBus to VME and more recently to Network devices gathering data from custom FPGAs acquisition boards. Obviously not all models for a given category are present, but similarity between their operations may provide you a good starting point for a particular driver development. Find out what type of hardware is currently supported in the Midas Git Repository /Drivers

CAMAC

Even though CAMAC is no longer very much used, when a simple test needs to be done and old equipment are still available and functional, CAMAC can provide a quick solution to an otherwise heavy or cumbersome DAQ system. Recent USB/CAMAC interfaces can be attractive as they provide fast CAMAC cycle (data collection through preloaded CAMAC list) but not necessarily fully supported anymore. ISA-CAMAC interfaces are definitively gone and PCI-CAMAC can still be found in our lab. If CAMAC is to be used to old CAMAC board availability, CAMAC-Ethernet is the best solution now-a-days. Some vendors are still providing such interface but we did our own using commercial ARM-based cards.

FastBus

This hardware was accessed through VME. Modules are now obsolete.

VME

VME is still widely used and various type of VME interfaces can be found. The more common interfaces are supported by Midas, such as: VME processors, USB device, Optical link to PCIe card, Network based interfaces, SIS3100 PCIe interfaces, or VME processors for more demanding VME requirements.

It's worth mentioning that manufacturers of commercial VME modules are using the VME crate housing for power distribution and provide access to their device using propitiatory links (such as optical) to improve the data transfer rate. This configuration requires a dedicated PCIe interface sitting in a PC. The VME access remains available in all cases but requires a VME controller.

Serial communication

RS232, USB communication are sometime necessary. Network interface devices to these type of serial interfaces are getting popular by providing a common programming layer independent of the hardware communication. Similarly, software layer such as ser2net will bridge serial devices connected to a PC to a remote network application for communication.

Firmware layer

The readout of specific detector type (Si-, light-, gas-based) and the particular geometry or implementation may require dedicated hardware interfaces. The density of channel to gather as well as the physical data path is to be carefully considered. The tendency is to locally aggregate multiple channel information to reduce the physical connections and increase the data throughput using faster data communication protocol. Midas has been used in such setup where firmware package the data in a know format such that the Frontend section resides in the FPGA firmware. Such a code is not generic and needs to be developed case by case.

Software layers

Midas includes support for the so called "slow control hardware" a multi-layer concept based on the Object-Oriented programming. It is composed of 3 layers (3 directories)

  • Class/ describes the main functionality of the device
    • High Voltage devices provides similar functionality across the different brand, ex:class/hv.c will implement the user/Midas(ODB) interface and call the appropriate function for that device through the device layer.
  • Device/ describes the functionality implementation for that particular device.
    • Depending on the device hardware, the requested function may involve a specific access sequence. The ex:device/lrs4420.c will format that transaction and call the appropriate communication function implemented into by this device
  • Bus/ describes the access specific to the device.
    • Serial, parallel, GPIB, Ethernet or proprietary communication to the device. The ex:bus/rs232.h will package the request into the appropriate form to be delivered to the device.

Note: not all the device drivers implement the triple layer (Class, Device, Bus) as some include the hardware calls directly from the device layer.

See Slow Control System for more details.