UVC 接口关联描述符IAD

UVC学习笔记是以最新的UVC1.5为基础,带你学习和了解最新的UVC规范和协议。

设备必须使用接口关联描述符来描述需要视频控制接口和一个或多个视频流接口的每个设备功能的视频接口集合。标准的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)的字符串。
作者使用windows开发UVC摄像头驱动,欢迎加入字节流官方QQ群:952873936或联系站长进行技术交流。
字节流是站长多年来的工作经验和技术总结,和站长一起学习,每天都有进步。
微信公众号
字节流公众号  字节流QQ群:952873936
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

Powered by bytekits.com,汇天下文字,成非凡梦想!!!