-
USB Class codeEmbedded/USB 2014. 12. 11. 15:11
USB Class Codes
August 11, 2014
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
01h
Interface
02h
Both
03h
Interface
05h
Interface
06h
Interface
07h
Interface
08h
Interface
09h
Device
0Ah
Interface
0Bh
Interface
0Dh
Interface
0Eh
Interface
0Fh
Interface
10h
Interface
11h
Device
DCh
Both
E0h
Interface
EFh
Both
FEh
Interface
FFh
Both
Base Class 00h (Device)
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
Base Class 01h (Audio)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
Base Class 02h (Communications and CDC Control)
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
Base Class 03h (HID – Human Interface Device)
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
Base Class 05h (Physical)
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
Base Class 06h (Still Imaging)
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
Base Class 07h (Printer)
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
Base Class 08h (Mass Storage)
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
Base Class 09h (Hub)
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
Base Class 0Ah (CDC-Data)
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
Base Class 0Bh (Smart Card)
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
Base Class 0Dh (Content Security)
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
Base Class 0Eh (Video)
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
Base Class 0Fh (Personal Healthcare)
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
Base Class 10h (Audio/Video Devices)
The USB Audio/Video (AV) Device Class Definition describes the methods used to communicate with devices or functions embedded in composite devices that are used to manipulate audio, video, voice, and all image- and sound-related functionality. 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
10h
01h
02h
03h
00h
Audio/Video Device – AVControl Interface
00h
Audio/Video Device – AVData Video Streaming Interface
00h
Audio/Video Device – AVData Audio Streaming Interface
Base Class 11h (Billboard Device)
This base class is defined for devices that conform to the Billboard 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 Device Descriptors.
Base Class
SubClass
Protocol
Meaning
11h
00h
00h
Billboard Device
Base Class DCh (Diagnostic 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 athttp://www.intel.com/technology/usb/spec.htm
Base Class E0h (Wireless Controller)
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 fromwww.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 fromwww.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.
Base Class EFh (Miscellaneous)
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.
04h
01h
RNDIS over Ethernet.
Connecting a host to the Internet via Ethernet mobile device. The device appears to the host as an Ethernet gateway device.
This class code may only be used in Interface Descriptors.
02h
RNDIS over WiFi.
Connecting a host to the Internet via WiFi enabled mobile device. The device represents itself to the host as an 802.11 compliant network device.
This class code may only be used in Interface Descriptors.
03h
RNDIS over WiMAX
Connecting a host to the Internet via WiMAX enabled mobile device. The device is represented to the host as an 802.16 network device.
This class code may only be used in Interface Descriptors.
04h
RNDIS over WWAN
Connecting a host to the Internet via a device using mobile broadband, i.e. WWAN (GSM/CDMA).
This class code may only be used in Interface Descriptors.
05h
RNDIS for Raw IPv4
Connecting a host to the Internet using raw IPv4 via non-Ethernet mobile device. Devices that provide raw IPv4, not in an Ethernet packet, may use this form to in lieu of other stock types.
This class code may only be used in Interface Descriptors.
06h
RNDIS for Raw IPv6
Connecting a host to the Internet using raw IPv6 via non-Ethernet mobile device. Devices that provide raw IPv6, not in an Ethernet packet, may use this form to in lieu of other stock types.
This class code may only be used in Interface Descriptors.
07h
RNDIS for GPRS
Connecting a host to the Internet over GPRS mobile device using the device’s cellular radio
05h
00h
USB3 Vision Control Interface
Machine Vision Device conforming to the USB3 Vision specification. This standard covers cameras and other related devices that are typically used in machine vision, industrial, and embedded applications.
Reference:http://visiononline.org/
This class code may only be used in Interface Descriptors.
01h
USB3 Vision Event Interface
02h
USB3 Vision Streaming Interface
Base Class FEh (Application Specific)
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 onwww.usb.org .
01h
USB Test and Measurement Device conforming to the USBTMC USB488 Subclass Specification found on www.usb.org.
Base Class FFh (Vendor Specific)
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
'Embedded > USB' 카테고리의 다른 글
USB 관련 강좌 (0) 2014.12.11 USB Descriptor 종류 (0) 2014.12.11 다양한 시리얼 통신 (0) 2014.12.11 aasd (0) 2014.12.10 List of USB ID's - Linux USB (0) 2014.12.06