USB2.0规范
+ -

USB 设置配置(SetConfiguration)和设置接口(SetInterface)的区别与联系

2021-10-26 2163 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   

0 篇笔记 写笔记

USB 设置接口SetInterface
ID请求码说明11SET_INTERFACE用于主机要求设备用某个描述符来描述接口SetInterface请求用于USB主机为设备指定的接口选择一个合适的替换值,该请求没有数据阶段。。bmRequestType(1)bRequest(1)wValue(2)......
USB 设置配置 SetConfiguration
ID请求码说明9SET_CONFIGURATION用于主机指示设备采用的要求的配置SetConfiguration请求与GetConfiguration相对应,用于主机为USB设备设置一个合适的配置值 ,该请求无数据阶段。一般的设备只有一个配置,当有多个配置时,会让用户选择。一个设备只能工作在一个配......
Windows下USB驱动SET_INTERFAC失败 bad pipe flags
最近在调试一个UVC摄像头,由于项目的原因,需要在驱动下对UVC协议进行模拟,以实现在驱支层打下固件,从而读取数据的要求。本以为这是一个很简单的事,没想到还是耽搁了一点时间,花了一点小功夫。打开USB摄像头,对UVC协议的模拟主要是是USB特定类请求的模拟,通过我们的基础知识可知道,上层应用或驱动......
USB 设置配置(SetConfiguration)和设置接口(SetInterface)的区别与联系
在USB设备枚举的最后,主机都会对设备发送设置配置置(SetConfiguration)请求和对接口发送设置接口(SetInterface)请求,这两个控制请求在USB设备的工作中,具有重要的作用。 CTL 00 09 01 00 00 00 00 00 ......
USBIP 选择配置SetConfiguration
static NTSTATUSstore_urbr_submit(PIRP irp, struct urb_req *urbr){... case URB_FUNCTION_SELECT_CONFIGURATION: status = store_urb_select_......
USBIP 选择接口URB_FUNCTION_SELECT_INTERFACE
URB_FUNCTION_SELECT_INTERFACE命令发起static NTSTATUSstore_urbr_submit(PIRP irp, struct urb_req *urbr){... case URB_FUNCTION_SELECT_INTERFACE: ......
URB URB_FUNCTION_SELECT_INTERFACE分析详解
URB_FUNCTION_SELECT_INTERFACE对应的USB标准请求是SetInterface。很奇怪,一个是Select,一个是Set.是微软故意的么。在SetInterface中,其wIndex对应的是InterfaceId,wValue对应的是AlterInterfaeId,......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!