一文搞懂I2S通信总线
目录
1、物理特性
2、常见的I2S数据格式
2.1、I2S Philips标准
2.2、左对齐(MSB)标准
2.3、右对齐(LSB)标准
之前我们讲过I2C通信总线,本篇博文将讲一讲I2C的变种:I2S总线。
I2C和I2S都是由Philips公司(2006年迁移到NXP)发布的串行总线,I2S是在I2C之后发布,I2S专为传输音频数据而设计。
I2S(Inter-IC Sound)总线,又称集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。采用了独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,避免了因时差诱发的失真。
I2S总线特点如下:
- 支持全双工和半双工模式;
- 支持主、从模式。
I2S协议文档下载:NXP-I2S总线规范协议
1、物理特性
I2S总线一般由1根系统时钟线和3根信号线组成:
- MCLK:称为主时钟,也叫系统时钟(Sys Clock),一般为了使系统间能够更好地同步时增加MCLK信号,MCLK的频率 = 128或者256或者512 * 采样频率;
- SCLK(BCLK):串行时钟SCLK,也叫位时钟(BCLK),即对应数字音频的每一位数据,SCLK都有1个脉冲。SCK的频率 = 声道数 * 采样频率 * 采样位数;
- LRCK:帧时钟LRCK,(也称WS),用于切换左右声道的数据。LRCK为“1”表示正在传输的是右声道的数据,为“0”则表示正在传输的是左声道的数据。LRCK的频率等于采样频率;
- SDATA(SD):就是用二进制补码表示的音频数据。最高位拥有固定的位置,而最低位的位置则是依赖于数据的有效位数。
2、常见的I2S数据格式
随着技术的发展,在统一的I2S硬件接口下,出现了多种不同的I2S数据格式,可分为:I2S Philips标准、左对齐(MSB)标准和右对齐(LSB,也叫日本格式、普通格式)标准。
发送端和接收端必须使用相同的数据格式,确保发送和接收的数据一致。
2.1、I2S Philips标准
I2S Philips标准时序图如下图所示:
使用LRCLK信号表示当前正在发送数据所属的声道,LRCLK为“1”表示正在传输的是右声道的数据,为“0”则表示正在传输的是左声道的数据。LRCLK信号从当前声道数据的第一个位(MSB)之前的一个时钟开始有效。
LRCLK信号在BCLK的下降沿变化,发送方在时钟信号BCLK的下降沿改变数据,接收方在时钟信号BCLK的上升沿读取数据。正如上文所说,LRCLK频率等于采样频率Fs,一个LRCLK周期(1/Fs)包括发送左声道和右声道数据。
对于这种标准I2S格式的信号,无论有多少位有效数据,数据的最高位总是出现在LRCLK变化(也就是一帧开始)后的第2个BCLK脉冲处。这就使得接收端与发送端的有效位数可以不同。如果接收端能处理的有效位数少于发送端,可以放弃数据帧中多余的低位数据;如果接收端能处理的有效位数多于发送端,可以自行补足剩余的位。
这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位。
2.2、左对齐(MSB)标准
左对齐(MSB)标准时序图如下图所示:
该标准较少使用,在LRCLK发生翻转的同时开始传输数据,注意LRCLK为1时,传输的是左声道数据,LRCLK为0时,传输的是右声道数据,这刚好与I2S Philips标准相反。
2.3、右对齐(LSB)标准
右对齐(LSB)标准时序图如下图所示:
声音数据LSB传输完成的同时,LRCLK完成第二次翻转(刚好是LSB和LRCLK是右对齐的,所以称为右对齐标准)。注意LRCLK为1时,传输的是左声道数据,LRCLK为0时,传输的是右声道数据,这刚好与I2S Philips标准相反。
拓展学习:
1、一文搞懂SPI通信协议
2、一文搞懂I2C总线通信
3、一文搞懂UART通信协议
4、 一文看懂Modbus协议
5、 一文搞懂PID控制算法
6、一文搞懂TCP的三次握手和四次挥手
7、一文搞懂图像二值化算法
8、 一文搞懂步进电机特性、原理及驱动器设计
9、 一文搞懂三级管和场效应管驱动电路设计及使用
10、一文搞懂CAN和CAN FD总线协议
一文搞懂I2S通信总线相关推荐
- 一文搞懂CAN FD总线协议帧格式
目录 1.为什么会出现CAN FD? 2.什么是CAN FD? 3.CAN FD和CAN总线协议帧异同 4.解析CAN FD帧结构 4.1.帧起始 4.2.仲裁段 4.3.控制段 4.4.数据段 4. ...
- 汽车通信协议:一文搞懂Flexray通信
文章目录 前言: 一.Flexray介绍 1)Flexray的触发方式 2)Flexray-物理层 ① 拓扑结构 1.点到点拓扑 2.星型拓扑 3.被动总线拓扑 ② 差分电平图 ③ 网络组件 3)Fl ...
- 一文搞懂CAN FD总线
关注.星标公众号,直达精彩内容 来源:汽车ECU开发.汽车电子与软件 有了CAN,为什么还要CAN FD呢? 随着汽车功能越来越多,CAN总线的局限性也逐渐暴露: 1.CAN总线最高速率为1Mbit/ ...
- 【通信协议】一文搞懂SPI
SPI总线简介 SPI(Serial Peripheral Interface)是 Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线. 接口定义 SPI接口共有4 ...
- 一文搞懂UART通信协议
目录 1.UART简介 2.UART特性 3.UART协议帧 3.1.起始位 3.2.数据位 3.3.奇偶校验位 3.4.停止位 4.UART通信步骤 1.UART简介 UART(Universal ...
- 一文搞懂如何使用Node.js进行TCP网络通信
摘要: 网络是通信互联的基础,Node.js提供了net.http.dgram等模块,分别用来实现TCP.HTTP.UDP的通信,本文主要对使用Node.js的TCP通信部份进行实践记录. 本文分享自 ...
- 一文搞懂AWS EC2, IGW, RT, NAT, SG 基础篇下
B站实操视频更新 跟着拉面学习AWS--EC2, IGW, RT, NAT, SG 简介 长文多图预警,看结论可以直接拖到"总结"部分 本文承接上一篇文章介绍以下 AWS 基础概念 ...
- 网络知识扫盲,一文搞懂 DNS
在找工作面试的过程中,面试官非常喜欢考察基础知识,除了数据结构与算法之外,网络知识也是一个非常重要的考察对象. 而网络知识,通常是很抽象,不容易理解的,有很多同学就在这里裁了跟头.为了更好地通过面试, ...
- 【显卡】一文搞懂显卡
[显卡]一文搞懂显卡 文章目录 [显卡]一文搞懂显卡 1. 前言介绍 1.1 CPU和显卡的区别 1.1.1 作用不同 1.1.2 结构不同 1.1.3 应用场景不同 1.2 三个著名的显卡公司 2. ...
最新文章
- AI端计算产业应用:如何快速训练高精度模型并在设备端加速计算 | 公开课报名...
- CA ARCserve Backup系列(3)—安装代理(Linux篇)
- leetcode算法题--从先序遍历还原二叉树
- C++之运算符重载(2)
- 【重要】使用Git命令行上传到GitHub上
- python观察日志(part14)--计数器Count
- Thrift实现C#调用Java开发步骤详解
- 兔子问题JAVA编程题
- 华为堡垒机_浪潮无线分析,华为云堡垒机
- 合肥一六八2021高考成绩查询,合肥高考成绩查询入口
- xv6 System Call
- TTL电平和CMOS电平的区别及其应用
- 不是局域网计算机远程桌面连接,开启局域网远程桌面连接不上怎么办
- css实现跑马灯效果
- Android软件开发用什么语言?
- hdu 6441 (费马大定理+勾股数 数学)
- 插入排序及其时间复杂度推导
- 针对list集合的操作,按照某一字段,对另一个字段进行归类
- 一维信号小波阈值去噪
- win10wifi间歇性断网重启后恢复_如何解决win10无线网间歇性掉线
热门文章
- 挂靠资质施工,可否要求发包人支付工程款
- airpodspro窃听模式_AirPods pro通透模式什么原理?
- 以后别再认字认半边啦,DIY注音小工具,让你以后不再出糗
- windows server 2016 取消自动锁屏
- python 独热码_数据预处理:独热编码(One-Hot Encoding)
- Python爬虫实战(5)斗图啦表情包下载(单线程)
- 「1-Hadoop」:Hadoop框架的几个核心组件
- 苹果手机 iphone 从旧手机 转移单个应用 数据 聊天记录 到新手机
- 图同构(graph isomorphism)和图同态(graph homomorphism)
- Python 基于音频频谱生产频谱动效