| I2S飞利浦格式(I2S Philips standard)是一种广泛使用的数字音频传输协议,主要用于连接音频编解码器、DAC、ADC、DSP以及微控制器等设备,实现高质量立体声音频数据的同步传输。该协议通过帧时钟(LRCK)和位时钟(BCLK)的特定时序关系,确保发送端和接收端能够准确解析音频采样数据。其核心特征在于:每个声道的音频数据从最高有效位(MSB)开始传输,并且MSB相对于声道切换时刻(LRCK边沿)有恰好一个位时钟周期的延迟。这一设计使得不同位宽的设备之间可以灵活互操作,接收方只需忽略多余的位或进行位扩展即可。

在实际开发或调试音频采集系统(如ADC)时,经常需要确认录音数据是否正常输出。通常,开发者会借助逻辑分析仪抓取I2S总线上的波形,并通过协议解析功能直接查看数据内容。但在条件有限或只需快速定性判断的情况下,示波器也能发挥重要作用。本文将重点介绍在没有逻辑分析仪时,如何利用普通示波器简单评估I2S数据的有效性和数据量的变化。
在深入调试方法之前,有必要回顾一下I2S飞利浦格式的关键信号及其时序关系:
LRCK(左/右声道时钟):也称为帧时钟或字选择。其频率等于音频采样率(例如44.1 kHz)。在标准I2S协议中,LRCK为低电平时表示左声道数据有效,为高电平时表示右声道数据有效。但需注意,某些设备厂商可能会采用相反的极性(例如高电平左声道),调试前务必查阅所使用芯片的数据手册。
BCLK(位时钟):为每一位数据的传输提供同步时钟。其频率由采样率、位深和声道数共同决定:BCLK = 采样率 × 位深 × 2。例如CD音质(44.1 kHz采样率、16位、立体声)的BCLK为44.1k × 16 × 2 = 1.4112 MHz。
SDATA(串行数据):音频数据以二进制补码形式串行输出,通常从最高有效位(MSB)开始,依次传输至最低有效位(LSB)。数据在BCLK的下降沿更新,接收端在BCLK的上升沿采样,以保证稳定传输。
时序延迟一位:在LRCK边沿(指示声道切换)之后,第一个BCLK周期内SDATA线并不传输该声道的最高有效位,而是呈现空闲或前一位数据结束后的状态;真正的MSB从第二个BCLK周期开始出现。这一位延迟是I2S飞利浦格式区别于其他模式(如左对齐格式)的重要特征。
用示波器检查I2S数据的基本思路
大多数音频ADC会输出四个信号:主时钟MCLK(有时也称为系统时钟)、位时钟SCLK(即BCLK)、帧时钟LRCK和串行数据SDOUT。若要快速判断ADC是否正常工作、是否有音频数据输出,通常只需观测LRCK和SDOUT两个信号即可,因为MCLK和BCLK往往是连续振荡的,即使没有音频输入它们也会存在(取决于芯片配置),而LRCK指示声道切换,SDOUT承载实际数据。当对着麦克风吹气或施加音频激励时,SDOUT上的数据波形会发生明显变化,这正是我们评估的依据。
示波器测量步骤详解
1. 连接探头与设置通道
使用双通道示波器,将通道1探头连接至ADC的SDOUT引脚,通道2探头连接至LRCK引脚。确保探头接地夹可靠接地,避免引入噪声。
2. 设置触发条件
将LRCK 通道设为触发通道,触发电平设置在LRCK波形幅度中间的位置。

4. 进行动态测试(如吹气)
如果ADC连接的是麦克风,可以对着麦克风吹气、说话或播放测试音。同时观察示波器屏幕上SDOUT波形的变化,正常有效数据会变化波动。当没有音频输入时,SDOUT可能呈现稳定的低电平,当有声音输入时,SDOUT上会出现幅度和频率变化的脉冲序列,其波形会随声音强弱而变化。
注意:由于I2S数据是串行二进制码,在示波器上直接观察时,看起来像是一些密集的、幅度与逻辑电平一致的脉冲串。只要看到SDOUT在LRCK的每个周期内都有活跃的跳变,且跳变密度随声音输入变化,即可初步判断数据在正常输出。
以上是示波器确认ADC输出有效数据波形,ADC输出有效波形后可以采集wav文件进行解析,wav文件也可以看到对应通道数据,如果示波器能看到i2s数据波形变化,实际wav数据文件全是00,说明主控端采集数据端口或设置问题导致。

|