概述
此外,更多时候我们是在Simulink中使用CAN信号的传输和接收,例如下面这个用Simulink仿真汽车CAN信号的例子。
为了做出上述功能,我们先来学一下Simulink中CAN模块的基本使用。
文章目录
- CAN模块介绍
- 周期性CAN报文传输
- 传输和接收CAN报文
- 可视化不同时间戳的报文
- 基于事件的CAN报文传输
- 记录和重播CAN报文
CAN模块介绍
1.CAN Configuration
2.CAN Log
3.CAN Replay
4.CAN Pack
5.CAN Unpack
6.CAN Receive
7.CAN Transmit
了解了CAN相关Simulink模块的基本信息,再来搭建下面的模型。
周期性CAN报文传输
使用 MathWorks 虚拟 CAN 通道在 Simulink 中设置 CAN 报文的周期性传输和接收。虚拟通道以环回配置形式连接。
Vehicle Network Toolbox™ 提供了 Simulink 模块,用于通过 Simulink 模型在控制器局域网 (CAN) 上传输和接收实时报文。此示例使用 CAN Configuration、CAN Pack、CAN Transmit、CAN Receive 和 CAN Unpack 模块
来执行 CAN 总线上的数据传输。
传输和接收CAN报文
创建一个模型,以2个不同的周期传输报文(也就是选择两个不同的波特率),并仅接收指定的报文和解包具有指定 ID 的报文。
- CAN Configuration设置波特率为500000(500K)。
- 使用一个 CAN Transmit 模块传输 ID 为 250 的 CAN 报文,每 1 秒传输一次报文(Transmit)。
- 使用另一个 CAN Transmit 模块传输 ID 为 500 的 CAN 报文,每 0.5 秒传输一次报文(Transmit)。
- 向两个 CAN Pack 模块各输入一个信号以使计数器自动递增,计数上限为 50。
- 两个 CAN Transmit 模块都连接到 MathWorks 虚拟通道 1。
使用一个 CAN Receive 模块从 MathWorks 虚拟通道 2 接收 CAN 报文。将该模块设置为:
- 仅接收 ID 为 250 和 500 的报文。
- 如果 Receive 模块在任何特定时间步接收到新报文,该模块会生成一个函数调用触发器(function)。
CAN Unpack 模块位于函数调用子系统中。子系统仅当 CAN Receive 模块在特定时间步接收到新报文时才执行。
可视化不同时间戳的报文
配置好通道1和通道2后的模型如下:
绘制结果以查看每个解包报文的计数器值和时间戳。图上的 X 轴对应于仿真时间步。时间戳图显示报文是在指定时间发送的。还可以看出,由于指定了不同周期性速率,传输的 ID 为 250 的报文数量是 ID 为 500 的报文数量的一半。
基于事件的CAN报文传输
。。。
记录和重播CAN报文
。。。
以上。
最后
以上就是哭泣纸鹤为你收集整理的【Matlab】Simulink中CAN模块的使用(车辆网络工具箱)的全部内容,希望文章能够帮你解决【Matlab】Simulink中CAN模块的使用(车辆网络工具箱)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复