2020/2/61现代汽车电子技术信号与信息处理研究所丁山第7章汽车嵌入式系统的开发流程车载嵌入式系统的开发总是把汽车嵌入式系统划分为子系统,如ECU(硬件和软件)、传感器和执行器(硬件),然后对各子系统进行测试和确认,进而集成一个完整的电子系统。7.1汽车嵌入式系统的开发流程7.1.1传统的开发流程普通采用的嵌入式系统的开发流程大多是自发的,不成系统的。直到台架实验,控制器才真正与被控对象结合;单元调试阶段,软、硬件的错误往往交织在一起;由于软件采用手工编制的方式,错误的排除比较困难;系统仿真阶段和实施阶段脱离;程序的可读性、可继承性、可移植性不够好。该流程的主要缺点传统的ECU开发过程有以下缺陷;系统设计的错误不易发现;软件与硬件协同调试困难;排除错误花费时间较长;模型实时性差;C程序移植性差。7.1.2V模式开发流程可视化的V模式中,过程步骤和产品如图5-30所示,该过程覆盖了从设计阶段的需求分析、功能设计与实现到组件、集成的测试再到最后的所有工作。V模式各个模块的作用;(1).功能设计(ControlDesign)统一的模型,减少错误可能和缩短开发周期;对系统模型进行快速而可靠验证;减少开发成本;对系统测试,发动机、动力系统的模型能够在后续开发中重复使用。V模式开发过程是如图5-31所示。开发过程为硬件和软件同时进行,最后联合调试,如图5-32所示。(2)功能原型(FunctionPrototyping)对控制原型快速可靠地实时测试以及最优化;原型过程中集成了各种汽车总线;完全利用原型替代控制器;自动执行验证Matlab/Simulink中的模型。(3)自动代码生成(AutomaticProductionCodeGeneration)减少编程时间和手写代码错误;模型与C代码相互协调;统一的编码格式;极少的错误率。(4)ECU仿真测试(ECUTestingwithSimulator)硬件循环仿真测试;更少的原型和测试装置、更低的测试成本;系统全面快速的测试;可靠性高、风险低。(5)虚拟标定(ECUCalibrationwiththeCalibrationsystem)简单直观的操作;利用CAN进行标定和参数检测。传统开发流程和V模式开发流程的特点比较见表5-1.7.2汽车嵌入式系统开发的方法论汽车ECU开发过程的基本特征;汽车嵌入式系统开发强调的是系统级的解决方案;由于系统级的功能往往是在分布式实现;开发流程较长,因此强调团队协同开发。系统级别的开发,强调和对象的结合,带来的技术实现方法有:基于对象建模;基于模型驱动的控制软件开发;快速控制原型(RCP)硬件在环(HIL)的仿真。系统功能的分布式实现带来的技术实现方法有:总线技术的发展;基于总线通信和网络管理的嵌入式操作系统的引入;AUTOSAR的提出。基于团队协作开发带来的技术实现方法有:基于模型的系统开发;代码自动生成;在线标定;在线和离线诊断。汽车嵌入式系统开发方法论上特点主要体现在以下三个方面:①技术规范体系和标准的逐步确定。②开发流程的逐步统一。③开发理念工具化。7.3V模式的一般流程V模式一般流程有以下几部分组成:(1)第一阶段:功能需求定义和控制方案设计.现代方法中采用模型方式,如信号流图的方式(Simulink模型)(2)第二阶段:快速控制原型(RapidControlPrototyping,RCP),快速实现控制系统的原型、并且包括实际系统中可能包括的各种I/O、软件及硬件中断等实时特性。(3)生产产品代码。将模型转换为产品代码是开发过程中最关键的一步。(4)第四阶段:硬件在环仿真(Hardware-in-the-Loop,HIL)(5)第五阶段:系统集成测试/标定以Matlab结合dSpaceTargetlink工具箱为例来说明上述的具体开发步骤:步骤1:用线性或非线性方程建立控制对象的理论模型;步骤2:用Matlab工具箱设计一原始控制方案。这些工具包括ControlSystemToolbox、NonlinearControlToolbox,RobustControlToolbox,OpimizationToolbox.步骤3:用Simulink对控制方案设计进行离线仿真初步确认设计结果。步骤4:在simulink中,从RTI中对I/O参数进行设置。设置实时I/O如图6-2所示。步骤5:自动完成目标DSP系统的实时C代码生成、编译、链接和下载。如图6-3所示。步骤6:用ControlDesk试验工具软件包与实时控制器进行交互操作。如图6-4所示。步骤7:利用Mlib/Mtrace从实时闭环控制系统获得数据,并将该数据回传给建模,实现参数的自动优化过程。上述三个步骤如图6-1所示。步骤8:返回步骤1.通过实时测试,获得反馈信息。以上Matlab结合dSpaceTargetlink展示典型汽车ECU开发流程。7.2模型搭建与算法仿真7.2.1功能设计(建模)功能设计,即系统逻辑结构和技术结构的确定。用户需求分析是指在系统开发的早期阶段,对于需求和限制条件的一种结构化的处理方法。目的是从系统用户的角度准确地描述系统的逻辑系统结构。逻辑系统结构描述的是抽象的结果,即系统和功能的抽象逻辑模型。如图6-5所示。逻辑系统要求可从两方面进行描述:描述应该具有的系统特性;描述不应该具有的系统特性。逻辑系统要求可分为功能性和非功能性系统要求;逻辑系统要求是用参与开发过程的工程学科的语言来表达的。图形化标志,适合于基于模型的逻辑系统的描述。比如结构框图和状态自动机。为了实现功能控制要求抽象化描述,就是建立一个数学模型。图6-6所示的各个具体的功能模型可以由结构图来表示。方框表示转换环节,可分为开环/闭环控制器模型、执行器模型、被控对象模型、设定点发生器和传感器模型、驾驶员、运行环境。闭环控制任务就是通过检测控制变量X,然后被控变量X与参考变量W相比较。根据比较结果,调整变量X使其接近参考变量W,闭环控制的目的是是控制变量X的值接近参考变量W,尽管存在由于干扰变量Z所导致的干扰情况。相应的开环控制任务是一个系统的一个或多个输入变量影响某个输出变量使其符合系统设计的特征的过程。基于模型化的功能设计有助于了解系统的功能,从而尽可能完整且无矛盾地描述系统功能,并且在仿真模拟测试、功能校正和优化中体现更大的灵活性和便利性。技术系统结构必须考虑各种制约因素,如技术的和经济的制约,组织结构和制造技术的约束。通过对逻辑系统结构分析和技术系统结构描述确定技术系统结构,如图6-7所示。图6-8给出了一个典型的开环、闭环汽车控制系统的技术体系结构。当确定开环和闭环控制系统的技术系统结构时,必须明确设定点发生器、传感器、执行器、ECU网络的具体实现方法,并在具体的技术系统结构上实现系统的逻辑体系功能。随着技术系统结构的全部确定,接下来就是组件和子系统的实现,主要分为硬件组件的设计实现和软件组件的设计实现。软件开发是从软件需求分析开始,首先进行软件体系结构的分析和确定。7.2.2快速控制原型(算法仿真)快速控制原型,即控制系统的快速功能测试原型,是通过一定的技术手段,在短时间内开发与控制器产品功能一致的测试用功能原型装置,通过它的实物实验来检测和修改设计。采用先进的控制系统建模工具进行建模,并生成代码,用其他控制器(PC,compactPC,单片机)临时代替将要开发的实际控制器,快速对控制算法进行验证和测试,在设计阶段发现问题并解决问题。如图6-9所示。开发流程:建立离线仿真模型,进行离线仿真;其次,在离线仿真通过后加上I/O接口,修改为实时仿真模型;再次,为目标ECU生成目标代码,并转换为可执行代码。最后,下载到实时内核进行实时仿真。如图6-10所示。以Matlab为例,与实物的I/O接口是通过Simulink中的Real-TimeWindowsTarget模块库提供I/O接口模块实现的。7.2.3旁路技术通过将快速原型硬件系统与所要控制的实际设备相连,可以反复研究使用不同传感器及驱动机构时系统的性能特征。而且。利用旁路(Bypass)技术(见图6-11)将原型电控单元或控制器集成到开发过程中,从而逐步完成从原型控制器到产品控制器的顺利转换。旁路技术是指原有的ECU依然起着主要作用,如原有的ECU必须提供经过有效性验证的系统的基本函数,运行所有的传感器和执行器,以及支持到实验系统的旁路接口。已有函数依然在ECU中计算,但按照以下方式进行修正:输入信号由原有ECU通过旁路接口进行传递,并由ECU通过一个控制流接口触发旁路函数的计算。当原有的ECU接收到旁路输出信号和检测其拟真性后决定是否采用新输出值或转接到内部替代值。常用的两种旁路技术工具:ETAS公司的INTECRIO(如图6-12所示)和dSpace公司的MicroAutoBox(如图6-13所示)。7.3自动代码生成相比传统的手工编码方式,自动代码生成有明显的优势,两者的对比如表6-1所示。典型的自动代码生成工具包括MatlabRTW,dSpace公司的TargetLink、ASCET工具包等。TargetLink是一款产品级代码生成软件。可以直接从Matlab/Simulink/Stateflow框图生成代码,可靠性高,易读性好,可产生定点运算代码,适合多种处理器和编译器。TargetLink软件从Simulink控制模型生成C代码,首先将Simulink/Stateflow模型转化成TargetLink模型,可以根据实际需求进行变量定标、算法优化、设置代码生成选项等工作,基于TargetLink模型进行各种仿真测试分析,最终生成C代码。其生成C代码具有以下特点:•高效率的C代码生成;•支持子函数不同计算频率的系统和OSEK兼容控制系统代码生成;•Stateflow生成代码自动与Simulink模型生成代码整合;•可选择不同的编译器实现最理想的转化效率;•可以生成比标准C更有利的特定的带有汇编程序的代码。另外,TargetLink能够针对特定的微控制器使用其独特的指令集进行优化,从而几乎完全省去繁重的手工编码。TargetLink的应用开发流程如图6-14所示。一般而言,生成的代码总是定点计算类型。为了能让控制器始终进行定点运算,必须对控制模型中所有变量进行大小和精度范围的设置,即定标。每个变量都必须根据其可能的大小来分配取值范围和数据长度。变量x和它的整数表达式x’之间关系为:x=LSBx’+offset;其中,LSB指对应x’的最低有效位(leastsignificantBit),offset是指给定的偏移量。TargetLink软件也提供了自动定标的功能。Targetlink在仿真同时自动搜索所有变量的最大值和最小值,确定参数运算的范围,自动定标工具以此设定变量的LSB和offset值。2020/2/6现代汽车电子技术26对于ECU能够处理的数据格式,Targetlink软件都能够提供相应的定标:2底数幂定标;非2底数幂定标;含有0偏移限制或不含0偏移限制。如图6-15所示。Targetlink的主要特性和优点如表6-2、表6-3所示。7.4硬件在环测试硬件在环测试是指采用真实的控制器,被控对象或者系统运行环境部分采用实际的物体,部分采用实时数字模型来模拟,进行整个系统的仿真测试。通常情况下,只有被测试ECU是实物,其余部分尽可能运用高保真的数学模型进行仿真。由于总线技术的发展,现代汽车已经通过网络实现分布式控制功能。而各个ECU之间的交互作用增加,同时,网络支持多种总线系统,这些都又可能成为潜在的错误来源。7.4.1单个ECU的功能测试一个ECU开发完成后,必须对其功能进行全面的测试。特别是故障情况和极限条件下测试就显得尤为重要。在HIL测试环境的搭建中,使用dSpace实时控制仿真平台(Simulator设备)作为实时环境的硬件载体,在Matlab/Simulink中建立变速箱模型、液力变距器模型、发动机模型、整车底盘模型与