实例讲解Simulink应用层开发CAN报文解包及CAN信号设置方法

在VCU应用层开发中,在输入信号中主要包括开关信号、模拟信号、CAN信号、PWM信号等,其中CAN通讯由于通讯质量高,传输数据量大,采用总线通讯方式节省大量线束,在汽车上尤其是电动汽车上大量应用,当然,近几年又推出通讯速率更快的CAN FD,但是目前汽车上用的最多的还是CAN通讯方式。今天通过MCU一个报文的解包及CAN信号的设置介绍一下再Simulink应用层开发中CAN报文的解包及CAN信号设置方法。

目录

一、新建SImulink模型,搭建输入输出信号及CAN报文解包模块

二、CAN 解包模块参数设置

三、CAN 解包模块输入输出信号设置

四、仿真测试及修正

五、总结


一、新建SImulink模型,搭建输入输出信号及CAN报文解包模块

1、菜单栏主页-新建,选择Simulink 模型

2、在弹出的Simulink 起始页中,选择创建空白模型

3、在库浏览器中选择输入信号及输出信号拖动至模型空白处

4、在库浏览器-Vehicle Network Toolbox-CAN Communication,选择CAN Unpcak模块,拖动至模型空白处

二、CAN 解包模块参数设置

1、双击CAN Unpack模块,在弹出的模块参数窗口中,参数Data to output as选择CANdb specified signals,采用DBC文件解析方式。当然可以根据个人需求,选择原始数据raw data或者手动设置manually specified signals

2、点击CANdb file栏Browse,选择DBC文件,打开

3、Message list选择MCU_VCU1,可以看到下边的Signals信号列表中已经根据选择的MCU_VCU1以及DBC文件显示解析的结果。勾选Output ports中Output error,可以在接收报文故障或丢失是将故障标志位输出。点击确定

4、在模型主界面可以看到CAN Unpack模块输出信号已经根据选择的报文及DBC文件显示出解析出的8个输出信号,复制新建另外7个输出信号,并按照信号名称命名,连接输出信号线

5、输出信号排列杂乱,可以通过框选8个输出信号,右键选择格式-自动排列

6、输出信号会自动排列整齐

三、CAN 解包模块输入输出信号设置

1、选择仿真-运行,报了一个错误,根据提示,没有设置数据类型,这是因为没有设置CAN解包模块的输入输出信号

2、选择建模-模型资源管理器

3、在弹出的模型资源管理器窗口中,选择Base Workspace,然后选择红框图标添加Simulink Signal

4、根据CAN解包模块输入信号,对信号进行命名,在代码生成页面,选择存储类为ImportFromFile,自定义属性为CAN_Rec.h,此头文件为底层程序中定义的报文接收文件

5、同样的方式添加输出信号,并设置,输出信号代码生成页面设置为ExportedGlobal

6、所以得输入输出信号设置完成

7、Base Workspace右键选择导出

8、保存设置的输入输出信号数据,选择保存的文件夹,命名并保存

9、在保存的文件夹中双击数据文件,在工作区中可以看到设置的输入输出信号数据

四、仿真测试及修正

1、选择仿真-运行,还是报了一个故障,根据提示显示输入端口1数据格式未设置

2、打开模型资源管理器,将输入信号CAN_EcanMessage_0x18015182数据类型由auto修改为uint8,如果在接收的底层程序数据CAN_Rec.h已定义数据格式,此处auto会自动继承接收的数据格式

3、再次导出数据

4、覆盖原数据文件

5、选择输入信号线,右键选择属性,将信号名称命名为输入信号名称,勾选信号名称必须解析为Simulink 信号对象,点击确定

6、再次选择仿真-运行,未报错误,模型运行完成

五、总结

本文通过讲解MCU CAN解包模块的模块设置、输入输出信号的设置及仿真测试验证,说明了CAN解包模块的设置方法、CAN解包模块输入输出信号的设置方法以及CAN解包模块的仿真测试及修正方法。在模型搭建过程中,建议养成一种搭建完成仿真测试验证的习惯,在模块阶段发现错误,解决错误,避免在后期模块集成之后报出大量错误,增加解决错误的工作量和难度。希望通过本文的介绍能给相关技术人员带来一些参考和帮助。

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电控极客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值