CAN FD Unpack

Распакуйте отдельные сигналы из сообщений CAN FD

  • Библиотека:
  • Автомобильный сетевой тулбокс/CAN FD Communication

    Блоки MSG Simulink в реальном времени/CAN/CAN-FD

    Пакет поддержки Embedded Coder для техасских инструментов C2000 процессоров/целевой коммуникации

  • CAN FD Unpack block

Описание

Блок CAN FD Unpack распаковывает сообщение CAN FD в данные сигнала с помощью заданных выходных параметров на каждом временном шаге. Данные выводятся как отдельные сигналы.

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

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

Совет

  • Чтобы обработать каждое сообщение, поступающее через канал, рекомендуется использовать блок CAN FD Unpack в подсистеме триггера функции. См. Использование триггируемых подсистем.

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

Порты

Вход

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

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

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

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

Выход

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

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

Если вы не выбираете опцию Output ports, количество выходных портов на вашем блоке зависит от количества сигналов, которые вы задаете.

Для сигналов, заданных вручную или CANdb, тип выхода сигнала по умолчанию данных double. Чтобы задать другие типы, используйте блок Signal Specification. Это позволяет блоку поддерживать следующие типы данных выходного сигнала: single, double, int8, int16, int32, int64, uint8, uint16, uint32, uint64 и boolean. Блок не поддерживает фиксированные точки.

Параметры

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

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

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

    physical_value = raw_value * Factor + Offset
    где raw_value - это распакованные значения сигналов и physical_value - масштабированное значение сигналов.

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

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

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

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

Эта опция доступна, если вы задаете, что ваши данные вводятся через файл CANdb в списке Data to be output as. Нажмите кнопку Обзор, чтобы найти файл CANdb в вашей системе. Сообщения и определения сигналов, указанные в файле CANdb, заполняют раздел Message диалогового окна. Сигналы, указанные в файле CANdb, заполняются Signals таблицу. Имена файлов, которые содержат неалфавитно-цифровые символы, такие как знаки равенства, амперсанды и так далее, не являются допустимыми именами файлов базы данных CAN. В имени базы данных можно использовать периоды. Переименуйте файлы базы данных CAN с неалфавитно-цифровыми символами перед использованием.

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

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

Эта опция доступна, если вы задаете в списке Data to be output as, что ваши данные должны быть выведены как файл CANdb, и вы выбираете файл CANdb в CANdb file поле. Вы можете выбрать сообщение, которое вы хотите просмотреть. Затем в таблице Signals отображаются подробные данные выбранного сообщения.

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

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

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

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

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

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

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

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

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

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

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

Укажите длину вашего сообщения. Для сообщений CAN значение может составлять 0-8 байт; для CAN FD значение может быть 0-8, 12, 16, 20, 24, 32, 48 или 64 байта. Если вы используете CANdb specified signals для ваших выходных данных, файл CANdb определяет длину вашего сообщения. Эта опция доступна, если вы принимаете решение вывести необработанные данные или вручную задать сигналы.

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

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

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

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

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

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

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

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

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

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

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

Name

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

Start bit

Задайте старт-бит данных. Этот старт-бит является наименее значимым битом, отсчитываемым от начала данных сообщения. Для CAN старт-бит должен быть целым числом от 0 до 63, для CAN FD 0 до 511, в пределах количества битов в сообщении. (Обратите внимание, что длина сообщения указана в байтах.)

Length (bits)

Укажите количество бит, занимаемых сигналом в сообщении. Длина должна быть целым числом от 1 до 64. Сумма всех длин сигнала в сообщении ограничена количеством бит в длине сообщения; то есть все сигналы должны совокупно помещаться в пределах длины сообщения. (Обратите внимание, что длина сообщения задается в байтах, а длина сигнала - в битах.)

Byte order

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

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

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

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

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

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

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

Data type

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

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

  • unsigned

  • single

  • double

    Примечание: Если у вас есть double сигнал, который не совпадает точно с контурами байтов сообщений, чтобы сгенерировать код с Embedded Coder® необходимо проверить Support long long под Device Details в панели Hardware Implementation диалогового окна Параметров конфигурации.

Multiplex type

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

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

  • Multiplexor: The Multiplexor сигнал, или сигнал режима распакован. Можно задать только одно 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

Выберите эту опцию, чтобы вывести идентификатор сообщения CAN. Тип данных этого порта - uint32.

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

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

Выберите эту опцию, чтобы вывести временную метку сообщения. Это значение указывает, когда сообщение было получено, измеренное как количество секунд, прошедших с начала симуляции модели. Эта опция добавляет к блоку новый выходной порт. Тип данных этого порта - double.

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

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

Выберите эту опцию, чтобы вывести состояние ошибки сообщения. Эта опция добавляет к блоку новый выходной порт. Выход значение 1 на этом порте указывается, что входящее сообщение является системой координат ошибки. Если выходное значение 0, ошибки нет. Тип данных этого порта - uint8.

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

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

Выберите эту опцию, чтобы вывести сообщение о состоянии удаленной системы координат. Эта опция добавляет к блоку новый выходной порт. Тип данных этого порта - uint8.

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

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

Выберите эту опцию, чтобы вывести длину сообщения в байтах. Эта опция добавляет к блоку новый выходной порт. Тип данных этого порта - uint8.

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

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

Выберите эту опцию, чтобы вывести состояние полученного сообщения. Статус: 1 если блок получает новое сообщение и 0 если нет. Эта опция добавляет к блоку новый выходной порт. Тип данных этого порта uint8.

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

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

(Отключен для протокола CAN.) Выберите эту опцию, чтобы вывести переключатель скорости передачи сообщений. Эта опция добавляет к блоку новый выходной порт. Тип данных этого порта - логический.

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

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

(Отключен для протокола CAN.) Выберите эту опцию, чтобы вывести состояние ошибки сообщения. Эта опция добавляет к блоку новый выходной порт. Тип данных этого порта - логический.

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

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

(Отключен для протокола CAN.) Выберите эту опцию, чтобы вывести длину данных сообщения. Эта опция добавляет к блоку новый выходной порт. Тип данных этого порта - double.

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

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