CAN Receive

Получите сообщения CAN от заданного устройства CAN

  • Библиотека:
  • Vehicle Network Toolbox / Коммуникация CAN

  • CAN Receive block

Описание

Блок CAN Receive получает сообщения от сети CAN и поставляет им модели Simulink®. Это выводит одно сообщение или все сообщения в каждый такт, в зависимости от параметров блоков.

Примечание

Вам нужна лицензия на оба программных обеспечения Vehicle Network Toolbox™ и Simulink, чтобы использовать этот блок.

Блок CAN Receive хранит сообщения CAN в методе "первым пришел - первым вышел" (FIFO) буфер. Буфер FIFO передает сообщения к вашей модели в порядке с очередями в каждый такт.

Примечание

У вас не может быть больше чем одного блока CAN Receive в модели с помощью того же канала ПИКОВОГО Системного устройства системы.

Другие поддерживавшие функции

Блок CAN Receive поддерживает использование режима Simulink Accelerator™. Используя эту функцию, можно ускорить выполнение моделей Simulink. Для получения дополнительной информации об этой функции см. документацию Simulink.

Блок CAN Receive поддерживает использование генерации кода наряду с функцией packNGo, чтобы сгруппировать требуемый исходный код, и зависимый совместно использовал библиотеки.

Генерация кода

Блоки Simulink Vehicle Network Toolbox позволяют вам генерировать код, модели, дающие возможность выбора, содержащие эти блоки, чтобы запуститься в Акселераторе, Быстром Акселераторе, Внешнем, и режимы Deployed.

Генерация кода с Simulink Coder

Можно использовать Vehicle Network Toolbox, Simulink Coder™ и программное обеспечение Embedded Coder® вместе, чтобы сгенерировать код по концу хоста, который можно использовать, чтобы реализовать модель. Для получения дополнительной информации о генерации кода смотрите Процесс сборки (Simulink Coder).

Разделяемые библиотечные зависимости

Блок генерирует код с ограниченной мобильностью. Блок пользуется предварительно скомпилированными совместно использованными библиотеками, такими как DLLs, чтобы поддержать ввод-вывод для определенных типов устройств. С этим блоком можно использовать packNGo функция, поддерживаемая Simulink Coder, чтобы настроить и управлять информацией о сборке для ваших моделей. packNGo (Simulink Coder), который функция позволяет вам типовому кодексу пакета и зависимому, совместно использовал библиотеки в zip-файл для развертывания. Вам не нужен MATLAB®, установленный в целевой системе, но целевая система должна поддерживаться MATLAB.

Настраивать packNGo:

set_param(gcs,'PostCodeGenCommand','packNGo(buildInfo)');

В этом примере, gcs текущая модель, которую вы хотите создать. Создавание модели создает zip-файл с тем же именем как имя модели. Можно переместить этот zip-файл в другую машину и туда создать исходный код в zip-файле, чтобы создать исполняемый файл, который может запуститься независимый от MATLAB и Simulink. Сгенерированный код компилирует и с C и с компиляторами C++. Для получения дополнительной информации смотрите Индивидуальную настройку Процесса сборки (Simulink Coder).

Примечание

На платформах Linux® необходимо добавить папку, где вы разархивировали библиотеки к переменной окружения LD_LIBRARY_PATH.

Порты

Вывод

развернуть все

CAN Msg выходной порт содержит одно или несколько упакованных сообщений CAN, полученных в тот конкретный такт, выход как шина сигнала или CAN_MESSAGE. Выход включает любой один или все сообщения в течение того такта, в зависимости от установки Number of messages received at each timestep.

Типы данных: CAN_MESSAGE | bus

f() выходной порт является триггером к Подсистеме вызова функций. Если блок получает новое сообщение, он инициировал Вызов функции от этого порта. Можно затем соединиться с Function-Call Subsystem (Simulink), чтобы распаковать и обработать сообщение.

Типы данных: function-call event

Параметры

развернуть все

Совет

Сконфигурируйте свой блок CAN Configuration, прежде чем вы сконфигурируете параметры CAN Receive block.

Выберите из списка устройство CAN и канал на устройстве, из которого вы хотите получить сообщения CAN. Это cписки полей все устройства установлено в системе. Это отображает имя поставщика, имя устройства и ID канала. Значением по умолчанию является первое доступное устройство в вашей системе.

Программируемое использование

Параметры блоков: Device
Ввод: вектор символов, строка

Выберите фильтр для стандартных идентификаторов. Выбор:

  • Allow all (значение по умолчанию): Позволяет всем стандартным идентификаторам передавать фильтр.

  • Allow only: Позволяет только ID или область значений идентификаторов, заданных в текстовом поле в виде одного ID или массива идентификаторов. Можно также задать разделенные идентификаторы или массивы, разделенные запятой. Например, чтобы позволить идентификаторы 400 - 500, и 600 - 650, вводят [[400:500],[600:650]]. Стандартные идентификаторы должны быть положительными целыми числами от 0 до 2 047. Можно также задать шестнадцатеричные значения с hex2dec функция.

  • Block all: Блоки все стандартные идентификаторы от передачи фильтра.

Программируемое использование

Параметры блоков: StdIDsCombo
Ввод: вектор символов, строка
Значения: 'Allow all' | 'Allow only' | 'Block all'
Значение по умолчанию: 'Allow all'

При использовании 'Allow only', установите значения фильтра со следующим:

Параметры блоков: StandardIDs
Ввод: вектор символов, строка
Значения: целочисленный скаляр или вектор-строка

Выберите фильтр на этом блоке для расширенных идентификаторов. Выбор:

  • Allow all (значение по умолчанию): Позволяет всем расширенным идентификаторам передавать фильтр.

  • Allow only: Позволяет только те идентификаторы, заданные в текстовом поле. Позволяет только ID или область значений идентификаторов, заданных в текстовом поле в виде одного ID или массива идентификаторов. Можно также задать разделенные идентификаторы или массивы, разделенные запятой. Например, чтобы принять идентификаторы 3 000 - 3 500, и 3 600 - 3 620, вводят [[3000:3500],[3600:3620]]. Расширенные идентификаторы должны быть положительными целыми числами от 0 до 536870911. Можно также задать шестнадцатеричные значения с помощью hex2dec функция.

  • Block all: Блоки все расширенные идентификаторы от передачи фильтра.

Программируемое использование

Параметры блоков: ExtIDsCombo
Ввод: вектор символов, строка
Значения: 'Allow all' | 'Allow only' | 'Block all'
Значение по умолчанию: 'Allow all'
Параметры блоков: ExtendedIDs
Ввод: вектор символов, строка
Значения: целочисленный скаляр или вектор-строка

Задайте шаг расчета блока во время симуляции. Это - уровень, на котором блок выполняется в процессе моделирования. Значение по умолчанию 0.01 (секунды). Для получения дополнительной информации смотрите то, Что Шаг расчета? (Simulink).

Программируемое использование

Параметры блоков: SampleTime
Ввод: вектор символов, строка
Значения: 'double'
Значение по умолчанию: '0.01'

Выберите, сколько сообщений блок получает в каждый заданный такт. Допустимый выбор:

  • all (значение по умолчанию): блок CAN Receive передает все доступные сообщения в буфере FIFO к модели в течение определенного такта. Блок генерирует один вызов функции для каждого переданного сообщения. Выходной порт всегда содержит одно сообщение CAN за один раз.

  • 1: Блок CAN Receive передает одно сообщение в такт от буфера FIFO до модели.

Если блок не получает сообщений перед следующим тактом, он выводит последнее полученное сообщение.

Программируемое использование

Параметры блоков: MsgsPerTimestep
Ввод: вектор символов, строка
Значения: '1' | 'all'
Значение по умолчанию: '1'

Выведите нативный сигнал шины Simulink. Для получения дополнительной информации об объектах шины Simulink смотрите Составные Сигналы (Simulink).

Программируемое использование

Параметры блоков: BusOutput
Ввод: вектор символов, строка
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Смотрите также

Блоки

Функции

Представленный в R2009a