4 USB Classes and Protocols Relevant for CDC

USB classes, subclasses and protocols announce the device capabilities to the host.

Classes

USB classes are predefined categories representing the functionality provided by a USB device or interface, facilitating standardized communication between the device and the host system. These classes allow for driver reuse and easier device recognition across operating systems. Some common classes:
  • Communication Device Class (CDC) is a USB class that provides a standardized way for computer systems to communicate with various types of communication and telecommunication devices, including modems, telephones, and network cards
  • Human Interface Device (HID) is a standard for computer peripherals that enables the implementation of devices such as keyboards, mice, game controllers, and other simple interface devices
  • Audio Device Class (ADC) is a class that provides a framework for audio input and output devices, such as microphones, speakers, headsets, and sound cards, to interface with a host system. This class supports audio streaming and control functions.
  • Mass Storage Class (MSC) is a class that enables a USB device to be recognized and used by a host system as a storage medium, such as flash drives, external hard drives, and memory card readers
  • Custom or Vendor Class is used for USB devices that do not conform to standard USB classes and thus require custom drivers. These devices can serve several purposes and functionalities, allowing vendors to create unique products with proprietary interfaces and features not covered by the standard USB class specifications.
Some classes allow being defined at the device level in the Device Descriptor, while the different Interface Descriptors define others.

Subclasses

USB subclasses further define the behavior and functionality of a USB device, allowing for more refined control and communication between the device and the host. These subclasses enable the differentiation of devices with similar general purposes but varied operational modes or applications. Examples of this:
  • CDC device conforming to the Abstract Control Model
  • CDC device emulating Ethernet
  • Audio device utilizing MIDI streaming
  • Video device only concerned with video streaming
The subclass is mostly applied to the Interface Descriptor.

Protocols

USB protocols refer to the rules and signaling standards governing the communication between USB devices and the host controller, ensuring data are transferred correctly. Examples of this:
  • CDC device conforming to the Abstract Control Model with the ITU-T V.250 specific protocol
  • CDC device emulating Ethernet using the USB EEM protocol
  • Video device only concerned with video controls using protocol 15

More

Other classes, subclasses, and protocols not mentioned here do also exist. See the Microchip Developer Help pages on USB for more information.