FPGA四AD模块使用方法

适用FPGA:AX530

芯片:ALTERA CYCLONE IV EP4CE30F23C8

一、安装Quartus

Quartus 17.1安装包及安装方法:

链接:https://pan.baidu.com/s/16kOmdHmDPsxwJk_1UNiGhA
提取码:v9nb
–来自百度网盘超级会员V6的分享

安装设备,检查环境配置,以及安装USB Blaster驱动:参考AX530使用指南REV1.0.pdf

AX530资料:

链接:https://pan.baidu.com/s/18ibh30QXaWUe-VkvQIgvsw
提取码:va77
–来自百度网盘超级会员V6的分享

二、烧录代码

  1. 打开Quartus

file——open project——打开文件夹/J1_J2_AD_Ethernet_Version2/中的ethernet_test.qpf

image-20220427145835325

  1. 编译

右键 rtl / ethernet_test.v,设置为顶层实体;

然后ctrl+L,或者点击右边上方工具栏中的start compilation;

image-20220427150154763

  1. 转换文件

点击 File——Convert Programming File

把.pof文件换成下拉的.jic文件

image-20220427151229402

把Configuration device换成 EP4CS64:

image-20220427151503079

切换输出文件目录为:output_files/output_file.jic

image-20220427151723065

点击Flash Loader ,点击右边的 Add Devices,进行如下选择:

image-20220427152906857

点击 SOF Data ,点击右边的Add File,打开/output_files/ 中的 ethernet_test.sof:

image-20220427153110582

image-20220427153250771

image-20220427153443583

点击 Generate,生成 jic文件。

点击Programmer:

image-20220427153614749

使用USB-Blaster烧录线连接电脑与FPGA,然后再打开FPGA的开关;

按照下图设置,

image-20220427154051789

点击左侧添加文件Add Files ,找到刚刚生成的output_file.jic;

image-20220427154451594

在下图中的位置一定要打勾,然后点击左侧的 start :

image-20220427154907284

等待右上角的 Progress 完全变绿 100%之后,即烧录完成,此时需要重启FPGA,烧录的新程序即生效:

image-20220427155218290

三、程序修改

目前代码 J1_J2_AD_Ethernet_Version2 / 实现的功能是 四个AD模块交替采样同一信号,以此来提高AD模块的采样率;

AD模块的采样率是固定的,每5us,AD模块上的8个模块同时采样一次。由于数据需要发送到PC上进行处理,而不是FPGA中,因此我们以数据接收的间隔来进行计算。

AD模块的物理特性是最快200KPS,即5us采集一次。我们使用四个AD模块来间隔采样同一信号,采样率可以提升为原来的4倍。

使用wireshark抓包软件作为上位机接收数据,可接收间隔时间为2us的UDP数据包。(还可以设置更短如1us,但是丢失包数量会增多)。四个AD模块的数据,作为一个UDP数据包进行发送。

要发送四个AD模块的数据,从start状态到sendcrc状态总共需要1+3+8+14+28+456+4= 514 个clk125;

514 x 8 ns= 4112 ns = 4.112 us,即:

发送的数据包之间的间隔总的为: 2 + 4.112 us = 6.112 us;

收集数据时间间隔实际上只看发送数据所消耗的时间,由于每次都是4个AD模块的数据一起发送,故计算同一接收数据间隔可以直接除以4;

由于使用四个AD模块对同一信号接替采样,故实际上对同一信号的接收间隔时间为 : 6.112 / 4 = 1.528 us

发送四个AD模块数据的时间已经最优,无法再进行优化,由此要调整数据接收间隔,只能修改UDP数据包的发送间隔,目前最小是2us,再小可能会卡死,以及丢包率增大。

修改位置如下:

image-20220427161037245

四、wireshark抓包软件

使用wireshark抓包软件作为上位机软件来接收数据,由于每次发送的UDP数据包大小为456Byte , UDP发送间隔为2us非常小,所以在几秒钟之内就会接收到几个GB的数据,为了数据接收过多导致系统卡死。接收数据前需要限制,接收时间范围。一般设置为10秒钟以下。

打开软件:

点击抓包参数选择:

image-20220427161722076

选择本地的千兆网卡端口:

image-20220427161827152

在停止抓包下,可以选择抓包停止条件, 在抓包文件下,设置保存数据的文件路径。

image-20220427161929094

显示结果:

其中AD BD CD DD分别代表四个AD模块的8个通道的数据。

image-20220427170302096

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2022-2024 lk
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信