APP下载

基于AUTOSAR模型的电控系统软件的集成实现

2021-09-10何晓明赵光亮史家涛

内燃机与配件 2021年14期
关键词:嵌入式软件模型

何晓明 赵光亮 史家涛

摘要:嵌入式软件的兼容性与可靠性成为汽车行业普遍关注的问题。本文结合汽车开放系统架构AUTOSAR,以MATLAB/Simulink软件为依托,叙述了一种AUTOSAR模型与非AUTOSAR架构的基础软件集成生成可执行程序的过渡集成实现方法,为开发符合AUTOSAR标准的电控系统嵌入式软件提供了参考。

关键词:AUTOSAR;模型;嵌入式软件

中图分类号:U469.72                                   文獻标识码:A                                文章编号:1674-957X(2021)14-0004-02

0  引言

随着汽车电子行业的发展,对电控系统嵌入式软件的兼容性和可靠性越来越高,符合AUTOSAR架构的嵌入式软件成为发展趋势。在实际开发过程中,应用软件可以选择使用MATLAB/Simulink模型实现,基础软件部分采用手写代码实现。在嵌入式软件由非AUTOSAR架构切换到AUTOSAR架构的过渡过程中,应该采用合适的方法来完成软件的集成,本文提出了一种基于AUTOSAR模型的电控系统嵌入式软件的集成方法,即当应用软件部分采用AUTOSAR架构的模型,基础软件部分复用非AUTOSAR架构的代码时嵌入式软件的集成方法。

1  AUTOSAR模型接口设计

AUTOSAR模型是由MATLAB中的Simulink模型实现的,每个模型对应一个软件组件,软件组件之间的数据交互通过RTE层实现。要将数据传到RTE层,在模型中就要有对应的端口。一般而言,在软件组件之间进行数据交互的端口有Send-Receive类型和Client-Server类型。在软件组件和基础软件之间数据交互的端口为Client-Server类型。其中Send-Receive类型的端口在模型中的描述如图1所示。

在图1中,rsr_Arg1和rsr_Arg2为两个接收端口,psr_Out1为一个发送端口。在模型生成的代码中,对应rsr_Arg1端口的函数为Rte_Read_rsr_Arg1_rsr_Arg1(&tmpRead),该函数在模型中调用,在RTE模块中完成定义。对于发送端口psr_Out1,在模型生成的代码中对应的端口函数为Rte_Write_psr_Out1_psr_Out1(tmpRead + tmpRead_0),该函数在RTE模块完成定义。

Client-Server类型的端口类似于C代码中的函数调用,在模型中可以使用Simulink自带的FunctionCaller模块来实现。如果是模型和基础软件之间有数据交互,这时模型中一般为客户端,基础软件中一般为服务器端。下面首先介绍客户端端口在模型、代码中的描述。如果在模型中需要调用C代码中的BSW_SendData函数,则需要模型中构造一个客户端端口,如图2所示。从图中可以看出函数BSW_SendData有port和byte两个输入参数。该端口在模型生成代码中的描述为Rte_Call_rcs_BSW_SendData_BSW_SendData(25,18),该函数在RTE模块完成定义。

服务器端口将在第二部分结合基础软件接口开发来展开论述。模型生成代码时会产生对应的ARXML文件,这些文件中描述了模型对外的端口,也是RTE模块的输入。

2  基础软件接口开发

对于基础软件部分,需要完成对原来代码的整改。首先梳理基础软件部分与应用软件部分的软件交互,包括全局变量和函数等。梳理清楚之后,将原来的变量接口全部修改为函数接口。然后再通过Client-Server类型的端口形式完成与模型之间的数据交互。在项目实现中,基础软件部分一般是服务器端,模型中使用的端口一般是客户端,从代码层面来讲即为在模型中通过RTE层调用代码中的函数。

在基础软件部分,也需要提供对应端口的ARXML文件,此处可以借助MATLAB来生成ARXML文件。结合第一部分客户端端口的例子,在BSWTest.c文件中有函数BSW_SendData(uint8 port,uint8 byte),该函数需要提供给应用层使用。此时可以创建符合AUTOSAR架构的模型BSWTest.slx,在模型中使用Simulink Function模块创建一个服务器端,如图3所示。最后模型生成代码生成BSWTest.arxml文件,该文件中描述的服务器端口可以与BSWTest.c中的函数BSW_SendData(uint8 port,uint8 byte)对应,可以用作RTE模块的输入。

3  RTE代码实现

通过上述第一部分和第二部分的介绍,在模型生成代码中端口对应的函数实现是在RTE层。下面详细介绍RTE代码的实现过程。RTE代码生成的输入文件为软件组件和基础软件等部分对应的ARXML文件,RTE模块可以采用ETAS公司的工具链,通过配置实现RTE模块的代码生成。

通过RTE工具链生成代码的输入为软件组件和基础软件部分对应的ARXML文件。结合第一部分和第二部分的例子,以图4中连接关系来说明。

在图4中共有两个软件组件和一个基础软件服务模块,对应模型实现分别为Test1.slx、Test2.slx和BSWTest。在这三个模块中需要实现的连接关系有:

①Send-Receive类型端口:Test1.slx的发送端口psr_Out1_Out1连接到Test2.slx的接收端口rsr_Out1_Out1。

②Client-Server类型端口:BSWTest的服务器端口pcs_BSW_SendData连接到Test1.slx的接收端端口rcs_BSW_SendData。

将以上三个模块对应的ARXML文件导入ISOLAR-AB工具中并创建软件组件,可在软件组件中完成以上关系的连接,连接关系图如图5所示。

完成软件组件之后,再配置生成系统映射、软件组件到ECU映射、ECU抽象及任务调度表,就可调度RTE代码生成器RTEGen.exe生成RTE模块的代码。

4  结论

本文参考AUTOSAR架构,分三部分介绍了基于AUTOSAR架构模型和传统基础软件代码的开发集成方法,即AUTOSAR模型接口设计、基础软件接口开发、RTE代码实现。该方法对于项目从非AUTOSAR架构转换为AUTOSAR架构的过渡时期的开发,具有重要的意义。

參考文献:

[1]程露.基于AurixTM的AUTOSAR多核应用实现 [J].自动化技术与应用,2016,35(07):27-31.

[2]张翟辉.基于Aurix的AUTOSAR多核操作系统的实现 [J]. 工业控制计算机,2016,29(03):43-45.

[3]李育.基于AUTOSAR标准的TCU软件设计[J].汽车零部件,2017(8):26-30.

[4]何涛.电动汽车整车控制器软件设计及关键技术研究[D]. 清华大学,2010.

[5]袁仲楠.基于AUTOSAR的车用控制器软件开发 [J].机电信息,2019(36):156-159.

[6]彭威. SmartSAR RTE--基于AUTOSAR的汽车电子软件运行时环境及生成[D].浙江大学,2001.

[7]W. Peng, H. Li, M. Yao et al. Deployment Optimization for AUTOSAR System Configuration[C]. ICCET 2010, 2010(4):189-193.

猜你喜欢

嵌入式软件模型
基于ARM7TDMI架构的嵌入式软件逆向工程分析方法
自制空间站模型
从勾股定理到“一线三等角”模型
浅析嵌入式软件技术的现状与发展动向
模型小览(二)
导数中涉及“[ex,l n x]”的模型
圆周运动与解题模型
基于模型检查的嵌入式软件构件化分析与验证
嵌入式软件在计算机软件开发过程中的运用
离散型随机变量分布列的两法则和三模型