AutoSAR-基于Matlab/Simulink的软件组件开发
创始人
2025-05-30 17:28:23
0

AUTOSAR软件组件级设计与开发主要是针对应用层软件,需要先基于Matlab/Simulink进行应用层软件组件的模型建立,并配置生成符合AUTOSAR规范的代码及arxml描述文件,这是一种“自下而上”的工作流程。

基于Matlab/Simulink的软件组件开发主要就是对AUTOSAR软件组件内部行为的实现,即实现内部算法。

Matlab/Simulink与AutoSAR的对应关系

大家都知道Simulink是有自动生成代码(Embedded Coder)功能的,但是可不是生成的所有代码都可以用到AutoSar里面,而是我们在设计之处就应该按照一定的对应关系来设计AtuoSAR软件组件的各个组成元素:

实战

Simulink中利用Function Call Subsystem(函数调用子系统)来表征AUTOSAR软件组件的Runnable Entity(运行实体);

利用Function Call(函数调用)来表征AUTOSAR软件组件的RTE Event(RTE事件)利用这个思路咱们设计一个电灯的SWC——LightControlSWC。

找到Function Call Subsystem模块

Simulink / Ports & Subsystems

根据功能需求进行内部建模

LightControlSWC软件组件主要有两个运行实体:

RE_JudgeLightState通过采集车灯实际硬件上的控制信号,即对于A型车灯通过ADC采集电压信号,对于B型车灯则通过ICU采集PWM占空比,对采样值进行处理判断后通过运行实体间变量IRVJudgeLightState将车灯状态传递给RE_LightControl。

RE_LightControl则负责将车灯状态与车灯类型通过端口发出,并且将车灯实际控制量传递给I/O抽象软件组件。

接口端口设计:

模块搭建如下:

注意:

  • Inport 1(Event_JudgeLightState)和Inport 2(Event_LightControl)作为RTE事件,所以需要勾选Output function call
  • 对于周期性触发的RE_JudgeLightState,作 为RTE事件的Inport 1中的Sample time则对应该运行实体的调用周期


同理,可以开发出LightRequestSWC软件组件的Simulink模型

功能需求如下:

LightRequestSWC软件组件对于A型和B型车灯控制器共有的主要任务是负责检测并判断车灯开关的状态:

  • 对于B型车灯还负责接收并判断外界光强情况,并对外输出车灯控制指令,
  • 对于A型车灯控制指令为0/1,即开与关;
  • 对于B型车灯控制指令为PWM占空比值,分为0、50%、100%。
  • 此外,当车灯开关关闭时间长于5分钟时,发出关闭LightECU CAN通信的指令,一旦检测到车灯开关打开,则再恢复控制器CAN通信

搭建模型:

AUTOSAR客户端/服务器机制的实现

客户端/服务器机制的本质是函数调用关系,客户端调用服务器的函数。

  • C/S PPort(C/S供型端口),即Server端,对应Simulink Function(Simulink函数模块);
  • C/S RPort(C/S需型端口),即Client端,对应Function Caller(函数调用模块)

举例,在前面的RE_JudgeLightState运行实体中的Client设计:

该端口需要调用IOAbstractionSWC软件组件中的函数,并从中读取灯的状态信息,对于A型车灯而言是读取A/D转换值,对于B型车灯而言是读取ICU捕获到的脉冲占空比值:

插入模块:Function Caller就是调用某个组件中的函数

搭建模型:

生成代码与文件配置

ctrl+e将进入配置界面:

第一步设置固定步长

第二步配置系统目标文件

tlc是target language compiler(目标语言编辑器)的全称,其类似脚本语言,可以控制代码生成的格式。

再进入AUTOSAR Code Generation:

  • Generate XML file for schema version选项中可以选择生成描述文件的AUTOSAR版本;
  • Maxium SHORT-NAME length属性可以设置命名的最大长度,即之后在配置软件组件相关特性时自定义名字的最大长度。
  • Use AUTOSAR compiler abstraction macros选项则是开启或者关闭AUTOSAR规范中所定义的一些宏,如FUNC等

再往下就和书里不太一样了,simulink升级比较快,很多操作都变了。

找到autosar配置窗口

一定要注意标出的这两个组件:

AUTOSAR Dictionary:

以树格式显示映射的 AUTOSAR 组件及其元素、通信接口、计算方法、软件寻址方法和 XML 选项,使用该字典可从 AUTOSAR 组件的角度配置 AUTOSAR 元素和属性。

Mapping:

主要可以将Simulink中所建模型的元素与AUTOSAR软件组件相关元素进行对应

配置流程

先在AUTOSAR Dictionary界面完成软件组件元素的定义与相关配置,再切换到Simulink-AUTOSAR Mapping界面完成AUTOSAR软件组件元素与Simulink元素的映射。

具体配置流程不再赘述,按照自己的要求配置完成后,点击代码生成:

就可以看到生成的代码模型:

生成的文件树,就在模型所在文件夹下:

每个文件都有自己的作用:

.c:包含所有软件组件运行实体的模型算法实现 代码,每个运行实体分别对应一个函数;

.h:包含系统的数据结构、函数外部声明

_types.h:包含用typedef定义的模型中所有的参数结构体;

_private.h:包含软件组件私有函数的定义和数据声明

rtwtypes.h:定义Matlab/Simulink的数据类型格式;

.arxml:这个arxml描述性文件里描述了test软件组件的端口、端口接口、数据类型和内部行为等AUTOSAR软件组件中的元素;

C_external_interface.arxml:这个arxml描述性文件里描述了LightControlSWC 软件组件所包括的C/S接口信息。

参考

《AUTOSAR规范与车用控制器软件开发》

matlab帮助中心:开发符合 AUTOSAR 标准的模型- MATLAB & Simulink Example- MathWorks 中国

相关内容

热门资讯

安卓子系统windows11,... 你知道吗?最近科技圈可是炸开了锅,因为安卓子系统在Windows 11上的兼容性成了大家热议的话题。...
电脑里怎么下载安卓系统,电脑端... 你有没有想过,你的电脑里也能装上安卓系统呢?没错,就是那个让你手机不离手的安卓!今天,就让我来带你一...
索尼相机魔改安卓系统,魔改系统... 你知道吗?最近在摄影圈里掀起了一股热潮,那就是索尼相机魔改安卓系统。这可不是一般的改装,而是让这些专...
安卓系统哪家的最流畅,安卓系统... 你有没有想过,为什么你的手机有时候像蜗牛一样慢吞吞的,而别人的手机却能像风一样快?这背后,其实就是安...
安卓最新系统4.42,深度解析... 你有没有发现,你的安卓手机最近是不是有点儿不一样了?没错,就是那个一直在默默更新的安卓最新系统4.4...
android和安卓什么系统最... 你有没有想过,你的安卓手机到底是用的是什么系统呢?是不是有时候觉得手机卡顿,运行缓慢,其实跟这个系统...
平板装安卓xp系统好,探索复古... 你有没有想过,把安卓系统装到平板上,再配上XP系统,这会是怎样一番景象呢?想象一边享受着安卓的便捷,...
投影仪装安卓系统,开启智能投影... 你有没有想过,家里的老式投影仪也能焕发第二春呢?没错,就是那个曾经陪你熬夜看电影的“老伙计”,现在它...
安卓系统无线车载carplay... 你有没有想过,开车的时候也能享受到苹果设备的便利呢?没错,就是那个让你在日常生活中离不开的iOS系统...
谷歌安卓8系统包,系统包解析与... 你有没有发现,手机更新换代的速度简直就像坐上了火箭呢?这不,最近谷歌又发布了安卓8系统包,听说这个新...
微软平板下软件安卓系统,开启全... 你有没有想过,在微软平板上也能畅享安卓系统的乐趣呢?没错,这就是今天我要跟你分享的神奇故事。想象你手...
coloros是基于安卓系统吗... 你有没有想过,手机里的那个色彩斑斓的界面,背后其实有着一个有趣的故事呢?没错,我要说的就是Color...
安卓神盾系统应用市场,一站式智... 你有没有发现,手机里的安卓神盾系统应用市场最近可是火得一塌糊涂啊!这不,我就来给你好好扒一扒,看看这...
黑莓平板安卓系统升级,解锁无限... 亲爱的读者们,你是否还记得那个曾经风靡一时的黑莓手机?那个标志性的全键盘,那个独特的黑莓体验,如今它...
安卓文件系统采用华为,探索高效... 你知道吗?最近安卓系统在文件管理上可是有了大动作呢!华为这个科技巨头,竟然悄悄地给安卓文件系统来了个...
深度系统能用安卓app,探索智... 你知道吗?现在科技的发展真是让人惊叹不已!今天,我要给你揭秘一个超级酷炫的话题——深度系统能用安卓a...
安卓系统的分区类型,深度解析存... 你有没有发现,你的安卓手机里藏着不少秘密?没错,就是那些神秘的分区类型。今天,就让我带你一探究竟,揭...
安卓系统铠无法兑换,揭秘无法兑... 最近是不是有很多小伙伴在玩安卓系统的游戏,突然发现了一个让人头疼的问题——铠无法兑换!别急,今天就来...
汽车安卓系统崩溃怎么刷,一键刷... 亲爱的车主朋友们,你是否曾遇到过汽车安卓系统崩溃的尴尬时刻?手机系统崩溃还能重启,但汽车系统崩溃了,...
miui系统可以刷安卓p系统吗... 亲爱的手机控们,你是否对MIUI系统情有独钟,同时又对安卓P系统的新鲜功能垂涎欲滴?今天,就让我带你...