APP下载

提高AUTOSAR模型开发效率的方法

2023-04-26张泽莹颜江王慧颜家彬吕梦包梦

汽车电器 2023年4期

张泽莹 颜江 王慧 颜家彬 吕梦 包梦

【摘  要】主要使用车载ECU中用于生成代码的模型开发过程,从以往的自上而下开发流程转变为自下而上开发流程,极大提高AUTOSAR模型开发效率。

【关键词】ECU;AUTOSAR;V模型开发流程;MBD;Arxml

中图分类号:U463.6    文献标志码:A    文章编号:1003-8639( 2023 )04-0035-03

【Abstract】The model development process used to generate code in the ECU is mainly used to change from the previous up-down development process to the down-up development process,which greatly improves the efficiency of AUTOSAR model development.

【Key words】ECU;AUTOSAR;V model development process;MBD;Arxml

随着汽车行业的迅速发展,车载ECU的软件复杂度也越来越高,AUTOSAR(Automotive Open System Architecture,汽车开放系统架构)作为一个开放、标准的软件架构,使用RTE(Run Time Environment,运行环境)和虚拟总线技术可将ECU内软件的复杂度限定在可控范围内,且更容易分散开发。其中,开发人员使用V模型开发流程,并在开发应用层软件时更多地使用MBD(Model Based Design,基于模型的设计)方法,即使用模型生成代码的方式进行软件开发。模型不仅更加直观,而且在软件早期开发阶段能够自动生成符合规范的代码进行更多环节的测试,显著提高应用层软件开发品质和效率。为了代码符合AUTOSAR规范并提高开发效率,此处需要使用一种不同于普通MBD的开发流程。本文将通过AUTOSAR基本原理、V模型的开发流程、MBD方法等3个方面逐步介绍如何提高AUTOSAR模型开发效率。

1  AUTOSAR基本原理

AUTOSAR是一家致力于制定汽车电子软件标准的联盟,其制定了一套专门用于开发汽车的开放性框架和行业标准,不仅可以给软件系统及车辆电子提供一个高效管理平台,也促进了两者之间的更新与交换。另外,产品及服务品质可以得到有效保证,成本效率也得到了极大提高。

如圖1所示,AUTOSAR分层软件系统位于ECU里面,其主要由3个部分组成。功能系统(Functional System)位于系统的顶层,拥有电气子系统(如外部照明系统、后视镜系统等)需要的所有特征,AUTOSAR软件组件(SWC,Software Component)是由这些系统组成的元素,它的特点是接口定义良好,数据完整齐全,通信媒介是VFB(Virtual Functional Bus,虚拟功能总线)。RTE介于应用软件(Application Software)和基础软件(Basic Software)之间,是虚拟功能总线接口的实现,对基础软件组件的访问有极大的促进作用,同时在应用软件相互通信中扮演“桥梁”的作用。RTE下面的部分叫做基础软件,主要提供复杂驱动、通信服务、存储服务及系统服务等,在不同的电气架构里,软件组件可以重新定位到不同的ECU[1]。

虚拟功能总线抽象了软件构件间、软件构件与基础软件间的通信,是SWC独立于硬件的基础,这就意味着两个SWC不仅可以在同一个ECU中通信,也可以在多个ECU通过虚拟功能总线通信,其允许的方式有:S-R通信,即发送者-接收者模式,一个SWC发送信息,另一个SWC接收其信息;C-S通信,即客服端-服务器端模式,客户端提出请求,服务器端提供其请求的服务[1]。

2  基于V模式的开发流程

在汽车行业中,软硬件开发需要有一个完整的开发过程,其中包含的步骤有:需求分析、代码生成、集成测试等,这就是V模式开发流程。在整个流程中,每个步骤可以得到精确验证,系统也可以使用相同的开发环境、编程环境、测试环境。如图2所示,基于V模式的开发流程包括五大步骤,即需求定义与功能设计、快速控制原型(rapid control prototype,RCP)、目标代码生成、硬件在环(hardware in the loop,HIL)、测试与标定[2]。

1)需求定义与功能设计:分析用户需求,使用建模工具,如MATLAB/Simulink等,设计需求模型,使用离线仿真验证其正确性,即模型是否满足需求。

2)快速控制原型:在原型系统里面导入实时仿真模型,实际被控对象与其进行连接,通过测试来验证系统软硬件方案是否可行。

3)目标代码生成:采用Embedded Code或Targetlink等工具,对模型予以转化,自动生成产品代码。

4)硬件在环:被测对象与实时处理器通过I/O接口连接,运行仿真模型,可以实时观测受控对象的运行状态。

5)测试与标定:主要对ECU进行测试与标定,根据需求情况调整ECU参数。

3  基于模型设计(MBD)开发方法

MBD是一种软件设计方法,它以模型为中心,使用建模工具对系统进行建模,使用离线仿真工具验证系统模型是否正确。根据上文所述,MBD方法可以充分应用在基于V模式的开发流程中。如图3所示,系统需求分析、验收测试等步骤都可以在不同层次的模型中进行,保证设计与分析同步[3]。

4  提高AUTOSAR模型开发效率的方法

为了符合AUTOSAR规范的代码,需要一种不同于普通MBD的开发流程,AUTOSAR对于模型的要求主要在于接口和Runnable,即模型的外部框架,模型/架构工程师常常使用AUTOSAR架构管理工具结合Arxml(Autosar eXtensible Markup Language,符合Autosar的xml文件)来管理模型框架,这其中就分为两种不同的工作流程:自上而下和自下而上。

4.1  自上而下

如图4所示,在自上而下的开发流程中,模型工程师使用AUTOSAR架构管理工具来设计模型框架,设计完成后AUTOSAR架构管理工具会生成Arxml文件,该Arxml里包含了模型的框架信息:Runnable、Interface、Datatype等。将Arxml文件导入建模工具后会自动完成模型框架的创建工作,该框架有AUTOSAR相关设置和接口模块等。接着模型工程师就可以在该框架内部搭建算法模型。建模完成后经过MBD的测试即可生成符合AUTOSAR规范的代码[4]。

4.2  自下而上

如图5所示,在自下而上的开发流程中,首先使用建模工具搭建好算法模型,完成后利用建模工具提供的AUTOSAR框架配置工具箱进行模型的相关AUTOSAR配置,如Interface、Port、Runnable、Path等,设置完成后自动生成Arxml文件和AUTOSAR代码,并将Arxml导入到AUTOSAR架构管理工具中进行RTE(AUTOSAR架构中各模块之间数据交互的代码环境)的设计。

综上所述,自下而上与自上而下的工作流程在建模工具和AUTOSAR架构管理工具中需要完全相同的AUTOSAR配置,尤其是接口对象需要被正确设置,来保证代码可以被正确集成。现在常用的开发流程是自上而下的开发模式,但AUTOSAR架构管理工具通常不支持脚本化建模方式,搭建模型框架需要靠开发人员手动进行,在模型数量较多、接口较多的情况下,会大量重复进行模型AUTOSAR配置工作,不仅开发人员的时间被耗费,精力不济也容易导致出错风险增加。自下而上的开发模式,则因为早期版本的建模工具对AUTOSAR的支持并不完善,存在很多Bug,因此该开发模式使用较少且并不成熟。在自下而上模式开发案例中,开发者需要使用建模工具提供的AUTOSAR框架配置工具箱,手动配置Interface、Port、Runnable、Path等,以使得模型能够生成AUTOSAR代码和Arxml文件,但同样存在大量重复性手工配置工作。

本文将介绍一种全新的自下而上开发模式,此方法基于建模工具的AUTOSAR框架配置工具,目的是改善AUTOSAR配置流程,将建模工具中模型的框架配置过程全自动化,可以一键将传统模型转变为AUTOSAR模型,且能够生成符合AUTOSAR规范的代码和Arxml文件,极大提高AUTOSAR模型开发效率和传统模型复用率。首先搭建应用层模型,模型顶层(模型外围框架)需符合AUTOSAR建模规范,即一个函数接口和多个输入输出数据接口,图6为符合AUTOSAR规范的模型框架。接着使用本文介绍的AUTOSAR配置工具对应用层模型进行全自动化配置,包括生成代码的配置和AUTOSAR配置,一键运行后该工具会进行以下操作。

1)调取模型Configuration API,将模型的Configuration(生成代码相关设置)设置为AUTOSAR方案,如设置系统生成AUTOSAR代码而非普通嵌入式代码等。

2)调取模型的AUTOSAR框架配置工具箱API(图7),根据项目要求的AUTOSAR配置方案(如Data Element、Port命令规则等)自动设置其中所需的AUTOSAR配置(Port、Interface、Path等),并将模型端口和Port、Interface、DataElement映射起来。

3)将配置过程同步打印至命令窗口,例如Port和Interface的创建和映射等,如图8所示。

4)最后自动生成AUTOSAR代码和Arxml文件,如图9所示。

5  总结

本文介绍的AUTOSAR配置工具一键运行将传统模型转变为AUTOSAR模型,提高了已有传统模型复用率,省去了现有两种模式中都需要的人工配置工作,让模型工程师可以集中精力搭建算法模型,而不是模型框架,大幅降低AUTOSAR模型开发的时间成本和人力成本,极大提高AUTOSAR模型开发效率,减少潜在错误。

参考文献:

[1] 王军,宋顺林. 基于MDA的汽车嵌入式软件系统架构设计[J]. 计算机工程與设计,2010,31(9):2048-2051.

[2] 郑振,张仲颖. 汽车嵌入式系统开发方法、体系架构和流程[J]. 湖南农机,2014(9):64-64,66.

[3] 魏学哲,戴海峰,孙泽昌. 汽车嵌入式系统开发方法、体系架构和流程[J]. 同济大学学报(自然科学版),2012,40(7):1064-1070.

[4] 张丽萍,国云飞. 基于MATLAB的AUTOSAR自动代码生成技术[J]. 汽车零部件,2016,9(8):36-40.

(编辑  杨  景)