首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FPGA技术在CompactRIO中的应用

FPGA技术在CompactRIO中的应用

摘要: 本文提出了如何实现在硬件上直接对信号做并行处理,比如测量波形周期、占空比、滤波等;并提出了如何优化FPGA资源。运用NI FPGA 提供的可重配置测量I\0 接口技术和可控制底层硬件的开发思想, 设计了可扩展性和可移植性强的数据采集系统,实现了实时控制、数据采集处理、控制监控等功能。美国国家仪器有限公司(National Instruments,简称NI)发布了一个具有极高性能的嵌入式控制和采集平台-CompactRIO。
NI CompactRIO 硬件平台是一个基于FPGA 技术的嵌入式系统。由于NI 的CompactRIO 采用了可重配置I/0 技术(RIO), LabVIEW 的开发者能够使用可重配置FPGA 芯片和Lab VIEW 图形化开发工具重新定义硬件测量电路。CompactRIO 适用于在工业与应用中使用Lab VIEW 图形开发工具采用可重配置硬件的高级开发任务,也可以应用于重型机械控制、车辆内置数据采集、电机驱动领域。
1 ComapactRIO 系统结构
NI CompactRIO 可编程自动化控制器包含实时控制模块和FPGA 模块,采用FPGA 技术可重配置I/O 端口并能实现底层硬
件的开发。程序运行是基于硬件并行处理的,保证了实时性。下位机实时控制Lab VIEW RT 程序运行于实时操作系统平台,与FPGA 端程序进行内部数据交互, 可以实现实时控制、数据采集、控制监控等功能。控制器通过以太网与PC 机连接,用共享变量传送数据信息,将RT 程序界面在PC 上动态显示以对系统进行监控。FPGA 模块、实时控制模块和PC 机之间数据交换的系统结构图如图1 所示:

2 FPGA 技术应用
传统的测量控制系统由三个基本单元组成, 包括实时操作系统、硬件驱动和I/O 接口, 比如DAQ 设备。使用Lab VIEW
FPGA 测量系统, 只需软件设备和提供接口操作的NI FPGA 底板。借助NI Lab VIEW FPGA 和可重新配置I/O(RIO)硬件,不需要预先了解传统的HDL 语言或硬件板卡设计即可通过NI LabVIEW 图形化开发公工具直接创建自定义的I/O 端口并控制硬件电路。
2.1 FPGA 数据采集
在分布式系统中,采用模块化设计思想,将系统分为NI LabVIEW、Lab VIEW RT 模块和Lab VIEW FPGA 模块进行综合设计。针对不同类型的外部模拟信号,用户需选择不同的可重新配置I/O 采集卡与cRIO 底板匹配。灵活的分析和操作I/O 信号,这在固定I/O 硬件上是不可能实现的。Lab VIEW FPGA 模块对采集到的数据进行简单操作后,通过FIFO 将采集到的数据传输至Lab VIEW RT 模块,然后对采集到的实时数据进行浮点运算操作等, 例如快速傅立叶转换, 或者一些基于模型的控制与仿真。FPGA 模拟、数字端口的读写如图2。

2.1.1 模拟信号采集
模拟信号是指连续变化的物理量等,例如电压、电流、温度等。PC 机处倪瑞萍: 硕士理的都是数字信号,所以必须利用A/D 转换芯片将采集到的模拟信号转化为数字信号。在本系统中选用NI 公司提供的NI9205 数据采集卡, 其分辨率为16 位,32 路单端或16路差分模拟输入,最大采样率可达250KS/s。NI 9205 工作于差分输入方式时, 只有16 个采样通道, 分别为AI0-AI7、AI16-AI23。通道可以在NI 9205 的属性对话框中设置, 也可以通过FPGA I/O Node 控件的Set Terminal Mode 属性设置。在FPGA程序中通过读写模拟输入输出口得到采集到的数据。
2.1.2 数字信号采集
数字信号一般是指测试系统中的开关信号等, 包括开关的闭合和断开、电机的启动和停止、指示灯的点亮与熄灭。这些信号都是用布尔型True 和False 或者逻辑值“0”和“1”表示的。在本系统中选用NI 公司提供的NI 9425 数据采集卡。通过读取FPGA 数字端口得到采集到的数字量数据。
2.2 FPGA 信号调理
CompactRIO 系统核心的FPGA 电路是并行处理的可重配置计算引擎, 执行嵌入式的Lab VIEW 应用将比以往的速度快
100 倍。工程师可以以超过100kS/s 的循环速度实现多回路模拟PID 控制系统, 也可以以1MS/s 的速度实现多回路数字控制系统,还可以在25ns 的时间内对多级布尔逻辑求值。相比对采集到的数据在PC 上编写程序进行软处理, 在硬件上处理数据速度快很多,可以达到实时控制的目的。
2.2.1 FPGA 实时控制
在NI FPGA 上可以自定义I/O 接口, 并且可以在硬件上对采集到的数据执行用户设计的逻辑算法直接进行计算、滤波、
求解周期、占空比等,实现实时控制。以CompactRIO 嵌入式系统为核心,在FPGA 硬件设备上执行逻辑算法实现矩形波形占空比的测量,部分框图如图3 所示,其中用到的子VI 是用来测量矩形波形的高低电平是否反转。在波形的高低电平反转时测量高低电平分别持续的时间, 用高电平持续时间与高低电平持续时间之和相比即可测量出矩形波形的占空比。

若图3 中的程序使用普通的While Loop 则需要6 Tick。使用NI FPGA 自带的Single-Cycle Timed Loop(简称SCTL)即可在
1 Tick 内实现这个功能运算,可节省5 Tick。在编写FPGA 程序时还须尽量减少使用数组等占用资源较多的界面控件, 尽可能的将除法运算转换成加减运算以节省FPGA 资源, 避免因资源不够用引起不能编译FPGA 程序的问题。
2.2.2 并行计算优化
在编写程序时合理利用NI FPGA 支持多进程并行操作的优势,可以减短程序运行时间,实现更高效的实时控制。将FPGA
程序编译成Bitfile 后会产生提示FPGA 程序执行速度和占用资源的百分比。随着程序的扩展,程序执行的速度在减慢的同时程序占用的FPGA 上的资源也在增大, 此时应该重构程序, 利用FPGA 支持多进程并行操作的优势, 尽量将普通While Loop 替换为SCTL,减少同步和使能耗时,加快程序运行速度。图4 举例描述了如何应用并行优化FPGA 程序。在FPGA 程序中开始处记录开始时间,在程序结束时记录结束时间,两者相减即可得到该程序执行时间。由顺序执行改为并行操作可以节省大约1/3的时间,加快了FPGA 程序运行速度。

3 FPGA 与CompactRIO
FPGA 底板与RT 控制器通过PCI 总线进行连接,RT 控制器与PC 主机通过共享变量通信,在编程时分别对应着FPGA 程
序、RIO 程序和Host 程序。FPGA 程序、RIO 程序和Host 程序的运行是各自独立的。在进行数据采集时,须协调同步FPGA 程序和RIO 程序,两者工作采用握手方式,使RIO 程序通过触发FPGA程序相应的属性控制FPGA 程序运行。在运行过程中,RIO程序中首先需要配置FIFO 的存储深度;在FPGA 程序中,主要用到两个控件:FPGA I/O Node 控件和Write FIFO 控件。FPGA I/O Node 控件用来执行数据采集的操作;Write FIFO 控件是将采集到的数据写入FIFO 中。在数据传输时,FPGA 程序将采集到的数据先存储到FIFO 中,RIO 程序再从FIFO 中读取数据。通过FIFO 实现了FPGA 与RIO 的数据传递。在RIO 程序中调用FPGA 程序时要用到以下三个控件:Open FPGA VI Reference、Invoke Method、Read/Write Control。在设计RIO 程序时必须先用Open FPGA VI Reference 控件打开指向FPGA 程序的指针引用,对RIO 与FPGA 的接口进行控制;Invoke Method 控件是用来对FIFO 进行配置后从FIFO 中读取数据;通过Read/Write Control 写FPGA 程序前面板控件值,可以设置FPGA 程序数据采集所需的参数。
FPGA 程序经过一系列的转换, 最终被编译成比特流文件,并下载到FPGA 模块上运行。Lab VIEW 实时模块通过读取FIFO 存储数据读取从FPGA 模块获取数据。Host 程序直接运行在PC 机上,通过共享变量的方法从Lab VIEW 实时模块程序得到处理后的数据。
4 结论
本文给出了一种利用FPGA 技术通过网络通信实现Host、RIO 与FPGA 数据交互的CompactRIO 数据采集系统架构,提出
了应用NI FPGA 在硬件上直接进行信号处理,例如滤波、信号产生、数据值计算等,可以完成测量电压、电流、波形周期、占空比等功能,并提出了优化FPGA 资源的方法。根据端口配置文件可实现了I/O 端口可重新配置,降低了硬件的使用成本,使系统具有良好的可扩展性和可移植性, 同时也提高了程序运行的时效性。本文作者创新点: 提出了如何在硬件上设计逻辑算法直接处理,并提出了如何运用并行执行优化FPGA 资源,提高FPGA程序执行速度。
5 实验结果
在硬件实验平台上,对系统进行了测试,分别在低,中,高三个频段进行了测试,测试结果如下所示(单位:Hz):

从上面的实验数据可以看出, 应用本文采用的等精度测频法完全消除了频率测量中的±1 误差,实现了小数点后三位的精
确测量与显示,满足了对高中低各频段的高精度测量的要求。
6 结论
本文提出的基于FPGA 和单片机相结合的设计方案不仅能较好地解决误差问题,误差仅小于等于0.1Hz,同时还通过对软硬件界面的科学划分,在保证性能的基础上,尽最大可能地简化了硬件设计的难度。本文设计的多周期同步测频法能够直接
对被测信号的周期、频率和占空比进行连续测量,经过验证,所测频率范围为1~100MHz, 频率测量精度达到10-5, 输入灵敏度<10mV。利用FPGA 的高速、灵活,结合单片机的运算和控制功能,使用串口与PC 机通信,测量可以PC 上位机控制下完成,可以进行测量数据采集,扩展性与实用性强。文章的创新点: 基于FPGA 和单片机相结合的设计方案不仅能较好地解决误差问题,误差小,精度高,同时最大可能地简化了硬件设计的难度,采用PC 串口通信,可扩展性强。
作者:倪瑞萍、黄昶、周晨辰
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表