0
基于FPGA的控制:数百万个供您遣用的晶体管(常见问题)
2013-05-03 14:24:38 lvliangwei 浏览:1503次 【
概览
 
现场可编程门阵列(FPGA)技术提供了专用硬件电路所特有的可靠性、真正的并行执行和闪电般的快速闭环控制性能。本文给出了关于可重配置的基于FPGA的硬件目标平台在闭环控制应用中使用的常见问题(FAQ)的解答。
 
 
 
什么是现场可编程门阵列(FPGA)? 
一个FPGA是一种包含有一个可重配置的门阵列逻辑电路矩阵的设备。通过配置,FPGA的内部电路以一定方式相连接,从而创建了软件应用的一个硬件实现。与处理器不同,FPGA使用专用硬件进行逻辑处理,而不具有操作系统。FPGA在本质上是完全并行的,故不同的处理操作不必竞争相同的资源。因此,增加额外的处理时,应用某一部分的性能不会受影响。而且,多个控制循环可以以不同的速率在单个FPGA设备上运行。基于 FPGA的控制系统可以加强关键互锁逻辑,也可以通过设计防止操作人员强夺I/O。然而,不同于拥有固定硬件资源的硬连接的印制电路板(PCB)设计,基FPGA的系统可以完全重新连接其内部电路,以支持控制系统在现场部署后可以重新配置。FPGA设备提供了专用硬件电路所特有的性能与可靠性。
单个FPGA可以通过在单个集成电路(IC)芯片上集成数百万个逻辑门以代替数以千计的分立元件。一个FPGA芯片的内部资源包括一个被I/O组块环围的可配置逻辑组块(CLB)矩阵。在FPGA矩阵内,信号通过可编程的互连开关和连线传递。
 
 
2.FPGA芯片的内部构造
 
与基于处理器的系统相比,基于FPGA的控制系统有何特点?  
 与基于处理器的控制系统相似,FPGA已经被应用于各种类型工业控制系统的实现,包括模拟处理控制、离散逻辑、批处理控制系统或基于状态机的控制系统。然而,基于FPGA的控制系统还是与基于处理器的系统存在显著的差别。
 
FPGA设备编译控制应用程序时,受益于专用硬件电路的性能与可靠性优势,最终得到的高度优化硅实现可以支持真正的并行处理。由于FPGA芯片上不存在操作系统,所以代码实现方式确保了最优的性能与可靠性。
 
除了提供高可靠性,FPGA设备还可以以极快的循环速率执行确定性的闭环控制。对于大多数基于FPGA的控制应用,其速率受限于传感器、传动装置和I/O模块,而不是FPGA的处理性能。例如,包含在LabVIEW FPGA模块中的比例积分微分(PID)控制算法以300纳秒(0.000000300秒)的速率运行。PID控制常用于模拟过程数值的调节,如压力、温度、作用力、位移、流体流动或电流等。
 
 
 
3.LabVIEW FPGA中执行PID控制
 
基于FPGA的控制系统提供速率超过1 MHz的确定性的闭环控制性能。事实上,许多算法可以在单个FPGA时钟(40 MHz)周期内执行完成。由于是并行处理,所以易于实现多速率控制系统。因为在FPGA上的专用硬件子系统内运行控制逻辑,故在增加额外处理时,应用的运行速度不会因此降低。在许多情况下,FPGA硬件中一个软件定义的门阵列可以用于替代一个昂贵且耗时的自定义印制电路板(PCB)布线图。
FPGA可以以数字的方式处理非常高速的信号,并时常用于重新配置I/O模块的功能特性。例如,一个数字输入模块可以用于仅读入每条数字线的真/假状态。另外,该同一个FPGA可以被重新配置,以执行这些数字信号的处理和测量脉宽、执行数字滤波或甚至测量来自一个积分编码器传感器的位置和速率信息。
基于FPGA的系统时常将运动控制和电机驱动整流集成到单个基于FPGA的控制应用中。相比之下,基于微处理器的系统通常将电机驱动整流分配给独立的硬件,因为电机电流或扭矩控制需要较高的循环速率(通常为20 kHz)与门驱动整流信号的精确定时。
 
 
4.基于微处理器的控制(左)与基于FPGA的控制(右)
 
我如何利用LabVIEW FPGA模块编程实现我的控制应用? 
 
LabVIEW FPGA模块持您使用高层次的图形化数据流编程方法,以创建您的模拟或数字控制逻辑的一个高度优化的门阵列实现。您可以使用常规的LabVIEW编程技术开发您的 FPGA应用。当您以如CompacRIO机箱或R系列智能DAQ设备等FPGA硬件为目标平台时,LabVIEW编程面板简化为仅包含专为工作于 FPGA之上而设计的函数。与传统LabVIEW相比,其主要的编程差别在于FPGA设备使用整型算术而不是浮点算术。而且,也不存在多线程或优先权的概念,因为每个循环运行于独立的专用硬件,并不使用共享资源,这样使得每个循环以时间关键(time critical)”的优先权并行执行。
 
LabVIEW FPGA面板包含广泛的知识产权(IP)库。下表列举了一些用于开发基于FPGA的控制系统的关键功能模块。如欲了解更多细节,敬请查阅LabVIEW FPGA模块用户手册
 
类别
用于控制的关键函数
常见控制应用
编程结构
For循环、While循环、条件结构、反馈节点、顺序结构、单周期定时循环、移位寄存器、HDL接口节点
模拟过程控制循环、状态机、批控制、顺序功能流图、事件响应、重复执行、信号锁存、子程序、排序、系统状态控制(上电、关机、看门狗、错误、
输入/输出
模拟输入、模拟输出、数字输入、数字输出、数字端口输入、数字端口输出
与数字I/O、电压、电流、温度、负载、压力、张力、继电器、4-20 mAH-桥、CAN通信、无线网络和其他信号接口
模拟控制
离散PID、离散控制滤波器、离散时延、离散归一化积分器、初始条件、单位时延、零阶保持、反冲、死区、摩擦、存储单元、量化器、限速器、中继、饱和、开关、触发器、线性插值、正弦信号发生器、一维查找表
模拟控制算法、带噪信号滤波、输入/输出信号限幅、将非线性传感器信号缩放为工程单位比例值、函数发生、正弦、余弦、对数、指数、增益调度、ramp/soak控制
离散逻辑
与、与数组元素、布尔数组至数字转换、布尔值至(0,1)转换、混合运算、异或、蕴含、非、非与、同或、非或、数字至布尔数组转换、或、或数组元素、布尔值转换
数字控制、数字逻辑、布尔逻辑、梯形图、事件次序、状态转移、2-状态离散设备与3-状态离散设备的控制、边缘检测
比较函数
等于?、等于0?、大与?、大于等于?、大于等于0?、大于0?、小于?、小于等于?、小于等于0?、小于0?、不等于?、不等于0?、选择、最大值与最小值、判定范围并强制转换、过零点
报警、触发、事件检测、峰值检测、信号比较、阈值、状态变换检测、信号选择(高、最小、最大)、极限测试、选择器/多路复用器、加热/降温分程控制
Math数学
绝对值、加、混合运算、减1、加1、乘、取负数、商与余数、按2的幂缩放、符号、减、饱和加、饱和乘、饱和减、联合数、逻辑移位、循环移位、带进位的左移位、带进位的右移位、拆分数字、交换字节、交换字
模拟信号处理、求和、计数器/定时器、变化速率检测、电子传动装置/凸轮系统、蓄电池、平均化、累加器、数字信号处理
数据传输、定时、触发与同步
全局变量、局部变量、FIFO读、FIFO写、存储器读、存储器写、中断、循环定时器、时间计数器、等待、生成事件、设置事件、等待事件、首次调用?
看门狗、定时器、蓄电池、脉宽测量/发生、定时器打开/关闭延时
NI SoftMotion模块 
运动控制循环PID32-位)、花键引擎(插值)
多轴坐标运动控制、轨迹生成、直线移动、微动、圆弧运动、等值线、插值
数字滤波器设计工具包 
滤波器设计、定点工具、代码发生
数字滤波器设计、浮点到定点的转换、生成LabVIEW FPGA代码
 
1.LabVIEW FPGA中用于控制的关键函数
 
LabVEIW编译器如何将我的图形代码转换为FPGA电路? 
 
LabVIEW FPGA模块利用一个自动的多步骤过程,将您的LabVIEW应用编译到FPGA硬件。在后台,您的图形代码被转化为基于文本的VHDL代码。然后调用业界标准的Xilinx ISE编译器工具,该VHDL代码被优化、精简和综合到由LabVIEW设计的硬件电路实现。这一过程也对设计施加了定时限制,以力图实现FPGA资源(有时称为结构)的有效利用。
 
FPGA编译过程中执行了大量的优化工作,以精简数字逻辑并创建LabVIEW应用的一个最优实现。然后,该设计被综合至一个高度优化的硅实现,它提供了真正的并行处理能力以及专用硬件所特有的性能与可靠性。
 
最终结果是一个包含门阵列配置信息的比特流文件。当您运行该应用时,该比特流被加载至FPGA芯片,并用于重新配置门阵列逻辑。该比特流也可以被加载至非易逝性闪存,当目标平台加电时被同时加载。FPGA芯片上不存在操作系统,但可以利用内置于FPGA应用的启动逻辑链来开始和停止运行。
 
 
5.LabVIEW FPGA编译过程
 
FPGA运行速度很快,但是更快速的循环速率如何改进控制系统的性能? 
 
一般而言,控制系统的速率影响其性能、稳定性、健壮性和抗干扰等特性。更快速的控制系统通常更为稳定、易于调整、并不易受条件变化和干扰影响。
 
为提供稳定、健壮的控制,一个控制系统必须能够测量其过程变量,并在一个固定的时段内设置传动装置输出命令。可快速变化的系统(工厂车间)需要快速控制系统,以确保在可接受范围内的可靠性能。作为一个指导原则,控制循环的速率应当至少高于系统(工厂车间)的时间常数的十倍。时间常数是系统速率的一个度量。
 
例如,在响应来自一个H-桥驱动装置的24伏输出时,DC电机的电流可能以1安培/秒的速率变化。为了精确控制电机电流,控制系统必须快速对电流进行采样并频繁调整传动装置的输出。如欲了解更多信息,请参阅在线文档PID嵌入式控制指南
 
 
6.典型的闭环控制系统
 
 
NI提供哪些可用的FPGA硬件目标平台? 
 
NI提供大量用于部署基于FPGA的控制应用的高性能平台。此部分将介绍几个关键的平台。如欲得到NI所提供的可重配置硬件目标平台的完整列表,敬请访问ni.com/fpga
CompactRIO可重配置嵌入式系统一个面向要求最高稳固性和可靠性的工业应用的小尺寸、模块化系统。CompactRIO专为恶劣环境设计,它具有极宽的工作温度范围、高冲击与振动评级和若干工业认证与评级。CompactRIO评级为海军环境,I类,2级,适合危险场所,并提供高达2300伏的隔离。与所有来自NIFPGA目标平台相似,CompactRIO使用C系列工业I/O模块,以实现与工业控制传感器与传动装置的低成本直接连接。此外,世界范围内有许多第三方厂商提供C系列I /O与通信模块。如欲获得关于利用CompactRIO执行控制的指南,敬请下载CompactRIO机器自动化白皮书
 
 
7.CompactRIO可重配置嵌入式系统
 
NI R系列智能数据采集(DAQ)设备面向PCIPXI/CompactPCI总线的插入式板卡,其板上FPGA硬件用于用户定义的信号处理与控制。多达8个模拟输入、8个模拟输出和160 个数字I/O通道被内置于智能DAQ设备中。您也可以将一个扩展底板连接至任何一个数字端口,并添加C系列工业I/O模块。R智能DAQ设备支持定义您自己的硬件功能特性,并为定时、触发、同步、数字信号处理和控制提供了无限可能。
 
PXI R系列智能DAQ系统在工业标准PXI外型尺寸下提供FPGA的性能与可靠性。除了来自NI的智能DAQ设备,尚有来自NI与世界范围的其他厂商的数百个非可重配置的插入式板卡可供使用。PXI系统可以启动进入WindowsLabVIEW实时操作系统。C系列I/O模块提供信号调理,并将仪器系统级的精度与隔离或高电流驱动能力等工业特性相结合。R系列扩展底板用于将C系列模块连接至智能DAQ设备。如欲了解更多信息,请查看描述R系列智能DAQ设备在线应用说明
 
 
8.PXI R系列智能DAQ系统
 
PCI R系列智能DAQ系统支持您将基于FPGA的控制能力添加至任何台式机、工控机或包含一个PCI插槽的单板卡计算机(SBC)。与所有的NI FPGA目标平台相似,智能DAQ设备可以在上电时即刻从位于插入式板卡上的非易逝性闪存加载其比特流。NI-RIO驱动接口与R系列设备同时提供,无需额外费用,也无需运行时部署许可的费用。了解更多信息
 
 
9.PCI R系列智能DAQ系统
 
NI紧凑视觉系统(Compact Vision System) 是一个稳固的独立平台,它面向工业机器视觉与I/O应用,如机器人、自动化测试和自动化检测等应用。所有的紧凑视觉系统均包含一个用户可编程的FPGA用于实现自定义的触发器、计数器、脉宽调制(PWM)、运动与其他数字控制操作。NI紧凑视觉系统使用IEEE 1394(火线)技术可以实现与超过300个兼容摄像头的连接。
 
 
10.NI紧凑视觉系统
 
如欲了解来自NI的关于可编程自动化控制器(PAC)硬件技术的更多信息,敬请访问ni.com/industrial
 
 
我可以获得怎样的闭环控制性能? 
 
在绝大多数情况下,FPGA的计算性能是如此之快以致控制循环的速率仅受限于传感器、传动装置和I/O模块。这一点完全不同于传统的控制系统,因为对于传统控制系统,其处理性能是典型的限制因素。
 
例如,利用R系列智能DAQ设备,离散控制应用的输入/输出与控制逻辑的计算,均可以利用板上的5TTL数字I/O线20 MHz的控制循环速率实现。这些数字线可以在一个以25纳秒速率运行的LabVIEW单周期定时循环内被访问。通常,数量可观的控制逻辑可以被包含在一个单周期定时循环内。
 
对于使用高电流C系列数字I/O模块的24伏离散逻辑控制应用,循环速率受限于模块的更新速率。例如,NI 9423数字输入模块与NI 9474数字输出模块均具备1微秒的更新速率,从而得到500 kHz的最大24伏离散控制性能。
 
在模拟过程控制应用中,控制循环速率也受限于I/O模块的更新速率。NI 9215模拟输入模块与NI 9263模拟输出模块,提供16位精度以及10微秒更新速率下的同时采样功能。这样得到了50 kHz的闭环模拟过程控制性能。
 
loop
 
11.循环周期时间(T)是指执行控制循环的一个周期所需的时间
Algorithm算法
 
 
我可以预期多少基于FPGA的控制循环中的抖动? 
 
衡量控制系统的性能与鲁棒性的一个常用尺度便是抖动,它是实际循环周期时间与期望的循环周期时间的偏差。在通用操作系统Windows中,抖动是不受控制的,故无法确保闭环控制系统的稳定性。具有实时操作系统的基于处理器的控制系统,通常能够确保控制循环抖动小于100 微妙。
 
在基于FPGA的应用中,控制循环不必与其他任务共享硬件资源,而控制循环可以利用FPGA时钟实现精确定时。基于 FPGA的控制循环的抖动取决于FPGA时钟源的精度。对于CompactRIO cRIO-910x可重配置机箱,FPGA时钟抖动在40 MHz FPGA时钟速率情况下仅为250皮秒(0.000000000250秒)。如欲了解更多细节,请参阅可重配置机箱产品手册
 
 
12.为确保稳定性,控制循环抖动必须是受限的
 
 
我是否能够创建自定义的I/O模块? 
 
是的,NI提供了一个模块开发工具包(MDK),使得您可以开发自定义的C系列模块并将其连接至一个可重配置的FPGA。该工具包提供了许可权、设计导则和对通用I/O模块节点的访问,以创建与您的定制模块电路的接口。此外,Electronics Workbench电路教学平台现在提供C系列I/O模块模板,这些模板已被预组装并配有常见信号连接端选项。如欲了解关于自定义模块开发的更多信息,请访问CompactRIO技术库
 
 
 
13.Electronics Workbench电路教学平台现提供C系列I/O模块模板
 
0 条评论
查看更多评论
  • 键盘快捷键描述按住Shift并单击选择多个对象;将对象添加到当前选择。按住Ctrl单击切换单个对象以加入或保留当前选择。方向键一次将所选对象移动一个像素。Sh..

    浏览:5213次 评论:0
    2021-02-06 09:23:02
  • Modbus是全球第一个真正用于工业现场的总线协议,采用的是主从原则,其物理接口主要有串口和以太网口两种。本文主要介绍LabIEW与PLC的通信实现方式。在进行通..

    浏览:12304次 评论:0
    2019-09-22 12:58:51
  • 对实时数据或者历史存储数据进行滤波及校准处理,可以将采样数据转化为具有实际意义的物理量,为用户后续操作提供方便。滤波校准功能的程序设计如图1所示,本..

    浏览:4587次 评论:0
    2019-09-21 16:32:59
  • 在进行LabVIEW程序设计时,一个VI中可以包含一个或若干个子vi。这些子vi是被直接放置在程序框图中,习惯上称这些子vi为:静态链接子vi。这些子vi在VI载入的同..

    浏览:11252次 评论:0
    2018-12-17 15:28:30
  • 新建一个LabVIEW项目,或者打开一个已经建好的项目,项目中包含主vi,子vi以及自定义控件等,确保vi运行正常。    在项目浏览器的-程序生成规范->..

    浏览:9023次 评论:0
    2018-07-18 10:55:21
作者专栏
  • NNN

    注册时间:2024-12-23 09:48:46

  • sltang

    注册时间:2024-12-21 15:45:59

  • samhuang63

    注册时间:2024-12-20 09:42:58

  • csq663347

    注册时间:2024-12-05 16:34:39

  • guohuiming

    注册时间:2024-11-14 08:49:44

Copyright@http://nilab.com.cn all rights reserved 备案号:京ICP备12043750号-1
Powered by qibosoft V9.0 Code © 2003-2017 qibosoft
LABVIEW之家 QQ:181237912; email:Labviewzj@qq.com 项目合作 微信及手机:18510627229