Skip to main content
欢迎来到PAWPAW技术文档网站了解更多信息

I2S/TDM接口

什么是I2S?

I2S(Inter-IC Sound)总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之间的数据传输,广泛应用于各种多媒体系统。

I2S有哪些信号?

(1).串行时钟SCK

串行时钟SCK,也叫位时钟BCLK,对应数字音频的每一位数据,SCK都有1个脉冲。SCK的频率 = 声道数 * 采样频率 * 采样位数。 例如:采样率:48000hz、立体声、32bit

BCLK=2 x 48000 x 32=3,072,000 (3.072MHZ)

(2).字段选择信号WS

字段选择信号WS,也叫LRCLK,用于切换左右声道的数据。WS的频率 = 采样频率。 字段选择信号WS表明了正在被传输的声道。I2S Philips标准WS信号的电平含义如下: WS为0,表示正在传输的是左声道的数据; WS为1,表示正在传输的是右声道的数据。

(3).串行数据SD

串行数据SD,就是用二进制补码表示的音频数据。I2S串行数据在传输的时候,由高位(MSB)到低位(LSB)依次进行传输。

(4).主时钟MCLK

一般还有MCLK,主时钟,顾名思义,主时钟通常是所有时钟的主要来源,通过主时钟可以分频出来BCLK和LRCLK。

通常MCLK的频率 = 128或者256或者512或者1024 * 采样频率。

对于系统而言,能够产生SCK和WS的信号端就是主设备,用MASTER表示i2s_eg1

那我们平时常说的采样率,位深又是怎么定义? 说白了就是对数据的采样精度和深度。

采样率 音频采样率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然,越高品质。例如:44.1khz,在一秒钟内对音频进行了44100次采样。

位深 (一)关于位深度。位深度也叫采样位深,音频的位深度决定动态范围。 我们常见的16Bit(16比特),可以记录大概96分贝的动态范围。那么,您可以大概知道,每一个比特大约可以记录6分贝的声音。同理,20Bit可记录的动态范围大概就是120dB;24Bit就大概是144dB。 假如,我们定义0dB为峰值,那么声音振幅以向下延伸计算,那么,CD音频可的动态范围就是"-96dB~0dB。",依次类推,24Bit的HD-Audio高清音频的的动态范围就是"-144dB~0dB。"。由此可见,位深度较高时,有更大的动态范围可利用,可以记录更低电平的细节

I2S有哪些格式?

随着技术的发展,在统一的I2S硬件接口下,出现了多种不同的I2S数据格式,可分为:左对齐(MSB)标准、右对齐(LSB)标准、I2S Philips 标准。 对于所有数据格式和通信标准而言,始终会先发送最高有效位(MSB 优先)。

发送端和接收端必须使用相同的数据格式,确保发送和接收的数据一致。

(1).I2S Philips 标准

使用LRCLK信号来指示当前正在发送的数据所属的声道,为0时表示左声道数据。LRCLK信号从当前声道数据的第一个位(MSB)之前的一个时钟开始有效。LRCLK信号在BCLK的下降沿变化。发送方在时钟信号BCLK的下降沿改变数据,接收方在时钟信号BCLK的上升沿读取数据。正如上文所说,LRCLK频率等于采样频率Fs,一个LRCLK周期(1/Fs)包括发送左声道和右声道数据。

对于这种标准I2S格式的信号,无论有多少位有效数据,数据的最高位总是出现在LRCLK变化(也就是一帧开始)后的第2个BCLK脉冲处。这就使得接收端与发送端的有效位数可以不同。如果接收端能处理的有效位数少于发送端,可以放弃数据帧中多余的低位数据;如果接收端能处理的有效位数多于发送端,可以自行补足剩余的位。这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位。

I2S Philips 标准时序图如下所示:

20180528000453146

(2).左对齐(MSB)标准

在LRCLK发生翻转的同时开始传输数据。该标准较少使用。注意此时LRCLK为1时,传输的是左声道数据,这刚好与I2S Philips标准相反。左对齐(MSB)标准时序图如下所示: 20180528000807177

(3).右对齐(LSB)标准

声音数据LSB传输完成的同时,LRCLK完成第二次翻转(刚好是LSB和LRCLK是右对齐的,所以称为右对齐标准)。注意此时LRCLK为1时,传输的是左声道数据,这刚好与I2S Philips标准相反。右对齐(LSB)标准时序图如下所示: avatar

I2S 的主从关系

对于系统而言,能够产生BCLK和LRCLK的信号端就是主设备,用MASTER表示,从设备用SLAVE表示。在多设备i2s交互的应用上,设定主从设备的意义在于完成对各设备的信号同步,避免各设备各自走自己的时钟,步调不一,从而数据移位错位甚至解析丢包问题。简单系统示意图如下:7cec4d8b454f26a66719d3e36736ce20

I2S TDM模式

(1)TDM背景

有些IC支持使用一组公共时钟(Bclk、LRclk)的多路I2S数据输入或输出,但这样的方法显然会增加数据传输所需要的管脚数量,例如传统i2s传输8通道音频就用了6个IO之多(Bclk、LRclk、data1、data2、data3、data4)。

为了能在音频芯片的产品完成多个通道音频数据的传输,主要为了处理信号路由和输入/输出端口的问题,目前行业内通过了一个时分多路复用(TDM: Time-Division Multiplexing)接口来实现但跟数据线传输多个通道的数据,节省多个信号传输对于端口数量的要求。TDM接口时最常用的在一个系统的多个设备间传输多个通道音频数据。TDM数据流可以承载多达16通道的数据,并有一个类似于I2S的数据/时钟结构。

每个通道的数据都使用数据总线上的一个槽(Slot),其宽度相当于帧的1/N, 其中N是传输通道的数量。出于实用考虑,N通常四舍五入到最近的2次幂(2、4、8、或16),并且任何多余通道都被空闲。一个TDM帧时钟通常实现为一位宽的脉冲,这与I2S的50%占空比时钟相反。超过25 MHz的时钟速率通常不用于TDM数据,原因是较高的频率会引起印刷电路板设计者要避免的板面布局问题。

TDM接口还没出现类似飞利浦I2S的其他标准,因此,很多IC都有着自己略微不同的TDM实现方法。这些变化体现在时钟极性、通道配置,以及闲置通道的三态化和驱动上。当然,通常情况下不同IC是可以一起工作的,但系统设计者必须确保一个器件的输出格式要符合另一只器件输入端的预期。

(2)TDM数据结构

TDM接口的类似于一个2通道串行音频接口,不同的是,为了能够样一帧或采样周期内能够传送更多的信号通道,通常为2个,4个,6个或8个通道。与通道串行音频接口相同,TDM接口由两个控制时钟来控制,帧同步脉冲(FSYNC)和串行时钟(SCLK),还有一个串行音频数据传输线(SDATA)。

FSYNC脉冲的功能,是简单地识别一帧的开始。每次开始的时候总是由FSYNC的升沿来表示。TDM的实现大部分只使用在FSYNC上升沿信号,并忽略下降沿信号,但每两个FSYNC上升沿的宽度为每一帧数据的数据的长度。