赞
踩
在MBD讲解与实践 1.1 AutoSAR、ASPICE与MBD中,我们提到了一种可以用于描述软件组件的文件类型:Arxml文件。在MBD开发中,无论是否基于AUTOSAR架构,利用Arxml文件可以帮助我们完成从架构到模型这一正向开发流程。首先从认识一个组件的Arxml文件开始,看一下这个文件中包含哪些信息,它又为什么能够对MBD开发产生帮助。
这里我们以上一篇实验中的FDM组件的Arxml文件为例进行分析。打开Arxml文件的方式有很多,首先它是一种文本类的格式,因此用任意文本编辑器就可以打开(VSCode之类的代码软件都是支持的);另外Vector有专门的Arxml文件查看器,只有那些购买了Vector产品的公司才有;最后就是网上的免费开源软件了,如xmlnotepad。
将Arxml文件使用XmlNotepad软件打开,可以发现一份SWC的Arxml基本都包含这及部分信息:数据类型定义、组件定义(内部行为定义、端口定义)、接口定义。
组件里面所用的数据类型,都是由基础数据类型Typedef而来,因此,所有用到的基础数据集类型要在这里定义清晰。
实现数据类型,就是我们代码里面运行的数据类型,他们都是通过基础数据类型定义而来,在Arxml文件中,实现数据类型描述主要由其对应的基础数据类型(SW_BASE_TYPE)和数据限制(DATA_CONSTR)决定,实现数据类型的名称可以和基础数据类型相同。
组件本身的描述是通过端口和内部行为描述的,端口和接口的区别在哪呢?博主的理解是,端口是对接口的引用,也就是说在Arxml文件中定义了若干个接口,但是一个组件可能只用到部分接口,那这部分接口就是组件的端口了。端口又分为P-Port(Provide,输出端口)和R-Port(Receive,输入端口)。
内部行为主要是Runnable的定义,在一个组件中,一般需要一个初始化Runnable和一个周期执行Runnable,每一个Runnable都会定义它的触发方式(INIT-EVENT或TIMING-EVENT)。
任意的接口都可以在这里定义,但我们只需要定义出组件中所用到的接口即可。这里接口的数据类型、描述等要素均有体现。
根据架构生成Arxml主要有四种方式:
对Arxml的文件格式感兴趣的朋友可以去AUTOSAR的官网下载模板文件。
Matlab对Arxml文件的支持用得最多的就是创建模型及更新模型这两个功能。
2019之后的Matlab版本已经集成了AUTOSAR工具箱,通过arxml.importer和createComponentAsModel这两个函数就可以将通过Arxml文件创建一个空模型了。
同样,通过arxml.importer和updateModel这两个函数就可以将通过Arxml文件更新一个已存在的模型,同时不会修改模型里面的其余无关内容。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。