A common belief among engineers is
that, to get the best performance, a PC-based
data acquisition module must
plug into the PCI bus. Properly
implemented, however, a data
acquisition module can use the PC’s
USB 2.0 port to pump data into a PC as
fast as PCI-based cards. The keys to
achieving this performance are a
hardware USB interface on the module
and optimized driver software for the
host system.
Because the Universal Serial Bus (USB) was originally developed to replace lowspeed
peripheral cabling, many engineers fail to see its potential as a highperformance
data acquisition channel. The original USB specification did offer
only a modest bit rate, but USB 2.0 handles 480 Mbits/sec, fast enough to handle
60 Mbyte/sec data streams. Even with the protocol reserving some bandwidth for
interrupts and control transfers, and the header overhead on data packets, the
bus can easily sustain more than 10 Mbytes/sec of continual data transfer. This
is fast enough to support extremely high performance data acquisition (DAQ)
hardware.
Utilizing the USB as a data portal provides many advantages for data acquisition
(DAQ). For one, the external connector and plug-and-play software installation
of USB peripherals means that users do not have to open their PC, then set-up
and configure the hardware in order to begin acquiring data. The USB-based
DAQ module sets itself up upon installation. Addressing and other potential
resource utilization conflicts resolve automatically.
Software for handling the data also becomes simpler to implement. The host
system USB drivers separate data streams into logical channels called pipes.
This means that the host system software will automatically form a logical
connection from a DAQ channel to a destination within the application software,
simplifying software and hardware set-up. Applications simply need to identify the
logical pipe they wish to connect with and the system software ensures that data details of peripheral addressing, interrupt placement, or other installationdependent
parameters as it must for PCI plug-in cards.
The USB also has electronic advantages. The bus can power the peripheral
(within limits) so that the DAQ system does not need its own power source. This
further eases system installation and use and has the added benefit of removing
the sensitive A/D converters and amplifiers from the electrically noisy
environment inside the PC’s housing. Unlike PCI plug-in cards, a USB-based
DAQ module is easily shielded for achieving high bit-level resolution.
The benefits of USB operation are compelling for a DAQ system, but
implementing the system does require care in order to ensure a high-bandwidth
connection. Engineers often assume that high data-rate systems should use the
USB data transfer mode with the highest raw bandwidth and least overhead
penalty: isochronous transfer. But isochronous transfers are a best-effort
channel. Data that suffers from errors cannot be resent.
The proper mode to use for DAQ on USB is the bulk transfer mode (see Figure
1). This mode supports the resending of corrupted packets, ensuring data
accuracy, and allows fairly large 512-byte blocks, keeping overhead effects down.
The drawback is that bulk transfers do not have guaranteed timing. The USB
host controller assigns bandwidth for bulk transfers but reserves priority for
interrupt and control transfers. Thus, the bandwidth obtained by using bulk
transfers is an average not a sustained data rate while the DAQ module needs
to send data at a constant speed.
Figure 1. Bulk transfer mode guarantees data accuracy.
There are two approaches to dealing with the uncertainty in the instantaneous
bandwidth available for bulk transfers. One is to keep the data rate low in order to
maximize the likelihood that bandwidth available will always exceed the DAQ
module’s data rate. This is the simpler approach, but results in severe
underutilization of USB’s potential.
The alternative approach is for the DAQ module to incorporate FIFO buffering to
hold data while waiting for the bus to become available. Dual buffers are needed
in the module one to fill while the other is emptying. The larger the buffers, the
more tolerant the module becomes of shifting bandwidth availability and the
closer its data rate can approach the average bandwidth available.
In addition to the FIFO buffering on the DAQ module, the software drivers should
allocate buffer space in the host system at the receiving end. This decouples the
host system’s data processing activity from the data acquisition so that neither
activity can delay or impede the other’s performance.
While FIFO buffering maximizes the DAQ module’s ability to utilize the available
bulk transfer bandwidth, however, it is not the only way to improve the achievable
speed on the USB. The module’s USB interface hardware and latency in the host
controller software can seriously constrain achievable USB data rates if not
implemented with high performance in mind. For the interface hardware, using a
state-machine hardware controller optimized for 512-byte transfers (the largest
bulk transfer packet) produces a much faster interface than the use of a
software-dependent USB microcontroller.
On the host side, careful driver design can reduce latency by speeding the host
system’s response to incoming USB data. The traditional Windows drivers
allocate buffer space in response to an incoming USB transfer, taking many
milliseconds getting ready to receive data once the DAQ module declares data
ready to send. Drivers that are proactive instead of reactive, pre-allocating buffer
spaces of the right size can decrease host latency by an order of magnitude.
These are not simply theoretical suggestions. Experience has shown that the USB can provide reliable, sustainable data rates as great as 10.9 Mbytes/sec, corresponding to sample
rates of 5.45M samples/sec. The potential exists to take USB-based data
acquisition to even higher levels with additional buffering and driver optimization. But a high data rate is not all that is required of a high-performance DAQ module.
Issues such as accuracy, aperture uncertainty, and noise levels are equally
important. Further, the inclusion of additional capabilities such as digital I/O lines,
counter/timers, analog outputs, and quadrature encoders can greatly increase
the utility of a DAQ module.
Figure 2. The block diagram above illustrates the overall design features for the
Simultaneous Series of USB modules. Note the 500V isolation barrier used to protect the
measurement signals from noise spikes.
Accuracy also involves timing, however, especially in a multi-channel DAQ
module. In order to properly compare and correlate sampled signals it is
important to know the relative timing of samples from one channel to the next.
Most DAQ systems use a single A/D converter with a multiplexer front-end to
handle multiple channels. This results in each channel’s signal being sampled at
a different time, forcing the use of interpolation to bring the signal data into
temporal alignment and resulting in relative timing errors or phase noise. Ideally,
the samples for all channels should be made simultaneously to eliminate phase
noise.
With sample rate, bit accuracy, and timing accuracy at high levels, the availability
of additional features is simply a performance bonus. The Simultaneous Series
offer these extras, as shown in Figure 2. Each module includes two 16-bit D/A
channels, 16 digital output channels, 16 digital input channels, two 32-bit counter
timers, and 3 quadrature encoders. The additional digital I/O lines provide
considerable flexibility for incorporating functions such as time stamping, pattern
recognition, and synchronization with external events. The counter/timers offer a
convenient means of triggering test events while the quadrature decoders
simplify the use of the module with X/Y positioning and rotation.
Supporting these additional signal lines means that the data channel must be fast
enough to handle the additional signal and control bits without impacting the
module’s sampling rate. The USB is fast enough. It has proven that it can provide
the needed capacity, and offers significant ease-of-use benefits. There is no
longer a need to pry open a PC to assemble a high-performance DAQ system.
Simply plug one in to the USB port.