通过LabVIEW FPGA加速嵌入式系统原型化的过程
时间:09-13
来源:互联网
点击:
LabVIEW FPGA图形化的开发环境
过去,对于FPGA的编程需要深入掌握VHDL或者其他的低级设计工具,这需要一个较长的学习过程。通过LabVIEW FPGA,可以用图形化的环境来定义FPGA逻辑,使更多的工程师们不需要掌握VHDL或硬件设计的专门知识,就能够利用FPGA技术来进行系统的设计和原型化。
另外,通过和LabVIEW中的一些工具包相配合,比如数字滤波器设计工具包,LabVIEW FPGA可以帮助工程师很快开发出信号处理系统并将其发布到FPGA中去,并提供了很多专门的测量和控制函数。比如,LabVIEW FPGA内置了多种函数,可用于闭环PID控制、5阶FIR滤波、一维查找表、线性插值、过零检测和正弦波的直接数字合成。
对于系统的配置和I/O连接,工程师们可以利用LabVIEW FPGA和NI RIO设备来大大加快开发的进度,因为NI RIO设备将I/O与总线连接的工作都已做好,工程师们可以通过LabVIEW FPGA快速的定制I/O或控制硬件电路,而且这些电路所具有的性能媲美经厂商定义并优化的硬件性能。使用LabVIEW FPGA模块,工程师可以在运行Windows的主机上开发FPGA程序,然后用LabVIEW 进行编译并在硬件上运行这些代码程序。由于LabVIEW FPGA是用硬件来实现程序算法,它对于算法的执行性能要比基于软件的系统好得多。
对于时间和并行性的支持
和传统的文本编程相比,LabVIEW天生是一种并行结构的编程语言,非常适用于FPGA的并行结构,用以实现同步或异步的并行任务。考虑一个包含8PID控制循环的应用,如图1所示,应用程序将在FPGA上创建了2个完全独立的处理器,可以和FPGA时钟同步或异步的运行。甚至在同一个while循环或类似结构中,我们都可以通过对代码的流程线操作进行并行化来提高执行速度。将处理过程分割成数个片断,并在连续的循环中依次执行这些片断。如图1所示,我们将控制算法就分成了2个片断。while循环的每次执行都会更新PID控制输出,但是模拟输入(AI)及控制算法1,与模拟输出(AO)及控制算法2是并行执行的。结果显示,通过这种方式,算法的执行速度要比顺序处理的结构快得多。
图1 代码流程线操作的并行化
通过LabVIEW FPGA和NI RIO设备进行原型化
很多设计比预期时间晚上市,并且有一些在投入市场以后发现未达到预定的功能和指标,因此必须采取一定的措施来加快设计流程,提高设计质量。一种解决方案就是更早地将真实世界的信号和硬件引入到设计流程之中,进行更好的系统原型化,从而在早期就发现并修正潜在的问题。
但是在任何设计和开发流程中,在基于软件设计和仿真工具的虚拟世界,与电子或机械测量的物理世界之间有一个很大的鸿沟。LabVIEW平台最明显的价值就是在虚拟世界和物理世界间的鸿沟之间建立一座桥梁。物理测量是与设计和仿真完全不同的挑战,要求与广泛的测量和控制硬件紧密集成,并以优化的性能处理大量的通道数或超高速吞吐量。LabVIEW平台经过不断演进,在物理测量领域提供极高的性能和灵活性。更重要的是,LabVIEW平台是开放的,因此,设计人员可以将测量数据与仿真结果相映射,甚至互换仿真和物理数据,以用于设计中的行为建模,或者以仿真的激励驱动物理测试,从而更为有效快速的进行系统原型构建。
嵌入式系统开发人员如果要定制硬件用于最终的发布,很难同时并行开发软件和硬件,因为直到系统集成步骤之前,软件从未在有代表性的硬件上经过测试。此外,设计师们也不希望软件开发是纯理论的进行,如果直到系统集成测试的时候才引入I/O,用真实世界的信号检验设计,一旦发现存在问题,那就意味着很难在预期时间完成设计任务了。
大多数设计师当前用评估板来进行系统的原型化,但是,原型板往往只具备少量的模拟和数字I/O通道,也很少支持视觉、运动或同步的功能。此外,设计师经常因为需要传感器或特殊I/O的支持而花费大量时间来开发定制的原型板,而这些仅仅是为了设计概念的验证。使用灵活的、商业化的原型平台可以大大简化这个过程,消除其中硬件验证和板级设计的大量工作。对于大多数系统,原型化平台必须包括最终发布系统的同样部件,比如用于执行算法的实时处理器、用于高速处理的可编程逻辑器件,或者将实时处理器接口到其他部件。因此,如果这个商业化的系统不能满足所有的要求,那么这个平台必须是可扩展的,并且支持自定义。NI提供了各种硬件平台与LabVIEW集成,完成从设计、原型到部署的全过程。例如使用LabVIEW和NI可重复配置I/O(RIO)设备或NI CompactRIO平台,可以快速而便捷地创建嵌入式系统的原型。从图2可以看到,通过LabVIEW FPGA可以对多种NI RIO设备进行配置。
图2 LabVIEW FPGA程序框图和RIO硬件平台
一个客户案例是Boston Engineering公司。他们要开发一种牵力控制机用于数码照片打印系统。其中,彩色墨盒通过驱动马达馈送到打印头,由卷带电机和推进电机来控制牵力。切割机底盘的振动、每次打印的照片数目和每个电机的速度变化都会影响到底层的牵力。控制系统通过两个电机的位置来保证卷带和推进的牵力处于设定范围之内,否则就会有色差。设计的牵力控制硬件需要两个脉宽调制输出来控制电机,两个编码器将转速反馈给电机,两个模拟输入通道连接霍尔传感器用来测量位置,两根数字线用于信令。
由于传统的原型板无法满足这些要求,所以需要使用可以自定义I/O的原型平台,因此他们使用CompactRIO平台来进行原型化工作。CompactRIO系统包含一个266MHz的嵌入式微处理器、以太网控制器,以及背板上的1百万门FPGA。通过LabVIEW FPGA对背板上的FPGA编程,他们的控制、机械和电子工程师就可以直接参与到编程工作中。他们在嵌入式控制器中运行管理程序,在FPGA中运行电机控制算法,这种资源配置使得原型化构建和最终系统发布在编程模式上是非常相似的。为了在FPGA中运行控制算法,他们将ZPK(zero-pole-gain)模型转化为LabVIEW数字滤波器设计工具包中提供的一种滤波器,由于这个工具包支持LabVIEW FPGA代码的自动生成和优化,所以原先的ZPK模型就可以直接转化成能够在FPGA上运行的代码。另外,他们还使用这个工具包对原先的浮点算法进行了定点转换,以节约FPGA资源,并对量化后的模型进行测试、验证、修正从而得到预期的结果。通过这种原型化方式,他们节约了大量的开发时间。
过去,对于FPGA的编程需要深入掌握VHDL或者其他的低级设计工具,这需要一个较长的学习过程。通过LabVIEW FPGA,可以用图形化的环境来定义FPGA逻辑,使更多的工程师们不需要掌握VHDL或硬件设计的专门知识,就能够利用FPGA技术来进行系统的设计和原型化。
另外,通过和LabVIEW中的一些工具包相配合,比如数字滤波器设计工具包,LabVIEW FPGA可以帮助工程师很快开发出信号处理系统并将其发布到FPGA中去,并提供了很多专门的测量和控制函数。比如,LabVIEW FPGA内置了多种函数,可用于闭环PID控制、5阶FIR滤波、一维查找表、线性插值、过零检测和正弦波的直接数字合成。
对于系统的配置和I/O连接,工程师们可以利用LabVIEW FPGA和NI RIO设备来大大加快开发的进度,因为NI RIO设备将I/O与总线连接的工作都已做好,工程师们可以通过LabVIEW FPGA快速的定制I/O或控制硬件电路,而且这些电路所具有的性能媲美经厂商定义并优化的硬件性能。使用LabVIEW FPGA模块,工程师可以在运行Windows的主机上开发FPGA程序,然后用LabVIEW 进行编译并在硬件上运行这些代码程序。由于LabVIEW FPGA是用硬件来实现程序算法,它对于算法的执行性能要比基于软件的系统好得多。
对于时间和并行性的支持
和传统的文本编程相比,LabVIEW天生是一种并行结构的编程语言,非常适用于FPGA的并行结构,用以实现同步或异步的并行任务。考虑一个包含8PID控制循环的应用,如图1所示,应用程序将在FPGA上创建了2个完全独立的处理器,可以和FPGA时钟同步或异步的运行。甚至在同一个while循环或类似结构中,我们都可以通过对代码的流程线操作进行并行化来提高执行速度。将处理过程分割成数个片断,并在连续的循环中依次执行这些片断。如图1所示,我们将控制算法就分成了2个片断。while循环的每次执行都会更新PID控制输出,但是模拟输入(AI)及控制算法1,与模拟输出(AO)及控制算法2是并行执行的。结果显示,通过这种方式,算法的执行速度要比顺序处理的结构快得多。
图1 代码流程线操作的并行化
通过LabVIEW FPGA和NI RIO设备进行原型化
很多设计比预期时间晚上市,并且有一些在投入市场以后发现未达到预定的功能和指标,因此必须采取一定的措施来加快设计流程,提高设计质量。一种解决方案就是更早地将真实世界的信号和硬件引入到设计流程之中,进行更好的系统原型化,从而在早期就发现并修正潜在的问题。
但是在任何设计和开发流程中,在基于软件设计和仿真工具的虚拟世界,与电子或机械测量的物理世界之间有一个很大的鸿沟。LabVIEW平台最明显的价值就是在虚拟世界和物理世界间的鸿沟之间建立一座桥梁。物理测量是与设计和仿真完全不同的挑战,要求与广泛的测量和控制硬件紧密集成,并以优化的性能处理大量的通道数或超高速吞吐量。LabVIEW平台经过不断演进,在物理测量领域提供极高的性能和灵活性。更重要的是,LabVIEW平台是开放的,因此,设计人员可以将测量数据与仿真结果相映射,甚至互换仿真和物理数据,以用于设计中的行为建模,或者以仿真的激励驱动物理测试,从而更为有效快速的进行系统原型构建。
嵌入式系统开发人员如果要定制硬件用于最终的发布,很难同时并行开发软件和硬件,因为直到系统集成步骤之前,软件从未在有代表性的硬件上经过测试。此外,设计师们也不希望软件开发是纯理论的进行,如果直到系统集成测试的时候才引入I/O,用真实世界的信号检验设计,一旦发现存在问题,那就意味着很难在预期时间完成设计任务了。
大多数设计师当前用评估板来进行系统的原型化,但是,原型板往往只具备少量的模拟和数字I/O通道,也很少支持视觉、运动或同步的功能。此外,设计师经常因为需要传感器或特殊I/O的支持而花费大量时间来开发定制的原型板,而这些仅仅是为了设计概念的验证。使用灵活的、商业化的原型平台可以大大简化这个过程,消除其中硬件验证和板级设计的大量工作。对于大多数系统,原型化平台必须包括最终发布系统的同样部件,比如用于执行算法的实时处理器、用于高速处理的可编程逻辑器件,或者将实时处理器接口到其他部件。因此,如果这个商业化的系统不能满足所有的要求,那么这个平台必须是可扩展的,并且支持自定义。NI提供了各种硬件平台与LabVIEW集成,完成从设计、原型到部署的全过程。例如使用LabVIEW和NI可重复配置I/O(RIO)设备或NI CompactRIO平台,可以快速而便捷地创建嵌入式系统的原型。从图2可以看到,通过LabVIEW FPGA可以对多种NI RIO设备进行配置。
图2 LabVIEW FPGA程序框图和RIO硬件平台
一个客户案例是Boston Engineering公司。他们要开发一种牵力控制机用于数码照片打印系统。其中,彩色墨盒通过驱动马达馈送到打印头,由卷带电机和推进电机来控制牵力。切割机底盘的振动、每次打印的照片数目和每个电机的速度变化都会影响到底层的牵力。控制系统通过两个电机的位置来保证卷带和推进的牵力处于设定范围之内,否则就会有色差。设计的牵力控制硬件需要两个脉宽调制输出来控制电机,两个编码器将转速反馈给电机,两个模拟输入通道连接霍尔传感器用来测量位置,两根数字线用于信令。
由于传统的原型板无法满足这些要求,所以需要使用可以自定义I/O的原型平台,因此他们使用CompactRIO平台来进行原型化工作。CompactRIO系统包含一个266MHz的嵌入式微处理器、以太网控制器,以及背板上的1百万门FPGA。通过LabVIEW FPGA对背板上的FPGA编程,他们的控制、机械和电子工程师就可以直接参与到编程工作中。他们在嵌入式控制器中运行管理程序,在FPGA中运行电机控制算法,这种资源配置使得原型化构建和最终系统发布在编程模式上是非常相似的。为了在FPGA中运行控制算法,他们将ZPK(zero-pole-gain)模型转化为LabVIEW数字滤波器设计工具包中提供的一种滤波器,由于这个工具包支持LabVIEW FPGA代码的自动生成和优化,所以原先的ZPK模型就可以直接转化成能够在FPGA上运行的代码。另外,他们还使用这个工具包对原先的浮点算法进行了定点转换,以节约FPGA资源,并对量化后的模型进行测试、验证、修正从而得到预期的结果。通过这种原型化方式,他们节约了大量的开发时间。
嵌入式 半导体 电子 仿真 FPGA VHDL PWM LabVIEW 传感器 电路 硬件工程师 总线 滤波器 编码器 霍尔传感器 相关文章:
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- FPGA按键模式的研究与设计(03-24)
- 周立功:如何兼顾学习ARM与FPGA(05-23)