当前位置 博文首页 > dadalaohua的博客:【USB笔记】 标准请求 设置接口Set Interface
bmRequestType | bRequest | wValue | wIndex | wLength | Data |
---|---|---|---|---|---|
00000001B | SET_INTERFACE | Alternate Setting | Interface | Zero | None |
这个请求用于主机为指定的接口选择替代设置(alternate setting)。
bmRequestType | 00000001B |
---|---|
??bmRequestType.Recipient | 0b00001(Interface) |
??bmRequestType.Type | 0b00(Standard) |
??bmRequestType.Direction | 0b0(Host-to-Device) |
接收端:接口(Interface)
类型:标准(Standard)
方向:主机到设备(Host-to-Device)
SET_INTERFACE: 0x0b
选择的替代设置(alternate setting)。
这里的值是接口描述符 (Interface Descriptor)中的bAlternateSetting字段。
接口的编号。
这里的接口号是接口描述符 (Interface Descriptor)中的bInterfaceNumber字段。
wLength字段固定为0x0000。
如果wLength不为零,则无效,不指定设备的行为。
无数据阶段(Data stage)。
有些设备配置的接口具有互斥设置。该请求允许主机选择所需的替代设置(alternate setting)。如果设备只支持指定接口的默认设置,那么在请求的状态阶段(Status stage)可能会返回一个STALL事务包(STALL Transaction Packet)。这个请求不能用于更改配置的接口集合,如果需要更改则应使用SetConfiguration()请求代替。
如果接口或替代设置(alternate setting)不存在,则设备将以请求错误来响应,返回STALL。
如果wLength不为零,则不指定设备的行为。
这个请求会将bulk, interrupt, isochronous 的data toggles重置为DATA0 (USB 2.0)、Sequence Numbers重置为零(Enhanced SuperSpeed) 和重置增强型超高速批量端点(Enhanced SuperSpeed bulk endpoints)的突发大小(burst size)。
支持配置状态(Configured state),具体如下:
默认状态(Default state):未定义设备处于默认状态时接收到该请求时的设备行为。
地址状态(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/112045449
cs