Control transfers consist of two or three stages. The SETUP stage contains eight bytes of
USB CONTROL data. An optional DATA stage contains more data, if required. The
STATUS (or handshake) stage allows the device to indicate successful completion of a
control operation.
1.9
Enumeration
Your computer is ON. You plug in a USB device, and the Windows cursor switches to
an hourglass, and then back to a cursor. And magically, your device is connected and its
Windows driver is loaded! Anyone who has installed a sound card into a PC and had to
configure countless jumpers, drivers, and IO/Interrupt/DMA settings knows that a USB
connection can be like a miracle. We’ve all heard about Plug and Play, but USB delivers
the real thing.
How does all this happen automatically? Inside every USB device is a table of ‘descrip-
tors’ that are the sum total of the device’s requirements and capabilities. When you plug
into USB, the host goes through a ‘sign-on’ sequence:
1. The host sends a “Get_Descriptor/Device” request to address zero (devices must
respond to address zero when first attached).
2. The device dutifully responds to this request by sending ID data back to the host
telling what it is.
3. The host sends the device a “Set_Address” request, which gives it a unique address
to distinguish it from the other devices connected to the bus.
4. The host sends more “Get_Descriptor” requests, asking more device information.
from this, it learns everything else about the device, like how many endpoints the
device has, its power requirements, what bus bandwidth it requires, and what
driver to load.
This sign-on process is called Enumeration.
EZ-USB TRM v1.9
Chapter 1. Introducing EZ-USB
Page 1-9