Main Content

如何在 Simulink 中访问用于 CAN 通信的 ARXML 文件

此示例说明如何将 ARXML 文件与 CAN Pack 和 CAN Unpack 模块结合使用。这些文件应包含有效的 CAN 网络描述。

创建和配置模型

创建一个如图中所示的模型。此模型中使用了 MathWorks 虚拟通道,这些虚拟通道以环回配置形式相连接。

在传输表示车速和施加的制动力的两个信号之前,使用 CAN Pack 模块进行编码和打包。为此,请使用示例附带的简单 ARXML 文件中的定义。打开 CAN Pack 模块的封装,为“数据输入为”参数选择“ARXML 指定的信号”选项。然后,要更新“数据库文件”字段,请通过“浏览”按钮选择文件 small_file.arxml,然后点击“应用”。“信号”表以及模块的输入端口会根据文件中定义的唯一帧 (Frame_A) 的内容更新。如果在一个 ARXML 文件中定义了多个 CAN 帧,这些帧的名称将出现在“报文”窗格的下拉菜单“名称”中。

以类似的方式继续配置 CAN Unpack 模块。然后,此模块应放在一个函数调用子系统中,函数调用由与其连接的 CAN Receive 模块提供;这样,所有接收到的帧都将被解包。(请注意,如果不通过函数调用来控制 CAN Unpack 模块的执行,则在每个仿真时间步,该模块将仅解包 CAN Receive 模块接收到的最新的帧。)

将源模块连接到 CAN Pack 的输入端,将示波器或显示模块连接到 CAN Unpack 的输出端,如图所示。

运行仿真

运行仿真以验证信号值通过环回连接传播。使用输入值进行试验,其范围和精度根据 ARXML 文件中包含的定义进行限制,并在“信号”表中进行汇总。例如,Vehicle_Speed 是非负值,其上界为 255,并且由于它由 8 位表示,因此可能的最小增量为 1。

另请参阅

模块