


第一张图:I2S 总线的 "三根线" 和 "传输规则"
你可以把 I2S 想象成一个立体声广播系统,它有三根关键的 "线" 负责把声音从 ESP32S3 传到喇叭 / 耳机,或者从麦克风传到 ESP32S3:
-
LRCLK(左右声道选择线):
- 就像一个频道切换开关,它的电平高低决定现在传的是左声道还是右声道。
- 它的频率就是采样率(比如 44.1KHz),意思是每秒切换左右声道 44100 次,每次切换就传一个声道的声音数据。
- 图里的
1/fs就是一个完整的 "左 + 右" 声道周期,对应一帧音频数据。
-
BCLK(时钟线):
- 这是整个系统的节拍器,每 "滴答" 一下,就传一个 bit 的数据。
- 它的频率比 LRCLK 高很多,比如采样率 44.1KHz、16 位音频,BCLK 频率就是
44.1KHz × 16位 × 2声道 = 1.4112MHz,这样才能在一个声道周期里传完所有数据。
-
SD(数据线):
- 这是真正的声音快递通道,音频数据从最高位(MSB)开始,一个 bit 一个 bit 地传,直到最低位(LSB)结束。
- 图里的
Word Length (WL)就是每个声道数据的 "包裹大小",比如 16 位、24 位。
-
主从模式:
- ESP32S3 通常作为主设备,就像 "总指挥",主动提供 LRCLK 和 BCLK 的节拍和频道切换信号,喇叭 / 麦克风等从设备只需要跟着节奏接收 / 发送数据就行。
第二张图:"位宽" 和 "位深",别再搞混了
这俩概念就像快递包裹的 "最大容量" 和 "实际装货量":
-
数据位宽(硬件属性):
- 这是硬件接口设计的 "最大包裹容量",比如 32 位,意思是 I2S 总线每次最多能装 32 个 bit 的数据进一个包裹。
- 这是硬件定死的,比如 ESP32S3 的 I2S 支持 16/24/32 位位宽。
-
数据位深(音频属性):
- 这是音频数据的 "实际有效内容",比如 24 位,意思是真正的声音信息只有 24 个 bit,剩下的 8 个 bit 用 0 填充,就像包裹里有 24 件商品,剩下的空间用泡沫填充。
- 位深越大,声音的细节和动态范围就越好,比如 24 位比 16 位的音质更细腻。
-
常见组合:
- CD 音质:16 位位深 + 16 位位宽(刚好装满)
- 高保真音频:24 位位深 + 32 位位宽(用 0 填充 8 位)
第三张图:"采样率" 和 "帧率",声音的 "拍照速度"
你可以把音频采样想象成给声音 "拍照":
-
采样率(帧率):
- 就是每秒给声音拍多少张 "照片",比如 44.1KHz 就是每秒拍 44100 张,采样率越高,声音还原得越真实。
- 常见的采样率:8KHz(电话音质)、16KHz(语音通话)、44.1KHz(CD 音质)、48KHz(影视音频)。
-
采样率 = LRCLK:
- 因为 LRCLK 每秒钟切换左右声道的次数,就是采样率。比如 44.1KHz 的采样率,LRCLK 就是 44.1KHz,每秒钟有 44100 个左声道数据和 44100 个右声道数据。
-
单 / 双声道:
- 双声道(立体声):每帧数据包含 "左 + 右" 两个声道的声音,就像同时拍两张照片。
- 单声道:每帧只有一个声道的数据,就像只拍一张照片。



1. 标准模式(飞利浦模式)
这是 I2S 协议的原生标准,也是应用最广泛的模式。
-
核心特点:
- 声道选择:LRCLK(WCLK)为低电平时传输左声道,高电平时传输右声道。
- 数据延迟:有效数据的 MSB(最高位)相对于 LRCLK 的跳变沿,延迟 1 个 BCLK(位时钟)周期。
- 对齐方式:数据从 MSB 开始发送,MSB 与延迟 1 个 BCLK 后的边沿对齐。
- 采样时机:在 BCLK 下降沿发送数据,上升沿采样数据。
-
主要用途:
- 作为行业标准,它的兼容性最好,几乎所有现代音频 Codec、DAC、MCU(如 ESP32)都原生支持。
- 适用于绝大多数通用音频场景,如手机音频输出、专业声卡、蓝牙音频传输等。
-
优缺点:
- 优点:标准统一,时序清晰,兼容性极强,能适配不同位宽的音频设备。
- 缺点:如果系统位宽与设备位宽不匹配,需要额外的位宽转换处理。
2. 左对齐模式(MSB 对齐模式)
这种模式也被称为 "MSB 对齐模式",是为了兼容一些早期音频设备而设计的。
-
核心特点:
- 声道选择:LRCLK 为高电平时传输左声道,低电平时传输右声道(与标准模式相反)。
- 数据延迟:无延迟,数据 MSB 直接与 LRCLK 的跳变沿对齐。
- 对齐方式:数据从 MSB 开始发送,MSB 与 LRCLK 跳变沿对齐。
- 采样时机:在 BCLK 下降沿发送数据,上升沿接收数据。
-
主要用途:
- 主要用于老款音频 Codec、DAC(如 PCM5102)或需要简化时序的低成本设备。
- 适合位宽固定的系统(如 16 位、24 位固定位宽),因为没有延迟,时序设计更简单。
-
优缺点:
- 优点:时序简单,无延迟,适合位宽固定的音频设备。
- 缺点:声道选择逻辑与标准模式相反,兼容性不如标准模式,配置时需格外注意。
3. 右对齐模式(LSB 对齐模式)
这是兼容性最差的模式,主要用于老式音频硬件。
-
核心特点:
- 声道选择:与左对齐模式一致,LRCLK 高电平为左声道,低电平为右声道。
- 数据延迟:无延迟。
- 对齐方式:数据从 MSB 开始发送,但 LSB(最低位)与 LRCLK 跳变沿对齐,导致 MSB 出现在更早的 BCLK 周期。
- 采样时机:在 BCLK 下降沿发送数据,上升沿接收数据。
-
主要用途:
- 主要用于老式 8 位、16 位 DAC(如 TDA1543)或需要 LSB 优先处理的 DSP 场景。
- 适合位宽较小的设备,或数据位宽可变的情况(如 8 位数据在 16 位通道中传输,LSB 对齐可让低 8 位有效)。
-
优缺点:
- 优点:适合位宽较小的音频设备,或需要 LSB 优先处理的场景。
- 缺点:兼容性最差,现代音频设备大多不支持,配置复杂,容易出现数据错位。
三种模式核心对比表
| 模式 | LRCLK 电平对应声道 | 数据延迟 | 对齐方式 | 主要用途 | 兼容性 |
|---|---|---|---|---|---|
| 标准模式 | 低 = 左,高 = 右 | 延迟 1 个 BCLK | MSB(延迟后) | 通用音频传输 | 最好,几乎所有设备支持 |
| 左对齐模式 | 高 = 左,低 = 右 | 无延迟 | MSB(直接) | 老款 Codec、固定位宽设备 | 较好,部分设备支持 |
| 右对齐模式 | 高 = 左,低 = 右 | 无延迟 | LSB(直接) | 老式 DAC、位宽较小设备 | 最差,现代设备少支持 |




一、PCM(脉冲编码调制):数字音频的 "标准语言"
1. 核心原理
PCM(Pulse Code Modulation)是将模拟信号(如声音)转换为数字信号的基础技术,通过三步完成:
- 采样:按固定时间间隔(如 44.1kHz)对模拟信号 "拍照",得到离散的样本点。
- 量化:将每个样本的幅度值近似到最近的量化级别(如 16bit 可表示 65536 个级别)。
- 编码:将量化后的数值转换为二进制代码(如十进制 5→二进制 101)。
2. 关键参数
- 采样率:每秒采样次数(如 44.1kHz 是 CD 标准),越高声音还原越真实。
- 采样位数:二进制编码的位数(如 16bit、24bit),位数越大,声音细节越精细。
3. 作用与功能
- 是数字音频的原始无压缩格式(如 WAV 文件本质就是 PCM 数据)。
- 实现模拟→数字的转换,是所有数字音频处理(编辑、压缩、传输)的基础。
- 应用场景:CD、数字录音、音频 DAC/ADC 芯片、音频编辑软件等。
二、PDM(脉冲密度调制):微型音频的 "简化编码"
1. 核心原理
PDM(Pulse Density Modulation)用固定宽度脉冲的 "密度"(1 出现的频率)表示信号幅度,而非像 PCM 那样用数值:
- 模拟信号幅度越大 → 对应数字信号中 "1" 的密度越高;
- 模拟信号幅度越小 → 对应数字信号中 "0" 的密度越高。
- 调制方式:采用 Δ-Σ 调制,通过 "过采样"(远高于奈奎斯特频率)提高精度。
2. 与 PCM 的关系
PDM 数据不能直接用于音频处理,需要先通过 "PDM 解调"(如低通滤波)转换为 PCM 格式,才能被主控、DAC 等设备识别。
3. 作用与功能
- 适合高采样率、低成本、小体积的场景,如 MEMS 麦克风(TWS 耳机、智能音箱常用)。
- 优势:电路设计简单、成本低、体积小,适合空间受限的设备。
三、I2S(集成电路内置音频总线):PCM 数据的 "传输高速路"
1. 核心定位
I2S 是专门用于传输数字音频数据的串行总线协议,是 PCM 数据在不同芯片间传递的 "标准通道"。
2. 与 PCM/PDM 的关系
- 与 PCM :I2S 传输的核心是PCM 格式的数字音频数据,如图 1 中,PCM 调制模块、主控、DAC 之间通过 I2S 传递 PCM 数据,保证音频同步、稳定传输。
- 与 PDM:PDM 数据一般通过专用的 PDM 接口(如图 4 的 CLK+DATA)直接由 PDM 麦传给主控,主控内部完成 PDM→PCM 解调后,再通过 I2S 传输 PCM 数据。
3. 作用与功能
- 提供标准化的音频传输接口,避免不同芯片间的时序错误,保证音频同步。
- 应用场景:音频 Codec 与主控通信、DAC 与主控通信、多声道音频系统等。
四、四张图的整体逻辑串讲
- 图 1(PCM 流程):麦克风采集模拟信号→PCM 调制(采样 / 量化 / 编码)→I2S 传主控→I2S 传 DAC→DAC 转模拟→喇叭播放。
- 图 2(PCM 过程):直观展示 PCM 如何将连续模拟信号转成离散二进制数据,以及采样率 / 采样位数对音质的影响。
- 图 3(PDM 编码):对比 PCM,说明 PDM 用 "脉冲密度" 表示幅度,需解调为 PCM 才能使用,适合微型麦克风。
- 图 4(PDM 接口):展示主控如何通过 PDM 接口(CLK+DATA)采集左右声道的 PDM 数据,时序上通过时钟边沿区分声道。
///麦克风输出 PDM → 单片机转 PCM → I2S 传 PCM 给数字功放 → 喇叭播放///
这是嵌入式音频最常用的标准链路 ,但不是所有麦克风都输出 PDM------ 只有「PDM 数字麦 / 硅麦」是这样;如果是「I2S 数字麦」,会直接输出 PCM,单片机就不用转格式了(少一步)
| 信号类型 | 本质 | 例子对照 |
|---|---|---|
| 模拟信号 | 连续变化的电压波(像波浪) | 老式耳机线、模拟麦输出、功放最终给喇叭的信号 |
| 数字信号 | 只有 0 和 1(高低电平) | 单片机的 IO 口电平、IIC 通信、PCM/PDM、I2S 传输的信号 |
- PDM 是数字信号:麦克风里的芯片把声音震动转成 "一串 0 和 1"(比如声音大时 1 多、声音小时 0 多),完全是数字电平(高 = 1,低 = 0),单片机可以直接读。
- PCM 也是数字信号:是 "更规整的 0 和 1"------ 比如 16 位 PCM 就是用 16 个 0/1 组合表示一个声音采样点(比如 00001111 表示某个音量),本质还是数字,单片机处理、I2S 传输的都是这种数字信号。
- 只有到数字功放最后一步,才会把 PCM 数字信号转成模拟信号(电压波),驱动喇叭震动发声(喇叭只能识别模拟的电压变化)。
- PCM 和 PDM 都是数字信号(0 和 1),只有模拟麦输出模拟信号;
- 数字信号抗干扰、易处理,所以现在都用 PDM/PCM+I2S 的数字链路,而非纯模拟。
PCM 能直接当 WAV 播放。 PDM 不能直接播放。
- WAV 文件里面装的核心就是 PCM
- PDM 只是麦克风输出的原始草稿数据,必须先转成 PCM 才能存、才能播放、才能进 WAV。
PCM 是给每一个声音瞬间,编一个精确数字。比如:
- 声音小 = 1001
- 声音大 = 1111这是规整、可直接播放的数字声音。
PDM 不编数字,只靠0 和 1 的疏密表示声音大小:
- 声音大 → 1 特别多、特别密
- 声音小 → 1 很少、很稀它只有 0 和 1 的密度,没有精确数值。
麦克风分类:
- 模拟麦:输出模拟电压波,单片机要 ADC 转数字,最老款,不是数字。
- PDM 数字麦(硅麦):输出 PDM 数字,单片机转 PCM。
- I2S 数字麦(也是硅麦 / MEMS):直接输出 I2S 格式的 PCM,单片机不用转。
1. 模拟麦克风(最老式)
- 输出:连续的电压波浪(模拟信号)
- 单片机不能直接读,必须经过 ADC(模拟转数字) 才能变成 PCM
- 不是数字麦,不是 I2S,不是 PDM
- 就像:直接说话的声音,没经过任何数字化
2. PDM 数字麦(现在最常用、硅麦)
- 输出:PDM 数字信号(0 和 1 密度)
- 单片机要把 PDM → 转成 PCM
- 是数字麦
3. I2S 数字麦(高级一点的数字麦,也是硅麦)
- 输出:直接就是 I2S 格式的 PCM
- 单片机不用转格式,拿来就能用
- 也是数字麦