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

944eb1e8d7df4900b98409c643523175.png

2、常见的I2S数据格式

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

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

2.1、I2S Philips标准

I2S Philips标准时序图如下图所示:

bfd293275aeb4aeeba0abd2b3d9a8b47.png

使用LRCLK信号表示当前正在发送数据所属的声道,LRCLK为“1”表示正在传输的是右声道的数据,为“0”则表示正在传输的是左声道的数据。LRCLK信号从当前声道数据的第一个位(MSB)之前的一个时钟开始有效。

LRCLK信号在BCLK的下降沿变化,发送方在时钟信号BCLK的下降沿改变数据,接收方在时钟信号BCLK的上升沿读取数据。正如上文所说,LRCLK频率等于采样频率Fs,一个LRCLK周期(1/Fs)包括发送左声道和右声道数据。

对于这种标准I2S格式的信号,无论有多少位有效数据,数据的最高位总是出现在LRCLK变化(也就是一帧开始)后的第2个BCLK脉冲处。这就使得接收端与发送端的有效位数可以不同。如果接收端能处理的有效位数少于发送端,可以放弃数据帧中多余的低位数据;如果接收端能处理的有效位数多于发送端,可以自行补足剩余的位。

这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位。

2.2、左对齐(MSB)标准

左对齐(MSB)标准时序图如下图所示:

2191648adb6844c3962d6f628fc3dc6a.png

该标准较少使用,在LRCLK发生翻转的同时开始传输数据,注意LRCLK为1时,传输的是左声道数据,LRCLK为0时,传输的是右声道数据,这刚好与I2S Philips标准相反。

2.3、右对齐(LSB)标准

右对齐(LSB)标准时序图如下图所示:

c4139b7133bb447ebc2f3bfc8d8f9827.png

声音数据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总线协议

 

Verilog I2S 是一种数字音频传输接口协议,其全称为Inter-IC Sound。它用于在集成电路之间传输音频数据,常见的应用包括数字音频处理和数字音频设备之间的数据传输。下面将简单介绍 I2S 接口的工作原理和 Verilog 语言在 I2S 设计中的应用。 I2S 接口通常由三条线路组成:串行数据线(SDATA),位时钟线(BCLK)和帧同步线(LRCLK)。SDATA 传输音频数据,BCLK 提供位时钟用于同步数据传输,而 LRCLK 表示每个数据帧的开始与结束。具体来说,在一个数据帧周期中,BCLK 在恒定的频率上生成,以指示每个数据位的传输时间。而 LRCLK 指示了数据帧的开始和结束,并且在数据传输期间改变数据通道。 在 Verilog 设计中,我们可以使用状态机进行 I2S 接口的实现。首先,我们需要定义状态机的状态和状态转移条件。例如,我们可以定义状态为等待帧开始、接收数据、等待帧结束和数据传输完成。接着,根据不同的状态,我们可以编写相应的 Verilog 代码来执行相应的操作。例如,在等待帧开始状态,我们可以等待 LRCLK 的下降沿,以便我们准备接收音频数据。而在接收数据状态,我们可以在每个 BCLK 上升沿时,按照 SDATA 的值来接收音频数据。最后,在数据传输完成状态,我们可以进行某些处理,例如将音频数据发送到外部设备或是进行数字信号处理。 除了状态机,我们还可以使用 Verilog 编程实现其他 I2S 接口的功能,例如时钟频率的控制、数据的格式转换等。通过合理设计和编写 Verilog 代码,我们可以实现一个完整的 I2S 接口设计,并用于数字音频相关的应用中。 总之,Verilog I2S 是一种用于音频数据传输的数字接口协议。通过在 Verilog 中实现 I2S 接口的状态机和其他相关功能,我们可以设计和开发出数字音频处理和相关设备之间的数据传输系统。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不脱发的程序猿

亲,赏包辣条吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值