CAN Unpack

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

  • Библиотека:
  • Vehicle Network Toolbox / Коммуникация CAN

    Embedded Coder / Целевые процессоры / Коммуникация Хоста

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

    Simulink Real-Time / CAN / блоки сообщения CAN

  • CAN Unpack block

Описание

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

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

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

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

  • Использование ссылки модели. Используя эту функцию, ваша модель может включать другие модели Simulink как модульные компоненты.

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

Совет

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

  • Этот блок может использоваться, чтобы декодировать сигналы групп параметра J1939 до 8 байтов. Однако, чтобы работать с сообщениями J1939, желательно использовать блоки в Коммуникационной библиотеке блоков J1939 вместо этого блока. См. Коммуникацию J1939.

Порты

Входной параметр

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

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

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

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

Вывод

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

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

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

Дополнительные выходные порты могут быть добавлены путем выбора опций в параметрах панель Output ports. Для получения дополнительной информации смотрите параметры Output identifier, Output timestamp, Output error, Output remote, Output length, и Output status.

Параметры

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

  • 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
Ввод: string | character vector
Значения: 'raw data' | 'manually specified signals' | 'CANdb specified signals'
Значение по умолчанию: 'raw data'

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

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

Параметры блоков: CANdbFile
Ввод: string | character vector

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

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

Параметры блоков: MsgList
Ввод: string | character vector

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

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

Параметры блоков: MsgName
Ввод: string | character vector

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

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

Параметры блоков: MsgIDType
Ввод: string | character vector
Значения: 'Standard (11-bit identifier)' | 'Extended (29-bit identifier)'
Значение по умолчанию: 'Standard (11-bit identifier)'

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

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

Параметры блоков: MsgIdentifier
Ввод: string | character vector
Значения: '0' к '536870911'

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

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

Параметры блоков: MsgLength
Ввод: string | character vector
Значения: '0' к '8'
Значение по умолчанию: '8'

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

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

'none'

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

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

'none'

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

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

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

Name

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

Start bit

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

Length (bits)

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

Byte order

Выберите любую из этих опций:

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

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

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

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

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

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

Data type

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

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

  • unsigned

  • single

  • double

Multiplex type

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

  • 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, примененное, чтобы преобразовать распакованное необработанное значение в физическое значение (значение сигналов). Для получения дополнительной информации смотрите формулу преобразования параметра Data input as.

Offset

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

Min, Max

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

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

Параметры блоков: SignalInfo
Ввод: string | character vector

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

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

Параметры блоков: IDPort
Ввод: string | character vector
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

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

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

Параметры блоков: TimestampPort
Ввод: string | character vector
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

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

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

Параметры блоков: ErrorPort
Ввод: string | character vector
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

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

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

Параметры блоков: RemotePort
Ввод: string | character vector
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

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

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

Параметры блоков: LengthPort
Ввод: string | character vector
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

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

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

Параметры блоков: StatusPort
Ввод: string | character vector
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Примеры модели

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Представленный в R2009a