基于模型的设计及其嵌入式开发

文章讨论了传统嵌入式电控系统开发的局限性,如需求理解偏差、设计复杂性、手动编码错误等,并介绍了基于模型设计的解决方案,包括使用MATLAB/Simulink进行建模、自动生成代码和持续测试验证,以提高开发效率和产品质量。
摘要由CSDN通过智能技术生成

嵌入式电控系统产品已深入到现代汽车开发的方方面面,同时,人们对于汽车电子电控产品的安全性、实时性、可操作性、功能安全等要求也越来越高,这也就大大增加了嵌入式系统的复杂性和开发难度。为了在日趋激烈的市场竞争中占据有利地位、开发出高质量的产品,采用传统的项目开发方法已很难满足这些需求。

传统项目开发的方法一般分为4个步骤: 

①需求分析与技术规范阶段。

一般用纸质文档或电子文档写成,系统工程师团队以此进行概念和算法研究,评估技术规范的可行性。对于厚厚的技术文档,每个系统工程师对需求和技术规范的理解难免存在偏差。NASA的研究报告指出:“在需求分析阶段产生的错误占整个开发错误的50%以上”,这给后期的项目开发带来了诸多隐患。

②设计阶段。

硬件开发工程师团队根据系统工程师的评估报告,设计制作原型样机,项目的前期投入巨大、开发周期长,并且不能保证所制作的原型样机一定能满 足技术规范要求的技术指标。

③实现阶段。

软件开发工程师团队根据需求与技术规范,在原型样机上,手工编写C代码或汇编代码,实现技术规范所要求的技术指标。这一阶段需要精通软件的编程人员花费大量时间来编制程序、查错、调试、验证,明显增加了工作量,延长了研制周期。此外,手工编制的代码良莠不齐,降低了软件运行的可靠度,增加了代码错误的可能性,给新产品上市带来风险。

④测试与验证阶段。

原型样机制造完成后,才能对产品进行测试与验证,只要上述任何一个过程出现偏差都会导致产品开发的失败,这也是传统项目开发最大的弊病。因此,传统的项目开发方法难免重复多次才能成功,开发风险巨大。

为了解决这些问题,工程师必须找到一种更快速度、更有效率的开发产品的方法,基于模型的设计就是解决该问题的一种选择。它始于20世纪90年代初的汽车制造和航空航天工 业,这些行业需要使用大量的微处理器单元,因此工程师们最先发现了采用建模与仿真的方法来开发嵌入式系统的巨大优势;到了90年代中期,控制算法仿真技术的发展催生了自动代码生成技术。模型仿真和自动代码生成技术在这些行业得到的成功应用,使人们清楚地认识到它在嵌入式系统开发中的经济和高效。基于模型的设计为工程师们提供了一种通用的开发与测试平台,使具有不同工程背景的工程师之间建立起更好的联系,使开发具有高集成度的复杂系统成为可能。

MATLAB已经成为一种近乎完美的高度集成化的开放式开发平台,在科学计算与建模方面处于不可替代的领先地位,加之其拥有国内众多的用户。Simulink/Stateflow/Embedded等工具使得工程师可以在一个可视化的交互开发测试平台上进行基于模型的设计,工程师还可以利用直观的模块图对系统模型和子系统设计进行可视化处理。

基于模型的设计对应传统项目开发的方法同样分为4个步骤:

①可执行、可跟踪的技术规范。

在基于模型的设计方法中,系统工程师首先要建立一个系统模型,即通过数学模型来精确、无歧义地描述用户的需求,创建一个可执行、可跟踪的技术规范。工程师可以通过这个系统模型,动态地确认系统性能。相对于用传统的纸质或电子文档来描述的需求与技术规范,这种方法具有明显的优势,它使得开发团队中的每个成员都能够无歧义地理解并运行该模型,从而可以更加专注于开发主要模型的各个部分,不会因理解的不同而造成需求的丢失、冗余或冲突。

②生成定点模型。

系统模型与需求之间可建立双向链接,在整个开发过程中,软件工程师可以对模型进行需求追踪和测试,将产品的缺点暴露在产品开发的初期。根据具体的嵌入式器件和实现条件,对系统模型进行细化与功能重分区;此后重新进行系统测试、设计测试和模型助手测试,验证是否满足需求与技术规范,判断是否还存在缺失的需求,验证是否符合特殊的行业标准;之后再对模型做定点转换,形成简捷、高效的定点模型。

③嵌入式代码的自动生成。

Embedded Coder可以将Simulink/Stateflow中的模型自动转换为嵌入式C代码,大大降低嵌入式系统的开发门槛。开发人员可以在Simulink/Stateflow、Embedded MATLAB中建立系统模型、构思解决方案,然后自动生成优化的、可移植的、自定义的产品级C代码,并根据特定的目标配置自动生成嵌入式系统实时应用程序。这样就缩短了开发周期,同时避免了人为引入的错误。

④连续的测试和验证。

基于模型的设计在整个设计过程中都在不断地进行测试和验证,工程师利用测试用例追踪系统级模型和需求,检测设计变更导致的系统输出变化,并快速追踪到变更的来源;通过测试用例还能够了解系统模型的功能覆盖度。对于嵌入式系统,还需测试其实时性,工程师可以使用硬件在环测试检测嵌入式代码的实时性。通过测试,可以收集实时数据,修改代码参数。硬件在环检测能确保在开发早期就完成嵌入式软件的测试,这样在系统整合时,嵌入式软件测试就可以比传统方法检测得更彻底、更全面,从而可以及早地发现问题,大大降低解决问题的成本。

-----------------------------

文章来源:智能运载装备研究所

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值