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


Блок распаковки CAN распаковывает сообщение CAN в сигнальные данные с использованием заданных выходных параметров на каждом шаге времени. Данные выводятся в виде отдельных сигналов.
Для использования этого блока также необходима лицензия на программное обеспечение Simulink ®.
Блок распаковки CAN поддерживает:
Использование режима Simulink Accelerator™ Rapid Accelerator. С помощью этой функции можно ускорить выполнение моделей Simulink.
Использование привязки модели. С помощью этой функции модель может включать другие модели Simulink в качестве модульных компонентов.
Дополнительные сведения об этих функциях см. в разделе Проектирование модели для эффективного ускорения.
Совет
Для обработки каждого сообщения, поступающего через канал, рекомендуется использовать блок распаковки CAN в функциональной триггерной подсистеме. См. раздел Использование инициированных подсистем.
Для работы с J1939 сообщениями используйте блоки в библиотеке блоков J1939 Communication вместо этого блока.
input - ввод сообщения CANЭтот блок имеет один входной порт, CAN Msg. Блок распаковки CAN принимает заданные входные параметры и распаковывает сигналы в сообщение.
Блок поддерживает следующие типы данных входного сигнала: одиночный, двойной, int8, int16, int32, int64, uint8, uint16, uint32, uint64 и boolean. Блок не поддерживает типы данных с фиксированной точкой.
Создание кода для развертывания моделей на целевых объектах. Создание кода не поддерживается, если информация о сигнале состоит из подписанных или неподписанных целых чисел длиной более 32 бит.
output - вывод сообщения CANПо умолчанию блок распаковки CAN имеет один выходной порт. Количество выходных портов является динамическим и зависит от количества сигналов, которое задается для вывода блока. Например, если блок имеет четыре сигнала, он имеет четыре выходных порта.
При выборе опции «Выходные порты» в блок добавляется выходной порт. Дополнительные сведения см. в разделе Параметры Output identifier, Output timestamp, Output error, Output remote, Output length, и Output status.
Для сигналов, указанных вручную или в 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 - список сообщений CANЭта опция доступна, если в списке Данные для вывода указано, что данные должны быть выведены как файл CANdb, а в поле Файл CANdb выбран файл CANdb. Можно выбрать сообщение, которое требуется просмотреть. В таблице 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 наследует тип из базы данных.
Параметр блока:
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: Где порядок байтов в формате little-endian (Intel ®). В этом формате вы считываете биты от младшего бита до старшего бита. Например, при упаковке одного байта данных в формате little-endian с начальным битом 20 таблица битов данных напоминает этот рисунок.
Порядок байтов Little-Endian, отсчитанных от младшего бита до самого высокого адреса
BE: Где порядок байтов в формате big-endian (Motorola ®). В этом формате вы считываете биты от младшего бита до старшего бита. Например, при упаковке одного байта данных в формате big-endian с начальным битом 20 таблица битов данных напоминает этот рисунок.
Big-Endian Byte Order подсчитан от младшего бита до наименьшего адреса
Укажите, как сигнал интерпретирует данные в выделенных битах. Выберите один из следующих вариантов:
signed (по умолчанию)
unsigned
single
double
Укажите, как блок распаковывает сигналы из сообщения CAN на каждом шаге времени:
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 - идентификатор сообщения CANЭта опция используется для вывода идентификатора сообщения 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
|
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.