为什么要创建功能性原型

为什么要创建功能性原型,第1张

为什么要创建功能性原型呢?对于这个问题,我们首先要从嵌入式应用及其开发方式谈起。

谈到嵌入式系统,其范畴和定义是非常广泛的,我们首先想到的往往是日常使用的手机,mp3,数码相机这些小型的消费电子产品,但是嵌入式系统的范围其实要广泛得多,医院里的心电监视仪,B超设备,核磁共振仪也是嵌入式系统,甚至汽车引擎控制器,智能移动机器人、风力发电机的主控与监测设备都是嵌入式系统。这里我们主要针对的是一些专业领域中,对系统的实时性、确定性、可靠性有较高要求的嵌入式应用。根据其需求和特点,我们把这些应用分为三类,分别是实时控制、比如汽车和航空控制器设计中经常涉及的快速控制原型、硬件在环仿真,还有属于前沿研究领域的移动机器人、无人车、无人机控制等等;第二类是在线监测,比如结构监测,包括建筑和桥梁、公路等基础设施的结构健康监测,地震监测,或者用于设备和机器维护的机器状态监测等等;此外集成的测试与控制也是非常广泛的一类应用,比如一些风洞测试,尽管主要是实时数据采集,但也要做快速计算出是否接近共振条件,从而控制风速以免损坏设备

我们刚才列举了专业领域的一些典型实时与嵌入式应用,这些应用的开发从比较概括的说可以分为两个阶段,阶段一通常由领域专家,比如生物医学、无线通信或汽车工程方面的研发人员,使用文本数学工具进行算法设计、建模、仿真。这一阶段的成果是特定的、达到一定目的的浮点算法。通常这部分的工作以软件平台为主。阶段二的主要任务将算法移植到实时嵌入式硬件平台之中加以实现,这部分任务通常由具有电子工程背景的嵌入式系统的开发人员加以完成,硬件平台常会采用微处理器,微控制器或FPGA,就会牵涉到相关的开发环境比如C或VHDL,甚至汇编。

因此,在这两个阶段之间存在着一个衔接的问题。一方面,从文本数学平台下开发的浮点算法需要移植为能够在嵌入式系统下运行的代码,比如C代码甚至定点算法,这个转换过程的衔接,如果嵌入式系统开发人员对专业领域知识缺乏一定深度的了解和掌握,往往会产生算法移植的偏差,甚至导致返工。另一方面,这样的衔接和移植并不是一次性就能完成的,而且需要多次的循环往复,在阶段二发现算法存在的问题后,需要领域专家修改调整算法,然后再进行重新的移植和系统实现,其工作量可能相当的大。

在这个过程中,系统开发所面临的挑战和需要解决的问题主要包括两方面。对于设计阶段,我们需要在早期阶段就能引入实际数据并在其基础上调整模型,以减少算法移植后的改动,从而减少两个阶段之间的循环往复。对于实现阶段,由于需要用实时系统的编程语言,且确定性执行的编程、调试和验证很困难,而且实际系统往往需要连接到多种传感器接口,因此从离线仿真到实际系统实现之间存在的很大的距离,而且前端设计的变化经常会导致后期的大量返工,导致开发周期的延迟。据《嵌入式软件发展:问题与挑战》(Embedded Software Development: Issues and Challenges, 2003年7月)统计,将近50%的设计投放市场的时间都太晚甚至没有投放市场,而30%的设计在正式发布后都是不成功的。显然,产品设计过程中总会充满着没有预料到的困难。

因此,一种更好的开发方法是在开发流程中引入原型阶段,也就是在开发的早期阶段创建实速运行在系统环境中的设计原型,从而进行系统级快速、高效、可靠的验证。比如说,我们在开发引擎控制器的时候,在进行板级设计完成最终系统之前,先将控制算法下载到一定的硬件平台,并连接到真实的受控对象和各种传感器,在接近实际运行条件的情况下,对算法进行早期、硬件级的评估和验证。

通过引入原型阶段,我们可以在开发早期进行覆盖面更广的测试,及时发现问题,减少后期风险,从而可以从总体上缩短开发时间,降低开发成本,并提高产品和系统的可靠性和质量。

NI的嵌入式硬件平台CompactRIO非常适合进行快速原型,它上面集成了实时的嵌入式处理器和FPGA,可以执行各种算法,同时可以通过自定义选择不同的I/O模块快速为算法添加硬件I/O,从而完成实体原型的建立和测试。除了适合进行原型阶段的开发,NI的图形化系统设计理念可以贯穿设计、原型、发布这个过程的始终。借由图形化系统设计软件LabVIEW,我们可以设计并仿真算法和模型(这是纯软件工作),再在CompactRIO上为算法添加I/O完成原型验证,之后同样的算法不需要进行任何修改就可以通过低成本的Single-Board RIO单板嵌入式平台完成大量发布。

今日,许多世界著名的厂商都把原型设计阶段提升到产品设计过程中非常重要的位置。事实上,除了降低风险和成本、缩短上市周期等优势之外,快速原型也是一个抢的商业先机的手段。通过快速原型,你可以很快地将你的想法在硬件上实现出来,向客户展示并说明最终的功能,这样可以博得客户的信任,有时还能帮助赢得投资。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2716598.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存