|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
为什么要创建功能性原型呢?对于这个问题,我们首先要从嵌入式应用及其开发方式谈起。
谈到嵌入式系统,其范畴和定义是非常广泛的,我们首先想到的往往是日常使用的手机,mp3,数码相机这些小型的消费电子产品,但是嵌入式系统的范围其实要广泛得多,医院里的心电监视仪,B超设备,核磁共振仪也是嵌入式系统,甚至汽车引擎控制器,智能移动机器人、风力发电机的主控与监测设备都是嵌入式系统。这里我们主要针对的是一些专业领域中,对系统的实时性、确定性、可靠性有较高要求的嵌入式应用。根据其需求和特点,我们把这些应用分为三类,分别是实时控制、比如汽车和航空控制器设计中经常涉及的快速控制原型、硬件在环仿真,还有属于前沿研究领域的移动机器人、无人车、无人机控制等等;第二类是在线监测,比如结构监测,包括建筑和桥梁、公路等基础设施的结构健康监测,地震监测,或者用于设备和机器维护的机器状态监测等等;此外集成的测试与控制也是非常广泛的一类应用,比如一些风洞测试,尽管主要是实时数据采集,但也要做快速计算出是否接近共振条件,从而控制风速以免损坏设备
我们刚才列举了专业领域的一些典型实时与嵌入式应用,这些应用的开发从比较概括的说可以分为两个阶段,阶段一通常由领域专家,比如生物医学、无线通信或汽车工程方面的研发人员,使用文本数学工具进行算法设计、建模、仿真。这一阶段的成果是特定的、达到一定目的的浮点算法。通常这部分的工作以软件平台为主。阶段二的主要任务将算法移植到实时嵌入式硬件平台之中加以实现,这部分任务通常由具有电子工程背景的嵌入式系统的开发人员加以完成,硬件平台常会采用微处理器,微控制器或FPGA,就会牵涉到相关的开发环境比如C或VHDL,甚至汇编。
因此,在这两个阶段之间存在着一个衔接的问题。一方面,从文本数学平台下开发的浮点算法需要移植为能够在嵌入式系统下运行的代码,比如C代码甚至定点算法,这个转换过程的衔接,如果嵌入式系统开发人员对专业领域知识缺乏一定深度的了解和掌握,往往会产生算法移植的偏差,甚至导致返工。另一方面,这样的衔接和移植并不是一次性就能完成的,而且需要多次的循环往复,在阶段二发现算法存在的问题后,需要领域专家修改调整算法,然后再进行重新的移植和系统实现,其工作量可能相当的大。
<ignore_js_op>
2010-3-22 10:22:52 上传
<strong>下载附件</strong> (16.08 KB)
</ignore_js_op>
在这个过程中,系统开发所面临的挑战和需要解决的问题主要包括两方面。对于设计阶段,我们需要在早期阶段就能引入实际数据并在其基础上调整模型,以减少算法移植后的改动,从而减少两个阶段之间的循环往复。对于实现阶段,由于需要用实时系统的编程语言,且确定性执行的编程、调试和验证很困难,而且实际系统往往需要连接到多种传感器和接口,因此从离线仿真到实际系统实现之间存在的很大的距离,而且前端设计的变化经常会导致后期的大量返工,导致开发周期的延迟。据《嵌入式软件发展:问题与挑战》(Embedded Software Development: Issues and Challenges, 2003年7月)统计,将近50%的设计投放市场的时间都太晚甚至没有投放市场,而30%的设计在正式发布后都是不成功的。显然,产品设计过程中总会充满着没有预料到的困难。
因此,一种更好的开发方法是在开发流程中引入原型阶段,也就是在开发的早期阶段创建实速运行在系统环境中的设计原型,从而进行系统级快速、高效、可靠的验证。比如说,我们在开发引擎控制器的时候,在进行板级设计完成最终系统之前,先将控制算法下载到一定的硬件平台,并连接到真实的受控对象和各种传感器,在接近实际运行条件的情况下,对算法进行早期、硬件级的评估和验证。
<ignore_js_op>
2010-3-22 10:22:52 上传
<strong>下载附件</strong> (11.53 KB)
</ignore_js_op>
通过引入原型阶段,我们可以在开发早期进行覆盖面更广的测试,及时发现问题,减少后期风险,从而可以从总体上缩短开发时间,降低开发成本,并提高产品和系统的可靠性和质量。
一种更为釜底抽薪的解决方案是将设计和实现这两个阶段的工作移植到统一开发平台之中,即在一个开发平台下集成算法和硬件:一方面,在算法设计阶段引入硬件I/O进行前期的验证,可以在更早阶段发现并修正潜在的错误;另一方面,由于使用同样的开发环境,算法设计的代码可以在原型验证的过程中被重用,从而简化编程的复杂性,降低了对算法设计人员和嵌入式开发人员在系统设计流程中各个步骤的要求。从根本上加快循环递进的过程,从而缩短系统的开发时间。
NI的嵌入式硬件平台CompactRIO非常适合进行快速原型,它上面集成了实时的嵌入式处理器和FPGA,可以执行各种算法,同时可以通过自定义选择不同的I/O模块快速为算法添加硬件I/O,从而完成实体原型的建立和测试。除了适合进行原型阶段的开发,NI的图形化系统设计理念可以贯穿设计、原型、发布这个过程的始终。借由图形化系统设计软件LabVIEW,我们可以设计并仿真算法和模型(这是纯软件工作),再在CompactRIO上为算法添加I/O完成原型验证,之后同样的算法不需要进行任何修改就可以通过低成本的Single-Board RIO单板嵌入式平台完成大量发布。
今日,许多世界著名的厂商都把原型设计阶段提升到产品设计过程中非常重要的位置。事实上,除了降低风险和成本、缩短上市周期等优势之外,快速原型也是一个抢的商业先机的手段。通过快速原型,你可以很快地将你的想法在硬件上实现出来,向客户展示并说明最终的功能,这样可以博得客户的信任,有时还能帮助赢得投资。
要继续原型开发过程的后续步骤,请返回功能原型系统系列。
作者:NI公司应用工程师徐征
NI公司供稿 |
|