Диагностика автомобиля своими руками: OBD порт в помощь.
Почти никто из посетителей этого сайта не является профессиональным инженером по ремонту… да чего-либо. Профессии разные, по дому можем сделать привычные вещи: заменить лампу, забить гвоздь… выложить плитку, установить окна… Однако у многих есть один предмет, который является одновременно и предметом обожания, и отдельным элементом семейного бюджета. Его мы используем для передвижения наших организмов из пункта А в пункты Б, В и далее по алфавиту.
Неприятно, когда наступает момент, когда наше средство передвижения, превращаясь в «роскошь», это делать отказывается. Ну, колесо пробито, антифриз на дороге — здесь всё ясно. А если не заводится или работает как ему вздумается? Посвящаем раздел машинкам.
А разобраться со многими проблемами своего автомобиля по силам самостоятельно. Сейчас, впрочем, немало автостанций, которые читают ошибки с бортового компьютера. Причём бесплатно. Но на рынке уже есть предложения, с помощью которых провести компьютерную диагностику авто можно самому.
Для начала стоит обнаружить сам OBD2 порт. Ниже рулевой колонки, рядом с блоком предохранителей или посередине приборной панели — и всегда закрыто крышкой от случайного взгляда. На корточки придётся присесть, но увидев его, ни с чем не спутаете:
СПРАВКА
Отечественные автомобили стали с диагностическим разъёмом OBD2 с 1 января 2012.
Кстати, узнать о его существовании и точно местонахождении можно (теоретически) прямо сейчас. Отправляемся на сайт CarMD, вводим модель, марку и год авто (доступны не все, русских нет, да и иномарки представлены не всеми моделями — я выбрал подходящую):
и через мгновение вам покажут, где искать:
Помнится, было даже иллюстрированное приложение для Андроид OBD Port Lookup, однако Google Store на данный момент выдаёт по этому названию ошибку . Но поиск разъёма — не самая трудная часть.
Ошибки OBD2: научитесь читать и понимать
Обнаружили его? Присмотритесь к нему. Я знаю два вида OBD2 разъёмов: тип А и тип Б. Они легко различимы:
Как определить версию протокола? Посмотрите на контакты разъёма:
задействованы контакты (слева-направо, сверху-вниз) 2 6 7 10 14 15
А вот таблица, которая поможет понять версию протокола:
к 2 | к 6 | к 7 | к10 | к 14 | к 15 | Стандарт |
есть | есть | J1850 PWM | ||||
есть | J1850 VPW | |||||
есть | есть* | ISO9141/14230 | ||||
есть | есть | ISO15765 (CAN) |
* 15 контакт называется ещё L-линия. Его существование опционально в новых версиях автомобилей, использующих протоколы ISO9141-2 или ISO14230-4.
Присмотревшись к контактам, поймёте, что таблица неполная. Да, в дополнение к контактам 2, 7, 10 и 15 коннектор должен иметь контакты 4 (земляной на шасси), 5 (схемная земля) и 16 (плюс аккумулятора). Таким образом, тип протокола определяется по наличию контактов:
J1850 PWM | у разъёма есть контакты 2, 4, 5, 10 и 16 |
J1850 VPW | у разъёма есть контакты 2, 4, 5 и 16 (без 10) |
ISO9141/14230 | у разъёма есть контакты 4, 5, 7 и 16. Контакт 15 есть или нет |
ISO15765CAN | у разъёма есть контакты 4, 5, 6, 14 и 16 |
Один из способов узнать, какую версию OBD поддерживает бортовой компьютер автомобиля, это найти информационный шильдик Vehicle information. Под капотом его можно (или не можно) увидеть сразу в нескольких местах. Он исполняется в виде таблички на металлической или бумажной основах, и в числе прочего обязательно содержит в себе надпись OBD XX sertified. Это и есть ваша версия.
Успехов
Разработка разъема obd2 началась 1988 году, а уже с 1994 года начали выпускать автомобили, отвечающие стандартам obd2, двумя годами позже он вступил в силу окончательно и стал обязательным для всех легковых и коммерческих автомобилей в США.
Позже и европейские законодатели также приняли obd2 за основу при разработке требований EURO 3, в числе которых есть и требования к системе бортовой диагностики — EOBD. В Европе принятые нормы действуют с 2001 года.
Дело в том, что в начале 1990-х годов в США стремительно развивалось экологическое движение, на фоне которого в США были приняты определенные стандарты, по которым ввели обязательное оснащение автомобилей электронными блоками управления (ЭБУ, ECU), или, если проще — системой за контролем работы двигателя и всех параметров, отвечающих за состав выхлопа.
Стандарты предполагали считывание информации об отклонениях в экологических параметрах работы двигателя, а также диагностики ЭБУ, obd2 как раз и является системой накопления и считывания подобных протоколов информации. Изначальная «экологическая направленность» obd2, с одной стороны, ограничила возможности по его использованию в диагностике всего спектра неисправностей, но с другой стороны определила его крайне интересную судьбу и, как следствие, широкое распространение не только в США, но и на других автомобильных рынках.
С помощью obd2 можно снять практически любые данные, но общее количество физических интерфейсов и протоколов напугает любого. Это объяснимо тем, что к моменту появления первых версий спецификаций obd2 большинство автопроизводителей уже успели разработать что-то своё. Конечно, введение стандартов привело к некому порядку, но также потребовало включения в спецификацию всех интерфейсов и протоколов, которые на тот момент существовали, практически у всех.
MS_CAN, K/L-Line, 1850, там же плюс аккумулятора и две земли (сигнальная и просто масса). Это по стандарту, остальные 7 из 16 выводов – ОЕМ, то есть каждый производитель эти выводы использует как по его мнению наиболее удобно. Но и стандартные выводы зачастую имеют расширенные, продвинутые функции.
Например, MS_CAN может быть HS_CAN, HS_CAN может быть на других пинах (неоговоренных стандартом) наряду со стандартным MS_CAN., Пин №1 может быть: у Ford – SW_CAN, у WAGов – IGN_ON, у Кia – check_engene и т.д.
тот же интерфейс K –Line изначально был однонаправленным, сейчас он двунаправленный, Бодрейт CAN интерфейса также растёт. На сегодняшний день большинство европейских авто 90-х и начала 2000-х можно продиагностировать имея только K –Line, а большинство американских – только SAE1850. Сегодняшний вектор развития – это всё более широкое применение CAN, повышение скорости обмена, всё чаще видим и однопроводный SW_CAN.
Безусловно, стоит отдать дань стандартам, но все же каждый производитель привносит что-то свое в реализацию той или иной модели автомобиля и не всегда получается следовать стандартам и поэтому obd2 делает свое дело. Этот микроконтроллер, с набором интерфейсов, соответствующих стандарту J1962M переводит всё многообразие данных на разных интерфейсах диагностических разъёмов в язык, оптимальный для приложений, используемых для диагностики автомобиля.
В основном, сейчас большинство протоколов расшифровывается приложением, что позволяет любому профессионалу и не очень оценить данные по ошибкам и параметрам системы. Первым массовым интерпретатором obd2 с открытым протоколом стал ELM327. Это 8-ми битный микроконтроллер MicroChip PIC18F2580, который стал широко распространён в авто кругах и его стоимость хоть и разнообразна, но вполне приемлема.
Использование такого адаптера автолюбителями начинается от - положить в бардачок на всякий случаи и заканчивается - сбросить ошибку перед продажей недобросовестным продавцом.
Обновление прошивок и переконфигурирование электронных блоков также возможно большинством адаптеров, но всё-таки лучше в таком случае обратиться к специалистам.
Кому-то просто нравится владеть всей информацией о параметрах работы двигателя и других систем в красивом интерфейсе приложения на телефоне.
Многих мучают вопросы: Насколько необходим данный стандарт obd2 в реальной практике, каковы его плюсы и минусы? Каким требованиям должны удовлетворять диагностические приборы?
Прежде всего надо понимать, что главное отличие данной системы самодиагностики от всех других — это ориентация на токсичность, которая, к сожалению, имеет место быть при использовании любого автомобиля. В это понятие входят и вредные вещества, содержащиеся в выхлопных газах, и испарения топлива, и утечка хладагента из системы кондиционирования.
Такая ориентация определяет все сильные и слабые стороны стандартов obd2. Так как далеко не все неисправности имеют прямое влияние на токсичность, это сужает сферу действия стандарта. Но, с другой стороны, основными и самыми важными устройствами автомобиля являются двигатель и трансмиссия, а этого вполне достаточно, чтобы констатировать важность применения стандартов obd2.
Вторым важным отличием стандарта obd2 является унификация. Стандартный диагностический разъём, унифицированные протоколы обмена, единая система обозначения кодов неисправностей дает производителям диагностического оборудования возможность создавать недорогие универсальные приборы, а специалистам значительно сокращать затраты на приобретение дорогостоящего оборудования для диагностирования и стандартизировать процесс, сокращая время на диагностику.
Одним из самых важных достижений стандарта диагностики obd2 является развитие оперативной диагностики и значительное упрощение данной процедуры. На блок управления возложено огромное количество функций, обеспечивающих беспрерывный контроль всех систем автомобиля. Благодарю развитию и усовершенствованию модельных рядов автопроизводителей, количество функций контроля блока управления кардинально растет с каждым поколением.
Это и отражает документ J1979, определяющий диагностические режимы, которые должны поддерживаться как блоком управления двигателем/АКП, так и диагностическим оборудованием.
Ниже список этих режимов: — Параметры в реальном времени — Сохраненный кадр параметров — Мониторинг для непостоянно тестируемых систем — Результаты мониторинга для постоянно тестируемых систем — Управление исполнительными компонентами — Идентификационные параметры автомобиля — Считывание кодов неисправностей — Стирание кодов неисправностей, сброс статуса мониторов
— Мониторинг датчика кислорода
Очень важно, что наличие аналогичного разъема не является 100 процентным признаком совместимости с OBD-II. Автомобили оборудованные этой системой обязательно должны иметь отметку на одной из табличек в подкапотном пространстве и/или в сопроводительной документации. Чаще всего используемый протокол можно идентифицировать по наличию/отсутствию определенных контактов на диагностическом разъеме. Если на этом разъеме присутствуют все контакты, следует обратиться к технической документации на конкретный
автомобиль, которая есть на сайте.
Обозначение контактов
Контакты диагностического разъема для используемых протоколов. Контакты 4, 5, 7, 15, 16 — ISO 9141-2. Контакты 2, 4, 5, 10, 16 — J1850 PWM. Контакты 2, 4, 5, 16 (без 10) — J1850 VPW. Протокол ISO 9141-2 идентифицируется наличием контакта 7 и отсутствием 2 и/или 10 контактов на диагностическом разъеме. Если отсутствует контакт 7, в системе используется протокол SAE J1850 VPW (Variable Pulse Width Modulation) или SAE J1850 PWM (Pulse Width Modulation). Все три протокола обмена данных работают через стандартный кабель OBD-II J1962
connector.
Код DTC состоит из 5 цифр. На рисунке внизу показана структура кода DTC. При помощи данной информации вы можете удалить код DTC даже в том случае, если у вас нет описания данного кода.
AFC – Расходомер воздуха ALDL – Диагностический коннектор. Так раньше назывался диагностический коннектор для автомобилей GM, а также разъем для подключения сканнера; также может использоваться как название любых сигналов OBD II CAN — Контроллер CARB – Калифорнийский совет по атмосферным ресурсам CFI – центральный впрыск топлива (TBI) CFI – непрерывный впрыск топлива CO – монооксид углерода DLC – Диагностический коннектор Driving Cycle – Последовательность пуска, прогрева и движения автомобиля, в ходе этого цикла происходит тестирование всех функций OBD II DTC – Код неисправности
ECM – Блок управления двигателем
EEC – Электронное управление двигателем EEPROM or E2PROM – Программируемая память, доступная только для чтения EFI – электронный впрыск топлива EGR — рециркуляция выхлопных газов EMR – электронный блок уменьшения угла зажигания EPA – Совет по охране окружающей среды ESC – Электронная регулировка зажигания EST – Электронная регулировка момента зажигания Fuel Trim – балансировка состава смеси HC — углеводород HEI — зажигание HO2S – подогрев датчика кислорода ISO 9141 – международный стандарт для разъема OBDII J1850PWM – протокол для разъема OBD II, установленный по стандарту SAE J1850VPW — протокол для разъема OBD II, установленный по стандарту SAE J1962 – стандарт для диагностического коннектора OBD II, установленный по стандарту SAE J1978 – стандарт SAE для сканнеров OBD II J1979 – стандарт SAE для режимов диагностики J2012 – стандарт SAE, одобренный EPA, для сообщений при тестировании системы выхлопныхгазов
MAF – расход воздуха MAP – абсолютное давление во впускном коллекторе MAT – температура воздуха во впускном коллекторе MIL – индикаторная лампа неисправностей. Лампа «Check Engine Light» на панели приборов. NOx – оксид азота O2 — кислород OBD — диагностика OBDII or OBD II – усовершенствованный стандарт для диагностики автомобилей в США после 1-1- 96 Parameters – Параметры по диагностике OBD II PCM – Блок управления трансмиссией PCV — Картер Proprietary Readings – Параметры бортового компьютера, которые не требуются для диагностики OBD II, но могут использоваться для диагностики неисправностей различных типов автомобилей. PTC – Код неисправности RPM – об/мин Scan Tool — сканнер SES – лампа сервисного обслуживания двигателя на панели приборов SFI – последовательный впрыск топлива Stoichiometric ( Stoy’-kee-o-metric) Ratio – Коэффициент сгорания топлива TPS – Датчик положения дроссельной заслонки VAC — вакуум VCM – центральный блок управления автомобиля VIN – идентификационный номер автомобиля VSS – датчик скорости
WOT – открытая дроссельная заслонка
На сегодня, интересным и очень перспективным решением автомобильного IoT, является платформа Open Connected Car компании Mojio. Эта платформа с открытым интерфейсом (API) предоставляет облачный сервис для «подключенных» авто и уже доступны коммерческие предложения. Например, телекоммуникационный гигант Т-Mobile, на базе этой платформы, предоставляет сервис SyncUP DRIVE. Это программно-аппаратное решение на базе портативного устройства, подключаемого к автомобилю через разъем диагностики OBD-II, и соответствующее мобильное приложение. Благодаря такому подходу можно эффективно выполнять непрерывный мониторинг параметров работы своего автомобиля и в любой момент времени получать его текущее месторасположение. Приложение может рассказать о стилях вождения, предупредить о профилактическом обслуживании, а также уведомить владельца о проблемах с транспортным средством. Кроме того, SyncUP DRIVE разворачивает в автомобиле точку доступа Wi-Fi, используя доступ по высокоскоростному протоколу мобильного стандарта LTE.
The Open Connected Car Platform – Mojio Для подключения к автомобилю используется стандартный диагностический разъем OBD-II. Большинство серийных автомобилей, выпущенных после 1996 года, уже оснащены таким разъемом. Хотя такой разъем диагностики и стандартизирован, но в нем поддерживаются сразу несколько протоколов различных систем управления двигателем (физически используются разные контакты на разъеме), которые должен «знать» коммуникационный модуль IoT. Соответственно в разных марках автомобилей могут быть разные внутренние шины получения данных диагностики с бока управления двигателя (ECU — Electronic control unit). Для работы с сервисом SyncUP DRIVE предлагается решение на основе модуля VM6200S компании ZTEWelink. Модуль VM6200S поддерживает подключение по мобильному протоколу LTE, содержит интегрированный 3-х осевой датчик ускорений и 3-х осевой гироскоп, приемник GPS-сигналов, чип OBD-II, с поддержкой протоколов ISO 15765-4 (CAN), ISO 14230-4 KWP (Keyword Protocol 2000), ISO 9141-2 (Chrysler, Euro, and Asian automobiles), SAE J1850 PWM (Ford vehicles), SAE J1850 VPW (GM vehicles). Таким образом, модуль позволяет развернуть точку доступа Wi-Fi 802.11 b/g/n/, регистрировать события во время движения, выполнять диагностику работы двигателя, оценивать экономичность расхода топлива и т.п. А поскольку партнерами Mojio являются проекты Amazon Alexa, сервис IFTTT и другие, то для разработчиков и интеграторов решений открываются все перспективы вплоть до создания социального IoT на основе «подключенного» автомобиля, как составляющей такой инфраструктуры.
Таким образом, информация, полученная по средствам считывания данных OBD-II, текущие координаты месторасположения с GPS-приемника и параметры динамики движения автомобиля, полученные с гиро-сенсоров, на текущий момент времени и де-факто, стали основой для превращения любого транспортного средства в устройство IoT. Дальше можно рассмотреть сценарии использования агрегированной информации, полученной от автомобилей, применять различные методики обработки Big Data, и при этом не нужно забывать о перспективах объединения таких данных с информацией от инфраструктуры «умных» дорог. Но прежде чем заняться обработкой данных, нужно их сначала получить, поэтому в этой публикации уделим основное внимание аппаратной составляющей реализации сценариев работы на уровне диагностического разъема OBD-II.
Так или иначе, но все ранее рассмотренные решения – это более совершенные промышленные изделия, по сравнению с обычным устройством считывания кодов диагностики на базе микросхемы ELM327 канадской компании Elm Electronics. ELM327 – это универсальный преобразователь протоколов, используемых в диагностических шинах автомобилей, в последовательный протокол типа RS-232.
Взаимодействие с ELM327 осуществляется стандартными AT-командами, поддерживаемыми микросхемой. Нужно просто организовать обмен текстовыми сообщениями по, уже ставшему классикой, протоколу RS-232 (или правильнее UART, т.к. речь идет только о потоке данных, а не уровнях сигнала). А само физическое соединение низкого уровня по USB, Bluetooth или Wi-Fi просто реализуется, с применением микросхем преобразования последовательного протокола UART. Получается, чтобы превратить автомобиль в устройство IoT вполне достаточно, не забыв о согласовании уровней напряжений, подключить микросхему ELM327 к диагностическому разъему OBD-II и на выходе этой микросхемы, например, поставить преобразователь последовательного интерфейса в Bluetooth или Wi-Fi. Затем, можно со своего смартфона «считывать» диагностику автомобиля. Впрочем, таких готовых модулей или блоков на рынке предостаточно. А их цена на AliExpress колеблется в пределах US $2.50 – US $10. Хотя модуль и не должен потреблять много энергии, но будет очень удобно, если на нем уже присутствует кнопка отключения питания. Кстати, с точки зрения защищенности – это тоже не плохо.
Кстати, хочется отметить, очень удобный сервис MockUPhone с бесплатными mock-up современных гаджетов, который очень пригодился, для подготовки скриншота работы программы Torque. Но это небольшое отступление от темы публикации. Нужно заметить, что в большинстве случаев, разъем OBD-II, к которому подключается модуль диагностики, находится под рулевой колонкой автомобиля.
Понятно, что уже готовых решений существует множество. Но если речь идет о разработке сервиса на основе IoT или более конкретно – реализуется концепция Connected Car, то достаточно удобно использовать эмулятор бортовой информационной сети автомобиля, чтобы не бегать каждый раз к автомобилю. Например, Mojio для работы со своим API предлагает онлайн симулятор автомобиля, а на примере работы с облачным сервисом IBM Watson IoT Platform в статье: «Sending Vehicle Data to the IBM Watson IoT Platform – IBM developerWorks Recipes» предлагается для отправки в облако данных с транспортного средства использовать мобильное приложение, например, «IBM IoT for Automotive — OBDII Fleet Management App for Android», которое взаимодействует с разворачиваемым облачным сервисом «IBM IoT for Automotive (Bluemix) — Fleet Management Starter Application», но если не отвлекаться на эти проекты можно использовать просто эмулятор данных: «Car Simulator». Правда, все эти решения, в основном, эмулируют уже как бы полученные данные, а нам интересен именно эмулятор бортовой информационной сети. Наиболее известное такое решение – это ECUsim 2000, стоимость которого начинается с отметки US $200 и зависит от количества поддерживаемых эмулируемых протоколов.
Конечно, профессиональный эмулятор не заменишь, но энтузиастов и гиков вполне может заинтересовать самостоятельная реализация менее сложного проекта на Arduino или Raspberry Pi. Например, можно ограничиться только наиболее распространенным интерфейсом CAN (Controller Area Network). В свое время, стандарт CAN, предложенный компанией Bosch, совершил заметный прогресс в разработке систем для автомобильной электроники. Если автомобиль в сети Интернет появился только недавно, то концепция сети внутри автомобиля существует уже с середины 80-х. Идея очень проста, и как Ethernet совершил прорыв в компьютерных сетях, так и CAN стал основой надежных коммуникаций внутри автомобиля.
Передача данных в CAN bus чем-то напоминает модель «издатель-подписчик», где каждое устройство на шине имеет уникальный идентификатор и, когда передает данные одно устройство, то все остальные слушают, и принимают решение на основе этого идентификатора – нужны ли конкретно им эти данные для приема и обработки или нет. В общем, протокол достаточно сложен, но для микроконтроллера или микропроцессора вряд ли придется писать реализацию CAN, а также думать об особенностях физической среды передачи данных. Для решения этих задач уже есть готовые аппаратные контроллеры шины, а для согласования уровней, зачастую применяются интегральные преобразователи. Например, контроллер MCP2515 с интерфейсом SPI и трансивер (согласовательная микросхема уровней) MCP2551. Как раз на базе этих микросхем и предложен проект Arduino OBD2 Simulator, опубликованный на площадке Instructable. Для его реализации потребуется лишь плата Arduino UNO и CAN-BUS Shield, например, компании Seeed Technology.
На плате расширения CAN-BUS Shield очень удобно использовать не разъем D-SUB, а просто клеммник на два контакта (CAN_H, CAN_L). С точки зрения разработки программного кода, следует отметить, что прототип энтузиасты выложили на GitHub. Сейчас платы от Seeed изменились, да и в любом случае для контроллера MCP2515 лучше использовать новые драйверы все той-же Seeed-Studio. Конечно, оригинальную программу нужно будет немного доработать под новые драйверы, но это дело на пару минут.
Однако, рассмотренный пример очень примитивен, так как все параметры, отправляемые по протоколу OBD-II, просто генерируются случайным образом, нет связи параметров работы двигателя между собой и т.д. Как продолжение проекта очевидным является разработка приложения, похожего на Freematics OBD-II Emulator GUI. Это графическая оболочка с открытым исходным кодом, которая используется в аппаратном решении Freematics OBD-II Emulator.
"Питер - АТ"
ИНН 780703320484
ОГРНИП 313784720500453