Получите сообщения CAN от заданного устройства CAN
Vehicle Network Toolbox: коммуникация CAN
Блок CAN Receive получает сообщения от сети CAN и поставляет им модели Simulink®. Это выводит одно сообщение или все сообщения в каждый такт, в зависимости от параметров блоков.
Вам нужна лицензия на оба программных обеспечения Vehicle Network Toolbox™ и Simulink, чтобы использовать этот блок.
Блок CAN Receive имеет два выходных порта:
Выходной порт f()
является триггером к Подсистеме вызова функций. Если блок получает новое сообщение, он инициировал Вызов функции от этого порта. Можно затем соединиться с Подсистемой вызова функций, чтобы распаковать и обработать сообщение.
Выходной порт CAN Msg
содержит сообщение CAN, полученное в тот конкретный такт.
Блок CAN Receive хранит сообщения CAN в методе "первым пришел - первым вышел" (FIFO) буфер. Буфер FIFO передает сообщения к вашей модели в порядке с очередями в каждый такт.
У вас не может быть больше чем одного блока CAN Receive в модели с помощью того же канала ПИКОВОГО Системного устройства системы.
Блок CAN Receive поддерживает использование режима Simulink Accelerator™. Используя эту функцию, можно ускорить выполнение моделей Simulink. Для получения дополнительной информации об этой функции см. документацию Simulink.
Блок CAN Receive поддерживает использование генерации кода наряду с функцией packNGo, чтобы сгруппировать требуемый исходный код, и зависимый совместно использовал библиотеки. Для получения дополнительной информации смотрите Генерацию кода.
Блоки Simulink Vehicle Network Toolbox позволяют вам генерировать код, модели, дающие возможность выбора, содержащие эти блоки, чтобы запуститься в Акселераторе, Быстром Акселераторе, Внешнем, и режимы Deployed.
Можно использовать Vehicle Network Toolbox, Simulink Coder™ и программное обеспечение Embedded Coder® вместе, чтобы сгенерировать код по концу хоста, который можно использовать, чтобы реализовать модель. Для получения дополнительной информации о генерации кода смотрите Процесс сборки (Simulink Coder).
Блок генерирует код с ограниченной мобильностью. Блок пользуется предварительно скомпилированными совместно использованными библиотеками, такими как DLLs, чтобы поддержать ввод-вывод для определенных типов устройств. С этим блоком можно использовать функцию packNGo
, поддерживаемую Simulink Coder, чтобы настроить и управлять информацией о сборке для моделей. Функция packNGo
позволяет вам типовому кодексу пакета, и зависимый совместно использовал библиотеки в zip-файл для развертывания. Вам не нужен MATLAB®, установленный в целевой системе, но целевая система должна поддерживаться MATLAB.
Настраивать packNGo
:
set_param(gcs,'PostCodeGenCommand','packNGo(buildInfo)');
В этом примере gcs
является текущей моделью, которую вы хотите создать. Создавание модели создает zip-файл с тем же именем как имя модели. Можно переместить этот zip-файл в другую машину и туда создать исходный код в zip-файле, чтобы создать исполняемый файл, который может запуститься независимый от MATLAB и Simulink. Сгенерированный код компилирует и с C и с компиляторами C++. Для получения дополнительной информации смотрите Индивидуальную настройку Процесса сборки (Simulink Coder).
На платформах Linux® необходимо добавить папку, где вы разархивировали библиотеки к переменной окружения LD_LIBRARY_PATH
.
Сконфигурируйте свой Блок Configuration CAN, прежде чем вы сконфигурируете CAN, Получают параметры блоков.
Выберите устройство CAN и канал на устройстве, из которого вы хотите получить сообщения CAN. Это cписки полей все устройства установлено в системе. Это отображает имя поставщика, имя устройства и ID канала. Значением по умолчанию является первое доступное устройство в вашей системе.
Выберите фильтр на этом блоке для стандартных идентификаторов. Допустимый выбор:
Allow all
(значение по умолчанию): Позволяет всем стандартным идентификаторам передавать фильтр.
Allow only
: Позволяет только ID или область значений идентификаторов, заданных в текстовом поле. Можно задать один ID или массив идентификаторов. Можно также задать разделенные идентификаторы или массивы, разделенные запятой. Например, чтобы принять идентификаторы от 400 до 500, и 600 - 650, вводят [[400:500] [600:650]]
. Стандартные идентификаторы должны быть положительными целыми числами от 0 до 2 047. Можно также задать шестнадцатеричные значения с функцией hex2dec
.
Block all
: Блоки все стандартные идентификаторы от передачи фильтра.
Выберите фильтр на этом блоке для расширенных идентификаторов. Допустимый выбор:
Allow all
(значение по умолчанию): Позволяет всем расширенным идентификаторам передавать фильтр.
Allow only
: Позволяет только те идентификаторы, заданные в текстовом поле. Можно задать один ID или массив идентификаторов. Можно также задать разделенные идентификаторы или массивы, разделенные запятой. Например, чтобы принять идентификаторы от 3 000 до 3 500, и 3 600 - 3 620, вводят [[3000:3500] [3600:3620]]
. Расширенные идентификаторы должны быть положительными целыми числами от 0 до 536870911. Можно также задать шестнадцатеричные значения с помощью функции hex2dec
.
Block all
: Блоки все расширенные идентификаторы от передачи фильтра.
Задайте время выборки блока во время симуляции, которая является временем симуляции, как описано документацией Simulink. Это значение задает частоту, на которой блок CAN Receive запускается во время симуляции. Если блок в инициированной подсистеме или наследовать шаг расчета, можно задать -1
как шаг расчета. Можно также задать переменную MATLAB для шага расчета. Значение по умолчанию 0.01 (в секундах).
Выберите, сколько сообщений блок получает в каждый заданный такт. Допустимый выбор:
all
(значение по умолчанию): блок CAN Receive передает все доступные сообщения в буфере FIFO к модели в течение определенного такта. Блок генерирует один вызов функции для каждого переданного сообщения. Выходной порт всегда содержит одно сообщение CAN за один раз.
1
: блок CAN Receive передает одно сообщение в такт от буфера FIFO до модели.
Если блок не получает сообщений перед следующим тактом, он выводит последнее полученное сообщение.
Выберите эту опцию для блока, чтобы вывести сообщения CAN как сигнал шины Simulink. Для получения дополнительной информации об объектах шины Simulink смотрите Составные Сигналы (Simulink).