Specifications
27
27
USB Descriptors
Descriptors
Data structures, or formatted blocks of information, that enable the host to learn about the device
Each Descriptor contains information about either the device as a whole or an element in the
device
The host uses control transfers to obtain the descriptors from the device
Descriptors typically reside in non-volatile data storage on the device. Most commonly set as C
structures or variables located in code space.
In-System
Reprogrammable
Flash
Descriptors
In-System
Reprogrammable
Flash
8051 External Memory
Space (XRAM on chip)
8051 Internal Memory
Space
USB FIFOs for Endpoints
8051 External Memory
Space (XRAM on chip)
Program Flash
256
bytes
2048
bytes
16K bytes
8051 Memory Example
Descriptor structures located
in code space in part of the
program memory.
In our discussions about control transfers and standard requests we have touched on
the information that is stored in the end device that the host reads to determine the
configuration and operating parameters of the device. The information is stored in
what is called descriptors. There are several types of descriptors that get stored in
the memory of the device and each provides configuration information associated
with a different aspect of the USB communications. For example, the device
descriptor provides high level information about the device. The endpoint
descriptor contains low level communication protocol specific information like
endpoint number etc. In this diagram we see that the descriptors would be stored in
the flash memory such that they are available after each power up and reset in order
for the host to read them. They are just variables in the memory that get passed to
the USB peripheral when the request is made by the host.