come from : https://blog.csdn.net/u010164190/article/details/72961644
概述
I2S,PCM,IOM-2都是数字音频接口,传数据的。
I2C,SPI,UART,GPIO是控制接口,传控制信令的。
I2S
I2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频 数据传输而制定的一种总线标准。
I2S至少3根线:
1. 比特时钟线
首先解释一下比特时钟线。比特时钟线上对每个bit有一个脉冲,比特时钟频率是2×采样频率×采样位数,比如,在播放44.1Khz CD的时候,比特时钟频率就是:44.1KHz*16*2 = 1.4112MHz
2. 帧时钟线
切换左右声道的数据,帧时钟的频率等于采样率。LRCK为“1”表示正在传输的是左声道的数据,为“0”则表示正在传输的是右声道的数据。LRCK的频率等于采样频率。
3. 复用数据线
所谓复用,指的是左右声道的复用。传输数据是以2的补码,大端形式给出。
I2S可能还有一根线,是主时钟线或上行数据线。所以,碰到四线的I2S也不要惊讶哦~~
I2S有主从模式,就是谁来提供时钟的选择。谁提供时钟,谁就是主(Master)
PCM
也是传输数字音频的,一般是固定8k的采样率的单声道音频。
IOM-2
高品质音频,一般传给蓝牙A2DP的是这种接口
I2C
两根线,一个CLK线,一根DATA线,有主从模式,一般MCU做主,器件做从。I2C使用两根双向半双工的线,主提供时钟。时钟都是bit时钟,发送请求的时候,比如获取寄存器内容的时候,主发送请求,然后交出DATA线控制权,从回答请求,并返回寄存器内容。
下面就是一主多从的例子:
SPI
Only 2chip select lines so max number ofdevices is very limited. Bus is faster andcan be driven over longer cable runsthan I2C. Programming more difficult.Device selection very limited unless youare willing to solder SMD.
UART
Welcome tothe 1970s! 通用异步串行口。按照标准波特率完成双向通讯,速度慢。UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。 UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。
GPIO
GPIO,通用型输入输出(GeneralPurpose I/O)的简称,其引脚可以供使用者由程式控制自由使用,PIN脚可作为通用输入(GPI)或通用输出(GPO)或通用输入输出(GPIO),如当clk generator, chip select等。
既然一个引脚可以用于输入、输出或其他特殊功能,那么一定有寄存器用来选择这些功能。对于输入,一定可以通过读取某个寄存器来确定引脚电平的高低;对于输出,一定可以通过写入某个寄存器来让这个引脚输出高电平或者低电平;对于其他特殊功能,则有另外的寄存器来控制它们。
SLIMBus
音频、数据、总线和单条总线上的设备控制器;
减少引脚数以降低产品消耗;
支持高质量音频多信道;
单条总线上多重并发采样率;
高效、不受主机控制的、对等通用数据通信;
提高软件重用性和协同工作能力的标准消息集;
使用普通数字音频时钟,也同时使用已经建立的系统时钟
为优化总线功率消耗而采用动态时钟频率
例子
这边有个手机上FM+BT芯片接口的例子:蓝牙用的是PCM/I2S传输音频数据,控制信令走UART/I2C,FM音频走模拟电路。