Integration of embedded single board computers into an object-oriented software bus DAQ application

The integration of Linux-based single board computers (SBC) into data acquisition systems is often complex and requires large amounts of custom software resulting in non-reusable applications. Extending the concepts of the ‘object-oriented software bus’ to include single board computers results in a system where the SBC code is dynamically managed, loaded, compiled, and launched by a remote application (ORCA - Object-oriented Real-time Control and Acquisition) that makes it easy to support diverse sets of hardware (i.e. VME, compact-PCI, etc.). In ORCA, the SBC code is separated into two parts. One part is general and implements the low-level communication protocol, the socket connection, and data transfer via circular buffer. The other part is specific and contains small amounts of custom code for each type of hardware. At run-time the SBC code is dynamically assembled into a download package that is transferred to the SBC, compiled, and started. A data structure defining the hardware readout order is also downloaded. The use of SBCs with VME and CompactPCI hardware is discussed. It is shown how the combination of an SBC and ORCA results in a dynamically configurable data acquisition system.