The USB (Universal Serial bus, Universal Serial Bus) protocol stipulates that all USB devices have vid (Vendor ID, vendor identification number) and PID (product ID, identification code). The vid is submitted by the supplier to USB-IF (Implementers forum, the application forums). Each vendor's vid is unique and the PID is at the supplier's discretion. The host uses VID and PID to identify different devices, depending on them (and the version number of the device), to load or install the appropriate driver for the device. The length of the vid and PID is two bytes.
Common major suppliers of vid and PID, can be found here: http://www.linux-usb.org/usb.ids
USB defines the kind of code information that is used to identify the functionality of the device, based on these functions, to load the device driver. This information is contained in 3 bytes named base class, subclass, and protocol (note: "Base class" is used in this article to identify the first byte of a three-byte kind code, which is not used in the USB specification). There are two places in the device where you can store kind of code information, one is a device descriptor, and the other is an interface descriptor. Already defined types of code, some can only be used in the device descriptor, some can only be used in the interface descriptor, and some of the two descriptions character are available. The following table gives a set of values for the base class that is now set, what the general usage is, and where the base class is used (device descriptor or interface descriptor).
For specific definitions see USB official website: Http://www.usb.org/developers/defined_class
Definitions of each category see: Http://www.usb.org/developers/devclass_docs
Base Class |
Descriptor Usage |
Description |
00h |
Device |
Use class information in the Interface descriptors type information defined in interface descriptor |
01h |
Interface |
Audio Devices |
02h |
Both |
Communications & CDC Communications equipment ( mobile , Class_&subclass_ &prot_) |
03h |
Interface |
HID (Human Interface device) human-machine interface devices |
05h |
Interface |
Physical physical Equipment |
06h |
Interface |
Image Imaging Device (possibly iphone, class_06&subclass_01&prot_01) |
07h |
Interface |
Printer Printer |
08h |
Interface |
Mass Storage mass Storage (may be mobile , class_08&subclass_06&prot_50) |
09h |
Device |
Hub Hub |
0Ah |
Interface |
Cdc-data Communication equipment ( mobile phone , Class_0A&subclass_ &prot_xx) |
0Bh |
Interface |
Smart Card Smart Card |
0Dh |
Interface |
Content Security Device |
0Eh |
Interface |
Video Device (webcam, class_0e&subclass_03&prot_00) |
0Fh |
Interface |
Personal Healthcare Personal Health Equipment |
10h |
Interface |
Audio/video Devices Audio/video equipment |
DCh |
Both |
Diagnostic Device Diagnostic Devices (USB2 compatible devices) |
e0h |
Interface |
Wireless Controller Wireless Controllers (Bluetooth devices, etc.) |
Efh |
Both |
Miscellaneous miscellaneous (Activesync,palmsync, various associations, etc.) |
FEh |
Interface |
Application Specific application proprietary specification (firmware upgrade, infrared, USB test and measurement, etc.) |
FFh |
Both |
Vendor Specific supplier Custom specification ( mobile , CLASS_FF&SUBCLASS_FF&PROT_FF) |
USB vid and PID, and classification (CLASS,SUBCLASS,PROTOCOL)