USB 2.0 Bus/Protocol Analyzer Hardware/Software Comparison

Here at Summit Soft Consulting we are often working with embedded USB peripherals and USB Device Drivers. In order to know exactly what is communicated between the Host PC and the USB device we are always using a USB Bus Analyzer (also called USB Protocol Analyzer).

Software-based USB Analyzers will only be able to show you the I/O Request Packages being sent to the PC-side USB Host Controller. You will not be any wiser as to the actual timing of the USB packets sent on the wire when using a software-only USB Analyzer, nor will you have any idea what goes wrong should your embedded device not be working correctly when connected to the PC.

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 hardware-based USB Protocol Analyzers, especially, as we will see, they are now available for under $600!

A PDF-version of this article can be downloaded here.

By John Gulbrandsen 2/6/2009
John.Gulbrandsen@SummitSoftConsulting.com

Introduction

This article will compare several low-cost USB 2.0 Bus/Protocol Analyzers in detail on the hardware and software levels. The three USB Analyzers that are compared are (listed from high to low price):

  • Ellisys USB Explorer 200 ($2,999)
  • MQP Packet Master USB500 AG ($1,399)
  • International Test Instruments 1480A ($599)

Note that the MQP USB500 AG USB Analyzer reviewed here also has USB traffic generator functionality built in. Their 'pure' USB 2.0 Bus Analyzer is called USB480+ and is available for $1,199. The USB Analyzer functionality of the USB500AG and the USB480+ are the same and since we happen to have the USB500AG in our lab we included it in our review. For fairness, therefore, we don't cover the generator functionality.

Other high-cost USB Protocol Analyzers like CATC/LeCroy are not reviewed here because they are so expensive ($15,000 last we checked) that we feel that they do not have much to offer compared to the above Analyzers. All USB Analyzers essentially work the same way so it is largely the PC-side software that will determine the features available.

Note that we are also not reviewing any USB 1.1 USB Analyzers since they only support LS and FS modes and therefore are less useful in real-world development. We in fact don't even own any USB 1.1 Analyzers since all newer USB 2.0 USB Analyzers support all three modes (LS, FS and HS).

Legal stuff

We have received feedback from some USB Analyzer vendors where some have complained that we did not include their product in this review. Other vendors have let us know that we are not allowed to review their product because their company name is under trademark protection. Note that this is not a full market review of all available USB Analyzers. We have only reviewed the USB Analyzers we are owning and using in our lab. Ellisys, MQP, International Test Instruments and the products we have reviewed on this page may or may not be trademark protected. See each vendors site below for detailed information.

Hardware Comparison

Like described in the previous section, all USB 2.0 protocol analyzers essentially work the same way. A low-level PHY is used to pick up the 480 MHz differential USB 2.0 signaling and converts it to a parallel signal message stream. The message stream is then buffered in an SDRAM (SDRAM is exclusively used because static ram in useful sizes of 32 or 64MB is not available). Typically 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. The CATC/LeCroy line of USB Analyzers includes such cards. 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 so this is the type we are exclusively using in our lab. The CATC-line of USB Analyzers were also some $15,000 dollars when we last checked so these are, in our opinion, grossly overpriced (sorry CATC/LeCroy)..

Ellisys USB Explorer 200 hardware

The Ellisys hardware design is the oldest among the reviewed USB Analyzers. It is also the largest and heaviest. The mechanical design is very robust since it uses a rather heavy and large steel enclosure. Unfortunately, we for the same reason don't like to bring it along to clients on debugging sessions.

The front panel of the USB Explorer 200 unit essentially has the same controls as the other USB Analyzer units we have in our lab. There are two USB connectors (one A and one B connector) that connects the unit to the Link under Test as well as some status LEDs that indicate host power as well as link activity. The rear panel has a USB connector that connects the unit to the Analysis PC (the PC where the Analysis software is running) as well as a BNC connector used for triggering. Note that the triggering functionality is not available in the $2,999 version of the USB Explorer hardware, for this you will have to shell out a full $5,999. Luckily, we have never had a need for the triggering functionality.

Of course, being electronics engineers, we will also review the internal design of the units! The below image shows the PCB of the Ellisys USB Analyzer.

The Ellisys design is pretty straight-forward. The Cypress TX2 Transceiver is used to convert the 480 MHZ differential USB signaling into parallel messages that are routed to the FPGA. The FPGA then packetizes the information and puts it into the SDRAM until it is later read out. The Cypress FX2LP then interfaces with the FPGA to read out the data from the SDRAM. Finally, the FX2LP forwards the data to the PC software where it is analyzed and displayed to the user.

Overall, we feel that the Ellisys hardware is well designed. Notice the metal fingers that are aimed at establishing a good ground connection between the PCB and enclosure. This is done to minimize EMI (Electro-Magnetic Interference). Also notice the over five mm thick panels! Built like a tank.

We however think that the $2,999 price tag of the Ellisys USB Explorer 200 is far too high when compared with the other USB Analyzers in our comparison. The price is five times that of the International Test Instruments Protocol Analyzer. Let's continue to see how the MQP Packet Master USB Analyzer compares.

MQP Packet Master USB500AG hardware

One thing that comes to mind is that the MQP USB Analyzer has a much cheaper plastic enclosure than the other USB Analyzers reviewed. The front and rear panels are also much flimsier. Most likely this enclosure was chosen to shave off as much cost as possible (now half of the cost of the Ellisys USB Analyzer but still twice the cost of the International Test Instruments unit).

Once opened, the MQP device reveals a design almost identical to the Ellisys device:

The major difference in the MQP design is that a SMSC PHY Transceiver is being used. The overall design is otherwise essentially the same as the Ellisys Analyzer.

Note that the MQP USB500AG contains a 64MB SDRAM while the other two USB Analyzers in our test contain 32 MB. Since the USB data is streamed in real-time to the PCs while data is recorded, the SDRAM should only be used to 'smooth out' the data flow. Therefore, it is not entirely clear if a 64 MB SDRAM allows you to record twice as much data. During tests, we have a feeling that the speed at which the SDRAM data is emptied to the host PC also plays a big role in the maximum capture length. More SDRAM is probably best but more on this in the software review section.

Let's move on to the 1480A USB Protocol Analyzer from International Test Instruments Corporation.

International Test Instruments 1480A hardware

The 1480A is the smallest and lightest USB Analyzer tested. The enclosure is made out of solid aluminum and the front and rear panels are made out of solid brushed aluminum. Overall, a very nice enclosure. Moving along to the PCB, we see a design very similar to the Ellisys and MQP USB Analyzers. The 1480A also contains (no surprise) a Cypress FX2LP to push data to the analysis PC. Instead of Xilinx, 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. We are not quite sure what the two connectors are used for, perhaps they are used for debugging or future hardware additions. Note the proper 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. We found it on the other side (see below). This was probably done to keep the design as small as possible. Note the large numbers of decoupling caps under the FPGA.

 

Overall, the 1480A is well designed. We like the 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 hardware is pretty much the same as the other USB Analyzers. They are all designed around a PHY, an FPGA and the FX2 USB Controller. This means that the large price difference between the units ($599 for the 1480A to $2,999 for the USB Explorer 200) must surely be because of vastly superior software in the more expensive units? Let's find out in the next section.

Software Comparison

Let's now move on to take a look at the PC-side software provided by the three vendors. 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. See the 'Website Links' section at the end of this document for more information.

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:

  1. An IN Packet (host to device token packet)
  2. A DATA Packet (device to host data packet)
  3. 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.

Ellisys Software

The Ellisys 'Visual USB' software has a modern user-interface, taking advantage of advanced tree controls to show the data in a hierarchical fashion:

 

The Ellisys software is very nice since it puts all captured information into a hierarchical tree structure. This makes it crystal-clear where in the data stream you are looking. The columns in the tree view also display relevant information for the information captured including timing information and whether transactions were successful or failed. The other views in the software essentially are there to further break down the data in the tree view. Data search and filter functionality is also available which make it easier to find a particular piece of information in the trace.

The Ellisys Software is a C++ application and as such fairly fast. We have had instances though where it has taken many minutes before it could open very large capture files. It seems to do quite a lot of indexing and filtering at startup which is annoying. Another minor quirk we have found is that the Ellisys software appears not to display the Start of Frame packets in accurate positions within the trace (at least not when comparing with our other USB Analyzers). Overall, the Ellisys software is nice but that is also reflected in the very high price of $2,999.

MQP Software

The MQP 'GraphicUSB' software is a plain-vanilla WIN32 application written directly against the WIN32 API. Unfortunately this shows because the user interface is much less sophisticated than the Ellisys software reviewed in the previous section:

 

The user interface elements used by the MQP software are essentially based on the 'classic' user interface used by CATC/LeCroy and other lines of bus analyzers. The lack of a tree view makes it much harder to find relevant information in the trace.

A plus with the MQP software was that it included a number of class-decoders with the purchase of the USB analyzer hardware. This was part of a temporary promotion when we bought our MQP Bus Analyzer so it may not be available at the time you are reading this.

Unfortunately, we must say that the MQP engineers appear to be better electronics engineers than software engineers. The software has an old feel to it, lacks a modern GUI like the other two USB Analyzers reviewed and is in general harder to use. The trace is especially hard to follow when there are multiple, numerous elements repeated in the trace because we always keep getting lost in the trace due to the lack of hierarchical organization of the data.

Because of the above deficiencies in the MQP GUI, we are only using this unit as traffic generator (which is what we bought it for in the first place). On the flip-side, the MQP USB bus Analyzer cost less than half of the Ellisys Analyzer ($1,199 for the USB480+ and $1,399 for the USB500AG vs. $2,999 for the Ellisys USB Explorer 200). Note that the MQP unit is still double the price for the International Test Instruments USB Analyzer ($599).

Let's see how the International Test Instruments USB Analyzer compares on the software-side.

International Test Instruments software

The software from International Test Instruments is a modern .NET Winforms application. Like the MQP user interface appears to have borrowed a great deal from the CATC line of analyzers, the International Test Instruments application appears to have borrowed the main user interface features from the Ellisys line of software:

 

Like the Ellisys software, 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 lacking search and filter features but otherwise pretty much displays all the information that the Ellisys software shows. 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. We have found ourselves waiting for many minutes when opening very large traces in the Ellisys and MQP software while 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. They say that class decoders will be offered in the future as they are implemented. For the rock-bottom price of $599 (which is even lower than most USB 1.1 LS/FS Analyzer) we however 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.

A note on class-decoders

Ellisys sells their class decoder package for $2,999. It is an all-or-nothing approach so if you need USB hard disk class decoding support you need to pay close to $6,000 for a complete hardware / software package. MQP sells class decoders for $199 each so the total for a USB Hard Disk debugging setup would be under $1,500. The tested version of the International Test Instruments USB Analyzer software does not support class decoders but we don't expect that for a price tag under $600. International Test Instruments says that class decoders will be available for under $300 per decoder, bringing the total price for a USB Hard Disk debugging setup to under $1,000.

Summary

As previously described, the hardware design of the three USB Protocol Analyzers reviewed is essentially identical. Given the huge difference in price between the units (Ellisys: $2,999, MQP: $1,399, International Test Instruments: $599) we had expected the user interface of the higher-priced units to vastly outperform the lower-priced units. The MQP USB Analyzer GUI confirmed this theory but the International Test Instruments 1480A USB Analyzer was a pleasant surprise. The 1480A USB Analyzer turned out to be hardware-wise well designed and have a modern user interface based on modern technology (.NET Framework). Given the very low price of $599, the 1480A USB Analyzer from International Test Instruments will be very hard to compete with by the 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 the Ellisys USB Analyzer. If you do not (at least immediately) require class-decoders, buy the International Test Instruments USB Analyzer and if you require some class-decoders (check mqp.com for decoders supported) you could buy the MQP Analyzer. Beware of the MQP user interface though.

Each USB Analyzer has its place and this is the reason we have three of them. We bought the Ellisys unit years ago when it really was the only reasonably priced HS Analyzer on the market. We got the MQP unit for bus traffic generation. For travel and consulting work on proprietary USB Protocols we however bring along the International Test Instruments Analyzer. Most work does not need class-decoder support and the 1480A unit is the smallest in our lab after all.

Links

Ellisys: http://www.Ellisys.com
MQP: http://www.mqp.com
International Test Instruments: http://www.InternationalTestInstruments.com

USB Protocol Overview:
http://www.usbmadesimple.co.uk/
http://www.beyondlogic.org/usbnutshell/usb1.htm

About the Author

John Gulbrandsen is the founder and president of Summit Soft Consulting. John has a formal background in Microprocessor-, digital- and analog- electronics design as well as in embedded and Windows systems development. John has programmed Windows since 1992 (Windows 3.0). He is as comfortable with programming Windows applications and web systems in C++, C# and VB as he is writing and debugging Windows kernel mode device drivers in SoftIce.  

To contact John drop him an email: John.Gulbrandsen@SummitSoftConsulting.com

About Summit Soft Consulting

Summit Soft Consulting is a Southern California-based consulting firm specializing in Microsoft's operating systems and core technologies. Our specialty is Windows Systems Development including kernel mode and NT internals programming.

To visit Summit Soft Consulting on the web: http://www.summitsoftconsulting.com