The Data Acquisition Systems Overview blog post by Louis Chouinard briefly introduced all the parts of a complete DAQ system. In this blog post, I will discuss different types of data that can be exchanged between the host computer and the acquisition and processing section of the system. I will also expose the different types of connections available, and the different links provided by Nutaq’s software tools for communicating between the remote or embedded host computer and the acquisition and processing sections of the system.
Types of Data That Can Be Exchanged in the System
In a DAQ system, the data that can be exchanged between the host computer and the acquisition and processing section is of two different types.
Control data includes:
- data destined for the acquisition sub-section (to properly initialize ADCs, for example).
- data destined for the processing sub-section to configure the parameters of the algorithms being used during the initialization of the system or even at run time.
Acquisition data includes:
- data temporarily stored inside the acquisition sub-system destined to be post-processed on the host computer. Usually this type of data represents a small time window after an event.
- data streamed from the acquisition sub-system in real time and stored on media connected to the host computer, such as a solid-state disk.
Most systems will include both types of control data and one type of acquisition data. The type of acquisition data exchanged with the host computer is highly dependent on the throughput required and the amount of data to be stored. For more information on the different recording solutions available for Nutaq’s data acquisition systems, read our blog post entitled Nutaq’s Data Recording Solutions For FPGA-Based Data Acquisition Systems.
Communication Architecture in Data Acquisition Systems from Nutaq
Below is a diagram representing a typical data acquisition system based on Nutaq’s hardware. The three major sub-systems presented are (from left to right):
Let’s take a closer look at the available ways to control Perseus-based data acquisition systems. Depicted on the diagram above are two distinct types of host computer: a remote host and an embedded host. Typically, a remote host is either a PC or a laptop and an embedded host is an AMC CPU that resides in the same chassis as the Perseus it communicates with.
There are currently two distinct ways of controlling a DAQ system based on a Perseus AMC from a host computer. Either you create and execute a host application, or you use the command line interface (CLI) to send commands to the Perseus from a command prompt or using a batch file. Both these methods interface with the external API (EAPI), which sends the generated control data to the Perseus through one of the two available communication links, either gigabit Ethernet (GigE) or PCI Express (PCIe).
The control data sent through GigE or PCIe is received on the Perseus by the Central Communication Engine (CCE) which runs on an emulated processor inside the FPGA called the MicroBlaze. The CCE interprets the commands it receives and takes the corresponding actions, which could range from configuring a gain for a data channel of an attached FMC to programming an RTDEx communication channel for streaming acquisitioned data to the host computer.
The type of data that can be exchanged between a host computer and the processing and acquisition sub-system of a DAQ system is of two distinct natures: control data or acquisition data. This data has to be transferred using a general communication protocol. Nutaq supports two of these communication protocols, PCI Express and gigabit Ethernet, in its software tools. Modules like the EAPI and the CCE handle the transfer of control and acquisition data.