UAC 简介及版本对比
什么是UAC/UAD
UAC是USB Audio Class的缩写,有时也叫UAD,UAD是USB Audio Device的缩写。
UAC/UAD定义了在USB规范下实现音频的设备的实现和控制功能,这些功能包括不仅音频数字部分的,也包括模拟部分。这些音频数据(模拟和数字)和用于直接控制音频环境的功能,如音量和音调控制。这个音频设备类不包括操作与音频数据的复制,如磁带传输机制或CD-ROM驱动器控制。
ADC(模拟转数字)之前的是模拟部分,之后的是数字部分。
DAC(数字转模拟)之前的是数字部分,之后是模拟部分。
从用户功能来说,主要包括USB麦克风、USB声卡和其它音频设备的功能控制和接口标准,但其内部却有多种复杂的功能。
UAC设备类
根据USB设备类定义,UAC设备的类号为1.
#define USB_DEVICE_CLASS_AUDIO 0x01
UAC和UVC的区别
我们一般购买的USB摄像头,不但包括摄像头本身,大部分情况下也包含一个USB麦克风。这种设备遵循USB通用驱动规范,在Windows下由USB驱用驱动程序USBCCGP.sys实现枚举其子设备。
如笔者手中有一UVC摄像头,在Windows下系统根据其接口关联描述述分别枚举出一个UVC摄像头和一个UAC麦克风。
所以说,UVC和UAC分别对应USB的两种设备类型规范,只是由于在日常使用过程中通常两者一起存在而已。‘
对UVC规范感兴趣的同学可以查看本站的UVC规范1.5教程。
UAC的版本及历史
UAC经历了以下几个版本:
版本 | 时间 | 文档 | 描述 |
---|---|---|---|
1.0 | Mar. 18, 98 | Audio10.pdf | Release 1.0 |
2.0 | May. 31, 06 | Audio20 final.pdf | Release 2.0 |
3.0 | Sep. 22, 16 | Audio30.pdf | Release 3.0 |
3.0-Errata | Apr. 05, 19 | Audio30-Errata.pdf | Release 3.0-Errata |
关于Windows对UAC的版本支持,这里有一个讨论:https://answers.microsoft.com/en-us/insider/forum/insider_wintp-insider_devices/windows-support-for-usb-audio-20/0d633b9f-3193-4c63-8654-fb10b3614a04?page=1&auth=1
UAC支持版本对比图
UAC3.0的兼容性
UAC3.0不兼容以前的任何版本。
当然如果为了实现与UAC1.0和UAC2.O版本的兼容,需要做以下几点:
- 设备的第一个USB配置描述符(索引0)应包含音频接口符合ADC 1.0或ADC 2.0的关联(AIA)。换句话说,如果主机软件选择第一个索引设备配置,设备应显示符合ADC 1.0或ADC 2.0。此要求应允许音频功能与现有主机完全互操作与当前传统ADC 1.0或ADC 2.0函数相同。
- 使用第二个配置描述符实现UAC3.0。