Чтобы упростить прототипирование кода и симуляцию модели без оборудования, 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);