原创 IIS BUS 原理

2011-3-4 17:35 2994 5 5 分类: MCU/ 嵌入式

IIS有4条线:串行数据输入(IISDI)、串行数据输出(IISDO)、左右通道选择(IISLRCK)和串行位时钟(IISCLK)。产 生IISLRCK和IISCLK信号的设备称为主设备。

 
 图1 IIS总线格式

  串行数据以2的补码发送,首先发送高位。高位首先发送是因为发送方和接收方可以有不同的字长度。发送方知道接收方能 处理的位数是不必要的,同样,接收方也不需要知道发送方正发送多少位的数据。当系统字长度大于发送方的字长度时,字 被切断来发送。如果接收方收到比它的字长度更多的位时,多的位被忽略;若接收方接收比它字长度少的位时,不足的位被 内部设置为0。所以高位有固定的位置,而低位的位置依赖于字长度。发送器 总是在IISLRCK变化的下一个时钟周期发送下一 个字的高位。

  发送器的串行数据发送可以在时钟信号的上升沿或下降沿被同步。可是串行数据必须在串行时钟信号的上升沿锁存进接收 器,所以当发送数据用上升沿来同步时有一些限制。LR通道选择可以指示当前正发送的通道。IISLRCK既可以在串行时钟的 上升沿变化,也可以在下降沿变化,但不需要同步。在从模式下,这个信号在串行时钟的上升沿锁存。IISLRCK信号秽‘变 一个时钟周期之后,开始发送高位数据,这允许从发送方可以同步发送串行数据。更进一步,它允许接收方存储先前的字并 准备接收下一个字。

  IIS总线模块结构框图如图2所示。

 
 图2 IIS总线结构框图

  由图2可总结出IIS总线的主要特点如下。

  ·双分频器 (IPSR):一个用于IIS设备的主时钟发生器 ,另一个用于外部编解码芯片 时钟发生器 。

  ·64字节的堆栈(FIFO):发送数据时,数据被写入发送FIFO;接收数据时,数据被写入接收 FIFO。

  ·IISCLK主时钟:在主模式下,串行位时钟由该发生器产生。

  ·移位寄存器:发送模式,并行数据通过该寄存器转化为并行数据;接收模式,串行数据被转化为并行数据接收。

=======================================================================================================

 在飞利浦公司的I2S标准中,既规定了硬件接口规范,也规定了数字音频数据的格式。I2S有3个主要信号:1.串行时钟SCLK,也叫位时钟(BCLK),即对应数字音频的每一位数据,SCLK都有1个脉冲。SCLK的频率=2×采样频率×采样位数 。

  2. 帧时钟LRCK,(也称WS),用于切换左右声道的数据。LRCK为“1”表示正在传输的是左声道的数据,为“0”则表示正在传输的是右声道的数据。 LRCK的频率等于采样频率 。3.串行数据SDATA,就是用二进制补码表示的音频数据。
  有时为了使系统间能够更好地同步,还需要另外传输一个信号MCLK,称为主时钟,也叫系统时钟(Sys Clock),是采样频率的256倍或384倍。
  串行数据(SD)
  I2S格式的信号无论有多少位有效数据,数据的最高位总是出现在LRCK变化(也就是一帧开始)后的第2个SCLK脉冲处。这就使得接收端与发送端的有效位数可以不同。如果接收端能处理的有效位数少于发送端,可以放弃数据帧中多余的低位数据;如果接收端能处理的有效位数多于发送端,可以自行补足剩余的位。这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位。
  随着技术的发展,在统一的 I2S接口下,出现了多种不同的数据格式。根据SDATA数据相对于LRCK和SCLK的位置不同,分为左对齐(较少使用)、I2S格式(即飞利浦规定的格式)和右对齐(也叫日本格式、普通格式)。
  为了保证数字音频信号的正确传输,发送端和接收端应该采用相同的数据格式和长度。当然,对 I2S格式来说数据长度可以不同。
  字段(声道)选择(WS)
  命令选择线表明了正在被传输的声道。
  WS=0,表示正在传输的是左声道的数据。
  WS=1,表示正在传输的是右声道的数据。
  WS可以在串行时钟的上升沿或者下降沿发生改变,并且WS信号不需要一定是对称的。在从属装置端,WS在时钟信号的上升沿发生改变。WS总是在最高位传输前的一个时钟周期发生改变,这样可以使从属装置得到与被传输的串行数据同步的时间,并且使接收端存储当前的命令以及为下次的命令清除空间。

时序要求:

  在I2s总线中,任何设备都可以通过提供必需的时钟信号成为系统的主导装置,而从属装置通过外部时钟信号来得到它的内部时钟信号,这就意味着必须重视主导装置和数据以及命令选择信号之间的传播延迟,总的延迟主要由两部分组成:
  外部时钟和从属装置的内部时钟之间的延迟
  内部时钟和数据信号以及命令选择信号之间的延迟
  对于数据和命令信号的输入,外部时钟和内部时钟的延迟不占据主导地位,它只是延长了有效的建立时间(set—up time)。延迟的主要部分是发送端的传输延迟和设置接收端所需的时间。
  T是时钟周期,Tr是最小允许时钟周期,T>Tr这样发送端和接收端才能满足数据传输速率的要求。
  对于所有的数据速率,发送端和接收端均发出一个具有固定的传号空号比(mark—space ratio)的时钟信号,所以t LC和tHC是由T所定义的。 t LC和tHC必须大于0.35T,这样信号在从属装置端就可以被检测到。
  延迟(tdtr)和最快的传输速度(由Ttr定义)是相关的,快的发送端信号在慢的时钟上升沿可能导致tdtr不能超过tRC而使thtr为零或者负。只有tRC不大于tRCmax的时候(tRCmax>:0.15T),发送端才能保证 thtr大于等于0。
  为了允许数据在下降沿被记录,时钟信号上升沿及T相关的时间延迟应该给予接收端充分的建立时间 (set-up time)。
  数据建立时间(set-up time)和保持时间(hold time)不能小于指定接收端的建立时间和保持时间。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/supjia/archive/2010/07/09/5724147.aspx

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /2 下一条