基础知识
I2S(inter-IC sound bus)飞利浦公司制定的标准,既规定了硬件接口规范,也规定了数字音频数据格式。
硬件接口规范
I2S接口有3个主要信号:
时钟信号 Serial Clock
串行时钟SCK,也叫位时钟(BCLK),对应数字音频的每一位数据。SCLK的频率=2×采样频率×采样位数
左右声道选择信号 Word Select
WS信号有时也称帧时钟LRCK,用于切换左右声道的数据。WS是声道选择信号,表明数据发送端所选择的声道。当:WS=0,表示选择左声道 ,WS=1,表示选择右声道。LRCK的频率等于采样频率
数据信号 Serial Data
串行数据SD在WS变化后的第一个SCK脉冲,先传输最高位MSB。
有时为了使系统间能够更好地同步,还需要另外传输一个信号MCLK,称为主时钟,是采样频率的256倍或384倍(具体倍数由codec决定)。
I2S 总线上同一时刻只能存在一个Master设备,提供时钟的设备是Master设备。
I2S接口模式
I2S硬件接口分为三种工作模式:
- I2S Phillips Standard I2S模式
- Left Justified Standard 左对齐模式
- Right Justified Standard 右对齐模式
左对齐模式:左声道数据MSB在WCLK上升沿之后BCLK的第一个上升沿有效;右声道数据MSB在WCLK下降沿之后SBCLK第一个上升沿有效。
右对齐模式:左声道数据LSB在WCLK下降沿前一个BCLK上升沿有效,右声道数据LSB在WCLK上升沿前一个BCLK上升沿有效。
左右对齐模式LRCK/WS高电平对应左声道,低电平对应右声道;而I2S模式低电平对应左声道,高电平对应右声道。
PCM
PCM (Pulse Code Modulation) 一种用数字表示采样模拟信号的方法。
Sampling(采样)
Sampling(采样)表示处理,实际上就是让采样数据能够完全表示原始信号,且采样数据能够通过重构还原成原始信号的过程。
- 蓝色曲线:表示音频原始信号。
- 黑色垂直线段:表示当前时间点对原始信号的一次采样
- 黑色点:表示采样获取的一系列离散样本。
采样率表示每秒采样的数量(单位:HZ),根据场景的不同,采样率也有所不同,采样率越高,声音的还原程度越高,质量就越好,同时占用空间会变大。
Quantization(量化)
原始信号采样后,需要通过量化来描述采样数据的大小。
量化处理过程,就是将时间连续的信号,处理成时间离散的信号,并用实数表示。这些实数将被转换为二进制数用于模拟信号的存储和传输。
上面的图片的例子是16bit位深量化过程。bit-depth(位深):用来描述存储数字信号值的bit数,较常用的模拟信号位深如下:
- 8-bit:2^8 = 256 levels,有256个等级可以用于衡量真实的模拟信号。
- 16-bit:2^16 = 65,536 levels,有65,536个等级可以用于衡量真实的模拟信号。
- 24-bit:2^24 = 16,666,216 levels,有16,666,216个等级可以用于衡量真实的模拟信号。
可以看到,位深越大,对模拟信号的描述将越真实,对声音的描述更加准确。
TDM
TDM(Time Division Multiplexing)时分复用,PCM接口支持同时传输多达N个声道的数据。
Mode A:数据在FSYNC有效后,BCLK的第2个上升沿有效
Mode B:数据在FSYNC有效后,BCLK的第1个上升沿有效
PCM vs I2S
PCM硬件接口上传输的是PCM编码的数据,I2S上传输的也是PCM编码的数据,I2S不过是PCM接口的特例。
应用PCM音频接口传输单声道数据(如麦克风)时,其接口名称为PCM;双声道经常使用I2S;而TDM则表示传输两个及以上声道的数据,同时区别于I2S特定的格式。
HDMI Audio
audio info frame
ACR
Audio Clock Regeneration 音频时钟重生成,Audio data是在HDMI Data Island周期以packet形式发送的,Data Island并没有发送Audio Clock,根据HDMI Spec规定,需要ACR来恢复Audio Clock。
TMDS Clock和Audio参考时钟(128倍采样率)的关系:
128 · f S = f TMDS_clock · N / CTS
N值需要发送给sink端,sink端根据公式恢复Audio Clock。
N值与Audio 采样率以及video mode有关,有寄存器需要配置,CTS值可以手动配置也可以自动计算。
某款HDMI Controller支持的I2S接口,I2S属于PCM的一个特例,延迟一个clock。MSB高位对齐。
I2S的bitmapping
不同位宽的对齐方式
Audio调的不多,写得简单。