I2S

I2S总线,又称集成电路内置音频总线,专门用于音频设备之间的数据传输,广泛应用于多媒体系统。它采用了沿独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,避免了因时差诱发的失真,为用户节省了购买抵抗音频抖动的专业设备的费用。

I2S引脚

1、SCLK:串行时钟,也叫位时钟(BCLK),即对应数字音频的每一位数据,SCLK都有1个脉冲。SCLK的频率=2×采样频率×采样位数。

2、LRCK:帧时钟(也称WS),用于切换左右声道的数据。LRCK为“1”表示正在传输的是右声道的数据,为“0”则表示正在传输的是左声道的数据。LRCK的频率=采样频率。

3、SDATA:串行数据,就是用二进制补码表示的音频数据。(MSB —> LSB:数据由高位到低位依次传输)

4、MCLK:主时钟,有时为了使系统间能够更好地同步,还需要另外传输一个信号MCLK,称为主时钟,也叫系统时钟(Sys Clock),是采样频率的256倍或384倍。

一般来说SCK和WS都是又主设备产生的。

通信协议

I2S有三种通信格式,根据SDATA数据相对于LRCK和SCLK的位置不同,分为左对齐(较少使用)、I2S格式(即飞利浦规定的格式)和右对齐(也叫日本格式、普通格式)。

所有的通信格式都是从高位开始发送(MSB优先)。

为了保证数字音频信号的正确传输,发送端和接收端应该采用相同的数据格式和长度。

1、I2S格式(即飞利浦规定的格式)
I2S格式的信号无论有多少位有效数据,数据的最高位总是出现在LRCK变化(也就是一帧开始)后的第2个SCLK脉冲处。这就使得接收端与发送端的有效位数可以不同。如果接收端能处理的有效位数少于发送端,可以放弃数据帧中多余的低位数据;如果接收端能处理的有效位数多于发送端,可以自行补足剩余的位。这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位。

2、左对齐(较少使用)
LRCK为1时传输左声道数据,在LRCK发生翻转的同时开始传输数据。

3、右对齐(也叫日本格式、普通格式)
LRCK为1时传输左声道数据,在LRCK发生第二翻转的同时数据传输完成。

通信特征

1、支持全双工、半双工
2、支持主从模式

应用场景

音频数据传输

参考链接

https://baike.baidu.com/item/I2S/3443390?fr=aladdin

嵌入式基础接口-I2S相关推荐

  1. 嵌入式基础接口-PWM

    PWM 脉冲宽度调制(PWM)是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变. 这种方式能使电源的输出 ...

  2. 《嵌入式系统原理与接口技术》——嵌入式系统接口应用基础

    本文为我负责编写的电子工业出版社出版的<嵌入式系统原理与接口技术>一书第七章部分,这里整理的仍然是修改稿,供需要的同学参考,本书为普通高等教育"十二五"规划教材,电子信 ...

  3. 嵌入式基础(1)---硬件知识,搞嵌入式开发必备

    嵌入式基础硬件知识,搞嵌入式开发必备 做嵌入式系统开发,经常要接触硬件.做嵌入式开发对数字电路和模拟电路要有一定的了解. 这样才能深入的研究下去.下面我们简单的介绍嵌入式开发中的一些硬件相关的概念. ...

  4. 嵌入式系统概念以及嵌入式基础知识

    嵌入式系统概念以及嵌入式基础知识 \\\插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的(禾厶-亻言-手戈).最近比较闲,带做毕设,带学生参加省级以上比赛/ ...

  5. 嵌入式软件接口怎么测试,嵌入式系统接口测试策略.doc

    嵌入式系统接口测试策略 嵌入式系统接口测试策略 摘要:在日益广泛应用的嵌入式系统中,软件测试因为系统平台局限性需要重复下装,耗费较大的测试资源与时间成本.文章根据嵌入式系统软件的特性,结合实际案例智能 ...

  6. 应邀ITGeGe在线教育社区嵌入式基础开发讲师

    最近,被一家IT在线公司邀请去做嵌入式基础课程的讲师,我感觉非常荣幸,虽然我还是菜鸟一个,难得有这样的企业会看得起我,这也是对我的一个磨练吧,可以培养我继续不断学习技术的动力,同时还能将技术通过自身的 ...

  7. .net微信公众号开发——基础接口

    作者:王先荣     本文讲述微信公众号开发中基础接口的使用,包括以下内容:     (1)获取许可令牌(AccessToken):     (2)获取微信服务器地址:     (3)上传.下载多媒体 ...

  8. 开源PHP微信通用sdk,支持微信支付及所有基础接口(强烈推荐)

    PHP微信通用sdk,支持微信支付及所有基础接口 WeChatDeveloper for PHP 功能描述 技术帮助 代码仓库 文件说明(后缀会根据官方文档增加文件) 安装使用 微信支付 支付宝支付 ...

  9. Bentley ORD(openroads designer) 二次开发(BIM)第二节 基础接口分享

    Bentley ORD(openroads designer) 二次开发(BIM)第二节 基础接口分享 CoderLPF 2021-01-25 07:37:54  89  已收藏 1 分类专栏: Be ...

最新文章

  1. Ruby之父:写Ruby时工作特别闲,总加班的人很难做出创造
  2. linux——不同系统间的文件传输和打包压缩
  3. selenium自动化测试_49自动化测试中最常见的Selenium异常
  4. jframe和mysql登陆_刚写的一个从数据库读取账户和密码进行登陆的小程序~高手请无~...
  5. 【知识积累】DES算法之C#加密Java解密
  6. js之base64上传图片
  7. 计算机软件职业资格证书查询,电子社保卡可查询职业资格证书啦!
  8. 专业渲染户型图|制作手法概述
  9. csdn文章中首行缩进两个字符的命令
  10. Zerotier和NoMachine 开机启动设置
  11. Android方向传感器
  12. R学习之统计算法与R优化包(矩估计法也即Newton) --(R语言编程)-----数模
  13. 美国零售业初创公司排名前5位的软件开发公司
  14. Unity 在设备上材质显示正常,但是Editor下材质显示为紫色
  15. 智慧城市发展概况及其范畴
  16. 新手C语言之删除数组中的空格笔记
  17. 微信小程序自定义组件开发即组件间通信详解
  18. 【优化算法】信赖域折线(狗腿)法(Trust Region Dogleg Method)
  19. SocketIO介绍+SpringBoot整合SocketIO完成实时通信
  20. 选择适合自己的学习风格

热门文章

  1. PHP 使用GD库合成带二维码和圆形头像的海报步骤以及源码实现
  2. 涨姿势!你应该知道的UI动态设计规则 转载优设网
  3. 一元多项式的加/减法运算
  4. 我们月刊最受欢迎的开源项目 Top10(2020 年)
  5. Ambari2.7.5-HDP3.1.5集群离线搭建
  6. 华为mate30用不用鸿蒙系统,这四款华为手机可升级到鸿蒙系统,老机型居多,最低只需千元!...
  7. 终于有人说出来了——Java不适合于作为主要编程教学语言
  8. Linux网络_从系统到网络(网络协议栈分层与功能,认识协议,OSI七层模型与TCPIP四层模型,网络通信流程(局域网,跨网络),MAC地址,IP地址)
  9. OC中NSDictionary常用方法总结
  10. 机器学习领域中各学派划分(符号主义、频率主义、贝叶斯主义、连接主义)