Simulink 中的 CAN 通信工作流
报文传输工作流
此工作流代表最常见的 CAN 传输模型。根据需要调整您的模型。如需更多工作流示例,请参阅构建 CAN 通信 Simulink 模型和 Vehicle Network Toolbox 示例中的“Simulink 教程”。
使用 Mux 模块
使用 Mux (Simulink) 模块可以组合来自源且以相同速率传输的每条报文。
对每个已配置的 Mux (Simulink) 模块使用一个 CAN Transmit 模块。
报文接收工作流
报文过滤
设置过滤器以仅处理相关报文。这可以确保最佳仿真性能。
如果需要解析所有总线通信,请不要设置过滤器。
函数调用触发的报文处理
按如下方式设置您的 CAN Unpack 模块:
如果要解包 CAN Receive 模块收到的每条报文,则在函数调用触发子系统中设置您的 CAN Unpack 模块。
如果要仅解包 CAN Receive 模块收到的最新报文,则不使用函数调用触发子系统来设置您的 CAN Unpack 模块。
如果您的接收模块要过滤单个报文,请设置此系统。
下游处理
对于使用收到的报文进行的任何下游处理,请按如下方式包含模块:
如果下游进程必须响应在此模型中的单个时间步收到的所有报文,则在函数调用子系统中包含模块。
如果下游进程仅响应在此模型中的给定时间步收到的最新报文,则只能在函数调用子系统以外的位置包含模块。
在这种情况下,CAN Unpack 模块将不会响应收到的任何其他报文,无论报文 ID 为何。