USB defines class code information that is used to identify a device’s functionality and to nominally load a device driver based on that functionality. The information is contained in three bytes with the names Base Class, SubClass, and Protocol. (Note that ‘Base Class’ is used in this description to identify the first byte of the Class Code triple. That terminology is not used in the USB Specification). There are two places on a device where class code information can be placed.One place is in the Device Descriptor, and the other is in Interface Descriptors. Some defined class codes are allowed to be used only in a Device Descriptor, others can be used in both Device and Interface Descriptors, and some can only be used in Interface Descriptors. The table below shows the currently defined set of Base Class values, what the generic usage is, and where that Base Class can be used (either Device or Interface Descriptors or both).
Base Class |
Descriptor Usage |
Description |
00h |
Device |
Use class information in the Interface Descriptors |
01h |
Interface |
Audio |
02h |
Both |
Communications and CDC Control |
03h |
Interface |
HID (Human Interface Device) |
05h |
Interface |
Physical |
06h |
Interface |
Image |
07h |
Interface |
Printer |
08h |
Interface |
Mass Storage |
09h |
Device |
Hub |
0Ah |
Interface |
CDC-Data |
0Bh |
Interface |
Smart Card |
0Dh |
Interface |
Content Security |
0Eh |
Interface |
Video |
0Fh |
Interface |
Personal Healthcare |
DCh |
Both |
Diagnostic Device |
E0h |
Interface |
Wireless Controller |
EFh |
Both |
Miscellaneous |
FEh |
Interface |
Application Specific |
FFh |
Both |
Vendor Specific |
This base class is defined to be used in Device Descriptors to indicate that class information should be determined from the Interface Descriptors in the device. There is one class code definition in this base class. All other values are reserved.
This value is also used in Interface Descriptors to indicate a null class code triple.
Base Class |
SubClass |
Protocol |
Meaning |
00h |
00h |
00h |
Use class code info from Interface Descriptors |
This base class is defined for Audio capable devices that conform to the Audio Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved. These class codes may only be used in Interface Descriptors.
Base Class |
SubClass |
Protocol |
Meaning |
01h |
xxh |
xxh |
Audio device |
This base class is defined for devices that conform to the Communications Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved. Note that the Communication Device Class spec requires some class code values (triples) to be used in Device Descriptors and some to be used in Interface Descriptors.
Base Class |
SubClass |
Protocol |
Meaning |
02h |
xxh |
xxh |
Communication device class |
This base class is defined for devices that conform to the HID Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors.
Base Class |
SubClass |
Protocol |
Meaning |
03h |
xxh |
xxh |
HID device class |
This base class is defined for devices that conform to the Physical Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors.
Base Class |
SubClass |
Protocol |
Meaning |
05h |
xxh |
xxh |
Physical device class |
This base class is defined for devices that conform to the Imaging Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved.
Base Class |
SubClass |
Protocol |
Meaning |
06h |
01h |
01h |
Still Imaging device |
This base class is defined for devices that conform to the Printer Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors.
Base Class |
SubClass |
Protocol |
Meaning |
07h |
xxh |
xxh |
Printer device |
This base class is defined for devices that conform to the Mass Storage Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors.
Base Class |
SubClass |
Protocol |
Meaning |
08h |
xxh |
xxh |
Mass Storage device |
This base class is defined for devices that are USB hubs and conform to the definition in the USB specification. That specification defines the complete triples as shown below. All other values are reserved. These class codes can only be used in Device Descriptors.
Base Class |
SubClass |
Protocol |
Meaning |
09h |
00h |
00h |
Full speed Hub |
01h |
Hi-speed hub with single TT |
||
02h |
Hi-speed hub with multiple TTs |
This base class is defined for devices that conform to the Communications Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values.Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors.
Base Class |
SubClass |
Protocol |
Meaning |
0Ah |
xxh |
xxh |
CDC data device |
This base class is defined for devices that conform to the Smart Card Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values.Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors.
Base Class |
SubClass |
Protocol |
Meaning |
0Bh |
xxh |
xxh |
Smart Card device |
This base class is defined for devices that conform to the Content Security Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors.
Base Class |
SubClass |
Protocol |
Meaning |
0Dh |
00h |
00h |
Content Security device |
This base class is defined for devices that conform to the Video Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors.
Base Class |
SubClass |
Protocol |
Meaning |
0Eh |
xxh |
xxh |
Video device |
This base class is defined for devices that conform to the Personal Healthcare Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved. These class codes should only be used in Interface Descriptors.
Base Class |
SubClass |
Protocol |
Meaning |
0Fh |
xxh |
xxh |
Personal Healthcare device |
This base class is defined for devices that diagnostic devices. There is currently only one value defined. All other values are reserved. This class code can be used in Device or Interface Descriptors.
Base Class |
SubClass |
Protocol |
Meaning |
DCh |
01h |
01h |
USB2 Compliance Device. Definition for this device can be found at http://www.intel.com/technology/usb/spec.htm |
This base class is defined for devices that are Wireless controllers. Values not shown in the table below are reserved. These class codes are to be used in Interface Descriptors, with the exception of the Bluetooth class code which can also be used in a Device Descriptor.
Base Class |
SubClass |
Protocol |
Meaning |
E0h |
01h |
01h |
Bluetooth Programming Interface. Get specific information from www.bluetooth.com. |
02h |
UWB Radio Control Interface. Definition for this is found in the Wireless USB Specification in Chapter 8. |
||
03h |
Remote NDIS. Information can be found at: http://www.microsoft.com/windowsmobile/mobileoperators/default.mspx |
||
04h |
Bluetooth AMP Controller. Get specific information from www.bluetooth.com. |
||
2h |
01h |
Host Wire Adapter Control/Data interface. Definition can be found in the Wireless USB Specification in Chapter 8. |
|
02h |
Device Wire Adapter Control/Data interface. Definition can be found in the Wireless USB Specification in Chapter 8. |
||
03h |
Device Wire Adapter Isochronous interface. Definition can be found in the Wireless USB Specification in Chapter 8. |
This base class is defined for miscellaneous device definitions. Values not shown in the table below are reserved. The use of these class codes (Device or Interface descriptor) are specifically annotated in each entry below.
Base Class |
SubClass |
Protocol |
Meaning |
EFh |
01h |
01h |
Active Sync device. This class code can be used in either Device or Interface Descriptors. Contact Microsoft for more information on this class. |
02h |
Palm Sync. This class code can be used in either Device or Interface Descriptors. |
||
02h |
01h |
Interface Association Descriptor. The usage of this class code triple is defined in the Interface Association Descriptor ECN that is provided on www.usb.org . This class code may only be used in Device Descriptors. |
|
02h |
Wire Adapter Multifunction Peripheral programming interface. Definition can be found in the Wireless USB Specification in Chapter 8. This class code may only be used in Device Descriptors |
||
03h |
01h |
Cable Based Association Framework. This is defined in the Association Model addendum to the Wireless USB specification. This class code may only be used in Interface Descriptors. |
This base class is defined for devices that conform to several class specifications found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors.
Base Class |
SubClass |
Protocol |
Meaning |
FEh |
01h |
01h |
Device Firmware Upgrade. Device class definition provided on www.usb.org . |
02h |
00h |
IRDA Bridge device. Device class definition provided on www.usb.org . |
|
03h |
00h |
USB Test and Measurement Device. Definition provided in the USB Test and Measurement Class spec found on www.usb.org . |
|
01h |
USB Test and Measurement Device conforming to the USBTMC USB488 Subclass Specification found on www.usb.org. |
This base class is defined for vendors to use as they please. These class codes can be used in both Device and Interface Descriptors.
Base Class |
SubClass |
Protocol |
Meaning |
FFh |
xxh |
xxh |
Vendor specific |
地址:http://www.usb.org/developers/devclass_docs
If you have questions regarding any of these documents please contact the DWG chair ([email protected]) and your questions will be channeled to the appropriate group.
Audio Device Class Spec for Basic Audio Devices and Adopters Agreement (.zip format, size 1.33MB)
Audio Device Document 1.0
Audio Data Formats 1.0
Audio Terminal Types 1.0
USB MIDI Devices 1.0
Audio Devices Rev. 2.0 Spec and Adopters Agreement (.zip format, size 1.28MB)
Battery Charging v1.1 Spec and Adopters Agreement (.zip format, size 292 KB)
Cable and Connector Class 2.0
Series 'A' Plug form factor Guideline 1.0
USB Connector for Mezzanine Applications Guidelines Rev. 1.0
Micro-USB Cables and Connectors v1.01 Spec and Adopters Agreement
Common Class Base Specification 1.0
Class definitions for Communication Devices 1.2 (.zip file format, size 2.61 MB)
the components of CDC 1.1 have been reorganized as five separate documents:
ATM120.pdf -- CDC Subclass for Asynchronous Transfer Mode Devices
CDC120.pdf -- CDC Subclass for Communications Devices
ECM120.pdf -- CDC Subclass for Ethernet Control Model Devices
ISDN120.pdf -- CDC Subclass for ISDN Devices
PSTN120.pdf -- CDC Subclass for PSTN devices
CDC Subclass for Wireless Mobile Communication Devices 1.1
CDC v1.2 WMC v1.1 Adopters Agreement
CDC Subclass Specification for Ethernet Emulation Model Devices 1.0
Network Control Model Devices Specification v1.0 and Adopters Agreement (.zip format, size 492 KB)
Device Class Definition for Content Security Devices 1.0
Content Security Method 1 - Basic Authentication Protocol 1.0
Content Security Method 2 - USB Digital Transmission Content Protection Implementation 1.0
Device Firmware Upgrade 1.1 (new version 31-Aug-2004)
HID Information
Still Image Capture Device Definition 1.0 and Errata as of 16-Mar-2007 (.zip format, size 200 KB)
IrDA Bridge Device Definition 1.0
Mass Storage Class Specification Overview 1.3
Mass Storage Bulk Only 1.0
Mass Storage Control/Bulk/Interrupt (CBI) Specification 1.1
Mass Storage UFI Command Specification 1.0
Mass Storage Bootability Specification 1.0
Lockable Mass Storage Specification 1.0 and Adopters Agreement (.zip format, size 288 KB)
- Lockable Mass Storage IP Disclosure
Media Transfer Protocol v.1.0 Spec and MTP v.1.0 Adopters Agreement (.zip format, size 1.86MB)
Monitor Device Document 1.0
OpenUSBDI Specification 1.0
Personal Healthcare Rev. 1.0, Errata for USB Personal Health Care Device Class and Personal Healthcare Adopters Agreement (.zip format, size 386 KB)
Device Class Definition for PID 1.0
Power Device Class Document 1.0
Printer Device Class Document 1.1
Smart Card CCID version 1.1
Smart Card ICCD version 1.0
Test & Measurement Class Specifications
Video Class 1.1 document set
USB_Video_Class_1.1
USB_Video_Identifiers_1.1
USB_Video_Payload_DV_1.1
USB_Video_Payload_Frame_Based_1.1
USB_Video_Payload_MJPEG_1.1
USB_Video_Payload_MPEG-2_TS_1.1
USB_Video_Payload_Uncompressed_1.1
USB_Video_Payload_Stream_Based_1.1
USB_Video_Transport_1.1
USB_Video_Example_1.1
USB_Video_FAQ_1.1
PC Legacy Compatibility Specification 0.9
USB_Video_Compliance_1.09b -- draft for public review