基于模型设计嵌入式ECU的自动代码生成研究

2021-09-10 05:25应世明张宏双YingShimingZhangHongshuang
北京汽车 2021年4期
关键词:标定变量定义

应世明,张宏双Ying Shiming,Zhang Hongshuang

基于模型设计嵌入式ECU的自动代码生成研究

应世明,张宏双
Ying Shiming,Zhang Hongshuang

( 1.长城汽车股份有限公司,河北 保定 071000;2.河北省汽车技术创新中心,河北 保定 071000)

基于ASAP(zur Standardisierung von Applikationssystemen,应用系统标准化工作小组)标准架构提到的数据库管理方式,应用Excel完成ECU(Electronic Control Unit,电子控制单元)系统的数据管理。利用MATLAB软件完成ASAP数据库自动生成,实现数据导入、用于a2l文件生成模型创建、头文件修改及地址替换。最终生成可执行文件*.a2l,满足对标定系统中的变量进行标定或观测的需求。

标准架构;标定系统;数据管理;自动生成

0 引 言

ECU(Electronic Control Unit,电子控制单元)标定是指根据整车或者整车上ECU的性能要求(动力性、经济性等),对ECU内部参数修改、校正、优化的过程。在项目开发的不同阶段对控制系统的功能需求不相同,因此会有不同的标定需求。对于控制代码的自动化生成,标定系统的ASAP(zur Standardisierung von Applikation ssystemen,应用系统标准化工作小组)数据库自动更新标定数据的信息,保证对控制系统中的重要变量进行标定及观测[1-3]。

1 ASAP标准

ASAP工作组制定了目前广泛使用的标准化接口和通信协议。标准化接口的通信协议有利于实现不同汽车ECU之间数据交互的一致性。ASAP标准架构定义了ASAP1、ASAP2和ASAP3 3个标准的关系,如图1所示。

ASAP1定义了ASAP控制设备与MCD(Measurement Calibration Diagnostic,观测标定诊断系统)之间物理和逻辑连接的接口标准。ASAP2提供了不同控制设备之间的接口、测量数据、标定数据、数据存储格式、数据转换方法的规范化定义。控制设备的标准信息使用基于XML(eXtensible Markup Language,可扩展标记语言)技术的A2L文件描述,描述控制设备内部数据的存储细节,实现数据和应用的分离,有利于提高MCD系统的通用性。ASAP3作为MCD系统与用户应用层之间的接口,提供MCD系统的测量、标定和诊断等功能的标准化函数的调用[4-5]。

图1 ASAP标准架构

2 集成编译架构

通常以V流程为指导方针的开发目标采用模型与数据分开管理的方法,即采用MATLAB/ Simulink作为控制算法的开发工具,依照MAAB(Mathworks Automotive Advisory Board,控制算法建模规范),完成整车ECU系统应用软件的控制策略的模型架构设计、功能开发、模型数据定标,最终下载到客户硬件控制器中。ECU由模型转换到代码,并与底层手写代码集成,整个过程如图2所示。

注:ASW(Applications SoftWare,应用软件);RTE(Runtime Environment,运行环境);BSW(Basic Software Layer,基础软件层)。

由图2可以看出,编译器的作用是将源代码文件(.c.h文件)编译成可执行的目标文件(.o文件),编译规则应用标准C语言的编译规则。根据不同芯片、不同平台选择不同的编译器,链接器需和编译器匹配,其作用是将所有由编译器编译完成的目标文件(.o文件)链接成可以烧录到ECU中的elf、S19文件,以及编译器生成的可供查看信息的map文件。最终文件(elf、S19文件)是源码文件(.c.h文件)经过编译器、链接器处理后得到的文件。

elf文件是带调试信息的可烧录文件,可以使用该文件进行调试。使用PE或劳特巴赫等工具软件,可以将elf烧录到ECU中,并使用专门的调试器进行文件调试,此时需要源码支持,elf文件中包含了源码的路径信息,所以源码路径要保证正确。S19文件也是可烧录文件,但不包括调试信息,只有程序数据信息,只能用于烧录不能用于调试。A2L文件用于INCA软件,INCA软件可以根据A2L文件对ECU进行标定和测量,A2L文件中包含了标定量、测量量及CCP(CAN Calibration Protocol,CAN总线标定协议)通信的相关信息。

3 数据字典管理

为了更好地对基础软件代码进行维护,缩短产品平台化开发周期,对ECU进行系统的数据管理很重要。进行参数标定前,需将搭建的模型及数据转换成最终的可执行文件*.a2l。试验过程中通过标定工具获取数据、观察和改变数据。这种将模型与数据分离的方式,简化了开发人员的工作流程,使模型与数据维护更方便。

应用数据管理软件如Excel、数据字典完成与模型对应的参数管理,将ECU系统程序中用到的标定量及观测量按照Excel格式要求完善信息。如图3所示,Excel中有2个表,ROM Data记录标定量,RAM Data记录观测量。在ROM和RAM中分别定义整车ECU涉及的参数变量名、数值、数据类型、单位、维度等基本信息。

图3 标定量和观测量

4 RTE层处理

4.1 RTE层概述

RTE是AUTOSAR(Automotive Open System Architecture,汽车开放系统架构)中定义的一层结构,作用是将ASW和BSW隔离,为ASW和BSW提供实时访问接口变量的方式。参考AUTOSAR架构中定义的RTE层,但是将RTE层访问与操作系统分离,使用Read和Write方式进行ASW和BSW对RTE层的访问,结构如图4所示。

图4 RTE层结构

4.2 RTE层管理

为了方便RTE层维护,设计了RTE层接口变量定义表格。每次生成代码过程中,RTE层定义文件会根据表格中定义的RTE变量自动生成,RTE层与ASW和BSW的交互层需要根据该表格自动生成,将对RTE层代码和模型的维护转化为对RTE层表格的维护。

4.3 生成RTE模型(上层)

模型对RTE层接口变量的访问需要通过模块调用RTE函数,这需要根据RTE层的变量创建访问RTE层函数的模块。创建调用外部函数的工具为Legacy Code Tool,为MATLAB自带的工具,使用该工具编写M脚本,查询RTE表格中定义的接口变量及属性,生成该工具要求的脚本。通过对脚本的执行,在线生成调用RTE层函数的模型文件以及库文件。用户可以将模型文件中定义的模块直接用于建模,实现对RTE接口变量的访问。生成的模型文件如图5所示。

图5 RTE模型

4.4 生成RTE代码(底层)

BSW层对RTE层的访问通过直接调用RTE层定义的Read和Write函数进行。为了方便BSW层转化定标方式,设计了RteBsw源文件,文件中定义2个函数,为BSW和RTE层变量定标方式的相互转化函数;BSW通过调用这2个函数实现对RTE层定标方式的适配,从而将对源代码的维护变成对RTE层表格的维护,能够提高工作效率,降低劳动强度。

5 ASAP数据库自动生成

5.1 导入数据

首先将管理数据Excel文件及MATLAB读取Excel文件的封装包放到MATLAB路径下,使用创建的M脚本程序,在MATLAB的命令窗口输入如下命令。

xlsreadsdo('nano_bus.xls', 'Simulink');

xlsreadsdo('Nano_data.xls', 'TestPackage');

nano_bus.xls、Nano_data.xls为2个Excel表的名字,Simulink、TestPackage为2个表的封装格式,TestPackage为自定义的一种封装格式,这样实现了Excel表中信息导入到 MATLAB的Workspace。

5.2 自动创建用于生成A2L文件的模型

在生成 A2L文件时需将导入MATLAB工作空间的数据转换成使用该变量的模型。底层代码为手写C代码,原策略模型中没有这些变量;如果模型中没有用到这些变量,则不会在A2L文件中生成相应的标定量或观测量,所以使用自建的M脚本提取nano_bus.xls、 Nano_data.xls 2个Excel表格内的信息后自动创建模型。

5.3 A2L文件头的修改

将创建的模型生成的A2L文件导入INCA软件后并不能与ECU建立通信,需要对A2L文件的文件头进行修改。A2L文件头定义了整个项目的通用信息,包括与硬件设备通信信息、标定量和观测量的存储区域等信息。

在 MATLAB安装目录下找到asap2main.tlc、asap2setup.tlc、asap2userlib.tlc 3个TLC文件,这些文件是基于MATLAB的TLC脚本语言开发,通过修改这3个TLC文件,可以控制生成的A2L文件格式及信息。在每次生成A2L文件时都包含需要的文件头,把MATLAB生成的A2L文件正确导入INCA,与ECU建立通信。

5.4 A2L文件生成及地址替换

在自动创建的模型上打开模型配置参数的配置界面,配置相关参数生成A2L文件,替换地址后可导入INCA使用。通过运行M脚本函数实现打开配置界面、配置相关参数、生成A2L等操作。

6 总 结

给出了一种ASAP数据库管理方式,用2张Excel表管理所用到的标定量及观测量。利用MATLAB工具生成可以导入INCA的A2L文件,将Excel表数据导入Workspace、提取Excel表信息创建模型、生成A2L文件并将替换地址的各M函数集成到一个M脚本中,在MATLAB命令窗口中输入命令即可生成可以直接使用的A2L文件,使用这样的方法可以完成对标定量和观测量的ASAP数据库实时更新任务。

[1]宋维群,杨世春,李明,等.基于ASAM标准的标定数据库逻辑分析与编程实现[J].汽车技术,2012(1):10-13.

[2]张彧,冯辉宗.基于CCP协议的汽车ECU标定系统的设计[J].微计算机信息,2007(29):216-217.

[3]韦文波.基于CCP协议的电控发动机标定系统开发[D].长沙:湖南大学,2011.

[4]庄继晖,谢辉,李苏苏,等.基于ASAP架构的发动机ECU标定系统开发[J].中国机械工程,2012 ,23(2):199-203.

[5]陈鹏.基于CCP协议发动机标定系统应用研究[D].武汉:武汉理工大学,2014.

2021-03-15

U463.6.02

A

10.14175/j.issn.1002-4581.2021.04.010

1002-4581(2021)04-0041-04

猜你喜欢
标定变量定义
车轮动平衡标定结果的影响因素
以爱之名,定义成长
一种轻卡前视单目摄像头下线标定方法
严昊:不定义终点 一直在路上
定义“风格”
CT系统参数标定及成像—2
CT系统参数标定及成像—2
标定电流与额定最大电流的探讨
分离变量法:常见的通性通法
不可忽视变量的离散与连续