电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

MBD下的软件开发模式资料

  • 资源ID:93297881       资源大小:162KB        全文页数:6页
  • 资源格式: DOC        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

MBD下的软件开发模式资料

MBD模式下的软件开发流程介绍王淳(联创汽车电子有限公司,上海 浦东 201203)【摘要】以模型为基础的软件开发,我们称之为MBD(Model-Based Design)。和传统的嵌入式软件开发模式相比,MBD模式无疑是一个巨大的进步,肯定会在今后几年内普及,并完全代替现有嵌入式软件的开发模式。【主题词】MBD,软件开发流程及工具,MIL,SIL,PIL,HIL一、变革的力量:上次的变革:90年代,国内嵌入式软件开发还停留在汇编语言的层次,汇编语言虽然灵活、效率高,但是在处理浮点计算、复杂逻辑运算等问题上,软件开发的工作量相当大。而同期国外已经大面积普及了以C语言为基础的嵌入式系统开发流程。当年很多程序员对于C编译器的正确性、可靠性、效率还都抱有过怀疑的态度,但是随着keil、tasking等公司不断推出的优质的C编译器,这种疑虑很快被打消。C代码不需要程序员关心浮点算法;对复杂逻辑的设计也很方便;而且针对于嵌入系统硬件资源有限的情况,很多专用的C编译器都提供各种优化选项;通过对堆栈的灵活运用,解决了RAM空间不足的问题;代码的可移植性、可继承性也远强于汇编语言。短短几年时间,C语言编程在国内嵌入式系统的开发中已经普及。先进工具可以大大提高劳动生产率,这一点在这次变革中体现的非常明显。现在的革命:而基于模型进行嵌入式系统开发流程,其优越性以及对传统开发方式的颠覆,一点也不比当年的变革小。对于嵌入式系统开发而言,存在以下一些具体的问题:l 现在嵌入式系统的复杂程度,比起几年前又上了一个台阶,传统C语言开发采用流程图的辅助设计方式,已经很难表达复杂的程序逻辑;l 以手工编写C代码,还是会出现很多低级错误;l 现在的系统开发周期越来越短,再沿用过去那种硬件设计->软件设计->集成调试的流程,无法开展硬件和软件的并行开发;l 随着系统复杂性的增加,用户对最终功能的确定也越来越模糊,很多情况下,用户都需要在得到样机后,才能开展测试,并提出修改意见,从而导致开发的反复,大大增加了开发成本和时间。l 虽然C代码已经在各个嵌入平台上普及,但是因为代码设计者设计思路的局限,加之传统流程图的单线设计思路,软件模块的可继承性还是比较差。国外的企业已经从90年代后期,逐步开始采用MBD开发流程,使用建模工具对复杂嵌入式系统进行分析设计。随着建模工具及配套设备的完善,使得自动代码生成的工具链也逐渐清晰。现在已经有很多极复杂系统,如电喷控制器等等,全部采用了MBD的设计流程。MBD工具链的可靠性、稳定性已经无需怀疑。l 以建模工具对复杂逻辑进行设计、分析、仿真,使得系统需求分析和软硬件开发结合得更加紧密,系统分析不再仅仅停留在文档阶段,而是直接和设计挂钩。l 采用了MBD的设计流程后,在硬件设计的同时,软件设计即可全面展开,大大缩短了开发周期。l 从软件开发的第一步开始,工程师就可以观察结果,调试逻辑,大大加快调试进度。l 采用成熟工具,可以实现代码自动生成,完全避免了手工编码的低级错误。并且在设计修改后,极短时间内即可重建系统软件,而无需进行多次反复测试。l 采用建模工具及辅助设备,可以在模型建立后,立即实现快速原型仿真,用户马上可以看到设计运行的结果,工具可以协助用户及时修改需求,在最短的时间内完善需求设计。l 模型的可移植性,远强于C代码,可以方便的建立公司内的系统设计模型库,节约开发成本。二、MBD开发流程的环节和作用:2.1 系统设计定义阶段系统设计定义阶段的目的是:针对用户提出的初步需求,逐步细分,将功能需求拆解为可实现功能定义,并且建立系统级模型,包括控制器模型(controller)、被控对象模型(plant)、测试案例模型(reference position)。其中,测试用案例模型和被控对象模型,是系统设计工程师根据用户需求设计的。在整个开发流程中会多次使用,也是系统设计定义阶段重点关注的内容。系统设计定义环节本身也将在整个设计流程中反复迭代,用户需求会在不同的阶段逐步完善,这些修改最终都需要反馈到系统设计定义中,主要是反馈至测试用案例模型中。控制器模型也在系统设计定义阶段直接输出,这样后续的工作都可以在统一的模型上完成,而不需要在代码、模型、文档之间频繁切换,一方面可以节约时间,一方面可以始终得到最准确的需求文档。控制器模型的详细设计可以由后续的环节完成,在系统设计定义阶段可以只定义为顶层模型。不必细究。系统设计定义阶段,建议使用MATLAB提供的Simulink Verification and Validation(V&V)工具,使用这个模块,可以将需求与模型关联起来,通过Signal Builder(Simulink Library Browser->Sources->Signal Builder)来设计测试案例,通过V&V工具,对模型执行覆盖度分析;也可以用工具(Design Verifier)自动为模型生成符合模型覆盖度要求的测试用例。这种测试用例和需求文档(doors),可以做一一对应的关联。2.2 模型设计阶段在MBD开发流程中,模型设计阶段的主要工作就是设计控制器模型,根据系统需求的要求,采用MIL技术,对控制器的控制逻辑进行细化。细化的过程从顶层模型开始,直接使用系统设计定义阶段设计的案例模型和被控对象模型,对细化后的控制器模型进行仿真测试,这个步骤就是MIL(Model In Loop)模型在环仿真。MIL的最终结果,是得到一个可以实现所有控制逻辑的控制器模型,这个模型可以不必关系具体的硬件接口,因为被控对象模型及案例激励都是以模型形式存在的,整个环路的仿真可以直接在MATLAB环境下运行。模型设计阶段的目的是:算法设计,完成算法有效性检验;比例扩放设计,溢出检测,为后续定点化取得基础数据;用例跟踪,对测试用例的结果进行记录,并反馈不合理值,修改系统设计定义。模型设计阶段,整个模型都以浮点运行,所以保证了计算的精度和合理的取值范围。建议使用第三方提供的RCP工具,如dSpace公司的AUTOBOX等,对MIL的结果进行实际验证。这类工具不需进行模型定点化,硬件IO定制也非常简单,可很方便地将模型下载运行。通过简单电路调整,即能直接控制被控对象。在RCP工具的帮助下,软件设计阶段时用户已经能够参与系统开发,直观地看到系统运行的结果,并及时地修改完善系统需求。2.3 C代码生成及调试阶段在模型开发完毕后,需要将PC机上运行的浮点模型,转换为可以在定制嵌入CPU上运行的模型代码,考虑到现阶段嵌入式CPU的资源还不够丰富,系统开发对成本的限制需求等等,直接在CPU上进行浮点运算的方案还是比较少。C代码生成及调试阶段,要通过SIL(software in Loop),对模型进行定点化验证。所谓SIL,就是在保证代码效率、兼顾计算精度和数据表达范围的情况下,采用auto scaling等技术,将模型进行定点化。然后用自动代码生成工具,把模型转换为标准C代码,再将C代码封装为可以在MATLAB环境中执行的模块,代替原有浮点模型,进行软件在环仿真。浮点运算和定点运算在精度和数据表达范围上存在巨大差异,不进行验证直接转换模型肯定会带来无法估量的误差;MATLAB模型中,如果不加强制限制,各个模块的计算顺序是由MATLAB自己设定的,可能和工程师的看法完全不同;而在MATLAB的模型内,对各个环节的算法,是以MATLAB自己的M语言、库函数、采样周期、时序结构来进行的,其计算步长可能是变化的,而这些都和实际嵌入式C代码存在很大差异(由简单的积分环节组成的常微分方程,在MATLAB中可能采用龙格库塔法等迭代算法进行计算,而在普通嵌入式C代码中,总是对一个个的积分进行累加计算),这种算法上的差异,也会导致最终结果的完全不同,这也是必须要进行SIL仿真的原因。这个阶段非常关键,也是国内走MBD路线进行嵌入式系统软件开发时比较容易忽略的一环。正常情况下,设计一个可以正确运行的模型并不难,但是要进入工程设计,将模型转换为实际的嵌入式C代码,就必须按部就班地完成以上步骤。在SIL环节,采用自动代码生成工具,将控制器模型转换为标准C代码,算法和时序都可以由工程师确定,再将模型生成的C代码(仅限于控制逻辑部分,IO部分暂不包括),以S函数的方式(或其他方式)封装为模块,这种模块可以直接在MATLAB里运行,其内部运行机制取决于C代码本身。然后再取代原模型中的控制器模型,联合测试用案例模型和被控对象模型,进行仿真。这一步目的是为了检查定点化以后代码的计算精度、算法是否合理、是否产生溢出等,然后及时修改原模型,反复进行SIL仿真后,保证模型定点化的正确性。C代码生成及调试阶段,建议使用MATLAB内自带的RTW,或者dSpace公司的TargetLink等工具。2.4 硬件代码生成调试阶段在这个阶段,硬件设计必须已经完成。所谓PIL,就是将经过SIL设计的模型,在工具的协助下,生成可以在指定CPU上运行的嵌入式C代码,并下载至指定CPU的DEMO板上直接运行,通过数据接口,和MATLAB上的测试用案例模型及被控对象模型进行数据交互,进一步验证代码准确性。因为SIL环节的C代码是在INTEL系列CPU的PC机上运行的,虽然C代码的正确性得到了验证,但是如果转换为汇编机器码,INTEL芯片代码和我们嵌入式系统的指定芯片的代码还是有差别的。进行PIL的目的就是为了检验这两种代码间差异是否可以接受。同时,在PIL环节,模型生成的嵌入式C代码直接在指定CPU上运行,模型逻辑控制部分的代码和最终实际运行的代码完全一致,并且运行环境也大体相当,可以对代码时序的精确性进行进一步验证。PIL的技术过程是,建模工具提供接口,通过串口之类的通道,和下载到DEMO板上的控制逻辑代码进行交互,把测试用例模型的输出数据下载到DEMO板,把控制逻辑代码的计算结果返回到被控对象模型,形成一个完整的闭环仿真。PIL需要有特殊硬件支持,部分芯片可能无法进行PIL环节仿真。接下来需要把经过SIL、PIL验证的模型,生成特定CPU的机器码,再加入部分和硬件相关的IO驱动代码,一起编译,下载至我们自己设计的硬件运行。主要目的,是将自动生成的代码将和硬件一起联调,解决IO驱动和模型代码之间的接口问题,并形成稳定的IO驱动代码库,保证后续修改模型时,不用再次修改底层驱动。这个阶段建议使用RTW及TargetLink,以及专用的C编译器、PIL仿真用DEMO板。2.5 硬件在环HIL(hardware in Loop),是指控制器采用实际硬件,加上由模型生成的C代码(也许有部分手工设计的底层驱动程序)。而被控对象,可以由模型仿真实现。这个步骤主要是针对那些被控对象复杂、实验费用高昂、有着繁琐测试逻辑的系统设计而言。在这类系统中,采用模型仿真被控对象,可以大大加快实验进度,覆盖诊断案例(如发动机飞车处理等)。如果被控对象简单,可以不用软件进行仿真,而采用labcar之类的实物直接验证。HIL阶段,可以发现设计中被忽略的问题,如实际线缆的干扰、人工输入的错误等等,将这类问题及处理方法需要及时反馈到测试用例、被控对象模型、控制器模型中,进一步完善系统设计定义。硬件在环阶段,建议使用labcar或者AUTOBOX之类工具,模拟实际被控对象,自动测试、自动记录,对控制逻辑进行覆盖性测试。2.6 实车测试实车测试阶段和传统开发流程的实车测试阶段并无区别,只是在发现问题后,需要返回对系统定义设计阶段的相关模型进行修改,并在控制器模型的基础上,修改控制策略,解决问题,经过仿真迭代后再回到实车测试。这样可以保证模型的正确性,代码和模型的统一。三、总结语在整个设计开发流

注意事项

本文(MBD下的软件开发模式资料)为本站会员(w****i)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.