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);