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

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

Существует несколько вариаций адаптера ELM327, которые классифицируются по способу передачи данных – Bluetooth, WIFI, USB. Исходя из того что целью разработки является мобильное устройство под операционной системой Android можно подобрать две наиболее подходящие версии ELM327, такие как Bluetooth и WIFI. Так как способ получения и обработки данных один, а отличаются они всего лишь вариантами подключения к адаптеру, то можно выбрать всего один, организовать при помощи него диалог, а после добавить остальные варианты подключения.

ELM327 1.5 vs ELM327 2.1

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

Подключение

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

AT Z [reset all]
Сброс настроек адаптера до заводского состояния.
AT L1-0
Включить/Отключить символы перевода строки.
AT E1-0
Echo on – off
AT H1-0
Headers on – off
AT AT0-1-2
Adaptive Timing Off — adaptive Timing Auto1 — adaptive Timing Auto2
AT ST FF
Установить таймаут на максимум.
AT D [set all to Default]
Сброс настроек в исходное, настроенное пользователем состояние.
AT DP [Describe the current Protocol]
Сканер способен самостоятельно определять протокол автомобиля, к которому он подключен.
AT IB10 [set the ISO Baud rate to 10400]
Команда устанавливает скорость обмена данных для ISO 9141-2 и
ISO 14230-4 10400
AT IB96 [ set the ISO Baud rate to 9600]
Команда устанавливает скорость обмена данных для ISO 9141-2 и
ISO 14230-4 9600 для протоколов 3,4,5.
AT SP h [ Set Protocol h]
Команда выбора протокола h, где h:

0 – Automatic;
1 — SAE J1850 PWM (41.6 Kbaud);
2 — SAE J1850 VPW (10.4 Kbaud);
3 — ISO 9141-2 (5 baud init, 10.4 Kbaud);
4 — ISO 14230-4 KWP (5 baud init, 10.4 Kbaud);
5 — ISO 14230-4 KWP (fast init, 10.4 Kbaud);
6 — ISO 15765-4 CAN (11 bit ID, 500 Kbaud);
7 — ISO 15765-4 CAN (29 bit ID, 500 Kbaud);
8 — ISO 15765-4 CAN (11 bit ID, 250 Kbaud);
9 — ISO 15765-4 CAN (29 bit ID, 250 Kbaud);
AT SP Ah [Set Protocol h with Auto]

Команда устанавливает по умолчанию протокол h, если подключение по протоколу h не удалось, тогда адаптер начинает автоматический подбор протокола.

Исходя из описанных выше команд, формируем инициализационную строку.

Желательно давать возможность пользователю сменять инициализационные команды, потому как для того чтобы подобрать «ключ» к некоторым авто необходимо выбрать более подходящие настройки адаптера. В нашем же случае используются настройки, которые походят для большинства стандартных протоколов.

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

Соответственно если пользователь знает какой у его авто протокол, то используя возможность смены протокола подключения он может поменять 0 на номер его протокола.

Считывание диагностических данных

Для считывания диагностических данных используются специальные команды PID’s.
PID (Parameter id’s — Бортовые диагностические идентификаторы параметров) – коды, которые используются для запроса показателей определенных датчиков автомобиля.

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

Также есть возможность получать текущие данные от автомобиля при этом команда получения данных от авто будет иметь вначале 01, указывая на то что мы хотим получить real data. Если же мы хотим получить сохраненные данные автомобиля, то вначале команды необходимо указать 02. Например, команда для получения текущей скорости автомобиля – 010D, а для получения сохраненной скорости – 020D.

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

0100 – PIDs supported [01 — 20]
0120 – PIDs supported [21 — 40]
0140 – PIDs supported [41 — 60]
0160 – PIDs supported [61 — 80]
0180 – PIDs supported [81 – A0]
01A0 – PIDs supported [A1 — C0]

Я продемонстрирую как определить какие датчики присутствуют в автомобиле при помощи одного из пидов. Например:

Используя следующую табличку можем определить какие пиды поддерживаются нашим автомобилем, начиная от 01 до 20:

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

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

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

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

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

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

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

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

Эпилог

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

Программы для elm327 адаптеров

Список программ для ELM327 адаптеров. На этой странице представлены бесплатные программы для диагностики автомобиля с помощью elm327 адаптера. Все elm327 программы распределены по группам в зависимости от того, на каком устройстве Вы будете проводить диагностику. Есть программы для компьютера или ноутбука (Windows), elm 327 программы для android устройств (смартфона или планшета), для iOS (iPhone, iPad), а так же для смартфонов на базе Windows Phone. Таким образом в этом разделе есть программы для любого устройства и для любого типа ELM327 адаптера, будь то USB, Wi Fi или bluetooth адаптер.

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

ELM327 программы для компьютера или ноутбука (Windows)

ScanMaster ELM 2.1

ScanMaster ELM 2.1

Самая универсальная и функциональная elm327 программа. Отлично работает как с иномарками, так и с автомобилями Российского производства. Рекомендуем начинать диагностику именно с этой программы.

Работает с адаптерами: USB, Bluetooth, Wi-Fi

OpenDiag

OpenDiag

Программа для диагностики всех моделей русского автопрома (ВАЗ, ГАЗ, УАЗ и др.). Поддерживает несколько видов адаптеров, в том числе и elm327. Это самая удобная программа для диагностики русских авто. Если у Вас русский автомобиль, то рекомендуем использовать именно эту программу.

Работает с адаптерами: USB, Bluetooth

FORScan

FORScan

Эта elm 327 программа создана специально для автомобилей марок: FORD, Mazda, Lincoln и Mercury. Она имеет огромные возможности, сканирует все блоки авто, включая подушки безопасности, ABS и прочее. Есть возможность конфигурации и программирования параметров.

Работает с адаптерами: USB, Bluetooth, Wi-Fi

ELMConfig

ELMConfig

Эта программа так же для автомобилей FORD. Умеет работать со всеми модулями авто, а так же, помимо диагностики, даёт возможность калибровки и конфигурирования.

Работает с адаптерами: USB

ScanXL

ScanXL

Программа отлично работает со множеством марок автомобилей и имеет отличный набор функций.

Работает с адаптерами: USB

PROScan

PROScan

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

Работает с адаптерами: USB

TiggoDiag

TiggoDiag 1.2.0.3

Программа для диагностики автомобилей Cherry Tiggo, GreatWall и некоторых моделей Mitsubishi с помощью адаптера ELM327.

Работает с адаптерами: USB

ELM327 программы для Android устройств (смартфон или планшет)

С помощью этих программ Вы сможете провести полноценную диагностику Вашего автомобиля используя elm327 адаптер и Ваш смартфон или планшет на базе android. Эти elm327 программы для android поддерживают как bluetooth, так и wi-fi адаптеры. Вместе с описанием программы есть ссылка на скачивание программы с официального сайта Google Play, поэтому Вы можете быть уверены в безопасности Вашего устройства. Так же Вы можете установить её просто набрав название программы в поиске Google Play Вашего устройства.

Torque

Torque

Самая популярная elm327 программа для android. Универсальная и очень функциональная, отлично работает со всеми марками автомобилей. Есть бесплатная и платная версия программы, отличающиеся по функционалу.

Работает с адаптерами: Bluetooth, Wi-Fi

OpenDiag Mobile

OpenDiag Mobile

Работает с адаптерами: Bluetooth, Wi-Fi, USB

ScanMaster Lite

ScanMaster Lite

Работает с адаптерами: Bluetooth, Wi-Fi

DashCommand

DashCommand

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

Работает с адаптерами: Bluetooth, Wi-Fi

OBD Car Doctor

OBD Авто Доктор

Универсальная elm327 программа с русским интерфейсом и неплохим набором для проведения диагностики. Есть две версии: бесплатная и платная, как обычно, в бесплатной слегка урезан функционал.

Работает с адаптерами: Bluetooth, Wi-Fi

ELMScan Toyota

ELMScan Toyota

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

Работает с адаптерами: Bluetooth, Wi-Fi

EconTool for Nissan ELM327

EconTool for Nissan ELM327

Предназначена для автомобилей Nissan подключающихся по старому протоколу Nissan Consult, это примерно до 2008 года выпуска. Она представлена тут потому, что с этими автомобилями более популярные elm программы могут не работать.

Работает с адаптерами: Bluetooth, Wi-Fi

ELM327 программы для iPhone и iPad (iOS)

Ниже представлены elm327 программы для использования на iPhone и iPad, т. е. на смартфонах и планшетах с операционной системой iOS. Программ для этих устройств достаточно немного и, как правило, все они на английском языке. Но мы всё таки постарались подобрать для Вас хорошие программы с лёгким освоением и широким набором функций. Обратите внимание, что устройства от Apple поддерживают только Wi-Fi адаптеры, потому программы, соответственно тоже.

DashCommand для iOS

DashCommand

Достаточно хорошая, со всеми необходимыми возможностями, elm327 программа для iPhone и iPad. Она универсальна и подходит для диагностики огромного количества авто. Проста в освоении и интуитивно понятна несмотря на отсутствие русского языка.

Работает с адаптерами: Wi-Fi

OBD Car Doctor

OBD Car Doctor

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

Работает с адаптерами: Wi-Fi

Engine Link

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

Работает с адаптерами: Wi-Fi

ELM327 программы для Windows Phone

Ниже представлены elm327 программы для смартфонов на базе Windows Phone.

Car Scanner

Car Scanner

Работает с адаптерами: Bluetooth, Wi-Fi

Если вам сложно определиться с выбором, напишите нам на электронную почту

Если вы не нашли то, что искали, воспользуйтесь поиском по магазину

Не знаете что выбрать? Посмотрите какие адаптеры подойдут для Вашего авто.

Источники:

https://m. habr. com/ru/post/444726/

https://yadiagnost. ru/elm327-programmy

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: