The USB specification defines the following commands as requests that can be performed by using Endpoint 0. In addition to the following, there are also Class requests defined for each USB Class, and Vendor requests defined by the device vendor.

About Class


Request Name Object Summary
Get_Status Device, Endpoint Device:Self-Powered and Remote Wakeup Read, Endpoint:Halt Read.
Clear_Feature Device, Endpoint Device:Clears Remote Wakeup status, Endpoint:clears Halt status (DATA PID=0)
Set_Feature Device, Endpoint Device:Remote Wakeup or Test mode Setting, Endpoint:Halt Setting
Get_Descriptor Device, Config., String, Device_qualifier, Other_speed_Config. Reads target Descriptor
Set_Descriptor Device, Config., String Sets target Descriptor (Optional command)
Get_Configuration Device Reads current Configuration values
Set_Configuration Device Sets Configuration values
Get_Interface Interface Reads current Alternative Setting values for target Interface
Set_Interface Interface Sets Alternative Setting values for target Interface
Set_Address Device Sets USB address
Synch_Frame Endpoint Reads frame synchronization data

No standard request commands were added in USB 2.0. However, the Get_Descriptor command has been expanded with Device_qualifier and Other_speed_configuration for ensuring maximum performance when a chirp handshake fails for a high-Speed capable device, and Set_Feature TEST_MODE has been added to check the features of a USB 2.0 transceiver.

About Chirp handshake