exponenta event banner

Распаковка CAN FD

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

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

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

    Пакет поддержки встроенного кодера для техасских приборов C2000 процессоров/целевой системы связи

  • CAN FD Unpack block

Описание

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

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

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

Совет

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

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

Порты

Вход

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

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

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

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

Продукция

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

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

Если параметр «Выходные порты» не выбран, количество выходных портов в блоке зависит от указанного количества сигналов.

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

Параметры

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

  • 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 в списке Данные для вывода как. Нажмите кнопку Обзор, чтобы найти файл CANdb в системе. Сообщения и определения сигналов, указанные в файле CANdb, заполняют раздел Message диалогового окна. Сигналы, указанные в файле CANdb, заполняют таблицу Signals. Имена файлов, содержащие не алфавитно-цифровые символы, такие как знаки равенства, амперсанды и т.д., не являются допустимыми именами файлов базы данных CAN. В имени базы данных можно использовать точки. Переименуйте файлы базы данных CAN с использованием символов, отличных от букв и цифр.

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

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

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

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

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

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

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

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

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

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

Параметр блока: 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, данные в файле заполняют эту таблицу, и вы не можете редактировать поля. Для редактирования сигнальной информации переключитесь на указанные сигналы.

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

Имя

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

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

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

Длина (биты)

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

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

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

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

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

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

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

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

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

Тип данных

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

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

  • unsigned

  • single

  • double

    Примечание: Если у вас есть double сигнал, который не совпадает точно с границами байтов сообщений, для создания кода с помощью Embedded Coder ® необходимо установить флажок «Долго поддерживать» в разделе «Сведения об устройстве» на панели «Аппаратная реализация» диалогового окна «Параметры конфигурации».

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

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

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

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

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

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

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

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

  • Блок распаковывает сигнал A (стандартный сигнал) и сигнал 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

Эта опция используется для вывода идентификатора сообщения CAN. Тип данных этого порта - uint32.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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