ECU应用层开发--CAN报文打包及信号设置方法2

文摘   2024-11-02 06:52   上海  
在VCU应用层开发中,VCU接收输入信号后,按照控制策略计算判断后,输出控制信号或者状态量,输出信号大多需要通过CAN信号的形式发送至CAN总线,以达到控制其他执行器或控制器执行VCU指令或者接收VCU发送的状态。今天通过VCU3_MCU报文的打包及CAN信号的设置介绍一下在Simulink应用层开发中CAN报文的打包及CAN信号设置方法。
一、新建一个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打包模块可以用同样的方法设置。希望通过本文的介绍能给相关技术人员带来一些参考和帮助。

创作不易,欢迎点赞再看收藏关注


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


谦益行
分享汽车研发日常,助力你我共同成长。
 最新文章