Main Content

Simulink 中的 CAN 通信工作流

报文传输工作流

此工作流代表最常见的 CAN 传输模型。根据需要调整您的模型。如需更多工作流示例,请参阅构建 CAN 通信 Simulink 模型Vehicle Network Toolbox 示例中的“Simulink 教程”。

Work flow diagram for CAN message transmission in Simulink

使用 Mux 模块

  • 使用 Mux (Simulink) 模块可以组合来自源且以相同速率传输的每条报文。

  • 对每个已配置的 Mux (Simulink) 模块使用一个 CAN Transmit 模块。

报文接收工作流

报文过滤

设置过滤器以仅处理相关报文。这可以确保最佳仿真性能。

如果需要解析所有总线通信,请不要设置过滤器。

函数调用触发的报文处理

按如下方式设置您的 CAN Unpack 模块:

  • 如果要解包 CAN Receive 模块收到的每条报文,则在函数调用触发子系统中设置您的 CAN Unpack 模块。

  • 如果要仅解包 CAN Receive 模块收到的最新报文,则不使用函数调用触发子系统来设置您的 CAN Unpack 模块。
    如果您的接收模块要过滤单个报文,请设置此系统。

下游处理

对于使用收到的报文进行的任何下游处理,请按如下方式包含模块:

  • 如果下游进程必须响应在此模型中的单个时间步收到的所有报文,则在函数调用子系统中包含模块。

  • 如果下游进程仅响应在此模型中的给定时间步收到的最新报文,则只能在函数调用子系统以外的位置包含模块。
    在这种情况下,CAN Unpack 模块将不会响应收到的任何其他报文,无论报文 ID 为何。