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!
By John Gulbrandsen
John.Gulbrandsen@SummitSoftConsulting.com
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).
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.
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 we don't have any such units in our lab.
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 brushed aluminum
and the front and rear panels are made out of
solid brushed aluminum. Overall, a 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 uses 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) which makes it
on-the-go (OTG) capable. 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).
In order to minimize the PCB area, the SDRAM is
located on the bottom side of the PCB (see below).
Note the large numbers of decoupling caps under the
FPGA.
Overall, the 1480A 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 solid enclosure
design.
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:
-
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.
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 puts all captured
information into a hierarchical tree structure. This
makes it 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. Class decoders may be offered in the
future as they are implemented. For the low
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 simple and straight-forward to
use.
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. In practice, there is not
too much difference between the units. The 1480A USB Analyzer is 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 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
|