USB设备的音频类UAC

一、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): 中断传输协议用于传输状态消息。

 

 

相关推荐

  1. 关于UAC标准音频数据传输端点最大包长问题

    2024-04-26 07:24:04       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-26 07:24:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-26 07:24:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-26 07:24:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-26 07:24:04       18 阅读

热门阅读

  1. Python基础:【习题系列】函数

    2024-04-26 07:24:04       14 阅读
  2. python爬取电影

    2024-04-26 07:24:04       14 阅读
  3. 2024年新版宝塔面板如何安装WordPress网站教程

    2024-04-26 07:24:04       16 阅读
  4. SSH远程直连服务器docker容器的jupyter

    2024-04-26 07:24:04       14 阅读
  5. 线程、线程组、线程池、锁、事务、分布式

    2024-04-26 07:24:04       13 阅读
  6. CentOS中安装python3

    2024-04-26 07:24:04       13 阅读
  7. go 环境安装

    2024-04-26 07:24:04       16 阅读
  8. 如何在 CentOS 7 上配置 WordPress 并解决常见问题

    2024-04-26 07:24:04       17 阅读
  9. windows下的文件路径怎么在pycharm中使用(python)

    2024-04-26 07:24:04       11 阅读
  10. docker 安装 Sql Server

    2024-04-26 07:24:04       14 阅读
  11. android studio SQLite数据库的简单使用

    2024-04-26 07:24:04       14 阅读
  12. okhttp

    2024-04-26 07:24:04       11 阅读
  13. MySQL 开源到商业(二):开源骇客沦为大厂社畜

    2024-04-26 07:24:04       13 阅读
  14. 容易记混的方法slice、splice、split

    2024-04-26 07:24:04       14 阅读