Распаковка отдельных сигналов из сообщений CAN
Блоки Simulink в реальном времени/CAN/CAN MSG
Автомобильный сетевой Toolbox/Связь с CAN
Встроенный кодер/встроенные целевые системы/коммуникация с хостом
Блок CAN Unpack распаковывает сообщение CAN в данные сигнала с помощью заданных выходных параметров на каждом временном шаге. Данные выводятся как отдельные сигналы.
Чтобы использовать этот блок, вам также нужна лицензия для Simulink® программное обеспечение.
Блок CAN Unpack поддерживает:
Использование режима Simulink Accelerator™ Rapid Accelerator. Используя эту функцию, можно ускорить выполнение моделей Simulink.
Использование ссылок на модели. Используя эту функцию, ваша модель может включать другие модели Simulink в качестве модульных компонентов.
Для получения дополнительной информации об этих функциях см. «Проект вашей модели для эффективного ускорения» (Simulink).
Совет
Чтобы обработать каждое сообщение, поступающее через канал, рекомендуется использовать блок CAN Unpack в подсистеме триггера функции. См. Использование триггируемых подсистем (Simulink).
Для работы с J1939 сообщениями используйте блоки в библиотеке блоков J1939 Communication вместо этого блока. См. раздел J1939 Communication.
input
- Вход сообщения CANЭтот блок имеет один входной порт, Сообщение CAN. Блок CAN Unpack принимает указанные входные параметры и распаковывает сигналы в сообщение.
Блок поддерживает следующие входному сигналу типы данных: single, double, int8, int16, int32, int64, uint8, uint16, uint32, uint64 и boolean. Блок не поддерживает типы данных с фиксированной точкой.
Генерация кода для развертывания моделей на целевых объектах. Генерация кода не поддерживается, если информация о вашем сигнале состоит из подписанных или беззнаковых целых чисел длиной более 32 битов.
output
- вывод сообщения CANБлок CAN Unpack по умолчанию имеет один выходной порт. Количество портов выхода является динамическим и зависит от количества сигналов, которые вы задаете для вывода блока. Для примера, если ваш блок имеет четыре сигнала, блок имеет четыре порта выхода.
Выбор опции Output ports добавляет к блоку выхода порт. Для получения дополнительной информации смотрите параметры Output identifier
, Output timestamp
, Output error
, Output remote
, Output length
, и Output status
.
Для сигналов, заданных вручную или CANdb, тип выхода сигнала по умолчанию данных double. Чтобы задать другие типы, используйте Signal Specification (Simulink) блок. Это позволяет блоку поддерживать следующие типы данных выходного сигнала: single, double, int8, int16, int32, int64, uint8, uint16, uint32, uint64 и boolean. Блок не поддерживает фиксированные точки.
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
|
CANdb file
- Файл базы данных CANЭта опция доступна, если вы задаете, что ваши данные вводятся через файл CANdb в списке Data to be output as. Нажмите кнопку Обзор, чтобы найти файл CANdb в вашей системе. Сообщения и определения сигналов, указанные в файле CANdb, заполняют раздел Message диалогового окна. Сигналы, указанные в файле CANdb, заполняются Signals таблицу. Имена файлов, которые содержат неалфавитно-цифровые символы, такие как знаки равенства, амперсанды и так далее, не являются допустимыми именами файлов базы данных CAN. В имени базы данных можно использовать периоды. Переименуйте файлы базы данных CAN с неалфавитно-цифровыми символами перед использованием.
Параметры блоков:
CANdbFile
|
Message list
- Список сообщений CANЭта опция доступна, если вы задаете в списке Data to be output as, что ваши данные должны быть выведены как файл CANdb, и вы выбираете файл CANdb в CANdb file поле. Вы можете выбрать сообщение, которое вы хотите просмотреть. Затем в таблице Signals отображаются подробные данные выбранного сообщения.
Параметры блоков:
MsgList
|
Name
- Имя сообщения CANCAN Msg
(по умолчанию) | вектор символовУкажите имя для сообщения CAN. Значение по умолчанию является CAN Msg
. Эта опция доступна, если вы принимаете решение вывести необработанные данные или вручную задать сигналы.
Параметры блоков:
MsgName
|
Identifier type
- тип идентификатора CANStandard (11-bit identifier)
(по умолчанию) | Extended (29-bit identifier)
Укажите, является ли ваш идентификатор сообщения CAN Standard
или Extended
тип. Значение по умолчанию является Standard
. Стандартный идентификатор является 11-битным идентификатором, а расширенный идентификатор - 29-битным идентификатором. Эта опция доступна, если вы принимаете решение вывести необработанные данные или вручную задать сигналы. Для заданных CANdb сигналов Identifier type наследует тип из базы данных.
Параметры блоков:
MsgIDType
|
CAN Identifier
- Идентификатор сообщения CAN0
(по умолчанию) | 0 .. 536870911
Укажите идентификатор сообщения CAN. Это число должно быть целым числом от 0 до 2047 для стандартного идентификатора и от 0 до 536870911 для расширенного идентификатора. Если вы задаете -1
, блок распаковывает сообщения, которые совпадают с длиной, заданной для сообщения. Можно также задать шестнадцатеричные значения при помощи hex2dec
функция. Эта опция доступна, если вы принимаете решение вывести необработанные данные или вручную задать сигналы.
Параметры блоков:
MsgIdentifier
|
Length (bytes)
- Длина сообщения CAN8
(по умолчанию) | 0 .. 8
Задайте длину сообщения CAN от 0 до 8 байт. Если вы используете CANdb specified signals
для ваших выходных данных, файл CANdb определяет длину вашего сообщения. Если нет, это поле по умолчанию имеет значение 8
. Эта опция доступна, если вы принимаете решение вывести необработанные данные или вручную задать сигналы.
Параметры блоков:
MsgLength
|
Add signal
- Добавить сигнал CANДобавьте сигнал в таблицу сигналов.
Параметры блоков:
AddSignal
|
Delete signal
- Удалить сигнал CANУдалите сигнал из таблицы сигналов.
Параметры блоков:
DeleteSignal
|
Signals
- Таблица сигналовЕсли вы решите задать сигналы вручную или задать сигналы с помощью файла CANdb, появится эта таблица.
Если вы используете файл CANdb, данные в файле заполняют эту таблицу, и вы не можете редактировать поля. Для редактирования информации о сигнале переключитесь на заданные сигналы.
Если вы выбрали, чтобы задать сигналы вручную, создайте свои сигналы вручную в этой таблице. Каждый сигнал, который вы создаете, имеет следующие значения:
Задайте описательное имя для вашего сигнала. Блок Simulink в вашей модели отображает это имя. Значение по умолчанию является Signal [row number]
.
Задайте старт-бит данных. Этот старт-бит является наименее значимым битом, отсчитываемым от начала сообщения. Значение старта-бита должно быть целым числом от 0 до 63.
Укажите количество бит, занимаемых сигналом в сообщении. Длина должна быть целым числом от 1 до 64.
Выберите один из следующих опций:
LE
: Где порядок байтов в маленьком эндовом формате (Intel®). В этом формате вы отсчитываете биты от наименее-значимого бита до наиболее-значимого бита. Для примера, если вы упаковываете один байт данных в маленьком эндовом формате, с старта-бита на 20, битовая таблица данных напоминает этот рисунок.
Порядок байтов Little-Endian, отсчитываемый от наименее значимого бита до самого высокого адреса
BE
: Где порядок байтов в крупноэндовом формате (Motorola®). В этом формате вы отсчитываете биты от наименее-значимого бита до наиболее-значимого бита. Например, если вы упаковываете один байт данных в формате big-endian, с стартом-битом в 20, битовая таблица данных напоминает этот рисунок.
Порядок байтов Big-Endian, отсчитываемый от наименее значимого бита до самого низкого адреса
Задайте, как сигнал интерпретирует данные в выделенных битах. Выберите из:
signed
(по умолчанию)
unsigned
single
double
Укажите, как блок распаковывает сигналы из сообщения CAN на каждом временном шаге:
Standard
: Сигнал распаковывается на каждом временном шаге.
Multiplexor
: The 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
. Предоставляемое значение должно совпадать с Multiplexor
значение сигналов во время исполнения для блока, чтобы распаковать Multiplexed
сигнал. Значение Multiplex value должно быть положительным целым числом или нулями.
Задайте значение Factor, примененное для преобразования неупакованного необработанного значения в физическое значение (значение сигналов). Для получения дополнительной информации смотрите формулу преобразования Data input as параметра.
Задайте значение Offset, примененное для преобразования физического значения (значения сигналов) в неупакованное необработанное значение. Для получения дополнительной информации смотрите формулу преобразования Data input as параметра.
Задайте область значений необработанных значений сигналов. Настройки по умолчанию -Inf
(отрицательная бесконечность) и Inf
, соответственно. Для CANdb specified signals эти параметры считываются из базы данных CAN. Для manually specified signals можно задать минимальное и максимальное физическое значение сигнала. По умолчанию эти настройки не фиксируют значения сигналов, которые их превышают.
Параметры блоков:
SignalInfo
|
Output identifier
- Идентификатор сообщения CANВыберите эту опцию, чтобы вывести идентификатор сообщения CAN. Тип данных этого порта - uint32.
Параметры блоков:
IDPort
|
Output timestamp
- Включите временную метку сообщения CANoff
(по умолчанию) | on
Выберите эту опцию, чтобы вывести временную метку сообщения. Это значение указывает, когда сообщение было получено, измеренное как количество секунд, прошедших с начала симуляции модели. Эта опция добавляет к блоку новый выходной порт. Тип данных этого порта - double.
Параметры блоков:
TimestampPort
|
Output error
- Включить сообщение CAN об ошибкеoff
(по умолчанию) | on
Выберите эту опцию, чтобы вывести состояние ошибки сообщения. Эта опция добавляет к блоку новый выходной порт. Выход значение 1
на этом порте указывается, что входящее сообщение является системой координат ошибки. Если выходное значение 0
, ошибки нет. Тип данных этого порта - uint8.
Параметры блоков:
ErrorPort
|
Output remote
- Включить сообщение CAN о состоянии удаленной системы координатoff
(по умолчанию) | on
Выберите эту опцию, чтобы вывести сообщение о состоянии удаленной системы координат. Эта опция добавляет к блоку новый выходной порт. Тип данных этого порта - uint8.
Параметры блоков:
RemotePort
|
Output length
- Включить длину сообщения CANoff
(по умолчанию) | on
Выберите эту опцию, чтобы вывести длину сообщения в байтах. Эта опция добавляет к блоку новый выходной порт. Тип данных этого порта - uint8.
Параметры блоков:
LengthPort
|
Output status
- Включить выход состоянияoff
(по умолчанию) | on
Выберите эту опцию, чтобы вывести состояние полученного сообщения. Статус: 1
если блок получает новое сообщение и 0
если нет. Эта опция добавляет к блоку новый выходной порт. Тип данных этого порта uint8.
Параметры блоков:
StatusPort
|
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.