2019/12/191现代汽车电子技术信号与信息处理研究所丁山第6章汽车嵌入式系统开发的方法、体系和流程6.1汽车嵌入式系统的开发趋势汽车电子系统具有如下特点①异构性:汽车电子系统的异构性表现在两个方面。首先,结构的异构性,其次,是计算模型的异构性。②网络化:分布式的电子控制系统成为汽车电子系统发展的必然,因此系统中的各个控制器则需要采用网络连接。③可靠性高:汽车电子控制系统属于安全关键的系统,其中的许多功能都具有安全可靠要求。④灵活性高:一种汽车电子系统通常应用在一系列产品中,要求软硬件具有较强的灵活性。⑤其他非功能约束:作为一种典型的嵌入式系统,汽车电子控制系统对于非功能属性有严格的要求。例如,强实时性要求、移动的嵌入式系统、功耗问题等等。汽车嵌入式系统开发出现下述趋势:(1)算法与实现相分离:将算法设计与软件实现分离,才能保证控制算法的专业性。(2)系统设计模型化:模型是系统设计的核心创造的代表,软件人员需要通过模型进行交流、优化设计、管理代码、系统测试以及管理文档。(3)系统实现自动化:代码与文档一致性保证提供了可能。(4)应用与平台独立;为了开发集成应用,需要一套全新的软件架构和开发方法,以支持控制系统软件与控制硬件平台相分开。(5)系统架构标准化:车用操作系统的软件标准-OSEK/VDX规范,汽车电子软件架构标准AUTOSAR软件架构。(6)基于验证和可靠性保障:正确性、安全性是汽车电子软件最重要的目标。在系统设计的每一阶段都要对系统的设计进行验证。图5-1示出了各开发趋势发展过程中对应的技术、体系和标准。6.2基于模型的开发方法随着计算机辅助工程(Computer-AidedEngineering,CAE)工具的出现,新的设计方法采用虚拟产品设计来预评估系统,并用于系统设计过程中不同协作单元之间的信息交流,并作为系统实现的基础。6.2.1基于模型的开发方法体系的定义在汽车嵌入式系统开发的过程中,很多开发模式促进MBD(Model-basedDevelopment)的发展,其中主要包括:•基于模型的控制设计(Model-basedControlDesign);建立被控系统来模型来进行控制设计•模型驱动设计(Model-drivenDesign);强调对系统概念、模型及转化、软件进行图形化的描述•基于模型的信息管理(Model-basedinformationManagement);模型被用来关联和组织信息;•基于模式的测试(Model-basedTesting),利用模型进行如硬件在环等测试针对于MBD的不同使用目的,可以对模型、建模语言和相关的方法体系进行分类,主要包括:①形式模型(FormalModel):通常叫数学模型或分析模型;②概念模型(ConceptualModel):通常被表示成图形形式,用于复杂软件开发等。③构造模型(ConstructiveModel):关注系统开发层面的技术并成为系统设计的基础。6.2.2MBD方法的优势1.MBD在汽车嵌入式系统开发中描述的角色MBD通过一些诸如抽象、形式化、预测和自动化等手段,可以从以下四个方面提供支持:技术交流、文档管理、分析和设计综合。(1)概念和设计的交流(CommunicatingIdeasandDesigns):以图形化建模来描述软件和系统开始流行,随着系统的复杂,该方法也显得更为重要。(2)设计信息及文档管理(DocumentingandManagementDesignInformation);现在汽车嵌入式系统的设计强调全生命周期的质量管理,因此,文档在产品开发设计、生产、维护和回收的各个阶段都起到及其重要的作用。(3)系统分析支持(SupportingAnalysisoftheSystemtobeDesigned)车载系统中一些重要的性质如逻辑判断、系统逻辑判断、系统时序功能、错误及诊断等传统的人工分析方法很难进行检验。(4)综合(Synthesizing):利用工具来辅助生成设计的系统和相关文档。2.MBD的方法与手段(1)抽象(abstraction):将特定的系统通过如失效模式、虚拟结构、传递函数和状态机等方式形成简化的但可以描述真实的复杂系统特性的模型。(2)形式化、参数和结构化(Formalization,ParameterizationandStructuring)模型一般遵循特定的语义、语法,这就是建模语言与工具,形式化指不同模型间的对应关系,参数化有助于模型的重复使用。(3)预测(Prediction):通过多种模型分析技术可以分析确定系统的特性。这些特性可以通过模型属性或模型输入、输出关系进行计算得到。(4)可视化(Visualization):更好地对系统进行理解。(5)细化(Refinement):通过层层抽象、形式化、结构化和预测支持,可以使用一系列的模型来不断细化和增加新的内容;3.MBD的优势基于MBD设计方法具有如下优势:(1)节约上市时间(Time-to-market);(6)可追溯(Traceability):通过抽象、形式化和结构化,提供了对系统设计的追溯。(7)自动化(Automation):结合计算机的支持,上述几部分通过自动化完成。(2)降低成本(CostReduction);(3)提高产品质量(QualityAssuranceandEnhancement);(4)丰富产品功能(IncreaseofFunctionalContent)(5)创新(Innovativeness)6.2.3MBD的技术体系MBD的技术体系包括:•建模技术(ModelingTechnologies):包括建模语言、模型以及它们之间的关系;•分析技术(AnalysisTechnologies):如模型仿真与静态分析;•综合技术(SynthesisTechnologies):包括模型生成和支持;•相关工具(Tools):用于可以支持设计的相应建模、分析和综合技术的工具。MBD技术体系中的核心内容之间的关系如图5-2所示。1.建模语言:抽象、关系和行为建模语言(包括编程语言)通过语法和语义来进行定义并进行相应的解释。基于这个概念,产生了统一的建模语言UML。(1)抽象类型:嵌入式系统建模语言中存在多种抽象类别,典型的抽象类别包括功能、软件平台、数据、通信。系统等。其中,功能指对系统功能或其他与逻辑无关的实现。软件平台指软件运行的硬件环境、中间件和操作系统等;数据是指信息单元,如信号、标志量和事件等;通信指两个抽象描述之间信息交换的机制和物理媒介;系统指包括配属属性的完整系统。(2)抽象属性:抽象的属性主要包括结构接口、行为语义和约束。接口属性用于描述抽象的尺寸、形式和I/O。行为语义表示不同类型的模型,如连续时间模型或离散时间模型。约束模型主要用于边界条件的定义。(3)行为描述:抽象的行为属性、关系和它们的语义一起定义了模型的行为。常用如下:目前,在嵌入式系统的开发过程中,有很多种类的编程和建模语言被广泛使用,如图5-3所示。抽象的行为属性、关系和它们的语义一起定义了模型的行为。常用的嵌入式系统模型包括:离散时间模型(Discrete-timeModels):这种模型常用于模拟控制器或信号处理算法的离散化过程,一般使用差分方程描述;连续时间模型(Continuous-timeModels):这种模型主要针对嵌入式系统环境中描述物理系统的动态特性而建立,一般是他微分方程描述;离散事件模型(Discrete-eventModels):主要指那些逻辑功能以及计算机的软硬件实现;多任务模式(MultitaskModels):这类模型以对平台的触发、同步和调度抽象为表征,优先级和执行时间是其主要特点。(4)抽象间的关系分解:指通过某种规定的方式将多个抽象合并成一个整体的抽象,从而形成一种部分-整体的等级关系。这种部分-整体关系可以被用于面向行为和面向结构的抽象中,主要体现信息的隐藏和模块化;通信:指通过规定的方式连接不同的抽象来进行信息交换或物理交互,这种连接必须定义好行为语义,包括协议和时序,主要体现在下面同步中;同步:指抽象之间的顺序或时序关系,抽象之间的同步往往通过抽象之间的通信实现的,但同时其他相关的技术也可以被使用,例如任务之间的在运行前的调度(Pre-runtimeScheduling)等。共性/通用性:指不同抽象之间的共同特征,这种通用性可以通过以下几个部分实现:通过属性的继承;通过统一类抽象的相同配置;基于某一抽象生成另一抽象,并保留其中的一部分属性;细化:指同一现实系统的不同抽象之间的关系,某个函数将原函数细化。细化关系主要体现在设计过程中,因为设计过程中的实现环节是逐步添加的。分配:指将特定的功能或软件抽象映射到硬件/平台抽象中,这个一种在抽象以及他们的硬件抽象之间的特殊关系。(5)UML简介UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。UML由图和元模型组成,图式语法。元模型是语义。UML主要包括三个基本构成;事物(Things)、关系(Relationships)和图(Diagrams)。事物:实体抽象化的最终结果,是模型中的基本成员;关系:将事物联系在一起的方式;图:是事物集合的分类。UML包括一些可以相互组合为图表的图形元素。由于UML是一种语言,所以UML具有组合这些元素的法则。用多个视图来展示一个系统,这组视图被视为一个模型。UML的基本构造块包括:事物、图和关系。UML的事物包括结构事物、行为事物、分组事物和注释事物。结构事物是模型中的静态部分,共有七种。分别为类(class)、接口(Interface)、协作(collaboration)、用例(UseCase)、活动类(Activeclass)、组件(Component)和节点(Node);行为事物指的是UML模型中的动态部分,包含两类,即交互(Interaction)和状态机(StateMachine);分组事物可以看做一个“盒子”,模型可以在其中分解注释事物是UML模型的解释部分。UML中定义四种关系,即依赖(Dependencies)、关联(Association)、泛化(Generalization)及实现(Realization)。依赖是指两个事物之间的语义关系,其中一个事物发生影响另一个事物的语义;关联是一种描述一组对象之间连接的结构关系,如聚合关系。泛化是一种从一般化到特殊化的关系;实现是类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。UML中包含多种图,它们有类图(ClassDiagram)、对象图(ObjectiveDiagram)、包图(PackageDiagram)、组件图(ComponmentDiagram)、部署图(DeploymentDiagram)、用例图(UsecaseDiagram)、顺序图(SequenceDiagram)、协作图(CollaborationDiagram)、状态图(StatechartDiagram)和活动图(ActivityDiagram)。类图描述系统所包含的类、类的内部结构及类之间的关系;对象图是类图的一个具体实例;包图表明包及其之间的依赖类图;组件图描述代码部件的物理结构以及各部件之间的依赖关系;部署图定义系统中软硬件的物理体系结构;用例图从用户的角度出发描述系统的功能、需求,展示系统外部的各类角色与系统内部的各种用例之间的关系;顺序图表示对象之间动态合作的关系;协作图描述对象之间的协作关系;状态图描述一类对象的所有可能的状态以及事件发生时状态的转移条件;活动图描述系统中各种活动的执行顺序。3.综合技术综合技术的使用案例包括模型的生成、系统定义或参数以及支持文档生成等。这些综合过程可能包括一些优化以及模型的转化。模型的转化的目的是将某一工具建立的模型转化为另一个所理解的模型,从而为工具之间提供信息交换,一个简单的例子就是将Matlab/Simulink模型转化为C代码以用于嵌入式微处理器的开发;在一般的模型转化