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