USB 设置配置(SetConfiguration)和设置接口(SetInterface)的区别与联系
2021-10-26
2919
2
在USB设备枚举的最后,主机都会对设备发送设置配置置(SetConfiguration)请求和对接口发送设置接口(SetInterface)请求,这两个控制请求在USB设备的工作中,具有重要的作用。
CTL 00 09 01 00 00 00 00 00 SET_CONFIGURATION 117us
CTL 01 0b 00 00 00 00 00 00 SET_INTERFACE 1.5ms
这里我们对设置配置(SetConfiguration)和设置接口(SetInterface)的联系和区别做一个总结:
- 设置配置的目标对象是设备,而设置接口的目标对象是接口
- 一个设备可能有一个种工作状态,也可能是多个工作模式,每一个工作模式叫做一个配置,大部分的设备一般只有一个工作模式,即一个配置。设备配置的数量存在于设备描述符bNumConfiguration中。设置配置就是选择设备的工作状态,选择第几个配置。
- 设备配置之后,可以通过GetConfiguration获取设备当前的工作配置。
- 如果需要重新进行设备配置,一般是需要对设备进行复位,然后重新SetConfiguration
- 设备SetConfiguration之后,需要在固件中记录一下当前的配置状态。
- 设置接口是发生在设置接口之后。
- 无论是同步传输,还是批量传输都需要设置接口。设置接口的是选择接口,由于批量传输端点所在的的接口一般没有备用接口,故选择接口就是选择备用接口为0的主接口。虽然只有一个接口,但在使用前也需要选择。
- 同步传输对设置接口使用的最多,由于备用接口的存在,选择不同的备用接口,可以选择不同流量的数据流带宽传输。
- 中断传输、控制传输不需要选择口。
- 选择接口的前提是设备已经选择配置,没有选择配置的选择接口是没有意义的,也不符合规范。
- 选择接口相当于选择设备某种工作模式下的工作状态切换,如音频的采集工作态,停止态。所以选择接口可以根据用户的实际需求可以动态切换,无需复位设备。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936