Linux音频驱动-IIS总线标准

2020-03-24 17:21:03 浏览数 (1)

介绍

许多数字音频系统正被引入消费者音频市场,包括CD,磁带,数字声音处理器和数字电视声音。在这些系统中的数字音频信号需要由许许多多(Very-large-scale integration)的IC组成,处理。在音频系统中常见的IC芯片有:

  • A/D and D/A 转化器(数模转化器)
  • 数字信号处理器
  • 数字录像,以及出错纠正器
  • 数字滤波器
  • 数字输入/输出的接口

由于设备和IC制造商众多,所以需要一个统一的规范来管理,这样就可以增加设备以及系统的可移植性。为了此目的,就引入了I2S(inter-IC sound)数字总线协议接口。

I2S规范

I2S总线只能用来处理audio data,而别的信号比如控制信号,编码信号则交给别的模块处理。为了最小化所需引脚以及保持简单的布局,I2S拥有三条数据信号线。

  • SCK(continuous serial clock)
  • WS(word select)
  • SD(serial data)

对于系统而言,产生SCK和WS的信号端是主设备(Master)。

trams是主设备(播放音乐的过程)

receive是主设备(录音的过程)

SCK

可以理解为该I2S需要工作的时钟频率,如下是SCK的计算公式:

SCK=2*采样频率*采样位数。

WS

WS选择线表明使用那个通道在传输数据。

WS=0,使用通道1,也就是左声道。

WS=1,使用通道2,也就是右声道。

注意以下几点:

1. WS可以在串行时钟SCK的上升沿或者下降沿改变,并且WS信号不一定需要对称。(对称什么意思? 没搞懂)

2. 在从设备中,WS在时钟信号的上升沿改变。

3. WS总是在MSB传输前的一个时钟周期改变。这样有利于从发送设备提交建立下次传输,同时有利于从接受设备接受数据,为一下接受做准备工作。

SD

用二进制补码的形式表示音频数据。传输数据的规则:

1. 保证数据的最高位(MSB)最先被传输。

2. 当系统的发送端数据长度大于接受端数据长度,则接受端会将多余的数据截断。

3. 当系统的发生端数据长度小于接受端数据长度,则接受端会将缺少的数据补齐。

Time Diagram

关于I2S的接口协议就简单介绍到这里。

0 人点赞