I2S总线规范中文版

本文博客链接:https://blog.csdn.net/weixin_37366441/article/details/120544459,作者:Arcrong,未经允许不得转载.

1.0 介绍

许多数字音频系统正在被引入消费音频市场,包括光盘、数字音频磁带、数字声音处理器和数字电视。这些系统中的数字音频信号被一些(V)LSI芯片进行处理,例如:

  • A/D和D/A转换器;
  • 数字信号处理器;
  • 为光盘和数码录音纠错;
  • 数字滤波器;
  • 数码输入/输出接口。

标准化的通信结构对设备和集成电路制造商都是至关重要的,因为它们增加了系统的灵活性。为此,我们开发了I2S总线——一种专用于数字音频的串行链路。

2.0 基本串行总线要求

总线仅处理音频数据,而其他信号,如sub-coding和控制,被单独传输。为了减少所需的引脚数量和保持布线简单,使用了3线串行总线,它包括一条用于切换左右声道的数据线,一条音频传输数据线和一条时钟线。

由于发送端和接收端由相同的时钟信号进行数据传输,因此作为主机的发送端必须产生位时钟,声道选择信号和音频数据。然而,在复杂的系统中可能由几个发送器和接收器,这使得很难去定义谁是主机。在这样的系统中,通常由一个系统主机控制各个IC间的数字音频流。这个时候,发射机必须在外部时钟的控制下产生数据,因此扮演从端的角色。图1中说明了一些简单的系统配置和基本的接口时序。请注意,系统主机可以与发射机或接收机组合,同时它可以在软件控制或引脚编程下被使能或被禁能。

在这里插入图片描述
图1 简单的系统配置和基本的接口时序

3.0 I2S总线

如图1所示,总线由3条线组成:

  • 连续串行时钟(SCK);
  • 声道选择(WS);
  • 串行数据(SD);

产生SCK和WS的是主机。

3.1 串行数据

串行数据以二进制补码传输,MSB在前。 MSB首先被传输是因为发射机和接收机有可能有不同的字长。发射机没必要直到接收机能处理多少位数据,同样的,接收机没必要知道有多少位的数据被传输。
当系统字长大于发射机字长时,字将被截断(最低有效数据位设置为‘0’)传输。如果接收机接收到的位数据多于自身字长,则LSB后面的位被忽略。另一方面,如果接收机接收到的位数据小于自身字长,那么缺失的位将被设置成0。所以,MSB有一个固定的位置,然而,LSB的位置取决于字长。发射机总是在WS改变一个时钟周期后发送下一个字的MSB。
由发射机发送的串行数据可以在时钟信号的下降沿(高到低)或者上升沿(低到高)进行同步。然而,串行数据必须在时钟的上升沿被接收机锁定,因此,在时钟上升沿传输的数据被同步时有一些限制(看图2和表1)。

3.2 声道选择

声道选择线指示正在传输的通道:

  • WS = 0;通道1(左);
  • WS = 1;通道2(右);

WS可能在时钟的上升沿或者下降沿发生改变,但它不需要对称。在从机中,该信号在时钟的上升沿被锁存。WS线在MSB传输前的一个时钟周期发生改变。**这允许从端发射机获得将被设置用于传输的串行数据的同步时序。**此外,它使接收器能够存储上一个字并清空,以便接收下一个字。

4.0 时序

在I2S的设计中,任何设备只要提供必须的时钟信号都可以扮演系统主机的角色。一个从机的内部时钟信号通常来源于一个外部时钟输入。这意味着,考虑到在主机时钟,数据和/或声道选择信号之间的传播延迟,它的总延迟可以简单的相加:

  • 在外部(主机)时钟和从机内部时钟的延迟;
  • 在内部时钟,数据和/或声道选择信号之间的延迟。

对于数据和声道选择信号输入,外部到内部时钟的延迟无关紧要,因为它只会延长有效设置时间(见图2)。时间裕度的主要部分是为了适应发射机的传播延迟与设置接收机所需时间之间的差异。
所有时间要求都是相对于时钟周期或设备允许的最小时钟周期规定的。这意味着在未来可以使用更高的数据传输速率。

在这里插入图片描述
图2 I2S发射机的时序

在这里插入图片描述
图3 I2S接收机的时序

注意,图2和图3给出的时序由发射机速率进行定义。接收机的规格必须与发射机的性能相匹配。

例子:主端发射机数据传输速率2.5MHz(±10%)(所有值单位为ns)
在这里插入图片描述
例子:从端接收机数据传输速率2.5MHz(±10%)(所有值单位为ns)
在这里插入图片描述
表1 I2S发射机和接收机的时序
在这里插入图片描述
所有时间值都是依据高低阈值指定的。

注意:

  1. 系统时钟周期T必须大于Ttr和Tr,因为发射机和接收机都必须有能力处理相应的数据传输速率。
  2. 在主端模式的所有数据速率下,发射器或接收器生成具有固定标记/空间比的时钟信号。出于这个原因,tHC和tLC是针对T来指定的。
  3. 在从端模式中,发射机和接收机需要一个HIGH和LOW周期最小的时钟信号,以便它们可以检测信号。只要最小周期大于0.35T,任何符合需求的时钟都可以使用(见图3).
  4. 因为延时值(tdtr)和最大传输速率(由Ttr定义)是相关的,所以由慢速率时钟驱动的快速发射机可能导致tdtr不超过tRC,这意味着thtr变为0或负。因此,只要时钟上升时间tRC不大于tRCmax,其中tRCmax不小于0.15Ttr,发射机就必须保证thtr大于或等于0。
  5. 为了允许数据在下降沿时钟输出,针对时钟信号的上升沿和T指定的延时时间始终为接收机提供足够的设置时间。
  6. 数据设置和保持时间不得小于指定的接收器设置和保持时间。

在这里插入图片描述
图4 关于电压电平的时钟上升时间定义

5.0 电压电平规范

5.1 输出电平

VL < 0.4V
VH > 2.4V

5.2 输入电平

VIL = 0.8V
VIH = 2.0V
注:这是使用的TTL电平标准,随着其它IC(LSI)的流行,其它电平也会支持。

6.0 可能的硬件配置

6.1 发射机(见图5)

随着WS信号的改变,导出一个WSP脉冲信号,进入并行移位寄存器,从而输出数据被激活。串行数据的默认输入是0,因此所有位于最低位(LSB)后的数据将被设置为0。

6.2 接收机(见图6)

随着第一个WS信号的改变,WSP在SCK信号的下降沿重设计数器。在“1 out of n”译码器对计数器数值进行译码后,第一个串行的数据(MSB)在SCK时钟信号的上升沿被存放进入B1,随着计数器的增长,接下来的数据被依次存放进入B2到Bn中。
在下一个WS信号改变的时候,数据根据WSP脉冲的变化被存放进入左(声道)锁存器或者右(声道)锁存器,并且将B2到Bn的数据清除以及计数器重设,如果有冗余的数据则最低位之后的数据将被忽略。
注意:译码器和计数器(虚线内的部分)可以被一个n比特移位寄存器所代替(见图7)。
在这里插入图片描述
图5 可能的发射器配置
在这里插入图片描述
图6 可能的接收机配置
在这里插入图片描述
图7 可能的接收机配置,使用n位移位寄存器控制数据输入寄存器

猜你喜欢

转载自blog.csdn.net/weixin_37366441/article/details/120544459