UAC 类特定音频控制接口头描述符
2021-02-04
6060
0
UAC类特定音频控制头接口描述符这个名字有点绕,其实这个描述符是前接标准的音频控制接口描述符,后续关于音频控制的所有相关描述符,起着承上起下的作用。
当然也可以认为是音频控制相关描述符的前导。这是因为UAC类特定音频控制接口描述符含有一个关键的字段wTotalLength,用于包含音频控制所有接口描述符的总大小。
类特定音频控制接口头描述符数据结构定义-UAC1.0
typedef struct _USB_AC_HEADER
{
UINT8 bLength;
UINT8 bDescriptorType;
UINT8 bDescriptorSubType;
UINT16 bcdADC;
UINT16 wTotalLength;
UINT8 bInCollection;
UINT8 baInterfaceNr[bInCollection];
} USB_AC_HEADER;
- bLength:该接口本身的大小,固定为8+N。
- bDescriptorType:属于接口描述符类型,CS_INTERFACE,值为0x24
- bDescriptorSubType:描述符的子类型,属于头描述符子类型=0x01
- bcdADC: UAC协议版本。
- wTotalLength:总长度,包括自身及后续的如时钟描述符,单元描述符,终端描述符。
- bInCollection:所有的音频流接口数量N。
- baInterfaceNr:音频流的接口索引,多个依次后续连接。
类特定音频控制接口头描述符数据结构定义-UAC2.0
typedef struct _USB_AC_HEADER
{
UINT8 bLength;
UINT8 bDescriptorType;
UINT8 bDescriptorSubType;
UINT16 bcdADC;
UINT8 bCategory;
UINT16 wTotalLength;
UINT8 bmControls;
} USB_AC_HEADER;
- bCategory:常量,音频的功能。
Audio Function Subclass Code | Value |
---|---|
FUNCTION_SUBCLASS_UNDEFINED | 0x00 |
DESKTOP_SPEAKER | 0x01 |
HOME_THEATER | 0x02 |
MICROPHONE | 0x03 |
HEADSET | 0x04 |
TELEPHONE | 0x05 |
CONVERTER | 0x06 |
VOICE/SOUND_RECORDER | 0x07 |
I/O_BOX | 0x08 |
MUSICAL_INSTRUMENT | 0x09 |
PRO-AUDIO | 0x0A |
AUDIO/VIDEO | 0x0B |
CONTROL_PANEL | 0x0C |
OTHER | 0xFF |
- bmControls:位图,表示非可寻址控制功能的操作类型。D1..0: 控制类型,其它位必须为0。
- b00:无控制
- b01: 只读
- b10: 保留
- b11: 控制可编程即可读写
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936