汽车嵌入式系统的开发流程(汽车电子技术).ppt
2023/6/29,1,现代汽车电子技术,信号与信息处理研究所 丁 山,第7章 汽车嵌入式系统的开发流程,车载嵌入式系统的开发总是把汽车嵌入式系统划分为子系统,如ECU(硬件和软件)、传感器和执行器(硬件),然后对各子系统进行测试和确认,进而集成一个完整的电子系统。,7.1 汽车嵌入式系统的开发流程,7.1.1 传统的开发流程,普通采用的嵌入式系统的开发流程大多是自发的,不成系统的。,直到台架实验,控制器才真正与被控对象结合;单元调试阶段,软、硬件的错误往往交织在一起;由于软件采用手工编制的方式,错误的排除比较困难;系统仿真阶段和实施阶段脱离;程序的可读性、可继承性、可移植性不够好。,该流程的主要缺点,传统的ECU开发过程有以下缺陷;,系统设计的错误不易发现;软件与硬件协同调试困难;排除错误花费时间较长;模型实时性差;C程序移植性差。,7.1.2 V模式开发流程,可视化的V模式中,过程步骤和产品如图5-30所示,该过程覆盖了从设计阶段的需求分析、功能设计与实现到组件、集成的测试再到最后的所有工作。,V模式各个模块的作用;(1).功能设计(Control Design)统一的模型,减少错误可能和缩短开发周期;对系统模型进行快速而可靠验证;减少开发成本;对系统测试,发动机、动力系统的模型能够在后续开发中重复使用。,V模式开发过程是如图5-31所示。开发过程为硬件和软件同时进行,最后联合调试,如图5-32所示。,(2)功能原型(Function Prototyping)对控制原型快速可靠地实时测试以及最优化;原型过程中集成了各种汽车总线;完全利用原型替代控制器;自动执行验证Matlab/Simulink中的模型。,(3)自动代码生成(Automatic Production Code Generation)减少编程时间和手写代码错误;模型与C代码相互协调;统一的编码格式;极少的错误率。,(4)ECU仿真测试(ECU Testing with Simulator)硬件循环仿真测试;更少的原型和测试装置、更低的测试成本;系统全面快速的测试;可靠性高、风险低。,(5)虚拟标定(ECU Calibration with the Calibration system)简单直观的操作;利用CAN进行标定和参数检测。传统开发流程和V模式开发流程的特点比较见表5-1.,7.2 汽车嵌入式系统开发的方法论,汽车ECU开发过程的基本特征;汽车嵌入式系统开发强调的是系统级的解决方案;由于系统级的功能往往是在分布式实现;开发流程较长,因此强调团队协同开发。,系统级别的开发,强调和对象的结合,带来的技术实现方法有:基于对象建模;基于模型驱动的控制软件开发;快速控制原型(RCP)硬件在环(HIL)的仿真。,系统功能的分布式实现带来的技术实现方法有:总线技术的发展;基于总线通信和网络管理的嵌入式操作系统的引入;AUTOSAR的提出。,基于团队协作开发带来的技术实现方法有:基于模型的系统开发;代码自动生成;在线标定;在线和离线诊断。,汽车嵌入式系统开发方法论上特点主要体现在以下三个方面:技术规范体系和标准的逐步确定。开发流程的逐步统一。开发理念工具化。,7.3 V模式的一般流程,V模式一般流程有以下几部分组成:,(1)第一阶段:功能需求定义和控制方案设计.现代方法中采用模型方式,如信号流图的方式(Simulink模型),(2)第二阶段:快速控制原型(Rapid Control Prototyping,RCP),快速实现控制系统的原型、并且包括实际系统中可能包括的各种I/O、软件及硬件中断等实时特性。,(3)生产产品代码。将模型转换为产品代码是开发过程中最关键的一步。,(4)第四阶段:硬件在环仿真(Hardware-in-the-Loop,HIL),(5)第五阶段:系统集成测试/标定,以Matlab结合dSpace Targetlink工具箱为例来说明上述的具体开发步骤:步骤1:用线性或非线性方程建立控制对象的理论模型;,步骤2:用Matlab工具箱设计一原始控制方案。这些工具包括Control System Toolbox、Nonlinear Control Toolbox,Robust Control Toolbox,Opimization Toolbox.,步骤3:用Simulink对控制方案设计进行离线仿真初步确认设计结果。,步骤4:在simulink中,从RTI中对I/O参数进行设置。设置实时I/O如图6-2所示。,步骤5:自动完成目标DSP系统的实时C代码生成、编译、链接和下载。如图6-3所示。,步骤6:用Control Desk试验工具软件包与实时控制器进行交互操作。如图6-4所示。,步骤7:利用Mlib/Mtrace从实时闭环控制系统获得数据,并将该数据回传给建模,实现参数的自动优化过程。,上述三个步骤如图6-1所示。,步骤8:返回步骤1.通过实时测试,获得反馈信息。,以上Matlab结合dSpace Targetlink展示典型汽车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,compact PC,单片机)临时代替将要开发的实际控制器,快速对控制算法进行验证和测试,在设计阶段发现问题并解决问题。如图6-9所示。,开发流程:建立离线仿真模型,进行离线仿真;其次,在离线仿真通过后加上I/O接口,修改为实时仿真模型;再次,为目标ECU生成目标代码,并转换为可执行代码。最后,下载到实时内核进行实时仿真。如图6-10所示。,以Matlab为例,与实物的I/O接口是通过Simulink中的Real-Time Windows Target模块库提供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所示。典型的自动代码生成工具包括Matlab RTW,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=LSB x+offset;,其中,LSB指对应x的最低有效位(least significant Bit),offset是指给定的偏移量。,TargetLink软件也提供了自动定标的功能。Targetlink在仿真同时自动搜索所有变量的最大值和最小值,确定参数运算的范围,自动定标工具以此设定变量的LSB和offset值。,2023/6/29,现代汽车电子技术,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中建立变速箱模型、液力变距器模型、发动机模型、整车底盘模型与路面模型等被控对象模型。在通过Matlab产品家族中的自动代码生成工具(RTW)将上述模型转化为实时代码下载至Simulator设备中的处理器板卡后,即完成HIL测试环境的搭建。,首先,TCU(Transmission Control Unit)通过Simulator中专用I/O板卡获得车辆模型发出的状态信号(如图6-16所示)。,TCU基于这些信号发出对变速箱模型的控制信号。同样,通过Simulator中专用I/O板卡完成对这些控制信号的采集后,车辆模型将根据控制信号进行状态的更新,模拟车辆的被控动作。,在上述过程中,通过信号调理模块或外围驱动电路模块,Simulator还可以集成一些传感器或执行器,同时,可通过Simulator的标准硬件集成相应的诊断或标定工具。,对于功能测试,可以通过操作车辆模型模拟平稳加速状态、急加速急减速状态、坡道状态、软件故障状态,甚至一些在现实中很难出现的极端行驶状态,从而评估TCU的控制效果。,另外,还可以通过Simulator的故障注入单元模拟大量的硬件故障,如传感器输入开路、短路等,进一步检测TCU的诊断功能。,Simualtor与TCU之间的借口如图6-17所示。,7.4.2 测试ECU网络、节点分布式功能,ECU网络测试包括各ECU的相互作用,如总线上的相互行为、网络管理、功率消耗、系统集成等。,单个ECU的一部分功能错误已在开发阶段检测出来,但还有很多错误必须在一个集成的系统中才能被检测出来,因此,对ECU网络的测试更为重要、复杂。,现在流行的虚拟车辆环境可以对ECU网络进行测试,而这实质就是HIL测试。,如图6-19所示,在HIL测试环境中对ECU网络进行测试,除可以进行自动化测试外,具有很高的可重复性,并且可以方便地重现车辆(总线)中的大量故障。,如图6-18所示,整个汽车的网络可以分为速率不同的网络。,2023/6/29,现代汽车电子技术,32,如图6-20所示一个针对ECU网络测试的具体方案,其中有三台Simulator设备。第一台主要是模拟动力传动模型,与发动机控制器、变速箱控制器等连接;第二台模拟车辆动力学模型、动力转向模型等;第三台模拟各种车辆通信部件模型;三台Simulator设备通过CAN总线和高速传输总线连接;CAN总线传输网络中各ECU的传送消息。高速传输总线传输各车辆模型的仿真计算数据;专门的CAN网络故障模拟器分别与各Simulator连接;最后所有的Simulator和故障模拟器通过专门的信号接口与PC总控制器连接,实现Simulator的模型下载、故障类型设置、信号采集、在线调参等。,2023/6/29,现代汽车电子技术,33,7.5 在线标定,汽车标定是指为了实现不同的功能,如排放、汽车操控性、不同环境下汽车性能等指标,而对汽车的控制参数进行调整。即在运行时访问ECU,采集测量数据和参数并加以修改,以优化ECU算法。,标定系统的主要作用监控ECU工作变量、在线调整ECU的控制参数(包括MAP图、曲线以及点参数)、保存数据结果以及处理离线数据等。完整标定系统包括上位机PC标定程序、PC与ECU通信硬件连接以及ECU标定驱动程序三部分。,自动测量系统标准化协会(Automatic Measurement System Standards Association,ASAM)建立了汽车电控单元测量、标定和诊断三方面的标准,实现ECU与测量标定系统和诊断系统间接口的标准化,CCP协议是其中最为成功的一种标准;,2023/6/29,现代汽车电子技术,34,一些专业术语的说明:ASAP2:由ASAM定义的标准化文件接口,用于描述ECU内部数据、ECU接口和通信参数;标定:在运行时访问ECU,采集测量数据和参数并加以修改,以优化ECU算法;CCP:CAN标定协议(CAN Calibration Protocol),ASAM定义的接口,使得测量和标定系统可以通过CAN总线采集ECU数据和校准ECU参数;XCP:通用的标定协议,XCP可用于非CAN网络(如FlexRay、LIN等),主要优点在于它独立于传输层的;将成为唯一的测量与标定协议。KWP2000:key Word Protocol 2000是国际性的机动车辆领域诊断系统协议,可以通过测量与标定系统进行测量数据采集和参数标定工作。,2023/6/29,现代汽车电子技术,35,7.5.2 典型的在线标定协议CCP及标定过程,CCP协议由Audi、BMW、Mercedes-Benz、Porsche和Volkswagen等欧洲汽车公司组成的标准化组织ASAP(标准化标定系统工作组)发展而来。系统如图6-21所示,对应用系统进行测量、标定和诊断,定义了一个MCD模型,定义了ASAP1、ASAP2、ASAP3标准;,ASAP1作为应用层同控制器设备之间接口的标准,定义了应用测量标定系统(Measurement and Calibraion System,MCS)和ECU之间的物理和逻辑连接,分1a和1b标准。ASAP2标准对ECU功能和接口及标定信息进行标准和规范化的数据库。ASAP3标准定义了MCS系统和用户之间的接口,使用户可以通过调用标准化函数用MCS系统进行数据和命令交互来实现测量、标定和诊断的功能。,2023/6/29,现代汽车电子技术,36,一个完整的CCP标定系统软件如图6-27所示:支持CCP协议的标定测试工具,如CANape、Graph,该工具软件内部集成了CCP驱动程序和CAN驱动程序;ASAP2控制器描述文件,用于记录ECU中各参数对应的存储地址、存储结构、数据类型等信息,是进行参数标定和数据检测的基准文件;ECU的CAN驱动程序,需要实现CAN数据的收发和解包功能,供CCP驱动程序调用;针对特定ECU的CCP驱动程序。需要能够调用CAN驱动程序,实现CCP规定的各项必须功能;ECU中的应用程序部分,主要是该程序集中放置于预定的存储区域的待标定数据,包括参数、曲线和MAP。,2023/6/29,现代汽车电子技术,37,基于CCP的ECU标定系统工作原理如图6-29所示。对部分控制参数进行调整后,通过一个CAN通信的驱动模块将数据送到发动机ECU中,ECU收到信号后,通过内部处理又会由驱动模块返回ECU内部的重要数据到平台上显示,标定软件与发动机ECU的通信符合CCP标定协议。,2023/6/29,现代汽车电子技术,38,7.5.3 标定工具简介,CANape是德国Vector公司出品的一款基于ASAP标准ECU标定和测试工具。见图7-29.CANape主要用于电控单元(ECU)的参数优化(标定)。它在系统运行期间同时标定参数值和采集测量信号。,CANape的基本功能包括:同步地实时采集和显示ECU内部信号,CAN、LIN、FlexRay总线信号以及来自外部测量设备的信号;通过CCP/XCP进行在线标定和通过XCP进行实时激励;离线标定;快速而安全地使用二进制文件和参数组刷写Flash;无缝集成KWP2000和UDS诊断函数;强大的标定数据管理,参数组比较和合并功能;ASAM MCD3测量和标定自动化接口;使用集成的编程语言自动执行用户输入序列和处理测量值与信号。,2023/6/29,现代汽车电子技术,39,应用CANape实现监测和标定的功能,必须进行如下工作:CCP驱动程序在控制器中的实现;ASAP2数据库文件的生成与及时更新;CANape的配置,包括参数设置,测量表的创建以及测量标定窗口的管理等等。,每个标定参数和测量数据在ECU中都会有一个变量名,如节气门、电动机扭矩等。CANape需要通过该文件来对ECU的参数寻址当CANape需要访问某个变量,描述文件如图7-30所示。,谢谢!,