Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
«Да, это простое и практичное руководство по протоколу SAE J1939», — Хунке.
Начало:В этом введении,Мы представили основы протокола J1939.,К ним относятся ПГН и СПН. Поскольку это введение, ориентированное на применение,Таким образом, вы также узнаете, как пройтиDBC-файлдекодированиеJ1939данные、Как войти в J1939, типичные случаи применения и практические советы. под,Давайте узнаем об этом простом и понятном введении в J1939~
Короче говоря, SAE J1939 на самом деле представляет собой набор стандартов. ЭБУ автомобилей большой грузоподъемности обмениваются данными по шине CAN в соответствии с этим набором стандартов. Большинство автомобилей сегодня используют CAN (сеть контроллеров) для связи с ЭБУ. Однако шина CAN обеспечивает лишь основу для связи (так же, как телефон), но не обеспечивает «язык» для диалога для выполнения более сложных операций. В большинстве крупных автомобилей этим «языком» является стандарт SAE J1939, определенный Обществом автомобильных инженеров (SAE). Если объяснить это профессиональным языком: на основе «физического уровня» CAN J1939 предоставляет протокол высокого уровня HLP (протокол более высокого уровня).
J1939 принадлежит к «протоколу более высокого уровня». J1939 основан на CAN, который обеспечивает базовый «физический уровень» и «уровень канала передачи данных», которые являются самым низким уровнем модели OSI. По сути, CAN обеспечивает только простую связь по шине CAN, но не более того. Будучи протоколом высокого уровня, J1939 может обеспечивать более сложную связь. Протокол более высокого уровня позволяет обмениваться данными между большими и сложными сетями. Например, САЭ Протокол J1939 определяет, как обрабатывать " многопакетная датаграмма », то есть когда необходимо передать данные размером более 8 байт. Аналогично, он определяет, как данные анализируются в удобочитаемые данные. Он делает это, предоставляя набор стандартов. J1939-71. В этом документе подробно описано, как. для преобразования большого количества сообщений J1939, уже используемых многими производителями, в необходимую удобочитаемую информацию данных (дополнительную информацию см. ниже).
Существует множество других протоколов более высокого уровня, основанных на CAN, таких как CANopen, DeviceNet, службы UDS. Хотя все они могут быть расширены производителями, они обычно представляют собой определенную степень стандарта в своих отраслях. Напротив, производители легковых автомобилей используют собственные стандарты. Другими словами, вы можете использовать один и тот же файл J1939.dbc для анализа оборотов двигателя двух грузовиков разных автомобильных компаний, но вы не можете использовать файл .dbc модели Peugeot 207 для анализа данных модели Audi A4.
J1939 — стандарт, широко используемый в тяжелых транспортных средствах и электрозарядных станциях. Проще говоря, J1939 стандартизирует связь между ЭБУ, или, другими словами: J1939 обеспечивает общий язык для разных производителей. Напротив, легковые автомобили используют собственные протоколы, настроенные OEM-производителями.
Случаи применения J1939
Одним из наиболее известных применений J1939 является его применение на транспортных средствах большой грузоподъемности (таких как автобусы или грузовики) (однако производные стандарты SAE J1939 также используются в некоторых основных областях промышленности, таких как: ISO 11783, MilCAN, NMEA 2000, ФМС):
С развитием телематических технологий для тяжелых транспортных средств J1939 играет все более важную роль на рынке Интернета транспортных средств. Поэтому безопасности записывающих устройств IoT (Интернета вещей) J1939 уделяется все больше внимания. В то же время OEM-производители постепенно перейдут от традиционного CAN к CAN FD и перейдут на протокол J1939 с переменной скоростью передачи данных. Кроме того, J1939 также используется в качестве стандарта прикладного уровня в области зарядных устройств для электромобилей. Например, протокол связи между внешним проводящим зарядным устройством электромобиля национального стандарта GBT27930-2015 и системой управления аккумулятором определяет группу параметров связи прикладного уровня J1939 и так далее. Благодаря устойчивому развитию электромобилей J1939 будет применяться ко все большему количеству узлов.
«Ожидается, что к 2020 году рынок средств связи в транспортных средствах (аппаратного обеспечения и приложений, которые предоставляют водителям или автопаркам множество новых функций) достигнет 120 миллиардов евро». Откуда: Бостон Consulting Group, Connected Vehicles and the Road to Revenue
Скорость передачи данных J1939 обычно составляет 250 Кбит/с (в последнее время также поддерживается 500 Кбит/с) и имеет 18-битный расширенный идентификатор, всего 29-битных идентификаторов (CAN 2.0B).
Большинство сообщений J1939 распространяются по CAN-шине в виде широковещательных рассылок, а некоторые данные можно получить из CAN-шины только посредством запросов.
В сообщении J1939 18-битный PGN (номера групп параметров) используется в качестве метки для группы параметров. В группе параметров имеется один или несколько конкретных параметров, и каждый конкретный параметр в группе параметров указан в J1939. идентифицируется 19-значным SPN (номером подозрительного параметра)
Многобайтовые переменные отправляются первыми с младшим битом допустимого байта (порядок байтов Intel). Поддерживает PGN до 1785 байт в соответствии с транспортным протоколом.
Ниже приведен набор дополнительных характеристик протокола J1939:
Зарезервированные PGN: J1939 содержит большое количество стандартных PGN, но PGN от 00FF00 до 00FFFF зарезервированы. Специальный PGN: байты данных 0xFF (255) отражают данные N/A, а 0xFE (254) отражают ошибки.
PGN в J1939 включает 18 бит 29-битного CAN ID расширенного кадра. PGN — единственный идентификатор кадра в стандарте J1939 (PGN и SPN перечислены в документе J1939-71, вы можете проверить этот документ).
Пример:J1939 PGN 61444(EEC1) Предположим, вы записываете сообщение J1939 с идентификатором 0CF00401. Здесь PGN начинается с позиции 9 и имеет длину 18 (индексируется, начиная с индекса 1). from 1)). PGN — это 0F004 или 61444 в десятичной записи. в САЭ Выполните поиск в документе J1939-71 и обнаружите, что это " Электронный контроллер двигателя 1-EEC1 Кроме того, файл содержит подробную информацию о PGN, включая приоритет, скорость передачи и соответствующий SPN. Подробности см. на рисунке выше. В этом PGN имеется семь SPN (например, частота вращения двигателя, об/мин), и подробную информацию о каждом SPN можно запросить в документе J1939-71.
Сплит J1939 PGN Вышеупомянутое является лишь кратким объяснением, поскольку 29-битный идентификатор J1939 можно разбить на более мелкие детали. МОЖЕТ Идентификатор включает приоритет (3 бита), PGN (18 бит) и адрес источника (8 бит). Кроме того, PGN можно разделить на четыре части: зарезервированный бит (1 бит), бит страницы данных (1 бит), поле формата PDU (8 бит) и поле расширения группы (8 бит). Если вы хотите узнать больше, у нас есть очень популярный онлайн-конвертер для конвертации CAN Конвертируйте ID в PGN и просмотрите формулу расчета субкомпонентов PGN. Онлайн-конвертер можно получить в личном сообщении. Если вас интересует J1939 Если вас интересуют файлы DBC, это может облегчить понимание и помочь вам.
SPN в J1939 используется в качестве идентификатора сигнала CAN (параметра), содержащегося в базе данных. SPN группируется в соответствии с PGN. Данные SPN могут быть извлечены в соответствии с начальной позицией бита, длиной бита, точностью (масштабом). смещение и единица измерения (а также информация или количества, необходимые для масштабирования до физических значений) для описания.
Пример: анализ SPN в J1939 190 (обороты двигателя) Предположим, вы записали исходное сообщение J1939 следующим образом:
CAN ID | байты данных |
---|---|
0CF00401 | FF FF FF 68 13 FF FF FF |
Разместив CAN Идентификатор преобразован в PGN J1939. Вы можете знать, что это упомянутый ранее PGN. 61444. Из документа J1939-71 вы можете проверить, что одним из SPN в этом PGN является частота вращения двигателя (SPN 190), детали которого приведены в таблице. Используя эти данные, можно извлечь «Скорость двигателя» данные физического значения, которые можно использовать для рисования изображений и т. д. Поэтому, пожалуйста, обратите внимание на соответствующие данные, расположенные в 4-м и 5-м байтах информации PGN, то есть шестнадцатеричные байты. 68 и 13 в данных. Преобразуйте 1368 из шестнадцатеричного формата (порядок байтов Intel) в десятичное, то есть 4968. Чтобы получить число оборотов в минуту, мы используем компенсировать 0 и 0,125. RPM /биты точности масштабируют это значение. Окончательное физическое значение (т.е. масштабированное инженерное значение) составляет 621. RPM。 Обратите внимание на некоторые из байтов выше. данныхдаFF或да255,То есть он недоступен. Хотя PGN теоретически может поддерживать SPN в этом диапазоне.,Но заполнение FF означает, что данные параметры не поддерживаются данным конкретным приложением.
SPN 190 Скорость двигателя Фактическая скорость двигателя, рассчитывается путем деления минимального угла коленчатого вала 720 градусов на количество цилиндров
PGN | 61444 |
---|---|
SPN | 190 |
начало бита | 24 |
длина бита | 16 |
Точность | 0,125 об/мин/бит |
компенсировать | 0 |
минимальное значение | 0 |
максимальное значение | 8031.875 |
Пример: J1939 DBC-файл Фактически, вам не нужно искать PDF-файл для анализа содержимого данных J1939. Эта информация может храниться в файле базы данных CAN (файл .dbc). J1939 DBC-файл может использоваться для декодирования данных на большинстве тяжелых транспортных средств. Исходные данные J1939 можно записать с помощью устройства записи данных шины CAN и проанализировать с помощью программных инструментов CAN, которые поддерживают преобразование DBC (например, программное обеспечение PCAN-Explorer6). Обычно при этом анализируются данные для 40–60 % автомобилей, представленных на рынке, а остальная часть — это данные, специфичные для OEM-производителей, где требуется обратный инжиниринг.
J1939 запросить сообщение Протокол J1939 поддерживает различные расширенные операции, такие как запросы, многопакетный обмен сообщениями и мультиплексирование: Большинство сообщений J1939 транслируются по CAN-шине, но некоторую информацию необходимо запросить (например, Какой-то Диагностический код неисправности J1939). Это от "запросить сообщение”(PGN 59904) для достижения этой цели требуется всего 3 байта. Сообщение J1939 данных. Он имеет уровень приоритета 6, переменную скорость передачи и может быть отправлен как глобальный запрос или запрос для конкретного адреса. байты данные с 1-го по 3-й бит должны содержать запрошенный PGN (порядок байтов Intel), здесь J1939запросить Диагностическая информация (ДМ) включена в сообщение. Для OBD2 вы можете использовать список передач в нашем CANedge для установки SAE. J1939иззапросить сообщение。
J1939 информация о нескольких упаковках ПГН и Пример СПН основан на 8 байтах. данных J1939, размер которого равен большинству сообщений. Но есть два других типа сообщений: 3 байта. данныхиззапросить сообщениеибайты переменная сообщения данных. байты последнего данных превышает обычный 8-байтовый предел формата CAN-шины. Такие сообщения называются многокадровыми или многопакетными сообщениями J1939. Протокол J1939 определяет процесс дизассемблирования, передачи и повторной сборки пакетов данных. Этот процесс называется транспортным протоколом (см. J1939-21), существует два способа передачи многопакетных сообщений: 1、 Управление соединением (передача «точка-точка»): подходит для конкретных устройств 2、 Широковещательное уведомление (с использованием глобального адреса): применимо ко всей сети.
Проще говоря, широковещательное уведомление основано на отправке ECU исходной группы широковещательных уведомлений для установления работы передачи. Широковещательное уведомление определяет многопакетный идентификатор PGN и передаваемые байты. Количество данных и пакетов данных, максимальное количество пакетов данных — 255. Первые байты в каждом пакете данных данные используются для хранения серийных номеров (от 1 до 255), за которыми следуют 7 байт. данные. Таким образом, максимальная передача байтов количество данных составляет 7 байт x 255 = 1785 байт. Окончательный пакет данных должен содержать хотя бы один байт данных, а любые данные, не используемые позже, будут заполнены FF. В режиме широковещательных уведомлений интервал между сообщениями составляет 50-200 мс. Наконец, программное обеспечение преобразования может объединить данные из нескольких сообщений в строку и проанализировать ее на основе PGN и SPN в многопакетных сообщениях.
Ниже мы расскажем, как выглядят реальные данные J1939. Это «необработанные» данные J1939, записанные с тяжелого грузовика с использованием CANedge2, а «физические значения» — это выходные данные после анализа подключаемым модулем анализа J1939 DBC программного обеспечения PCAN-Explorer6.
Пример: необработанные данные грузовика J1939 (CSV). Данные, записанные с помощью CANedge, сохраняются в виде файла .mdf4 в стандартизированном двоичном формате, который можно преобразовать в любой формат файла (например, в CSV, ASC, TRC и т. д.) с помощью нашего конвертера файлов .mdf4. Ниже представлена CSV-версия исходной платформы J1939. Обратите внимание, что МОЖЕТ ID — байт все данные представлены в шестнадцатеричном формате:
Вы можете скачать полный пример исходного файла J1939 .mdf4 в нашем вводном документе CANedge2. Образец данных также включает образец J1939 DBC, чтобы вы могли попытаться проанализировать сообщения J1939 с помощью программного обеспечения PCAN-Explorer6.
Пример: декодированные данные физических величин грузовика J1939 (CSV). После декодирования и экспорта необработанных данных J1939 результатом будет, например, температура масла, скорость. двигателя,GPS,燃油率и速度之类带有时间戳из参数,Если вы хотите узнать больше о записи данных J1939Пример, вы можете связаться с Хунке для получения подробной информации ~
Регистратор CANedge позволяет легко записывать данные J1939 на SD-карту объемом 8–32 ГБ. Просто подключите его к большему транспортному средству, чтобы начать запись, и данные можно будет декодировать с помощью программного обеспечения PCAN-Explorer6 и нашего J1939 DBC.
Данные J1939 от грузовых автомобилей, автобусов, тракторов и т. д. можно использовать при управлении автопарком для снижения затрат или повышения безопасности.
Передавая декодированные данные J1939 на ПК, технические специалисты могут анализировать и диагностировать автомобиль в режиме реального времени.
Транспортные средства можно контролировать с помощью устройства записи IoT CAN в облаке, а неисправности можно прогнозировать и избегать на основе данных J1939.
Регистраторы CAN можно использовать в качестве «черных ящиков» для большегрузных автомобилей, предоставляя данные для споров, диагностики и т. д.
У вас есть данные J1939, которые вы хотите проанализировать? Пожалуйста, свяжитесь с Хунке, мы сможем вам помочь~
Многие из наших конечных пользователей будут записывать J1939 на месте. Ниже мы поделимся 6 практическими советами по записи:
1. Регистратор J1939 и интерфейс данных J1939.
Автономный регистратор данных J1939 с SD-картой идеально подходит для записи данных автомобиля в течение недель или месяцев. Версия рекордера J1939 с поддержкой Wi-Fi также поддерживает телематические функции. Если используется интерфейс USB-PC J1939, сторона ПК должна передавать данные по шине CAN в режиме реального времени. Версия рекордера J1939 с Wi-Fi особенно удобна для диагностики или анализа данных. CLX000 поддерживает два режима работы, CANedge2 очень подойдет для телематики.
2. Разъёмы и бесконтактное считывание
Если вы хотите подключить CAN-анализатор к машине, которая обменивается данными с J1939 (например, к грузовику), вы обычно можете использовать 9-контактный разъем J1939. Мы можем предоставить вам разъем DB9-J1939, который подходит к 9-контактному немецкому разъему, используемому во многих тяжелых транспортных средствах. В качестве альтернативы вы можете подключить CAN-рекордер к CAN-шине через CANCrocodile. Эти методы позволяют записывать данные, не мешая передаче данных по шине CAN, и не требуют отключения каких-либо линий CAN.
3. Загрузка данных Wi-Fi и сотовой связи (3G/4G).
Для управления автопарком и телематики данные обычно загружаются через Wi-Fi или 3G/4G. С помощью CANedge2 вы можете передавать данные, подключившись к Wi-Fi, который может быть создан маршрутизатором WLAN или точкой доступа 3G/4G. Если вам нужны данные из движущегося грузовика, вы можете установить CANedge2 и использовать его для питания точки доступа USB 3G/4G. Преимущество этого заключается в том, что у вас есть непрерывный доступ к устройству, если устройство не потеряет сигнал. Однако если вам необходимо загружать данные только регулярно, вы можете загружать данные через WLAN, когда автомобиль направляется в определенное место (например, гараж, ремонтную мастерскую и т. д.), тем самым снижая затраты на передачу данных.
4. Выбор программного обеспечения и 1939 год. DBC-файл
При записи или передаче данных J1939 ключевое значение имеет программное обеспечение для постобработки. В частности, программное обеспечение должно поддерживать Анализ DBC, позволяющий легко получить удобочитаемые данные. Наше программное обеспечение PCAN-Explorer6 поддерживает эту функцию и может выполнять анализ DBC в режиме реального времени. Кроме того, в сотрудничестве с SAE мы также можем предоставить J1939. DBC-файлиз下载。
5. Рассмотрите необходимость запроса PGN
Некоторые номера PGN J1939 доступны по запросу, а это означает, что вам необходимо регистрировать эту информацию, постоянно запрашивая шину CAN. CANedge и CLX000 способны отправлять пользовательские сообщения CAN, которые можно использовать для отправки запросов PGN через регулярные промежутки времени. Однако, если вы установите рекордер в «тихий режим», вы не сможете включить эту функцию (т.е. если регистратор подключен через CANCrocodile и т.п., эту функцию включить нельзя).
6. Фильтруйте, сжимайте и шифруйте данные.
Для оптимизации записи данных J1939 может оказаться полезным ряд расширенных настроек. В частности, расширенные параметры фильтра и частоты дискретизации CANedge помогают оптимизировать объем записываемых данных, что является ключом к минимизации использования полосы пропускания сотовой связи. Другие опции включают режим «только прослушивание» и циклическую запись, которая позволяет диктофону всегда отдавать приоритет последним данным (полезно при записи в «черный ящик»).
Поскольку J1939 стандартизирован, крайне важно шифровать данные как «в состоянии покоя» (на SD-карте), так и «в пути» (в процессе загрузки). Это снижает различные риски безопасности, с которыми вы сталкиваетесь при обработке данных, включая штрафы GDPR/CCPA, утечку конфиденциальной информации и нарушение целостности данных. Для получения более подробной информации о защите записей данных J1939 свяжитесь с Hongke.
Издатель: Full stack программист и руководитель стека, укажите источник для перепечатки: https://javaforall.cn/132929.html Исходная ссылка: https://javaforall.cn