我是靠谱客的博主 伶俐方盒,最近开发中收集的这篇文章主要介绍基于MATLAB和simulink的CAN报文收发模块仿真实验前言一、用到的模块二、模块连接三、模块参数设置四、模块仿真总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 前言
  • 一、用到的模块
  • 二、模块连接
    • 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报文收发模块仿真实验前言一、用到的模块二、模块连接三、模块参数设置四、模块仿真总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部