概述
文章目录
- 前言
- 一、用到的模块
- 二、模块连接
- 1.发送模块
- 2.接收模块
- 3.整体模块
- 三、模块参数设置
- 1.config模块
- 2.pack与unpack模块
- 3.仿真参数
- 四、模块仿真
- 总结
前言
利用simulink进行CAN总线收发模拟仿真,结合在线学习和自己理解。
一、用到的模块
1、CAN configuration模块;
2、CAN pack模块;
3、CAN transmit模块;
4、其他常用模块;
二、模块连接
1.发送模块
在这里用到了config模块(接受与发送各需要一个)、pack模块和transmit模块。因为是测试模块没有具体的数据输入,所以自己设置1-8的数字常量作为CAN数据帧的输入,在实际总线数据中,这里面每个数的数据长度为一个字节,所以constant模块输出数据类型应选择uint8。
2.接收模块
接收部分同理用到了config模块、unpack模块、receive模块以及一个Function-Call子模块。
function-call功能类似代码中的回调函数,当receive模块检测到接收报文时,触发该function-call系统进行内部CAN unpack操作。
3.整体模块
三、模块参数设置
1.config模块
busspeed都设置为500K,发送端config模块选channel1、接收端config模块选channel2。与之对应的transmit模块和receive模块也选择相应channel。
2.pack与unpack模块
1、pack模块双击打开如下配置
2、unpack如下
注:如果实际工程采用dbc文件定义CAN信息,可以在第一行下拉选择。
3.仿真参数
解算器solver选择离散型,仿真步长0.01s,不生成嵌入式代码其实可以不设置。本模型采用配置模块虚拟CAN网络,可以生成代码,但实际中不会这么用。
仿真时间里stop time设置为inf。
四、模块仿真
1、8个数据常量输入
2、数据1的值0、1变化
3、加入realtime模块
总结
通过一个简单的CAN总线测试模块,验证CAN接收发送,CAN pack、CAN unpack功能,了解基本使用方法。思考如何应用到实际开发。
最后
以上就是伶俐方盒为你收集整理的基于MATLAB和simulink的CAN报文收发模块仿真实验前言一、用到的模块二、模块连接三、模块参数设置四、模块仿真总结的全部内容,希望文章能够帮你解决基于MATLAB和simulink的CAN报文收发模块仿真实验前言一、用到的模块二、模块连接三、模块参数设置四、模块仿真总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复