[X]关闭

[米联客-XILINX-H3_CZ08_7100] FPGA_PCIE通信(linux)连载-07PCIE数据卡BRAM缓存中断

文档创建者:FPGA课程
浏览次数:295
最后更新:2024-09-19
文档课程分类-AMD-ZYNQ
AMD-ZYNQ: ZYNQ-FPGA部分 » 2_FPGA实验篇(仅旗舰) » 7-FPGA PCIE通信(Linux)
本帖最后由 FPGA课程 于 2024-9-19 08:59 编辑

​ 软件版本:VIVADO2021.1
操作系统:WIN10 64bit
硬件平台:适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA
实验平台:米联客-MLK-H3-CZ08-7100开发板
板卡获取平台:https://milianke.tmall.com/
登录“米联客”FPGA社区 http://www.uisrc.com 视频课程、答疑解惑!



1概述
在方案中,使用基于AXI4实现的FDMA来实现数据的缓存。通过切换缓存的地址,实现2帧以上缓存数据的读取。这种构架更加方便高效。帧的管理,使用到了PCIE中断。本方案中缓存使用了FPGA芯片自带的BRAM,可以在目前硬件配置最低的MA703FA-35T上实现本方案。
2系统构架
本系统中通过Milianke Uispi7606 IP串行采集数据,通过Milianke uifdma_dbuf将数据写入Bram。PCIE上位机使用XDMA IP通过AXI Interconnect IP读取存放在Bram中的ADC采样数据。
02423b0a58704b43b6e00b2a2c45ad36.jpg
3FPGA工程
08f3bfced8f141d0a50c39d333cb8dcb.jpg
新版本的DAQ7606只支持SPI串行采样源码封装成uispi7606 IPCORE,教程的第一部分课程中有详细的讲解分析。采用SPI接口可以省下更多的FPGA IO。
以上demo种主要使用到了米联客开发的2个IP分别为uifdma_dbuf数据缓存控制IP以及uiFDMA 基于AXI的DMA IP,关于更多这两个IP的详细介绍可以阅读相关章节,也可以在线阅读我们官方的技术博文关于“AXI4-总线篇”相关内容AXI4总线入门(2021) - UISRC工程师学习站 - Powered by uisrc.com!
4上位机程序设计
4.1qwt库的编译
使用unzip命令解压qwt-6.1.4文件并对qwt进行编译。
458f5a20842d4965a1dac8eef9dd7318.jpg

使用cd qwt-6.1.4/进入qwt目录。
883d1164bdd4472f9a45c933c57cdb13.jpg

编译qwt依赖于库件:
sudo apt-get install mesa-common-dev libgl1-mesa-dev
691218d724554c26ac67f5637cfec724.jpg


输入以下命令:
/opt/Qt5.13.1/5.13.1/gcc_64/bin/qmake qwt.pro
b968807ad0f34e1586ba3be391e138eb.jpg

输入以下命令:
make -j8
05398f32f4da46baaff7811e60052205.jpg
输入以下命令:
sudo make install
ff5a164915b84c828a00fb85a635bad4.jpg
输入以下命令:
1.sudo cp /usr/local/qwt-6.1.4/lib/* /opt/Qt5.13.1/5.13.1/gcc_64/lib
4f0b00077bd641f3aa752caa8a6c14d6.jpg

2.在qt安装路径创建Qwt文件夹
sudo mkdir /opt/Qt5.13.1/5.13.1/gcc_64/include/Qwt
sudo cp /usr/local/qwt-6.1.4/include/* /opt/Qt5.13.1/5.13.1/gcc_64/include/Qwt
输入以下命令:

sudo cp /usr/local/qwt-6.1.4/plugins/designer/libqwt_designer_plugin.so /opt/Qt5.13.1/5.13.1/gcc_64/plugins/designer/
b93d7a3ba9b94f9390f2ec42e1c721af.jpg
安装vim,sudo apt install vim
dba7e00c3fc84be087d7d7e759beaa63.jpg

编辑环境变量,sudo vim /etc/profile
40987bef7d784f29ad690b3b14e836e4.jpg

在尾部追加:
export LD_LIBRARY_PATH=/usr/local/qwt-6.1.4/lib:$LD_LIBRARY_PATH
export CPLUS_INCLUDE_PATH=/usr/local/qwt-6.1.4/include:$CPLUS_INCLUDE_PATH
export C_INCLUDE_PATH=/usr/local/qwt-6.1.4/include:$C_INCLUDE_PATH
f58e3d146e3a450db4b6d5c3be0b35cc.jpg

使用sudo命令打开本课上位机,sudo /opt/Qt5.13.1/Tools/QtCreator/bin/qtcreator
0707e849118e49fa9ab3c0837d002969.jpg

打开工程并配置。
b7959efebfdb43f9a0f02e001a6bea8e.jpg
4.2QT界面设计
ef0b0f418ee44d7a9b91cba58e9daeb7.jpg


5硬件安装
注意先下载程序,调试阶段下载bit文件,然后再开电脑。这样才能正确识别和后续测试工作正常开展。这里需要使用到DAQ001数据采集卡。
4a96210e6c7a4e6e9529bee658d7cc1c.jpg
利用波形发生器提供测试波形
aa3e8459a0a24683b988161436745e8f.jpg
6实验结果
上位机代码比较简单,可以自己阅读。下面给出测试结果。
43978e39267d4c19ba12cbc01a97e43f.jpg




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则