I2C SPI USB CAN eSPI Cable Testing View All Videos Quick Start Guides Software Downloads App Notes White Papers User Manuals Knowledge Base Sales Support About Us
Products Blog Sales Support Contact Search
What are USB Classes and Why Do I Need Class Decoding?
Derek Cooper

What are USB Classes?

Universal Serial Bus (USB) has become the most widely used standard interface for connecting peripheral devices to a host computer.  A key advantage and differentiator of USB is the fact that any standard external USB device will instantly connect once plugged into a host computer by way of USB classes.

USB classes can be defined as groups of similar devices, such as Audio, Human Interface Devices (HID), and Mass Storage, that use a standard set of commands which allow them to share a common USB class driver.

USB then defines class code information that is used to identify a device’s functionality and to load a device driver based on that specific functionality. This class-level decoding becomes an integral part of interfacing and debugging over USB.

Why is USB Class-Level Decoding Important?

Class-level decoding translates low-level USB protocol level data to USB class-level commands and instructions that are more easily understood by the end user.

The ability to understand class-level data helps the engineer more easily isolate potential errors and bugs within the USB 2.0 and 3.0 protocols. Raw packets can also be parsed into human readable format in real time when using certain tools and applications.

Which Solutions can Support Real-Time USB Class-Level Decoding?

USB protocol analyzers with interactive GUIs such as those from Total Phase can make USB debugging faster and more efficient through class-level decoding.

The powerful USB class-level decoding feature is part of Total Phase’s Data Center Software, which allows users to streamline and expedite the analysis process in-real time. To use this feature, simply start a capture, plug in a USB device to the Beagle USB 480 Protocol Analyzer or Beagle USB 5000 v2 SuperSpeed Protocol Analyzer, and the software will automatically decode protocol level packets into class-level decoded data.

Here is a comparison between the protocol-level view and the class-level view.

USB traffic in protocol-level view Protocol-Level View

 

The USB data from a Mass Storage device has been organized into packet groups. The data is in its raw format which is difficult to understand.

USB traffic in class-level view Class-Level View

 

The USB traffic has been organized into hierarchical Mass Storage specific data groups. Now that the class-level data is decoded, it is easier to understand.

Supported Classes:

The Data Center Software supports the following classes and more:

  • Audio v1.0 - v2.0
  • Communications Device Class (CDC)
  • Printer
  • Mass Storage (SCSI, UASP)
  • Human Interface Device (HID)
  • Video (v1.0 – v1.1)
  • Device Firmware Update (DFU)
  • Network Control Model (NCM)
  • Mobile Direct Line Model (MDLM)
  • Hub
  • Still Image (MTP, PTP)

 Example Features:

Info and Data Panes

The image below shows USB 2.0 traffic from an HID Device. The class-level data has been decoded and the Info Pane at the far right displays the parsed class-level fields for easy viewing.

When a field is highlighted in the Info Pane, the relevant portion of the data payload is highlighted in the Data Pane on the bottom.

Benefits from Info and Data Pane View:

  • Class-level data is parsed into a human-readable format.
  • Class-level fields in the data payload are clearly displayed.
Info and Data Pane View in Data Center Software

Class-Level Decoding Availability

Which Total Phase tools support class-level decoding capabilities?

For further information on our USB products, please visit our USB Product Comparison chart or email us at sales@totalphase.com.