Obd2 диагностика своими руками
Выбор подключения
Изначально необходимо пояснить что для подключения к авто будет использоваться 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, что говорит о том, что у вас не получится подключиться к автомобилям, которые используют эти протоколы.
Подключение
Подключение к адаптеру происходит в несколько этапов:
- Подключение к адаптеру (Bluetooth, WIFI)
- Отправка инициализационных команд (инициализационной строки)
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]
Я продемонстрирую как определить какие датчики присутствуют в автомобиле при помощи одного из пидов. Например:
- 0100 \\ запрос
- BB1E3211 \\ ответ от авто
Используя следующую табличку можем определить какие пиды поддерживаются нашим автомобилем, начиная от 01 до 20:
Исходя из получившихся данных можем определить, что наш автомобиль поддерживает следующие пиды:
Теперь вместо отправки всех 32 команд и ожидания ответа на них, несмотря на то, что некоторые могут отсутствовать, мы будем использовать всего 15 команд. Но и это не предел так называемой оптимизации. Для того чтобы данные обновлялись еще быстрее советую запрашивать только данные о тех датчиках, которые отображаются на экране. Хотя это ограничивает некоторый функционал приложения. Например, запись истории.
Считывание и расшифровка ошибок автомобиля
Ошибки автомобиля тоже могут быть различными и для них тоже существуют отдельные команды. Например:
- 03 – Для отображения сохраненных кодов ошибок
- 0A – Для отображения постоянных кодов ошибок.
А теперь пояснение.
3, 4, 5 символы формируются по этой таблице:
Исходя из этого можем попробовать разобрать следующий ответ 0001000000111110
Код ошибки: P103E
Эпилог
На данном этапе мы разобрались в том, каким образом организовать диалог с адаптером, посылать ему команды, получать и расшифровывать его ответы. Это большая часть работы, если считать то, сколько времени уходит на изучение материала, но в то же время довольно таки интересная. За пределами этой статьи осталось множество проблем связанных с визуальным интерфейсом, а также множество дополнительных функций, таких как добавление новых пидов из файла, стандартный и расширенный способ подключения к адаптеру и построения графиков.
Матвиенко Александр, Хоссейн Фахр.
P.S. Оригинальную английскую версию статьи можно найти здесь
Прикупил давненько себе такой девайс под названием ELM 327, версия 1.5 именно на наши авто, стоила она тогда рублей 500 с Алиэкспресс) Для айфонов нужна с wifi )
OBD2 Bluetooth адаптер предназначен для самостоятельной диагностики автомобиля. С помощью него в домашних условиях можно:
-Читать диагностические коды ошибок, как стандартные, так и специальные коды производителя, а также отображать их значение (в базе данных приведены более 3000 кодов различных ошибок)
-Производить очистку ошибок и выключать MIL (надпись "Check Engine" на приборной панели).
-Отображать значения различных датчиков, включая обороты двигателя, состояние топливной системы, опережение зажигания и многое другое…
Для него есть много программ как для андроида так и для компьютера/ноутбука:
Андроид:
VAZ 1.4.apk
OBD Авто Доктор
ScanMaster Lite
OpenDiag
ПО для Windows:
PCMscan 2.4.12 rus
ProScan 5.9 rus
OpenDiag 1.4
Я пользуюсь именно OpenDiag на андроиде, скрины будут ниже)
Расшифровка кодов:
Р0030 Нагреватель датчика кислорода до нейтрализатора, обрыв цепи управления
Р0031 Нагреватель датчика кислорода до нейтрализатора, замыкание цепи управления на массу
Р0032 Нагреватель датчика кислорода до нейтрализатора, замыкание цепи управления на борт. сеть
Р0036 Нагреватель датчика кислорода после нейтрализатора, обрыв цепи управления
Р0037 Нагреватель датчика кислорода после нейтрализатора, замыкание цепи управления на массу
Р0038 Нагреватель датчика кислорода после нейтрализатора, замыкание цепи управления на борт. сеть
Р0102 Цепь датчика массового расхода воздуха, низкий уровень сигнала
Р0103 Цепь датчика массового расхода воздуха, высокий уровень сигнала
Р0112 Цепь датчика температуры воздуха, низкий уровень сигнала
Р0113 Цепь датчика температуры воздуха, высокий уровень сигнала
Р0116 Цепь датчика температуры охлаждающей жидкости, выход сигнала из допустимого диапазона
Р0117 Цепь датчика температуры охлаждающей жидкости, низкий уровень сигнала
Р0118 Цепь датчика температуры охлаждающей жидкости, высокий уровень сигнала
Р0122 Цепь датчика положения дроссельной заслонки, низкий уровень сигнала
Р0123 Цепь датчика положения дроссельной заслонки, высокий уровень сигнала
Р0130 Датчик кислорода до нейтрализатора неисправен
Р0131 Цепь датчика кислорода до нейтрализатора, низкий уровень выходного сигнала
Р0132 Цепь датчика кислорода до нейтрализатора, высокий уровень выходного сигнала
Р0133 Цепь датчика кислорода до нейтрализатора, медленный отклик на изменение состава смеси
Р0134 Цепь датчика кислорода до нейтрализатора неактивна
Р0136 Датчик кислорода после нейтрализатора неисправен
Р0137Цепь датчика кислорода после нейтрализатора, низкий уровень сигнала
Р0138 Цепь датчика кислорода после нейтрализатора, высокий уровень сигнала
Р0140 Цепь датчика кислорода после нейтрализатора неактивна
Р0141 Датчик кислорода после нейтрализатора, нагреватель неисправен
Р0171 Система топливоподачи слишком бедная
Р0172 Система топливоподачи слишком богатая
Р0201 Форсунка цилиндра 1, обрыв цепи управления
Р0202 Форсунка цилиндра 2, обрыв цепи управления
Р0203 Форсунка цилиндра 3, обрыв цепи управления
Р0204 Форсунка цилиндра 4, обрыв цепи управления
Р0217 Температура двигателя выше допустимой
Р0230 Неисправность цепи реле бензонасоса
Р0261 Форсунка цилиндра 1, замыкание цепи управления на массу
Р0263 Неисправность драйвера форсунки 1
Р0264 Форсунка цилиндра 2, замыкание цепи управления на массу
Р0266 Неисправность драйвера форсунки 2
Р0267 Форсунка цилиндра 3, замыкание цепи управления на массу
Р0269 Неисправность драйвера форсунки 3
Р0270 Форсунка цилиндра 4, замыкание цепи управления на массу
Р0262 Форсунка цилиндра 1, замыкание цепи управления на бортовую сеть
Р0265 Форсунка цилиндра 2, замыкание цепи управления на бортовую сеть
Р0268 Форсунка цилиндра 3, замыкание цепи управления на бортовую сеть
Р0271 Форсунка цилиндра 4, замыкание цепи управления на бортовую сеть
Р0272 Неисправность драйвера форсунки 4
Р0300 Обнаружены случайные/множественные пропуски воспламенения
Р0301 Цилиндр 1, обнаружены пропуски воспламенения
Р0302 Цилиндр 2, обнаружены пропуски воспламенения
Р0303 Цилиндр 3, обнаружены пропуски воспламенения
Р0304 Цилиндр 4, обнаружены пропуски воспламенения
Р0326 Цепь датчика детонации, выход сигнала из допутимого диапазона
Р0327 Цепь датчика детонации, низкий уровень сигнала
Р0328 Цепь датчика детонации, высокий уровень сигнала
Р0335 Цепь датчика положения коленчатого вала неисправна
Р0336 Цепь датчика положения коленчатого вала, выход сигнала из допустимого диапазона
P0337 Датчик положения коленвала, замыкание на массу
P0338 Датчик положения коленвала, обрыв цепи
P0340 Неисправность датчика положения распределительного вала
Р0342 Цепь датчика фаз, низкий уровень сигнала
Р0343 Цепь датчика фаз, высокий уровень сигнала
Р0346 Цепь датчика фаз, выход сигнала из допустимого диапазона
Р0351 Катушка зажигания цилиндра 1 (1-4), обрыв цепи управления
Р0352 Катушка зажигания цилиндра 2 (2-3), обрыв цепи управления
Р0353 Катушка зажигания цилиндра 3, обрыв цепи управления
Р0354 Катушка зажигания цилиндра 4, обрыв цепи управления
Р0363 Обнаружены пропуски воспламен., отключена топливоподача в неработающих цилиндрах
Р0422 Эффективность нейтрализатора ниже порога
Р0441 Система улавливания паров бензина, неверный расход воздуха через клапан продувки адсорбера
Р0444 Клапан продувки адсорбера, обрыв цепи управления
Р0445 клапан продувки адсорбера, замыкание цепи управления на массу или бортовую сеть
Р0480 Реле вентилятора, обрыв цепи управления
Р0481 Неисправность цепи вентилятора охлаждения 2
Р0500 Датчик скорости автомобиля неисправен
Р0506 Система холостого хода, низкие обороты двигателя
Р0507 Система холостого хода, высокие обороты двигателя
Р0511 Регулятор холостого хода, цепь управления неисправна
Р0560 Напряжение бортовой сети ниже порога работоспособности системы
Р0562 Напряжение бортовой сети, низкий уровень
Р0563 Напряжение бортовой сети, высокий уровень
Р0601 Контроллер системы управления двигателем, ошибка контрольной суммы ПЗУ
Р0615 Дополнительное реле стартера, обрыв цепи управления
Р0616 Дополнительное реле стартера, замыкание цепи управления на массу
Р0617 Дополнительное реле стартера, замыкание цепи управления на бортовую сеть
Р0627 Реле бензонасоса, обрыв цепи управления
Р0628 Реле бензонасоса, замыкание цепи управления на массу
Р0629 Реле бензонасоса, замыкание цепи управления на бортовую сеть
Р0645 Реле муфты компрессора кондиционера, обрыв цепи управления
Р0646 Реле муфты компрессора кондиционера, замыкание цепи управления на массу
Р0647 Реле муфты компрессора кондиционера, замыкание цепи управления на борт. сеть
Р0650 Лампа индикации неисправности, цепь управления неисправна
Р0654 Тахометр комбинации приборов, цепь управления неиспрана
Р0685 Главное реле, обрыв цепи управления
Р0686 Главное реле, замыкание цепи управления на массу
Р0687 Главное реле, замыкание цепи управления на бортовую сеть
Р0691 Реле вентилятора, замыкание цепи управления на массу
Р0692 Реле вентилятора, замыкание цепи управления на бортовую сеть
P1102 Низкое сопротивление нагревателя датчика кислорода
P1115 Неисправная цепь нагрева датчика кислорода
P1123 Богатая смесь в режиме холостого хода
P1124 Бедная смесь в режиме холостого хода
P1127 Богатая смесь в режиме Частичная Нагрузка
P1128 Бедная смесь в режиме Частичная Нагрузка
P1135 Цепь нагревателя датчика кислорода 1 обрыв, короткое замыкание
P1136 Богатая смесь в режиме Малая Нагрузка
P1137 Бедная смесь в режиме Малая Нагрузка
P1140 Измеренная нагрузка отличается от расчета
P1141 Неисправность нагревателя датчика кислорода 1 после нейтрализатора
P1171 Низкий уровень СО потенциометра
P1172 Высокий уровень СО потенциометра
Р1301 Цилиндр 1, обнаружены пропуски воспламенения, критичные для нейтрализатора
Р1302 Цилиндр 2, обнаружены пропуски воспламенения, критичные для нейтрализатора
Р1303 Цилиндр 3, обнаружены пропуски воспламенения, критичные для нейтрализатора
Р1304 Цилиндр 4, обнаружены пропуски воспламенения, критичные для нейтрализатора
P1386 Ошибка теста канала детонации
P1410 Цепь управления клапана продувки адсорбера короткое замыкание на +12В
P1425 Цепь управления клапана продувки адсорбера короткое замыкание на землю
P1426 Цепь управления клапана продувки адсорбера обрыв
P1500 Обрыв цепи управления реле бензонасоса
P1501 КЗ на массу цепи управления реле бензонасоса
P1502 Короткое замыкание на +12В цепи управления реле бензонасоса
P1509 Перегрузка цепи управления регулятора холостого хода
P1513 Цепь регулятора холостого хода короткое замыкание на массу
P1514 Цепь регулятора холостого хода короткое замыкание на +12В, обрыв
P1541 Цепь управления реле бензонасоса обрыв
Р1570 Иммобилизатор, цепь неисправна
Р1602 Контроллер системы управления двигателем, пропадание напряжения питания
Р1606 Цепь датчика неровной дороги, выход сигнала из допустимого диапазона
Р1616 Цепь датчика неровной дороги, низкий уровень сигнала
Р1617 Цепь датчика неровной дороги, высокий уровень сигнала
Р2301 Катушка зажигания цилиндра 1 (1-4), замыкание цепи управления на борт. сеть
Р2303 Катушка зажигания цилиндра 2 (2-3), замыкание цепи управления на борт. сеть
Р2305 Катушка зажигания цилиндра 3, замыкание цепи управления на борт. сеть
Р2307 Катушка зажигания цилиндра 4, замыкание цепи управления на борт. сеть
Существует множество приспособлений, облегчающих использование машины. Например, сканер ELM327. Как он работает, какие программы требуются для его использования?
Для чего нужно?
С его помощью ELM327 упрощается диагностика машин. Для использования сканера необходимо иметь смартфон, iPhone или ноутбук. Кстати, читайте как использовать сканер и ноутбук для диагностики авто.
Само устройство является очень компактным (размером – 5х3 см., а мини версия почти в 2 раза меньше), простым в использовании и гарантировано дает верный результат. Для распознания ошибок автомобиля оно считывает данные из электронного блока управления машины.
Подключение
Сканер ELM327 подходит для машин из США, выпускаемых с 1996 года, из Европы — с 2001 года, дизельные – с 2004 года. Но некоторые автомобили, произведенные в 2003 году, не поддерживают работу с данным девайсом.
Работа ELM327 производится со считывающим устройством. На него необходимо установить диагностическое ПО. Для этого подойдет гаджет на андроиде, компьютер или ноутбук. Устройство подсоединяется по Bluetooth, Wi-Fi или USB.
Хотелось бы подробнее остановиться на первых двух подключениях. Некоторые модели авто не поддерживают работу ELM327 через Bluetooth, Wi-Fi. Т.е. передача данных на смартфон или ноутбук по данным протоколам осуществляется не будет.
И дело не в установленной программе, а в блоке управления, который установлен в машине. К примеру, ЭБУ Микас 10.3 (М103), который устанавливается на Ланосе 1.4i, Славуте 1.2i/1.3i и может (быть установлен в других авто) работает только через протокол USB. Этот момент важно учитывать при выборе устройства.
Программное обеспечение
ПО дается в комплекте со сканером. Если его нет, вы сможете легко скачать нужную программу в интернете или в Google Play.
Программа Torque
Имеются платная и бесплатная версии данной программы. В бесплатной версии можно проверить исправность работы сканера, его совместимость с авто, узнать многие функции обнуления ошибок.
- Расшифровка ошибок Check-Engine.
- Выведение параметров на приборную панель.
- Оповещение о критичных показателях.
- Учет расхода бензина и стоимости поездок.
- Возможность видеорегистрации (необходим плагин TrackRecorder).
Главный минус — не полная поддержка русского языка. Но программа все равно пользуется большой популярностью.
OBD Авто Доктор
Приложение считывает числовые показатели из узла двигателя, диагностирует и русские, и зарубежные автомобили.
Функции OBD Авто Доктор:
- Сканирование ошибок, расшифровка, а также их сброс.
- Чтение параметров online.
- Определение VIN-номера кузова.
OpenDiag Mobile
Приложение определяет детали инжекторных русских авто с помощью сканера ELM327. Данная версия полностью бесплатна.
Главное преимущество OpenDiag Mobile – поддержка USB протокола. В наше время софт с такими возможностями не сильно распространен.
Но, чтобы ELM327 через USB подключить к смартфону или iPhone нужно иметь USB to MicroUSB Adapter.
Ошибка p0420/p0430, причины способы устранения на Форд Фокус, Ниссан, Тойота, Солярис, Киа, Шкода и других автомобилей
Второстепенные задачи ELM 327:
- Вывод информации, расшифровка значений датчиков.
- При необходимости возможность устранения ошибок.
- Точное установление скорости авто.
- Определение температуры двигателя.
Обратите внимание, вначале нужно завести машину, и уже затем подключать ELM 327. В противном случае вам высветится ошибка.
Автосканер ELM 327 – незаменимое устройство для автовладельца. Особенно он нужен тем, кому частенько приходится исправлять ошибки двигателя. Это дешевле, чем в автосервисе.
Своими руками
Это, вероятно, случалось с каждым из нас: вы едете в своем автомобиле и вдруг желтая лампочка «Check Engine” загорается на приборной панели как тревожное предупреждение о том, что возникли какие-то проблемы с двигателем. К сожалению, это оно само по себе не дает каких-либо намеков на то, что именно является причиной неполадки и может означать все что угодно, начиная от неплотно закрытой крышки топливного бака до проблем с каталитическим конвертером. Я помню, как Honda Integra 94-го года имела ЭБУ под креслом водителя и красный светодиод начинал мигать, если возникали какие-то проблемы с двигателем.
• ISO 9141-2
• ISO 14230-4 (KWP2000)
• SAE PWM J1850 (Pulse Width Modulation)
• SAE VPW J1850 (Variable Pulse Width)
• ISO 15765-4 Controlled Area Network (CAN)
VPW, PWM и CAN
Первых два протокола ISO описаны в указанной выше предыдущей публикации. Детальное описание OBD протоколов выходит за рамки данной статьи, я лишь их кратко перечислю.J1850 VPW (Variable Pulse Width) – протокол автомобилей General Motors и некоторых моделей Chrysler со скоростью передачи 10.4 кбит/с по одному проводу.
Напряжение на шине VPW изменяется от 0 до 8 В, данные по шине передаются чередованием коротких (64 мкс) и длинных (128 мкс) импульсов. Реальная же скорость передачи данных по шине изменяется в зависимости от битовой маски данных и находится в пределах от 976 до 1953 байт/с. Это самый медленный из OBD протоколов.
CAN (Controlled Area Network) протокол разработан Robert Bosch в 1983 году и окончательно стандартизирован в ISO 11898. Использование CAN шины данных в автомобиле позволяет различным устройствам общаться друг с другом, минуя центральный процессор, так называемый multi-master режим.
Плюсами является также повышенная скорость передачи, до 1 Мбит/с и лучшая помехоустойчивость. Изначально протокол предназначался для использования в автомобилях, но теперь применяется и в других областях. Чтобы повысить надежность передачи данных, в шинах CAN применяется способ дифференциальной передачи сигналов по двум проводам. Образующие эту пару провода называются CAN_High и CAN_Low.
В исходном состоянии шины на обоих проводах поддерживается постоянное напряжение на определенном базовом уровне, приблизительно 2.5 В, называемым рецессивным состоянием. При переходе в активное (доминантное) состояние напряжение на проводе CAN_High повышается, а на проводе CAN_Low снижается, рис.1.
Поддерживает ли ваш автомобиль OBD-II?
OBD является обязательным только в Северной Америке и Европе. Если в Америке это правило действует с 1996 года, то Евросоюз принял EOBD вариант автодиагностики, основанный на OBD-II, сравнительно недавно. В Европе OBD стал обязательным, начиная с 2001 года, а для дизельных двигателей даже с 2004. Если ваш автомобиль выпущен до 2001 года, то он может вообще не поддерживать OBD даже при наличии соответствующего разъема.
Например, Renault Kangoo 99 года не поддерживает EOBD (хотя редакционная Kangoo dcI60 2004 года с CAN протоколом прошла успешную стыковку с описанным адаптером, а Renault Twingo поддерживает! Те же самые автомобили, сделанные для других рынков, например Турции, могут тоже не быть совместимыми с OBD протоколом. Как определить, какой протокол поддерживается электронным блоком управления автомобиля?
Первое – можно поискать информацию в интернете, хотя там много неточной и непроверенной информации. К тому же, многие автомобили выпускаются для разных рынков с различными протоколами диагностики. Второй более надежный способ – найти разъем и посмотреть, какие контакты в нем присутствуют. Разъем обычно находится под приборной панелью со стороны водителя. Протокол ISO 914-2 или ISO 14230-4 определяется наличием контакта 7, как показано в таблице 1.
В качестве примера необходимости L-линии он приводит Renault Twingo 1.2л 2005 года выпуска. Использование здесь при иницилиазации только K-линии приводит к неверному адресу двигателя в ответах ЭБУ. Если же инициализация производится по K и L одновременно, то тогда все работает правильно.
AllPro адаптер на PIC18F2455
Схема моего всепротокольного OBD-II адаптера показана на рис.2 . Основой является микроконтроллер Microchip PIC18F2455, имеющий модуль USB интерфейса. Устройство использует напряжение питания 5 В от шины USB. Конденсатор C6 служит фильтром внутреннего стабилизатора 3.3 В для обеспечения работы USB шины. Светодиоды D2 и D3 являются индикаторами приема/передачи, а светодиод D1 использован для контроля статуса USB шины.
Выход ISO 9141/14230 интерфейса управляется половинкой драйвера IC2-2, а входной сигнал подается через делитель R12/R13 на вход RX (вывод 18), который является триггером Шмидта, как и большинство входов PIC18F2455, что обеспечивает достаточно надежное срабатывание. Для контроля L-линии используется IC3-1 и R10.
Шина J1850 VPW требует напряжения питания 8 В, получаемого от стабилизатора L78L08 IC4. Сигнал на выход VPW подается через инвертор IC3-2 и буферный полевой транзистор Q1. Делитель R7/R8 и внутренний триггер Шмидта на входе RA1 составляют входной интерфейс J1850 PWM протокола. Внутренний компаратор (входы RA0 и RA3) PIC18F2455 вместе с резисторами R4, R5 выделяет дифференциальный сигнал PWM. Для контроля выхода PWM шины используются IC2-1 и полевой транзистор Q2.
Отдельно хочется сказать по поводу поддержки CAN. Microchip не выпускает контроллеры, содержащие и CAN, и USB. Можно использовать контроллер с CAN модулем и внешний USB чип типа FT232R. Или наоборот, подключить внешний CAN контроллер, как сделано в этом адаптере. CAN интерфейс здесь образуют контроллер MCP2515 (IC5) и трансивер MPC2551 (IC6). MCP2515 подключен через SPI шину к PIC18F2455 и программируется каждый раз при подаче питания адаптера.
Согласующие (bus termination) RC цепочки R14/ C10 и R15/C11 предназначены для уменьшения отражений на CAN шине согласно стандарту ISO 15765-4. Использование их не обязательно, при относительно коротком кабеле отражениями можно пренебречь. Вместо PIC18F2455 можно использовать PIC18F2550 с той же самой прошивкой, см. варианты замены в таблице 2.
Внешний вид устройства показан на рис.3 и обложке, а печатная плата на рис.4.
Программирование PIC18F2455
Для программирования PIC18 можно использовать несложный JDM программатор [3], схема показана на рис.5.
Он очень прост и может бы собран за час на макетной плате. Недостатком является то, что программатор требует наличия последовательного (Com) интерфейса в компьютере и не работает с виртуальными USB/Com адаптерами. Использование ноутбуков также не рекомендуется, так как они не обеспечивают необходимого напряжения на выходе Com порта.
Другой программой, работающей с JDM программатором, является PICPgm [6], никаких дополнительных файлов здесь не требуется, хотя автору следует поработать над английской грамматикой, рис.7 . Прошивка адаптера доступна .
Подключение и тестирование устройства. Правильно собранный адаптер в налаживании не нуждается и распознается Windows как USB устройство. Микропроцессор PIC18F2455 не имеет собственного драйвера и использует Windows 2000/XP/Vista CDC (Communication Device Class ) драйвер usbser.sys виртуального Com порта.
Для этого требуется подключить источник стабилизованного напряжения 12 вольт на выводы 1 и 9 разъема J2 и подключить адаптер к персональному компьютеру через USB кабель. Проверяется наличие напряжения 8 В на выходе стабилизатора IC4. Следующим шагом является запуск Windows приложения HyperTerm и подсоединения к Com порту адаптера.
Прохождение проверяется по следующим цепям:
• IC2-1, R4 для отрицательной шины PWM
• Q2, D6, R5 для положительной шины PWM
• IC3-2, IC4, R11, Q1, D5, R7, R8 для VPW
• IC2-2, R9, R12, R13 для ISO 9141/14230
• Ответ контроллера MCP2515 по шине SPI
Например, отсутствие IC2 приведет сразу к двум ошибкам, рис.9 .
Процедура самодиагностики не включает проверку CAN трансивера MCP2551, здесь можно просто замерить напряжение на выводах 6 и 7. Оно должно быть в пределах 2.5 В.
рис 10
Время прочтения
Сложность материала:
Для профи - 4 из 5
K-Line — одноканальная, но двунаправленная шина, которая применяется в оборудовании для автодиагностики, для связи с электронными блоками управления (ЭБУ). Используется в системах с инжекторным впрыском топлива двигателей внутреннего сгорания (ДВС). Работа K-Line обеспечена протоколами ISO 9141-2 и ISO 14230, которые входят в известный стандарт OBD II. До появления шины CAN, как раз K-линия соединяла электронные узлы автомобиля в единую цепь.
Стандарты ISO 9141 и ISO 14230 схожи по аппаратной реализации линий передачи данных (14230 является развитием 9141). Различаются они требованиями к электрическим параметрам линии, а также протоколами верхних уровней.
Скорость обмена данными небольшая – до 10 КБ за секунду. В протоколе ISO 9141-2 пакеты передаются по 7 пину (K-линия) сервисной колодки. L-Line используется только для соединения ЭБУ со сканером.
Используя простой K-Line адаптер, можно настроить множество узлов в автомобилях группы VAG. Для этого необходимо знать основные каналы адаптации.
В этом материале максимально подробно рассказано о шине K-Line, а так же об адаптерах для соединения с ЭБУ автомобиля по этой линии.
1. Виды K-LINE адаптеров и их применение
В настоящее время K-Line адаптеры в основном распространяются с USB разъемом, а не COM. Это связано с тем, что диагностику обычно проводят ноутбуком, а в которых нет COM-портов . Однако суть работы адаптера не меняется. Внутри адаптера устанавливают микросхему-преобразователь из интерфейса USB в интерфейс COM или в Bluetooth. Под каждый тип таких микросхем необходим драйвер, чтобы в системе появился так называемый виртуальный COM-порт, через который адаптер будет сопрягаться с диагностическим ПО на компьютере.
USB K-Line – это простой блок, коммутирующийся через обычный ноутбук. При помощи сервисного ПО владельцу доступны базовые настройки, включая чтение кодов ошибок.
Читайте также: