摘要
I2S、TDM(Time Division Multiplexing)与PCM(Pulse Code Modulation)是数字音频芯片之间最常用的三种串列传输接口标准。无论是USB音频Codec、蓝牙音频SoC,还是DSP处理器,几乎每一款音频芯片都会标注自身支持的接口类型。
然而,这三种接口虽然都用来传音频数据,在时序关系、通道结构、时钟设计上存在本质差异。选错接口类型,可能导致音频无声、杂音、采样率错乱等一系列问题。
本文系统梳理三种接口的工作原理、电气特性、典型应用场景,并通过对比表帮助硬件工程师快速选型。
一、音频接口与数字音频基础
在讨论具体接口之前,有必要理解数字音频数据本身是如何组织的。
音频信号在数字域的原始形态是PCM数据——将模拟波形按固定时间间隔采样并量化为一系列二进制数值。PCM是数据本身,而非传输协议。I2S、TDM都是承载PCM数据的方式。
举例来说,44.1kHz/16bit的立体声,每秒产生44100 × 2 × 2 = 176,400字节的PCM数据,需要通过某种接口从SoC传输到DAC或Codec。
二、I2S接口详解
2.1 起源与标准化
I2S(Inter-IC Sound)由恩智浦半导体(原飞利浦半导体)在1980年代创立,最初目的是简化PCB板上音频IC之间的短距离连接。该接口从未成为正式的IEEE/IEC标准,但在业界被广泛接受为事实上(de facto)的音频接口标准。
2.2 接口信号
标准的I2S接口包含三根必需信号线:
| 信号名 | 全称 | 说明 |
|---|---|---|
| SCK / BCLK | Bit Clock 或 Serial Clock | 位时钟,每个比特数据对应一个时钟周期 |
| WS / LRCLK | Word Select 或 Left-Right Clock | 声道选择时钟,区分左声道和右声道 |
| SD / SDOUT / SDIN | Serial Data | 串行音频数据 |
此外,许多芯片还要求单独提供MCLK(Master Clock,主时钟),通常为采样率的256倍或384倍,用于芯片内部的过采样滤波器与时钟PLL。
2.3 时序与数据格式
I2S采用MSB(最高位)在前的传输方式,数据在WS切换后的第一个BCLK下降沿或上升沿开始有效(取决于芯片定义,硬件设计时需确认)。
典型I2S时序特点:
- WS频率 = 采样率(如44.1kHz)
- BCLK频率 = 采样率 × 声道数 × 位宽(如44.1kHz × 2 × 16 = 1.4112MHz)
- 数据相对WS有一个bit的延迟,这是I2S标准规定的two's complement补码数据格式要求
2.4 典型应用
- USB外置声卡:USB控制器通过I2S向Audio DAC传输解码后的PCM数据
- 蓝牙音频SoC输出:中科蓝讯AB系列、Realtek ALC系列通常通过I2S外接功率放大器
- DSP与Codec之间:主动降噪(ANC)DSP与蓝牙SoC之间常用I2S传输麦克风PDM数据(部分芯片内置PDM转I2S)
三、TDM接口详解
3.1 什么是TDM
TDM(时分复用)接口并不是专门为音频设计的,但在音频领域被广泛采用——特别是在多声道音频与麦克风阵列场景中。
TDM将多个声道的数据按时间片复用在一根数据线上。在一个完整的帧(Frame)内,依次传输第0、1、2至N声道的数据,每声道占用固定时隙。
3.2 TDM与I2S的关系
TDM是I2S的多通道扩展。 在硬件实现上,TDM通常复用I2S的数据线和时钟线,通过增加时隙(Slot)数量来容纳更多声道。多数音频SoC的I2S外设都支持配置为TDM模式。
典型的TDM帧结构中,每个时隙(Slot)承载一个声道的数据,slot数量可配置为2、4、8、16等。
3.3 接口信号
| 信号名 | 说明 |
|---|---|
| BCLK | 位时钟 |
| FSYNC / WS | 帧同步(也称slot clock) |
| SD | 串行数据(TDM模式下通常是多个声道的复用数据) |
3.4 典型应用
- 麦克风阵列:典型8-MEMS麦克风阵列使用TDM接口,通过一根数据线输出多路PDM数据(如Knowles、Goertek的麦克风模组)
- 多声道音频处理器:车载音频、AV功放等多声道系统内部用TDM传输
- SOC内部DSP与蓝牙子系统:在高通、联发科、恒玄的蓝牙音频SoC中,TDM用于DSP与基带之间的音频数据交换
四、PCM接口详解
4.1 PCM是传输方式还是接口?
这里需要区分两个层面的PCM:
- PCM数据格式:即最原始的脉冲编码调制数字音频,任何I2S/TDM传输的本质上都是PCM数据
- PCM接口:一种比I2S更简单的串行音频接口,仅传输单声道数据(有时双声道)
在芯片datasheet中,当厂家标注"PCM Interface"时,通常指后者——一种简化的音频传输协议。
4.2 PCM接口特点
PCM音频接口通常只需两根信号线:
- PCM_CLK / SCK:位时钟
- PCM_DIN / DOUT:数据线(单向)
部分实现会加一根同步帧时钟(SYNC)。与I2S相比,PCM接口没有显式的声道区分信号,而是通过时隙分配来实现左右声道(或多声道)复用。
4.3 典型应用
- 蓝牙模块音频接口:CSR(现高通)蓝牙芯片传统上大量使用PCM接口传输双向语音(蓝牙HFP通话)
- VoIP电话硬件:麦克风与Codec之间的单声道语音数据常用PCM传输
- 基础音频Timestamp:某些老旧的数字音频标准使用PCM接口
五、三种接口横向对比
| 特性 | I2S | TDM | PCM |
|---|---|---|---|
| 声道数量 | 立体声(2声道) | 2至16+声道可配 | 1至2声道 |
| 数据延迟 | 低(1 bit延迟) | 中等(取决于slot数) | 视配置而定 |
| 时钟域复杂度 | 中(需BCLK+WS+MCLK) | 高(需BCLK+FS+多slot) | 低(基础版仅需2线) |
| 主流采样率支持 | 44.1k至384kHz | 44.1k至384kHz | 8k至48kHz(语音为主) |
| 布线复杂度 | 中(3至4线) | 中(3至4线) | 低(2至3线) |
| 多芯片级联 | 困难(需额外MUX) | 容易(天然支持多slot) | 困难 |
| 典型应用场景 | 高保真音频Codec、DAC | 麦克风阵列、多声道DSP | 蓝牙HFP、VoIP |
六、硬件工程师选型建议
6.1 选I2S的场景
- 高保真音乐播放:44.1k/48kHz起步,需要Hi-Fi级DAC(如ESS9018、AK4493等)
- 外置Audio Codec:USB音频、独立DAC/ADC芯片,几乎标配I2S输入
- AB/D类功放前的数字信号链:蓝牙SoC → DSP → I2S → Class D功放芯片
注意事项:I2S接口的MCLK不是通过BCLK分频得到的,需要独立提供。这在多芯片系统中会增加时钟树设计的复杂度。
6.2 选TDM的场景
- 麦克风阵列(4至8路):TDM是业内标准,各MEMS麦克风厂商(Knowles、Goertek、BSE)均支持TDM输出
- 多声道音频处理:8声道以上的音频处理板级设计
- SOC内部音频总线:主SoC与音频子系统之间的内部音频连接
注意事项:TDM的多slot配置需要在主从设备之间严格对齐,包括slot宽度、slot数量和帧长度。建议使用主设备作为时钟主设备,从设备配置为从模式。
6.3 选PCM的场景
- 蓝牙通话音频(HFP):蓝牙模块(CSR、高通QCC)输出/输入单声道PCM语音数据
- 语音识别前置处理:麦克风 → Codec → PCM → 语音DSP的路径
- 简单的单向音频传输:对成本/布线敏感的消费电子
七、常见FAQ
Q1:I2S和TDM可以互相转换吗?
可以。很多SoC的I2S外设支持配置为TDM模式,反之亦然。在硬件上,需要确认BCLK频率和帧长度是否匹配。也可以使用单独的I2S/TDM接口芯片做硬件层面的协议转换。
Q2:MCLK和BCLK的关系是什么?可以不接MCLK吗?
MCLK(Master Clock)通常为采样率的256倍或384倍,用于芯片内部的过采样和PLL锁相。部分Codec支持从BCLK内部衍生MCLK(即self-clocking模式),但这会增加BCLK频率要求。具体是否需要MCLK,以芯片datasheet为准。
Q3:I2S接口的左右声道如何区分?
通过WS(Word Select)信号的电平状态:WS=1通常表示左声道,WS=0表示右声道(但部分芯片制造商会反向定义,硬件设计时需确认)。
Q4:TDM接口最多支持多少声道?
取决于芯片的TDM外设配置,常见的有4、8、16slot。理论上只要BCLK频率够高,slot数就可以增加。实践中,BCLK频率受限于芯片最高工作频率和PCB走线约束。
Q5:PCM接口和I2S接口,哪个音质更好?
音质取决于采样率和位宽,与接口类型本身无关。I2S的优势在于声道分离清晰、时序标准;PCM的优势在于连接简单。两者在相同的采样率/位宽下,理论音质无差别。
八、结论
I2S、TDM与PCM三种数字音频接口各有其最佳应用场景,理解其底层时序和适用条件是硬件工程师做好音频系统设计的基础。
快速记忆法:
- 立体声Hi-Fi → I2S
- 多声道/麦克风阵列 → TDM
- 语音/通话/简单传输 → PCM
在实际项目中,接口选型往往不是孤立的,还需要综合考虑主控芯片的接口支持情况、时钟树设计、以及PCB布线的信号完整性。建议在原理图设计阶段就与芯片原厂确认时序参数,并关注datasheet中的时序规格表。规格数据不确定处,请参考官方数据手册。