USB设备的音频类UAC

发布于:2024-04-26 ⋅ 阅读:(20) ⋅ 点赞:(0)

一、UAC简介

        UAC(USB Audio Class)是USB设备的音频类,它定义了USB音频设备与主机计算机通信的方式。UAC标准是USB规范的一部分,并受到各种操作系统(包括Windows、macOS和Linux)的支持。

        UAC是基于libusb,实现对外接音频操作,从用户功能来说,主要包括USB麦克风、USB声卡和其它音频设备的功能控制和接口标准。

二、UAC标准的主要功能包括:

        (1)设备枚举和配置: UAC标准定义了USB音频设备如何由主机计算机枚举和配置。这包括识别设备,确定其功能以及加载相应的驱动程序。

        (2)音频数据传输: UAC标准定义了音频数据如何在USB音频设备和主机计算机之间传输。这包括设置采样率、位深度和通道数,以及传输音频数据包。

        (3)控制和功能支持: UAC标准定义了一套标准控件和功能,由USB音频设备支持。这包括音量控制、静音和增益控制,以及更高级的功能,例如混音器路由和效果处理。

三、UAC设备可用于多种目的,包括:

        (1)录音: UAC设备可用于从麦克风或其他模拟源录制音频。

        (2)播放: UAC设备可用于从数字源(例如计算机或媒体播放器)播放音频。

        (3)处理: UAC设备可用于处理音频,例如应用效果或混合多个源。

UAC是一种通用且广泛支持的标准,可轻松将USB音频设备连接到计算机。 因此,UAC设备通常用于各种应用,包括音乐制作、家庭影院和游戏。

四、以下是使用UAC标准的一些USB设备示例:

        (1)USB麦克风: USB麦克风是录音的流行选择,因为它们易于使用并提供高品质的声音。

        (2)USB耳机: USB耳机通常用于VoIP通话和游戏,因为它们提供麦克风和扬声器功能。

        (3)USB DAC: USB DAC(数字模拟转换器)将来自计算机的数字音频信号转换为模拟信号,可由扬声器或耳机播放。

        (4)USB音频接口: USB音频接口是多功能设备,可用于各种目的,例如录音、播放和处理音频。

五、UAC设备类

六、USB音频子类

        USB音频类定义在接口层,而USB音频类又分为不同的子类(SubClass)以便于进一步的细节枚举和设置。所有的USB音频功能都被包括在USB音频类的子类中。USB定义了3种不同的音频子类:

        (1) AudioControl Interface Subclass 音频控制接口子类

        (2) AudioStreaming Interface Subclass 音频流接口子类

        (3) MIDIStreaming Interface Subclass MIDI流接口子类

七、USB标准描述符

        在USB设备的逻辑组织中,包含devices、config、interface和endpoint4个层次。

        根据usb描述符相关知识得知,usb有config,然后下面有多个interface,interface下面有多个endpoint。根据interface的class和subclass值可以区分interface类型,比如video的class值是14,audio的class值是1等,根据这个可以识别复合设备的interface。然后每个interface下面有多个endpoint,endpoint存在address,这个是数据传输的通道。每个endpoint存在不同的数据格式,比如我在项目中使用的多个usb麦克风,有的MIC每个endpoint对应一种格式,比如双通道/16位/48KHZ。但也有一个endpoint对应多种格式的

UAC使用以下协议进行通信:

        USB控制传输协议(Control Transfer Protocol): 控制传输协议用于设置设备参数和监控设备状态。

        USB批量传输协议(Bulk Transfer Protocol): 批量传输协议用于传输音频数据。

        USB中断传输协议(Interrupt Transfer Protocol): 中断传输协议用于传输状态消息。