是数字音频的规范化串行通讯总线,由SCK、WS和SD三条线路组成。文章论述了收发器的作业原理,包含数据传输办法、操作理论、装备办法、端口描绘以及音频数据业务传输。
本文详细的介绍了一个主 I2S 收发器组件用于 FPGA,以 VHDL 编写。组件经过 I2S 接口接纳音频数据,并将接纳到的数据在某一采样率上传送给并行接口上的用户逻辑芯片。它还在某一采样率上从用户逻辑芯片上接纳并行数据,并经过 I2S 接口将这一些数据传输出去。
串行数据线传输两个时刻复用的数据通道——左信道和右信道。数据首先以2’s 二进制补码方式传输最高有用位(MSB)。字段挑选信号 (WS)表明当时正在传输的声道(低=左声道,高=右声道)。该通道数据字段的MSB在字段挑选信号 (WS)切换后传输一个时钟周期,然后是数字节的其余部分。数据位在下降时钟沿上传输,在上升时钟沿上读取。I2S发送器或I2S接纳器都能够充任主机(master)。主机供给串行时钟和字段挑选信号。音频编解码器一般也需求一个“主时钟”(MCLK) 来运转其内部电路。MCLK 频率一般是采样率的倍数,例如 256*Fs (其间 Fs 是采样率)。要求取决于详细的音频编解码器。
操作理论这个I2S 收发器输入一个主时钟,并经过计数器从它得到串行时钟和字段挑选信号。串行时钟频率是主时钟的整数倍,字段挑选频率(即采样率)是串行时钟的整数倍。接纳数据从串行时钟上升沿上的sd_rx端口时钟进入内部接纳移位寄存器。在字段挑选切换后,为恰当的通道启用一个串行时钟周期的移位,并持续坚持数据字段的宽度,然后再次禁用。在每个字段挑选开关上,收发器分别在 r_data_rx 和l_data_rx端口上出现右声道和左声道的接纳数据。相反,在r_data_tx和l_data_tx输入端口上出现的左右数据在每个字段挑选开关上并行加载到内部传输移位寄存器中。这些数据在串行时钟下降沿上的sd_tx端口被时钟输出。在字段挑选切换后,为恰当的通道启用一个串行时钟周期的移位,并在数据字段的宽度之外持续一个串行时钟,然后再次禁用。依据 I2S 总线规范,额定的传输位将sd_tx数据线;,以防数据宽度与接纳 I2S 设备不匹配。
参数d_width以位为单位界说每个数据字段的巨细。这并不需求等于一个字段挑选半周期内串行时钟周期的数量(即在信道数据传输期间串行时钟的数量)。如果在字段挑选半周期内有剩余的时钟周期,那么在额定的串行时钟周期内串行数据接纳端口(sd_rx)上的任何数据都将被疏忽,而且串行数据传输端口(sd_tx)为这些额定的位输出 ’ 0 。
一般,希望的采样率 (Fs) 是已知的,I2S 设备需求一个该采样率的若干倍的主时钟。例如,假定希望的采样率是常用的 44.1 kHz,而且 I2S 设备承受 256*Fs 的主时钟。这在某种程度上预示着用户要为 I2S 设备和 I2S 收发器供给11.29 MHz的mclk。mclk信号能够在 FPGA 内部运用锁相环导出。
信号来指示何时将其输出数据锁存,因此能自由地在这些端口上出现下一组传输数据。锁存在
输入端口必定要有逻辑高,I2S 收发器才干正常作业。该端口上的低信号将异步复位组件。复位期间,组件坚持
端口为低电平。任何当时正在进行的传输都将中止。任何当时正在进行的接纳被抛弃,
输出端口清空。铲除一切内部数据缓冲区。一旦免除复位,I2S 收发器恢复作业。
I2S 收发器是一种可装备的可编程逻辑组件,经过规范 I2S 总线传输和接纳音频数据。它作为主控器作业,为接口供给串行时钟和选字信号。它答应用户为特定的采样频率、数据宽度、主时钟和每字串行时钟周期数进行装备。