您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 
 订阅
如何利用PREEvision和MATLAB开发AUTOSAR软件组件
 
作者:怿星科技
   次浏览      
2021-11-16
 
编辑推荐:
在本文中, 先在PREEvision中定义软件组件及其内部行为并导出arxml,然后将arxml导入到Simulink,并定义运行实体的算法模型图,最后生成C代码并导出arxml 。
本文来自于怿星科技,由火龙果软件Alice编辑、推荐。

在业界,比较著名的电子电气架构开发工具要属德国Vector公司开发的PREEvision工具了,而MATLAB/Simulink软件是非常高效且实用的基于模型的应用软件开发工具。利用PREEvision与Simulink联合开发AUTOSAR应用软件组件的开发流程有三种,分别是:“自上而下”开发流程(从PREEvision开始),“自下而上”开发流程(从Simulink开始),以及“双向”开发流程。如下图所示,无论哪一种开发流程,PREEvision与Simulink工具都是通过arxml文件进行信息交互的。

今天要给大家介绍的是“自上而下”的开发流程(从PREEvision开始),即先在PREEvision中定义软件组件及其内部行为并导出arxml,然后将arxml导入到Simulink,并定义运行实体的算法模型图,最后生成C代码并导出arxml,详细过程如下:

一、用PREEvision定义软件组件及其内部行为

核心:定义符合AUTOSAR规范的SWC;

方法:首先需要明确软件组件类型、通信类型以及传输方向,并定义符合要求的软件组件SWC及端口;其次要定义各软件组件端口间通信所使用的接口以及数据类型,最后定义各软件组件的功能,为其创建RTE事件,运行实体以及函数间变量。

① 定义软件组件SWC:软件组件是软件架构中最小的逻辑功能单元,是存储代码的部分。在Classic AUTOSAR架构中,绝大部分情况下使用的都是Application SWC和Sensor Actuator SWC。下图是PREEvision9.0中支持的SWC类型。

② 定义通信端口Port:完成SWC模块定义后,需要为SWC添加相应的通信端口,根据SWC类型、通信类型及传输方向,可将端口分为以下三类:

Sender/Receiver(S/R)接口

Client/Server(C/S)接口

Adaptive Provided/Required(P/R)接口

S/R接口是用来传输数据的,C/S接口是用来执行操作的,P/R接口只能用于Adaptive Application SWC模块。对于传统的CAN/LIN网络使用S/R接口就可以了,对于请求与响应的通信方式需要使用C/S接口,如SOME/IP的Method。下图是PREEvision9.0支持的端口类型。

③ 定义通信接口Interface:通信接口声明了给定端口所需或提供的数据、服务、操作等元素。比较常用的是Sender/Receiver Interface(用于Sender/Receiver Port),Client Server Interface(用于Client/Server Port)。下图是PREEvision支持的Interface。

Interface只是定义了通信数据的接口,对于Sender/Receiver Interface要传输的数据其实是在Data Element中定义的,对于Client Server Interface要传输的数据其实是在Operation下的Operation Argument中定义的。

除此之外,还需要定义数据类型来约束Interface中传输的数据。如下图所示,在AUTOSAR4.0以上版本中数据类型由应用数据类型、实现数据类型和基础数据类型组成。其中应用数据类型需要与实现数据类型建立映射关系以及转换方法,实现数据类型需要关联基础数据类型。

④ 定义内部行为Internal Behavior:前面完成了软件组件的框架部分,还需要完善软件组件的内部行为。一般有RTE事件(Event),运行实体(Runnable Entity)以及函数间变量(Inter Runnable Variable)组成。运行实体是软件组件内最小的逻辑功能单元,可以被RTE事件触发,比如被定时器触发、被接收数据触发,被操作调用触发等。下图是PREEvision9.0支持的RTE事件。

运行实体通过数据访问端口与SWC的Port建立访问关系。对于Sender/Receiver Port需要创建Data Read/Write(隐形无队列调用)或者Data Receive/Send(显性队列调用)数据访问端口。对于Client/Receiver Port需要定义Operation Invoke数据访问端口。

运行实体之间的数据交互是通过函数间变量实现的,因此运行实体还需要定义变量访问端口(Variable Read/Write)来接收其他实体通过函数间变量发送过来的数据。函数间变量是由RTE管理,可以设置为显性/隐形调用方式,也可以根据实际需要为其设置标定参数的读写权限。

经过以上几个步骤,就完成了在PREEvision中对软件组件的定义。下图是一个简单的软件组件部分内部元素示例,最后将其导成arxml文件即完成了SWC在PREEvsion中的定义。

二、导入arxml到Simulink

需提前安装AUTOSAR支持包“AUTOSAR Standard”,并将要导入的SWC描述文件存放到MATLAB当前的工作目录,在MATLAB的命令行窗口通过如下语句即可导入arxml并创建Simulink模块。

导入单个SWC描述文件:

ar = arxml.importer('filename.arxml'),filename是指SWC描述文件的名称。

运行完上述导入单个SWC描述文件命令后在命令行窗口会返回导入结果,如下图所示。其中蓝色框标记的语句将在第二步创建Simulink模块时会用到。

根据导入的arxml创建Simulink模块:

ar.createComponentAsModel('/SoftwareTypes/ComponentTypes/swcName, ModelPeriodicRunnablesAs',' FunctionCallSubsystem')

输入命令后MATLAB会根据arxml自动创建与SWC,Port, Interface以及Runnable相对应的Simulink模块,并自动打开Simulink软件。下图是MATLAB根据arxml自动创建的SWC的内部行为模型。

三、用Simulink定义运行实体的算法模型

Simulink对AUTOSAR的支持是通过Simulink模块(如I/O端口,子系统等)与AUTOSAR元素(如Sender/Receiver Port,Client/Server Port,Runnable等)建立映射关系而实现的。下表是一些常见的Simulink模块与AUTOSAR元素的映射关系。在I/O模块作为RTE Event使用时必须勾选“Out Function Call”属性。

如果在PREEvision中SWC定义的不精确,则在导入arxml后需要检查一下Simulink模块与AUTOSAR元素的映射关系是否缺失。通过Ctrl+Shift+C将模型在“Code Perspective”中打开,然后在“Code Mapping-AUTOSAR”窗口中检查输入输出端口模型、运行实体模型与AUTOSAR元素的映射关系是否缺失。如下图所示Simulink的两个输入模块与AUTOSAR元素的映射关系缺失,只需点击Select即可选择AUTOSAR的Port以及Data Element。

有了这些Runnable,我们可根据软件功能需求文档在Simulink中搭建相应的算法模型图以实现其功能,操作过程此处就不详细展开了。下图是运行实体RE_PPort_3的内部算法模型示例。

四、生成C代码及arxml文件

当所有的Runnable内部算法模型都搭建完成之后,即可生成C代码及arxml文件了,在生成C代码之前有一些设置项需要注意一下:

配置Configuration Parameters:将求解器设为固定步长。在AUTOSAR Code Generation选项中设置AUTOSAR的版本,根据实际情况勾选“Use AUTOSAR complier abstraction macros”等选项。

配置XML选项:打开AUTOSAR Dictionary,在XML Option选项“Export XML fille packaging”中选择“Single file”,否则一个SWC会生成多个arxml文件。

在配置好上述设置项后,按Ctrl+B即可生成C代码以及arxml文件,在编译完成之后,会有一个报告窗口弹出,根据里面的路径即可找到刚刚生成的C代码以及arxml文件。下图为本示例生成的相关文件。

综上所述,PREEvision与MATLAB联合开发AUTOSAR软件组件的主要流程是通过在PREEvision中定义SWC及其内部行为并导出arxml,然后将arxml文件导入到Simulink并定义运行实体的内部算法模型,最后通过Simulink生成C代码及arxml文件。

总结:OEM软件架构师可以在PREEvision工具中,从整车系统层面定义符合AUTOSAR规范的软件架构,以arxml文件的形式与下游设计软件(MATALAB、DaVinci等)无缝对接,从而保证设计信息的准确传递。为了应对汽车电子功能的快速迭代,OEM可以通过这种设计方式,主导汽车软件开发,提升车型开发效率及质量。

 

 
   
次浏览       
 
相关文章

UML概览
UML图解:用例图(Use case diagram )
UML图解:活动图(activity diagram )
UML图解:类图(class diagram )
UML图解:对象图(object diagram)
UML图解:顺序图( sequence diagram )
 
相关文档

UML统一建模语言参考手册
网上商城UML图
UML建模示例:JPetStor
UML序列图编写规范
EA中支持的各种图表
EA中的界面原型建模
 
相关课程

UML与面向对象分析设计
UML + 嵌入式系统分析设计
业务建模与业务分析
基于UML和EA进行系统分析设计
基于模型的需求管理
业务建模 & 领域驱动设计

最新活动计划
C++高级编程 12-25 [线上]
白盒测试技术与工具实践 12-24[线上]
LLM大模型应用与项目构建 12-26[特惠]
需求分析最佳实践与沙盘演练 1-6[线上]
SysML建模专家 1-16[北京]
UAF架构体系与实践 1-22[北京]
 
 
最新文章
在EA中内嵌文档- Artifact
EA中模型视图
EA中的实体关系图
使用EA进行风险建模
EA中的项目词汇表
EA的模型导出或导入csv文件
自定义表格(Custom Table)在EA中的使用
Gap Analysis Matrix(差距分析矩阵)
更多...   
MBSE工具
MBSE平台
建模工具 EA
模型库-Model Center
需求管理-ReqManager
自动建模-Modeler
多级仿真-Sys Simulator
代码工程-Code Engineer
文档生成器-DocGenerator
更多...   
成功案例
广汽研究院 SysML+EA+软件分析设计
高合汽车研发部门 建模工具EA、WebEA、学习视频
国汽智联 建模工具EA、模型库、WebEA和iSpace
亿咖通 MBSE工程体系与工具链咨询
中航无人机 MBSE工具链
吉利汽车 购买EA工具
华科汽车零部件 购买EA工具
东风岚图汽车 购买EA工具 以及EA定制开发
更多...