小工具知识网

当前位置: 首页 > 行业知识 > Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(二)

行业知识

Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(二)

2026-11-16 00:48:48 来源:互联网转载

Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(前导)

Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(一)

Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(三)


 五、实验目的

        本次实验使用电脑上的网络调试助手,将命令帧通过以太网芯片RTL8211(RGMII接口)发送至ACZ7015开发板,提取UDP报文内容转换成控制命令,从而实现对ACM9238模块采样频率、数据采样个数以及采样通道的配置。

         配置完成之后,ACM9238模块开始采集数据,将采集的数据存储至DDR3中,然后通过网口以UDP协议传输到电脑。用户可以在电脑上通过网口调试工具进行指令的下发,并以文件的形式保存接收到的数据,然后使用MATLAB软件进行进一步的数据处理分析。

PL 部分的模块说明如下:

  • pll 模块: 锁相环模块, 输入时钟 50M, 由 PS 输出给 PL; 输出 100M 的时钟给到 DDR3 控制器使用; 输出 50M 的时钟给其它模块使用。
  • eth_receive_cmd 模块: 以太网接收命令模块, 对以太网接收到的数据进行分析, 将接收的数据转换成相应的控制数据并输出到对应的模块。
  • ad9238_ctrl 模块: ACM9238 控制器模块, 该模块内部包含速度控制模块,以及数据位宽转换模块。
  • state_ctrl 模块: ADC 采集数据 DDR3 缓存以太网发送状态控制模块, 协调各个模块的信号控制, 程序状态的总控制模块。
  • fifo_axi4_adapter 模块: fifo 接口到 AXI4 接口的转换模块(含 2 个 FIFO)。

    六、ACM9238模块

    两路,

    采样上限50Msps,如果期望以1Msps 的采样速率采样, 则只需要每间隔 50 个采样数据取一个结果存储或使用, 其他 49 个数据直接舍弃。不建议降低ADC芯片的时钟信号。

    七、设计实例

    7.1模块设计

    7.1.1 eth_receive_cmd模块

    将以太网接收到的数据进行解析, 得到控制命令。

     

    (1)eth_udp_rx_gmii模块和rgmii_to_gmii模块
    (2)mmcm模块

    锁相环模块,将 rgmii 接口时钟信号 rgmii_rx_clk_i 偏移90 °得到 rgmii_rx_clk 时钟信号。(为了在时钟信号的上升沿/下降沿取数据时,取得数据刚好是数据信号 rgmii_rxd 的正中间, 使得采样的数据处于最稳定的状态。)

     锁相环IP配置

    (3)fifo_rx模块

    使用该 IP 核解决采集过程中会出现的跨时钟域数据交互问题(以太网125MHz,ACM9238-50MHz)。

    (4)eth_cmd模块

    接收转命令模块。

    //非空时产生FIFO读请求信号always@(posedge clk or negedge reset_n)if(!reset_n)    fifo_rd_req 

上一篇:前端批量下载文件(干货)

下一篇:苹果怎么找不到服务器了?