在嵌入式音频系统中,常见术语如 I2S、TDM、PCM、PDM、SPDIF、AC'97 等常被混用,容易造成理解混乱。本文将从硬件接口、传输协议、数据格式三个层次出发,构建一个清晰的音频系统知识框架,适用于 RK3588、RK3576 等平台的音频开发与调试。
🧩 一、音频系统三层结构
音频系统(SoC)
│
├── 硬件接口(谁来传):
│ ├── I2S 控制器(如 RK3588)
│ └── SAI 控制器(如 RK3576,支持 128 SLOT)
│
├── 协议(怎么传):
│ ├── I2S:左右声道(2 通道)
│ ├── TDM:多通道(多个 SLOT)
│ ├── PDM:1bit 高速流(数字麦克风)
│ ├── SPDIF:光纤/同轴传输压缩音频
│ └── AC'97:老式音频总线(主板用)
│
└── 数据格式(传什么):
├── PCM:线性无压缩,最常见
├── ADPCM:语音压缩格式
├── μ-law / A-law:电话系统压缩格式
├── PDM:密度编码,需解码为 PCM
├── AC3 / DTS:压缩多声道音频
└── DSD:高保真格式,SACD 专用
📦 类比记忆法:音频系统 = 快递系统
| 类别 | 音频术语 | 类比解释 |
|---|---|---|
| 硬件接口 | I2S / SAI 控制器 | 快递公司(谁来送) |
| 协议 | I2S / TDM / PDM / SPDIF | 快递方式(怎么送) |
| 数据格式 | PCM / ADPCM / PDM / AC3 | 包裹内容(送什么) |
| SLOT(TDM) | 时间片/通道 | 快递车的货架格子(每格一个通道) |
🎼 二、常见协议与数据格式详解
- I2S(Inter-IC Sound)
- 串行音频协议,左右声道各占一个 SLOT。
- 适合 2 通道音频,如耳机、声卡。
- 数据格式通常为 PCM。
- TDM(Time Division Multiplexing)
- I2S 的扩展,支持多个 SLOT(如 8/16/32/128)。
- 每个 SLOT 对应一个通道,适合麦克风阵列、会议系统。
- 数据格式仍为 PCM。
- PDM(Pulse Density Modulation)
- 数字麦克风输出格式,1bit 高速流。
- 音量由"1"的密度表示,需解码为 PCM。
- 通常由 Codec 或 FPGA 解码。
- SPDIF(Sony/Philips Digital Interface)
- 用于光纤/同轴传输音频,支持 PCM 或压缩格式(AC3、DTS)。
- 常用于音响、电视、HDMI ARC。
- 仅用于输出方向,不适合采集。
- AC'97(Audio Codec '97)
- Intel 提出的老式音频总线协议。
- 使用 Frame + Slot 结构,支持多通道。
- 固定结构,不如 I2S/TDM 灵活。
🔊 三、音频数据格式对比表
| 格式 | 位宽 | 是否压缩 | 用途说明 | 是否需解码为 PCM |
|---|---|---|---|---|
| PCM | 16/24/32bit | 否 | 最常见,耳机、声卡、麦克风 | ❌ |
| ADPCM | 4bit(压缩) | 是 | 语音压缩,对讲机、蓝牙耳机 | ✅ |
| μ-law / A-law | 8bit | 是 | 电话系统压缩格式 | ✅ |
| PDM | 1bit 高速流 | 否 | 数字麦克风输出格式 | ✅ |
| AC3 / DTS | 16bit 压缩 | 是 | 家庭影院压缩音频 | ✅ |
| DSD | 1bit 超高采样 | 否 | SACD 高保真音频 | ✅ 或专用播放 |
✅ 几乎所有格式最终都需解码为 PCM,才能送入 DAC 播放或进行音频处理。
✅ 四、嵌入式开发实战建议
| 场景 | 推荐组合 | DTS 配置建议 |
|---|---|---|
| 普通耳机/麦克风 | I2S + PCM | format = i2s, bitclock = 64fs |
| 多通道采集 | TDM + PCM | slots = 8/16/32, slot-width = 32 |
| 数字麦克风阵列 | PDM + PDM | 需 Codec 解码为 PCM |
| 光纤/HDMI 输出 | SPDIF + AC3/DTS | 需外部解码器 |
| 老式主板音频 | AC'97 + ADPCM | 固定结构,驱动适配复杂 |
📌 总结
- I2S 是最常见的音频传输协议,适合 2 通道场景。
- TDM 是多通道扩展,适合麦克风阵列、会议系统。
- PDM 是数字麦克风的输出格式,需解码为 PCM。
- SPDIF 用于压缩音频输出,AC'97 是老式主板接口。
- 最终几乎所有音频数据都需解码为 PCM 才能播放或处理。