图形化开发环境:LabView平台
图1 LabView对两个并行任务的编程支持多种算法设计
谈到嵌入式系统设计,人们所指的其实包括两部分工作:算法设计和固件设计。对于嵌入式系统设计来说,另一个关键要求是软件平台必须能够兼顾实时嵌入式设计中常见的多种算法设计,即计算模型。这些计算模型符合系统设计师们筹划系统时的方式,从而降低从"系统要求"转换到"软件设计"的复杂性。近年来LabVIEW已经包含了多种计算模型以更好地满足不同专业背景的嵌入式系统开发者的需求。LabVIEW现在可以通过连续时间仿真、状态图、图形化数据流模型和基于文本的数学语言mathscript等多种方式来表达各种算法,同时它提供了很多交互式的工具用来帮助数字滤波器、控制模型、通信系统的设计以及数字信号处理算法的开发,从而在这些顶层应用中进一步简化设计师的工作。
快速构建原型-沟通虚拟世界与物理世界的桥梁
如前所述,很多设计比预期时间晚上市,并且有一些在投入市场以后发现未达到预定的功能和指标,因此必须采取一定的措施来加快设计流程、提高设计质量。一种解决方案就是更早地将真实世界的信号和硬件引入到设计流程之中,进行更好的系统原型化,从而在早期就发现并修正潜在的问题。
但是在任何设计和开发流程中,基于软件设计和仿真工具的虚拟世界与电子或机械测量的物理世界之间有一个很大的鸿沟,而LabVIEW平台最明显的价值就是在虚拟和物理世界的鸿沟上建一座桥梁。物理测量是与设计和仿真完全不同的挑战,要求与广泛的测量和控制硬件紧密集成,并以优化的性能处理大量的通道数或超高速吞吐量。LabVIEW平台经过不断演进,在物理测量领域具有很高的性能和灵活性。更重要的是,LabVIEW平台是开放的,设计人员可以将测量数据与仿真结果相映射,甚至互换仿真和物理数据,以用于设计中的行为建模或者以仿真激励驱动物理测试,从而更有效快速地进行系统原型构建。
嵌入式系统开发人员如果要定制硬件用于最终的发布,很难同时并行地开发软件和硬件。而如果直到系统集成测试的时候才引入I/O用真实世界的信号检验设计,一旦发现存在问题,那就意味着很难在预期时间完成设计任务了。大多数设计师当前用评估板来进行系统的原型化,但是,原型板往往只具备少量的模拟和数字I/O通道,也很少支持视觉、运动或同步的功能。此外,设计师经常因为需要传感器或特殊I/O的支持而花费大量时间来开发定制的原型板,而这些仅仅是为了设计概念的验证。使用灵活的、商业化的原型平台可以大大简化这个过程,消除其中硬件验证和板级设计的大量工作。对于大多数系统,原型化平台必须包括最终发布系统的同样部件,比如用于执行算法的实时处理器、用于高速处理的可编程逻辑器件,或者将实时处理器接口到其他部件。因此,如果这个商业化的系统不能满足所有的要求,那么这个平台必须是可扩展的,并且支持自定义。NI提供了各种硬件平台与LabVIEW集成,完成从设计、原型到部署的全过程。例如使用LabVIEW和NI 可重复配置I/O(RIO)设备或NI CompactRIO平台,可以快速而便捷地创建嵌入式系统的原型。
例如Boston Engineering公司要开发一种牵力控制机用于数码照片打印系统。其中,彩色墨盒通过驱动马达馈送到打印头,由卷带电机和推进电机来控制牵力。切割机底盘的振动、每次打印的照片数目和每个电机的速度变化都会影响到底层的牵力。控制系统通过两个电机的位置来保证卷带和推进的牵力处于设定范围之内,否则就会有色差。设计的牵力控制硬件需要两个脉宽调制输出来控制电机,两个编码器将转速反馈给电机,两个模拟输入通道连接霍尔传感器用来测量位置,两根数字线用于信令。传统的原型板无法满足这些要求,需要使用可以自定义I/O的原型平台,因此他们使用CompactRIO平台来进行原型化工作。他们在嵌入式控制器中运行管理程序,在FPGA中运行电机控制算法,这种资源配置使得原型化构建和最终系统发布在编程模式上是非常相似的。为了在FPGA中运行控制算法,他们将ZPK(zero-pole-gain)模型转化为LabVIEW数字滤波器设计工具包中提供的一种滤波器,由于这个工具包支持LabVIEW FPGA代码的自动生成和优化,所以原先的ZPK模型就可以直接转化成能够在FPGA上运行的代码。另外,他们还使用这个工具包对原先的浮点算法进行了定点转换,以节约FPGA 资源,并对量化后的模型进行测试、验证、修正从而得到预期的结果。通过这种原型化方式,他们节约了大量的开发时间。
发布到任何32位处理器
LabVIEW包括一个广泛的工具集,该工具集构成了一个用于设计、控制和测试的图形化开发平台。新的NI LabVIEW嵌入式开发模块是LabVIEW图形化编程环境的一款全新附加模块,是一个开放的框架,它可以集成任意的第三方工具链,将生成的C代码与LabVIEW运行库函数和板卡支持程序包,编译成为针对某一目标并能在之上运行的二进制代码。通过LabVIEW嵌入式开发模块和工具链,可以发布到运行任何操作系统的任何的32位处理器。该模块包含了近千个内建的库函数,涵盖了高等算法、文件I/O、逻辑和信号处理各个方面。原先无法利用到嵌入式编程的工程师们都可以进入32位微处理器的领域之中,通过LabVIEW中附加的状态图、控制图表、信号处理库函数等这一完整的工具来设计他们的应用,解决各种问题。此外,通过LabVIEW嵌入式方式 ,工程师和科学家可以使用一种叫做内联C节点(Inline C Node)的新特性,整合现有的嵌入式代码,来保持LabVIEW的开放架构。另外,在LabVIEW嵌入式项目环境中,还可以直接添加用C或者汇编开发的源代码,或者库文件,帮助开发人员充分利用以前的工作成果。
- 基于LabVIEW串口通信的数据采集串口收录系统设计(04-18)
- 基于LabVIEW的心音信号检测系统设计(08-19)
- 基于ARM处理器LPC2142的高速数据采集卡设计(07-18)
- 基于单片机USB接口的数据采集存储电路的设计(09-14)
- 一种单片机虚拟实验室的建立方法(11-04)
- 基于单片机的短样测试数据采集系统的设计(11-04)