Supported Hardware

From MidasWiki
Jump to navigation Jump to search

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. 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.

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 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 and shelf permanently the old ISA or PCI interfaces that newer hardware can't support anymore anyway.

FastBus

This hardware was accessed through VME. Modules are obsolete.

VME

VME is still widely used and various type of VME interfaces can be found such as: VME processors, USB device, Optical link to PCIe card, Network based interfaces.

SIS3100 PCIe interfaces and VMIC processors for more demanding VME requirements are the usual interface which Midas supports.

USB

Software layers

Midas includes for the so called "slow control hardware" a multi-layer concept based on the Object-Oriented programming for accessing it. 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 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.