UAC 拓扑结构

UAC 规范描述了以下类型的标准单元和终端,这些单元和终端被认为足以代表当前和近期可用的大多数视频功能:

  • 输入终端 - Input Terminal (IT)
  • 输出终端 - Output Terminal (OT)
  • 混音器单元 - Mixer Unit (MU)
  • 选择器单元 - Selector Unit (SU)
  • 特性单元 - Feature Unit (FU)
  • 采样速率转换单元 - Sampling Rate Converter Unit (RU)
  • 特效单元 - Effect Unit (EU)
  • 处理单元 (PU) - Processing Unit (PU)
  • 扩展单元 (XU) - Extension Unit (XU)

除了单元和终端外,还引入了时钟实体的概念。定义了三种类型的时钟实体

  • 时钟源 - Clock Source (CS)
  • 时钟选择器 - Clock Selector (CX)
  • 时钟倍频器 - Clock Multiplier (CM)

UAC 设备拓扑结构

控件通常提供对特定的音频或时钟属性。每个控件都有一组可以操作或显示的属性。

有关控件行为的其他信息。控件可以具有以下属性:

  • 电流设置属性
  • 范围属性三元组包括:
    • 最小设置属性
    • 最大设置属性
    • 分辨率属性
  • 中断启用属性

例如,考虑要素单元内的音量控制。通过发出适当的 Get 请求,主机软件可以获取音量控制的属性值,例如,使用它们来正确显示控制。设置音量控制的当前属性允许主机软件更改音量音量设置控制。

另外,音频功能中的每个实体都可以有一个内存空间属性。此属性提供对实体内部内存空间的通用访问。

UAC 音频控制

一个 USB 设备可能包含多个配置。像手机一样,当手机通过 USB 线缆接入 PC 机后,会弹出一个选择对话框:

让用户选择。当然一个 USB 设备只能工作在一种配置描述符下。

对于每一个 USB 配置描述符,可能含有多个 USB 接口描述描述符,同时这些接口描述符可能每个接口描述符又包含多个转换接口描述符。

这些接口描述符可能每一个接口描述符实现的是不同的独立的功能或者多个接口描述符组合实现一些设备功能。 在实际的设备工作中,可能又因为工作状态的不同,这些接口描述符进行转换接口的切换。

UAC 音频设备的接口的分类

这些接口配合实现的 UAC 设备接口,分为两种,分别叫做 UAC 音频控制接口和 UAC 音频流接口。

  • UAC 音频控制接口:用于实现 UAC 音频控制接口及拓扑结构的枚举
  • UAC 音频流接口:用于音频数据流的传输

UAC 音频控制接口

为了控制特定音频功能的功能行为,主机可以操纵时钟实体、单元以及音频功能内部的终端。为了使这些对象可访问,音频功能应提供单音频控制接口。此接口可以包含以下端点:

  • 控制端点,用于操作时钟实体、单元和终端设置以及检索系统状态音频功能。此端点是必需的,默认端点 0 用于此目的。
  • 中断端点。中断端点是可选的,如果设备需要通知主机音频功能行为变化。

音频控制接口是访问音频功能内部的惟一入口。所有要求与音频功能的时钟实体、单元或内部音频控件的操作有关终端应指向音频功能的音频控制接口。所有与音频功能的描述符都是音频控制接口描述符的一部分。音频控制接口的转换接口 AlternateSetting 只能为 0。

UAC 音频控制接口中的音频控制端点

音频控制端点使用默认的 USB 端点 0 来进行 UAV 音频的功能控制。实现方式是 UAC 通过端点 0 发送 USB 特定类请求。

UAC 音频控制接口中的音频中断端点

UAC 音频中断端点是可选的。通过此中断端点可以向主机上报动态中断的信息,这些信息可来源于可寻址实体(时钟实体、终端、单元、接口和端点)。

中断控制端点返回的数据长度为 2 字节,分别为 bStatusType 和 bOriginator。

  • bStatusType 的 D7 位标识中断是否挂起,D6 用于标识是否是固件内存变化中断(通过 Get Memory 特定类请示清除),D4,D5 保留为 0,D0-D3 为 0 表示是中断来源于音频控制接口,为 1 表示中断来源于音频流接口,为 2 表示中断来源于音频流接口端点,值 3-15 保留。
  • bOriginator:根据中断的来原于用标识中断源的 ID 或端点地址。

UAC 音频流接口

UAC 音频流接口用于传输音频流数据。一个 UAC 音频设备可以有多个音频流接口,每个音频流接口可以传输不同的音频数据格式。每一个音频流接口只能有一个等时传输端点,这样保证的是数据的传输与端点相关。

音频流接口包含转换接口进行音频流的切换。但至少包含一个转换接口为 0 的零带宽即不传输音频流接口和一个包含实际传输数据的转换接口 1。

UAC 音频其它控制

  • 时钟控制
  • 电源域控制
  • 按钮控制:分为通过 HID 接口实现和音响控制的一个组成部分

参考文献

《USB2.0 协议规范》
《UAC2 协议规范》