I2S有3个主要信号:
- SCLK:串行时钟,也叫位时钟(BCLK),即对应数字音频的每一位数据,SCLK都有1个脉冲。SCLK的频率=2×采样频率×采样位数
- LRCK:帧时钟,用于切换左右声道的数据。LRCK的频率=采样频率。
- SDATA:串行数据,就是用二进制补码表示的音频数据
- MCLK:主时钟,也叫系统时钟(Sys Clock)。为了使系统间能够更好地同步,MCLK的频率= 256倍或384倍采样频率。
随着技术的发展,在统一的 I2S接口下,出现了多种不同的数据格式。根据SDATA数据相对于LRCK和SCLK的位置不同分为: - 左对齐(较少使用)
- I2S格式(即飞利浦规定的格式)
- 右对齐(也叫日本格式、普通格式)。
这些格式的具体描述如下。
24位左对齐格式:
24/16位I2S格式:
对于这种标准I2S格式的信号,无论有多少位有效数据,数据的最高位总是出现在LRCK变化(也就是一帧开始)后的第2个SCLK脉冲处。这就使得接收端与发送端的有效位数可以不同。如果接收端能处理的有效位数少于发送端,可以放弃数据帧中多余的低位数据;如果接收端能处理的有效位数多于发送端,可以自行补足剩余的位。这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位。
24位右对齐格式:
20位右对齐格式:
18位右对齐格式:
16位右对齐格式:
由上述数据格式图可知,对于左/右对齐格式:LRCK为“1”表示正在传输的是左声道的数据,为“0”则表示正在传输的是右声道的数据;对于标准I2S格式:LRCK为“0”表示正在传输的是左声道的数据,为“1”则表示正在传输的是右声道的数据。
综上为了保证数字音频信号的正确传输,发送端和接收端应该采用相同的数据格式和长度。当然,对标准I2S格式来说数据长度可以不同。