Since the introduction of the PCI bus in 1993, the adoption and use of PC-based data acquisition technologies have grown to an all-time high with more than 1 million NI data acquisition devices sold this decade. The trend in all PC peripheral devices for several years has been toward external buses, including USB, Ethernet, and wireless. With more than 2 billion ports around the world (usb.org), USB has radically changed the data acquisition landscape – more and more engineers now prefer to build a data acquisition system based on the external, portable, and easy-to-use USB bus. Ethernet offers an alternative to USB when longer cable lengths are required. Wireless overcomes the sometimes logistical and often physical barriers common to both USB and Ethernet for data acquisition by removing the need for a cable altogether. As experienced by early adopters of USB, Ethernet, and wireless test, measurement, and control products, a performance gap exists between the external devices and their PCI counterparts.
This performance gap between internal buses, such as PCI and PCI Express, and external data acquisition products is not caused by the inability to place high-performance components on external data acquisition devices but by the nature of the bus itself. USB, Ethernet, and wireless all exhibit lower bandwidth, longer latency, and, typically, host-initiated data transfers. Because of these challenges, early portable and remote DAQ applications were limited to data storage, basic data acquisition, and as a replacement for GPIB and serial in instrument control.
To optimize these external interfaces and deliver high-performance data acquisition, National Instruments developed patented NI Signal Streaming technology. NI Signal Streaming combines three innovative hardware- and software-level design elements to enable sustained high-speed and bidirectional data streams. This new technology helps engineers achieve high-performance applications on external PC buses, which previously was possible only on an internal bus such as PCI.
2. Challenges of External Buses for Data Acquisition
The 60 MB/s and 125 MB/s theoretical bandwidths of Hi-Speed USB and Gigabit Ethernet, respectively, suffice for most data acquisition applications. However, existing USB and Ethernet data acquisition hardware and software designs are unable to take advantage of the provided bandwidth. Data acquisition often involves multiple I/O tasks such as analog input, analog output, digital input, and digital output as well as multiple counter/timers. To operate all of these tasks simultaneously, a data acquisition device must process multiple streams at the same time and be able to quickly move data to and from PC memory. PCI and PCI Express are ideal for data acquisition designs because these buses provide high bandwidth, low latency, bus mastering, and DMA channels to stream data directly to PC memory. USB and other external buses are often viewed as lower-performance because they lack the bandwidth and latency specifications of internal buses.
Unlike PCI designs, USB, Ethernet, and wireless data acquisition devices are limited by a host-driven protocol with no DMA channels. The OS must initiate any request to transfer data to or from the device. This adds significant overhead to data transfers because devices are no longer able to take control of the bus and transfer data without CPU interaction. Additionally, data moving to or from the device to PC memory is controlled by the computer processor, which adds significant communication overhead.
In the past, data acquisition designers had two options to address these limitations – compensate for them or ignore them. Designers compensated for the limitations by installing large amounts of expensive memory on the devices. The additional memory provided a place for the data to reside on the device before the CPU could process the appropriate instructions to retrieve the data. While this may have helped to alleviate buffer overflows for a limited amount of time, the device latency increased because data ended up stored in large stacks of memory in an unusable location. Ignoring the limitations often meant designing data acquisition devices capable of only one type of high-speed I/O task (in other words, clocked analog inputs combined with static analog outputs and digital I/O on a device). These solutions were not ideal because they made devices increasingly more expensive while still prohibiting performance similar to that of PCI-based designs.
NI Signal Streaming technology takes a different approach to handling the concerns by enabling sustained high-speed and bidirectional data streams over USB, Ethernet, and wireless. Before explaining NI Signal Streaming, it is important to review USB communication and legacy USB data acquisition designs.
3. USB Communication Overview
USB, a serial protocol that transfers data such as addresses, requests, and confirmations in packets, shares available bandwidth across all devices present. USB systems incorporate three components – the host (typically a PC or laptop), a USB device, and the USB cable. The USB host initiates all data transfers to a USB device, thus requiring the transmission of three or more packets for a simple transaction – host request, data transfer, and host confirmation.
Information is sent to and from a USB device through its endpoints. An endpoint is equivalent to a gate through which all data must pass to get on or off the USB device. Endpoints can transfer data in only one direction, requiring devices to have multiple endpoints to achieve both input and output functions. Data is transferred to or from the device endpoints to the host controller using four basic types of transfers, one for USB bus control and three others for data transfer:
- Interrupt data transfer provides low-volume data with timely and reliable data transfers; often used for a peripheral device such as a keyboard or mouse.
- Isochronous data transfer uses prenegotiated bandwidth with possible data loss; often used when on-time data delivery is more important than data accuracy, such as streaming audio and video.
- Bulk data transfer delivers large data transfers with no loss of data; often used for applications where lots of data must be transferred with no loss of data such as external hard drives.
With built-in error checking and large data transfer capabilities, bulk data transfer is the logical choice for USB data acquisition. But in practice, bulk transfers can achieve fast performance when only a single stream of data is sent through the USB port. Any additional streams can considerably reduce transfer rates, especially if the transfers are bidirectional.
4. Traditional Approach
Three technical issues contribute to the inability of USB, Ethernet, and other external buses to meet throughput and latency expectations for high-performance data acquisition. The first issue is the inefficient use of a processor for data management. For example, the current standard for data management between the data acquisition front end and USB endpoints, as seen in Figure 1, is a slow, commercial off-the-shelf (COTS) processor. Its purpose is to divert the appropriate information to each USB endpoint. Compared to a custom design, it is an inexpensive solution with a fairly easy implementation.
Figure 1. Traditional USB data acquisition devices rely on processor resources as tasks are added.
These processors are instruction-based, single-threaded pieces of silicon that create a switch-like behavior. Only able to run a single instruction at any given time, they are the bottleneck of all typical external data acquisition devices. Any higher-priority tasks, such as handling control requests from the host, may delay the processor in handling data transfers, causing low throughputs and possible buffer underflow/overflow errors. Due to its architecture, a processor cannot simultaneously manage several data streams and handle incoming control requests, making high-performance data acquisition impossible. In other words, an external device cannot achieve the PCI DMA-like performance of streaming multiple I/O types simultaneously.
Another issue is latency. Latency is defined as the time delay between initiating a request for data and the beginning of actual data transfer. External buses will likely always have higher latency than PCI. A typical single-point voltage acquisition could require dozens of register-level instructions, which, when multiplied by 1 ms of latency, is unacceptable.
Finally, there is a trade-off between data throughput and latency. To have a fast data throughput rate, you need to move larger data sets at every transfer. Doing so reduces the responsiveness of the system and increases system latency, thus leaving the device unresponsive during each large transfer.
What is truly needed is a data transfer method that uses both the streaming capabilities of isochronous data transfers and the 100 percent error-free transfer of bulk. To address these needs, National Instruments created an innovative patented data streaming technology – NI Signal Streaming.
5. NI Signal Streaming Approach to USB, Ethernet, and Wireless DAQ
NI implemented three main design improvements with NI Signal Streaming – the ability to quickly transfer large data sets through USB, optimized message-based instructions, and increased responsiveness through added intelligence on the external device.
Fast Data Transfers
There are two requirements for transferring large amounts of data quickly over an external peripheral bus. First, because USB and Ethernet are host-initiated communication protocols, the software driver needs to relentlessly send data requests in quick succession. Then, on the device side, data needs to be made available as fast as possible to fulfill the rapid incoming host requests.
On the host side, NI-DAQmx driver software actively ensures a continuous supply of data requests. The requests are queued and ready to be sent from the host even as it is receiving and processing incoming data from the device for the user.
On the device side, NI Signal Streaming avoids processor-based switch-like behavior by using the NI-STC3 technology, which contains a custom controller that concurrently runs multiple tasks and maps data streams directly to endpoints, as seen in Figure 3. NI Signal Streaming works with the NI-STC2 or NI-STC3 system timing controller to deliver four or seven onboard, high-speed DMA channels directly into the associated endpoints. This frees resources for the processor to work on other tasks, such as message translation. Onboard DMA transfers ensure that data is always ready to be read or written at the endpoints. The release of NI-STC3 technology expanded the number of simultaneous streams to seven, so data acquisition systems built on this NI technology can perform up to seven parallel, hardware-timed operations.
Figure 2. NI Signal Streaming technology enables parallel streaming of data from multiple tasks with minimal processor involvement.
As discussed earlier, external buses have higher latency than internal buses. This delay is amplified when a single-point voltage measurement requires the transmission of several dozen register-level commands. NI Signal Streaming provides message-based communication to avoid lengthy transmissions – the host needs to send only a single, high-level message such as “acquire.commit” through the bus. The device processor then converts the message into the dozens of register-level commands that are necessary to properly set up the system timing controller.
Figure 3. Using message-based instructions avoids dozens of register-level commands.
Device-Side Communication Intelligence
Finally, NI Signal Streaming resolves the trade-off between data throughput and latency. For fast throughput, large data sets are continuously transferred, leaving an immediate request for a smaller data set impossible to fulfill. For traditional external data acquisition devices, the host waits for a large data transfer to complete before it releases any data to the user.
For devices with NI Signal Streaming, added intelligence on the device allows it to prematurely stop large data set transfers and send an early completion notification to the host without compromising data integrity. This means the device can respond faster to requests and send smaller sets of data when needed.
6. High-Performance DAQ on USB
Faster data transfers and message-based instructions contribute to higher data throughputs while the additional device-side intelligence combined with message-based instructions contribute to lower latencies. These enable a single-point acquisition performance increase of up to 1,600 percent for analog input and up to 250 percent for analog output.
Figure 4. Single-Point Analog Input and Analog Output Performance Chart
Using new NI USB data acquisition (DAQ) designs that integrate NI Signal Streaming technology with Hi-Speed USB, National Instruments can leverage USB as a high-performance bus for its industry-leading NI X Series and NI CompactDAQ devices. USB X Series devices provide integrated signal connectivity and are able to sustain bidirectional data transfers of up to 32 MB/s (system dependent).
NI CompactDAQ is a scalable data acquisition system with integrated signal conditioning and hot-swappable C Series modules. Both platforms also include other industry-leading NI technologies developed for high-performance and high-precision data acquisition. All USB DAQ devices with NI Signal Streaming feature four or seven DMA-like channels, capable of streaming up to four or seven high-speed operations simultaneously across USB.
Figure 5. NI Industry-Leading USB Data Acquisition Devices: NI CompactDAQ and NI X Series
USB, Ethernet, and wireless have evolved from low-speed peripheral buses for accessories to high-speed buses capable of satisfying data-intensive applications. NI Signal Streaming, combined with the error correction, noise rejection, power management, and power distribution inherent to the USB protocol, yields a robust, secure, and reliable USB bus for use in measurement and control products.
With the introduction of NI Signal Streaming technology, USB devices now rival the performance you typically expect from plug-in buses. By addressing performance concerns with fast data transfers, reduced communication overhead, and increased device responsiveness, NI Signal Streaming is a necessary technology for any USB data acquisition device. Whether streaming multiple measurement types in the megahertz range or logging sensor data at several hertz, NI Signal Streaming provides the performance required for USB data acquisition applications.
Want to learn more about the advanced capabilities of NI USB products?
Download the High-Performance USB E-Kit now.