Распаковка отдельных сигналов из сообщений CAN FD
Набор инструментов для сети транспортных средств/CAN FD Communication
Блоки MSG Simulink в реальном времени/CAN/CAN-FD
Пакет поддержки встроенного кодера для техасских приборов C2000 процессоров/целевой системы связи

Блок распаковки CAN FD распаковывает сообщение CAN FD в сигнальные данные с использованием заданных выходных параметров на каждом шаге времени. Данные выводятся в виде отдельных сигналов.
Для использования этого блока также необходима лицензия на программное обеспечение Simulink ®.
Блок распаковки CAN FD поддерживает:
Режим Accelerator™ Simulink. Можно ускорить выполнение моделей Simulink. Дополнительные сведения см. в разделе Проектирование модели для эффективного ускорения.
Совет
Для обработки каждого сообщения, поступающего через канал, рекомендуется использовать блок распаковки CAN FD в функциональной триггерной подсистеме. См. раздел Использование инициированных подсистем.
Для работы с J1939 сообщениями используйте блоки в библиотеке блоков J1939 Communication вместо этого блока. Смотрите J1939.
input - ввод сообщения CANЭтот блок имеет один входной порт, CAN Msg. Блок распаковки CAN принимает заданные входные параметры и распаковывает сигналы в сообщение.
Блок поддерживает следующие типы данных входного сигнала: одиночный, двойной, int8, int16, int32, int64, uint8, uint16, uint32, uint64 и boolean. Блок не поддерживает типы данных с фиксированной точкой.
Создание кода для развертывания моделей на целевых объектах. Создание кода не поддерживается, если информация о сигнале состоит из подписанных или неподписанных целых чисел длиной более 32 бит.
output - вывод сообщения CANПо умолчанию блок распаковки CAN FD имеет один выходной порт. Количество выходных портов является динамическим и зависит от количества сигналов, заданных для вывода блока. Например, если блок имеет четыре сигнала, он имеет четыре выходных порта.
Если параметр «Выходные порты» не выбран, количество выходных портов в блоке зависит от указанного количества сигналов.
Для сигналов, указанных вручную или в CANdb, тип данных выходного сигнала по умолчанию является двойным. Чтобы указать другие типы, используйте блок «Спецификация сигнала». Это позволяет блоку поддерживать следующие типы данных выходного сигнала: одиночный, двойной, int8, int16, int32, int64, uint8, uint16, uint32, uint64 и логический. Блок не поддерживает фиксированные типы точек.
Data to output as - Выберите сигнал данныхraw data (по умолчанию) | manually specify signals | CANdb specified signalsraw 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 file - файл базы данных CANЭта опция доступна, если указать, что данные вводятся через файл CANdb в списке Данные для вывода как. Нажмите кнопку Обзор, чтобы найти файл CANdb в системе. Сообщения и определения сигналов, указанные в файле CANdb, заполняют раздел Message диалогового окна. Сигналы, указанные в файле CANdb, заполняют таблицу Signals. Имена файлов, содержащие не алфавитно-цифровые символы, такие как знаки равенства, амперсанды и т.д., не являются допустимыми именами файлов базы данных CAN. В имени базы данных можно использовать точки. Переименуйте файлы базы данных CAN с использованием символов, отличных от букв и цифр.
Параметр блока:
CANdbFile
|
Message list - Список сообщенийЭта опция доступна, если в списке Данные для вывода указано, что данные должны быть выведены как файл CANdb, а в поле Файл CANdb выбран файл CANdb. Можно выбрать сообщение, которое требуется просмотреть. В таблице Signals отображается подробная информация о выбранном сообщении.
Параметр блока:
MsgList
|
Name - Имя сообщенияCAN Msg (по умолчанию) | символьный векторУкажите имя сообщения. Значение по умолчанию: Msg. Эта опция доступна, если выбрано выводить необработанные данные или вручную задавать сигналы.
Параметр блока:
MsgName
|
Identifier type - Тип идентификатораStandard (11-bit identifier) (по умолчанию) | Extended (29-bit identifier)Укажите, является ли идентификатор сообщения Standard или Extended тип. Значение по умолчанию: Standard. Стандартный идентификатор является 11-битным идентификатором, а расширенный идентификатор является 29-битным идентификатором. Эта опция доступна, если выбрано выводить необработанные данные или вручную задавать сигналы. Для сигналов, указанных в CANdb, тип Identifier наследует тип из базы данных.
Параметр блока:
MsgIDType
|
Identifier - Идентификатор сообщения0 (по умолчанию) | 0 .. 536870911Укажите идентификатор сообщения. Это число должно быть целым числом от 0 до 2047 для стандартного идентификатора и от 0 до 536870911 для расширенного идентификатора. При указании –1блок распаковывает сообщения, соответствующие длине, указанной для сообщения. Можно также указать шестнадцатеричные значения с помощью hex2dec функция. Эта опция доступна, если выбрано выводить необработанные данные или вручную задавать сигналы.
Параметр блока:
MsgIdentifier
|
Length (bytes) - длина сообщения CAN8 (по умолчанию) | 0 .. 8Укажите длину сообщения. Для сообщений CAN значение может быть 0-8 байт; для CAN FD значение может быть 0-8, 12, 16, 20, 24, 32, 48 или 64 байта. Если используется CANdb specified signals для выходных данных в файле CANdb определяется длина сообщения. Эта опция доступна, если выбрано выводить необработанные данные или вручную задавать сигналы.
Параметр блока:
MsgLength
|
Add signal - Добавить сигнал CANДобавьте сигнал в таблицу сигналов.
Параметр блока:
AddSignal
|
Delete signal - Снять сигнал CANУдалите сигнал из таблицы сигналов.
Параметр блока:
DeleteSignal
|
Signals - Таблица сигналовЕсли вы решили задать сигналы вручную или определить сигналы с помощью файла CANdb, появится эта таблица.
Если вы используете файл CANdb, данные в файле заполняют эту таблицу, и вы не можете редактировать поля. Для редактирования сигнальной информации переключитесь на указанные сигналы.
Если выбрано задание сигналов вручную, создайте сигналы в этой таблице вручную. Каждый создаваемый сигнал имеет следующие значения:
Укажите описательное имя для сигнала. Это имя отображается в блоке Simulink модели. Значение по умолчанию: Signal [row number].
Укажите начальный бит данных. Начальный бит - это младший бит, отсчитываемый от начала данных сообщения. Для CAN начальный бит должен быть целым числом от 0 до 63, для CAN FD от 0 до 511, в пределах числа битов в сообщении. (Обратите внимание, что длина сообщения указана в байтах.)
Укажите количество битов, занимаемых сигналом в сообщении. Длина должна быть целым числом от 1 до 64. Сумма всех длин сигналов в сообщении ограничена количеством битов в длине сообщения; то есть все сигналы должны кумулятивно соответствовать длине сообщения. (Обратите внимание, что длина сообщения указана в байтах, а длина сигнала - в битах.)
Выберите одну из следующих опций:
LE: Где порядок байтов в формате little-endian (Intel ®). В этом формате вы считываете биты от младшего бита до старшего бита и переходите к следующему более высокому байту при пересечении границы байта. Например, при упаковке одного байта данных в формате little-endian с начальным битом 20 таблица битов данных напоминает этот рисунок.
Порядок байтов Little-Endian, отсчитанных от младшего бита до самого высокого адреса
BE: Где порядок байтов в формате big-endian (Motorola ®). В этом формате вы считываете биты от младшего бита до старшего бита и переходите к следующему нижнему байту при пересечении границы байта. Например, при упаковке одного байта данных в формате big-endian с начальным битом 20 таблица битов данных напоминает этот рисунок.
Big-Endian Byte Order подсчитан от младшего бита до наименьшего адреса
Укажите, как сигнал интерпретирует данные в выделенных битах. Выберите один из следующих вариантов:
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
|
Output identifier - Включить идентификатор сообщения CANoff (по умолчанию) | onЭта опция используется для вывода идентификатора сообщения CAN. Тип данных этого порта - uint32.
Параметр блока:
IDPort
|
Output timestamp - Включить метку времени сообщения CANoff (по умолчанию) | onЭта опция используется для вывода временной метки сообщения. Это значение указывает, когда было получено сообщение, измеренное как количество секунд, прошедших с начала моделирования модели. Эта опция добавляет в блок новый выходной порт. Тип данных этого порта - двойной.
Параметр блока:
TimestampPort
|
Output error - Включить состояние ошибки сообщения CANoff (по умолчанию) | onЭта опция используется для вывода состояния ошибки сообщения. Эта опция добавляет в блок новый выходной порт. Выходное значение 1 на этом порту указывает, что входящее сообщение является кадром ошибки. Если выходное значение равно 0, ошибки нет. Тип данных этого порта - uint8.
Параметр блока:
ErrorPort
|
Output remote - Включить состояние удаленного кадра сообщения CANoff (по умолчанию) | onЭта опция используется для вывода состояния удаленного кадра сообщения. Эта опция добавляет в блок новый выходной порт. Тип данных этого порта - uint8.
Параметр блока:
RemotePort
|
Output length - Включить длину сообщения CANoff (по умолчанию) | onВыберите этот параметр для вывода длины сообщения в байтах. Эта опция добавляет в блок новый выходной порт. Тип данных этого порта - uint8.
Параметр блока:
LengthPort
|
Output status - Включить вывод состоянияoff (по умолчанию) | onЭта опция используется для вывода состояния полученного сообщения. Статус: 1 если блок получает новое сообщение и 0 если это не так, эта опция добавляет в блок новый выходной порт. Тип данных этого порта - uint8.
Параметр блока:
StatusPort
|
Output Bit Rate Switch (BRS) - Включить вывод BRSoff (по умолчанию) | on(Отключен для протокола CAN.) Эта опция используется для вывода коммутатора скорости передачи сообщений. Эта опция добавляет в блок новый выходной порт. Тип данных этого порта является логическим.
Параметр блока:
BRSPort
|
Output Error Status Indicator (ESI) - Включить выход ESIoff (по умолчанию) | on(Отключен для протокола CAN.) Эта опция используется для вывода состояния ошибки сообщения. Эта опция добавляет в блок новый выходной порт. Тип данных этого порта является логическим.
Параметр блока:
ESIPort
|
Output Data Length Code (DLC) - Включить вывод DLCoff (по умолчанию) | on(Отключен для протокола CAN.) Эта опция используется для вывода длины данных сообщения. Эта опция добавляет в блок новый выходной порт. Тип данных этого порта - двойной.
Параметр блока:
DLCPort
|
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.