主要内容

Simulink中的周期性CAN消息传输行为

这个例子展示了如何在Simulink®中使用MathWorks®虚拟CAN通道设置CAN消息的周期性传输和接收。虚拟通道通过环回配置连接。

车辆网络工具箱™提供了通过Simulink模型在控制器区域网络(CAN)上传输和接收实时消息的Simulink块。此示例使用可以配置可以包可以传输可以接收而且可以解压块在CAN总线上执行数据传输。

发送和接收CAN消息

创建一个模型,以在不同的时间发送两条消息,只接收指定的消息,并使用指定的ID解压消息。

  • 使用一个可以传输block发送ID为250的CAN消息,每1秒发送一次消息。

  • 使用另一个CAN Transmit块发送ID为500的CAN消息,每0.5秒发送一次消息。

  • 向两者输入一个信号可以包块到一个自动递增的计数器,限制为50。

  • 两个CAN传输块都连接到MathWorks虚拟通道1。

使用一个可以接收块从MathWorks虚拟通道2接收CAN消息。设置块为:

  • 只接收ID为250和500的消息。

  • 如果Receive块在任何特定的时间步上接收到新消息,则生成一个函数调用触发器。

可以解压块在函数调用子系统.只有当CAN Receive块在特定的时间步接收到新消息时,子系统才会被执行。

以不同的时间戳可视化信息

绘制结果以查看每个解压缩消息的计数器值和时间戳。图中的x轴对应模拟时间步长。时间戳图显示消息在指定的时间发送。还可以看到,由于为ID 250指定了不同的周期速率,因此为ID 250传输的消息数量是为ID 500传输的消息数量的一半。

扩展示例

本例中使用了MathWorks虚拟CAN通道。但是,您可以将您的模型连接到其他受支持的硬件。您还可以修改模型以不同的速率传输或者传输周期性和非周期性消息的组合。

本例使用CAN块,但演示的概念也适用于Simulink中的CAN FD块。

Baidu
map