Due to the widespread integration of USB into embedded applications, many developers will be faced with the challenge of working with USB for the first time. New developers need to be aware that USB is a complicated protocol. From identifying itself through the enumeration process to sending data where directed, a USB device has many functions to perform. Due to the complexity of the protocol, it can be difficult to detect and isolate problems when a USB device misbehaves. Are these problems caused by bugs in the physical, electrical, protocol, or class level? Without visibility into the USB traffic, one can waste valuable time trying to determine the nature of the failure and how to fix it properly.
Faced with a wide selection of debugging tools such as logic analyzers, oscilloscopes, and protocol analyzers, finding the ideal debugging tool can be as daunting a task as fixing the bug. Thankfully, the nature of the USB protocol plays a large role in determining the ideal debugging solution. Since USB is an inherently complex protocol, debugging USB involves monitoring higher-level and protocol-specific data in larger volumes. While useful, oscilloscopes and logic analyzers capture data at a low level, leaving the captured data harder to understand and navigate. On the other hand, engineers can save hours of frustration by using a USB protocol analyzer that allows engineers to debug at a higher level, viewing data as packets without wasting time to decipher the bits on individual lines.
USB protocol analyzers come in two basic types: software-only analyzers and hardware-based analyzers. At first glance, software-only analyzers may seem to have an economical advantage over hardware-based analyzers. However, the advantages of hardware-based analyzers quickly become evident when debugging embedded hosts, speed negotiation, transmission errors, or timing-related issues. Software-only analyzers are unable to provide visibility into these types of problems because they are entirely dependent on the host computer hardware.
Engineers should also consider capabilities such as USB On-The-Go (OTG) support. After USB's successful mass adoption, companies developing the next generation of innovative products are increasingly focused on OTG. Future devices that support OTG, such as cell phones and media players, will communicate and transfer data directly without relying on a computer intermediary. Since the computer is removed from the equation, only hardware analyzers can monitor the USB traffic between these devices.
Real-time display of captured data is another important feature to consider. Without real-time display, developers must set complicated triggers in the hopes of capturing the data of interest -- a painstaking trial and error process. Real-time display provides instantaneous feedback. Developers can see immediately if the data of interest has been captured, allowing them to quickly identify problems.
As a leading provider of test and measurement tools, Total Phase provides embedded engineers with powerful, pocket-sized analyzers to decrease time-to-market and increase development efficiency.
Total Phase offers two different hardware-based USB protocol analyzers. The Beagle™ USB 480 Protocol Analyzer captures, displays, and filters high-/full-/low-speed USB traffic and bus-states in real-time. Additional features include OTG support and multiple digital inputs and outputs to synchronize with external logic. The Beagle USB 12 Protocol Analyzer monitors full-/low-speed USB and is one of the most affordable USB analyzers on the market.
All Total Phase products are Windows, Linux, and Mac OS X compatible and come complete with free software, free API, free updates, and technical support. The Beagle USB analyzers are the perfect addition to any embedded engineer's toolbox. Ordering information can be found at www.totalphase.com.