首页 > 其他分享 >I2S基础知识

I2S基础知识

时间:2023-12-13 17:44:31浏览次数:34  
标签:LRCLK I2S 基础知识 传输 对齐 数据 时钟

I2S(Inter-IC Sound)总线,又称集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。采用了独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,避免了因时差诱发的失真。

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):就是用二进制补码表示的音频数据。最高位拥有固定的位置,而最低位的位置则是依赖于数据的有效位数。

谁能产生SCK&WS,谁就是MASTER。(MCLK一定是由MASTER发出的)

2、常见的I2S数据格式

随着技术的发展,在统一的I2S硬件接口下,出现了多种不同的I2S数据格式,可分为:I2S Philips标准、左对齐(MSB)标准和右对齐(LSB,也叫日本格式、普通格式)标准。

发送端和接收端必须使用相同的数据格式,确保发送和接收的数据一致。

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标准相反。

标签:LRCLK,I2S,基础知识,传输,对齐,数据,时钟
From: https://www.cnblogs.com/Kim-blog/p/17899588.html

相关文章

  • docker基础知识
    目录1.docker简介1.为什么要创建隔离的环境?2.为什么dockeri可以比虚拟机极大的节省资源?3.docker基础概念(1)镜像(Image)(2)容器(Container)2.docker使用1.docker安装2.docker命令dockersearch查询镜像dockerpull拉取镜像dockerimages查看镜像dockerbuild构建镜像dockerstart......
  • linux基础知识
    目录1.linux了解(1)界面基础2.文件管理(1)文件目录查看(2)文件目录管理ls:列出目录cd:切换目录pwd:显示目前所在的目录mkdir/rm:新建与删除文件夹(3)rz/sz:文件上传与下载(4)unzip:文件解压与压缩(5)文件内容查看1)cat:由第一行开始显示文件内容2)nl:由第一行开始显示文件内容,并显示行号(6)echo......
  • 一文读懂生成式人工智能的所有基础知识(上)
    生成式人工智能已经成为一项突破性技术,改变了我们的生活与工作方式。它不仅是一种技术现象,更是一种广泛应用于实际生活的工具。2023年,世界见证了生成式人工智能的多项突破,其中最引人注目的当属由OpenAI开发的最新版本ChatGPT。该工具于2022年11月向公众发布测试,短短五天内就......
  • 13、QT窗口API函数基础知识
    QT窗口API函数geometry()用于获取窗口在屏幕上的几何位置和大小QRectgeo=widget->geometry();intx=geo.x();//窗口左上角的x坐标inty=geo.y();//窗口左上角的y坐标intw=geo.width();//窗口的宽度inth=geo.height();//窗口的高度width()函数返......
  • 静态HTTP的基础知识:菜鸟的教程与指南
    大家好,今天我要给大家讲解一个非常基础但重要的知识点——静态HTTP。如果你是一位初入互联网的小白,对于HTTP这个缩写可能还有些陌生。没关系,今天我们就来揭开它的神秘面纱。首先,让我们想象一下,当你在浏览器中输入一个网址,比如www.example.com,你的浏览器就开始和这个网站的服务器进......
  • Java语言基础知识全总结
    一.Java的优点1.      跨平台性。一次编译,到处运行。Java编译器会将Java代码编译成能在JVM上直接运行的字节码文件,C++会将源代码编译成可执行的二进制代码文件,所以C++执行速度快2.      纯面向对象。Java所有的代码都必须在类中书写。C++兼具面向对象和面向过程的特......
  • uml基础知识
    Uml常用的9种图可以分为静态图和动态图两种,其中常用的静态图5种,动态图4种,静态图:用例图,类图,包图,对象图,部署图动态图:顺序图,通信图,状态机图,活动图。类图(ClassDiagram)类图是UML中最常用的图之一,用于描述系统中类的结构。它展示了类之间的关系,包括继承、聚合、关联等。类图还可......
  • UML各类基础知识总结
    1、UML关系泛化(也就是我们传统意义上的继承关系)子类继承父类,关系用extend关键字标识;关联可以说是一种属于关系,图中即说的是PhoneNumber类属于Master类,同时,除了一对一的关系之外,还可以用一对多、多对一、多对多的关联关系,除了单向关联之外,双向关联也是存在的;需要注意的是,在......
  • UML基础知识总结
    UML(UnifiedModelingLanguage)统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂......
  • Python基础知识——变量
    Python基础知识——变量2.2变量message="HelloPythonworld"print(message)message="HelloPythonCrashCourseworld!"print(message)mesage="HelloPythonCrashCoursereader"print(mesage)每个变量(variable)指向一个值(value)python始终记......