USB声卡方案的选择
前言
致尊敬的读者:
对于USB声卡这一领域了解较少的读者,您可以通过阅读本系列文章,解开对于USB声卡的些许疑问。对于在音频领域有相关经验的设计者,也希望我们的表述能够帮助你更加深入地了解USB声卡的应用,以及基于XMOS平台的音频设备的开发细节。
木瓜科技是英国XMOS重要的战略合作伙伴及芯片代理商,秉承着降低XMOS平台学习成本的初心,同时为了让读者能够更加清晰了解USB声卡方案的设计理论,本文章由木瓜科技的内部技术工程师(同时结合XMOS官网的原始文档)主导撰写。
我们努力将更多技术文档和代码资料与读者分享,以便读者能够根据文档资料,自行设计XMOS USB声卡的硬件和软件。为了本系列文章讲述的内容更具有可操作性,同时便于用户快速进入项目开发,文章将围绕XMOS USB声卡最新的主控芯片XU316-1024-QF60B-PP24介绍XMOS平台的详细开发流程。
文章覆盖的内容非常广泛,其中包含了XMOS USB声卡的评估选型,硬件设计,软件设计,参数测试,辅助工具,量产测试等等。同时,我们也在努力客观地表述XMOS USB声卡的理论知识点,以便读者能够在文章中获取比较系统的USB声卡的理论知识。如有表述有误的地方可以通过邮件反馈给我们。
深圳市木瓜电子科技有限公司
市场总监-邱松晓
社会需求
智能终端设备(手机、电脑)往往没有足够的音频接口进行高采样率和多通道的音频传输,因为智能终端设备一般仅集成设计了通用的3.5mm的耳麦接口,仅能满足普通消费者的简单应用需求。涉及到如下的两种更加深入的产品应用,则智能终端设备可能无法满足消费者的需求:
- 追求最真实的播放音质是HiFi音频领域不断发展的方向。往往由数字音频转换到模拟声音的时候,需要更高的采样率和更多数据量,才能更加有效还原真实的模拟声音。在高端的Hi-Res播放设备中,需要支持更高音频采样率类如384kHz/768kHz的传输,才能携带更加丰富的频谱信息。并且需要具备更加宽广的动态范围(Dynamic Range),更高的信噪比(SNR)和更低的失真度(THD)。
- 个人/团队追求高清录音是为了让真实的,美妙的歌声/乐器的声音得以存储和转递,更加真实的声音往往需要更高的音频采样率才能承载更多声音频谱信息。同时,为了达到演唱表演的需要,往往需要融合多种乐器的声音、个人演唱 的声音和背景音乐的声音。声卡有时也需要支持MIDI接口,多路模拟麦克风接口以及监听耳机接口。并使用混音算法(Mixer)以融合人声和音乐的声音。
基于上述两类需求,智能终端设备(手机、电脑)非常需要通过USB接口连接一个外置的音频设备用于扩展。通过USB实现音频传输,使用的是USB Audio Class(简称UAC)协议,这样的音频设备俗称为USB声卡。
方案框图
一个完整的USB声卡方案,需要如下所述硬件框图描述的硬件以及相辅相成的嵌入式软件才能完整实现。它必须要具备USB接口以及USB PHY以在智能终端显示USB声卡的枚举信息。同时通过Digital Audio的解码与传输(通常由MCU/FPGA完成)以及数字/模拟音频的转换(由ADC/DAC完成)来实现模拟音频信号的录制和播放,也需要Clock为整个系统提供音频时钟以满足特定音频采样率格式(例如48kHz~768kHz)。

关于各部分的具体说明如下:
USB部分:需要一个USB PHY收发器件,以最终通过USB 的DP与DM进行传输USB数据帧。也需要有软件逻辑完成 USB protocol的软件协议层装载USB数据帧内容(枚举信息,音频参数,音频数据等等)。USB protocol协议层也包含了UAC(USB Audio Class,即USB 音频类)内容。
Digital Audio部分:需要Digital Audio部分和USB部分进行音频数据传输,并且通过I2S,DSD和S/PDIF等音频接口将音频数据输 入或者输出,Digital Audio部分除传输音频外,还可以在这个环节处理音频信号,通常称为DSP。
Clock部分:音频采样率通常以44.1kHz和48kHz作为基数,以2的n次幂的乘数倍增。通常需要通过Clock组件产生数字音频所需要的MCLK,对于音频采样率最高为192kHz的USB专业声卡,这个时钟频率一般为24.576MHz/ 22.5792MHz 。MCLK可以为Digital Audio以及DAC/ADC处理提供同步时钟,USB 部分也可以利用MCLK以转载特定音频格式的数据帧。
模拟音频部分: 数字音频格式便于存储以及无损传输,而我们需要听到/录制声音时,则需要其表现为模拟音频。当需要将声音从电脑/手机播放出来或者通过模拟麦克风录入电脑/手机时,我们需要在声卡设备上进行数字/ 模拟信号的转换(ADC/DAC)。处理模拟音频时,一般需要使用运算放大器将较小的信号进一步放大。
综合以上的描述,一般的USB声卡方案的主控一般分为两种架构:
- 将 USB PHY芯片,Core芯片,Audio Clock时钟,模拟音频部分都叠封(封装)在芯片里面,即单芯片解决方案
- 仅仅将USB PHY芯片,Core芯片叠封在同一个芯片里面,预留出Audio Clock时钟和模拟音频部分给到用户自由选型和设计
这两种方式各有优势。前者集成度较高,具备价格优势,后者往往具备高性能,设计者能够基于同样的主控搭配不同等级的模拟设计,满足不同的市场需求。往往叠封在芯片里的模拟音频部分的ADC/DAC和运算放大器的性能参数已经固定了,无法再自由实现其他高性能的参数。而预留出模拟音频部分往往可以发挥更多的性能,比如支持更高的采样率,更高SNR和THD的ADC/DAC等等。
UAC 协议
UAC协议(USB Audio Class)是USB协议的一个子类,需要遵循USB IF 联盟Audio类协议来实现,一般操作系统(Windows, Linux, Mac OS)会遵循UAC协议在实现了UAC的Host(主机)端的UAC Driver, 而USB声卡设备一般完成了UAC的Device (设备)的 Driver。 这样主机和设备双方就通过标准的UAC协议进行握手和音频传输。
而UAC分为UAC1.0和UAC2.0,最明显的区别就是USB的带宽速率不一致。UAC1.0普遍仅最高支持立体声的96KHz@24bit的采样率,而UAC2.0则具备更高带宽,更低延时的优势。如果需要录制和播放更多通道和更高采样率,则选择UAC2.0的协议来实现USB声卡。
基于UAC2.0标准的USB异步传输端点不同采样率最大通道数量
| 44.1KHz | 48KHz | 88.2KHz | 96KHz | 176.4KHz | 192KHz | 352.8KHz | 384KHz | |
|---|---|---|---|---|---|---|---|---|
| Channel count(32bit) | 46 | 42 | 23 | 21 | 11 | 10 | 5 | 5 |
| other bit depth | - | - | - | - | - | - | - | - |
UAC 2.0的三种传输模式中:同步模式,异步模式,自适应模式中,异步模式可能会更加适用于专业音频中。异步模式使用设备端音频时钟源作为MCLK,设备端的音频时钟往往具备低抖动的特性,同时能够摒弃手机或者电脑非常不稳定的音频时钟源。且异步模式有一个比较明显的UAC协议特征,就是时钟feedback到Host端,能够实时将音频采样率和UAC 8000Hz的数据帧进行时钟对齐,以减少USB声卡的缓冲和延时。更多细节可以阅读XMOS USB Audio白皮书。
Audio Clock
Audio Clock音频时钟是数字音频的驱动力,为了满足UAC 2.0异步模式的要求,在USB声卡设备中,一定需要音频时钟源。这个音频时钟源可以通过设备中的外置晶振或者PLL来产生,通常市面见到的是24.576MHz和22.5792MHz, 其精度或抖动会直接影响音频的失真度。

I2S/TDM,S/PDIF等数字音频接口的时钟信号(如LRCLK,BCLK)都来源于这个音频时钟源。所以优秀的时钟源是确保数字接口,例如I2S中的MCLK,LRCLK和BCLK能够精确且完美的前提条件。当然这些时钟信号能否准时准点地实现对应的时钟沿,同样取决于处理器的处理速度和I/O的翻转速度。这些因素共同决定了音频质量。
当时钟质量不好时,可能的因素有I/O翻转的能力不足,时钟相位偏移,进而造成数字音频的错位接收,最终导致音频Sample失真。其他情况包括相位偏移积累到一定的时间长度,导致音频信号突变等等。
严格意义上看,使用FPGA来驱动这些时钟信号会更加完美。基于FPGA特性可以实现部分资源快速处理音频时序,并且利用其非常高的I/O翻转,确保了时钟信号的准时准点到达对应的上升沿/下降沿。
模拟音频
在数字部分满足要求的基础上,模拟音频将是USB声卡最具竞争力的环节,频率响应,信噪比(SNR),失真度(THD)和动态范围等 等参数都是辅助USB声卡产品的音频方向竞争力。它需要设备中众多器件来协助这些参数的提升:
- **电源:**需要非常干净的模拟电源,以便减低ADC/DAC,和运放芯片的基础噪声和谐波信号。
- **采样率:**采样率格式基本决定了频响范围和基础噪声,在专业音频领域中,96KHz@24bit 以上的采样率信息才能装载更宽的频响信息和更低噪声。
- 高性能ADC/DAC: 采样率,信噪比,失真度等性能往往受限于ADC/DAC,我们所理解专业音频中至少满足音频采样率支持最高96KHz,信噪比在100dB以上,失真度-90dB以上等等。另外也需要考虑左右声道干扰等因数。
- **运算放大器:**从小信号到放大信号的过程中,需要放大器不能重叠引入更多噪声和失真,以及需要其更快的放大响应,就是对运算放大器的性能要求。
在专业音频中,不建议以上的器件和Core叠封在同一个芯片里面。叠封在同一个芯片里面,则代表着固定了模拟音频的所有参数,往往限制了模拟音频应该有的特色,并且无法满足专业音频所需的音频质量。
其他
根据使用场景的不同,还有一些器材也会影响整个USB声卡的体验,如喇叭单元,麦克风单元,声学腔体,空间声场,流媒体软件等等。这些设备不属于USB声卡集成的范畴,故不在本文表述。
总结
一个优秀的,成功的USB声卡产品,需要支持完善的UAC协议,具备高质量的音频时钟信号,低抖动的数字信号,优秀的电源设计, 和高性能的ADC/DAC。在专业音频中,需要结合各个环节的高性能指标,将模拟音频部分的性能释放出来,并且采用优秀的元器件,才能为USB声卡产品带来更高的价值,设计出成功的产品。
在这样的理论范围下,XMOS方案能够成为优秀的USB声卡方案之一。而XMOS部分仅仅完成了数字音频部分,模拟音频部分需要考验模拟电路的设计功力。在保证数字音频的bit-perfect前提下,XMOS具备以下特性:
- 结合其XCORE的特性,利用了非常多的Core资源来实现了USB协议的完善度,尤其在UAC的高速传输,异步模式的协议稳定。
- 结合其灵活的I/O特性,能够轻易实现多种数字音频接口(I2S, TDM, DSD, SPDIF, MIDI, ADAT, PDM),轻易实现类似于8进8出的多通道传输。
- 结合剩余的core资源,除了能够处理一些逻辑控制类的MCU工作,也还能在core里面实现其他音频DSP算法处理。
在众多USB声卡方案中,也许XMOS在性能方面不如FPGA优秀。但是在成熟度,价格和软件开发的难度上,XMOS比FPGA更具优势。从2011年起,HiFi音频和专业音频的品牌商逐步都选择了XMOS USB声卡方案来处理其数字音频的传输,或许是因为其UAC协议的完整度,或许是因为其bit-perfect , 或许是因为其能灵活地去实现更多声道。
在后续的系列文章中,我们将会结合PXUA-XU316-KIT评估板和XU316-1024-QF60B-PP24来做实例分析,并讲解其软件开发的流程与细节。