3、数字音频接口:I2S、TDM、PDM、S/PDIF、AES/EBU 协议简介

数字音频接口,说白了就是芯片之间、设备之间传音频数据的「高速公路」。选错接口,轻则音质受损,重则系统直接罢工。我刚开始做音频项目时,就吃过接口不匹配的亏——板子调了三天,最后发现是 I2S 的位时钟极性搞反了。

这一章,我把最常见的五种接口给你捋一遍。你不需要背寄存器,但得知道它们各自适合什么场景、有什么坑。

一句话总结:I2S 是芯片内部的主力;TDM 是 I2S 的多通道升级版;PDM 专为 MEMS 麦克风而生;S/PDIF 和 AES/EBU 是设备之间的「长途运输」协议。
数字音频接口知识体系 数字音频接口 芯片级(板内) 设备级(板间) I2S(2 通道) TDM(多通道) PDM(麦克风) S/PDIF(消费级) AES/EBU(专业级) 选接口 = 选通道数 + 传输距离 + 时钟方案 板内用 I2S/TDM/PDM,板间用 S/PDIF/AES/EBU

3.1 I2S:最经典的芯片间音频总线

I2S(Inter-IC Sound)是飞利浦在 80 年代搞出来的。到现在,几乎所有音频 Codec、DSP、蓝牙芯片都在用。它只有三条线:

  • BCLK(位时钟)——每个 bit 跳一次,频率 = 采样率 × 位深 × 通道数
  • LRCK(左右声道时钟)——切换左右声道,频率 = 采样率
  • SDATA(数据线)——串行传输音频数据

举个例子:44.1kHz、16bit、立体声,BCLK 就是 44.1k × 16 × 2 = 1.4112 MHz。这个数你最好记一下,调试时经常要拿示波器量。

我的习惯:画原理图时,I2S 的三根线尽量等长走线,尤其是 BCLK 和 LRCK。曾经有个项目,BCLK 走线长了 3cm,导致高速模式下数据采样出错,查了两天才发现。

I2S 的标准数据格式是:MSB 先传,左对齐,LRCK 低电平左声道、高电平右声道。但很多芯片厂商会搞「变种」——比如右对齐、PCM 模式。所以,对接两个芯片时,一定要先看 datasheet 里的时序图,别想当然。

3.2 TDM:I2S 的多通道进化版

I2S 天生只支持两个声道。如果你要做 8 通道麦克风阵列、或者 32 通道调音台,I2S 就不够用了。这时候 TDM(时分复用)上场。

TDM 本质上还是那三根线,但 LRCK 变成了帧同步信号(FSYNC),一个帧里可以塞 4、8、16 甚至 32 个时隙。每个时隙对应一个通道。

特性 I2S TDM
最大通道数 2 2~32(取决于 BCLK 频率)
帧同步信号 LRCK(50% 占空比) FSYNC(脉冲信号)
典型应用 立体声 Codec、蓝牙音频 麦克风阵列、多通道 ADC/DAC
布线复杂度 低 中(BCLK 频率更高)

嗯,这里要注意:TDM 的 BCLK 频率会随着通道数增加而飙升。比如 8 通道、48kHz、24bit,BCLK = 48k × 24 × 8 = 9.216 MHz。如果走线太长,信号完整性会出问题。我建议超过 8 通道时,尽量用差分驱动或加缓冲器。

3.3 PDM:MEMS 麦克风的「专属语言」

PDM(脉冲密度调制)跟上面两种完全不同。它不传 PCM 数据,而是传一串 1bit 的脉冲流。脉冲密度越高,代表信号幅度越大。

为什么 MEMS 麦克风喜欢用 PDM?因为内部就是一个 Σ-Δ 调制器,天然输出 1bit 流。省去了芯片内部的抽取滤波,成本低、功耗小。

PDM 只有两条线:

  • PDM_CLK——由主设备提供,典型频率 1~4 MHz
  • PDM_DATA——数据线,左右声道通常分时复用(上升沿左声道,下降沿右声道)
我曾经踩过的坑:PDM 麦克风的时钟频率不是越高越好。频率太高,接收端的抽取滤波器会来不及处理,导致数据溢出。我一般控制在 2.048 MHz 或 3.072 MHz,刚好跟 48kHz 采样率整数倍对齐。

PDM 信号不能直接听,必须经过抽取滤波转成 PCM。大多数 MCU 或 DSP 内部都有现成的 PDM 到 PCM 转换模块,但要注意滤波器的延迟——有些低端芯片的延迟能到 5ms 以上,做 ANC(主动降噪)时会出问题。

3.4 S/PDIF 与 AES/EBU:设备间的「数字音频线」

这两个协议本质上是同一套东西,只是物理层和连接器不同。

  • S/PDIF(Sony/Philips Digital Interface)——消费级,用 RCA 同轴或光纤(TOSLINK),传输距离 10 米左右
  • AES/EBU(Audio Engineering Society / European Broadcasting Union)——专业级,用 XLR 卡侬头或 BNC,平衡传输,距离可达 100 米

它们都采用双相标记编码(Biphase Mark Code),时钟和数据混在一起传。接收端需要从信号里恢复时钟——这就是所谓的「时钟恢复」。

你想想看,如果发送端和接收端的时钟有微小偏差,长时间播放就会产生「丢帧」或「重复帧」,表现出来就是咔嗒声或爆音。专业设备会用 PLL(锁相环)加 VCXO(压控晶振)来抑制抖动。

参数 S/PDIF AES/EBU
连接器 RCA / TOSLINK XLR / BNC
阻抗 75 Ω 110 Ω(XLR)/ 75 Ω(BNC)
电平 0.5 Vpp 3~10 Vpp
最大传输距离 ~10 m ~100 m
典型场景 CD 机、电视、游戏机 录音棚、调音台、广播设备
避坑指南:S/PDIF 的光纤接口有电气隔离优势,但光纤线弯折半径太小会断光路。同轴线则要注意阻抗匹配——75 Ω 的线配 75 Ω 的终端电阻,否则反射会导致误码。我曾经用 50 Ω 的示波器探头直接测 S/PDIF 信号,结果波形反射得一塌糊涂。

3.5 接口选型速查表

最后给你一张速查表,做方案选型时直接翻到这里就行:

需求场景 推荐接口 理由
立体声 Codec 对接 I2S 简单、成熟、几乎所有芯片都支持
4 路以上麦克风阵列 TDM 或 PDM TDM 灵活,PDM 适合 MEMS 麦
低功耗可穿戴设备 PDM 省掉 Codec,直连 MCU
消费级设备间互联 S/PDIF 光纤隔离、接口普及
专业录音棚级联 AES/EBU 长距离、抗干扰、多通道