UAC 选择单元描述符
2021-08-27
2068
0
UAC选择单元描述符的英文全称为: Selector Unit Descriptor,简称SUD.
和其它单元终端一样,选持单元描述符也有一个成叫bUnitID用于标识该单元的ID,该ID在整个UAC音频控制接口中必须惟一。
UAC选择单元功能
选择器单元用于从多个集群(其中每个包含多个逻辑通道)选择其中一个路由到输出通道。
UAC选择单元描述符定义-UAC1.0
typedef struct _SELECT_UNIT_DESCRIPTOR
{
UINT8 bLength;
UINT8 bDescriptorType;
UINT8 bDescriptorSubtype;
UINT8 bUnitID;
UINT8 bNrInPins;
UINT8 baSourceID[bNrInPins];
UINT8 iSelector;
}SELECT_UNIT_DESCRIPTOR;
- 0:bLength:UAC选择单元描述符的总长度。
- 1:bDescriptorType:接口类型CS_INTERFACE
- 2:bDescriptorSubtype:接口子类型SELECTOR_UNIT
- 3:bUnitID:选择单元ID
- 4:bNrInPins:拓扑中输入到该单元的管脚数量,该字段用于描述baSourceID数组的大小。
- 5:baSourceID:输入管脚连接到到该单元的的终端或单元ID
- 5+bNrInPins:iSelector用于描述该选择单元的字符串索引
bNrInPins 字段包含选择器单元的输入引脚 (p) 数。 输入引脚的连接通过包含 p 个元素的 baSourceID() 数组进行描述。 数组中的索引是从1开始的,并且与输入引脚编号直接相关。 BaSourceID(i) 包含输入引脚 i 所连接的单元或终端的 ID。
集群描述符,描述进入选择器单元的逻辑通道,这里不再赘述。
为了连接选择单元,进入选择单元的所有音频通道簇必须具有相同数量的通道。 然而,这些通道的空间位置可能因集群而异。 因此,主机软件应跟踪所有输入引脚以找到它们的“上游”连接,以定位进入选择器单元的所有输入引脚的集群描述符。 这进一步意味着与选择器单元的输出引脚相关联的集群描述符可以根据选择器单元的当前选择位置动态改变。
UAC选择单元描述符定义-UAC2.0
typedef struct _SELECT_UNIT_DESCRIPTOR
{
UINT8 bLength;
UINT8 bDescriptorType;
UINT8 bDescriptorSubtype;
UINT8 bUnitID;
UINT8 bNrInPins;
UINT8 baSourceID[bNrInPins];
UINT8 bmControls;//UAC2.0新增加
UINT8 iSelector;
}SELECT_UNIT_DESCRIPTOR;
- bmControls 字段包含一组位标识,指示存在哪些控件及其功能。 如果存在控件,则它必须是主机可读的。 如果某个控件不存在,则该位对必须设置为 0b00。 如果 Control 存在但只读,则必须将位对设置为 0b01。 如果控件也是主机可编程的,则位对必须设置为 0b11。 不允许使用值 0b10。
- D1..0: Selector Control
- D7..2: Reserved. Must be set to 0
UAC接口类型表
Descriptor Type | Value |
---|---|
CS_UNDEFINED | 0x20 |
CS_DEVICE | 0x21 |
CS_CONFIGURATION | 0x22 |
CS_STRING | 0x23 |
CS_INTERFACE | 0x24 |
CS_ENDPOINT | 0x25 |
Descriptor Subtype | Value |
---|---|
AC_DESCRIPTOR_UNDEFINED | 0x00 |
HEADER | 0x01 |
INPUT_TERMINAL | 0x02 |
OUTPUT_TERMINAL | 0x03 |
MIXER_UNIT | 0x04 |
SELECTOR_UNIT | 0x05 |
FEATURE_UNIT | 0x06 |
PROCESSING_UNIT | 0x07 |
EXTENSION_UNIT | 0x08 |
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936