中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 796查看
  • 0回复

[Simulink] ECU应用层开发-- CAN报文解包及信号设置方法1

[复制链接]


该用户从未签到

发表于 10-2-2025 19:11:52 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


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

一、新建SImulink模型,搭建输入输出信号及CAN报文解包模块
1、菜单栏主页-新建,选择Simulink 模型
ECU应用层开发-- CAN报文解包及信号设置方法1w1.jpg
2、在弹出的Simulink 起始页中,选择创建空白模型
ECU应用层开发-- CAN报文解包及信号设置方法1w2.jpg
3、在库浏览器中选择输入信号及输出信号拖动至模型空白处
ECU应用层开发-- CAN报文解包及信号设置方法1w3.jpg
4、在库浏览器-Vehicle Network Toolbox-CAN Communication,选择CAN Unpcak模块,拖动至模型空白处
ECU应用层开发-- CAN报文解包及信号设置方法1w4.jpg

二、CAN 解包模块参数设置

1、双击CAN Unpack模块,在弹出的模块参数窗口中,参数Data to output as选择CANdb specified signals,采用DBC文件解析方式。
当然可以根据个人需求,选择原始数据raw data或手动设置manually specified  signals
ECU应用层开发-- CAN报文解包及信号设置方法1w5.jpg
2、点击CANdb file栏Browse,选择DBC文件,打开
ECU应用层开发-- CAN报文解包及信号设置方法1w6.jpg
3、Message list选择MCU_VCU1,可以看到下边的Signals信号列表中已经根据选择的MCU_VCU1以及DBC文件显示解析的结果。勾选Output ports中Output error,可以在接收报文故障或丢失是将故障标志位输出。点击确定
ECU应用层开发-- CAN报文解包及信号设置方法1w7.jpg
4、在模型主界面可以看到CAN Unpack模块输出信号已经根据选择的报文及DBC文件显示出解析出的8个输出信号,复制新建另外7个输出信号,并按照信号名称命名,连接输出信号线
ECU应用层开发-- CAN报文解包及信号设置方法1w8.jpg

5、输出信号排列杂乱,可以通过框选8个输出信号,右键选择格式-自动排列
ECU应用层开发-- CAN报文解包及信号设置方法1w9.jpg
6、输出信号会自动排列整齐
ECU应用层开发-- CAN报文解包及信号设置方法1w10.jpg

三、CAN 解包模块输入输出信号设置
1、选择仿真-运行,报了一个错误,根据提示,没有设置数据类型,这是因为没有设置CAN解包模块的输入输出信号
ECU应用层开发-- CAN报文解包及信号设置方法1w11.jpg

2、选择建模-模型资源管理器
ECU应用层开发-- CAN报文解包及信号设置方法1w12.jpg

3、在弹出的模型资源管理器窗口中,选择Base Workspace,然后选择红框图标添加Simulink Signal
ECU应用层开发-- CAN报文解包及信号设置方法1w13.jpg
4、根据CAN解包模块输入信号,对信号进行命名,在代码生成页面,选择存储类为ImportFromFile,自定义属性为CAN_Rec.h,此头文件为底层程序中定义的报文接收文件
ECU应用层开发-- CAN报文解包及信号设置方法1w14.jpg
5、同样的方式添加输出信号,并设置,输出信号代码生成页面设置为ExportedGlobal
ECU应用层开发-- CAN报文解包及信号设置方法1w15.jpg
6、所以得输入输出信号设置完成
ECU应用层开发-- CAN报文解包及信号设置方法1w16.jpg
7、Base Workspace右键选择导出
ECU应用层开发-- CAN报文解包及信号设置方法1w17.jpg
8、保存设置的输入输出信号数据,选择保存的文件夹,命名并保存
ECU应用层开发-- CAN报文解包及信号设置方法1w18.jpg
9、在保存的文件夹中双击数据文件,在工作区中可以看到设置的输入输出信号数据
ECU应用层开发-- CAN报文解包及信号设置方法1w19.jpg

四、仿真测试及修正
1、选择仿真-运行,还是报了一个故障,根据提示显示输入端口1数据格式未设置
ECU应用层开发-- CAN报文解包及信号设置方法1w20.jpg
2、打开模型资源管理器,将输入信号CAN_EcanMessage_0x18015182数据类型由auto修改为uint8,如果在接收的底层程序数据CAN_Rec.h已定义数据格式,此处auto会自动继承接收的数据格式
ECU应用层开发-- CAN报文解包及信号设置方法1w21.jpg
3、再次导出数据
ECU应用层开发-- CAN报文解包及信号设置方法1w22.jpg
4、覆盖原数据文件
ECU应用层开发-- CAN报文解包及信号设置方法1w23.jpg
5、选择输入信号线,右键选择属性,将信号名称命名为输入信号名称,勾选信号名称必须解析为Simulink 信号对象,点击确定
ECU应用层开发-- CAN报文解包及信号设置方法1w24.jpg
6、再次选择仿真-运行,未报错误,模型运行完成
ECU应用层开发-- CAN报文解包及信号设置方法1w25.jpg
五、总结本文通过讲解MCU CAN解包模块的模块设置、输入输出信号的设置及仿真测试验证,说明了CAN解包模块的设置方法、CAN解包模块输入输出信号的设置方法以及CAN解包模块的仿真测试及修正方法。在模型搭建过程中,建议养成一种搭建完成仿真测试验证的习惯,在模块阶段发现错误,解决错误,避免在后期模块集成之后报出大量错误,增加解决错误的工作量和难度。希望通过本文的介绍能给相关技术人员带来一些参考和帮助。
创作不易,欢迎点赞再看收藏关注!

汽车研发交流群,有兴趣的朋友请添加群主:prOmiseyes,备注:公司+职务入群。仅限汽车从业人员。


该用户从未签到

发表于 11-3-2025 01:43:00 | 显示全部楼层
针对您提到的ECU应用层开发中的CAN报文解包及信号设置方法,回复如下:

在汽车工程中,CAN通讯因其通讯质量高和传输数据量大而得到广泛应用。在Simulink应用层开发中,进行CAN报文解包及信号设置是重要环节。首先,新建Simulink模型,搭建输入输出信号模块。接着,针对CAN报文解包,需根据具体报文格式定义解析策略,提取所需信号。对于CAN信号设置,需根据实际需求配置信号ID、数据位等参数。同时,为确保通讯质量,还需进行错误处理与检测。

以上内容简要概述了Simulink中CAN报文解包及信号设置的基本方法。如具体实现中遇到问题,建议查阅相关文档或寻求专业人士指导。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 11-3-2025 01:43:00 | 显示全部楼层
针对您的帖子,作为汽车工程师回复如下:

在VCU应用层开发中,处理CAN报文解包及信号设置是核心任务之一。首先,新建Simulink模型,搭建输入输出信号模块。针对CAN报文解包,需根据CAN协议规定进行。具体步骤包括:

1. 搭建CAN报文接收模块,接收来自MCU的报文。
2. 解析报文,提取其中的数据帧和信号信息。
3. 根据信号类型和特性进行信号处理,如开关信号、模拟信号等。
4. 在Simulink环境中配置相关参数,确保正确解析CAN信号并进行相应处理。

关于CAN信号设置方法,重点在于根据实际需求配置信号ID、数据位、波特率等参数。同时,考虑到汽车环境中电磁干扰等因素,还需确保通信的可靠性和稳定性。

以上仅为简要介绍,详细操作需结合具体项目需求进行。在实际开发中,还需深入研究CAN通信原理及特性,确保系统性能达到预期要求。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 14-12-2025 15:01 , Processed in 0.576819 second(s), 36 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.