七夜浮生

数字音频I2S总线

1
阅读(797) 评论(2)

一、I2S总线概述

        音响数据的采集、处理和传输是多媒体技术的重要组成部分。众多的数字音频系统已经进入消费市场,例如数字音频录音带、数字声音处理器。对于设备和生产厂家 来说,标准化的信息传输结构可以提高系统的适应性。I2S(Inter—IC Sound)总线是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之间的数据传输,广泛应用于各种多媒体系统。

二、I2S总线规范

I2S总线拥有三条数据信号线:

1SCK: (continuous serial clock)  串行时钟

         对应数字音频的每一位数据,SCK都有1个脉冲。SCK的频率=2×采样频率×采样位数。

2WS: (word select)  字段(声道)选择

         用于切换左右声道的数据。WS的频率=采样频率。

         命令选择线表明了正在被传输的声道。 
         WS
“1”表示正在传输的是左声道的数据。 
         WS
“0”表示正在传输的是右声道的数据。 
        WS
可以在串行时钟的上升沿或者下降沿发生改变,并且WS信号不需要一定是对称的。在从属装置端,WS在时钟信号的上升沿发生改变。WS总是在最高位传输 前的一个时钟周期发生改变,这样可以使从属装置得到与被传输的串行数据同步的时间,并且使接收端存储当前的命令以及为下次的命令清除空间。 

3SD: (serial data)  串行数据 

         用二进制补码表示的音频数据。 I2S 格式的信号无论有多少位有效数据,数据的最高位总是被最先传输(WS变化(也就是一帧开始)后的第2SCK脉冲处),因此最高位拥有固定的位置,而最 低位的位置则是依赖于数据的有效位数。也就使得接收端与发送端的有效位数可以不同。如果接收端能处理的有效位数少于发送端,可以放弃数据帧中多余的低位数 据;如果接收端能处理的有效位数多于发送端,可以自行补足剩余的位(常补足为零)。这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位。 为了保证数字音频信号的正确传输,发送端和接收端应该采用相同的数据格式和长度。当然,对I2S格式来说数据长度可以不同。 

 

对于系统而言,产生SCKWS的信号端就是主设备,用MASTER表示,简单系统示意图如图1所示:      

blob.png

简单系统配置和基本接口时序       

另一个基本的接口时序图可以参看图2所示:  

blob.png

2 I2S典型的接口时序


今晚有时间,写了一个I2S总线的模块,代码风格符合公司级规范,希望可以给大家一个参考。

blob.png

blob.png

blob.png

blob.png

blob.png

blob.png


  1. 给大神点赞

  2. 说实话,没看懂,不过依然给你点个赞