Simlink 生成A2L标定量和检测量

本文详细介绍了如何在汽车电子ECU开发中采用基于模型的设计(MBD)搭建应用程序,包括Simulink模型搭建、用户存储类设置、A2L文件及AUTOSAR代码生成,以及代码集成到工程中的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.采用基于模型的设计(MBD)搭建应用程序

从Simulink Library Browser中推拽出如下模块,搭建模型。

Matlab function内容如下图

2.设置用户存储类(CSC)

因为a2l中的标定量和检测量存放在用户指定的区域,故在代码生成时需要指定该变量存储的位置。

在CMD窗口中输入 cd(fullfile(matlabroot,'/toolbox/simulink/simdemos/dataclasses'))

将文件夹+SimulinkDemos复制到如D:\MyProjects\MyPackage,并重命名为+myPackage.

 将matlab路径定位到D:\MyProjects\MyPackage,并打开Parameter.m和Signal.m文件。修改这两个文件中的methds方法下的函数setupCoderInfo(line45),并将参数更改为“myPackage”和刚才重命名的一致。

保存并关闭文件

打开matlab主页上的设置路径按钮,添加package路径

添加package路径

点击保存,确认按钮

在CMD窗口中键入:cscdesigner('myPackage'),此时将打开cscdesigner

点击Memory Seeting选项卡,点击New,设置参数如下(这个具体内容需要根据实际的MCU进行设置)如下定义两种内存区,一个是calibration内存区,另一个是monitor内存区.在设置参数后可点击Valiable按钮检测是否设置出错,在Validating result输出窗口中查看。

在Custom Storage Class选项卡中,点击New ,参数如下,下图设定义了2个存储类,一个是calibration存储类,另一个是monitor存储类.在设置参数后可点击Valiable按钮检测是否设置出错,在Validating result输出窗口中查看。

点击ok,弹出的窗口中点击OK按钮。

点击simulink模型中的userkey1模块,打开对话框,在Signal Attributes选项卡中,点击Data Store
Memory:simulink.Signal下拉选择Customize calss lists,在Signal classes栏中勾选myPackage.Signal前的复选框,如图

点击ok,在刚才点击打开的模块的对话框中,再次下拉Signal object class,此时选择myPackage.Signal,然后再Storage class的下拉框中选择MyCalib,此时就已将该变量设置为标定两个,如图。

A模块和userkey1模块一样,设置为标定量,userdata1和userdata2模块在Storage class下拉中选择MyMonitor.

以上就设置好了,simulink模块的参数,接下来还需要设置代码生成的规则。

3.设置系统生成A2L文件,并生成AUTOSAR代码。

ctrl + e,打开模型配置参数对话框,设置如图。

以上配置就基本上能生成了autosar代码和a2l文件,当然还有其它优化生成代码的选项,这里就不多说了。

在模型中点即RUN,若没有错误,则点击Bulid Mode,生成代码,如图。

4.将生成的代码集成到工程中,利用生成的Hex文件,map文件,将A2l中的变量地址填充上(另外可能还需编写一些文件信息到A2L中,如标定时的canId,QAC触发条件等信息),即可在标定软件中使用了。

以上四点即我在项目中使用的手法,若有错误还望指出。

本人是从事汽车电子ECU的开发的攻城狮一枚,主要从事BSW的开发,欢迎志同道合的朋友加我微信,一起讨论有关汽车电子开发的技术。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值