硬件接口之I2S
I2S仅仅是PCM的一个分支,接口定义都是一样的, I2S的采样频率一样平常为44.1KHZ和48KHZ做,PCM采样频率一样平常为8K,16K。有四组旗子暗记: 位时钟旗子暗记,同步旗子暗记,数据输入,数据输出.I2S速率快,专门用于传音乐。 从MCU往Codec传音乐数据,一样平常利用I2S。包含主时钟、旁边声道时钟、正反两根数据线。PCM/TDM,紧张用来传语音 这里讲的PCM不是PCM编码,而是PCM接口。和I2S差不多,也是4根线,常日用于AP处理器和通信MODEM之间传输语音数据(便是双向打电话的数据)。 AP处理器和蓝牙之间也是通过PCM来传输语音数据,打电话的蓝牙数据走的是PCM,放音乐的蓝牙数据走的是串口(不是PCM)。I2S只能传2个声道的数据,PCM可以传多达16路数据,采取时分复用的办法,便是TDM。像现在最盛行的语音智能音箱的7麦克风矩阵,一样平常都是用TDM来传的数据,同时可以传输7路麦克风输入和3路以上的音频反馈旗子暗记。PDM,只有2根线,传音乐,编码办法和I2S不同。 很多数字麦克风利用的PDM接口,有数据和时钟两根线。PDM接口和I2S最大的差异是编码办法不同。
如下图的I2S接口的时序,最范例的特色是LRCLK,用于区分旁边声道的时钟。
这篇文章总结了I2S协议的一些知识点,作为自己往后调试音频的参考,当然了文章中的内容也参考了一些网友的总结。

现实生活中的声音是通过一定介质传播的连续的波,它可以由周期和振幅两个主要指标描述。正凡人可以听到的声音频率范围为 20Hz~20KHz。现实存在的声音是仿照量,这对声音保存和长间隔传输造成很大的困难,一样平常的做法是把仿照量转成对应的数字量保存,在须要还原声音的地方再把数字量的转成仿照量输出如下图所示:
仿照量转成数字量一样平常可以分为三个过程,分别为采样、量化、编码,如下图所示。
用一个比源声音频率高的采样旗子暗记去量化源声音,记录每个采样点的值,末了如果把所有采样点数值连接起来与源声音曲线是相互吻合的,只是它不是连续的。在图中,两条蓝色虚线间隔便是采样旗子暗记的周期,即对应一个采样频率(FS),可以想象得到采样频率越高末了得到的结果就与源声音越吻合,但此时采样数据量越越大,一样平常利用 44.1KHz 采样频率即可得到高保真的声音。每条蓝色虚线长度决定着该时候源声音的量化值,该量化值有其余一个观点与之挂钩,便是量化位数。量化位数表示每个采样点用多少位表示数据范围,常用有 16bit、 24bit 或 32bit,位数越高末了还原得到的音质越好,数据量也会越大。
2.声音数字化三要素采样频率:每秒钟抽取声波幅度样本的次数。采样频率越高,声音质量越好,数据量也越大。常用的采样频率有11.025KHz,22.05KHz,44.1KHz,48KHz,96KHz,192KHz等。量化位数:每个采样点用多少二进制位表示数据范围。量化位数也叫采样位数。量化位数越多,音质越好,数据量也越大。常用的采样位数有8位,16位,24位,32位等。声道数:利用声道的个数。立体声比单声道的表现力丰富,但是数据量翻倍。常用的声道数有单声道,立体声(左声道和右声道)。
3.声音数字化的数据量声音数字化后的数据量打算公式为:音频数据量 = 采样频率(Hz) 量化位数 声道数 / 8,单位:字节/秒。这里举个例子:对一个声音旗子暗记进行数字化处理,采样频率为44.1KHz,量化位数为16位,那么:单声道的音频数据量为:44100 16 1 / 8 = 88200 字节/秒;立体声的音频数据量为:44100 16 2 / 8 = 176400 字节/秒。
4.声卡声卡是卖力录音、播音和声音合成的一种多媒体板卡。其功能包括:(1).录制、编辑和回放数字音频文件;(2).掌握和稠浊各声源的音量;(3).记录和回放时进行压缩和解压缩;(4).语音合成技能(朗读文本);(5).具有MIDI接口(乐器数字接口)。声卡的芯片类型:(1).CODEC芯片(依赖CPU,价格便宜);(2).数字旗子暗记处理器DSP(不依赖CPU)。
二、I2S总线协议1.I2S总线概述 音响数据的采集、处理和传输是多媒体技能的主要组成部分。浩瀚的数字音频系统已经进入消费市场,例如数字音频录音带、数字声音处理器。对付设备和生产厂家来说,标准化的信息传输构造可以提高系统的适应性。 I2S(Inter-IC Sound)总线, 又称集成电路内置音频总线,是飞利浦半导体公司(现为恩智浦半导体公司)针对数字音频设备之间的音频数据传输而制订的一种总线标准。该总线专门用于音频设备之间的数据传输,广泛运用于各种多媒体系统。它采取了沿独立的导线传输时钟与数据旗子暗记的设计,通过将数据和时钟旗子暗记分离,避免了因时差诱发的失落真,为用户节省了购买抵抗音频抖动的专业设备的用度。2.I2S旗子暗记线I2S总线紧张有3个旗子暗记线:串行时钟SCLK(BCLK) 串行时钟SCLK,也叫位时钟BCLK,对应数字音频的每一位数据,SCLK都有1个脉冲。SCLK的频率 = 声道数 采样频率 采样位数。帧时钟LRCLK(WS) 字段选择旗子暗记WS,也叫帧时钟LRCLK,用于切换旁边声道的数据。LRCLK的频率 = 采样频率。 字段选择旗子暗记WS表明了正在被传输的声道。I2S Philips标准WS旗子暗记的电平含义如下: WS为0,表示正在传输的是左声道的数据; WS为1,表示正在传输的是右声道的数据。串行数据SDATA(SD) 串行数据SDATA,分为SDIN和SDOUT,便是用二进制补码表示的音频数据。I2S串行数据在传输的时候,由高位(MSB)到低位(LSB)依次进行传输。主时钟MCLK 一样平常还有MCLK主时钟,也叫系统时钟(System Clock)。MCLK的频率 = 128或者256或者512 采样频率。MCLK并不是必须的,一样平常为了使系统间能够更好地同步时增加MCLK旗子暗记。对付系统而言,能够产生SCLK和LRCLK的旗子暗记端便是主设备,用MASTER表示,大略系统示意图如下:
3.几种常见的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 标准时序图如下所示:
2).左对齐(MSB)标准
在LRCLK发生翻转的同时开始传输数据。该标准较少利用。把稳此时LRCLK为1时,传输的是左声道数据,这刚好与I2S Philips标准相反。左对齐(MSB)标准时序图如下所示:
(3).右对齐(LSB)标准声音数据LSB传输完成的同时,LRCLK完成第二次翻转(刚好是LSB和LRCLK是右对齐的,以是称为右对齐标准)。把稳此时LRCLK为1时,传输的是左声道数据,这刚好与I2S Philips标准相反。右对齐(LSB)标准时序图如下所示:
硬件电路电气连接IS是比较大略的数字接口协议,没有地址或设备选择机制。在IIS总线上,只能同时存在一个主设备和发送设备。主设备可以是发送设备,也可以是吸收设备,或是折衷发送设备和接管设备的其它掌握设备。在IIS系统中,供应时钟的设备为主设备。
文章知识点与官方知识档案匹配,可进一步学习干系知识
下期,我们讲解:采样率fs、比特率BCLK 、主时钟MCLK关系。