I2S通信详解

  I2S


1,概念:I2S(Inter—IC Sound)总线, 又称 集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之间的数据传输,广泛应用于各种多媒体系统。


2,I2S特点
①,支持全双工和半双工通信。
②,支持主/从模式。


3,接口
①,SD:串行数据(映射到 MOSI 引脚),用于发送或接收两个时分复用的数据通道上的数据(仅半双工模式)。
②,WS:字选择(映射到NSS引脚),即帧时钟,用于切换左右声道的数据。WS频率等于音频信号采样率(fs)。
③,CK:串行时钟(映射到SCK引脚),即位时钟,是主模式下的串行时钟输出以及从模式下的串行时钟输入。位时钟=采样率*通道数*位数。
④,I2S2ext_SD和I2S3ext_SD:用于控制I2S全双工模式的附加引脚(映射到MISO引脚)。
⑤,MCK:即主时钟输出,当I2S配置为主模式(并且SPI_I2SPR寄存器中的MCKOE位置1)时,使用此时钟,该时钟输出频率 256×fs,fs即音频信号采样频率(fs)。


4,I2S初始化配置
①,i2s的时钟使能和GPIO口配置
②,配置为i2s模式
③,i2s标准,包括左对齐,右对齐,i2s标准,即数据的最高位总是出现在WS变化(也就是一帧开始)后的第2个CK脉冲处。
④,i2s数据长度,包括16位,16位扩展(16位数据以32位包发送),24位,32位。
⑤,设置i2s时钟
⑥,设置i2s空闲状态下时钟电平
⑦,i2s使能
⑨,设置I2S的采样率。采样率一般在8K-192K之间。


5,I2S读写数据流程
①,WS时钟线用于切换左右声道,在该时钟的同一周期内的高电平和低电平应发送相同的数据,然后左右声道的声音才会一样。
②,CK时钟用于启动传输每一位音频数据




6,单声道音频数据转双声道音频数据
把单声道数据转换成双声道数据传输时,可作如下数据转换:
for(res=0;res {
buf2[res*4]=buf1[res*2];
buf2[res*4+1]=buf1[res*2+1];
buf2[res*4+2]=buf1[res*2];
buf2[res*4+3]=buf1[res*2+1];
}

你可能感兴趣的:(数据接口)