Learn USB Protocol

16.USB Classes

An additional set of specifications has been added to the overall USB 2.0 specifications. These additional specifications provide standard functionality using a predefined set of rules to set up and enumerate as well as the endpoint types and transfer types required. Along with defining exactly how the device will be configured, there is also an associated driver already integrated to the OS. That alleviates the need to write a custom drivers to suit the application. If the application data bandwidth requirements can fit within one of these pre-defined classes defined by the USB consortium then you can use that class and the driver that is built into the OS. For example, we can configure our device to enumerate as a Human Interface Device (HID) class and transfer data according to the HID specification. The driver that communicates with our Windows application is already a part of Windows and we didn’t have to write any driver code. Another application is the use of the Communications Device Class (CDC) that can be used for USB to UART applications and uses the built in Windows driver usbser.sys.


Device classes group common interfaces together

  • Class definitions specify the number and types of endpoints
  • May define data formats
  • May define functions or capabilities of devices within the class

Some types of defined classes

  • Human interface class
  • Communications device class

Hub class

  • Printer class
  • Mass storage class
  • Audio class
Suggest Edit


Please enter your comment!
Please enter your name here