UVC 接口关联描述符IAD
2020-09-28
6066
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