UAC规范(USB音频)
+ -

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   

0 篇笔记 写笔记

UVC 选择单元控制请求
选择单元控制描述符设置或读取视频功能的选择器单元内的选择器控件的属性。选择器单元表示视频流源选择器。CUR、MIN和MAX属性的有效范围是从1到选择器单元的输入管脚数。这个值可以在选择器单元描述符的bNrInPins字段中找到。RES属性只能有一个值。控制选择子SU_INPUT_SELECT_CON......
UAC 拓扑结构
UAC规范描述了以下类型的标准单元和终端,这些单元和终端被认为足以代表当前和近期可用的大多数视频功能:输入终端 - Input Terminal (IT)输出终端 - Output Terminal (OT)混音器单元 - Mixer Unit (MU)选择器单元 - Selector Uni......
UAC 选择单元描述符
UAC选择单元描述符的英文全称为: Selector Unit Descriptor,简称SUD.和其它单元终端一样,选持单元描述符也有一个成叫bUnitID用于标识该单元的ID,该ID在整个UAC音频控制接口中必须惟一。UAC选择单元功能选择器单元用于从多个集群(其中每个包含多个逻辑通道)选择其......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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