Specifications

29
29
Example Device Descriptor Spec (1 of 2)
A look at a descriptor and its fields
Subclass code (assigned by the USB-IF)
These codes are qualified by the value of the bDeviceClass field
If the bDeviceClass field is reset to zero, this field must also be reset to zero
If the bDeviceClass field is not set to FFH, all values are reserved for
assignment by the USB-IF
SubClass1bDeviceSubClass5
Class code (assigned by the USB-IF)
If this field is reset to zero, each interface within a configuration specifies its
own class information and the various interfaces operate independently.
If this field is set to a value between 1 and FEH, the device supports different
class specifications on different interfaces and the interfaces may not operate
independently. This value identifies the class definition used for the aggregate
interfaces.
If this field is set to FFH, the device class is vendor-specific
Class1bDeviceClass4
USB Specification Release Number in Binary-Coded Decimal (i.e., 2.10 is 210H)
This field identifies the release of the USB Specification with which the device and
its descriptors are compliant.
BCD2bcdUSB2
DEVICE Descriptor Type
Constant1bDescriptorType1
Size of this descriptor in bytes
Number1bLength0
DescriptionValueSizeFieldOffset
Now that we understand how the host requests data from a device and how the
device responds to the request by passing along the descriptors that are stored in
memory, we can take a deeper look at the descriptors. One example of a descriptor
is the Device Descriptor and is transferred to the host as a result of the
Get_Descriptor(DEVICE) standard request. The table in the slide shows the fields
associated with the device descriptor. The first field identifies the length of the data
including the size field. For the device descriptor the size field is always 18 bytes
(0x12). The next is the descriptor type field which identifies the data as the device
descriptor. Many different fields follow including what revision of the USB
specification is supported by the endpoint device, the vendor ID and Product ID, as
well as the maximum packet size supported for the endpoint. Take a look at the
table on this slide and the next to see how the fields are defined for the device
descriptor.