欢迎光临散文网 会员登陆 & 注册

My FPGA PCIe客户案例73:客户自己开发的ARTIX7 PXIe板卡利用LabVIEW My FPGA开发

2021-03-26 20:37 作者:神电测控  | 我要投稿

       背景:由于市面上现有的PXIe板卡价格太贵,功能单一,通道数量有限,集成度不高,不提供定制化服务,如果要实现一套复杂且灵活的半导体芯片测试系统,需要很多不同功能的PXIe板卡,插满机箱,板卡与板卡之间的同步如果全部走PXIe机箱背板的话,又会存在一些时延。

        基于现状,客户从实际出发,决定自己研制满足自己项目需求并且将尽可能多的功能集成在一张板卡上面,降低硬件开发和维护成本。客户之前具备PCIe板卡的研发能力,因此,再转向PXIe板卡的设计过程中,也是非常的轻松,仅仅迭代了两版,就搞定了一款PXIe板卡的设计研发和投产。这款PXIe板卡分为A7和K7两个版本,本节实验给用户介绍的就是基于Xilinx ARTIX7芯片开发的PXIe多功能IO板卡。

        客户研发的板卡上面的FPGA芯片里面的程序则是采用我们神电测控开发的LabVIEW My FPGA软件工具包进行编写,PCIe通信接口部分则采用本书封装的PCIe DMA CLIP来交互。众所周知,PXIe实际上就是PCIe加上一些时钟路由和同步触发IO构成的,如图73-1所示,因此,对于我们My FPGA软件来说,搞定了PCIe通信,剩下的IO全部都是直接操作FPGA引脚了,非常简单,关于LabVIEW开发FPGA程序贯穿了本书的全部内容。


图73-1:PXIe板卡的插槽由两部分组成(PCIe接口+时钟和IO触发引脚)


     1、准备好开发环境和硬件设备

1)本节实验用来验证PXIe通信的板卡是客户基于ARTIX7 FPGA开发的PXIe多功能数字IO卡,上面板载了一颗A7-100T-FGG484 FPGA芯片,实物如图73-2~73-4所示。除了A7版本外,客户还开发了一款基于Xilinx Kintex7的FPGA PXIe板卡。

图73-2:基于ARTIX7 FPGA开发的PXIe板卡(正面)
图73-3:基于ARTIX7 FPGA开发的PXIe板卡(背面)
图73-4:基于ARTIX7 FPGA开发的PXIe板卡(立体)

2)为了降低测试成本,我们选择了一款NI最便宜的MXIe机箱(NI PXIe-1073),如图73-5所示。这款机箱不需要单独的PXIe控制器,而是可以直接通过MXIe线缆将工控机或者PC电脑作为PXIe控制器,换句话说,也就是把我们常规的电脑或者工控机拓展出了一个PXIe机箱,这样就能把很多PXIe板卡插到这个机箱上,让我们的PC能够识别到,正常使用。

图73-5:NI超高性价比的MXIe拓展机箱(无需PXIe控制器)

3)MXIe机箱背面有一个MXIe接口,同时NI会提供一个基于PCIe的MXIe扩展卡,将其插到PC或者工控机主板上即可,如图73-6所示。这样主机就能通过MXIe扩展卡识别到NI的PXIe机箱了。然后将PXIe板卡插到PXIe机箱里面即可,随便哪个槽都行,如图73-7所示。如果用户需要将LabVIEW FPGA编译出来的bit文件下载到PXIe板卡里面进行测试,还需要外接一个FPGA下载器,如图73-8所示。整个过程

图73-6:MXIe扩展卡插到PC或者工控机主板的PCIe插槽里面
图73-7:将客户自研的PXIe板卡插到NI PXIe机箱里面
图73-8:外接一个Xilinx FPGA下载器到PXIe板卡上(烧写bit文件)

4)最后需要注意的是MXIe扩展机箱跟主机的上电顺序,首先需要按下PXIe机箱电源开关让机箱上电启动,然后再开PC电脑或者工控机,如图73-9所示;断电顺序反过来,先关电脑主机,再关PXIe机箱。

图73-9:先启动MXIe机箱,再启动主机(PC或者工控机)


       2、下位机FPGA程序开发

1)打开LabVIEW,右击“我的电脑”新建一个我们封装的带PXIe接口的FPGA终端(ARTIX7-100T-FGG484),如图73-10所示。编写下位机FPGA高速PXIe DMA 数据回环读写程序和上位机PC端测试程序,完整的项目浏览器,如图73-11所示。封装到LabVIEW里面的A7 PXIe DMA CLIP,如图73-12所示。方便用户直接调用PCIe节点进行通信。

图73-10:新建一个带PXIe接口的Aritx7 FPGA终端
图73-11:带PXIe接口的FPGA终端项目(A7-100T-FGG484)
图73-12:封装到LabVIEW FPGA下的PXIe通信模块CLIP

2)具体的下位机FPGA程序和上位机PC端的程序编写过程,这里就不再介绍了,用户可以直接参考我们给出的例程,相信只要用户把本书前面的LabVIEW FPGA PCIe基础实验和中级实验学会了,这里实战的时候也是信手拈来。

        由于PCIe的实验程序非常多,这里我们仅仅向用户展示一下PXIe板卡上的FPGA PCIe全部8个通道的回环读写通信过程,其余的实验客户自己全部测试OK

        图73-13显示的是PXIe板卡下位机FPGA上的程序框图。1个线程搞定。

图73-13:基于A7开发的PXIe板卡下位机FPGA回环读写通信程序框图

        上位机比较简单,直接参考前面中级实验59里面的例程,无需修改,如图73-14所示。下面两幅图是通道Ch0和Ch1的上位机测试页面,其中,图73-15显示的是上位机PC端的回环测试程序前面板,图73-16显示的是上位机回环程序框图。

图73-14:PXIe上位机回环读写通信程序所在项目位置(直接参考实验59)
图73-15:上位机PXIe回环读写通信前面板
图73-16:上位机PXIe回环读写通信程序框图

3)FPGA程序编写完成后,打开获取ARTIX7 FPGA bit文件的软件,如图73-17所示。

图73-17:运行获取ARTIX7 FPGA bit文件

4)接下来,将PXIe机箱上电,Xilinx下载器接到电脑上,将前面编译出来的bit文件(ARTIX7_PG7103_PXIe_X4_8Chs_B_Loopback_Method1.bit)通过Vivado软件下载到PXIe板卡里面运行,下载过程如图73-18和73-19所示。

图73-18:找到刚刚编译出来的PXIe板卡回环读写通信bit文件
图73-19:利用Vivado软件将bit文件烧写到PXIe板卡里面运行


       3、实验测试结果

1)PXIe板卡不支持热插拔,所以FPGA程序下载之后,需要右击热启动一下主机(PC或者工控机或者PXIe控制器),不能选择关机,必须是重启电脑,这样主板不会掉电。重启之后,打开主机上的MAX软件,展开“设备和接口”,可以看到里面出现了一个NI PXIe-1073机箱,说明这个MXIe扩展机箱被主机成功识别到了,如图73-20所示。

图73-20:重启主机之后,NI MAX软件识别到的NI MXIe扩展机箱(PXIe机箱)

2)同时,主机的设备管理器里面会出现一个Xillybus PCIe设备,这个正是我们插到PXIe机箱上的PXIe板卡,如图73-21所示。因为这个板卡上的FPGA芯片里面跑的PCIe通信代码正是我们封装的Xillybus PCIe DMA CLIP,因为这台电脑我们先前已经加装过了Xillybus驱动文件,如果是新电脑,第一次设备管理器里面会出现一个PCI黄色感叹号,用户参考本书前面加载PCIe驱动那一节做一遍即可,其实就是右击更新选择浏览就可以了,非常简单。

图73-21:重启主机之后,设备管理器里面识别到PXIe板卡设备(本质上也是PCIe设备)

3)运行上位机测试软件,用户可以将实验59.1~59.4每个上位机程序都跑一遍测试一下,对界面上的控件函数不是很清楚的用户可以回顾一下前面实验59里面的相关内容。

        默认运行之后,用户只需要按下前面板上的“Send”按钮,将上位机模拟的正弦信号和三角波信号源源不断的通过PXIe背板下发给PXIe板卡,那么PXIe板卡上的FPGA接收之后,由于FPGA芯片里面下载了回环程序,又会原封不动将所有的数据逐点返回给主机端。因此,上位机前面板上就能实时看到回读上来的波形跟下发的是完全一样的,下面4幅图依次是64位的通道ch0和8位的通道ch7实际回环测试缩放效果图。

图73-22:PXIe通道ch0回环测试结果(全部数据)
图73-23:PXIe通道ch0回环测试结果(展开之后)
图73-24:PXIe通道ch7回环测试结果(全部数据)
图73-25:PXIe通道ch7回环测试结果(展开之后)


My FPGA PCIe客户案例73:客户自己开发的ARTIX7 PXIe板卡利用LabVIEW My FPGA开发的评论 (共 条)

分享到微博请遵守国家法律