Диагностика vag через смартфон
Привет всем!
Данная тема открыта в помощь автовладельцам для экспресс получения данных от электронных блоков управления различных систем автомобиля.
К вашему вниманию предлагается программный продукт под названием "VAGCAN Mobile" предыдущее название VW Tiguan TP2.0" для ANDROID от многоуважаемого и известного энтузиаста Cintakc. Один из не многих экспертов в данной области,который готов прийти на помощь автомобилистам. Что и случилось на радость нам. Пока другие и не думают реализовывать т.к. есть уже продукты на рынке, такие как Carista, OBD eleven и многие другие, но все они функциональны и сложны в использование. И не каждому понятны. Cintakc создает уникально простую в использовании программу. Но выбор остается за каждым.
На данный момент программа умеет работать с "правильными" BlueTooth ELM327 адаптерами, которые на своем "борту" содержат контроллер PIC 18F25K80 , что в свою очередь позволяет реализовать капризный протокол обмена VW TP 2.0 , а также проводной USB ELM327 и K-CAN v1.4
Т.е. программа будет работать только по протоколу VW TP2.0
Пока что функционал программы не широк,но в тоже время позволяет прочесть из памяти ЭБУ ошибки и удалить их. Поддерживаются нижеследующие блоки: двигателя, АКПП, тормозной системы, подушек безопасности и стояночного тормоза и др. . Сейчас реализовывается возможность обмена данными в реальном времени для блока двигателя. Уже на данном этапе можно прочесть ряд групп такие как 093 и 111. Позже автор обещает расширить количество групп, все зависит от наличия времени и поступления необходимой информации для реализации.
В настройках можете изменить скорость обмена , в случае не корректной работы программы
И конечно же программа не может быть без записи журнала, поэтому Сергей, ака Cintakc, реализовал в своем продукте эту возможность. Логи будут храниться в одноименной папке в корневом каталоге, обратите внимания что предварительно нужно "разрешить программе использовать накопитель".
VAGCAN Mobile
Версия: 1.7 demo
Последнее обновление программы в шапке: 21.09.2021
Краткое описание:
Диагностика автомобилей группы VAG по протоколам TP2.0 / UDS
Описание:
VAG CAN Mobile предназначено для диагностики автомобилей группы VAG с протоколом диагностики TP2.0, а также по протоколу UDS блоков TPMS, муфты полного привода и ряда двигателей.
протестировано на Tiguan(NF) 5N1,5N2 (2006-2017) с двигателями 1.8/2.0 TSI/TFSI серии EA888.
Должно работать также с VW EOS, Passat 2006, Passat B6 2.0 TDI, Passat CC, Golf 2004, 2006 двигатель CCZA, CCZB, CAWB,
Ауди А3 2004, Skoda Yeti 1.8 2012, а также с другими моделями группы VAG, поддерживающими данный протокол.
В приложении доступно: - чтение и удаления ошибок по нескольким блокам авто - диагностика основных групп параметров для блоков: двигателя, акпп и АБС, стояночного тормоза, полного привода.
001, 003, 009, 014, 015, 016, 020, 031, 032, 053, 055, 060, 068, 070, 085, 093, 101, 106, 107, 111, 113, 115, 118, 119, 120, 122, 131, 134, 135, 142, 159, 212, 220, 250
ECU 01 (ECM diesel)
003, 004, 007, 100, 101, 105, 106, 108
ECU 02 (AT)
001, 002, 003, 004, 006, 010, 012, 028, 109, 128, 138
ECU 03 (ABS)
001, 003, 004, 005, 062
ECU 22 (Полный привод)
001, 002, 003, 004, 005, 006, 010, 011, 012
ECU 53 (Стояночный тормоз)
002, 003, 004, 005, 006, 007, 008
В приложении предусмотрена возможность записи общего лога и лога в формате .csv
для просмотра параметров с помощью программ просмотра логов или в виде графиков.
Приложение работает с адаптерами: ELM327 Bluetooth, USB, WiFi.
Приложение ориентировано на работу с оригинальными адаптерами ELM327.
(работоспособность с Китайскими адаптерами не гарантирована)
Рекомендуемый адаптер на микросхеме: PIC18F25K80
Требуется Android: 4.1 и выше
Русский интерфейс: Да
В теме присутствуют разработчики
Я продолжаю изучать CAN шину авто. В предыдущих статьях я голосом открывал окна в машине и собирал виртуальную панель приборов на RPi. Теперь я разрабатываю мобильное приложение VAG Virtual Cockpit, которое должно полностью заменить приборную панель любой модели VW/Audi/Skoda/Seat. Работает оно так: телефон подключается к ELM327 адаптеру по Wi-Fi или Bluetooth и отправляет диагностические запросы в CAN шину, в ответ получает информацию о датчиках.
По ходу разработки мобильного приложения пришлось узнать, что разные электронные блоки управления (двигателя, трансмиссии, приборной панели и др.) подключенные к CAN шине могут использовать разные протоколы для диагностики, а именно UDS и KWP2000 в обертке из VW Transport Protocol 2.0.
Программный сниффер VCDS
Чтобы узнать по какому протоколу общаются электронные блоки я использовал специальную версию VCDS с программным сниффером в комплекте. В этот раз никаких железных снифферов на Arduino или RPi не пришлось изобретать. С помощью CAN-Sniffer можно подсмотреть общение между VCDS и автомобилем, чтобы затем телефон мог прикинуться диагностической утилитой и отправлять те же самые запросы.
Я собрал некоторую статистику по использованию диагностических протоколов на разных моделях автомобилей:
VW/Skoda/Seat (2006-2012) - приборная панель UDS. Двигатель и трансмиссия VW TP 2.0
Audi (2006-2012) - приборная панель VW TP 2.0. Двигатель UDS. Трансмиссия VW TP 2.0
VW/Skoda/Seat/Audi (2012-2021) - везде UDS
Протокол 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 пакета в формате Single Frame
Пример запроса и ответа температуры моторного масла:
Запрос температуры моторного масла:
7E0 - Адрес назначения (ЭБУ двигателя)
Байт 0 (0x03) - Размер данных (3 байта)
Байт 1 (0x22) - SID идентификатор сервиса (запрос текущих параметров)
Байт 2, 3 (0x11 0xBD) - PID идентификатор параметра (температура моторного масла)
Байт 4, 5, 6, 7 (0x55) - Заполнитель до 8 байт
Ответ температуры моторного масла:
7E8 - Адрес источника (Диагностический прибор)
Байт 0 (0x05) - Размер данных (5 байт)
Байт 1 (0x62) - Положительный ответ, такой SID существует. 0x22 + 0x40 = 0x62. (0x7F) - отрицательный ответ
Байт 2, 3 (0x11 0xBD) - PID идентификатор параметра (температура моторного масла)
Байт 4, 5 (0x0B 0x74) - значение температуры моторного масла (20.1 °C формулу пока что не смог подобрать)
Байт 6, 7 (0x55) - Заполнитель до 8 байт
Первая версия мобильного приложения VAG Virtual Cockpit умела подключаться только к приборной панели по UDS.
VAG Virtual Cockpit - экран с данными от приборной панели по протоколу UDS
VW Transport Protocol 2.0
Volkswagen Transport Protocol 2.0 используется в качестве транспортного уровня, а данные передаются в формате KWP2000. Keyword Protocol 2000 - это протокол для бортовой диагностики автомобиля стандартизированный как ISO 14230. Прикладной уровень описан в стандарте ISO 14230-3. Более подробно в википедии.
Диагностические данные от двигателя по протоколу KWP2000 (Skoda Octavia A5)
Разбор протокола VW TP 2.0 на примере подключения к первой группе двигателя:
200 01 C0 00 10 00 03 01
Настраиваем канал с двигателем. Байт 0: 0x01 - двигатель, 0x02 - трансмиссия. Байт 5,4: 0x300 - адрес источника
201 00 D0 00 03 40 07 01
Получили положительный ответ. Байт 5,4: 0x740 - к двигателю обращаемся по этому адресу
740 A0 0F 8A FF 32 FF
Настраиваем ЭБУ на отправку сразу 16 пакетов и выставляем временные параметры
300 A1 0F 8A FF 4A FF
Получили положительный ответ
740 10 00 02 10 89
Отправляем команду KWP2000 startDiagnosticSession. Байт 0: 0x10 = 0b0001 - последняя строка данных + 0x0 счетчик отправляемых пакетов 0 (0x0 - 0xF)
Получили первый ACK
300 10 00 02 50 89
Получили положительный ответ. Байт 0: 0x10 - cчетчик принимаемых пакетов 0
Мы отправили первый ACK, что получили ответ
740 11 00 02 21 01
Делаем запрос. Байт 0: 0x11 - счетчик отправляемых пакетов 1. Байт 3: 0x21 - запрос параметров. Байт 4: 0x01 - из группы 1
Получили второй ACK
300 22 00 1A 61 01 01 C8 13
Байт 0: 0x22 - 0b0010 (не последняя строка данных) + 0x02 (cчетчик принимаемых пакетов 2). Байт 1,2: 0x00 0x1A длина 26 байт. Байт 3,4: 0x61 0x01 - положительный ответ на команду запроса параметров 0x21+0x40=0x61 из 0x1 группы. Байт 5: 0х01 - Запрос RPM (соответсвует протоколу KW1281). Байт 6,7: (0xC8 * 0x13)/5 = 760 RPM (формула соответствует протоколу KW1281)
300 23 05 0A 99 14 32 86 10
Байт 1: 0x05 - запрос ОЖ. Байт 2,3: (0x0A * 0x99)/26 = 57.0 C. Байт 4: 0x14 = запрос лямбда контроль %. Байт 5,6: 0x32*0x86; Байт 7: 0х10 - двоичная настройка
300 24 FF BE 25 00 00 25 00
0x25 0x00 x00 - Заполнитель, до 8 параметров
300 15 00 25 00 00 25 00 00
Байт 0: 0x15 - 0b0001 (последняя строка данных) + 0x5 (счетчик принимаемых пакетов 5)
Отправляем ACK. Прибывляем к нашему предыдущему ACK количество полученных пакетов 0xB1 + 0x4 = 0xB5
Запрос KeepAlive, что мы еще на связи
740 A1 0F 8A FF 4A FF
Мы разрываем связь
ЭБУ в ответ тоже разрывает связь
Во второй версии мобильного приложения VAG Virtual Cockpit появилась возможность диагностировать двигатель и трансмиссию по протоколу VW TP 2.0.
VAG Virtual Cockpit - экран с данными от двигателя по протоколу VW TP 2.0
Диагностический адаптер ELM327
Для меня некоторое время было вопросом, как получить данные из CAN шины и передать на телефон. Можно было бы разработать собственный шлюз с Wi-Fi или Bluetooth, как это делают производители сигнализаций, например Starline. Но изучив документацию на популярный автомобильный сканер ELM327 понял, что его можно настроить с помощью AT команд на доступ к CAN шине.
Копия диагностического сканера ELM327 Не все ELM327 одинаково полезны
Оригинальный ELM327 от компании elmelectronics стоит порядка 50$, в России я таких не встречал в продаже. У нас продаются только китайские копии/подделки, разного качества и цены 10-30$. Бывают полноценные копии, которые поддерживают все протоколы, а бывают и те которые умеют отвечать только на несколько команд, остальные игнорируют, такие адаптеры не имеют доступ к CAN шине. Я например пользуюсь копией Viecar BLE 4.0, который поддерживает 100% всех функций оригинала.
Последовательность ELM327 AT команд для работы с UDS по CAN шине:
Для работы с протоколом KWP2000 через ELM327 нужно только указать адреса назначения и источника.
Последовательность ELM327 AT команд для работы с VW TP 2.0 по CAN шине:
Мобильное приложение VAG Virtual Cockpit
Для разработки мобильного приложения подключаемого к автомобилю требовалось:
Сниффером собрать трафик от диагностической утилиты VCDS
Изучить работу протоколов UDS, VW TP 2.0, KWP2000
Настроить диагностический сканер ELM327 на работу с UDS и VW TP 2.0
Изучить новый для меня язык программирования Swift
В итоге получилось приложение, которое сочетает в себе функции отображения точных данных панели приборов и диагностика основных параметров двигателя и трансмиссии.
Пару слов про точность данных. Штатная панель приборов не точно показывает скорость - завышает показания на 5-10 км/ч, стрелка охлаждающей жидкости всегда на 90 °C, хотя реальная температура может быть 80 - 110 °C, стрелка уровня топлива до середины идет медленно, хотя топлива уже меньше половины и при нуле на самом деле топливо еще есть в баке. Производитель это делает для удобства и безопасности водителя.
На данный момент приложение показывает следующие параметры:
Приборная панель
Двигатель
Трансмиссия (температура)
1) Какая дверь открыта
2) Скорость
3) Обороты
4) Температура масла
5) Температура ОЖ
6) Топливо в баке в л.
7) Запас хода в км.
8) Средний расход
9) Время в машине
10) Пробег
11) Температура за бортом
1) Обороты
2) Массовый расход воздуха
3) Температура забора воздуха
4) Температура выхлопа (рассчитанная)
5) Критический уровень масла
6) Уровень масла
7) Наддув турбины (реальный)
8) Наддув турбины (ожидаемый)
9) Пропуски зажигания в цилиндрах
10) Углы откатов зажигания в цилиндрах
1) ATF AISIN (G93)
2) DSG6 (G93)
3) Блок управления DSG6 (G510)
4) Масло диска сцепления DSG6 (G509)
5) Мехатроник DSG7 (G510)
6) Процессор DSG7
7) Диск сцепления DSG7
Я стремлюсь чтобы приложение поддерживало как можно больше моделей автомобилей. Пока что поддерживаются производители: Volkswagen, Skoda, Seat, Audi. На разных комплектациях могут отображаться не все параметры, но это поправимо.
Сейчас я провожу тестирование версии 3.0. Приложение доступно только на iOS, после релиза 3.0 перейду к разработке версии для Android.
Подключение адаптера OBDII
В Европе этот разъем появился только в начале двухтысячных годов. Сегодня вы уже не встретите автомобиля без «On-board Diagnostic 2»-системы, разве только на японских автомобилях 90-х годов выпуска. Для СНГ-автосегмента этот разъем стал обязательным в 2008 году.
Как подключить (схема):
Шаг 2. Далее находим в автомобиле разъем OBD2. Если вам не удается его найти, то откройте техническую инструкцию по эксплуатации автомобиля или просто «загуглите» местонахождение разъема в вашей модели автомобиля.
Установка Bluetooth-соединения мультимедийного устройства и адаптера.
Шаг 4. Откройте настройки телефона и найдите раздел Bluetooth. В некоторых моделях мультимедийных устройств поиск новых подключений начнется автоматически, а где-то необходимо будет начать его вручную, нажав на «Поиск» или «Поиск новых устройств».
Шаг 5. В списке, который будет показан вам по результатам поиска, найдите Ваш адаптер OBD2. Название может быть моделью адаптера, а может носить «имя» фирмы-производителя. В любом случае, не спутаете. Главное не перепутать его с мультимедийной системой автомобиля и не выбрать MY CAR или название модели авто.
Шаг 6. Нажмите на адаптер. Если потребуется, то отыщите его в документации к адаптеру. Обычно это 4 повторяющиеся цифры: «0000» или «1111».
Синхронизация OBD2 с телефоном.
Шаг 1. Подключаться к адаптеру необходимо будет через приложение. В каждом приложении для Android-устройств это делается по-разному. Но обычно окно с выбором варианта подключения заметно сразу. Статус подключения вы сможете увидеть, оценив наличие показателей и сведений об автомобиле в самом приложении.
Шаг 2. Синхронизация будет завершена только в том случае, когда приложение даст соответствующий сигнал об этом: он может быть показан пользователю в виде внутреннего уведомления или выплывающей строки. Вы должны увидеть появление данных об автомобиле, а также о его технических системах.
Лучшие приложения OBD2
1. Carista OBD2
Одно из самых популярных приложений, предназначенных для проведения самостоятельной диагностики.
- Сразу же после подключения Carista автоматически запускает поиск ошибок.
- После непродолжительного поиска приложение предложит провести тесты в указанных роботом областях, удалить ошибки или предложить варианты их исправления.
Интерфейс в программе на любителя. Пригодится знание английского и определенные знания в области внутреннего устройства автомобиля. Разработчик продает собственные OBD2 адаптеры по 25.99 долларов за штуку, однако в России и странах СНГ их найти тяжеловато.
Преимуществом приложения можно назвать высокую точность показателей, а также возможность убирать загоревшийся «Check».
К тому же, на некоторых моделях автомобилей Carista предоставляет пользователю функционал в области настройки функций авто (фары, блокировка дверей и прочее). Список моделей есть на официальном сайте.
2. InCarDoc
Приложение, в котором чувствуется оригинальный подход разработчиков.
Помимо интерфейса в зеленых тонах, наше внимание привлекают сразу виртуальная приборная панель с датчиками и графиками. Все они работают в режиме реального времени, показывая:
- скорость
- температуру
- давление
- -угол поворота колес автомобиля.
Также InCarDoc позволяет сохранить все данные об ошибках, их коды и сопутствующие показатели датчиков. Это может пригодиться в том случае, если для исправления последних вы решили поехать в сервис.
Важно! Пользователи в отзывах выделяют временные проблемы при подключении к дешевым адаптерам OBD2.
3. Toad PRO
Измеряет:
- ошибки двигателя;
- ошибки электроники;
- ошибки прочих систем автомобиля.
4. Torque Pro
Самое распространенное приложение для самостоятельного анализа работы двигателя. Да, Torque Pro специализируется на диагностике только двигателя автомобиля. Однако это совсем не значит, что у вас его не должно быть на телефоне!
Удобный красочный интерфейс, понятные обозначения делают использование очень удобным.
Torque Pro умеет:
- Определять и отслеживать расход топлива;
- Предоставлять информацию о нагрузках;
- Выводить данные по количеству оборотов;
- Локально диагностировать топливную систему;
- Определять и анализировать расход.
У приложения еще очень много функций, и оно способно стать отличным дополнением к основному диагностическому софту для Android.
5. ScanTool AutoEnginuite
Составляет:
- графики с ошибками двигателя;
- графики с ошибками электросистемы;
- графики с ошибками прочих систем.
- удобные таблицы для обработки.
6. OBD II Auto Doctor
Определяет:
- скорость;
- температуру двигателя;
- давление в двигателе.
7. Movi/Movi Pro
Определяет уровни:
- разгона;
- разогрева;
- подъема температуры.
15 лет я ремонтирую разного рода автомобилей, включая такие марки как Ваз, Уаз, Chevrolet, Mazda, Kia и многие другие. Все что связано с коробкой, двигателем или ходовой. Вы можете написать мне свой вопрос ниже в комментариях и я постараюсь развернуто на него ответить.
Читайте также: