07PCIE数据卡BRAM缓存中断采集

发布时间 2023-12-30 18:44:42作者: 米联客(milianke)

软件版本:vitis2021.1(vivado2021.1)

操作系统:WIN10 64bit

硬件平台:适用XILINX A7/K7/Z7/ZU/KU系列FPGA

登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!

7.1概述

在方案中,使用基于AXI4实现的FDMA来实现数据的缓存。通过切换缓存的地址,实现2帧以上缓存数据的读取。这种构架更加方便高效。帧的管理,使用到了PCIE中断,本方案中缓存使用了FPGA芯片自带的BRAM。

7.2系统构架

本系统中通过Milianke Uispi7606 IP串行采集数据,通过Milianke uifdma_dbuf将数据写入Bram。PCIE上位机使用XDMA IP通过AXI Interconnect IP读取存放在Bram中的ADC采样数据。

7.3FPGA工程

新版本的DAQ7606只支持SPI串行采样源码封装成uispi7606 IPCORE,教程的第一部分课程中有详细的讲解分析。采用SPI接口可以省下更多的FPGA IO。

以上demo种主要使用到了米联客开发的2个IP分别为uifdma_dbuf数据缓存控制IP以及uiFDMA 基于AXI的DMA IP,关于更多这两个IP的详细介绍可以阅读相关章节,也可以在线阅读我们官方的技术博文关于"AXI4-总线篇"相关内容https://www.uisrc.com/portal.php?mod=list&catid=81

7.4上位机程序设计

7.4.1qwt库的编译

qwt-6.1.4.rar库的源码可以在以下地址下载:https://www.uisrc.com/f-download.html

该demo的应用软件使用到了qwt插件,该插件可以用于波形的绘制。首先需要对该插件进行编译。

1: 使用VS中的QT插件打开qwt插件工程

 

2:配置编译的库

3:复制以下编译好的库到路径C:\Qt\Qt5.12.10\5.12.10\msvc2015_64\lib

复制以下编译好的文件到路径C:\Qt\Qt5.12.10\5.12.10\msvc2015_64\plugins\designer

 

4:在路径C:\Qt\Qt5.12.10\5.12.10\msvc2015_64\include新建qwt文件夹

并且把C:\qwt-6.1.4\include中所有库头文件复制到该路径C:\Qt\Qt5.12.10\5.12.10\msvc2015_64\include\qwt

5:打开已经设计好的VS+QT工程并设置VS中的项目属性

1-属性->配置属性->C/C+±>常规,附加包含目录:C:\Qt\Qt5.12.10\5.12.10\msvc2015_64\include\qwt

2-属性->配置属性->链接器->输入,附加依赖项:qwtd.lib

3-属性->配置属性->C/C+±>预处理器,预处理器定义:QWT_DLL

设置好后就可以正常编译了,用户可以直接下载已经编译好的库,这样可以省了编译QWT库的过程。

7.4.2QT界面设计

7.5硬件安装

注意先下载程序,调试阶段下载bit文件,然后再开电脑。这样才能正确识别和后续测试工作正常开展。这里需要使用到DAQ7606数据采集卡。

利用波形发生器提供测试波形

7.6实验结果

上位机代码比较简单,可以自己阅读。下面给出测试结果。