实例讲解Simulink 应用层开发CAN打包模块建模及信号设置方法

在VCU应用层开发中,VCU接收输入信号后,按照控制策略计算判断后,输出控制信号或者状态量,输出信号大多需要通过CAN信号的形式发送至CAN总线,以达到控制其他执行器或控制器执行VCU指令或者接收VCU发送的状态。今天通过VCU3_MCU报文的打包及CAN信号的设置介绍一下在Simulink应用层开发中CAN报文的打包及CAN信号设置方法。

目录

一、新建一个Simulink CANpack模块

二、CANpack输入信号建模

1、普通输入信号建模

2、心跳信号建模

3、校验信号建模

三、CANpack输出信号建模

四、输入输出信号设置

五、总结


一、新建一个Simulink CANpack模块

1、新建一个Simulink空白模型,在库浏览器中Vehicle Network Toolbox-CAN Communication选择CAN Pack模块拖动至空白处

2、双击CAN Pack模块,Data is input as选项选择CANdb specified signals,从DBC文件解析进行CAN打包

3、CAN file 选项Browse选项选择DBC文件,打开

4、Message list选择要打包的CAN报文VCU3_MCU,确定

5、勾选output as bus,输出为总线数据,signal栏显示出DBC文件中定义的信号内容,确定

6、CAN Pack模块创建完成

二、CANpack输入信号建模

1、普通输入信号建模

根据DBC定义的发送信号,新建输入信号1-8,实际VCU模型搭建中,这些输入信号来自于控制模块输出的控制信号或状态信号

2、心跳信号建模

1)其中信号2 HrtBt为心跳信号,持续循环发送,在库浏览器Sources中选择Counter Free-Running

2)在库浏览器Commonly Used Blocks中选择Data Type Conversion,设置为uint8

3)按照DBC文件设定设置位数为2

3、校验信号建模

1)信号1 为校验信号,通讯协议中定义为byte7×OR byte6×OR byte5×OR byte4×OR byte3×OR byte2×OR byte1,即byte1-byte7字节进行位与运算输出;复制CAN pack模块,作为校验信号计算使用

2)分别连接各输入信号至复制的CAN Pack模块输入端,其中ChkSum值是要计算的输出值,在输入端接地

3)接地信号是为了防止出现关于未连接的输入端口的警告

4)在库浏览器CAN Communication中选择CAN Unpack,拖动至空白处

5)双击CAN Unpack模块,Data to output as选择manually specified signals,即手动设置报文内容

6)Name设置为VCU3_MCU,CAN Identifier 设置为309,Length(bytes)设置为8

7)点击Add signal添加7个信号,并设置Name为Byte1-Byte7,起始位和字节长度设置如图所示,设置完成,确定

8)连接CAN Pack模块输出信号与CAN Unpack模块输入信号,并将CAN Unpack输出信号格式分别转换为unit8

9)在库浏览器Logic and Bit Operation中选择Bitwise OR,拖动至空白处

10)不勾选使用位掩码,输入端口数目设置为7,确定

11)新建输出信号ChkSum

12)选中所搭建的校验模块,右键选择给予所选内容创建子系统

13)创建的子系统输出信号与CAN Pack模块输入信号1 VCU3_ChkSum连接,输入信号模型搭建完成

三、CANpack输出信号建模

1、新建输出信号,CAN_EcanMessage_0x135,即将信号打包为CAN信号后发送至Ecan

2、在库浏览器Signal Attributes中选择Signal Copy,拖动至空白处,该信号为信号复制模块

3、新建输出信号2 CAN_Pcan_CanMessage_0x135,通过Signal Copy模块连接至CAN Pack打包模块输出信号,即将CAN Pack信号同时发送至Ecan和Pcan

四、输入输出信号设置

1、选择菜单栏建模-模型资源管理器

2、在模型资源管理器窗口选择Base Workspace,并点击红框图标,添加Simulink Signal

3、添加两个输出信号,并设置信号存储类型

4、以同样的方式新建输入信号

5、选择Base Workspace右键导出为mat文件

6、命名为test,选择保存位置,保存

7、双击打开test.mat,在工作区显示设置的输入信号及输出信号

8、在菜单栏选择建模-模型设置,求解器类型选择定步长,离散(无连续状态),固定步长为0.01s

9、在菜单栏选择仿真-运行,对模型进行仿真测试,测试无问题,模型搭建完成

五、总结

本文通过VCU3_MCU报文Simulink CAN打包模块模型搭建及输入输出信号设置,说明了Simulink CAN打包模块设置的一般方法。其他CAN打包模块可以用同样的方法设置。希望通过本文的介绍能给相关技术人员带来一些参考和帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

电控极客

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

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

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

打赏作者

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

抵扣说明:

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

余额充值