exponenta event banner

CAN получает

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

  • Библиотека:
  • Набор инструментов для сети транспортных средств/CAN-связь

  • CAN Receive block

Описание

Блок приема CAN получает сообщения из сети CAN и доставляет их в модель Simulink ®. Он выводит одно сообщение или все сообщения на каждом временном интервале в зависимости от параметров блока.

Примечание

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

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

Примечание

В модели, использующей один канал устройства PEAK-System, не может быть более одного блока CAN Receive.

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

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

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

Создание кода

Блоки Simulink панели инструментов сети транспортных средств позволяют создавать код, позволяя моделям, содержащим эти блоки, работать в режимах Accelerator, Rapid Accelerator, External и Deployed.

Создание кода с помощью Simulink Coder

Для создания кода на стороне хоста, который можно использовать для реализации модели, можно использовать инструментарий автомобильной сети, программное обеспечение Simulink Coder™ и Embedded Coder ®. Дополнительные сведения о создании кода см. в разделе Процесс построения (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 и C++. Дополнительные сведения см. в разделе Настройка процесса построения (Simulink Coder).

Примечание

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

Порты

Продукция

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

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

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

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

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

Параметры

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

Совет

Настройте блок конфигурации CAN перед настройкой параметров блока приема CAN.

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

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

Параметр блока: Device
Тип: символьный вектор, строка

Выберите фильтр для стандартных идентификаторов. Возможны следующие варианты:

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

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

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

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

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

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

Параметр блока: StandardIDs
Тип: символьный вектор, строка
Значения: целочисленный скалярный вектор или вектор строки

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

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

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

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

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

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

Укажите время выборки блока во время моделирования. Это скорость, с которой выполняется блок во время моделирования. Значение по умолчанию - 0,01 (секунды). Дополнительные сведения см. в разделе Что такое время образца? (Симулинк).

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

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

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

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

  • 1: Блок CAN Receive доставляет по одному сообщению в каждый временной интервал из буфера FIFO в модель.

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

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

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

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

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

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