Распакуйте отдельные сигналы из сообщений CAN FD
Vehicle Network Toolbox / Коммуникация CAN FD
Пакет поддержки Embedded Coder для процессоров Texas Instruments C2000 / целевая коммуникация
Simulink Real-Time / CAN / CAN FD ПЕРЕДАЕТ блоки
Блок CAN FD Unpack распаковывает сообщение CAN FD в данные сигнала при помощи заданных выходных параметров на каждом временном шаге. Данные выводятся, когда индивидуум предупреждает.
Чтобы использовать этот блок, вам также нужна лицензия на Simulink® программное обеспечение.
Поддержки блока CAN FD Unpack:
Режим Simulink Accelerator™. Можно ускорить выполнение моделей Simulink. Для получения дополнительной информации см. Проект Ваша Модель для Эффективного Ускорения.
Совет
Чтобы обработать каждое сообщение, проникающее через канал, рекомендуется, чтобы вы использовали блок CAN FD Unpack в функциональной триггерной подсистеме. Смотрите Используя Триггируемые подсистемы.
Чтобы работать с сообщениями J1939, используйте блоки в Коммуникационной библиотеке блоков J1939 вместо этого блока. См. J1939.
Msg
— Сообщение CAN FD вводитсяCAN_FD_MESSAGE_BUS
Этот блок имеет один входной порт, сообщение. Блок CAN FD Unpack берет заданные входные сообщения CAN и распаковывает их данные сигнала, чтобы разделить выходные параметры.
Блок поддерживает следующие типы данных входного сигнала: один, дважды, int8, int16, int32, int64, uint8, uint16, uint32, uint64, и boolean. Блок не поддерживает типы данных с фиксированной точкой.
Генерация кода, чтобы развернуть модели в цели. Генерация кода не поддерживается, если ваша информация сигнала состоит из целых чисел со знаком или беззнакового целого, больше, чем 32 бита длиной.
Data
— Сообщение CAN выводитсяБлок CAN FD Unpack имеет один выходной порт по умолчанию. Количество портов вывода данных является динамическим и зависит от количества сигналов, которые вы задаете для блока, чтобы вывести. Например, если ваш блок имеет четыре сигнала, он имеет четыре выходных порта, помеченные именем сигнала.
Для вручную или CANdb задал сигналы, тип данных выходного сигнала по умолчанию является двойным. Чтобы задать другие типы, используйте блок Signal Specification. Это позволяет блоку поддерживать следующие типы данных выходного сигнала: один, дважды, int8, int16, int32, int64, uint8, uint16, uint32, uint64, и boolean. Блок не поддерживает фиксированные точки.
Дополнительные выходные порты могут быть добавлены опциями в параметрах панель Output ports.
Data to output as
— Выберите свой сигнал данныхraw data
(значение по умолчанию) | manually specify signals
| CANdb specified signals
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 file
— Файл базы данных CANЭта опция доступна, если вы указываете, что ваши данные вводятся через файл CANdb в списке Data to be output as. Нажмите Browse, чтобы найти файл CANdb в вашей системе. Сообщения и определения сигнала, заданные в файле CANdb, заполняют раздел Message диалогового окна. Сигналы, заданные в файле CANdb, заполняют таблицу Signals. Имена файлов, которые содержат неалфавитно-цифровые символы, такие как знаки "равно", амперсанды, и т.д, не являются допустимыми именами файлов базы данных CAN. Можно использовать периоды на имя базы данных. Переименуйте файлы базы данных CAN с неалфавитно-цифровыми символами, прежде чем вы будете использовать их.
Параметры блоков:
CANdbFile
|
Ввод:
string | character vector
|
Message list
— Передайте списокЭта опция доступна, если вы указываете в списке Data to be output as, что ваши данные должны быть выведены как файл CANdb, и вы выбираете файл CANdb в поле CANdb file. Можно выбрать сообщение, что вы хотите просмотреть. Таблица Signals затем показывает детали выбранного сообщения.
Параметры блоков:
MsgList
|
Ввод:
string | character vector
|
Name
— Передайте имяCAN Msg
(значение по умолчанию) | вектор символовЗадайте имя для своего сообщения. Значением по умолчанию является Msg
. Эта опция доступна, если вы принимаете решение вывести необработанные данные или вручную задать сигналы.
Параметры блоков:
MsgName
|
Ввод:
string | character vector
|
Identifier type
— Тип идентификатораStandard (11-bit identifier)
(значение по умолчанию) | Extended (29-bit identifier)
Задайте, является ли вашим идентификатором сообщения Standard
или Extended
ввод. Значением по умолчанию является Standard
. Стандартный идентификатор является 11-битным идентификатором, и расширенный идентификатор является 29-битным идентификатором. Эта опция доступна, если вы принимаете решение вывести необработанные данные или вручную задать сигналы. Для CANdb-заданных сигналов Identifier type наследовал тип от базы данных.
Параметры блоков:
MsgIDType |
Ввод:
string | character vector |
Значения:
'Standard (11-bit identifier)' | 'Extended (29-bit identifier)' |
Значение по умолчанию:
'Standard (11-bit identifier)'
|
Identifier
— Идентификатор сообщения
(значение по умолчанию) | 0 .. 536870911
Задайте свой идентификатор сообщения. Этот номер должен быть целым числом от 0 до 2047 для стандартного идентификатора и от 0 до 536870911 для расширенного идентификатора. Если вы задаете –1
, блок распаковывает сообщения, которые совпадают с длиной, заданной для сообщения. Можно также задать шестнадцатеричные значения с помощью hex2dec
функция. Эта опция доступна, если вы принимаете решение вывести необработанные данные или вручную задать сигналы.
Параметры блоков:
MsgIdentifier |
Ввод:
string | character vector |
Значения:
'0' к '536870911' |
Length (bytes)
— Длина сообщения CAN
(значение по умолчанию) | 0 .. 8
Задайте длину своего сообщения. Для сообщений CAN значение может составить 0-8 байтов; для CAN FD значение может быть 0-8, 12, 16, 20, 24, 32, 48, или 64 байта. Если вы используете CANdb specified signals
для ваших выходных данных файл CANdb задает длину вашего сообщения. Эта опция доступна, если вы принимаете решение вывести необработанные данные или вручную задать сигналы.
Параметры блоков:
MsgLength
|
Ввод:
string | character vector |
Значения:
'0' к '8' , '12' , '16' , '20' , '24' , '32' , '48' , '64'
|
Значение по умолчанию:
'8'
|
Add signal
— Добавьте сигнал CANДобавьте сигнал в таблицу сигнала.
'none'
Delete signal
— Удалите сигнал CANУдалите выбранный сигнал из таблицы сигнала.
'none'
Signals
— Таблица SignalsЕсли вы принимаете решение задать сигналы вручную или задать сигналы при помощи файла CANdb, эта таблица появляется.
Если вы используете файл CANdb, данные в файле заполняют эту таблицу, и вы не можете отредактировать поля. Чтобы отредактировать информацию сигнала, переключитесь на заданные сигналы.
Если вы выбрали, чтобы задать сигналы вручную, создайте свои сигналы вручную в этой таблице. Каждый сигнал, что вы создаете, имеет эти значения:
Задайте описательное имя для своего сигнала. Блок Simulink в вашей модели отображает это имя. Значением по умолчанию является Signal [row number]
.
Задайте старт-бит данных. Старт-бит является младшим значащим битом, считаемым от запуска данных о сообщении. Для CAN старт-бит должен быть целым числом от 0 до 63, для CAN FD 0 до 511, в количестве битов в сообщении. (Обратите внимание на то, что обменивайтесь сообщениями, длина задана в байтах.)
Задайте количество битов, которые сигнал занимает в сообщении. Длина должна быть целым числом от 1 до 64. Сумма всех длин сигнала в сообщении ограничивается количеством битов в длине сообщения; то есть, все сигналы должны кумулятивно соответствовать в длине сообщения. (Обратите внимание на то, что обменивайтесь сообщениями, длина задана в байтах и длине сигнала в битах.)
Выберите любую из следующих опций:
LE
: Где порядок байтов находится в формате с прямым порядком байтов (Intel®). В этом формате вы считаете биты от младшего значащего бита до старшего значащего бита и переходящий к следующему более высокому байту, когда вы пересекаете контур байта. Например, если вы упаковываете один байт данных в формате с прямым порядком байтов со старт-битом в 20, таблица бита данных напоминает этот рисунок.
Прямой порядок байтов, считаемый от младшего значащего бита до самого высокого адреса
BE
: Где порядок байтов находится в формате с обратным порядком байтов (Motorola®). В этом формате вы считаете биты от младшего значащего бита до старшего значащего бита и переходящий к следующему младшему байту, когда вы пересекаете контур байта. Например, если вы упаковываете один байт данных в формате с обратным порядком байтов со старт-битом в 20, таблица бита данных напоминает этот рисунок.
Обратный порядок байтов, считаемый от младшего значащего бита до самого низкого адреса
Задайте, как сигнал интерпретирует данные в выделенных битах. Выберите из:
signed
(значение по умолчанию)
unsigned
single
double
Примечание: Если у вас есть double
сигнал, который не выравнивается точно к контурам байта сообщения, чтобы сгенерировать код с Embedded Coder® необходимо проверять Support long long под Device Details в панели Hardware Implementation диалогового окна Параметров конфигурации.
Задайте, как блок распаковывает сигналы из сообщения на каждом временном шаге:
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 type, чтобы быть Multiplexed
. Значение, которое вы вводите здесь, должно совпадать с the Multiplexor
значение сигналов во время выполнения для блока, чтобы распаковать Multiplexed
сигнал. Multiplex value должен быть положительным целым числом или нулем.
Задайте значение Factor, примененное, чтобы преобразовать распакованное необработанное значение в физическое значение (значение сигналов). Для получения дополнительной информации смотрите формулу преобразования параметра Data input as.
Задайте значение Offset, примененное, чтобы преобразовать физическое значение (значение сигналов) в распакованное необработанное значение. Для получения дополнительной информации смотрите формулу преобразования параметра Data input as.
Задайте область значений необработанных значений сигналов. Настройками по умолчанию является -Inf
(отрицательная бесконечность) и Inf
, соответственно. Для CANdb specified signals эти настройки читаются из базы данных CAN. Для manually specified signals можно задать минимальное и максимальное физическое значение сигнала. По умолчанию эти настройки не отсекают значения сигналов, которые превышают их.
Параметры блоков:
SignalInfo
|
Ввод:
string | character vector |
Output identifier
— Добавьте выходной порт ID CANoff
(значение по умолчанию) | on
Выберите эту опцию, чтобы вывести идентификатор сообщения CAN. Типом данных этого порта является uint32
.
Параметры блоков:
IDPort
|
Ввод:
string | character vector |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off'
|
Output timestamp
— Добавьте выходной порт Метки времениoff
(значение по умолчанию) | on
Выберите эту опцию, чтобы вывести метку времени сообщения. Это значение указывает, когда сообщение было получено, измеренное, когда номер секунд протек, поскольку симуляция модели началась. Эта опция добавляет новый выходной порт в блок. Типом данных этого порта является double
.
Параметры блоков:
TimestampPort
|
Ввод:
string | character vector |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off'
|
Output error
— Добавьте порт Вывода ошибокoff
(значение по умолчанию) | on
Выберите эту опцию, чтобы вывести ошибочное состояние сообщения. Эта опция добавляет новый выходной порт в блок. Выходное значение 1
на этом порте указывает, что входящее сообщение является ошибочной системой координат. Если выходным значением является 0
, нет никакой ошибки. Типом данных этого порта является uint8
.
Параметры блоков:
ErrorPort
|
Ввод:
string | character vector |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off'
|
Output remote
— Добавьте Удаленный выходной портoff
(значение по умолчанию) | on
Выберите эту опцию, чтобы вывести сообщение удаленное состояние системы координат. Эта опция добавляет новый выходной порт в блок. Типом данных этого порта является uint8
.
Параметры блоков:
RemotePort
|
Ввод:
string | character vector |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off'
|
Output length
— Добавьте выходной порт Длиныoff
(значение по умолчанию) | on
Выберите эту опцию, чтобы вывести длину сообщения в байтах. Эта опция добавляет новый выходной порт в блок. Типом данных этого порта является uint8
.
Параметры блоков:
LengthPort
|
Ввод:
string | character vector |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off'
|
Output status
— Добавьте выходной порт Состоянияoff
(значение по умолчанию) | on
Выберите эту опцию, чтобы вывести полученное состояние сообщения. Состоянием является 1
если блок получает новое сообщение и 0
если это не делает. Эта опция добавляет новый выходной порт в блок. Типом данных этого порта является uint8
.
Параметры блоков:
StatusPort
|
Ввод:
string | character vector |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off'
|
Output Bit Rate Switch (BRS)
— Добавьте выходной порт BRSoff
(значение по умолчанию) | on
(Отключенный для протокола CAN.) Выбирают эту опцию, чтобы вывести переключатель битрейта сообщения. Эта опция добавляет новый выходной порт в блок. Типом данных этого порта является boolean
.
Параметры блоков:
BRSPort
|
Ввод:
string | character vector |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off'
|
Output Error Status Indicator (ESI)
— Добавьте выходной порт ESIoff
(значение по умолчанию) | on
(Отключенный для протокола CAN.) Выбирают эту опцию, чтобы вывести ошибочное состояние сообщения. Эта опция добавляет новый выходной порт в блок. Типом данных этого порта является boolean
.
Параметры блоков:
ESIPort
|
Ввод:
string | character vector |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off'
|
Output Data Length Code (DLC)
— Добавьте выходной порт DLCoff
(значение по умолчанию) | on
(Отключенный для протокола CAN.) Выбирают эту опцию, чтобы вывести длину данных о сообщении. Эта опция добавляет новый выходной порт в блок. Типом данных этого порта является double
.
Параметры блоков:
DLCPort
|
Ввод:
string | character vector |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off'
|
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.