« USB - Power Supply | Home | Off-Road Navigation with GPS Fugawi Global Navigator 3.3.1(9) »

USB - Device Classes

By admin | May 16, 2007

Devices that attach to the bus can be full-custom devices requiring a full-custom device driver to be used, or may belong to a device class. These classes define an expected behavior in terms of device and interface descriptors so that the same device driver may be used for any device that claims to be a member of a certain class. An operating system is supposed to implement all device classes so as to provide generic drivers for any USB device.

Device classes are decided upon by the Device Working Group of the USB Implementers Forum. If the class is to be set for the entire device, the number is assigned to the bDeviceClass field of the device descriptor, and if it is to be set for a single interface on a device, it is assigned to the bInterfaceClass field of the interface descriptor. Both of these are a single byte each, so a maximum of 254 different device classes are possible (values 0×00 and 0xFF are reserved). If bDeviceClass is set to 0×00, the operating system will look at bInterfaceClass of each interface to determine the device class. Each class also optionally supports a SubClass and Protocol subdefinition. These can be used as the main device classes are continuously revised.

The most used device classes (grouped by assigned class ID) are:

Source: http://en.wikipedia.org/wiki/Usb

Topics: Computers & Software |

Comments