simulink 周期性 can 报文传输行为 -凯发k8网页登录
此示例说明如何使用 mathworks® 虚拟 can 通道在 simulink® 中设置 can 报文的周期性传输和接收。虚拟通道以环回配置形式连接。
vehicle network toolbox™ 提供了 simulink 模块,用于通过 simulink 模型在控制器局域网 (can) 上传输和接收实时报文。此示例使用 、、、 和 模块通过 can 总线执行数据传输。
传输和接收 can 报文
创建一个模型,以不同周期传输两条报文,并仅接收指定的报文和解包具有指定 id 的报文。
使用一个 模块传输 id 为 250 的 can 报文,每 1 秒传输一次报文。
使用另一个 can transmit 模块传输 id 为 500 的 can 报文,每 0.5 秒传输一次报文。
向两个 模块各输入一个信号以使计数器自动递增,计数上限为 50。
两个 can transmit 模块都连接到 mathworks 虚拟通道 1。
使用一个 模块从 mathworks 虚拟通道 2 接收 can 报文。将该模块设置为:
仅接收 id 为 250 和 500 的报文。
如果 receive 模块在任何特定时间步接收到新报文,该模块会生成一个函数调用触发器。
模块位于 (simulink) 中。子系统仅当 can receive 模块在特定时间步接收到新报文时才执行。
可视化不同时间戳的报文
绘制结果以查看每个解包报文的计数器值和时间戳。图上的 x 轴对应于仿真时间步。时间戳图显示报文是在指定时间发送的。还可以看出,由于指定了不同周期性速率,传输的 id 为 250 的报文数量是 id 为 500 的报文数量的一半。
扩展示例
此示例使用了 mathworks 虚拟 can 通道。但是,您可以将模型连接到其他支持的硬件。您还可以修改模型以便以不同速率进行传输,或者传输周期性和非周期性报文的组合。
此示例使用 can 模块,但所演示的概念也适用于 simulink 中的 can fd 模块。