CAN Pack

Упакуйте отдельные сигналы в сообщение CAN

  • Библиотека:
  • Блоки Simulink в реальном времени/CAN/CAN MSG

    Автомобильный сетевой Toolbox/Связь с CAN

    Встроенный кодер/встроенные целевые системы/коммуникация с хостом

  • CAN Pack block

Описание

Блок CAN Pack загружает данные сигнала в сообщение с заданными интервалами во время симуляции.

Чтобы использовать этот блок, вы должны иметь лицензию для Simulink® программное обеспечение.

Блок CAN Pack поддерживает:

  • Simulink Accelerator™ быстрый режим Accelerator. Можно ускорить выполнение моделей Simulink.

  • Создание моделей-ссылок. Ваша модель может включать другие модели Simulink в качестве модульных компонентов.

Для получения дополнительной информации смотрите Проект вашей модели для эффективного ускорения (Simulink).

Совет

  • Для работы с J1939 сообщениями используйте блоки в библиотеке блоков J1939 Communication вместо этого блока. См. раздел J1939 Communication.

Порты

Вход

расширить все

Блок CAN Pack по умолчанию имеет один входной порт. Количество блочных входов является динамическим и зависит от количества сигналов, которые вы задаете для блока. Для примера, если ваш блок имеет четыре сигнала, он имеет четыре входов блоков.

Блок поддерживает следующие входному сигналу типы данных: single, double, int8, int16, int32, int64, uint8, uint16, uint32, uint64 и boolean. Блок не поддерживает типы данных с фиксированной точкой.

Генерация кода для развертывания моделей на целевых объектах. Если информация о вашем сигнале состоит из знаков или беззнаковых целых чисел длиной более 32 битов, генерация кода не поддерживается.

Выход

расширить все

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

Параметры

расширить все

  • raw data: Входные данные как массив векторов uint8. Если вы выбираете эту опцию, вы задаете только поля сообщений. все другие поля параметров сигнала недоступны. Эта опция открывает только один входной порт на вашем блоке.

    Формула преобразования:

    raw_value = (physical_value - Offset) / Factor
    где physical_value - исходное значение сигнала и raw_value является упакованным значением сигналов.

  • manually specified signals: Позволяет вам задать определения сигналов данных. Если вы выбираете эту опцию, используйте таблицу Signals, чтобы создать свои сигналы. Количество входов блока зависит от количества сигналов, которые вы задаете.

  • CANdb specified signals: Позволяет вам задать файл базы данных CAN, который содержит определения сообщений и сигналов. Если вы выбираете эту опцию, выберите файл CANdb. Количество входов блока зависит от количества сигналов, заданных в файле CANdb для выбранного сообщения.

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

Параметры блоков: DataFormat

Эта опция доступна, если вы задаете, что ваши данные вводятся через файл CANdb в списке Data is input as. Нажмите кнопку Обзор, чтобы найти файл CANdb в вашей системе. Список сообщений, указанный в файле CANdb, заполняет Message раздел диалогового окна. Файл CANdb также заполняет таблицу Signals для выбранного сообщения.

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

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

Параметры блоков: CANdbFile

Эта опция доступна, если вы задаете, что ваши данные вводятся через файл CANdb в поле Data is input as, и вы выбираете файл CANdb в поле CANdb file. Выберите сообщение для отображения подробных данных сигнала в таблице Signals.

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

Параметры блоков: MsgList

Укажите имя для сообщения CAN. Значение по умолчанию является CAN Msg. Эта опция доступна, если вы принимаете решение ввести необработанные данные или вручную задать сигналы. Эта опция недоступна, если вы принимаете решение использовать сигналы из файла CANdb.

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

Параметры блоков: MsgName

Укажите, является ли ваш идентификатор сообщения CAN Standard или Extended тип. Значение по умолчанию является Standard. Стандартный идентификатор является 11-битным идентификатором, а расширенный идентификатор - 29-битным идентификатором. Эта опция доступна, если вы принимаете решение ввести необработанные данные или вручную задать сигналы. Для CANdb specified signals, Identifier type наследует тип из базы данных.

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

Параметры блоков: MsgIDType

Укажите идентификатор сообщения CAN. Это число должно быть положительным целым числом от 0 до 2047 для стандартного идентификатора и от 0 до 536870911 для расширенного идентификатора. Можно также задать шестнадцатеричные значения при помощи hex2dec функция. Эта опция доступна, если вы принимаете решение ввести необработанные данные или вручную задать сигналы.

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

Параметры блоков: MsgIdentifier

Задайте длину сообщения CAN от 0 до 8 байт. Если вы используете CANdb specified signals для входных данных вход CANdb определяет длину вашего сообщения. Если нет, это поле по умолчанию имеет значение 8. Эта опция доступна, если вы принимаете решение ввести необработанные данные или вручную задать сигналы.

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

Параметры блоков: MsgLength

Задайте сообщение CAN как удаленная система координат.

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

Параметры блоков: Remote

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

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

Параметры блоков: BusOutput

Добавьте сигнал в таблицу сигналов.

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

Параметры блоков: AddSignal

Удалите сигнал из таблицы сигналов.

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

Параметры блоков: DeleteSignal

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

Если вы используете файл CANdb, данные в файле заполняют эту таблицу, и вы не можете редактировать поля. Для редактирования информации о сигнале переключитесь на вручную заданные сигналы.

Если вы выбрали, чтобы задать сигналы вручную, создайте свои сигналы в этой таблице. Каждый сигнал, который вы создаете, имеет следующие значения:

Name

Задайте описательное имя для вашего сигнала. Блок Simulink в вашей модели отображает это имя. Значение по умолчанию является Signal [row number].

Start bit

Задайте старт-бит данных. Этот старт-бит является наименее значимым битом, отсчитываемым от начала данных сообщения. Значение старта-бита должно быть целым числом от 0 до 63.

Length (bits)

Укажите количество бит, занимаемых сигналом в сообщении. Длина должна быть целым числом от 1 до 64.

Byte order

Выберите один из следующих опций:

  • LE: Где порядок байтов в маленьком эндовом формате (Intel®). В этом формате вы отсчитываете биты от наименее значимого бита до самого значимого бита. Для примера, если вы упаковываете один байт данных в маленьком эндовом формате, с старта-бита на 20, битовая таблица данных напоминает этот рисунок.

    Порядок байтов Little-Endian, отсчитываемый от наименее значимого бита до самого высокого адреса

    Image of little-endian byte order from least-significant bit to highest address

  • BE: Где порядок байтов в крупноэндовом формате (Motorola®). В этом формате вы отсчитываете биты от наименее-значимого бита до наиболее-значимого бита. Например, если вы упаковываете один байт данных в формате big-endian, с стартом-битом в 20, битовая таблица данных напоминает этот рисунок.

    Порядок байтов Big-Endian, отсчитываемый от наименее значимого бита до самого низкого адреса

    Image of big-endian byte order from least-significant bit to lowest address

Data type

Задайте, как сигнал интерпретирует данные в выделенных битах. Выберите из:

  • signed (по умолчанию)

  • unsigned

  • single

  • double

Multiplex type

Задайте, как блок упаковывает сигналы в сообщение CAN на каждом временном шаге:

  • Standard: Сигнал упакован на каждом временном шаге.

  • Multiplexor: The Multiplexor сигнал, или сигнал mode упакован. Можно задать только одно Multiplexor сигнал на сообщение.

  • Multiplexed: Сигнал упакован, если значение Multiplexor сигнал (сигнал режима) во время исполнения соответствует сконфигурированной Multiplex value этого сигнала.

Для примера сообщение имеет эти сигналы со следующими типами и значениями.

Имя сигналаТип мультиплексораЗначение мультиплексора
Сигнал-AСтандартНе применяется
Сигнал-BМультиплексированный1
Сигнал-CМультиплексированный0
Сигнал-DМультиплексорНе применяется

В этом примере:

  • Блок упаковывает Сигнал-A (Стандартный сигнал) и Сигнал-D (Мультиплексор сигнал) на каждом временном шаге.

  • Если значение Сигнала-D равняется 1 в конкретный временной шаг, то блок упаковывает Сигнал-B вместе с Сигналом-A и Сигналом-D в этот временной шаг.

  • Если значение Сигнала-D составляет 0 в конкретный временной шаг, то блок упаковывает Сигнал-C вместе с Сигналом-A и Сигналом-D в этот временной шаг.

  • Если значение Сигнала-D не 1 или 0, блок не упаковывает ни один из Мультиплексированных сигналов в этот временной шаг.

Multiplex value

Эта опция доступна, только если вы выбрали Multiplex type, который будет Multiplexed. Предоставляемое значение должно совпадать с Multiplexor значение сигналов во время исполнения для блока, чтобы упаковать Multiplexed сигнал. Значение Multiplex value должно быть положительным целым числом или нулями.

Factor

Задайте значение Factor для преобразования физического значения (значения сигналов) в необработанное значение, упакованное в сообщении. Для получения дополнительной информации смотрите формулу преобразования Data input as параметра.

Offset

Задайте значение Offset для преобразования физического значения (значения сигналов) в необработанное значение, упакованное в сообщении. Для получения дополнительной информации смотрите формулу преобразования Data input as параметра.

Min, Max

Задайте область значений значений сигналов. Настройки по умолчанию -Inf (отрицательная бесконечность) и Inf, соответственно. Для CANdb specified signals эти параметры считываются из базы данных CAN. Для manually specified signals можно задать минимальное и максимальное физическое значение сигнала. По умолчанию эти настройки не фиксируют значения сигналов, которые превышают настройки.

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

Параметры блоков: SignalInfo
Введенный в R2009a