I2S协议

(一)I2S总线概述:

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

(二)I2S总线规范:

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

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

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

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

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

  命令选择线表明了正在被传输的声道。

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

 3、SD: (serial data)  串行数据 :

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

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

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

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

                     图2 I2S典型的接口时序

4、时序要求

        在IIS总线中,任何设备都可以通过提供必需的时钟信号成为系统的主设备置,而从属设备通过外部时钟信号来得到它的内部时钟信号,这就意味着必须重视主设备和数据以及命令选择信号之间的传播延迟,总的延迟主要由两部分组成: 1.外部时钟和从设备的内部时钟之间的延迟 2.内部时钟和数据信号以及命令选择信号之间的延迟         对于数据和命令信号的输入,外部时钟和内部时的延迟不占据主导的地位,它只是延长了有效的建立时间(set-up time)。延迟的主要部分是发送端的传输延迟和设置接收端所需的时间。见图3和图4: 

                        图3 Timing for IIS Transmitter

                        图4  Timing for IIS Receiver

其中:

5、电气特性

输出电压:

        VL <0.4V                 VH>2.4V 

输入电压

         VIL=0.8V                 VIH=2.0V

注:目前使用的TTL电平标准,随着其他IC(LSI)的流行,其他电平也会支持。  

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏架构之路

高并发请求的缓存设计策略

前几天,我司出了个篓子。当时正值某喜闻乐见的关键比赛结束,一堆人打开我司app准备看点东西,结果从来没有感受到过这么多关注量的该功能瞬间幸福到眩晕,触发了熔断,...

862
来自专栏Jimoer

Java设计模式学习记录-责任链模式

 已经把五个创建型设计模式和七个结构型设计模式介绍完了,从这篇开始要介绍行为型设计模式了,第一个要介绍的行为型设计模式就是责任链模式(又称职责链模式)。

942
来自专栏一名叫大蕉的程序员

您需要来一份82年的代理吗?No.12

上一篇大家又说我放水了。这样说我很伤心的啵。今天跟大家分享一下代理模式以及JAVA中的代理模式。 代理模式有什么用呢?我总结的一点就是,让别人代理安全一点。 现...

1787
来自专栏Java3y

计算机网络【开山篇】

最近在看相关面经时,发现对于计算机网络的考察还是挺多的。于是就看回这些曾经做过的笔记复习了一下。

871
来自专栏SDNLAB

SDN实战团分享(二十九):Microflow性能调优分享

Hello大家好,很高兴可以在这里和大家分享一下我的个人开源项目Microflow的相关工作。 我是BII天地互连的工程师,在公司里负责SDN产品和技术的开发,...

3357
来自专栏Golang语言社区

morestack与goroutine pool

o语言的goroutine初始栈大小只有2K,如果运行过程中调用链比较长,超过的这个大小的时候,栈会自动地扩张。这个时候会调用到一个函数runtime.more...

4656
来自专栏码代码的陈同学

Java应用性能优化之道

第一篇 理解 Java GC 中我们学习了不同GC算法的处理过程,GC是如何工作的,什么是年轻代和老年代,JDK7中的5种GC类型,以及每种GC类型对性能的影响...

1793
来自专栏JAVA技术zhai

垂直打击之JVM剖析

Java是目前软件开发领域中使用最广泛的编程语言之一。Java应用程序在许多垂直领域(银行、电信、医疗保健等)中都有广泛使用。Refcard的目的是,帮助开发者...

1304
来自专栏芋道源码1024

告诉你 Redis 是一个牛逼货

Redis 是一个 Key-Value 存储系统。和 Memcached 类似,它支持存储的 value 类型相对更多,包括 string(字符串)、 list...

890
来自专栏鹅厂网事

高性能网关设备及服务实践

针对海量的网络流量,转发性能是我们最关键的一个方面,那构建高性能的后台服务器有哪些关键的技术和需要注意的地方。

5948

扫码关注云+社区