数字音频接口(DAI)是Rockchip系列SoC实现音频数据传输、编解码与交互的核心组件,其配置与调试直接决定了音频设备的音质、兼容性与稳定性。本文档聚焦Rockchip平台主流的DAI接口技术体系,从时序图解读方法入手,系统剖析I2S、I2S-TDM、PDM、DCODEC、VAD、SPDIF等核心接口的协议原理、时钟计算、时序特征、DTS配置及调试技巧,旨在为音频开发工程师提供从理论到实战的全维度参考,解决调试过程中常见的时序不匹配、时钟异常、多通道复用等关键问题。
1.1如何看懂时序图
在深入各个DAI接口之前,先统一讲解如何看懂时序图。这是阅读芯片手册和调试音频问题时最重要的技能。
1.1.1时序图的基本元素
时序图本质上是一组信号随时间变化的波形图,核心元素包括:
| 元素 | 含义 | 怎么看 |
| 水平轴 | 时间轴,从左到右时间递增 | 越靠右的事件越晚发生 |
| 高低电平 | 每个信号线只有0(低电平)和1(高电平)两种状态 | 高= 1,低= 0 |
| 信号线 | 每个信号单独一行,水平排列 | 从上到下阅读每条信号线 |
| 时钟边沿 | 上升沿(0→1)和下降沿(1→0) | 上升沿用/表示,下降沿用表示 |
| 位周期 | 一个bit持续的时间 | = 1 / BCLK频率 |
| 帧(Frame) | 一个完整的采样周期(包含所有声道) | 以LRCK/FSYNC的一个完整周期为单位 |
1.1.2读时序图的步骤
第一步:找到时钟信号
在时序图中先找到BCLK(位时钟)和LRCK(帧时钟/声道时钟)这两条线。它们是"标尺",所有数据信号都参照时钟来解读。

图:I2S Normal Mode时序图—注意LRCK跳变后延迟1个BCLK数据才开始(MSB从第2个BCLK开始)
第二步:确认数据在哪个时钟边沿被采样
数据发送方(Tx)在某个时钟边沿改变数据,接收方(Rx)在另一个时钟边沿读取数据。通常:
•Tx在BCLK的下降沿发送数据
•Rx在BCLK的上升沿采样数据
这样保证了数据在采样时是稳定的。
第三步:数出帧结构和数据对齐
以LRCK为基准,看一个帧内有多少个BCLK周期,数据从第几个BCLK开始对齐。不同格式的对齐方式不同,见下方各格式的时序图。
第四步:对照格式标准验证
将观察到的特征对照标准定义:
| 格式 | LRCK高电平声道 | LRCK低电平声道 | 数据开始位置 | 典型位延迟 |
| I2S | 左声道 | 右声道 | 第2个BCLK | 1 BCLK |
| Left Justified | 左声道 | 右声道 | 第1个BCLK | 0 BCLK |
| Right Justified | 左声道 | 右声道 | 从LSB反推 | 取决于位深 |
| PCM-A(DSP-A) | 左声道(BCLK上升沿) | 右声道 | 第2个BCLK | 1 BCLK |
| PCM-B(DSP-B) | 左声道(BCLK上升沿) | 右声道 | 第1个BCLK | 0 BCLK |
1.1.3用示波器实测时序图的方法
在板子上调试时,用示波器(或逻辑分析仪)可以抓取真实时序:
示波器探头连接: CH1 ──► BCLK (位时钟) CH2 ──► LRCK (帧时钟/声道时钟) CH3 ──► SDO (数据输出) CH4 ──► MCLK (主时钟,可选) 示波器设置: - 触发源:CH1 (BCLK) - 触发模式:Normal - 时间基准:根据 BCLK 频率调整 - 通道耦合:DC
实测时序图vs手册时序图的对照方法:
1.用示波器抓取4条信号的波形
2.将示波器截图与芯片手册中的时序图并排对比
3.关键检查点:
○LRCK高低电平宽度是否相等(I2S模式下)
○SDO数据是否在LRCK跳变后1个BCLK才开始(I2S标准)
○数据位数是否和配置一致(16/24/32 bit)
○BCLK频率=采样率×位深×声道数
1.2 I2S接口详解
1.2.1 I2S协议原理
I2S(Inter-IC Sound)是由Philips于1986年定义的数字音频数据传输标准,是目前最通用的数字音频接口协议。
I2S只有3根信号线(不含MCLK):
| 信号线 | 全称 | 功能 | 方向 |
| BCLK | Bit Clock | 位时钟,每个bit传输一个周期 | 发送方或接收方提供 |
| LRCK / WS | Word Select / Left Right Clock | 帧时钟,区分左声道和右声道 | 与BCLK同源 |
| SDI / SDO | Serial Data In / Out | 串行数据线,传输音频采样值 | 双向各一条 |
外加一条MCLK(Master Clock),不是I2S协议要求的,但绝大多数CODEC需要它来驱动内部PLL/ADC/DAC。
1.2.2 I2S时钟频率计算
这是调试中最容易出错的地方,务必理解清楚:
BCLK频率 = 采样率 × 采样位深 × 声道数LRCK频率 = 采样率MCLK频率 = 采样率 × mclk-fs(通常256或512)
举例:48kHz采样率,16 bit,立体声(2声道)
BCLK=48000×16×2=1,536,000Hz =1.536MHzLRCK=48,000Hz =48kHzMCLK=48000×256=12,288,000Hz =12.288MHz(假设 mclk-fs =256)
cat/sys/kernel/debug/clk/clk_summary | grep -E'i2s|bclk|lrck|mclk'
1.2.3 I2S标准格式
I2S协议定义了3种标准格式,区别在于数据在帧中的对齐位置:
I2S标准格式(I2S Format)
数据延迟1个BCLK才开始,LRCK在BCLK边沿同时变化:

图:I2S Normal Mode时序图— LRCK跳变后延迟1个BCLK,数据MSB从第2个BCLK开始
I2S格式的核心特征:
•LRCK高电平=左声道,LRCK低电平=右声道
•LRCK与BCLK边沿同时变化(无延迟)
•SDO数据在LRCK跳变后延迟1个BCLK才开始
•每个声道传输N个bit(N =采样位深),不足填充0
为什么延迟1个BCLK?
因为LRCK和BCLK同时变化,如果数据也在LRCK跳变时立即变化,接收方无法判断数据是新的还是旧的。延迟1个BCLK后,接收方先在LRCK跳变的上升沿确认声道切换,再在下一个BCLK上升沿采样第一个数据位。
Left Justified格式(左对齐)
数据不延迟,从第1个BCLK就开始:

图:I2S Left Justified Mode时序图— LRCK跳变后数据立即从MSB开始,无延迟
Left Justified的核心特征:
•LRCK高电平=左声道,LRCK低电平=右声道
•SDO数据在LRCK跳变后立即开始,无延迟
•高位先传(MSB first)
•如果数据位深< BCLK 位数,低位填充 0
I2S与Left Justified的区别:
| 特征 | I2S | Left Justified |
| 数据开始位置 | 第2个BCLK | 第1个BCLK |
| LRCK与数据的关系 | 延迟1 BCLK | 同步 |
| 常见用途 | 标准音频传输 | 一些DAC内部连接 |
Right Justified格式(右对齐)
数据的LSB对齐帧的末尾,数据在帧中靠后放置:

Right Justified的核心特征:
•LRCK高电平=左声道,LRCK低电平=右声道
•数据的LSB对齐帧末尾
•如果数据位深< BCLK 位数,高位填充 0(与 Left Justified 相反)
•不常用,主要用于特定的DAC芯片
1.2.4 PCM格式
PCM(Pulse Code Modulation)格式是I2S的变种,主要用于电话语音和蓝牙音频。与I2S的区别在于LRCK的脉冲特性:
PCM-A(DSP-A,Delayed)
LRCK产生一个1 BCLK宽的脉冲,数据延迟1个BCLK开始:

图:PCM-A (DSP-A) Mode时序图— FS脉冲1 SCLK宽,数据延迟1 SCLK后开始
PCM-B(DSP-B,No Delay)
LRCK产生一个1 BCLK宽的脉冲,数据立即开始:

图:PCM-B (DSP-B) Mode时序图— FS脉冲后数据立即开始,无延迟
I2S与PCM的区别:
| 特征 | I2S | PCM-A | PCM-B |
| LRCK形状 | 50%占空比方波 | 1 BCLK宽脉冲 | 1 BCLK宽脉冲 |
| LRCK高电平宽度 | 半个帧(半个声道) | 1个BCLK | 1个BCLK |
| 数据开始延迟 | 1 BCLK | 1 BCLK | 0 BCLK |
| 典型应用 | 高保真音频 | 蓝牙(HFP/HSP) | 蓝牙/电话 |
1.2.5 Master / Slave模式
Master(主)和Slave(从)决定了谁产生时钟信号:
| 模式 | BCLK提供方 | LRCK提供方 | 场景 |
| Master(CPU为主) | CPU DAI | CPU DAI | 外部CODEC不产生时钟,CPU驱动一切 |
| Slave(CODEC为主) | External CODEC | External CODEC | CODEC自带PLL生成精确时钟 |
Rockchip DTS配置:
/* CPU DAI 为 Master */simple-audio-card,bitclock-master = <&cpu_dai>;simple-audio-card,frame-master = <&cpu_dai>;/* CODEC 为 Master */simple-audio-card,bitclock-master = <&codec_dai>;simple-audio-card,frame-master = <&codec_dai>;
用示波器判断主从:
•断开CODEC,如果BCLK和LRCK还有信号→ CPU是Master
•断开CODEC,BCLK和LRCK消失→ CODEC是Master
1.2.6 MCLK的重要性
MCLK(Master Clock)不是I2S协议的一部分,但几乎所有CODEC都需要它:

MCLK频率与采样率的关系:
MCLK= 采样率 × mclk-fs常见 mclk-fs 值:256:最常见,适用于8k~ 96kHz512:高采样率(192kHz)或高精度 CODEC128:低采样率或低功耗场景384:特殊 CODEC
MCLK校准:
Rockchip提供rockchip,mclk-calibrateDTS属性,开启后会自动根据LRCK频率反推MCLK需要的频率:
&i2s0 { rockchip,mclk-calibrate; /* 开启 MCLK 自动校准 */};
MCLK时钟源选择(以RK3588为例):
| 时钟源 | 精度 | 适用场景 |
| clk_i2s_src | PLL整数分频 | 普通应用 |
| clk_i2s_frac | PLL分数分频 | 高精度音频,44.1kHz系列 |
| i2s_mclkin | 外部时钟 | 需要精确同步的外部时钟源 |
| xin_osc0_half | 晶振直接分频 | 低延迟、低抖动场景 |
1.2.7 I2S BCLK-FS属性
rockchip,bclk-fs用于强制指定每个采样的BCLK位数:
&i2s0 { rockchip,bclk-fs = <64>; /* 每采样 64 个 BCLK */};
何时需要设置bclk-fs?
当实际传输的位深小于BCLK位数时:
•16 bit音频,但BCLK周期为32 → bclk-fs = 32
•24 bit音频,但BCLK周期为32 → bclk-fs = 32
如果不设置,驱动会根据位深自动计算,但某些CODEC要求特定的BCLK位数。
1.2.8 I2S数据路由
Rockchip的I2S支持将发送/接收数据路由到不同的物理引脚:
&i2s0 { /* TX 路由:SDO3 → SDO2 → SDO1 → SDO0 */ rockchip,i2s-tx-route = <3 2 1 0>; /* RX 路由:SDI3 → SDI2 → SDI1 → SDI0 */ rockchip,i2s-rx-route = <3 2 1 0>;};
这个属性在PCB布线与默认路由不匹配时特别有用。
1.3 I2S-TDM接口详解
1.3.1什么是TDM?
TDM(Time Division Multiplexing,时分复用)是在单条数据线上分时传输多个独立声道数据的技术。
I2S vs TDM的本质区别:

为什么需要TDM?
•一个I2S接口传输8通道音频(8路麦克风阵列)
•多个CODEC共享一个I2S接口
•节省PCB引脚和走线
1.3.2 TDM帧结构

1.3.3 TDM关键参数
Slot数量:一帧中有多少个时隙,最多8个
dai-tdm-slot-num= <8>; /* 8 个 Slot */
Slot宽度:每个Slot占用多少个BCLK
dai-tdm-slot-width= <32>; /* 每个 Slot 32 个 BCLK */
有效数据位宽:每个Slot中实际传输的音频数据位数(≤ Slot宽度)
Slot宽度 =32bits有效数据 =24bits填充 =8bits(在 LSB 端或 MSB 端补0)
TDM移位模式(Rockchip特有):
| 模式 | 描述 | 适用场景 |
| Normal | Slot0紧跟FSYNC | 标准TDM |
| Left Shift 1/2 cycle | Slot向左偏移1/2个BCLK | 匹配特定CODEC的时序要求 |
| Left Shift 1 cycle | Slot向左偏移1个BCLK | 匹配特定CODEC的时序要求 |
| Left Shift 2 cycle | Slot向左偏移2个BCLK | 匹配特定CODEC的时序要求 |
| Right Shift | Slot向右偏移 | 匹配特定CODEC的时序要求 |
1.3.4 TDM的FSYNC特性
TDM使用FSYNC(Frame Sync)信号代替I2S的LRCK:
| 模式 | FSYNC形状 | 描述 |
| Half Frame | 占帧的50% | 高电平半帧+低电平半帧,类似I2S的LRCK |
| Whole Frame | 1 BCLK宽脉冲 | 类似PCM的脉冲模式 |
| 1~7 BCLK宽 | 自定义脉冲宽度 | 灵活适配各种CODEC |
&i2s0 { rockchip,tdm-fsync-half-frame; /* 使用 half-frame 模式 */};
1.3.5 I2S-TDM的TX/RX时钟模式
rockchip,clk-trcm控制TDM模式下TX和RX的时钟共享方式:
| 值 | TX时钟 | RX时钟 | 说明 |
| 0 | 独立 | 独立 | TX和RX各有独立的BCLK/LRCK,全双工 |
| 1 | 共享 | 共享 | TX和RX共享BCLK/LRCK,节省引脚 |
| 2 | TX提供 | RX共享TX | TX产生时钟,RX用TX的时钟 |
|
Plaintext &i2s0 { rockchip,clk-trcm = <1>;/* TX/RX 共享时钟 */ }; |
1.3.6 TDM时序图解读

图:TDM Mode时序图— 8个Slot,每个32 bit,FSYNC半帧模式,一帧= 256 BCLK
用示波器验证TDM时序:
关键检查点:1.FSYNC 频率 = 采样率(与 I2S 的 LRCK 相同)2.一帧内的 BCLK 数量 = Slot 数量 × Slot 宽度 例:8 Slot × 32 bit = 256 BCLK / 帧3.BCLK 频率 = 采样率 × Slot 数量 × Slot 宽度 例:48kHz × 8 × 32 = 12.288 MHz4.每个 Slot 内的数据 MSB 是否在正确位置开始
1.4 PDM接口详解
1.4.1 PDM协议原理
PDM(Pulse Density Modulation,脉冲密度调制)是一种1-bit数字音频编码方式,主要用于连接MEMS数字麦克风。
PDM与I2S的本质区别:
| 特性 | I2S | PDM |
| 数据线位宽 | 多bit(16/24/32) | 1 bit |
| 数据编码 | PCM采样值 | 脉冲密度(Σ-Δ调制) |
| 时钟线 | BCLK + LRCK | PDM_CLK |
| 麦克风类型 | 模拟MIC +外部ADC | 数字MEMS MIC |
| 传输方向 | 双向(TX + RX) | 仅RX(麦克风只发送) |
PDM只有2根信号线:
| 信号线 | 功能 | 方向 |
| PDM_CLK | PDM时钟,由SoC提供给麦克风 | SoC → MIC |
| PDM_DATA | 1-bit数据流,由麦克风发送给SoC | MIC → SoC |
1.4.2 PDM工作原理
MEMS麦克风内部包含:
声波 ──► 振膜 ──► 模拟电信号 ──► Σ-Δ 调制器 ──► 1-bit PDM 数据流 ──► PDM_DATA 引脚
Σ-Δ(Sigma-Delta)调制器的作用是将模拟信号转换为1-bit数字流:
•信号幅度大→ 1的密度高(脉冲密集)
•信号幅度小→ 0的密度高(脉冲稀疏)
•静音→ 0和1各占50%

图:PDM 工作原理 — MEMS 麦克风内部 Σ-Δ 调制器将模拟信号转换为 1-bit 脉冲密度调制数据流
SoC收到1-bit PDM数据流后,通过抽取滤波器(Decimation Filter)将其转换为多bit PCM数据:
PDM1-bit 流 ──► 抽取滤波器 ──► 下采样 ──► 多 bit PCM 数据 (1-bit, 高频) (16/24-bit, 低频)
1.4.3 PDM通道与数据路径
Rockchip PDM控制器最多支持8个麦克风通道,通过4条SDI数据路径接收:

数据路径映射:
| SDI路径 | 通道 | 说明 |
| SDI0 | CH0 + CH1 | 第1、2个麦克风 |
| SDI1 | CH2 + CH3 | 第3、4个麦克风 |
| SDI2 | CH4 + CH5 | 第5、6个麦克风 |
| SDI3 | CH6 + CH7 | 第7、8个麦克风 |
PDM时钟与采样率的关系:
| PDM_CLK | 支持的采样率 |
| 1.024 MHz | 8k, 16k, 32k, 64k |
| 1.4112 MHz | 11.025k, 22.05k, 44.1k, 88.2k |
| 1.536 MHz | 12k, 24k, 48k, 96k |
| 2.048 MHz | 8k, 16k, 32k, 64k, 128k |
| 2.8224 MHz | 11.025k, 22.05k, 44.1k, 88.2k, 176.4k |
| 3.072 MHz | 12k, 24k, 48k, 96k, 192k |
| 4.096 MHz | 8k, 16k, 32k, 64k, 128k(高频,高SNR) |
| 5.6448 MHz | 11.025k ~ 176.4k(高频,高SNR) |
| 6.144 MHz | 12k ~ 192k(高频,高SNR) |
高频时钟的好处:更高的PDM_CLK意味着更低的时钟抖动影响和更高的信噪比(SNR)。V3版本PDM控制器新增了对4.096/5.644/6.144 MHz高频时钟的支持。
1.4.4 PDM Path Map
rockchip,path-map用于映射SDI路径到内部通道:
&pdm_8ch { /* SDI3 → CH0, SDI2 → CH1, SDI1 → CH2, SDI0 → CH3 */ rockchip,path-map= <3 2 1 0>;};
当PCB上MIC引脚与SoC的SDI引脚连接顺序不一致时,通过path-map调整。
1.4.5 PDM时序图解读

图:PDM接口时序—上方PDM_CLK为持续方波,下方PDM_DATA为Sigma-Delta调制的1-bit流,脉冲密度高=音量大,脉冲密度低=音量小
用示波器验证PDM时序:
关键检查点: 1. PDM_CLK 频率是否在预期值(如 3.072 MHz) 2. PDM_DATA 在 PDM_CLK 的哪个边沿变化 3. 静音时 PDM_DATA 的 0/1 比例是否接近 50% 4. 大音量时 1 的密度是否明显增加
1.4.6 PDM时钟抖动对SNR的影响
PDM时钟抖动(Jitter)会直接影响信噪比(SNR):
| PDM_CLK抖动 | SNR损失 |
| < 1 ns | 可忽略 |
| 1 ~ 2 ns | 1~2 dB |
| 3.8 ns | 4~6 dB |
| > 5 ns | > 6 dB,严重影响 |
降低抖动的方法:
•使用分数PLL(clk_i2s_frac)而非整数PLL
•选择更高频率的PDM_CLK(6.144MHz比3.072MHz抗抖动更强)
•PCB上PDM_CLK走线尽量短,远离高速信号
1.4.7 PDM vs I2S DMIC
除了PDM接口,Rockchip也支持通过I2S接口连接DMIC(Digital MIC):
I2SDMIC 方案: DMIC ──► I2S 接口 ──► 内部 decimation ──► PCM 数据 (BCLK/LRCK/SDO) PDM 方案: PDM MIC ──► PDM 接口 ──► 内部 decimation ──► PCM 数据 (PDM_CLK/PDM_DATA) 区别: - I2S DMIC 使用标准 I2S 协议,兼容性更好 - PDM 使用1-bit 协议,节省引脚,适合多麦克风阵列
1.5 DCODEC(Digital Codec)详解
1.5.1 DCODEC是什么
DCODEC是Rockchip SoC内部集成的数字音频编解码器,包含:
DCODEC 内部结构: ADC (3路) ──► 混音器 ──► DAC (2路) ──► 扬声器/耳机 │ │ MICIN(3ch) LINEOUT(2ch) │ DSM 输出(可选) │ Class-D PA
DCODEC的特点:
•无需外部CODEC芯片,SoC内置,节省BOM成本
•3路ADC(可接3个模拟MIC)+ 2路DAC(可接扬声器/耳机)
•支持PGA(可编程增益)和ALC(自动电平控制)
•可外接DSM(数字sigma-delta调制器)直接驱动Class-D功放
1.5.2 DCODEC时钟同步模式
rockchip,clk-sync-mode用于配置ADC/DAC的时钟同步方式:
&dig_acodec { rockchip,clk-sync-mode; /* ADC 与 DAC 共享时钟 */};
开启后:ADC和DAC使用相同的时钟源,确保录播同步。
关闭时:ADC和DAC可独立设置时钟,适用于不同采样率的录播场景。
1.5.3 DSM PWM输出模式
DSM(Digital Sigma-Delta Modulator)可以将DAC输出直接通过PWM驱动Class-D功放,无需外接DAC芯片:
&dig_acodec { rockchip,pwm-output-mode; /* 开启 DSM PWM 输出 */ pinctrl-names ="default"; pinctrl-0= <&audiopwmoutdiff_pins>;};
DSM PWM输出链路:

这种方式适合低成本的便携设备,但音质低于外接CODEC方案。
1.6 VAD(Voice Activity Detection)详解
1.6.1 VAD是什么
VAD(语音活动检测)是一种硬件加速的语音唤醒方案,核心功能是:
MIC音频 ──► VAD 硬件模块 │ ├──► 持续监听语音幅度 ├──► 检测到语音 → 触发中断唤醒 CPU └──► 未检测到语音 → CPU 保持休眠
VAD与传统软件方案的区别:
| 特性 | 软件VAD | 硬件VAD |
| CPU功耗 | 需持续运行,耗电 | CPU可休眠,VAD硬件独立工作 |
| 响应延迟 | 取决于CPU调度 | 硬件实时检测,延迟低 |
| 实现复杂度 | 需要ASR算法 | 硬件内置,配置即可 |
1.6.2 VAD数据流
PDM/I2S MIC ──► DAI FIFO ──► VAD 模块 ──► SRAM/DDR缓冲区 │ ├──►语音检测 │ │ │ ├──►有语音──►中断──►CPU唤醒 │ └──►无语音──►继续监听 │ └──►唤醒后数据可用
1.6.3 VAD工作模式
rockchip,mode控制VAD的工作模式:
| 值 | 模式 | 描述 |
| 0 | 关闭 | VAD不工作 |
| 1 | SRAM模式 | 数据存到SRAM,唤醒后再搬运到DDR(低功耗) |
| 2 | DDR模式 | 数据直接存到DDR(DMA模式) |
&vad { rockchip,mode = <1>; /* SRAM 低功耗模式 */};
1.6.4 VAD DTS配置详解
&vad { status ="okay"; rockchip,audio-src = <&pdm_8ch>; /* VAD 的数据源 */ rockchip,det-channel = <2>; /* 检测第 2 个通道 */ rockchip,mode = <1>; /* SRAM 模式 */ rockchip,buffer-time-ms = <100>; /* 缓存 100ms 数据 */};
各参数详解:
•audio-src:指定VAD监听哪个DAI(PDM / I2S),VAD不直接连MIC,而是从DAI的FIFO中取数据
•det-channel:指定检测哪个声道(0 =所有通道,2 =第2通道)
•buffer-time-ms:预缓存时间,单位毫秒。例如100ms @ 16kHz / 16bit / 8ch = 204800 bytes
1.7 SPDIF接口详解
1.7.1 SPDIF协议原理
SPDIF(Sony/Philips Digital Interface Format)是一种数字音频传输协议,用于设备间的数字音频传输,无需DAC/ADC转换。
SPDIF的特点:
•仅1根信号线(同轴电缆或光纤)
•传输的是编码后的数字音频帧(不是原始PCM)
•支持2声道LPCM(16/20/24 bit)
•支持压缩音频(Dolby Digital, DTS)
•使用BMC(Biphase Mark Code)编码:每个bit用2个时钟周期表示
1.7.2 SPDIF TX vs SPDIF RX
| 特性 | SPDIF TX | SPDIF RX |
| 方向 | SoC发送→外部设备 | 外部设备→ SoC接收 |
| 用途 | 连接功放/AV接收器/光纤输出 | 接收电视/机顶盒的光纤输入 |
| Rockchip支持 | 多数芯片 | RK3308, RK3576, RK3588 |
1.7.3 SPDIF帧结构

1.7.4 SPDIF时序解读

1.7.5 SPDIF传输格式
| 格式 | 描述 | 位深 |
| LPCM | 线性PCM(未压缩立体声) | 16/20/24 bits |
| Non-linear PCM | 非压缩多声道(IEC61937) | 16/24 bits |
| DD | Dolby Digital(5.1声道) | 压缩 |
| DD+ | Dolby Digital Plus | 压缩 |
1.7.6 SPDIF调试
# 检查 SPDIF 时钟cat/sys/kernel/debug/clk/clk_summary | grep spdif# 检查 SPDIF 寄存器cat/sys/kernel/debug/regmap/0xfe4b0000/registers # RK3588 SPDIF_TX0# 测试播放(输出到光纤/同轴)aplay -D hw:0,1 -f S16_LE -r 48000 -c 2 test.wav
1.8各DAI接口对比总结
| 特性 | I2S | I2S-TDM | PDM | DCODEC | VAD | SPDIF |
| 信号线数 | 3+MCLK | 3+MCLK | 2 | 内置 | 无 | 1 |
| 最大通道数 | 2 | 8 | 8 | 3ADC+2DAC | 8 | 2 |
| 位深 | 16-32 bit | 16-32 bit | 16-24 bit | 16 bit | 16-24 bit | 16-24 bit |
| 采样率 | 8k-192k | 8k-192k | 8k-192k | 8k-48k | 8k-48k | 32k-192k |
| 传输方向 | TX+RX | TX+RX | RX only | TX+RX | RX only | TX/RX |
| 典型应用 | 通用音频 | 多通道音频 | MIC阵列 | 低成本音频 | 语音唤醒 | 数字音频传输 |
| 芯片支持 | 全部 | 大部分 | 大部分 | 部分 | RK3308/RK3588 | 大部分 |
1.9小结
本部分详细讲解了Rockchip平台支持的6种DAI接口:
•I2S:最通用的2声道音频接口,支持I2S/Left Justified/Right Justified三种格式和PCM-A/PCM-B两种PCM格式
•I2S-TDM:I2S的扩展,通过时分复用支持最多8通道,关键在于Slot数量和FSYNC配置
•PDM:专为数字麦克风设计的1-bit接口,关键是PDM时钟频率选择和时钟抖动控制
•DCODEC:SoC内置数字编解码器,适合低成本方案,支持DSM PWM直接驱动PA
•VAD:硬件语音活动检测,关键是SRAM低功耗模式和预缓存配置
•SPDIF:数字音频传输协议,支持LPCM和压缩音频,关键是BMC编码理解
阅读时序图的核心方法:先找时钟信号(BCLK/LRCK)作为标尺,确认数据采样边沿,数出帧结构和数据对齐位置,最后对照标准格式验证。
审核编辑 黄宇
-
音频接口
+关注
关注
1文章
108浏览量
65216 -
Rockchip
+关注
关注
0文章
95浏览量
19701
发布评论请先 登录
Rockchip平台数字音频接口(DAI)全维度解析与调试指南
评论