1.1 基础概念
I2S的全称是Inter-IC Sound或Integrated Interchip Sound,译为芯片内集成音响。它是IC间传输数字音频资料的一种接口标准,最初由飞利浦(Philips)公司开发,用于解决在集成电路之间传输音频数据的问题。现在通常用于连接数字音频处理器(如解码器或编码器)、数字信号处理器(DSP)和音频编解码器等音频设备。
1.2 I2S协议
基本上,I2S接口通过三条线来传输数据:
1.时钟线(Continues Serial Clock,SCK):SCK线提供了同步音频数据传输的时钟信号,确定了数据传输的速度和时序。该时钟也称为Bit Clock(BCLK)。音频数据的每一位数据都对应一个 SCK,立体声都是双声道的,因此SCK的频率=2 x采样频率x位宽,比如:
44.1k双通道 16位宽:SCK = BCLK = 2 × 44100 × 16=1411200Hz=1.4112MHz。
16k双通道 16位宽:SCK = BCLK = 2 x 16000 x 16 = 512,000 Hz = 512KHz
16k单通道 16位宽:SCK = BCLK = 16000 x 16 = 256,000Hz = 256KHz
8K双通道 16位宽:SCK = BCLK = 2 x 8000 x 16 = 256,000Hz = 256KHz
8K单通道 16位宽:SCK = BCLK=8000 x16= 128,000Hz = 128KHz
2.左/右声道线(Left-Right Clock,LRCK):LRCK叫做帧时钟,该信号线也叫做WS线(字段选择信号),指示了当前传输的是左声道的音频数据还是右声道的音频数据,WS 为 “1” 表示正在传输左声道的数据,WS 为 “0” 表示正在传输右声道的数据。LRCK/WS的频率=采样频率,比如采样率为 44.1KHz 的音频,LRCK/WS=44.1KHz。这意味着在每个完整的采样周期内,都会传输一个左声道样本和一个右声道样本。在每个LRCK/WS周期内,包含一个左声道样本(高状态)和一个右声道样本(低状态)。因此,一个完整的LRCK/WS周期通常是两个采样周期(一个左声道和一个右声道)。
3.数据线(Serial Data,SD):SD线用于传输实际的音频数据,是串行数据信号。如果要同时实现放音和录音,那么就需要 2 根数据线,比如 WM8960 的 ADCDAT 和 DACDAT,就是分别用于录音和放音。数据的位宽可以根据具体应用而变化,通常为16位或32位。TX方向为:Serial Data Out(SDOUT);RX方向为:Serial Data In(SDIN)。
TX方向与RX方向的工作重点是不一样的:
I2S RX方向:麦克风在机械振动下将声音信号转变为电压信号,电压信号经过放大等处理,给到ADC采样,将模拟信号转化为数字信号;音频在ADC与DSP之间的传输协议就是使用的I2S协议。
I2S TX方向:数字信号经过编码、存储、压缩等技术后,发送给解码器-DAC(DSP、专用解码器),将数字信号还原为模拟信号,最后给到喇叭完成声音/音频的播放。音频在DAC与DSP之间的传输就是使用I2S协议。
I2S接口在实际应用中有几种常见的类型,在了解不同类型之前,需要先熟悉I2S的常用参数。
参数 |
含义 |
位宽(Word Length) |
位宽指定每个采样数据的位数,通常为16位或32位。较大的位宽可以提供更高的分辨率和动态范围。 |
时钟极性(Clock Polarity) |
时钟极性确定了数据位传输的时钟沿。根据具体的I2S设备和系统设置,可以定义在时钟上升沿或下降沿开始数据传输。 |
帧同步极性(Frame Sync Polarity) |
帧同步极性确定了帧同步信号的有效电平。帧同步信号指示音频数据的帧起始和结束位置。 |
传输格式(Data Format) |
传输格式定义了音频数据的编码方式,传输格式还可以指定数据的顺序,如左声道先传输还是右声道先传输。 |
I2S常用的类型有飞利浦模式、左对齐模式、右对齐模式。
1.飞利浦模式的主要特点:
(1)LRCK(左右声道选择信号):LRCK信号用于指示当前数据帧是左声道数据还是右声道数据。飞利浦格式中,当LRCK为低时,表示当前传输的数据是左声道数据;当LRCK为高时,表示当前传输的数据为右声道数据。
(2)SCK(位时钟):数据传输的时钟信号。在SCK下降沿发送数据,在SCK上升沿采样数据。
(3)Data Delay:发送的有效数据相对于LRCK的跳变沿(从0到1或从1到0)延迟一个时钟周期。
(4)数据发送从MSB开始;数据MSB与LRCK delay 1个SCK的边沿对齐。
2.左对齐模式的主要特点:
(1)在左对齐格式中,LRCK为高时,表示当前传输的数据为左声道数据;当LRCK为低时,表示当前传输的数据为右声道数据。
(2)在SCK下降沿发送数据,在SCK上升沿接收数据。
(3)无data delay:发送的有效数据相当于LRCK跳变沿(从0到1或从1到0)不延迟。
(4)数据发送从MSB开始;数据MSB与LRCK跳变沿对齐。
3.右对齐模式的主要特点:
(1)右对齐格式中,LRCK为高电平时,表示当前传输的数据为右声道数据;当LRCK为低电平时,表示当前传输的数据为左声道数据。
(2)在SCK下降沿发送数据,在SCK上升沿接收数据。
(3)无Data delay:发送的有效数据相当于LRCK跳变沿(从0到1或从1到0)不延迟。
(4)数据发送从MSB开始;数据LSB与LRCK跳变沿对齐。