Чтобы облегчить прототипирование кода и симуляции модели без оборудования, Vehicle Network Toolbox™ предоставляет MathWorks® виртуальное устройство CAN с двумя каналами. Эти каналы идентифицируются с поставщиком "MathWorks"
и устройство "Virtual 1"
, и доступны в обоих MATLAB® и Simulink®.
Эти виртуальные каналы поддерживают CAN, CAN FD и J1939 коммуникацию в Windows®, и поддерживает CAN и CAN FD на Linux®. Многие примеры по всей документации показывают, как использовать эти виртуальные каналы, чтобы можно было запускать их в собственной системе.
Два виртуальных канала принадлежат общему устройству, поэтому вы можете послать сообщение по каналу 1 и получить это сообщение по каналу 1 и каналу 2. Но поскольку виртуальное устройство является представлением уровня приложения шины CAN/CAN FD без фактической шины, применяются следующие ограничения:
Виртуальный интерфейс не выполняет действия протокола низкого уровня, такие как арбитраж, системы координат ошибок, подтверждение и так далее.
Хотя можно подключить несколько каналов одного и того же виртуального устройства в одном сеансе работы с MATLAB или в моделях Simulink, работающих в этом сеансе работы с MATLAB, вы не можете использовать виртуальные каналы для связи между различными сеансами работы с MATLAB.
Вы можете просмотреть устройство и каналы в MATLAB с canChannelList
функция.
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([(matlabroot) '/examples/vnt/data/J1939.dbc']); jch = j1939Channel(db,"MathWorks","Virtual 1",1);