Main Content

MathWorks 虚拟通道

描述

为了便于在没有硬件的情况下进行代码原型构建和模型仿真,Vehicle Network Toolbox™ 提供了一个具有两个通道的 MathWorks® 虚拟 CAN 设备。这些通道以供应商 "MathWorks" 和设备 "Virtual 1" 进行标识,在 MATLAB® 和 Simulink® 中均可访问。

这些虚拟通道在 Windows® 上支持 CAN、CAN FD 和 J1939 通信,在 Linux® 上支持 CAN 和 CAN FD。整个文档中的许多示例都介绍了如何使用这些虚拟通道,以便您可以在自己的系统上运行它们。

这两个虚拟通道属于一个公共设备,因此您可以在通道 1 上发送报文,并在通道 1 和通道 2 上接收该报文。但是,由于该虚拟设备是没有实际总线的 CAN/CAN FD 总线的应用层表示,因此存在以下限制:

  • 虚拟接口不执行低级协议活动,如仲裁、错误帧、确认等。

  • 虽然您可以在同一 MATLAB 会话中或在该 MATLAB 会话运行的 Simulink 模型中连接同一虚拟设备的多个通道,但您无法使用虚拟通道在不同 MATLAB 会话之间进行通信。

示例

您可以使用 canChannelList 函数在 MATLAB 中查看设备和通道。

canChannelList
ans =

  2×6 table

      Vendor         Device       Channel    DeviceModel    ProtocolMode     SerialNumber
    ___________    ___________    _______    ___________    _____________    ____________

    "MathWorks"    "Virtual 1"       1        "Virtual"     "CAN, CAN FD"        "0"     
    "MathWorks"    "Virtual 1"       2        "Virtual"     "CAN, CAN FD"        "0"

创建一个虚拟 CAN 通道。

canch = canChannel("MathWorks","Virtual 1",1);

创建一个虚拟 CAN FD 通道。

canfdch = canFDChannel("MathWorks","Virtual 1",2);

创建一个虚拟 J1939 通道。

db = canDatabase("/myVNTData/J1939.dbc");
jch = j1939Channel(db,"MathWorks","Virtual 1",1);

另请参阅

函数

相关主题