« 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:
- 0×00
Reserved value - used in the device descriptor to signify that the interface descriptor holds the device class identifier for each interface. - 0×01
USB audio device class, sound card-like devices. - 0×02
USB communications device class used for modems, network cards, ISDN connections, Fax. - 0×03
USB human interface device class (”HID”), keyboards, mice, etc. - 0×06
Still image capture device class, identical to the Picture Transfer Protocol as used across USB - 0×07
USB printer device class, printer-like devices. - 0×08
USB mass storage device class used for flash drives, portable hard drives, memory card readers, digital cameras, digital audio players etc. This device class presents the device as a block device (almost always used to store a file system). - 0×09
USB hubs. - 0×0E
USB video device class, webcam-like devices, motion image capture devices. - 0xE0
Wireless controllers, for example Bluetooth dongles. - 0xFF
Custom device class - used to establish that a device or interface does not support any standard device class and requires custom drivers.
Mass Storage capture:
![]()
Source: http://en.wikipedia.org/wiki/Usb
Topics: Computers & Software |
