CAN FD распаковывает

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

Библиотека

Vehicle Network Toolbox: коммуникация CAN FD

Описание

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

Примечание

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

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

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

Поддержки блока CAN FD Unpack

  • Использование режима Simulink Accelerator™. Используя эту функцию, можно ускорить выполнение моделей Simulink. Для получения дополнительной информации смотрите Ускорение (Simulink).

  • Генерация кода, чтобы развернуть модели на целях.

    Примечание

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

Диалоговое окно

Используйте диалоговое окно Function Block Parameters, чтобы выбрать ваше сообщение, распаковывающее параметры.

Параметры

Data to be output as

Выберите свой сигнал данных:

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

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

    Количество выходных портов на вашем блоке зависит от количества сигналов, которые вы задаете. Например, если вы задаете четыре сигнала, ваш блок имеет четыре выходных порта.

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

    Количество выходных портов на вашем блоке зависит от количества сигналов, заданных в файле CANdb. Например, если выбранное сообщение в файле CANdb имеет четыре сигнала, ваш блок имеет четыре выходных порта.

Примечание

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

CANdb file

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

Примечание

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

Message list

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

Сообщение

Name

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

Protocol mode

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

Identifier type

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

Identifier

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

Length (bytes)

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

Таблица сигналов

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

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

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

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

Data type

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

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

  • unsigned

  • single

  • double

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

Multiplex type

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

  • Standard: сигнал распакован в каждый такт.

  • Multiplexor: сигнал 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. Значение, которое вы обеспечиваете здесь, должно совпадать с the Multiplexor значением сигналов во время выполнения для блока, чтобы распаковать сигнал Multiplexed. Multiplex value должен быть положительным целым числом или нулем.

Factor

Задайте значение Factor, примененное, чтобы преобразовать распакованное необработанное значение в физическое значение (значение сигналов). Смотрите Формулу Преобразования, чтобы понять, как распакованные необработанные значения преобразованы в физические значения.

Offset

Задайте значение Offset, примененное, чтобы преобразовать физическое значение (значение сигналов) в распакованное необработанное значение. Смотрите Формулу Преобразования, чтобы понять, как распакованные необработанные значения преобразованы в физические значения.

Min, Max

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

Выходные порты

Выбор опции Output ports добавляет выходной порт в ваш блок.

Output identifier

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

Output remote

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

Output timestamp

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

Output length

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

Output error

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

Output status

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

Output Bit Rate Switch (BRS)

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

Output Error Status Indicator (ESI)

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

Output Data Length Code (DLC)

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

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

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

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

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

Введенный в R2018a

Для просмотра документации необходимо авторизоваться на сайте