I2S 协议简介
什么是 I2S?
I2S,全称 Inter-IC Sound 或 Integrated Interchip Sound,是一种用于在数字音频设备之间传输高质量音频数据的同步串行通信协议。它最初由飞利浦半导体(现恩智浦 NXP)在 1986 年提出,现已成为数字音频领域的行业标准。
核心目标:在芯片之间(例如,在微控制器、数字信号处理器、ADC/DAC 转换器、音频编解码器之间)提供纯净的、与模拟无关的数字音频传输路径,避免在信号路径中多次进行数模/模数转换,从而保证音质。
主要特点
- 专门为音频设计:不同于 I2C 或 SPI 等通用协议,I2S 是专门为传输 PCM 音频数据而优化的。
- 分离数据和时钟:将音频数据与精确的时钟信号分离,确保接收端能准确无误地重建数据。
- 最少引脚:仅需 3 条基本信号线,硬件连接简单。
- 主从模式:支持主从设备配置,通常由产生时钟的设备(如主控芯片或编解码器)作为主机。
核心信号线(3 线基本配置)
I2S 最少需要 3 条信号线(不含地线):
-
SCK / BCLK(串行时钟,Bit Clock)
- 功能:每一位音频数据的变化都对应一个时钟脉冲。
- 频率 =
2(左右通道) * 量化位数 * 采样率。 - 例如,对于 16 位、44.1kHz 的立体声音频,
BCLK = 2 * 16 * 44100 = 1.4112 MHz。
-
WS / FS(字选择,Word Select 或帧同步,Frame Sync)
- 功能:指示当前传输的是左声道数据还是右声道数据。
- 低电平通常表示左声道,高电平表示右声道。
- 频率 = 采样率(例如 44.1kHz)。
- 它在 BCLK 的某个边沿变化,并在下一个 BCLK 周期开始传输对应声道的数据。
-
SD(串行数据,Serial Data)
- 功能:实际传输的音频数据(二进制补码格式)。
- 数据在 WS 变化后的第二个 BCLK 上升沿(或下降沿,取决于配置) 开始传输,最高位(MSB)优先。
可选信号线:
- MCLK(主时钟,Master Clock):对于一些高性能编解码器,需要一个更高频率的系统主时钟,通常是采样率的 256 倍或 384 倍(如 44.1kHz * 256 = 11.2896 MHz),为其内部 PLL 和数字滤波器提供精确的时钟源。
数据格式与时序
这是理解 I2S 的关键。下图清晰地展示了三个信号的关系:

常见变体和工作模式
I2S 标准有一些常见的变体,主要区别在于 WS 信号和数据的相对时序:
- 标准 I2S 模式(如上所述):数据在 WS 变化后的第二个 BCLK 上升沿开始,在第一个 BCLK 边沿无效。
- 左对齐模式:数据在 WS 变化后的第一个 BCLK 上升沿立即开始。减少了延迟,对时序要求更高。
- 右对齐模式:数据的最低位对齐到 WS 变化前的最后一个 BCLK 上升沿。不太常用。
设备的数据手册会明确说明支持哪种模式。
典型应用场景
- 单片机播放音频:MCU(主)从 SD 卡读取 WAV 文件,通过 I2S 接口发送给外部 DAC 芯片,再由 DAC 驱动扬声器。
- 录音设备:麦克风阵列通过 ADC 芯片(从)将模拟信号转为数字信号,再通过 I2S 发送给 DSP 或 MCU(主)进行处理。
- 高端音频系统:数字音源(如 CD 转盘)通过 I2S 直接将数据传送给外置 DAC 和解码器,以获得最佳音质。有时会使用 HDMI 或 LVDS 传输 I2S 信号,以减少干扰。
- 嵌入式设备:如智能音箱、蓝牙耳机、手机内部,应用处理器通过 I2S 连接音频编解码器芯片。
总结
| 特性 | 描述 |
|---|---|
| 全称 | Inter-IC Sound |
| 目的 | 芯片间高质量数字音频传输 |
| 核心线 | SCK(位时钟)、WS(左右声道时钟)、SD(数据线) |
| 数据格式 | PCM,二进制补码,MSB 优先 |
| 关键时序 | 数据在 WS 变化后的第二个 SCK 边沿开始有效 |
| 主从模式 | 支持,时钟由主机提供 |
| 优点 | 简单、专为音频优化、抗干扰能力强、音质纯净 |
留下评论