MBD讲解与实践 1.3 Arxml文件

MBD讲解与实践  1.1 AutoSAR、ASPICE与MBD中,我们提到了一种可以用于描述软件组件的文件类型:Arxml文件。在MBD开发中,无论是否基于AUTOSAR架构,利用Arxml文件可以帮助我们完成从架构到模型这一正向开发流程。首先从认识一个组件的Arxml文件开始,看一下这个文件中包含哪些信息,它又为什么能够对MBD开发产生帮助。

这里我们以上一篇实验中的FDM组件的Arxml文件为例进行分析。打开Arxml文件的方式有很多,首先它是一种文本类的格式,因此用任意文本编辑器就可以打开(VSCode之类的代码软件都是支持的);另外Vector有专门的Arxml文件查看器,只有那些购买了Vector产品的公司才有;最后就是网上的免费开源软件了,如xmlnotepad。

一、Arxml文件解析

将Arxml文件使用XmlNotepad软件打开,可以发现一份SWC的Arxml基本都包含这及部分信息:数据类型定义、组件定义(内部行为定义、端口定义)、接口定义。

1.1 基础数据类型:Base Type

组件里面所用的数据类型,都是由基础数据类型Typedef而来,因此,所有用到的基础数据集类型要在这里定义清晰。

1.2 实现数据类型:Implement Data Type

实现数据类型,就是我们代码里面运行的数据类型,他们都是通过基础数据类型定义而来,在Arxml文件中,实现数据类型描述主要由其对应的基础数据类型(SW_BASE_TYPE)数据限制(DATA_CONSTR)决定,实现数据类型的名称可以和基础数据类型相同。

1.3 端口:Port

组件本身的描述是通过端口和内部行为描述的,端口接口的区别在哪呢?博主的理解是,端口是对接口的引用,也就是说在Arxml文件中定义了若干个接口,但是一个组件可能只用到部分接口,那这部分接口就是组件的端口了。端口又分为P-Port(Provide,输出端口)R-Port(Receive,输入端口)

1.4 内部行为:Internal Behavior

内部行为主要是Runnable的定义,在一个组件中,一般需要一个初始化Runnable和一个周期执行Runnable,每一个Runnable都会定义它的触发方式(INIT-EVENT或TIMING-EVENT)。

1.5 接口:Interface

任意的接口都可以在这里定义,但我们只需要定义出组件中所用到的接口即可。这里接口的数据类型、描述等要素均有体现。

二、如何生成或修改Arxml文件

根据架构生成Arxml主要有四种方式:

  1. 以Vector Developer为代表的专业架构设计工具:优点很多,图形化界面、导出Arxml方便、自由定义结构体等数据类型、功能齐全等;唯一的缺点就是贵,小公司可能玩不了。
  2. 脚本工具生成Arxml:通过Arxml的文件格式,通过脚本实现部分功能,优点是可以根据需求个性化设计、成本较低;缺点是功能可能不是很齐全,开发难度大。
  3. 在Matlab中先搭建好模型,通过Matlab的AUTOSAR工具箱来生成Arxml,优点是几乎不需要成本;缺点是本末倒置,Arxml文件主要的作用就是规范组件模型的结构,因此Arxml文件只应由软件架构直接生成。
  4. 手搓Arxml或修改Arxml:根据Arxml的编写规则,手写或修改Arxml,没有成本,但工作量巨大,几乎没有人这样干。

对Arxml的文件格式感兴趣的朋友可以去AUTOSAR的官网下载模板文件

三、Arxml文件与模型

Matlab对Arxml文件的支持用得最多的就是创建模型及更新模型这两个功能。

3.1 创建模型

2019之后的Matlab版本已经集成了AUTOSAR工具箱,通过arxml.importer和createComponentAsModel这两个函数就可以将通过Arxml文件创建一个空模型了。

3.2 更新模型

 

同样,通过arxml.importer和updateModel这两个函数就可以将通过Arxml文件更新一个已存在的模型,同时不会修改模型里面的其余无关内容。

猜你喜欢

转载自blog.csdn.net/qq286150080/article/details/132083526
1.3