问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

详解I2S协议

创作时间:
作者:
@小白创作中心

详解I2S协议

引用
CSDN
1.
https://m.blog.csdn.net/weixin_50810761/article/details/143462231

I2S(Inter-IC Sound)是一种用于数字音频设备之间传输音频数据的电气接口标准。本文将详细介绍I2S协议的原理、四种传输模式以及在WM8371音频芯片中的具体实现。

1、整体概括

WM8731是一款音频采集芯片,支持两路音频输入(ADC)和一路音频输出(DAC)。芯片与主控芯片通过I2S接口进行数据传输,主要涉及以下信号:

  • ADCRC:ADC采集数据的左右声道指示信号
  • DACRC:DAC采集数据的左右声道指示信号
  • BCLK:位数据对齐时钟
  • ADCDAT:ADC输出数据
  • DACDAT:DAC采集数据

WM8731的I2S接口支持主机和从机两种模式:

  • 主机模式:时钟(BCLK)和声道指示信号(ADCLRC、DACLRC)由WM8371提供
  • 从机模式:时钟和声道指示信号由主控芯片提供


图1 主机模式


图2 从机模式

2、I2S协议的四种模式

I2S总线根据ADCDAT和DACDAT的数据变化,分为左对齐、右对齐、I2S及DSP共四种模式。

2.1、左对齐模式

在左对齐模式下,ADCDAT在ADCLRC高电平时传输左声道的数据,在ADCLRC低电平时传输右声道数据,且ADCDAT先传输高位数据。ADCLRC的频率等于配置的ADC采样频率fs。

ADCDAT在BCLK的前n个时钟的下降沿传输数据,n表示ADC采集数据的位宽。需要注意的是,BCLK的频率必须大于等于ADC采样率乘以ADC数据位宽乘以2。


图3 左对齐模式

2.2、右对齐模式

右对齐模式下,数据的结束位置与ADCLRC/DACLRC边沿对齐。这种模式在编写适配多种采样率的发送驱动时较为复杂,且不支持32位ADC和DAC数据位宽。


图4 右对齐模式

2.3、I2S模式

I2S模式与左对齐模式类似,但ADCDAT/DACDAT在ADCLRC/DACLRC边沿后的第一个BCLK不传输数据,从BCLK的第二个下降沿开始传输最高位数据。


图5 I2S模式

2.4、DSP模式

DSP模式下,每次传输数据LRCLK只持续一个BCLK周期,其余时间保持电平。LRCLK的下降沿与BCLK的下降沿对齐,ADCDAT/DACDAT开始传输n位左声道数据,然后传输n位右声道数据,ADCDAT/DACDAT在剩余的BCLK周期无效。


图6 DSP模式

四种模式下LRCLK和BCLK的频率都是遵守相同规则的,且ADCDAT/DACDAT均在BCLK的下降沿传输数据,在BCLK上升沿期间数据保持不变。

3、WM8371的时序参数

WM8731的ADC和DAC的数据位宽始终为24位,但在I2S或左对齐模式下,数字音频数据可编程为16位、20位、24或32位。即寄存器编程音频数据位宽为16位时,ADCDAT会将ADC采集的高16位数据输出,低8位数据舍弃。如果寄存器编程音频数据位宽为32位时,ADCDAT会把ADC采集的24位数据作为高位,低八位补零,达到32位数据输出。

主机模式下的时序参数如下所示,需要重点关注下图红框中的两个时序参数。


图7 主机模式时序参数

两个时序参数如下表所示,DACDAT必须在BCLK上升沿前后至少10ns内保持稳定


图8 时序参数

从机模式的时钟信号和声道指示信号都由主控芯片提供,相关的时序参数会多一些,如下图所示。


图9 从机模式时序参数

BCLK的最小周期为50ns,即接口数据传输的最大频率为20MHz,另外DACLRC/ADCLRC和DACDAT在BCLK上升沿前后的10ns内必须保持不变,WM8731才能稳定采集对应信号的状态。


图10 时序参数

本文主要讲解I2S时序,后文会详解WM8371芯片的寄存器配置及电路原理图设计。文中图片均来自WM8371芯片手册。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号