多路复用并传输多条 CAN 报文
此示例说明如何使用 MathWorks® 虚拟 CAN 通道在 Simulink® 中同时传输和接收多条 CAN 报文。虚拟通道以环回配置形式连接。
此示例使用 Vehicle Network Toolbox™ 中的 CAN Configuration、CAN Pack、CAN Transmit、CAN Receive 和 CAN Unpack 模块。此外,此示例使用 Mux (Simulink) 模块将要传输的多条 CAN 报文合并为单个向量。如果您的 CAN Pack 模块配置为作为总线输出,则请改用 Vector Concatenate (Simulink) 模块来合并 CAN 报文。
传输和接收复路 CAN 报文
包含的模型说明如何:
生成三个信号。
将信号打包到具有唯一 CAN ID 的单独 CAN 报文中。
将多条 CAN 报文合并为单个向量。
通过第一个虚拟通道同时传输多个 CAN 报文。
在第二个虚拟通道上接收 CAN 报文,并根据其 CAN ID 分别对其进行解包。

处理 CAN 报文
CAN Receive 模块在任何特定时间步接收到新报文时,都会生成一个函数调用触发信号。可以将此函数调用触发器连接到 Function-Call Subsystem (Simulink),然后由后者负责信号解码和处理。在子系统内,每个单独的 CAN 报文由三个 CAN Unpack 模块单独解包,每个模块负责解包具有指定 CAN ID 的报文。

可视化信号数据
绘制传输前后的三个信号值。X 轴对应于仿真时间步,Y 轴对应于信号的值。顶部绘图(传输的信号)和底部绘图(接收的信号)之间的相移表示信号在网络中传输时的传播延迟。

扩展示例
此示例使用 MathWorks 虚拟 CAN 通道。您可以将模型连接到其他支持的硬件。您还可以修改模型以同时传输其他信号。