I2S协议总结

参考https://www.cnblogs.com/firege/p/5805977.html

简介

I2S(Inter-IC Sound Bus)是针对数字音频设备之间的音频数据传输而制定的一种总线标准。
采样频率Fs
声音是模拟信号,要用数字信号传输则需要对声音信号进行采样、量化、编码。其中采样的频率要是源声音信号频率至少2倍才能不失真,这个频率就是采样频率Fs,可以理解为单位时间被采集次数,越多越能更好的还原源声音,一般用44.1k即可。
量化位数
对于采样的每个点用多少bit的数据范围表示,越多越能更好的还原源声音,常用的有16bit、24bit、32bit。

I2S接口

I2S主要有3根信号线

  • SD(Serial Data):串行数据,实际的数字音频数据
  • WS(Word Select):字段选择线,也称帧时钟(LRCLK),就是左右声道,WS线的频率等于采样频率(FS)
  • CK(Serial Clock):串行时钟线,也称位时钟(BCLK),数字音频的每一位数据都对应有一个CK脉冲,它的频率为:2采样频率量化位数,2代表左右两个通道数据
  • MCLK,同步时钟,一般为256*Fs
音频数据传输协议标准

使用WS信号来指示当前正在发送的数据所属的通道(即一帧的开始),数据传输从MSB到LSB,发送方在时钟信号(CK)的下降沿改变数据,接收方在上升沿读取数据,WS也在CK的下降沿变化,有3种标准

  • I2S Philips标准

串行数据(SD)在WS变化后的第2个时钟信号(CK)边沿开始发送MSB,下面是为24bit数据封装在32bit帧传输波形。
在这里插入图片描述

  • 左对齐标准
    在WS发生翻转同时开始传输数据,参考图 384,为24bit数据封装在32bit帧传输波形。该标准较少使用。注意此时WS为1时,传输的是左声道数据,这刚好与I2S Philips标准相反。
    在这里插入图片描述
  • 右对齐标准
    与左对齐标准类似,参考图 385,为24bit数据封装在32bit帧传输波形。
    在这里插入图片描述
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 2、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 3、int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 4、String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。 5、运行时异常与一般异常有何异同? 异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。 6、说出Servlet的生命周期,并说出Servlet和CGI的区别。 Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。 7、说出ArrayList,Vector, LinkedList的存储性能和特性 ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 8、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。 EJB包括Session Bean、Entity Bean、Message Driven Bea
### 回答1: I2S和PCM都是数字音频传输协议,都可以用于将音频信号从一个数字音频设备传输到另一个数字音频设备。它们之间的主要区别在于数据格式和时钟信号。 PCM是一种基于采样的编码方法,它将模拟音频信号转换为数字信号。PCM数据是一系列被采样的音频值,每个采样值用二进制表示,这些二进制编码的采样值就是PCM数据。此外,PCM是同步信号的,以采样率为基准进行转换。 I2S(Inter-IC Sound)是一种串行协议,被广泛用于连接数字音频设备。与PCM不同,I2S不仅传输音频数据,同时传输3种时钟信号,包括时钟(SCK)、帧时钟(WS)和主时钟(MCLK),这些信号定义了音频数据流的时序和速率。 其中,MCLK是用于同步采集和转换时钟的信号,I2S接口需要外部提供。对于PCM协议,它只需要时钟同步就行了,并不需要MCLK。 总的来说,PCM和I2S都是数字音频传输协议,它们之间的主要区别在于数据格式和时钟信号。PCM是基于采样编码的,它不需要MCLK信号;而I2S是串行协议,需要3种时钟信号来同步和驱动数据流,其中MCLK信号需要外部提供。 ### 回答2: I2S 和 PCM 都是数字音频传输标准。其中,I2S 是 Inter-IC Sound 的缩写,是一种基于时钟同步的串行接口协议,常被用于音频 ADC 和 DAC 转换芯片之间的数据传输。而 PCM 则是 Pulse Code Modulation 的缩写,是一种将模拟信号转换为数字信号的基本方法,是数字音频编码的基础。 在 I2S 协议中,音频数据通过时钟同步的方式进行传输。具体来说,I2S 协议包含三条数据线:左右声道数据线和时钟线。时钟线由主控制器发出,用于同步 ADC 和 DAC 的数据传输。每个时钟脉冲会传输一位数据,左右声道的数据依次传输,因此需要在数据中加入标志位来区分左右声道数据。与此相反,PCM 不需要时钟同步,数据可以任意时刻传输。 另外,MCLK 是主时钟信号的缩写,是数字音频输出时需要的一个时钟信号。在 PCM 和 I2S 中都需要使用 MCLK 信号,但二者之间略有区别。在 PCM 中,MCLK 是整个数字音频系统的最高时钟频率,其频率通常为 256 倍的采样频率。而在 I2S 中,MCLK 的频率由采样率和声道数确定,通常为 LRCK 的 64 倍。 总结来说,I2S 和 PCM 都是数字音频传输标准,I2S 使用时钟同步传输数据,而 PCM 则没有时钟同步的限制。此外,MCLK 在 PCM 中为系统的最高时钟频率,而在 I2S 中则根据采样率和声道数来确定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值