Декодер CAN Bus & J1939
Инструмент анализа автомобильных сетей - Поддержка DBC
Декодер CAN ID
Анализ CAN ID для извлечения параметров J1939, включая Приоритет, PGN, Адрес источника и Адрес назначения.
Документация
Этот инструмент обеспечивает всестороннюю поддержку анализа протоколов CAN (Controller Area Network) и SAE J1939. CAN — доминирующий стандарт связи в автомобильных и промышленных приложениях, а J1939 расширяет CAN для тяжелых транспортных средств и внедорожной техники.
Понимание протокола J1939
SAE J1939 — протокол верхнего уровня, построенный на CAN 2.0B с 29-битными расширенными идентификаторами. 29-битный CAN ID кодирует множество параметров, определяющих маршрутизацию и приоритет сообщений.
Структура идентификатора J1939
29-битный идентификатор разделен на отдельные поля. От старшего к младшему биту структура содержит Приоритет (3 бита), Зарезервировано/EDP (1 бит), Страницу данных (1 бит), Формат PDU (8 бит), PDU Specific (8 бит) и Адрес источника (8 бит). Такое кодирование обеспечивает эффективную приоритизацию и адресацию сообщений в автомобильной сети.
Номера групп параметров (PGN)
PGN — основной механизм адресации в J1939. Он идентифицирует тип и содержание передаваемых данных. PGN выводится из полей Формат PDU и PDU Specific, интерпретация зависит от того, использует ли сообщение формат PDU1 или PDU2.
Когда Формат PDU меньше 240 (0xF0), сообщение в формате PDU1 с адресацией к конкретному получателю. Поле PDU Specific содержит Адрес назначения. Когда Формат PDU равен 240 или больше, сообщение в формате PDU2 для широковещательных сообщений, и PDU Specific становится частью самого PGN.
Методы извлечения сигналов
Протоколы J1939 и CAN кодируют множество сигналов в 8-байтовых кадрах данных. Каждый сигнал имеет определенную начальную битовую позицию, длину в битах и порядок байтов. Этот инструмент поддерживает соглашения Intel (Little-Endian) и Motorola (Big-Endian).
Физические значения вычисляются из сырых значений сигналов по стандартной формуле: Физическое значение = Сырое значение × Коэффициент + Смещение. Это преобразование переводит двоичные показания датчиков в осмысленные инженерные единицы, такие как температура, давление или скорость.
Распространенные J1939 PGN
- PGN 65262 (0xFEEE) — Температура двигателя 1: Содержит показания температуры охлаждающей жидкости, топлива и масла двигателя.
- PGN 61444 (0xF004) — Электронный контроллер двигателя 1: Сообщает фактический крутящий момент двигателя, требуемый водителем момент и обороты двигателя (RPM).
- PGN 65265 (0xFEF1) — Круиз-контроль/Скорость автомобиля: Предоставляет измерения скорости на основе колес и двигателя.
- PGN 65269 (0xFEF5) — Условия окружающей среды: Содержит атмосферное давление, температуру окружающей среды и температуру воздуха на впуске двигателя.
- PGN 65263 (0xFEEF) — Уровень/Давление жидкостей двигателя: Сообщает давление подачи топлива, давление масла и давление охлаждающей жидкости.
Практические применения
- Разработка ECU: Проверка форматов сообщений при разработке встроенных контроллеров и интеграционном тестировании.
- Диагностика автомобиля: Анализ трафика CAN в реальном времени для устранения проблем связи и проверки показаний датчиков.
- Телематика автопарка: Анализ данных J1939 для мониторинга расхода топлива, учета моточасов и предиктивного обслуживания.
- Калибровка силовой установки: Извлечение параметров двигателя для настройки производительности и проверки соответствия нормам выбросов.
- Обучение протоколам: Изучение структуры протокола J1939 через практическое декодирование реальных примеров сообщений.
Соглашения о порядке байтов
Intel (Little-Endian) начинается с младшего бита и байта, обычно используется в процессорах x86 и многих современных ECU. Motorola (Big-Endian) начинается со старшего бита и байта, традиционно используется в CAN и автомобильных приложениях. Выбор правильного порядка байтов критически важен для точной интерпретации сигналов.
Обзор функций
Этот комплексный декодер CAN Bus предлагает четыре основных функциональных модуля для различных задач анализа автомобильных сетей:
- Декодирование ID: Анализирует 29-битные расширенные ID J1939 или 11-битные стандартные ID. Извлекает приоритет, PGN, адрес источника, адрес назначения и информацию о формате PDU.
- Извлечение данных: Извлекает значения сигналов из 8-байтовых CAN фреймов с настраиваемым начальным битом, длиной битов и порядком байтов. Поддерживает знаковые/беззнаковые целые и числа с плавающей точкой IEEE 754.
- Просмотр логов: Анализирует CAN лог-файлы различных форматов, включая Linux candump, Vector ASC и PCAN TRC. Фильтрация по CAN ID и экспорт в CSV.
- DBC декодер: Загрузите DBC файлы Vector CANdb++ для автоматического декодирования всех сигналов. Просматривайте сообщения, ищите сигналы, просматривайте узлы и выполняйте быстрое декодирование сигналов.
Поддержка DBC файлов
DBC (CAN Database) файлы определяют полную структуру CAN коммуникации, включая сообщения, сигналы, узлы и описания значений. Этот инструмент полностью поддерживает DBC файлы в формате Vector CANdb++.
После загрузки DBC файла вы можете просматривать все определённые сообщения с их временем цикла и количеством сигналов, искать среди тысяч сигналов по имени или единице измерения, просматривать ECU узлы и их передаваемые сообщения, а также быстро декодировать сырые CAN данные с использованием предопределённых описаний сигналов.
DBC парсер поддерживает: определения сообщений (BO_), определения сигналов (SG_), объявления узлов (BU_), описания значений (VAL_), комментарии (CM_), атрибуты (включая время цикла и начальные значения), порядок байтов Intel/Motorola и знаковые/беззнаковые типы значений.
Поддерживаемые форматы ввода
Поддерживает несколько форматов ввода данных для гибкости:
- Hex с пробелами: Стандартный формат с байтами, разделёнными пробелами. Пример:
FF 00 11 22 33 44 55 66 - Hex без пробелов: Непрерывная hex строка без пробелов. Пример:
FF00112233445566 - Base64: Двоичные данные в кодировке Base64. Пример:
/wARIjNEVWY= - C/C++ массив: Запись массива в стиле C. Пример:
0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66
Форматы лог-файлов
Просмотр логов поддерживает автоматическое определение распространённых форматов CAN логов:
- Linux candump:
(1234567890.123456) can0 18FEF100#FF00112233445566 - Vector ASC:
0.000000 1 18FEF100x Rx d 8 FF 00 11 22 33 44 55 66 - PCAN Trace:
1) 1234.5 18FEF100 8 FF 00 11 22 33 44 55 66
Поддержка транспортного протокола
Транспортный протокол J1939 (TP) позволяет передавать сообщения размером более 8 байт. Включение сборки TP позволяет автоматически анализировать многокадровые сообщения (BAM и CMDT), объединяя их в полные полезные данные.
Связанные инструменты
Парсер Modbus RTU/ASCII/TCP
Парсинг, кодирование и отладка кадров протокола Modbus RTU/ASCII/TCP с расчётом CRC-16/LRC и последовательной отладкой
Онлайн-отладчик последовательного порта
Браузерный инструмент отладки последовательного порта - не требует загрузки, мониторинг в реальном времени через Web Serial API
LoRaWAN Декодер
Декодирование и кодирование пакетов LoRaWAN PHYPayload с калькулятором времени в эфире, поддержкой OTAA/ABP и фреймами данных
MQTT Кодек
Кодирование и декодирование пакетов протокола MQTT с детальным анализом полей, Hex-просмотрщиком и конструктором пакетов