I2S_RX 音频接收通用设计

I2S简介
I2S_RX.png

如上图所示:

  • SCLK :位时钟,数据单bit反转。 频率=2 * 采样频率 * 采样位宽
  • LRCK :帧时钟,左右声道标志位。 频率=采样频率
  • SDATA :串行音频数据BIT位。图中表示音频数据为8bit,即采样位宽=8
  • sdata在sclk的下降沿变化,上升沿采集。且在lrck发生反转后的第二个上升沿采集音频数据的最高位。音频数据的最低位是lrck再次反转的第一个上升沿。
    I2S详介
    I2S音频总线协议

功能简介

  • 将串行音频数据转成并行数据后存进FIFO,等待外部模块读取音频数据。

模块端口
在这里插入图片描述
接口描述

signal_name direction width description
i_clk input 1 系统时钟,频率比i_aud_sclk高偶数倍以上
i_rst_n input 1 复位信号
i_aud_sclk input 1 I2S串行时钟 (位时钟)
i_aud_lrck input 1 I2S左右声道数据 (帧时钟)
i_aud_sdata input 1 I2S串行数据
i_rd_req input 1 外部读取FIFO请求
i_rd_clk input 1 外部读取FIFO时钟
o_aud_data output X+1 FIFO音频数据
o_aud_en output 1 FIFO音频数据有效标志
o_empty output 1 FIFO空标志信号
o_fifo_usedw output 8 FIFO内部数据个数
* 注:
* X为Parameter
* i_aud_lrck = 1    : Left audio        ||     i_aud_lrck = 0     : Right audio
* o_aud_data[MSB]=1 : Left audio        ||     o_aud_data[MSB]=0  : Right audio

电路图描述
在这里插入图片描述

  • 绿色代表wire型;蓝色代表reg型;⊕表示异或;

模块用途及优点
* 将I2S信号转成并行数据,以便后级模块对音频数据进行处理、存储、传输等。
* 模块化封装,将音频数据位宽设为参数,可以适用多种需求。
* 模块耗费资源少,功能完善。现拿现用,减少开发时间。

资源占用估计

资源 类型 个数 用途
寄存器 1bit 4 读取控制信号
寄存器 X+1 bit 1 声道标志+音频数据
FIFO 深度、位宽由参数定义 1 缓存音频数据

有问题联系可以我,一起讨论。
在这里插入图片描述

原文地址:https://www.cnblogs.com/mage0306/p/10595329.html