USB笔记 标准请求 设置地址 Set Address
格式
bmRequestType | bRequest | wValue | wIndex | wLength | Data |
---|---|---|---|---|---|
00000000B | SET_ADDRESS | Device Address | Zero | Zero | None |
功能
这个请求用于为所有后续的设备访问设置设备地址。
bmRequestType
bmRequestType | 00000000B |
---|---|
bmRequestType.Recipient | 0b00000(Device) |
bmRequestType.Type | 0b00(Standard) |
bmRequestType.Direction | 0b0(Host-to-Device) |
接收端:设备(Device)
类型:标准(Standard)
方向:主机到设备(Host-to-Device)
bRequest
SET_ADDRESS: 0x05
wValue
新的设备地址。wValue字段指定用于后续所有访问的设备地址。
最大有效值127。如果指定的设备地址大于127,则无效,不指定设备的行为。
wIndex
wIndex字段固定为0x0000。
如果wIndex不为零,则无效,不指定设备的行为。
wLength
wLength字段固定为0x0000。
如果wLength不为零,则无效,不指定设备的行为。
Data
无数据阶段(Data stage)。
说明
初始Setup packet之后的状态阶段(Status stage)采用与Setup packet相同的设备地址。在成功完成此请求的状态阶段之前,设备不会更改其设备地址。请注意,这是这个请求与其他所有请求之间的区别。对于其他所有请求,在状态阶段之前,应该完成所指示的操作。
支持的状态
支持默认状态(Default state)和地址状态(Address state),具体如下:
默认状态(Default state):如果指定的地址是个非零(non-zero)地址,则设备进入地址状态;否则,设备将保持处于默认状态(这不是一个错误条件)。
地址状态(Address state):如果指定的地址为零,则设备将进入默认状态;否则,设备将保持处于地址状态,但使用新指定的地址。
配置状态(Configured state):未定义设备处于配置状态时,接收到该请求时的设备行为。
示例
setup packet
[参考资料]
Universal Serial Bus Specification Revision 2.0
Universal Serial Bus 3.1 Specification
Universal Serial Bus 3.2 Specification
USB Complete, 5th Edition
本文链接:https://blog.csdn.net/u012028275/article/details/112005574