DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1430|回复: 0
打印 上一主题 下一主题

[待整理] 基于NI LabVIEW 2010和NI RIO构建精确定时的嵌入式系统

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-28 10:36:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1、介绍
          在构建嵌入式系统时,不论是为了确保控制循环能够可 靠的执行,还是保证I/O信号能够被及时响应,或是让处理速度达到系统应用的要求,定时都是其中的关键。构建一套可以满足定时要求的系统,首先从硬件开始 进行选择,必须在尺寸、功耗、处理能力和延迟等方面进行很好的平衡。另外,嵌入式系统的软件在执行调节、中断响应和计算任务之间的时间平衡几个方面扮演着 重要的角色。
           
          在考虑定时性能的前提下进行嵌入式软硬件集成将是一件极其耗时的挑战。但是,在NI LAbVIEW 2010软件平台和RIO硬件平台的帮助下,构建一套可以满足绝大部分系统应用需求的可靠的精确定时系统所需要付出的代价将极大降低。继续深入下去,了解 集成了实时CPU和FPGA的NI RIO硬件系统,以及定时特性是如何与LabVIEW 2010无缝集成的,可以帮助工程师、科学家和嵌入式设计人员们利用这套硬件系统构建出健壮的实时响应系统。
           
          2、集成实时CPU和高性能FPGA的NI RIO硬件
          NI 嵌入式硬件的目标系统是基于RIO架构的,包括了一个一般用于运行实时操作系统的CPU和一套或多套FPGA。在这样的集成架构下,用户可以在FPGA上 完成那些需要纳秒级定时精度或者大量并行的任务;在CPU上完成诸如浮点计算等密集计算任务。FPGA和CPU之间通过PCI总线进行通信,通过NI- RIO驱动模块提供的直接明了、功能强大的数据传输接口, 使用LabVIEW或C可以很容易的进行相关开发。
           
          最终的结论是:NI-RIO 是可以适用于范围广泛的嵌入式原型设计,并且具有很高灵活性的平台。同时,由于NI-RIO框架是很多不同NI硬件目标系统的标准架构,例如NI Single-Board RIO和NI CompactRIO,用户在部署软件时,不论是坚固型系统还是经济型系统,都可以最大限度地实现代码的复用。
           
       

        图1. NI-RIO嵌入式设备均基于集成了CPU、FPGA和模块化I/O的统一架构

         

          例如,Ventura市航空中心使用LabVIEW和NI Single-Board RIO开发了一套火情监控系统,用于在联邦快递公司的运输机上防控火灾。在这套系统中,实时CPU负责运行确定性控制算法、网络通讯和数据记录,FPGA硬件上则执行其他的关键任务。
           
          3、LabVIEW 2010和内置的定时特性简化了确定性可靠系统的编程
          LabVIEW 不单可以使用图形化的编程界面来编写目标CPU(包括了运行实时操作系统的CPU)和FPGA(包括RIO目标硬件上的FPGA)程序,同时 LabVIEW图形化编程语言本身也是基于定时和同步概念而设计的。下面的一些例子将说明,LabVIEW结合Real-Time模块和FPGA模块是如 何让嵌入式系统的定时变得简洁明了的。
           
          4、LabVIEW Real-Time模块集成的定时特性
          使用Real-Time模块和Timed Loop进行确定性的闭环系统编程
          LabVIEW 2010 Real-Time模块把LabVIEW图形化编程扩展到了NI实时硬件系统(包括RIO设备)特定的第三方PC上。根据使用的目标硬件不 同,LabVIEW Real-Time模块会自动在目标硬件上部署与标准的VxWorks或ETS实时操作系统相对应的组件,以保证确定性和精确的实时性。
           
          当 使用LabVIEW Real-Time模块进行闭环控制系统的编程时,通过使用Timed Loop,只需要轻点几下鼠标,就可以实现周期性执行代码,硬件控制循环速率同步,定义多种循环执行优先级,甚至可以指定某一循环在某一个CPU内核上执 行。另外,用户还可以选择KHz、MHz或者自定义的外部时钟来作为循环定时的基准时钟。
           
       

        图2. LabVIEW Timed Loop可以让用户通过简洁明了的方式实现配置循环定时、通过硬件I/O进行同步、控制实时代码执行优先级、指定代码执行CPU内核等

           
          在多系统间实现Timed Loop的同步
          在 使用LabVIEW Real-Time模块编程的嵌入式硬件设备上,用户可以使用IEEE 1588同步协议进行多系统间的同步,以保证给定的任务在多系统上是同步执行的。根据用户使用的硬件设备不同,IEEE 1588同步协议可以通过软件、硬件或者软硬结合这几种不同方式来实现。
           
          使用LabVIEW Real-Time模块实现多硬件设备间的软件同步,将Timed Loop设置为使用绝对时间源即可。在设置好Timed-Loop后,只需要再连接一个起始时间戳,然后选择运行,就可以在多硬件设备间同时开始循环的执行。
           
       

         

        图3. 用户可以使用LabVIEW Timed-Loop来实现IEEE 1588同步协议,在多个分布式的嵌入式设备中实现同步控制(上图为NI CompactRIO)

         
          使用NI Real-Time执行跟踪工具包进行定时的细节分析
          在LabVIEW Real-Time模块下使用Real-Time执行跟踪工具包,可以获取线程和子VI的执行时间、优先级、继承关系等多种详细信息。通过这套工具包,不 但可以帮助用户优化实时程序的执行情况,更可以帮助用户发现诸如优先级设置不当、资源竞争等潜在的不稳定因素。
           
          在实时硬件上确定性的运行m文件
          如 果已经有了现成的m文件,用户可以通过LabVIEW MathScript RT模块,在使用LabVIEW Real-Time模块编程的嵌入式系统中使用这些代码。这种方式从根本上改变了以往从m文件到实时硬件代码的复杂而繁琐的迁移过程,使其变得简洁而迅 速。只需要将用户的m文件通过MathScript节点嵌入到LabVIEW图形代码中,再在LabVIEW项目中将其拖放到实时硬件上,整个迁移过程就 完成了。
           
          5、LabVIEW FPGA模块内置的定时特性
          使用单周期定时循环优化FPGA程序
          LabVIEW 2010 FPGA模块中的单周期定时循环移除了循环内部的寄存器,用户可以在其中最优化地运行与之相兼容的代码。这项措施可以使那些需要在硬件上可靠运行的关键操 作达到最高40MHz的循环速率。另外,在单周期定时循环内执行的代码占用的FPGA资源更少,从而可以节省出更多的资源给其他的任务。
           
       

        图4. LabVIEW FPGA模块中的单周期定时循环可以让用户的这部分代码达到最高40MHz的循环速率

         

          使用循环定时器来调整FPGA代码的执行
          想 要在FPGA上周期性地执行操作其实很简单,只需要在LabVIEW FPGA的代码框图里添加一个循环,然后在其中放置一个循环定时器就可以了。循环定时器的定时控制可以根据需要选择循环周期为纳秒级、微秒级或者毫秒级的 不同硬件时钟作为定时基准。在默认的40MHz时钟速率下,循环定时器可以实现25ns整数倍的定时周期。
           
          通过中断对实时程序和FPGA程序的定时进行同步
          在 FPGA硬件系统中,用户可以在FPGA程序中产生中断,通知实时程序各种事件的发生,例如数据采集完毕,发生错误,任务已经完成等等。使用 LabVIEW FPGA模块中的相关中断函数结合LabVIEW Real-Time模块中的Wait on Interrupt方法,用户可以实现整个嵌入式系统中CPU和FPGA之间的同步。一个系统中最多能够使用32个中断。
           
          使用关键路径高亮帮助确定系统瓶颈
          在开发过程中,确定和修正时序错误的FPGA代码是一件耗时费力的事情。为了简化这一过程,可以使用LabVIEW FPGA模块的关键路径高亮功能来突出关键路径上的每一步操作,迅速跳转到出现瓶颈的代码部分,编写更高效的代码或者流水线来对瓶颈进行修正。
       

        图5. LabVIEW FPGA模块的关键路径高亮功能可以帮助用户迅速确定FPGA程序中的瓶颈所在

           
          6、在您的下一次嵌入式原型或设计中使用LabVIEW和NI RIO
          NI RIO硬件设备和LabVIEW由于其短周期高可靠的开发特性,已经在数以千计的嵌入式原型或工程产品中得到成功应用。当您在计划下一次的嵌入式设计时, 请考虑这样一套功能强大、扩展性强的成熟系统为您所带来的时间和金钱成本上的节省,以及LabVIEW的图形化编程、内置的定时特性以及数以百计的IP内 核帮助您缩短的开发周期。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-24 03:34 , 耗时 0.102550 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表