• ZYNQ自带I2S_IP核分析


    简介

    I2S Transmitter 和 I2S Receiver IP核是Xilinx公司开发的套件,支持任何采样率,可以用于音频设备传输(AES3)和接收PCM音频数据。

    参考图

    发送机

    在这里插入图片描述

    接收机

    在这里插入图片描述

    结构框图

    发送机

    在这里插入图片描述

    接收机

    在这里插入图片描述
    注:其实本IP核主要的目的是实现IIS转AES3(一种数字音频协议),不支持但接受IIS的数据。

    接口定义

    发送机

    接口名称方向类型描述
    s_axi_ctrl_aclk输入时钟信号AXI4-Lite接口的输入时钟
    s_axi_ctrl_aresetn输入复位AXI4-Lite接口的激活-低复位
    s_axi_ctrl_ *s_axi_ctrlAXI4-Lite接口
    aud_mclk输入时钟信号输入音频时钟。通常是音频采样率的倍数。
    aud_mrst输入复位信号音频接口的高重置
    s_axis_aud_aclk输入时钟信号AXIS音频流时钟
    s_axis_aud_resetn输入复位信号Active-Low AXIS audio reset
    s_axis_aud_*音频 AXIS InterfaceAXIS音频接口1
    Irq输出中断信号主动-高中断
    lrclk_out输出输出左右声道音频时钟,当核心被配置为主可用。
    sclk_out输出输出音频位时钟,当核心被配置为主可用。
    lrclk_in输入声道音频时钟输出左右声道音频时钟,当核心被配置为从可用。
    sclk_in输入音频位时钟信号输出音频位时钟,当核心被配置为从可用。
    sdata_0_out输出数据通道0I2S串行数据输出
    sdata_1_out输出I2S串行数据输出。当音频频道数为>2时可用。
    sdata_2_out输出I2S串行数据输出。当音频频道数为>4时可用。
    sdata_3_out输出I2S串行数据输出。当音频频道数为>6时可用。

    接收机

    接口名称方向类型描述
    s_axi_ctrl_aclk输入时钟信号AXI4-Lite接口的输入时钟
    s_axi_ctrl_aresetn输入复位AXI4-Lite接口的激活-低复位
    s_axi_ctrl_ *s_axi_ctrlAXI4-Lite接口
    aud_mclk输入时钟信号输入音频时钟。通常是音频采样率的倍数。
    aud_mrst输入复位信号音频接口的高重置
    m_axis_aud_aclk输入时钟信号AXIS音频流时钟
    m_axis_aud_resetn输入复位信号Active-Low AXIS audio reset
    m_axis_aud_*音频 AXIS InterfaceAXIS音频接口
    Irq输出中断信号主动-高中断
    lrclk_out输出输出左右声道音频时钟,当核心被配置为主可用。
    sclk_out输出输出音频位时钟,当核心被配置为主可用。
    lrclk_in输入输出左右声道音频时钟,当核心被配置为从可用。
    sclk_in输入输出音频位时钟,当核心被配置为从可用。
    sdata_0_out输出I2S串行数据输出
    sdata_1_out输出I2S串行数据输出。当音频频道数为>2时可用。
    sdata_2_out输出I2S串行数据输出。当音频频道数为>4时可用。
    sdata_3_out输出I2S串行数据输出。当音频频道数为>6时可用。

    如何设置sclk和lrclk的方向

    1)选中IP核后点击鼠标右键,点击Block Properties…
    在这里插入图片描述
    2)然后点击放大,最后在左下角点击Properties
    在这里插入图片描述
    在这里插入图片描述

    3)展开CONFIG,将其中的C_IS_MASTER一栏的数值修改为0。即可实现从输出变为为输入模式
    在这里插入图片描述
    在这里插入图片描述

    总结

    1)aud_mclk 该接口在IIS通信协议中就是MCLK(系统时钟),通常是采样率的256倍或384倍;

    2)lrclk 该接口在IIS通信协议中就是 LRCK(也称WS),用于切换左右声道的数据。lrclk的频率等于采样频率;

    3)sclk该接口在IIS通信协议中就是SCLK(也称BCLK)位时钟,即对应数字音频的每一位数据,sclk都有一个脉冲。sclk的频率=2×采样频率×采样位数,在此IP核中的计算公式为 sclk的频率=2×采样频率×24 或 sclk的频率=2×采样频率×16;

    4)sdata_*_out 该接口在IIS通信协议中就是串行数据SDATA,就是用二进制补码表示的音频数据;

    5)配置的过程中需要根据采样频率计算出MCLK的值,根据计算的结果提供时钟信号;

    6)sclk和lrclk的方向是需要根据是接受还是发送来配置;

    注:一般遵循谁发送数据谁提供sclk和lrck,不过该IP核作者还未验证。

  • 相关阅读:
    【系统性】 循序渐进学C++
    攻击检测和防护
    Spring 6【数据绑定之类型转换(Type Conversion)】(十一)-全面详解(学习总结---从入门到深化)
    第16章、 string类和标准模板库
    结构与联合
    【机器学习】手写数字识别
    LeetCode第622题—设计循环队列
    【并发进阶】4000千字带你全面解析Java线程池原理
    【计算机网络笔记】TCP/IP参考模型基本概念,包括五层参考模型
    “魔盗”窃密木马(FakeCDR)研究
  • 原文地址:https://blog.csdn.net/qq_43460106/article/details/126126157