exponenta event banner

Передача CAN

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

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

  • CAN Transmit block

Описание

Блок передачи CAN передает сообщения в сеть CAN с использованием указанного устройства CAN. Блок передачи CAN может передавать одно сообщение или массив сообщений в течение заданного временного интервала. Для передачи массива сообщений используйте блок мультиплексора (Simulink) (мультиплексор) из библиотеки блоков Simulink ®.

Примечание

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

Блок передачи CAN имеет один входной порт. Этот порт принимает сообщение CAN, которое было упаковано с использованием блока CAN Pack. Он не имеет выходных портов.

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

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

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

Блок CAN Transmit поддерживает использование генерации кода вместе с функцией 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 упаковывается блоком CAN Pack, вводится в виде CAN_MESSAGE или сигнальной шины Simulink.

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

Параметры

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

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

Примечание.При использовании устройств PEAK-System блоки CAN Transmit в нескольких включенных подсистемах могут пропускать некоторые сообщения. По возможности замените включенные подсистемы на условную подсистему другого типа, например, if-action, switch-case-action или запускаемую подсистему; или переработать модель таким образом, чтобы все блоки CAN Transmit содержались в одной включенной подсистеме.

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

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

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

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

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

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

Эта опция используется для активизации периодической передачи сообщения по сконфигурированному каналу в указанный период сообщения. Период ссылается на реальное время, независимо от размера шага модели Simulink (время основной выборки) или времени выборки выполнения блока. Это эквивалентно функции MATLAB. transmitPeriodic.

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

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

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

Укажите период передачи сообщения в секундах. Это значение используется для передачи сообщения в указанный период. По умолчанию это значение равно 1.000 секунд.

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

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

См. также

Блоки

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