USB标准请求
USB主机对USB设备的配置操作是通过设备请求来实现的。
读取状态请求GetStatus
GetStatus请求主要用于USB主机读取USB设备、接口或端点的状态。在请求的数据阶段,USB设备向USB主机返回2字节数据。
1.读取设备
GetStatus请求读取设备的定义格式:
GetStatus请求读取设备的返回值:
2.读取接口
GetStatus请求读取接口的定义格式:
GetStatus请求读取接口的返回值:
3.读取端点
GetStatus请求读取端点的定义格式:
GetStatus请求读取接口的返回值:
(D0位表示端点的停止特性,0表示未停止,1表示停止)
清除特性请求ClearFeature
ClearFeature请求用于清除或者禁止设备、接口、端点的某些特性。(无数据阶段)
ClearFeature请求格式:
标准特性选择符: ENDPOINT_HALT:其接收方是端点,值为 0,对应于端点对的停止特性。 DEVICE_REMOVE_WAKEUP:其接收方是设备,值为 1,对应于端点的停止特性。 TEST_MODE:其接收方是设备,值为 2,用于 USB 设备的测试模式,其不能由 ClearFeature 请求来清除和禁止。 (USB 协议没有用于接口的特性选择符)
设置特性请求 SetFeature SetFeature
请求用于设置或使能 USB 设备、接口或端点的特性值。(没有数据阶段)
当wValue字段为TEST_MODE时,wIndex字段的高字节指明设备测试选择符,低字节必须置0。
USB协议当前支持的测试选择符:
Test_J:值为01H。
Test_K:值为02H。
Test_SE0_NAK:值为03H。
Test_Packet:值为04H。
Test_Force_Enable:值为05H。
设置地址请求SetAddress
设置地址请求SetAddress请求用于在USB设备上电时为其分配一个唯一的设备地址。(无数据阶段)
SetAddress请求的定义格式:
(wValue 字段的取值范围:0~127)
读取描述符请求GetDescription
GetDescription请求用于USB主机读取设备的指定的描述符,在数据阶段USB设备向USB主机返回指定的描述符。
GetDescription请求的定义格式:
设置描述符请求SetDescriptor
SetDescriptor请求用于设置USB设备的描述符(数据阶段)
SetDescriptor请求的定义格式:
wValue字段的高位指明了USB主机所操作的描述符的类型值,可选设备、配置、字符串、接口、端点、设备限定、其他速率配置描述符。wValue的低位字节指明了描述符的索引值,只对配置描述符和字符串描述符有效。
wIndex字段表示字符串描述符的语言ID,如果不是字符串描述符则应置0。
wLength指定了GetDescriptor请求所返回的字节数。
读取配置请求GetConfiguration
GetConfiguration请求用于主机读取USB设备当前的配置值,在请求的数据阶段,USB设备将向USB主机返回1个字节的配置值。
GetConfiguration请求的定义格式:
USB 设备在不同的状态,GetConfiguration 请求有不同的响应:
设置配置请求SetConfiguration
SetConfiguration请求用于为USB设备设置一个合适的配置值(无数据阶段)。
SetConfiguration请求的定义格式:
(wValue 字段的低位字节指明 USB 设备的配置值,高位字节保留)
读取接口请求GetInterface
GetInterface请求用于USB主机读取指定接口的设置值,即接口描述符的bAlternateSetting字段的值。在请求的数据阶段,USB设备将向USB主机返回1个字节的可替换设置值。
GetInterface请求的定义格式:
设置接口请求SetInterface
SetInterface请求用于为指定的接口选择一个合适的可替换设置(无数据阶段)。
SetInterface请求只在USB设备处于配置状态时有效,当USB设备的一个接口存在多个可替换设置时,SetInterface请求使得主机可以为其选择所需要的可替换设置。
SetInterface请求的定义格式:
同步帧请求SynchFrame
SynchFrame请求用于设置并报告端点的同步帧号,用于同步传输,只适用于同步端点。在请求的数据阶段,USB设备将向USB主机返回2个字节的帧号数据。
SynchFrame请求的定义格式:
(SynchFrame 请求只在 USB 设备处于配置状态时有效)