I2S音频总线
I2S总线
I2S总线和格式
【音频】I2S协议详解
I2S总线
SCK/BCLK:串行时钟, SCK的频率=2×采样频率×采样位数。
WS/LR:字段(声道)选择,用来切换左右声道数据。WS = 采样频率(fs)
DATA:串行数据,用二进制补码表示的音频数据,(MSB —> LSB:数据由高位到低位依次传输)
MCLK:主时钟(为了使系统间能够更好地同步,也叫系统时钟(Sys Clock),是采样频率的256倍或384倍)
I2S bclk分频系数计算
1. 接线
主设备 | 从设备 |
---|---|
BCLK脚 | BCLK脚 |
WS脚 | WS脚 |
SDO脚 | SDI脚 |
SDI脚 | SDO脚 |
MCLK脚 | MCLK脚 |
2. 协议
2.1 SCK: (continuous serial clock) 串行时钟
对应数字音频的每一位数据,SCK都有1个脉冲。SCK的频率=2×采样频率×采样位数
以下均在下降沿切换状态
2.2 WS: (word select) 字段(声道)选择
用于切换左右声道的数据。WS的频率=采样频率。
- WS为“1”,表示正在传输的是左声道的数据。
- WS为“0”,表示正在传输的是右声道的数据。
- (没找到官方文件,未确认)WS可以在串行时钟的上升沿或者下降沿发生改变,并且WS信号不需要一定是对称的。在从属装置端,WS在时钟信号的上升沿发生改变。
- WS总是在最高位传输前的一个时钟周期发生改变,这样可以使从属装置得到与被传输的串行数据同步的时间,并且使接收端存储当前的命令以及为下次的命令清除空间。
2.3 SD: (serial data) 串行数据
用二进制补码表示的音频数据。
- I2S 格式的信号无论有多少位有效数据,数据的最高位总是被最先传输(在WS变化(也就是一帧开始)后的第2个SCK脉冲处)
因此最高位拥有固定的位置,而最低位的位置则是依赖于数据的有效位数。也就使得接收端与发送端的有效位数可以不同。如果接收端能处理的有效位数少于发送端,可以放弃数据帧中多余的低位数 据;如果接收端能处理的有效位数多于发送端,可以自行补足剩余的位(常补足为零)。这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位。 为了保证数字音频信号的正确传输,发送端和接收端应该采用相同的数据格式和长度。当然,对I2S格式来说数据长度可以不同。
- 随着技术的发展,在统一的 I2S接口下,出现了多种不同的数据格式。根据SDATA数据相对于LRCK和SCLK的位置不同分为:
左对齐(较少使用)
I2S格式(即飞利浦规定的格式)数据的最高位总是出现在WRCK变化(也就是一帧开始)后的第2个SCLK脉冲处
右对齐(也叫日本格式、普通格式)。