UVC规范(USB摄像头)
+ -

UVC 接口关联描述符IAD

2020-09-28 4950 8

设备必须使用接口关联描述符来描述需要视频控制接口和一个或多个视频流接口的每个设备功能的视频接口集合。标准的VIC接口关联描述符接口关联描述符ECN中定义的标准接口关联描述符相同,只是有些字段现在具有专用值。

说明:

如果视频控制接口是视频接口集合的一部分,则接口关联描述符IAD中的iFunction字段和此视频控制接口中的iInterface字段必须相等。

接口关联描述符IAD定义如下:

//
// USB 2.0 ECN: USB ECN : Interface Association Descriptor, 9.X.Y Interface Association,
//     Table 9-Z. Standard Interface Association Descriptor
// USB 3.0: 9.6.4 Interface Association, Table 9-16. Standard Interface Association Descriptor
//
typedef struct _USB_INTERFACE_ASSOCIATION_DESCRIPTOR {
    UCHAR   bLength;            //长度为8
    UCHAR   bDescriptorType;    //USB_INTERFACE_ASSOCIATION_DESCRIPTOR_TYPE,值为0x0b
    UCHAR   bFirstInterface;    //第一个接口编号
    UCHAR   bInterfaceCount;    //接口总数量
    UCHAR   bFunctionClass;        //视频接口类代码CC_VIDEO,值0x0E
    UCHAR   bFunctionSubClass;    //视频子类接口代码 SC_VIDEO_INTERFACE_COLLECTION,值为0x03
    UCHAR   bFunctionProtocol;     //未用,必须为PC_PROTOCOL_UNDEFINED,值为0x00
    UCHAR   iFunction;            //字符串描述符索引
} USB_INTERFACE_ASSOCIATION_DESCRIPTOR, *PUSB_INTERFACE_ASSOCIATION_DESCRIPTOR;

C_ASSERT(sizeof(USB_INTERFACE_ASSOCIATION_DESCRIPTOR) == 8);
  • bLength :接口关联描述符的长度,固定长度为8
  • bDescriptorType:描述符类型,接口关联描述符类型定义为USB_INTERFACE_ASSOCIATION_DESCRIPTOR_TYPE,值为0x0b。
  • bFirstInterface:第一个接口编号。关联描述符中的接口号必须连续。
  • bInterfaceCount:接口总数量(包括视频控制接口和所有视频流接口
  • bFunctionClass:定义了视频接口类代码CC_VIDEO,值0x0E
  • bFunctionSubClass:定义了视频子类接口代码 SC_VIDEO_INTERFACE_COLLECTION,值为0x03.
  • bFunctionProtocol: UVC未使用此字段,设置为PC_PROTOCOL_UNDEFINED,值为0x00
  • iFunction:关联接口描述符字符串描述符索引,用于设备功能的描述,且至少实现了英语(LANGID=0x0409)的字符串。

接口关联描述符IAD的说明

坑A的小魏喂
请教一个问题,USB设备复合成两个设备的时候是不是可以不加关联描述符?
@坑A的小魏喂 如果有UVC,UAC这种是需要的

USB中文网 9:22:20
如果是比较简单的如U盘,HID的可以不要

坑A的小魏喂 9:22:38
HID和winusb

坑A的小魏喂 9:23:53
之前看网上的资料只是说不需要,没有说哪一些需要用到,或者不用

坑A的小魏喂 9:24:09
USB中文网
如果是比较简单的如U盘,HID的可以不要
@USB中文网

USB中文网 9:32:40
如是一个设备需要2个或者2个以上的接口描述符(像UVC,UAC)就需要

USB中文网 9:32:50
其余的如一个接口代表一个设备,就不需要了

USB中文网 9:33:02
因为要身接口就是设备功能

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 篇笔记 写笔记

UVC 接口关联描述符IAD
设备必须使用接口关联描述符来描述需要视频控制接口和一个或多个视频流接口的每个设备功能的视频接口集合。标准的VIC接口关联描述符与接口关联描述符ECN中定义的标准接口关联描述符相同,只是有些字段现在具有专用值。说明:如果视频控制接口是视频接口集合的一部分,则接口关联描述符IAD中的iFuncti......
UVC UVC驱动接口关联描述符IAD失踪之迷
先说一下,本人所使用的操作系统是WIN10 x64操作系统Microsoft Windows [版本 10.0.14393](c) 2016 Microsoft Corporation。保留所有权利。这是win10一个相对比较老的版本。新旧的混淆在微软件主的官方文档 USB Interfac......
UAC 接口关联描述符
和UVC设备的接口关联描述符的功能一样,UAC的接口关联描述也用于组织UAC的音频控制接接口和UAC的音频流接口描述符及其子描述符。接口关联描述符的结构定义typedef struct _USB_INTERFACE_ASSOCIATION_DESCRIPTOR { UCHAR bLengt......
USB 接口关联描述符
对于复合USB设备的接口描述符,可以在每个类(Class)要合并的接口描述符之前加一个接口关联描述符(Interface Association Descriptor,IAD),其作用就是把多个接口定义成一个类设备,即多个接口作用于一个设备。接口关联描述符的定义如下:typedef struct......
从UVC摄像头配置描述符的长度区别来理解USB接口关联描述符IAD
对于如下的UVC摄像头,其在设备管理器中如下图所示:其硬件ID分别为:USBVID_33F1&PID_1035&REV_0409USBVID_33F1&PID_1035&REV_0409&MI_00可以看到,其根设备是使用的USBCCGP.sy......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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