K-LINE адаптеры и шина
- Илья Васильев
- Статьи
- 3 комментариев
- 18 декабря 2019
Содержание:
Примечание
При правильной сборке, на 14 пине чипа МАХ будет присутствовать низкий сигнал -5В. После проверки устройство можно подключать к ПК, настроить соединение и связать с машиной.
9.Отличия ELM327 от К-Лайн
1ELM 327 относятся к мультипротокольным адаптера и в большей степени подходят для работы с CAN шиной. В отличие от К-Лайн, вычислительные операции производятся внутри логики, до преобразования в команды высшего уровня. Это означает, что данный считыватель не предназначен для глубокого анализа систем машины.2ELM327 в профессиональных кругах называется «градусником». Он позволяет выявить дефект, но не всегда может его устранить. Ввиду слабой вычислительной мощности контроллера, устройство не обеспечивает полноценного обмена пакетами данных. 3В сети можно найти схему переработки стандартного ELM327 в K-Line. Переделка заключается в несложных манипуляциях с электронной схемой, в результате чего получаем контроллер K+CAN.
10.Минусы и плюсы K-Line
Минусы |
Плюсы |
---|---|
Невозможность обеспечить высокую скорость соединения (требует модернизированных прошивок) |
Недорогое решение |
Существуют случаи «зависания» оборудования без очевидных причин |
Для диагностики не нужно специального оборудования |
Наличие китайских некачественных подделок |
Доступность большого количества базовых настроек |
Для глубокого сервиса блоков управления, изменения заводских регулировок, базовый K-Line слабо подходит |
Согласованность с разным ПО |
В дорогих вариантах предусмотрена полная гибкость в настройке ЭБУ |
|
Вариант совместим с автомобилями разных годов |
11.Отзывы и реальные примеры использования
Микросхемы J2534 — это стандарт K-Line. Она стабильна, обеспечивает большую пропускную способность. Это наиболее оптимальный вариант в плане эффективности. Старшие чипы не рекомендую, есть вероятность подвисаний.
Достаточно простой и удобный комплект. K-Line VAG можно легко использовать в дома. Лично применяю на Chevrolet Aveo, нареканий нет.
Использую VAG адаптер лично. Это универсальное устройство пока не имеет аналогов в своем ценовом сегменте. Большое количество поддерживаемых программ. Старые машины трудно поддавались сервису, но VAG упрощает задачу в разы.
Прошивка электронного блока ВАЗ Микас заняла полчаса со всеми манипуляциями. Единственное требование – правильно подключить адаптер, выбрать образ ПО и согласовать порты. В остальном устройство не требует внешнего вмешательства.
Хороший прибор, справляется с многими машинами. VAG KKL позволяет удивительно точно проверить параметры работы ДВС, электронных узлов. Стоимость комплекта не сравняется с дилерским оборудованием, а функций полностью хватает.
12.Полезные видео по применению адаптера
Сравнение адаптеров K-Line:
K-Line адаптер своими руками (K-line USB):
ELM327 и VAG-COM 409 K-line:
Видео курс по диагностике K-line:
Компьютерная диагностика авто (K-линия и CAN шина):
Доработка VAG-COM KKL:
Заключение и выводы
K-Line приборы пользуются популярностью не только в гаражных мастерах, но и в профессиональных ремонтников. Это простой аппарат, имеющий достаточный арсенал функций и не требующий специального оборудования.
АВТОР МАТЕРИАЛА:
Илья ВасильевАвтор сайта / Диагност
Автор всех статей на сайте. 7-ми летний опыт в автодиагностике и ремонте авто любой сложности и любых марок. Увлекаюсь программированием, чип-тюнингом.
Публикую статьи с обзорами диагностического оборудования, делюсь опытом, программами и инструкциями.
Контакты для связи:
Почта: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
Бортожурнал на DRIVE2.RU: Перейти
Канал на Яндекс.Дзен: Перейти
Группа ВКонтакте: Перейти
ПОДДЕРЖИТЕ НАШ САЙТ:Добавить страницу в закладки Другие статьи на эту тему Задать вопрос авторуПОЛЕЗНЫЕ СТАТЬИ И ОБЗОРЫ НА ЭТУ ТЕМУ:Совместимость ELM327 с различными марками авто
62090 4.64 05-05-2018 Илья Васильев 66 комментариев
Лучшие автосканеры для диагностики авто любой марки
19662 4.89 08-07-2019 Илья Васильев 6 комментариев
Обзор OBD2 ELM327 Bluetooth адаптеров для автодиагностики
15824 4.78 08-02-2018 Илья Васильев 6 комментариев
Диагностический сканер Delphi DS150E
10167 4.36 02-01-2019 Илья Васильев 12 комментариев
Автосканер ELM 327 Mini Bluetooth — всё ещё популярен!
9335 5.00 16-07-2018 Илья Васильев 3 комментариев
Какие бывают адаптеры ELM327
8815 4.67 25-01-2019 Илья Васильев 6 комментариев
Виды диагностических сканеров и преимущества мультисканеров
7635 4.72 26-07-2019 Илья Васильев 6 комментариев
ELM327 автосканеры для диагностики авто
7482 4.91 19-05-2018 Илья Васильев 3 комментариев
Адаптеры для автодиагностики — с чем их едят?
7264 5.00 06-10-2018 Илья Васильев 3 комментариев
Launch x431 PRO — автосканер для профессионалов
6251 4.53 08-12-2018 Илья Васильев 11 комментариев
Микроконтроллер PIC18F25K80 для ELM327 адаптеров
6070 4.50 09-01-2019 Илья Васильев 2 комментариев
При создании приложения мы столкнулись с множеством выборов, проблем и так далее, с которыми попробуем ознакомить вас в этой статье. Как оказалось с автомобилем можно вести диалог, причем довольно таки продуктивный. Естественно для того чтобы организовать общение с автомобилем необходимо «установить контакт», «задать правильный вопрос» и правильно понять «ответ», полученный от автомобиля. Соответственно статья и будет нацелена на то, чтобы доступным языком объяснить организацию диалога, а также рассказать вам какие ошибки могут встретиться вам на пути и как с ними бороться.
Выбор подключения
Изначально необходимо пояснить что для подключения к авто будет использоваться 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)
- Отправка инициализационных команд (инициализационной строки)
Если с организацией подключения все понятно. Принцип работы такой же как и у любого Bluetooth/WIFI чата. То для того чтоб понять как отправлять инициализационную строку, необходимо изучить какие команды существуют, а также какие функции они выполняют.AT Z [reset all] Сброс настроек адаптера до заводского состояния.AT L1-0 Включить/Отключить символы перевода строки.AT E1-0 Echo on – offAT H1-0 Headers on – offAT AT0-1-2 Adaptive Timing Off — adaptive Timing Auto1 — adaptive Timing Auto2AT 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 10400AT 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 не удалось, тогда адаптер начинает автоматический подбор протокола. Исходя из описанных выше команд, формируем инициализационную строку.
initializeCommands = Arrays.asList("ATZ", "ATL0", "ATE1", "ATH1", "ATAT1", "ATSTFF", "ATDP", "ATSP0");
Желательно давать возможность пользователю сменять инициализационные команды, потому как для того чтобы подобрать «ключ» к некоторым авто необходимо выбрать более подходящие настройки адаптера. В нашем же случае используются настройки, которые походят для большинства стандартных протоколов. Так же желательно обратить внимание на команду 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(16) > 10111011000111100011001000010001(2)
Используя следующую табличку можем определить какие пиды поддерживаются нашим автомобилем, начиная от 01 до 20: Исходя из получившихся данных можем определить, что наш автомобиль поддерживает следующие пиды:
01, 03, 04, 05, 07, 08, 0C, 0D, 0E, 0F, 13, 14, 17, 1C, 20
Теперь вместо отправки всех 32 команд и ожидания ответа на них, несмотря на то, что некоторые могут отсутствовать, мы будем использовать всего 15 команд. Но и это не предел так называемой оптимизации. Для того чтобы данные обновлялись еще быстрее советую запрашивать только данные о тех датчиках, которые отображаются на экране. Хотя это ограничивает некоторый функционал приложения. Например, запись истории.
Считывание и расшифровка ошибок автомобиля
Ошибки автомобиля тоже могут быть различными и для них тоже существуют отдельные команды. Например:
- 03 – Для отображения сохраненных кодов ошибок
- 0A – Для отображения постоянных кодов ошибок.
Так как и с остальными командами ошибки автомобиля приходят в закодированном виде, соответственно, как и в остальных командах их нужно раскодировать чтоб получить необходимую информацию. Приведу пример работы декодирования ошибки. Код:
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
Эпилог
На данном этапе мы разобрались в том, каким образом организовать диалог с адаптером, посылать ему команды, получать и расшифровывать его ответы. Это большая часть работы, если считать то, сколько времени уходит на изучение материала, но в то же время довольно таки интересная. За пределами этой статьи осталось множество проблем связанных с визуальным интерфейсом, а также множество дополнительных функций, таких как добавление новых пидов из файла, стандартный и расширенный способ подключения к адаптеру и построения графиков. Матвиенко Александр, Хоссейн Фахр.
07:57 Расшифровка кодов ошибок при диагностике по протоколу OBD 2 на русском языке. Распиновки OBD2 и переходников. | ||||||||||||||||
В рамках диагностического стандарта OBDII существует 5 основных протоколов обмена данными между электронным блоком управления (ЭБУ) и диагностическим сканером. Физически подключение автосканера к ЭБУ производится через разъем DLC (Diagnostic Link Connector), который соответствует стандарту SAE J1962 и имеет 16 контактов (2×8). Ниже представлена схема расположения контактов в разъеме DLC (рисунок 1), а также назначение каждого из них. <center>Рисунок 1 – Расположение контактов в разъеме DLC (Diagnostic Link Connector)</center>
Назначение неопределенных контактов выбирается на усмотрение производителя автомобиля. Разъем должен быть расположен не далее, чем в 2 футах (0.61 метра) от рулевого колеса. Иногда разъем OBD-II устанавливается на автомобили, которые в принципе не поддерживают ни один из OBD-II-протоколов. В таких случаях необходимо использовать специальный сканер, рассчитанный на работу с заводскими протоколами конкретной марки автомобиля — например, это касается Opel Vectra и некоторых автомобилей европейского рынка 1996-1997 гг. Также бывают обратные ситуации, когда на автомобиле установлен нестандартный разъем, но при этом автомобиль поддерживает один из диагностических протоколов OBD-II. Далее подробно рассмотрим формат и физический уровень каждого протокола связи в рамках стандарта OBDII. SAE J1850 PWM Существует два типа протокола J1850. PWM является высокоскоростным и обеспечивает передачу информации со скоростью 41,6 Кбайт/с. Он применяется в автомобилях марок Ford, Jaguar и Mazda. В протоколе PWM сигналы передаются по двум проводам, подсоединенным к 2 и 10 контакту диагностического разъема. Формат сигнала протокола J1850 включает: SOF — Start of Frame (начало кадра, высокий импульс на 200uS); Header — заголовок длиной 1 байт; CRC — Cyclic Redundancy Check (циклический избыточный код, 1 байт); EOD — End Of Data (окончание данных, низкий импульс на 200uS).
Если рассматривать формат протокола более подробно по битам, то он примет следующий вид:
Реальный пример сигнала SAE J1850 выгладит следующим образом:
SAE J1850 VPW Протокол VPW осуществляет передачу данных со скоростью 10,4 Кбайт/с, что существенно медленнее, чем у протокола PWM. Формат данного протокола идентичен SAE J1850 PWM . Данный протокол используется на автомобилях General Motors (GM) и Chrysler. VPW предусматривает обмен данными по одному проводу, подсоединенному ко 2 контакту диагностического разъема. Длина шины может достигать 35 метров. ISO 9141-2 Данный протокол разработан компанией ISO. Он не такой сложный, как протоколы J1850 и не требует в использовании специальных коммуникационных микропроцессоров, но, с другой стороны, обеспечивает довольно медленную передачу данных со скоростью 10 Кбайт/c. Протоколы ISO 9141 и ISO 14230 схожи по физической реализации обмена информацией, но различаются ее использованием. Поэтому сканер ISO 9141, обычно может работать и с ISO 14230, но не наоборот. В протоколе ISO 9141-2 сигналы передаются по 7 контакту (К-линия) и опционально по 15 контакту (L-линия). К-линия является двунаправленной (т.е. передает данные в обе стороны), L-линия однонаправленная и используется лишь для соединения ЭБУ и сканера, после чего линия L переходит в состояние логической единицы. Физический уровень передачи информации в протоколах ISO 9141 и ISO 14230 заключается в одновременной передачи ЭБУ специального 8-битного кода по К- и L-линиям со скоростью 5Б/сек. Если код правильный, то ЭБУ посылает сканеру 8-битный код со скоростью последующего соединения. Затем передается еще два кода с информацией о последующем соединении и расположении К- и L-линий. Сканер возвращает отражение этих кодов в ЭБУ. На этом процесс распознавания окончен. В общем виде процесс инициализации сигнала в протоколах ISO 9141 и ISO 14230 выглядит следующим образом:
Передача данных в протоколе осуществляется по следующей схеме:
ISO 14230-4 (др. название Keyword Protocol 2000) На физическом уровне данный протокол идентичен ISO 9141, но является еще более медленным (скорость передачи данных от 1,2 до 10 Кбайт/c в быстрой версии). ISO 15765 CAN CAN-протокол был разработан компанией Bosch для автомобильного и промышленного применения. В рамках стандарта OBD2 протокол использует линии CAN High и CAN Low, т.е. 2 контакта для обмена сигналом: 6 и 14. Является самым скоростным и совершенным. Сейчас данный протокол используется на большинстве современных автомобилях. Стандарт CAN не регламентирует определенной скорости работы для каждой шины в автомобиле. С помощью отдельных и встроенных микроконтроллеров есть возможность менять ее от 20 Кбит/c до 1 Мбит/с. Более подробно CAN рассмотрен в статье CAN-шина и CAN-интерфейс. DDE, DME, MS и другие ccidcodesкоды ошибок Коды ошибок ДВС, Коды ошибок АКПП и ABS SRS EML ZKEКоды Vag по аналогу с Bmw Расшифровка кодов OBD-II Autocom 2015.1 расшифровка кодов ошибок Скачать в формате *.pdf Интерпретация диагностических кодов неисправностей для инструментов Delphi и серии DS Справочная информация по расшифровке кода ошибок Начиная с определенного момента, все производители перешли на общий стандарт диагностического разъема в производстве своих автомобилей, этим стандартом стал OBD 2. Соответственно если автомобили имеют одинаковый диагностический разъем, то и коды ошибок будут одинаковы как для тойоты, так и для опеля, митсубиси и других марок. Для того, чтобы понять, какой элемент автомобиля неисправен, достаточно иметь под рукой расшифровку кодов ошибок OBD 2 на русском языке. Ниже вы найдете расшифровку каждого символа в коде ошибки, а также полную таблицу с расшифровками всех кодов неисправностей. Посимвольная расшифровка кода неисправности OBD 2Первый символ – буква, обозначает блок неисправности:
Второй символ – цифра, тип кода:
Третий символ – цифра, система:
Четвертый и пятый символ – цифры, непосредственно код ошибки. Таблица кодов ошибок по протоколу OBD II на русском языке — документ для скачивания 39 листов, формат *.docx Распиновка разъема OBD 2 и переходников
Источники: embeddedsystem.ru, drive2.ru, и др. |
||||||||||||||||
—>Марка—>:Диагностика и всё по OBD II | —>Просмотров—>:366 | | | |
—>
Используемые источники:
- https://elm327-obd2.ru/avtodiagnostika/k-line.html
- https://habr.com/post/444726/
- http://www.vk-sto.by/blog/rasshifrovka_kodov_oshibok_pri_diagnostike_po_protokolu_obd_2_na_russkom_jazyke_raspinovki_obd2_i_perekhodnikov/2019-12-25-99