exponenta event banner

Пакет CAN

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

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

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

    Встроенный кодер/Встроенные цели/Связь с хостом

  • CAN Pack block

Описание

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

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

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

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

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

Дополнительные сведения см. в разделе Проектирование модели для эффективного ускорения.

Совет

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

Порты

Вход

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

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

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

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

Продукция

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

Этот блок имеет один выходной порт CAN Msg. Блок 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 в списке Данные вводятся как. Нажмите кнопку Обзор, чтобы найти файл CANdb в системе. Список сообщений, указанный в файле CANdb, заполняет раздел сообщения диалогового окна. Файл CANdb также заполняет таблицу Сигналы для выбранного сообщения.

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

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

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

Эта опция доступна, если указать, что данные вводятся через файл CANdb в поле Данные вводятся как, и выбрать файл CANdb в поле Файл CANdb. Выберите сообщение для отображения подробных данных сигнала в таблице Сигналы (Signals).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Укажите сообщение CAN в качестве удаленного кадра.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Имя

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

Начальный бит

Укажите начальный бит данных. Начальный бит - это младший бит, отсчитываемый от начала данных сообщения. Начальный бит должен быть целым числом от 0 до 63.

Длина (биты)

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

Порядок байтов

Выберите один из следующих вариантов:

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

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

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

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

    Big-Endian Byte Order подсчитан от младшего бита до наименьшего адреса

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

Тип данных

Укажите, как сигнал интерпретирует данные в выделенных битах. Выберите один из следующих вариантов:

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

  • unsigned

  • single

  • double

Тип мультиплексора

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

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

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

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

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

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

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

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

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

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

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

Мультиплексное значение

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

Фактор

Укажите значение коэффициента, применяемое для преобразования физического значения (значения сигнала) в исходное значение, упакованное в сообщение. Дополнительные сведения см. в разделе Ввод данных как формула преобразования параметров.

Смещение

Укажите значение смещения, применяемое для преобразования физического значения (значения сигнала) в исходное значение, упакованное в сообщение. Дополнительные сведения см. в разделе Ввод данных как формула преобразования параметров.

Мин, Макс

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

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

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