Прием сообщений CAN FD от заданного устройства CAN FD
Vehicle Network Toolbox: CAN FD Communication
Блок CAN FD Receive получает сообщения от сети CAN и доставляет их в Simulink® модель. Это выводит одно сообщение или все сообщения в каждый временной интервал, в зависимости от параметров блоков.
Примечание
Чтобы использовать этот блок, вам нужна лицензия как на Vehicle Network Toolbox™, так и на программное обеспечение Simulink.
Блок CAN FD Receive имеет два выходных порта:
The f()
Выход порт является триггером для Подсистемы вызова функций. Если блок получает новое сообщение, он запускает Function-Call от этого порта. Затем можно подключиться к Function-Call Subsystem (Simulink), чтобы распаковать и обработать сообщение.
The Msg
выходной порт содержит сообщение CAN, полученное в этот конкретный временной интервал. Блок выводит сообщения как сигнал шины Simulink. Для получения дополнительной информации об объектах шины Simulink, см. «Составные сигналы (Simulink)».
Блок CAN FD Receive хранит сообщения CAN в первом буфере (FIFO). Буфер FIFO доставляет сообщения вашей модели в очереди порядка в каждый временной интервал.
Примечание
У вас не может быть больше одного блока CAN FD Receive в модели, использующей тот же канал устройства PEAK-System.
Блок CAN FD Receive поддерживает использование режима Accelerator™ Simulink. Используя эту функцию, можно ускорить выполнение моделей Simulink. Для получения дополнительной информации см. «Ускорение (Simulink)».
Блок CAN FD Receive поддерживает использование генерации кода наряду с функцией packNGo для группировки необходимого исходного кода и зависимых общих библиотек. Для получения дополнительной информации смотрите Генерация кода.
Блоки Vehicle Network Toolbox Simulink позволяют вам генерировать код, позволяя моделям, содержащим эти блоки, запускаться в режимах Accelerator, Rapid Accelerator, External и Deployed.
Можно использовать Vehicle Network Toolbox, Simulink Coder™ и Embedded Coder® программное обеспечение вместе, чтобы сгенерировать код на конце хоста, который вы можете использовать для реализации вашей модели. Для получения дополнительной информации о генерации кода смотрите Build Process (Simulink Coder).
Блок генерирует код с ограниченной переносимостью. Блок использует предварительно скомпилированные общие библиотеки, такие как DLL, для поддержки ввода-вывода для определенных типов устройств. С помощью этого блока можно использовать packNGo
функция, поддерживаемая Simulink Coder, для настройки и управления информацией о сборке для ваших моделей. packNGo
(Simulink Coder) функция позволяет вам упаковать код модели и зависимые общие библиотеки в zip-файл для развертывания. Вам не нужен MATLAB® установлена в целевой системе, но целевая система должна поддерживаться MATLAB.
Как настроить packNGo
:
set_param(gcs,'PostCodeGenCommand','packNGo(buildInfo)');
В этом примере gcs
- текущая модель, которую вы хотите создать. Создание модель создает zip- файла с таким же именем, как и имя модели. Можно переместить этот zip-файл на другую машину и там создать исходный код в zip-файле, чтобы создать исполняемый файл, который может запускаться независимо от MATLAB и Simulink. Сгенерированный код компилируется как с C, так и С++ компиляторами. Для получения дополнительной информации смотрите Настройка процесса сборки (Simulink Coder).
Примечание
На Linux® платформы, необходимо добавить папку, в которой вы разархивируете библиотеки, в переменную окружения LD_LIBRARY_PATH
.
Совет
Сконфигурируйте блок CAN FD Configuration перед конфигурированием параметров CAN FD Receive block.
Выберите устройство CAN и канал на устройстве, от которого вы хотите получать сообщения CAN. В этом поле перечислены все устройства, установленные в системе. В нем отображается имя поставщика, имя устройства и идентификатор канала. По умолчанию это первое доступное устройство в вашей системе.
Выберите фильтр на этом блоке для стандартных идентификаторов. Допустимые варианты:
Allow all
(по умолчанию): Позволяет всем стандартным идентификаторам пройти фильтр.
Allow only
: Разрешает только идентификатор или область значений идентификаторов, заданных в текстовом поле. Можно задать один идентификатор или массив идентификаторов. Можно также задать несвязанные идентификаторы или массивы, разделенные запятыми. Для примера, чтобы принять идентификаторы от 400 до 500 и от 600 до 650, введите [[400:500] [600:650]]
. Стандартные идентификаторы должны быть положительными целыми числами от 0 до 2047. Можно также задать шестнадцатеричные значения с hex2dec
функция.
Block all
: Блокирует прохождение фильтра всеми стандартными идентификаторами.
Выберите фильтр на этом блоке для расширенных идентификаторов. Допустимые варианты:
Allow all
(по умолчанию): Позволяет всем расширенным идентификаторам проходить фильтр.
Allow only
: Разрешает только те идентификаторы, которые указаны в текстовом поле. Можно задать один идентификатор или массив идентификаторов. Можно также задать несвязанные идентификаторы или массивы, разделенные запятыми. Для примера, чтобы принять идентификаторы от 3000 до 3500 и от 3600 до 3620, введите [[3000:3500] [3600:3620]]
. Расширенные идентификаторы должны быть положительными целыми числами от 0 до 536870911. Можно также задать шестнадцатеричные значения, используя hex2dec
функция.
Block all
: Блокирует прохождение фильтра всеми расширенными идентификаторами.
Задайте время дискретизации блока во время симуляции, которое является временем симуляции, как описано в документации Simulink. Это значение определяет частоту, с которой блок CAN FD Receive запускается во время симуляции. Если блок находится внутри триггируемой подсистемы или для наследования шага расчета, можно задать -1
как твой шаг расчета. Можно также задать переменный MATLAB для шага расчета. Значение по умолчанию является 0,01 (в секундах).
Выберите, сколько сообщений получает блок в каждый заданный временной интервал. Допустимые варианты:
all
(по умолчанию): Блок CAN FD Receive доставляет все доступные сообщения в буфере FIFO в модель в течение определенного временного интервала. Блок генерирует один вызов функции для каждого доставленного сообщения. Порт выхода всегда содержит одно сообщение CAN за раз.
1
: Блок CAN FD Receive доставляет одно сообщение в каждый временной интервал от буфера FIFO к модели.
Если блок не получает никаких сообщений до следующего временного интервала, он выводит последнее полученное сообщение.