USB serial / USBTMC
In 1996, the Universal Serial Bus was introduced to the computer world. In its up-to date version 3 and the still widely spread previous version 2, it is meanwhile established as the prevailing standard for any type of PC expansion unit and module.
The test and measurement industry has expanded USB with the introduction of the USBTMC software protocol. USBTMC is short for "USB Test & Measurement Class". This is an USB device class which supports communications with test and measurement equipment. The specification, which is based on USB 2.0, has already been adopted at the end of 2002. USBTMC is supported by the VISA standard and defines an USB488 subclass for devices which transfer messages based on IEEE 488.1 and IEEE 488.2 (GPIB). This allows device manufacturers to modify their interfaces from GPIB to USB, while still guaranteeing full software compatibility with existing solutions. Once a VISA driver is installed, the USBTMC devices will be recognized automatically and can be utilized by the relevant applications.
USBTMC defines two to three communication endpoints in addition to the control endpoint which is stipulated by the USB 2.0 standard. The Bulk-OUT endpoint supports sending data from the host to the USB device, and the Bulk-IN endpoint supports sending data from the device to the host. The Interrupt-IN endpoint is optional; it also supports sending data from the device to the host. As an example, in USB488 Interrupt-IN is used for sending service requests.
Data communication is based on transfers, whereby one transfer may comprise several data packets (transactions). USBTMC messages may be sent via one or more transfers. The first transaction of a transfer always starts with a header. It contains, amongst other data, the message type, a transfer ID and the number of bytes to be transmitted. The transfer ID is used to associate the replies from the device with the relevant request from the host. It is also used when a transfer is aborted.
In today's measurement technology practice, USB is mainly used for measurement applications which are quick to implement and not very complex (serial and TMC are used in parallel). For complex test systems, e. g. production equipment, we would advise against this technology, since the occasional hick-ups, which are well-known from PC applications, cannot be tolerated in this environment.