Test and measurement engineers have seen a succession of instrumentation buses, from the venerable general-purpose instrument bus (IEEE 488) to the Universal Serial Bus (USB). Advertisements in engineering magazines show a wide array of USB data-acquisition boxes, as well as complete bench instruments, such as oscilloscopes and signal generators, that can connect to a host PC’s USB port.
In the early days of USB development, instrument manufacturers and software vendors had to work with available “classes” of USB devices such as printer, video and mass-storage devices. It didn’t take long for instrument manufacturers to realize a simple USB cable and driver software could take the place of a thick expensive IEEE-488 cable and provide more efficient communication capabilities.
About five years ago, the USB Implementers Forum (USB IF) created an application-specific class that includes test-and-measurement devices, often called the USB Test and Measurement Class or USBTMC, that covers:
-
Analog converters, sensors and transducers,
-
Instruments that use IEEE 488 messages to communicate and
-
Sub-addressable components such as instrument cards in other systems.
Test-system developers need not fear the USBTMC specs, which can look overwhelming. If developers already use software that communicates over the IEEE 488 bus, they will find a lot of driver support that lets them continue to use their IEEE 488 commands. Starting with v3.0, National Instruments’ NI-VISA software supports USB communications. VISA stands for Virtual Instrument Software Architecture and it provides a standardized “layer” of software between applications and instruments. So, you could use NI’s VISA drivers to send IEEE 488 commands to instruments through a USB port.
NI’s VISA drivers support INSTR-class and RAW-class USB devices. The INSTR-class works with instruments that comply with the USBTMC standards. Thus, a host PC running the VISA drivers can control a remote USBTMC instrument. The controller can send the slave an IEEE 488 command and expect an IEEE-488-type response. Application software “thinks” it still talks with a standard IEEE 488 device.
RAW-class devices do not comply with the USBTMC standard, so you must rely on information from the device vendors to establish USB communications through VISA drivers. One downside of using a USBTMC device with a VISA driver is that you will need a driver for each device. Although VISA drivers run under various operating systems and with many communication interfaces, they’re specific for one instrument.
USBTMC-compatible instruments, simple USB connections and VISA drivers seem to offer a plug-and-play nirvana. But if you dig a bit deeper, you’ll find many forums and FAQs that list questions (and some answers) about using USB as an instrument bus. So, even “simple” USB instruments have hit a few implementation bumps.