In short, Software-only USB Analyzers are only useful for writing PC-side code where the device is already fully working while hardware-based USB Protocol Analyzers are indispensable when doing embedded work. For serious, non-hobby USB programming we only and strongly recommend affordable hardware-based USB Protocol Analyzers.
This article will discuss the International Test Instruments Corp. 1480A USB 2.0 Protocol Analyzer. Software and hardware will be reviewed and evaluated.
In comparison to other high-cost USB Protocol Analyzers, it is necessary to understand that all USB Analyzers basically work the same, so it is mostly their software which will determine the strengths and features.
All USB 2.0 protocol analyzers basically work the same way. A low-level PHY is used to capture the 480 MHz USB 2.0 differential signals and then converts them into a parallel signal message stream. This message stream is buffered in an SDRAM. Usually, an FPGA is used to interface between the USB PHY Transceiver and the SDRAM. A device-side USB-controller chip is then used to pull data from the SDRAM (via the FPGA). The data is then sent to the host PC over the Analysis PC USB link. Finally the PC software parses the captured data, performs high-level information decoding and finally displays the information in the GUI in useful form.
Some USB Analyzer hardware is based on PC-cards that plug in to your laptop. PC-card-based designs do not need much buffer RAM and they can immediately off-load data to the host-PC internal bus so they typically only contain a USB transceiver and a small FPGA or CPLD that the PC CPU directly can interact with. This type of design therefore does not need any on-board CPU or SDRAM which makes the hardware cost lower. The down-side is that a PC-card-based USB analyzer will only work in laptops with the correct card slots. Card slots are also quickly updated which make old cards outdated. USB-connected USB Analyzers work with all PCs this will be the type we will be reviewing.
International Test Instruments 1480A USB 2.0 Protocol Analyzer Hardware
The International Test Instrument Corp. 1480A USB 2.0 Protocol Analyzer is a small and light USB Analyzer. The enclosure is made out of brushed aluminum and the front and rear panels are made out of solid brushed aluminum. Overall, a nice enclosure. Moving along to the PCB, the 1480A contains a Cypress FX2LP to push data to the analysis PC. International Test Instruments has chosen an Altera Cyclone II FPGA. Since the Altera FPGA-series can be serially loaded from a CPU, the 1480A does not contain any loading CPLD or serial loading device but rather is loaded via the FX2LP every time used (FPGA firmware is downloaded from the PC). This means that all hardware firmware (CPU and FPGA) is updated with each new software release.
International Test Instruments has chosen a PHY Transceiver from NXP (Phillips). This is on-the-go capable but currently no on-the-go functionality is available in the PC software. Perhaps future software versions will enable these features. The two connectors are used for debugging and future hardware additions. Note the use of bus termination resistor packs throughout the design (this improves signal integrity for high-speed signals).
Also note that there is no SDRAM on the top-side of the PCB. It is on the other side (see below). This was done to keep the design as small as possible. Note the large numbers of decoupling caps under the FPGA.
Overall, the International Test Instruments 1480A USB 2.0 Protocol Analyzer is well designed. It has gold-plated PCB and connectors, a robust electronics design with plenty of decoupling capacitors, bus termination resistors as well as a cool enclosure design. No cost spared on these details.
Functionality-wise, the 1480A USB 2.0 Protocol Analyzer hardware is designed around a PHY, an FPGA and the FX2 USB Controller.
Let’s now move on to take a look at the PC-side software provided by ITIC. USB Protocol Analyzer software essentially has one main purpose and that is to convert the low-level USB packets into a form that humans can easily understand. First, let’s get started by recapping how the USB protocol works.
USB Protocol Overview
There are many good websites available that covers the USB protocol in detail but we are here describing the basics needed to understand what the reviewed software is doing.
The USB on-the-wire electrical protocol is a two-wire, high-speed, differential signaling protocol used between a PC and a USB peripheral. Differential signaling uses two wires, each a mirror of the other. The idea behind differential signaling is that any noise picked up along the signal path will be spread equally along the two wires. Since the receiver picks up the difference between the two signals all noise will effectively be canceled out. All modern high-speed serial buses use differential signaling.
The USB transfers information in data unit called packets. The host is always the initiator of packet exchange; first the host tells the device which operation should be performed (read data from the device, write data to the device etc). The device next responds with or accepts data. Finally the data phase is acknowledged. These three phases are called token phase, data phase and acknowledge phase, respectively. At the very least, USB analyzer software must decode these low-level packets and present the data to the user to be at all useful.
At a higher protocol level, USB is using ‘Transactions’. A transaction is a grouping of packets needed to perform a complete read or write from the device. . As an example, to read a buffer from a device the packet exchange will be:
- An IN Packet (host to device token packet)
- A DATA Packet (device to host data packet)
- An ACK Packet (host to device acknowledge packet)
Since the host will constantly transfer data to / from a device, USB Analyzer software should also decode these higher-level Transaction constructs to be useful.
At an even higher abstraction level, the USB protocol defines standardized ‘Device Requests’. Device Requests are standardized read and write operations on the control pipe aimed at querying and configuring a device for operation after it is connected to a host PC. In order for a host PC to know what kind of device it is, how it is configured etc the PC must interrogate the device for these details. USB Software should also decode these details since they are standardized and part of the connection sequence for all USB devices.
At the very highest level are the Device Specific Protocols. These are the private messaging protocols used by individual USB devices. As you can imagine, there are almost as many private protocols as devices under the sun. Therefore, USB Analyzer software, typically, cannot decode such highest-level private protocols. There are, however, some standardized highest-level protocols grouped into ‘Classes’. Such classes could be USB Hard Disks, USB Mice, Keyboards and other similar standard devices. The idea here is to group similar devices into classes such that device manufacturers do not have to come up with their own protocols for each ‘standard’ device. This also means that device class drivers can be written for a host PC. This class driver can then communicate with all devices from multiple vendors as long as everybody follows the class-specification.
Also, there are some miscellaneous bus events that USB Protocol Analyzers commonly also display. These are device connection and disconnection, Device and Host Chirp Sequence (speed negotiation), Start-of-frame packets and device reset.
International Test Instruments Corp 1480A USB 2.0 Protocol Analyzer Software
The software from International Test Instruments is a .NET Winforms application.
International Test Instruments has chosen to organize the captured information into a hierarchical tree structure. This makes this software very easy to use. The International Test Instruments software is slightly lacking in search and filter features but otherwise pretty much displays all the information necessary. One plus with the International Test Instruments software is that it immediately starts showing data as it is decoded instead of waiting for all data to be read in and analyzed. This makes a huge difference when having captured many megabytes worth of data. A user can wait many minutes when opening very large traces with other USB Protocol Analyzers. The International Test Instruments software immediately starts displaying the trace data as it is read in from the USB Analyzer of from a pre-captured file.
One thing to note about the International Test Instruments software is that it does not contain any class decoders. Class decoders will be offered in the future as they are implemented. Due the low pricing of the International Test Instrument 1480A USB 2.0 Protocol Analyzer (which is lower than most USB 1.1 LS/FS Analyzer) don’t expect to get all the bells and whistles included.
Overall, the International Test Instruments USB Analyzer software is very simple and straight-forward to use. The features are however limited due to lack of search and filter options. International Test Instruments say that a more advanced ‘Pro’ version will become available for users that need the more advanced features such as filtering, search and class decoders.
In theory, higher-priced units to vastly outperform the lower-priced units. But in practice, there is not too much difference between the units. The International Test Instruments Corp. 1480A USB 2.0 Protocol Analyzer is hardware-wise well designed and has a user interface based on .NET Framework. Given its low price, the 1480A USB 2.0 Protocol Analyzer from International Test Instruments is very hard to compete with by other USB Analyzer vendors.
The bottom line is this: If you require full support for class-decoders and you have a well-funded budget, go ahead and buy a top of the line, expensive USB protocol analyzer. If you do not (at least immediately) require class-decoders, buy the International Test Instruments USB Analyzer. Most work does not need class-decoder support and the International Test Instruments Corp. 1480A USB 2.0 Protocol Analyzer is just fine for most USB protocol work.
Use the contact form below to contact NorthTree Associates today to discuss your USB protocol analysis needs.
(Re-posted with permission from our valued partner International Test Instruments Corporation)