07PCIE数据卡BRAM缓存中断采集
软件版本: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实验结果
上位机代码比较简单,可以自己阅读。下面给出测试结果。
本文来米联客(milianke),作者:米联客(milianke),转载请注明原文链接:https://www.cnblogs.com/milianke/p/17936649.html