OBD2 reader — диагностика автомобиля / Хабр

OBD2 reader — диагностика автомобиля / Хабр ОБД2

Что делает сканер elm327

Функциональность ELM327 довольно обширна. Но во многом зависит от поддержки тех или иных возможностей конкретной версией адаптера, ЭБУ самой машины, а также ПО, которое используется для диагностики.

Помимо чтения, расшифровки и очистки диагностических кодов ошибок, сканер умеет отображать в реальном времени обороты двигателя и скорость авто, температуру всех жидкостей, текущий расход топлива и воздуха, положение дроссельной заслонки, давление в топливной системе и многое другое.

В некоторых авто с помощью адаптера ELM327 можно разблокировать и перенастроить автоматическое запирание замков и складывание зеркал, отзывчивость педали газа, данные приборной панели.

Что такое elm327

Обозначение ELM327 хорошо знакомо многим автовладельцам. Это сканер или адаптер, который подключается к бортовому компьютеру машины через разъём OBD-II. Полезный прибор используется для диагностики неисправностей, считывания показателей работы и обнуления ошибок ЭБУ (электронного блока управления).

Внешний осмотр

Визуально определить качественный адаптер не так уж просто. Непрозрачный или тёмный пластиковый корпус делает невозможным осмотр компонентов. Их миниатюрность и трудночитаемая маркировка ещё больше усложняют дело.

Тип подключения

Существует несколько версий ELM327 с разными интерфейсами подключения. Самыми распространёнными являются адаптеры с Bluetooth, Wi-Fi и USB. Отличаются они не только возможностью соединения, но и совместимостью со смартфонами и компьютерами. В остальном функции идентичны.

  • Bluetooth — самые дешёвые сканеры, которые работают только с Android-смартфонами.
  • Wi-Fi — более дорогие версии, совместимые как со смартфонами на Android и iOS, так и с компьютерами.
  • USB — чуть дешевле сканеров с Wi-Fi. Работают только с компьютерами, зато отличаются надёжностью связи.

Версия прошивки

ПО адаптеров постоянно обновляется. На оригинальных ELM327 актуальная версия уже 2.2. Китайские клоны продаются с прошивками 1.5 и 2.1. Как ни странно, более свежий вариант хуже.

Попавший к китайцам чип был с микропрограммой версии 1.5. Все клоны с такой прошивкой имеют ПО оригинального ELM327. Позже появились копии сканеров версии 2.1. Последняя является лишь изменённой прошивкой 1.5, причём не в лучшую сторону — для удешевления производства китайцы убрали многие протоколы связи. Кроме того, есть обычные адаптеры с версией 1.5, которые продаются под видом 2.1.

По факту сейчас в продаже доступны три варианта клонов ELM327:

  • ELM327 1.5 — старая, но оригинальная прошивка;
  • ELM327 2.1 — урезанная оригинальная прошивка под видом более новой;
  • ELM327 2.1 — оригинальная прошивка под видом новой, но без изменений.

Очевидно, что стоит покупать адаптер именно с оригинальной прошивкой версии 1.5. Например, вот один из проверенных продавцов, у которого можно купить недорогую Bluetooth-версию ELM327.

Тип диагностического разъёма авто

У некоторых машин, особенно до 2000 года и отечественных, диагностический разъём имеет колодки других стандартов. Подключить к ним сканер напрямую не выйдет. Для таких случаев используют специальные переходники: с одной стороны у них совместимый разъём для конкретной модели авто, а с другой — стандартный OBD-II.

Elm327 1.5 vs elm327 2.1

OBD2 reader — диагностика автомобиля / Хабр

Одной из первых проблем, с которыми можно столкнуться стала проблема выбора непосредственно адаптера, в нашем случае Bluetooth. Оказывается если вам необходимо поддерживать все (по крайней мере большинство) автомобилей необходимо выбирать версию v1.5 вместо v2.

1, что на самом то деле необходимо несколько раз уточнить при покупке адаптера, потому как продавцы пытаются выдать версию адаптера не за ту, которая есть на самом деле, т.к. они особо ничем не отличаются. На деле же в версии v2.1 отсутствует поддержка протоколов J1850 PWM и J1850 VPW, что говорит о том, что у вас не получится подключиться к автомобилям, которые используют эти протоколы.

Vw transport protocol 2.0

Volkswagen Transport Protocol 2.0 используется в качестве транспортного уровня, а данные передаются в формате KWP2000. Keyword Protocol 2000 – это протокол для бортовой диагностики автомобиля стандартизированный как ISO 14230. Прикладной уровень описан в стандарте ISO 14230-3. Более подробно в википедии.

Т.к. KWP2000 использует сообщения переменной длины, а CAN шина позволяет передавать сообщения не больше 8 байт, то VW TP 2.0разбивает длинное сообщение KWP2000 на части при отправке по CAN шине и собирает заново при получении.

Диагностические данные от двигателя по протоколу KWP2000 (Skoda Octavia A5)
Диагностические данные от двигателя по протоколу KWP2000 (Skoda Octavia A5)

Блокнот автомеханика. часть 23. автосканер elm 327

И снова здравствуйте! Наконец звезды сошлись для написания нового поста. 

Давайте сразу к делу. Все вы знаете, то неловкое чувство, когда загорается чек (check engine) на приборной панели. 

Причин может быть куча, и для точного считывания ошибки, обычно обращаются к диагносту. Он подключает сканер к диагностическому разъему, находит проблему и по-возможности обнуляет ошибку. Стоит эта процедура везде по-разному. 

Конечно, на некоторых автомобилях сбросить ошибку помогает отсоединение аккумулятора. Но это не наши методы.
Я хочу рассказать про китайский Bluetooth сканер ELM327. Стоит он сейчас примерно 250-300р. И выглядит вот так: 

В оригинале ELM327 это название микроконтроллера компании ELM Electronics. Он поддерживает все протоколы OBD II, имеет оригинальную прошивку и “дружит” практически со всеми автомобилями. Но и стоимость его в разы выше китайского аналога. 

Китайцы, не долго думая, утащили оригинальную прошивку версии 1.5, допилили её напильником и накатали её на свою плату. Получился дешевый, но неплохо работающий адаптер. 

Но решив, что если что-то работает хорошо, нужно это починить, они разрабатывают собственную прошивку для этого сканера (V2.1). Она более глючная и не поддерживает некоторые протоколы, а соответственно и автомобили, использующие эти протоколы. Доподлинно известно, что с автомобилями от 2009 года проблем не возникает, а с остальными как повезет.  
Кроме того и без того глючную версию 2.1 умудряются подделывать, так что при выборе обращайте внимание на отзывы. 
Казалось бы, заказываем версию 1.5 и отмечаем удачное приобретение, но не все так просто. Сканеров с прошивкой v1.5 вы пускают очень мало (или уже не выпускают), поэтому под их видом продают 2.1 Так что, опять же, читайте отзывы. С этим думаю все понятно? 

Ок, едем дальше. Я заказывал на али у двух продавцов: раз и два. Оба сканера версии 2.1, но платы на вид абсолютно разные. Сразу скажу, что первый сканер отказался работать с автомобилями конца 90х и начала 00х. Со вторым проблем не возникло, на его примере и расскажу всю полезность данной приблуды. 

Подключается эта хрень высокотехнологичная вещь по средствам Bluetooth соединения к чему угодно. Программ для неё сейчас великое множество, как для ПК (ProScan, ScanMaster-ELM(есть на русском)), так и для телефонов (для андроида самые популярные: OBD Авто Доктор(на русском) и Torque). Владельцы айфонов, как всегда отличились (да будет срач!), для них программ не встречал. Но не расстраивайтесь, для вас есть специальное предложение! Только сегодня, без регистрации и смс, вы можете заказать Wi-Fi версию этого адаптера:  

Короче, хватит слов, давайте ближе к делу. В данном примере я использовал:
-автомобиль племянника (Хонда Стрим 2001г);
-блютуз адптер ELM 327 v2.1;
-сверхбюджетный 4-х ядерный смартфон VK700x (стоимостью всего 3200р.);
-и программу OBD Авто Доктор.

На автомобиле горит чек: 

1)Подключаем наш адаптер к диагностическому разъему (обычно находится под рулевой колонкой, иногда под капотом) и включаем зажигание (ну или запускаем двигатель). 
2)В настройках телефона, в разделе Bluetooth находим наш адаптер и подключаем его (пароль 1234 или 0000).
3) Запускаем программу, в настойках выбираете Соединение-BT-и ваш адаптер (я пробовал 2 разных, поэтому они оба в списке). 

4) Нажимаем внизу “Подключить” и ждем пока программа подберет протокол и не подключится к вашему ЭБУ. 

Готово, вы восхитительны! 

Ну а теперь можете развлекаться. Если выберите “Динамические параметры”, то можете посмотреть кучу различной информации о своем автомобиле в виде красивых графиков.

Но нас интересует, почему горит чек. Поэтому выбираем “Диагностика” и находим 2 ошибки. 
Расшифровать значения ошибок помогают специальные программы из плей маркета, либо дядюшка google. В данном случае первая ошибка указывает на датчик ELD (при этой ошибке чек не загорается, так что причина чека не в этом), а вторая на датчик EGR (хотя написано почему-то про цепь вентилятора?). Пробуем сбросить ошибки с помощью кнопки “очистить”. 

Все получилось. Чек погас, но датчик EGR все же нужно будет почистить, чтобы ошибка вновь не возникала. 

Таким образом мы сэкономили в районе 1000р. 

LordStudio специально для Pikabu.

Диагностический адаптер elm327

Для меня некоторое время было вопросом, как получить данные из CAN шины и передать на телефон. Можно было бы разработать собственный шлюз с Wi-Fi или Bluetooth, как это делают производители сигнализаций, например Starline. Но изучив документацию на популярный автомобильный сканер ELM327 понял, что его можно настроить с помощью AT команд на доступ к CAN шине.

Копия диагностического сканера ELM327
Копия диагностического сканера ELM327
Не все ELM327 одинаково полезны

Оригинальный ELM327 от компании elmelectronics стоит порядка 50$, в России я таких не встречал в продаже. У нас продаются только китайские копии/подделки, разного качества и цены 10-30$. Бывают полноценные копии, которые поддерживают все протоколы, а бывают и те которые умеют отвечать только на несколько команд, остальные игнорируют, такие адаптеры не имеют доступ к CAN шине. Я например пользуюсь копией Viecar BLE 4.0, который поддерживает 100% всех функций оригинала.

Код ошибки:  Скачать OBD Авто Доктор на русском для Андроид бесплатно

Для работы с протоколом UDS через ELM327 нужно указать адреса назначения, источника и разрешить длинные 8 байтные сообщения, по умолчанию пропускается максимум 7 байт.

Последовательность ELM327 AT команд для работы с UDS по CAN шине:

ATZ // сброс настроек
AT E0 // отключаем эхо
AT L0 // отключаем перенос строки
AT SP 6 // Задаем протокол ISO 15765-4 CAN (11 bit ID, 500 kbaud)
AT ST 10 // Таймаут 10 * 4 мс, иначе EBU шлет повторные ответы каждые 100 мс, а мы не отвечаем, потому что ожидаем конца, а нам нужен только первый ответ
AT CA F0
AT AL // Allow Long (>7 byte) messages
AT SH 7E0 // задаем ID, к кому обращаемся (двигатель)
AT CRA 7E8 // CAN Receive Address. Можно задать несколько 7Xe
AT FC SH 7E0
AT FC SD 30 00 00
AT FC SM 1 // Режим Flow Control 1 должен быть определен после FC SH и FC SD, иначе в ответ придет "?"
03 22 F4 0С 55 55 55 55 // UDS запрос оборотов двигателя

Для работы с протоколом KWP2000 через ELM327 нужно только указать адреса назначения и источника.

Последовательность ELM327 AT команд для работы с VW TP 2.0 по CAN шине:

Как выбрать elm327

Из-за множества клонов разного качества есть риск нарваться на устройство с урезанной функциональностью, которое будет работать неправильно или не запустится вообще. При покупке нужно учитывать три важных момента.

Как добавить строку инициализации в программу диагностики

Итак, давайте разберемся, как заставить адаптер ELM327 работать с нужной нам строкой инициализации.

  1. Сначала нужно найти нужную строку инициализации в представленном ниже списке.
  2. Заходим в программу Torque и создаем новый профиль.
  3. В настройках созданного профиля, в самом низу, пишем нашу строку инициализации, нажимаем кнопку сохранить.

Как подключиться к авто

Точная процедура настройки обычно описана в инструкции.

Как пользоваться сканером elm327

Если всё выполнено правильно, после настройки на экране отобразится информация об авто, а датчики и индикаторы заработают. В зависимости от приложения может понадобиться создать профиль авто. Для этого выберите свою модель из списка и укажите технические характеристики.

Как проверить сканер elm327

После покупки адаптера ELM327 проверьте, что он действительно версии 1.5. При заказе с AliExpress уточните, установлен ли в нём чип PIC18F25K80 и подчеркните, что будете диагностировать сканер специальным ПО и откроете спор в случае проблем.

Какие протоколы поддерживает адаптер elm327

Итак разберем подробней, что за протоколы и как работает адаптер.

Связь с автомобилем через адаптер происходит с помощью специальных AT команд, методы которых прописаны в чипе. Программа посылает адаптеру команду, он считывает ее и реагирует исходя из запроса. Например если мы отправим адаптеру команду SP 00, он переключиться в автоматический режим распознания протоколов. Существует большой перечень AT команд для elm327, найти их можно в мануалах к адаптеру.

Для передачи данных от адаптера к блоку управления по проводам изобрели протоколы. Если говорить простым языком, это правила, по которым сигнал передается от устройства к устройству. В авто индустрии существует целый ряд протоколов, ниже представлен список тех, которые распознаются автосканером elm327 версии 1.5:

Мобильное приложение vag virtual cockpit

Для разработки мобильного приложения подключаемого к автомобилю требовалось:

Мобильное приложение VAG Virtual Cockpit для iOS
Мобильное приложение VAG Virtual Cockpit для iOS

В итоге получилось приложение, которое сочетает в себе функции отображения точных данных панели приборов и диагностика основных параметров двигателя и трансмиссии.

Пару слов про точность данных. Штатная панель приборов не точно показывает скорость – завышает показания на 5-10 км/ч, стрелка охлаждающей жидкости всегда на 90 °C, хотя реальная температура может быть 80 – 110 °C, стрелка уровня топлива до середины идет медленно, хотя топлива уже меньше половины и при нуле на самом деле топливо еще есть в баке. Производитель это делает для удобства и безопасности водителя.

На данный момент приложение показывает следующие параметры:

Я стремлюсь чтобы приложение поддерживало как можно больше моделей автомобилей. Пока что поддерживаются производители: Volkswagen, Skoda, Seat, Audi. На разных комплектациях могут отображаться не все параметры, но это поправимо.

Сейчас я провожу тестирование версии 3.0. Приложение доступно только на iOS, после релиза 3.0 перейду к разработке версии для Android.

Перечень строк инициализации elm327

  • BYD F3
    ATSP5nATSH8111F1nATSW00
  • BYD F3 ABS
    atsp5natsh8128f1natfi
  • BMW 320i E91
    ATPBE101nATCRA618nATSH6F1nATFCSH6F1nATFCSD18300F02nATFCSM1nATCEA18nATCM600nATH1
  • Chery Tiggo Delphi system 2.0L/2.4L (4G63/4G64)
    atalnatsp5natib10natsh8011f1natst10natsw00
  • Dacia Logan 1.4 2007 г.
    ATSP5nATSH817AF1
  • Daihatsu Terios Kid 2002г
    ATIB10nATIIA10nATSH8110F0nATSPA5nATSW00
  • Delphi MR240
    ATSP5nATALnATSH8111F1nATWM8111F13E
  • Honda Хонда Аккорд 2.4 2009
    atsp7natshda1df1
  • Hyundai Elantra, 2003г, 2л, АКПП
    atsp5natsh8111f1
  • Honda Insight 1.3 gybrid 2021 года
    atsp7natshda11f1
  • Fiat Doblo 1.4 8V
    atsp5natsh8110f1
  • Fiat Pre-OBD
    ATSH8110F1
  • GREATWALL Delphi MT20U2_EOBD
    atalnatib10natsp5natsh8111f1natst10natsw00
  • Lexus RX 330
    atsp6natsh7e0
  • Lifan Solano ABS (Mando)
    ATSP5nATSH8028F1nATWM8028F1021081nATFI
  • Lifan Solano ABS (Wanxiang)
    ATSP5nATSH8128F1nATWM8028F1021080nATFI
  • Mitsubishi MUT
    ATSP0nATALnATIB10n
  • MK70 ABS (Geely и др. авто с таким блоком)
    atalnatsp4natiia83natsh8128f1natst10natsw00
  • Nissan для внутреннего рынка Японии
    ATSP5nATALnATIB10nATSH8110FCnATST32nATSW00
  • Nissan liberty 2004 год, двигатель QR20 DE
    ATSP5nATIB10nATSH8110FCnATSW00
  • Opel KWP2000
    ATSP5nATAL
  • OPEL Vectra Simtec 56.5
    ATSP5nATSH8111F1nATSW00
  • Peugeot 308 2021 год
    atsp6natsh6a9natfcsh6a9natfcsd300000natfcsm1natcra689natstc4n81natst64n1003n10c0
  • Peugeot 407, 2.0, AT SR 2008
    atsp6natsh6a8natfcsh6a8natfcsd300000natfcsm1natcra688n81n10c0
  • Renault Scenic RX4 2002 Diesel
    atsp5atalatib10atsh817af1atst32atsw00
  • Renault Kangoo 1.5l DCI Блок управления DCM12
    ATSP5nATSH817AF1nATSW0010C0
  • Sagem2000
    atsp5natsh8110f1natfin3e
  • Siemens ACR167 KWP
    ATSP5nATALnATSH8111F1n81n
  • Sirius D42
    ATSP5nATALnATIB10nATSH8211f1nATST32nATSW00nATFI
  • Skoda Kodiag 4WD Haldex
    atsp6natsh70fnatcra779natfcsh70fnatfcsd300000natfcsm1n1003
  • SSANGYONG KYRON ISO 14230
    ATSP5nATALnATIB10nATSH8110F1nATST32nATSW00
  • SsangYong 2.3 MSE бензин (Kyron,Rexton,Action,Musso,Korando)
    atsp5natib10natsh8101f3natst32natsw00
  • Subaru Forester 2021 ABS
    atsp5natsh8028f1n10
  • Suzuki Swift 2005 1.5л АКПП
    atsp5natsh8111f1
  • Tiggo Delphi MT20U
    ATSP5nATALnATIB10nATSH8111F1nATST32nATSW00
  • Toyota Celica ZZT230
    ATIB 96 n ATIIA 13 n ATSH8113F1 n ATSP A4 n ATSW00
  • Toyota Caldina 1998 г
    ATIB96nATIIA13nATSH8113F1nATSP4nATSW00
  • Toyota Fielder 2005г
    ATIB96nATIIA13nATSH8113F1nATAL
  • Toyota Fielder NZE-141 1NZ-FE 2021г
    atsp6natsh7e0n105f
  • Toyota FunCargo
    ATIB96nATIIA13nATSH8113F1nATSPA4nATSW00
  • Toyota FunCargo 2001г
    atsp4natib96natiia13natsh8113f1
  • Toyota Vitz 01.2002
    ATSH8213F1 n ATIB96 n ATIIA13
  • Toyota VITZ 1KR-FE 2009
    atsp6atsh7e0
  • Toyota Hilux Pick Up 2006 г
    ATIB10nATIIA10nATSH8110F0nATSPA5nATSW00
  • Toyota Mark 2, Toyota Aristo 161
    ATIB96nATIIA13nATSH8113F1nATAL
    ATIB96nATIIA13nATSH8213F1nATE0nATAL
    ATIB96nATIIA13nATSH8113F1nATSP4nATSW00
  • Toyota для внутреннего рынка Японии ISO9141
    ATSP3nATALnATIIA33nATIB10nATSH686AF1nATST32nATSW00
  • Toyota для внутреннего рынка Японии Common
    ATIB96nATIIA13nATSH8113F1nATSPA4nATSW00
  • Toyota для внутреннего рынка Японии 10400baud
    ATIB10nATIIA13nATSH8013F1nATSPA4nATSW00
  • Toyota для внутреннего рынка Японии CAN mode21
    ATSP6nATALnATSH7E0nATCRA7E8nATST32nATSW00
  • Toyota GT86
    ATSP6nATALnATSH7E0
  • Toyota Nadia/Harrier для внутреннего рынка Японии
    ATIB10nATIIA13nATSH8013F1nATSPA4nATSW00
    ATIB96nATIIA13nATSH8213F1nATSPA5nATSW00
  • Toyota PRIUS NHW10
    atsp4natib96natiia13natsh8113f1natsw00
  • Toyota Prius XW20
    atsp6natsh7e3natfcsh7e3natfcsd300000natfcsm1natcra7eb
  • Toyota Sienta 1NZ-FE (CVT)
    atspa4atib96atiia13atsh8113f1atst32atsw00
  • Toyota Allex 2002г 1nz-fe 4WD АКПП
    atspa4natib96natiia13natsh8113f1natst32natsw00
  • Toyota Passo KGC1 (1KR-FE)
    atsp5natsh8110f0natfi
  • Toyota Will VS 2001, АКПП, двигатель 1.8 1ZZFE
    ATIB96nATIIA13nATSH8113F1nATSPA4nATSW00
  • Volkswagen Caddy 1.9I 2006 дизель (KWP2000)
    atsp5natib10natsh8110f1natst10natsw00
  • Volkswagen Caravelle (T5 Transporter) до 2009 2.5 TDI
    atsp5natsh8110f1n1089
  • ЛАДА Ларгус ABS
    ATSP5nATIB10nATSH8101F1nATST32nATSW00
  • ЛАДА Ларгус SRS
    ATSP5nATIB10nATSH812CF1nATST32nATSW00
  • ВАЗ Январь
    ATSP5nATALnATIB10nATSH8110F1nATST32nATSW00
  • ВАЗ Январь 5.1.1
    ATSP5nATIB10nATSH8110F1nATST10nATSW00
  • ВАЗ Январь 7.2 Евро 2
    atalnatsp5natib10natsh8110f1natst32natsw00atfi
  • ВАЗ Bosch MP7
    ATSP5nATALnATIB10nATSH8111F1nATST32nATSW00nATFI
  • ВАЗ Bosch 797
    ATFInATALn
  • Микас 7.6
    ATSP5nATSH8110F1nATSW00nATFI
  • Микас 10.3 ZAZ Sens
    atsp5natsh8110f1natfi
    в настройках профиля поставить «исп. альтернативный ОБД заголовок», предпочтительный протокол ISO 14230 fast
  • УАЗ 1797
    ATSP5nATALnATSH8110F1nATFI
  • УАЗ Патриот Bosch m17.9.7
    ATZnATSP5nATIB10nATSH8110F1nATSW00

Подключение

https://www.youtube.com/watch?v=MwVfsGSOZVs


Подключение к адаптеру происходит в несколько этапов:

Если с организацией подключения все понятно. Принцип работы такой же как и у любого Bluetooth/WIFI чата. То для того чтоб понять как отправлять инициализационную строку, необходимо изучить какие команды существуют, а также какие функции они выполняют.

Подключение январь 5.1

Для подключения к блоку управления ЯНВАРЬ 5.1 необходимо:

  1. Добавить Набор ПИДов для Январь 5.1 или Набор ПИДов для Январь 5.1 R83 в папку «.torque/extendedpids» (папка «.torque» может быть скрыта).
  2. Зайти в «Управление внешними пидами», выбрать «Добавить набор» и выбрать добавленный набор.
  3. Прописать строку инициализации:
    ATZnATSP5nATIB10nATSH8110F1nATSW00n3E01
    или
    ATSP5nATIB10nATSH8110F1nATST10nATSW00
  4. Открыть Приборная панель → долгий тап по экрану → Добавить прибор → выбираем свои датчики

Подключение январь 7.2

Для подключения к блоку управления ЯНВАРЬ 7.2 необходимо:

  1. Добавить Набор ПИДов для Январь 7.2 в папку «.torque/extendedpids» (папка «.torque» может быть скрыта).
  2. Зайти в «Управление внешними пидами», выбрать «Добавить набор» и выбрать добавленный набор.
  3. Прописать строку инициализации atalnatsp5natib10natsh8110f1natst32natsw00atfi

Документацию по командам инициализации можно посмотреть в ELM_Docs.

Программный сниффер vcds

Программный сниффер VCDS: CAN-Sniffer
Программный сниффер VCDS: CAN-Sniffer

Чтобы узнать по какому протоколу общаются электронные блоки я использовал специальную версию VCDS с программным сниффером в комплекте. В этот раз никаких железных снифферов на Arduino или RPi не пришлось изобретать. С помощью CAN-Sniffer можно подсмотреть общение между VCDS и автомобилем, чтобы затем телефон мог прикинуться диагностической утилитой и отправлять те же самые запросы.

Я собрал некоторую статистику по использованию диагностических протоколов на разных моделях автомобилей:

Программы для диагностики и конфигурирования на базе elm327 (часть 2) (с. 1,2) – ford focus 2

0.1.1 – 28.02.2021

– чтение информации по протоколу EOBD

– чтение информации из модулей GEM и HEC

– чтение и запись конфигурации в модулях GEM и HEC

– чтение и запись VIN в модулях GEM и HEC

– чтение и расшифровка DTC по всем модулям

– чтение и изменение пробега (только на увеличение), единиц измерения общего пробега

– перезагрузка всех модулей

0.1.1.5 – 09.03.2021
– расширена база DTC, добавлены ангилийские оригинальные варианты. База теперь хранится в отдельном файле (уж извините, это я сделал для своего удобства – компилирование проекта, в котором загружается массив около 25000 строк, занимает на нетбуке минут 20)
– добавлена работа с блоком BCM – прописывание DDS
– чтобы было “по феншую” OBD2 reader — диагностика автомобиля / Хабр убрана синяя полоса загрузки из середины окна
– исправлен алгоритм работы с многострочными конфигурациями блока GEM (страница 1)
– больше не выводятся многочисленные собщения об ошибках, если нажать кнопку “Прочитать” на вкладке “Информация”, а связи с модулем нет. В соответствующие полях просто пишется “N/A”

Код ошибки:  Автодиагностика сканером CARMANSCAN - ВОПРОСЫ И ОТВЕТЫ

0.1.1.6 – 20.03.2021
– добавлена возможность выбора скорости порта
– добавлена работа с блоком BCM (ABS/ESP)
– добавлена работа с блоком EATC (климат-контроль)
– уточнения в именованиях параметров HEC
– добавлена страница 2 параметров HEC. Старые файлы резервных копий конфигурации HEC не поддерживаются. Для того, чтобы иметь возможность их загрузить, необходимо удалить в файле вторую строку, чтобы осталась всего одна (первая). Полученный файл можно будет загрузить, как конфигурацию HEC, страница 1

0.1.1.7 – 04.05.2021
– добавлены процедуры калибровки датчиков IVD/ESP (модуль BCM)
– добавлена работа с блоком RCM (модуль подушек и ремней)
– добавлена возможность записи VIN в блоки AHCM (ППП) и HCM (управление фарами)
– добавлена работа с блоками DDM и PDM (передние дверные модули)
– добавлена работа с блоком PAM (парковочный модуль)
– исправлена ошибка, возникающая при переключении адаптера с высокой шины на среднюю, когда шина начинала глючить (выключалась магнитола, сбрасывался климат, исчезала температура с приборки и т.п.)
– for our dear english-speaking friends – english interface OBD2 reader — диагностика автомобиля / Хабр

0.1.1.8 – 18.06.2021
– добавлена работа с блоком HCM, в т.ч. процедура калибровки автокорректора
– добавлено отображение напряжения АКБ в цикле EOBD
– исправлена ошибка, возникающая в случае, если в настройках ELM уже выключено эхо
– в конфигурации GEM при установке пераметра “Автоблокирование ЦЗ на скорости” автоматически устанавливается параметр “Возможность включения автоблокирования пользователем”
– добавлена возможность ведения логов шины во время работы
– вместо DllPack теперь используется более “юзер-френдли” RuntimePack

0.1.1.8b – 13.07.2021
– исправлена ошибка с записью конфигурации и перезагрузкой HCM
– исправлен алгоритм считывания парт- и серийных номеров модулей
– добавлена возможность посылать произвольные команды в модули
– добавлено считывание уровня ROM в модуле HEC

0.1.1.8c – 02.09.2021
– исправлена ошибка, в результате которой в диалоге сохранения конфигураций при нажатии кнопки “Отмена” все равно происходило сохранение
– добавлена обработка ситуации, когда калибровка автокорректора завершилась с ошибками
– исправлена ошибка, возникающая при подключении, если в настройках ELM включено добавление в ответе к символу 0x0D символа 0x0A
– лог теперь ведется по-человечески, сверху вниз

0.1.2.1b – 14.09.2021
– вместо команды AT SP используется AT TP, что теоретически должно продлить срок службы EEPROM адаптера
– добавлена возможность изменения скорости ELM327, до максимально возможной 500000 bps, с предварительным тестирование возможной скорости
– добавлена возможность записи лога в файл
– добавлена возможность прошивки рестайлингового модуля HEC на версию ROM 509 (большой и маленький экран)

0.2.2b – 26.11.2021
– добавлена возможность считывания, изменения и сохранения центральной конфигурации платформы CD34x (Ford Mondeo IV/S-Max/Galaxy) (только на русском языке)
– добавлена возможность считывания и расшифровки кодов DTC модулей платформы CD34x
– добавлена возможность считывания информации с модулей платформы CD34x
– добавлена возможность раздельного включения/отключения звуковых сигналов рестайлинговой приборки (в т. ч. “звук снежинки”)
– добавлена возможность мониторинга CAN-шины с записью лога
– на вкладке Информация для модуля HEC, платформа C1 добавлено поле “Количество ключей”
– в прошивке 509 исправлено отображение буквы “ч” в сообщениях RDS (прошивки предоставлены quickie, за что ему огромное спасибо)
– исправлена ошибка, в результате которой при подключении могла возникать ошибка ответа на запрос “AT L0”
– исправлена ошибка, возникающая при работе с модулем BCM на Ford Kuga (спасибо Nikitoz78 за тестирование)
– исправлена работа с модулем HCM (платформа C1)
– кнопка “Настроить ELM327 для работы с MS-CAN” перенесена в начальное окно (рядом с настройками скорости ELM)
– изменилась организация расположения файлов – теперь рядом с ELMConfig.exe расположена папка data, в которой находятся все необходимые для работы программы файлы

0.2.3 – 01.12.2021
– исправлена ошибка, приводящая к невозможности загрузки конфигурации HEC, страница 3 из резервной копии в режиме offline
– добавлена возможность использования адаптеров ELM327, у которых на 7 ножку контроллера приходит высокий сигнал (т.е. по умолчанию в ответе к каждому символу [CR] добавляется [LF])
– исправлена ошибка, возникающая при работе с центральной конфигурацией на платформе CD34x
– добавлна функция сохранения параметров последнего подключения и последнего выбранного языка

0.2.4 – 17.01.2021
– добавлена возможность сброса KAM для PCM 1.4/1.6/1.8/2.0 (платформа C1)
– добавлена возможность считывания информации о модуле топливного отопителя (платформа C1)
– добавлена возможность разблокировки топливного отпителя после удара (DTC C1943) (платформа C1)
– добавлена возможность чтения и записи VIN в модуле ACU (платформа C1)
– страницы модулей PCM и TCM переведены на английский язык
– переделан функционал обработки центральной конфигурации платформы CD34x, в т.ч. исправлена ошибка, в результате которой при записи или сохранении могла исказиться считанная конфигурация
– исправлена ошибка, в результате которой невозможно было выполнить тест скорости порта ELM327
– исправлена ошибка, в результате которой было невозможно выполнить любые операции по настройке порта ELM327, если в списке портов был выбран первый пункт
– исправлена ошибка, в результате которой не разблокировались мышь и клавиатура после операций программирования приборной панели (платформа C1)

0.2.5 – 06.03.2021
– добавлена работа с блоком SRM (платформа С1) – чтение и сброс ошибок, чтение информации, чтение и запись VIN и конфигурации, изменение Bluetooth-имени
– добавлена воможность ручного выбора типа BCM при чтении/записи центральной конфигурации (платформа CD34x)
– при отправке многострочных посылок добавлена повторная отправка блока в случае отсутствие ответа об успешном приеме блока, что должно существенно уменьшить количество сбоев
– работа с центральной конфигурацией вынесена в отдельное окно. Чтение и запись осуществляется из вкладки “процедуры” модуля BCM (платформа CD34x)
– english interface for working with central configuration (CD34x platform)
– исправлена ошибка, в результате которой выдавалось сообщение об ошибке при записи конфигурации RCM (платформа C1)
– исправлена ошибка, в результате которой при работе с 3 страницей конфигурацией HEC в любом случае возникала ошибка EEPROM.

0.2.6 – 24.04.2021
– исправлена ошибка, возникающая при попытке записи лога в файл при установленной английской локали Windows
– в список для выбора вручную типа BCM для работы с центральной конфигурацией платформы CD34x добавлен 7G9T (спасибо nokka за информацию)
– добавлена возможность чтения и записи копии центральной конфигурации в приборном щитке (платформа CD34x)
– добавлена поддержка адаптера ELS27 (команды, автоматическое переключение шин, скорости порта STN1170 1Mbps и 2Mbps)

0.2.7a – 23.05.2021
– добавлена возможность использования драйвера FTDI D2XX (более быстрая работа с адаптерами ELS27 и ELM327 c USB-UART мостом FTDI)
– добавлена возможность просмотра и изменения VID-блока (конфигурации PCM) (платформа С1)
– добавлена возможность перепрограммирования модуля PCM модели Visteon ESU-411/418 (в т.ч. с заменой VID-блока), с использованием как стандартных bin-файлов размером 2Mb, так и файлов IDS (платформа С1)
– исправлена ошибка, возникающая при попытке записи конфигурации/VIN модуля SRM (платформа C1)

0.2.7b – 25.05.2021
– улучшена процедура чтения PCM – при ошибке чтения блока он теперь запрашивается повторно
– исправлена ошибка, когда при смене размера блока для чтения PCM фактически размер не менялся

0.2.8 – 07.06.2021
– добавлена возможность работы с модулями PCM модели Siemens SIM28/29 и Visteon ESU-131 (огромное спасибо maestr086 за участие в тестировании) (платформа С1)
– добавлена возможность автоматического подбора скорости соединения с адаптером при подключении
– в конфигурации PCM (VID блок) добавлен генератор 150А (платформа C1)
– улучшена процедура работы с многострочными посылками – учитывается минимальная задержка между фреймами
– теперь в случае записи лога в файл к строке посылки добавляются временные метки
– исправлена ошибка, когда модуль HEC не реагировал на команду перезагрузки в случае зависания при работе с 3 страницей конфигурации (платформа C1)
– исправлена ошибка расчета передадочного числа главной предачи в блоке VID (платформа C1)
– исправлена ошибка, препятствующая чтению центральной конфигурации из модуля BCM (платформа CD34x)
– исправлена ошибка, когда после настройки адаптера для работы с MS-CAN и попытки открытия порта программа выдавала ошибку и закрывалась

0.2.8b – 08.06.2021
– добавлены размеры блоков 32 и 16 для чтения PCM (платформа C1)
– исправлена ошибка, в результате которой не работало автоопределение скорости подключения при использования драйвера FTDI D2XX

0.2.8c – 08.06.2021
– исправлена ошибка расчета контрольной суммы VID-блока в модулях SIM28/29 (платформа C1)

0.2.9 – 15.07.2021
– добавлена возможность чтения/записи прошивки в модулях PCM Siemens Continental SID202/206 (спасибо oscarboiro за тестирование) (платформа C307)
– добавлена возможность выбора размера блока при записи прошивки в PCM (платформа C307)
– добавлена возможность выбора размера блока при перепрограммировании модуля HEC (платформа C307)
– добавлена возможность выбора размера блока при чтении прошивки из модулей SIM28/29 (платформа C307)
– добавлены параметры модели автомобиля и типа кузова в конфигурации PCM (платформа C307)
– добавлена расшифровка ошибок при работе с модулями
– добавлена защита от неправильной установки скорости адаптера – список доступных скоростей заполняется по результатам теста
– значительно ускорен функционал считывания данных из модулей, в т.ч. чтение прошивки из PCM
– исправлена ошибка, в результате которой невозможно было записать PCM ESU-131, если прошивка уже стерта (платформа C307)
– исправлена ошибка, в результате которой при чтении номера прошивки PCM программа выдавала ошибку и закрывалась (платформа C307)
– исправлена ошибка, в результате которой невозможно было сохранить центральную конфигурацию в файл и записать в модули (платформа CD34x)

0.2.10 – 13.08.2021
– добавлен функционал для работы с модулем KVM (платформа C307)
– добавлен функционал для работы с модулем ACU (платформа C307)
– добавлена возможность получения заводской конфигурации (As-Built) для поддерживаемых модулей (для работы нужен доступ в Интернет)
– добавлена возможность автоматического выбора максимально доступной скорости работы адаптера. После перезагрузки адаптера скорость возвращается к исходному значению, т.е, например, можно в качестве постоянной оставить 38400 для совместимости с другими программами, а на время работы с ELMConfig автоматически будет выбираться 500000 или 2000000
– уточнение параметра модели автомобиля в конфигурации PCM (Kuga 4WD/2WD) (платформа C307)
– исправлена ошибка, в результате которой при изменении 3 страницы конфигурации HEC в сервисном меню приборной панели появлялась надпись FAIL вместо версии EEPROM (ошибка контрольной суммы EEPROM)

Код ошибки:  Разъемы шкода октавия а5 - Skodim

0.2.10b – 09.09.2021
– значительно ускорена процедура подбора скорости адаптера, если выбрана скорость Auto
– в сообщения расшифровки кодов DTC добавлена расшифровка статуса DTC
– добавлена возможность выбора одного из нескольких устройств при использовании драйвера D2XX, а также запоминание последнего выбранного устройства
– новая иконка приложения (спасибо soroton)
– обновлен RuntimePack, версия 13.7.1
– исправлена ошибка, из-за которой было невозможно использовать STN-адпптеры, отличные от STN1170
– исправлена ошибка совместимости с предыдущими версиями (ошибка “‘Text’ property is read-only” при запуске программы)

0.2.10c – 09.09.2021
– исправлена ошибка, связанная с выбором одного из нескольких устройств при использовании драйвера D2XX

0.2.11 – 17.10.2021
– добавлена возможность чтения/записи прошивки в модулях PCM Bosch EDC16C34 (двигатели DV6/T 1.6 TDCi, чтение осуществляется только из области калибровок)
– добавлена возможность чтения/записи VID-блока в модулях PCM Bosch EDC16C34
– добавлена возможность чтения/записи корректировочных коэффициентов топливных форсунок в модулях PCM Bosch EDC16C34
– добавлена возможность чтения/записи прошивки в модулях PCM Bosch ME9.0 (двигатели 2.5T 225 Ford Focus ST, чтение осуществляется только из области калибровок) и записи прошивки в модулях PCM Bosch ME9.0 (двигатели 2.5T 200 Ford Kuga)
– добавлена возможность чтения/записи VID-блока в модулях PCM Bosch ME9.0
– добавлена возможность выполнения сброса данных конфигурации (“инициализация”) модуля BCM (платформа C307)
– добавлена возможность создания BIN-файлов из загруженных файлов прошивок PHF (полученные файлы подходят для работы только с OBD-загрузчиками)
– изменена концепция перепрограммирования блоков PCM – теперь прошивка пишется в любом случае с пустым VID-блоком, который может быть записан впоследствии отдельно
– добавлена процедура сброса ошибок после перепрограммирования и перезагрузки модулей HEC и PCM
– значительно ускорен процесс работы в случае использования адаптеров на чипах STN11xx (чтение прошивки PCM теперь происходит в 3-4 раза быстрее, при выборе размера блока 103). В случае ELM327 все осталось без изменений, это обусловлено ошибкой в микропрограмме самого адаптера
– термин “Star12” заменен на “Quizzer” как более правильный
– добавлена возможность самостоятельно выбирать один из двух возможных типов прошивок Quizzer при перепрограммирвоании блоков ESU-131 (платформа C307)
– добавлены типы автомобилей “Ford Fiesta” и “Ford Fusion” в конфигурации модуля SRM (платформа C307)
– добавлена возможность удаления данных ELMConfig из реестра (кнопка на начальном экране, под дисклеймером), для обеспечения возможности запуска более ранних версий программы
– исправлена ошибка, возникающая при выполнении теста скорости адаптера, если начальная скорость установлена на 9600bps

0.2.11b – 18.10.2021
– добавлена возможность запрашивать данные As-Built для произвольного VIN, в т.ч. в Offline-режиме
– исправлена ошибка, возникающая при загрузке файлов PHF

0.2.11c – 20.10.2021
– исправлена ошибка определения PHF/BIN-файлов ESU-131

0.2.12b
– добавлено предупреждение о переключении шин HS/MS-CAN для адаптера ELM327
– изменена процедура перепрограммирования блоков PCM – теперь VID-блок по желанию вставляется в прошивку перед перепрограммированием
– добавлена возможность сохранения VID-блока в составе BIN-файла прошивки
– добавлена возможность прошивки рестайлингового щитка приборов на уровни ROM 230, 303, 403, 508, 512 (маленький экран) и 233, 303, 403, 508 (большой экран)
– добавлена возможность конфигурации модулей SRM (bluetooth) CS7T-14D212-A* (от FF3 и новых FM4), установленных на FF2
– добавлена возможность загрузки в программу файлов прошивок PCM в формате HEX (распакованный PHF)
– исправлена ошибка, в результате которой не работал Scanner Mode
– исправлена ошибка определения модулей PCM Bosch EDC16C34 ECOII

0.2.13
– добавлена возможность настраивать интервал обновления показаний мгновенного расхода топлива на рестайлинговых щитках приборов – Страница 3 конфигурации HEC. Старые файлы резервной копии этой конфигурации больше не поддерживаются
– добавлена возможность прошивки рестайлингового щитка приборов на уровень ROM 509, 512 (маленький экран) и 509 (большой экран) с использованием прошивок от quickie (o-b-d.ru) c действительно реальным отображением температуры двигателя
– исправлена ошибка, возникающая в режиме сканера при автоматическом выборе скорости, при условии, что в адаптере прописана не максимально возможная скорость (спасибо ittrium)
– исправлена ошибка, приводящая к невозможности загрузки данных из As-Built на некоторых компьютерах
– исправлена ошибка отображения начальной версии ROM щитка приборов
– исправлена ошибка обработки ответа на команду записи VIN в модуль KVM

x

Протокол uds

Unified Diagnostic Services (UDS) – это диагностический протокол, используемый в электронных блоках управления (ЭБУ) автомобильной электроники. Протокол описан в стандарте ISO 14229-1 и является производным от стандарта ISO 14230-3 (KWP2000) и ныне устаревшего стандарта ISO 15765-3 (Diagnostic Communication over Controller Area Network (DoCAN)).Более подробно в википедии.

Диагностические данные от двигателя по протоколу UDS (Skoda Octavia A7)
Диагностические данные от двигателя по протоколу UDS (Skoda Octavia A7)

Прошивки адаптера elm327

Версия 1.5

Полностью повторяет оригинальный адаптер, разница лишь в том, что собирали его наши Китайские друзья. Особое внимание нужно обращать на чип устройства. На рынке существует множество адаптеров версии 1.5, но не все способны стабильно работать. Это происходит из-за того, что Китайские производители пытаясь удешевить себестоимость, устанавливают некачественные чипы.

Покупая elm327, спросите у продавца, какой установлен чип, если символы сходятся с PIC18F25** (следующие цифры не имеют особого значения), смело покупайте этот адаптер. Дело в том, что адаптеры с этим чипом способны работать с максимальным кол-вом протоколов, а значит поддерживают все автомобили со стандартом OBD2.  

Версия 2.1

Новая версия прошивки, в том же Китайском адаптере. В отличии от версии 1.5, эту версию перелопатили Китайские программисты и добавили много разных функций, который они посчитали необходимыми для elm327. Версия 2.1 более избирательна к моделям автомобилей и подойдет далеко не всем, многих он просто не распознает, попросту потому, что версия 2.

Прошивки профессиональных адаптеров ежегодно обновляются, в базу добавляются новые модели, но многие даже современные авто, часто используют старые блоки управления, поэтому китайская версия 1.5 адаптера elm327 будет еще долго актуальной для автолюбителей.

Считывание и расшифровка ошибок автомобиля


Ошибки автомобиля тоже могут быть различными и для них тоже существуют отдельные команды. Например:

Так как и с остальными командами ошибки автомобиля приходят в закодированном виде, соответственно, как и в остальных командах их нужно раскодировать чтоб получить необходимую информацию. Приведу пример работы декодирования ошибки. Код:

private final static char[] dtcLetters = {'P', 'C', 'B', 'U'};
private final static char[] hexArray = "0123456789ABCDEF".toCharArray();
 
private void performCalculations(String fault) {
    final String result = fault;
    String workingData = "";
    int startIndex = 0;
    troubleCodesArray.clear();

    try {
        if (result.contains("43")) {
            workingData = result.replaceAll("^43|[rn]43|[rn]", "");
        } else if (result.contains("47")) {
            workingData = result.replaceAll("^47|[rn]47|[rn]", "");
        }
        for(int begin=startIndex; begin < workingData.length(); begin  = 4) {
            String dtc = "";
            byte b1 = 
		    Utility.hexStringToByteArray(workingData.charAt(begin));
            int ch1 = ((b1 & 0xC0) >> 6);
            int ch2 = ((b1 & 0x30) >> 4);
            dtc  = dtcLetters[ch1];
            dtc  = hexArray[ch2];
            dtc  = workingData.substring(begin   1, begin   4);

            if (dtc.equals("P0000")) {
                continue;
            }
            troubleCodesArray.add(dtc);
        }
    } catch (Exception e) {
        Log.e(TAG, "Error: "   e.getMessage());
    }
}

А теперь пояснение.

Исходя из полученного ответа мы можем получить код ошибки, для этого декодируем полученное сообщение используя следующие таблички.

Первый символ:

Второй символ:

3, 4, 5 символы формируются по этой таблице:

Исходя из этого можем попробовать разобрать следующий ответ 0001000000111110

Код ошибки: P103E

Считывание ошибок адаптером

Как и любой сканер, elm327 оперативно диагностирует и считывает ошибки авто. Если горит индикатор Check на приборной панели, подключаем адаптер к разъему, запускаем программу и считываем ошибку, затем находим описание ошибки в интернете и определяем неисправность без долгих поездок в сервис, так как в сервисе профессионалы приступят к этой же процедуре и предложат диагностировать ваш автомобиль.

Также, с помощью elm327 можно оперативно сбросить любую ошибку на панели, но тут надо быть аккуратнее, так как, если не устранить причину ошибки, то есть, не отремонтировать авто, ошибка появиться снова через определенное время.

Шаг 1. установка приложения для диагностики

Для соединения с ЭБУ машины используются различные программы. Существуют как бесплатные, так и платные версии для Android, iOS и Windows. В комплекте с самим сканером нужное ПО часто уже идёт в комплекте. Установите его или одно из популярных приложений.

OpenDiag (Windows) →

Эпилог

На данном этапе мы разобрались в том, каким образом организовать диалог с адаптером, посылать ему команды, получать и расшифровывать его ответы. Это большая часть работы, если считать то, сколько времени уходит на изучение материала, но в то же время довольно таки интересная.

За пределами этой статьи осталось множество проблем связанных с визуальным интерфейсом, а также множество дополнительных функций, таких как добавление новых пидов из файла, стандартный и расширенный способ подключения к адаптеру и построения графиков.

Матвиенко Александр, Хоссейн Фахр.P.S. Оригинальную английскую версию статьи можно найти здесь

Подведем итоги

  • При выборе адаптера проверяйте не только версию прошивки, но и чип.
  • Перед приобретением elm327 убедитесь в том, что ваш автомобиль поддерживает протокол, с которым работает адаптер.
  • Наличие разъема OBD2 обязательно.

Если у вас праворульный автомобиль, произведенный для рынка Японии, не каждое приложение сможет работать на этих машинах. То же правила действуют для большинства автомобилей российского автопрома. Электронные блоки Январь, Микас, Bosh могут работать по протоколам,с измененными скоростями передачи данных, но и для них существуют программы. Исходя из этого, ELM327 можно смело считать профессиональным мультимарочным адаптером, который способен на многое.

Оцените статью
OBD
Добавить комментарий

Adblock
detector