嵌入式软件模型化开发.doc

上传人:m**** 文档编号:545975235 上传时间:2023-02-07 格式:DOC 页数:6 大小:65.47KB
返回 下载 相关 举报
嵌入式软件模型化开发.doc_第1页
第1页 / 共6页
嵌入式软件模型化开发.doc_第2页
第2页 / 共6页
嵌入式软件模型化开发.doc_第3页
第3页 / 共6页
嵌入式软件模型化开发.doc_第4页
第4页 / 共6页
嵌入式软件模型化开发.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《嵌入式软件模型化开发.doc》由会员分享,可在线阅读,更多相关《嵌入式软件模型化开发.doc(6页珍藏版)》请在金锄头文库上搜索。

1、嵌入式软件模型化开发 随着现今社会的进步和发展,嵌入式系统开发经逐步面临着市场需求多样性与开发实现快速性之间的矛盾。然而传统的嵌入式系统开发模式,从需求分析、设计、实现到测试的顺序开发过程中由于开发环节较多、中间文档较多,常导致各开发环节之间的衔接存在很大的不确定性和潜在的遗漏危机,一旦在最终实现和测试阶段出现了明显的错误或是需求不满足的情况,则无法进行跨越阶段的重复设计,只能从头开始设计和实现,这样将无法满足市场对产品开发周期的快速性需求,使嵌入式系统开发陷入设计瓶颈。目前,依靠手工编程的设计流程已经很难胜任新的开发需求,而且通过手工编写的代码容易产生程序缺陷。查找和解决这些问题不仅要花费大

2、量的人力和时间,有时甚至会导致软件的重新开发。特别是在对安全系数要求较高产品上,出现程序缺陷会直接关系到人身安全。因此,近几年汽车电子行业的一些龙头企业已经通过代码自动生成的方法逐步取代了传统开发模式下的手工编程,收到了良好的效果1,这就是模型化的嵌入式软件开发方法。一、基于模型的设计方法1.1基于模型设计思想简介基于模型的设计(Model Based Design),就是在系统的设计过程之中,所有信息传递、工作的核心与基础都是若干模型,所有工程师都利用同一的模型完成自己关注的开发任务。如今基于模型的设计思想已经被大家广泛的认可,基于模型的设计流程使用的是框图化开发环境,系统开发工程师在这个环

3、境中构建嵌入式系统的可执行模型。1.2 传统设计方法与基于模型设计方法的对比1 传统设计方法的缺陷传统的开发手段是自顶向下、逐步细化的“瀑布式”开发手段,如图1所示。软件工程师以手工编程方式实现控制逻辑控制逻辑根据目标需求设计系统结构将程序代码固化于硬件电路中硬件工程师设计并制造硬件电路对产品进行测试和验证系统工程师设计控制方案图1嵌入式系统传统设计方法在传统的设计过程中,不同类型的工程师彼此交换自己的设计成果,逐步细化设计任务,直到完成最后的产品。这种自顶向下的开发流程具有快速便捷、易于实现的特点。但是,随着嵌入式系统本身复杂程度的增加以及设计研发周期缩短和市场的压力等诸多原因,传统的设计开

4、发手段逐渐暴露出许多问题。首先在传统的开发手段中,在不同阶段彼此之间传递的信息需要依赖文档,例如需求分析报告、系统详细设计规范、设计任务书、设计报告等。由于工程人员总会存在针对文字理解的二义性问题,因此即便是文档本身没有错误,可能也会由于理解上的误差而引起系统设计、实现的错误。其次,由于设计的嵌入式软件算法需要有专门的硬件生产出来之后才能够进行测试,因此,一些设计错误要在软/硬件产品都具备之后才能够进行集成与测试。但是这时发现错误就很难找出错误的原因,既有可能需要重新编写软件,甚至由于产品的更新换代造成整个计划的取消2。这个问题很难从根本上避免。在传统的设计手段中,整个程序都是利用手工编写的。

5、使得系统的开发必须面对程序缺陷不断严重的现实,甚至程序缺陷还未解决,产品就已经更新换代。再次,无法做到所有开发人员都有同样的责任心,无法避免开发人员出错的可能性,最系统维护时也会遇到很大的困难。2 基于模型设计方法的优势在基于模型的系统设计过程中,执行不同设计任务的工程师彼此在统一的环境下完成开发工作,在他们之间传递的不仅仅是设计文档,还包含系统模型。当需要具体实现产品或者进行集成测试时,只要通过自动代码生成就可以迅速地完成代码生成、硬件实时仿真与测试,避免了大量的手写代码工作。这种方法主要解决了传统设计手段中手写规范文档、测试工作在后期阶段的主要问题。模型工具选择Mathworks 公司推出

6、的Simulink/Stateflow 可视化建模环境,为嵌入式系统的控制逻辑关系提供了一个平台及开发流程。通过加入可视化图形设计、快速原型化、迭代设计、系统仿真等众多新的元素,并在传统的顺序开发基础上提出了基于模型的设计流程和V 字型软件开发模式,如图2所示。反馈问题,更新需求开发产品客户需求分析 Simulink/Stateflow建模实车检测对模型进行仿真测试软件ECU在环根据模型自动生成代码并开发硬件电路图2 基于模型设计的控制系统开发流程图2是基于模型设计的控制系统开发流程,其符合经典V型控制系统开发流程的各个阶段。首先根据客户需求分析,利用Simulink及Stateflow工具进

7、行目标模型和控制算法的初步建立。建立模型后,在Simulink环境下对目标模型及控制算法进行离线仿真测试,测试通过后利用RTWEC工具箱自动对控制逻辑生成代码。然后手工编写或用微控制器自带的工具生成与微控制器直接相关的底层控制驱动代码,经过规范有效的代码整合,供相应微处理器下载使用3。接下来就可以用下载了目标程序的ECU,利用硬件在环实时仿真环境,进行软件(ECU)在环测试,为实车测试做准备。最终实现产品开发,完成嵌入式控制软件的开发。二、基于模型的嵌入式系统软件设计方法研究2.1基于模型的嵌入式系统软件开发流程图3 基于模型的开发方式根据目标需求建立可执行模型,在代码自动生成之前进行全模块仿

8、真,使用RTWEmbedded Coder 进行代码自动生成,用一个标准的软件体系结构进行代码整合。在需求分析阶段,需要根据产品的需求定义所需要完成的工作,以及工作结果需要满足的某种特性要求,并且分析出为了满足这些需求分别需要完成哪些工作,工作的步骤以及不同工作阶段的产出与验收手段等。在分析了客户需求后就可以开始在Simulink 环境下建立模型,模型的建立框架主要分为三大部分:信号输入部分,逻辑控制部分和信号输出部分。模型建立好后需要对模型进行仿真、验证,仿真测试通过后使用RTWEC 进行代码自动生成。然后用一种标准的形式将手写的底层驱动代码与自动生成的代码进行代码整合。最后将整合好的代码固

9、化于微控制器中。2.2控制算法的建模与仿真为了实现基于模型的嵌入式系统开发方法,首先要建立ECU 仿真模型,在后续开发流程中所有环节都是围绕模型进行的。1 建模工具的选择在进行基于模型的设计过程中,建模是一个重要环节。因为只有正确的模型才能够成为正确的设计规范,才能得到正确的代码。建模环节需要选择合适的建模工具。目前在世界范围内,系统的建模仿真都广泛采用了Mathworks 公司开发的Simulink平台。Simulink 平台提供丰富的功能模块,可以快捷地创建系统的模型4。在模型建好后,即可运行模型以实现离线仿真,通过系统的各种输出来验证系统模型的性能或是控制算法的效果,然后根据预期目标来测

10、试模型或控制算法的效果,然后根据预期目标来对模型或控制算法进行参数优化。此外,通过Simulink 设计的系统模型可以通过Simulink 中的RTWEC 工具箱为控制器生成代码,交叉编译,连接并固化到目标处理器上,进行硬件在环仿真。对控制逻辑部分的建模采用了Stateflow 工具箱。Stateflow 是Simulink 平台上的图形化设计与开发工具,主要用于针对控制系统中的复杂控制逻辑进行建模与仿真。利用Stateflow 可视化的模型和直观的仿真能力,可以清晰、简洁地反映出复杂动态逻辑关系。Stateflow 的基础是有限状态机理论,它通过对状态图、流程图的创建,对事件驱动系统进行建模

11、和仿真。2 信号输入部分建模信号输入部分的建模是通过Simulink 平台上Sorrces 模块库中的各个模块来建立的。常用来搭建模型的有Constant 模块、Pulse Generator 模块、Signal Builder 模块、Step模块等。其中Signal Builder 模块可以创建产生多组信号。3 控制算法建模状态的标签一般可以由三个部分组成:状态名称Name;相应的状态动作State Action;注释部分 /*/。4 信号输出部分建模信号输出部分的建模是通过Simulink 平台上Sinks 模块库中的各个模块来建立的。常用来搭建模型的有Display 模块、Scope 模

12、块、ToWorkspace 模块等。其中Scope模块把信号按照时间的顺序在二维坐标轴上显示出来。5 模型的仿真在嵌入式系统开发过程中,验证设备和控制器在整个系统行为范围内能够正确运行的理想方法是,用实际设备进行测试。但是这种系统级的测试一般在产品开发过程的晚期进行,这时已经建立原型硬件,解决开发周期这一阶段所发现问题的成本非常昂贵。因此,使用系统仿真在系统开发的早期进行测试来发现和解决问题是解决方案。采用基于模型的设计方法,在软件的开发中的每一个流程都可以进行测试。模型仿真测试是控制系统设计过程的组成部分,根据目标需求建立系统模型后,为了保证模型可靠有效,还必须使用基于时间或基于事件的仿真分

13、析方法,来验证模型的准确性和完整性5。这样在系统开发的初级阶段就可以发现控制逻辑的设计缺陷,最大程度的减少带到实验现场的出错率。这也为后序的自动代码生成的质量提供了可靠依据。2.3控制逻辑模型自动代码生成在基于模型的嵌入式系统开发方法中,自动代码生成是不可缺少的环节。只有从控制模型自动生成ECU中运行的控制代码,才有可能实现开发过程中快速迭代。自动代码生成,指生成程序的程序,更详细的是指通过读取工程中的文本或模型,按照指定的设计模式,遵照一定的领域规则,生成规范的计算机能理解的代码的过程。RTWEC(Real-Time Workshop Embedded Coder)是专门针对嵌入式系统的代码

14、自动生成工具,它可以将Simulink 平台上建立的模型生成标准的C 代码,并且所生成的代码结构紧凑,运行效率较高16。RTWEC 是Mathworks 公司在原有RTW 工具的基础上推出了更加完善的实时工作间嵌入式代码生成器(RTWEC)开发环境,实现了产品级码的自动生成和测试,加速了从快速原型化到产品化的过渡,增加了针对配置复杂的内嵌系统至关重要的软件工程方面的内容。使用RTWEC 可以方便地定制,测试以及修改代码,而这些工作都可以在Simulink 环境下完成6。用户在使用RTWEC 工具中定制的嵌入式目标来对系统模型进行自动代码生成工作时,实际是对RTW 环境执行构建操作,该构建操作需

15、要用户预先对参数进行配置(这些参数用于描述和存储模型及生成代码的相关信息),然后通过中间文件的方式将模型信息及配置参数传入TLC(Target Language Compiler 目标语言编译器)环境中进行自动代码生成,并且通过默认的文件来进行流程控制,可以实现对生成代码的控制、对HTML 代码报告的控制及对交叉开发环境的控制等操作,最终实现针对特定嵌入式目标的系统代码实现,如用于描述系统功能的C 文件、可在特定嵌入式环境中运行的可执行程序或适合于某种嵌入式开发环境的项目结构等7。2.4嵌入式系统软件代码整合虽然借助代码生成工具RTWEC 可以非常容易地生成C 代码(这些代码可以适用于所有提供C 语言编译器的单片机),但距离实用化的自动代码生成还需要解决如下问题。由于MATLAB 只完整支持少数型号的微控制器,但目前的代码自动生成工具,而在实际应用中由于客观需要,如性能、成本等的不同要求,使得微控制器的品种繁多,不同型号微控制器在功能、性能、封装等方面很少兼容。这就使得除少数大公司之外的众多用户难以使用自动代码生成的开发方法。针对这一问题,可以通过代码整合来实现自动生成的代码与成百上千种具体ECU 硬件平台的集成8。在ECU 软件系统中,RTWEC 自动生成的控制算法代码是其中的一部分,还有一部分

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号