《LabVIEW FPGA开发宝典》第9章:利用树莓派Linux RT+FPGA PCIe实现国产化RIO

1、引言:神电测控为什么要做支持LabVIEW直接编程的树莓派+PCIe+FPGA国产化cRIO(图形化、国产化、定制化、模块化、成本化)
在很多嵌入式设备里面,除了FPGA外,一般还会存在一个运行实时系统的控制器,比如NI的cRIO设备,就是其中一种典型的代表。这种设备跟我们平时将FPGA插到电脑或者工控机上有些许不同,电脑和工控机主板上的CPU一般都是Intel X86结构,运行的系统一般都是非实时的Windows系统,这种主板的功耗和体积一般都比较大。
随着ARM内核的兴起,小型嵌入式设备逐步崛起,并且性能甚至超过了X86芯片,比如4核Cortex-A72,主频1.5G的树莓派ARM芯片,就是其中之一。ARM芯片非常适合跑嵌入式系统,比如开源的Linux系统(Ubuntu、Debian和Raspbian)。目前市面是上跑Linux系统销量最高的莫过于树莓派了,号称口袋计算机,相信很多人听说过。
好消息是,最新的树莓派开始往工业界渗透了,出现了工业级树莓派CM4(具体内容我们在后面给大家介绍),上面开始支持PCIe接口,这个PCIe接口不仅提高了树莓派跟其他外设之间的传输带宽,也给我们做FPGA嵌入式开发的工程师带来了福音,我们将Pro4开发宝典里面的FPGA板卡通过PCIe线缆直接接到树莓派主板上,这样就实现了一个类似于NI的cRIO控制器架构。
而Linux系统的程序开发,相信很多工程师都不会,所以我们选择LabVIEW直接编写Linux程序,极大的降低了开发门槛,加上我们一直以来的LabVIEW My FPGA软件工具包搞定了FPGA芯片里面的程序开发,这样二者一结合,一个人就能使用LabVIEW搞定Linux和FPGA的编程了,想要快速做出一个带FPGA高速处理的边缘计算盒子,也就是半天的功夫。更为重要的是,可以极大的降低硬件开发和设计成本,相对于NI的cRIO来说,硬件成本不到十分之一。而且树莓派和FPGA都是模块化的,树莓派的核心板,网上一大堆,白菜价,还是工业级的,FPGA的核心板也是一样,性价比都是极高的。
说到cRIO控制器架构,估计没有接触过NI的用户不是很了解,下面我们专门给用户讲解一下NI的cRIO控制器为什么受大家喜爱,有哪些特点值得我们学习。
2、NI cRIO控制器架构、优势、特点(RT OS+FPGA+Module)
NI公司最出名的莫过于PXI机箱和PXI控制器,这种设备在复杂环境下的抗干扰能力有限,于是在很多年前,NI创始人Dr.T开始规划和设计了一种全新的兼顾性能、可靠性、模块化、支持LabVIEW图形化编程的控制器,称之为compact RIO,简称cRIO。
下面,我们给出几种NI常见的cRIO设备实物照片和软件开发示意图,如图9-1~9-5所示。 《LabVIEW FPGA开发宝典》第9章:利用树莓派Linux RT+FPGA PCIe实现国产化RIO_第1张图片
图9-1:NI Compact RIO软硬件产品示意图
《LabVIEW FPGA开发宝典》第9章:利用树莓派Linux RT+FPGA PCIe实现国产化RIO_第2张图片
图9-2:NI cRIO控制器里面的Linux RT和FPGA均支持LabVIEW图形化编程《LabVIEW FPGA开发宝典》第9章:利用树莓派Linux RT+FPGA PCIe实现国产化RIO_第3张图片
图9-3:NI新款cRIO控制器侧面解剖示意图《LabVIEW FPGA开发宝典》第9章:利用树莓派Linux RT+FPGA PCIe实现国产化RIO_第4张图片
图9-4:NI新款cRIO控制器正面解剖示意图《LabVIEW FPGA开发宝典》第9章:利用树莓派Linux RT+FPGA PCIe实现国产化RIO_第5张图片
图9-5:NI cRIO软件开发示意图
这些cRIO设备由3部分构成:运行实时系统的CPU、机箱背板上的FPGA、各种功能模块。可以通过一幅系统框架来阐明cRIO设备的架构,如图9-6所示。 《LabVIEW FPGA开发宝典》第9章:利用树莓派Linux RT+FPGA PCIe实现国产化RIO_第6张图片
图9-6:NI cRIO系统组成框图
CPU:相当于大脑。早期的cRIO里面的控制器采用的是飞思卡尔PowerPC架构的CPU,跑VxWorks实时系统;随着ARM芯片的兴起,现在的cRIO控制器部分基本上都是ARM内核和X86 CPU,跑的是开源的Linux实时系统,简称Linux RT;当然也可以在里面跑Windows系统。当下和未来,Linux RT将是NI重点发展的方向,毕竟Linux开源和免费。
FPGA:相当于神经中枢。这个是cRIO里面最核心的部件,不同于市面上其他家的硬件,因为NI开发了LabVIEW FPGA工具包,可以直接对FPGA进行图形化编程,所以在cRIO里面集成FPGA,可以有效的解决并行和高速信号采集、处理、闭环控制等问题,极大的降低了RT里面的程序压力;同时解放了Linux RT里面的外设驱动编写,FPGA作为连接RT和模块之间的桥梁,可以将功能模块采集的数据直接通过PCIe或者AXI总线(ZYNQ)传输到Linux系统里面;也可以承担复杂的、对速度响应要求极高的任务执行以及对原始的数据进行高速处理,比如滤波,FFT,数值特征提取等等;FPGA既能起到桥梁的作用,还可以做CPU做不到的事情,一举两得。
功能模块:相当于手、脚和感官。NI针对cRIO开发了几百种功能模块,其功能覆盖了目前所有已知领域:数据采集、运动控制、信号生成、图像视觉、总线通信,更是在风电、能源、健康状态监测、资产监测、HIL硬件在环、模型仿真有着诸多的应用和案例。
总结:RT系统适合跑一些us级的任务,FPGA可以做多个并行的ns级的任务,功能模块负责输入和输出,也就是I/O。
可以看出,NI发明的cRIO设备有着许多其他厂商控制器无法取代的优势:
 充分发挥出Linux实时系统和FPGA并行计算的优势,二者结合基本上可以搞定80%的工程应用问题;us级的任务代码交给Linux RT处理,ns级的程序交给FPGA搞定,通力合作干掉市面上所有PAC控制器。
 支持LabVIEW图形化编程,Linux RT和FPGA里面的所有代码都可以采用LabVIEW编程,并且NI有着比Matlab更多更全面、极为丰富的软件工具包和各种算法VI,都可以直接编译部署下载到RT和FPGA里面运行,这个也是NI为人类贡献的宝贵财富。
 几百种功能模块可以自由组合,任意插拔,给不同行业的客户提供了快速的解决方案,就像乐高机器人那样,只要用户有好的idea,cRIO都能帮大家快速实现。
讲了这么多NI cRIO设备的优势,大家是不是都有点心动了,是不是想在自己现在或者今后的项目当中也试试cRIO呢?cRIO确实是个好东西,可惜价格太贵了,对于一般的公司和个体户来说,cRIO几~十几W的价格还是一座难以逾越的大山,毕竟我们是发展中国家,美国是发达国家,由于汇率和人民生活水平的原因,导致了NI硬件昂贵的感觉。
一个项目本身可能也就十几W的预算,如果全部被硬件占用的话,基本上大家就不用干了。所以我们这本书(Pro5)就是给用户开辟了一条另辟蹊径的道路,并且经过很多企业客户的实践证明是可行的,那就是接下来我们要向大家介绍的国产化cRIO。
无论是NI的cRIO设备还是我们这里提到的国产化cRIO,核心本质和灵魂都是前面介绍的那一套框架:Linux RT+PCIe+FPGA+Module。并且我们提出的由树莓派(英国Raspberry)或者RK3399(中国)+PCIe+FPGA实现的控制器跟NI本身没有版权冲突,用户可以放心自由的开发和使用。

你可能感兴趣的:(编程语言,linux,labview,fpga,pci-e)