Время на прочтение
Когда-то давно, примерно в середине 90-х, во время появления процессора Pentium Pro, один из основателей компании Intel Гордон Мур заметил, что: «Если бы автомобилестроение развивалось со скоростью эволюции полупроводниковой промышленности, то сегодня Роллс-Ройс мог бы проехать полмиллиона миль на одном галлоне бензина, и было бы дешевле его выбросить, чем платить за парковку». Но, пожалуй, уже сегодня автомобилестроение совершает гигантский шаг развития в направлении, как кардинальной смены типа топлива, так и технологий управления автомобилем. Практически недавно представлены коммерческие электромобили и авто на водородном топливе, а автопилот становится желаемым компонентом электронной «начинки» транспортного средства. В большинстве своем, как раз стремительный рывок автопрома обусловлен появлением надежных и безопасных решений на основе умной электроники для автомобильных бортовых систем управления. Но, где же в повседневной жизни Интернет в автомобиле, где же технологии Интернета вещей (IoT), а также многим известная концепция подключенного к сети автомобиля (Connected Car)?

The Rolls-Royce 103EX. Rolls-Royce unveils driverless, electric concept car, complete with silk love seat – The Telegraph.
На самом деле, все вышеперечисленные технологии уже существуют и используются, однако, только в достаточно обособленных решениях. Виною тому, строгие требования к обеспечению безопасности, которые непременно должны быть реализованы при запуске любой новой технологии или решения на транспорте. Поэтому, нельзя сказать, что, садясь в автомобиль со смартфоном, можно автоматически получить решение IoT или Connected Car. В большинстве стран, и это очень логично, существует запрет на использование смартфона или других гаджетов за рулем, а если говорить о голосовых ассистентах, то в большинстве случаев они сейчас раздражают и отвлекают, как водителя, так и пассажиров. В свою очередь, медиа-центр, дополнительные видеоэкраны и отличная акустика, конечно, являются очень привлекательными составляющими современного автомобиля. Но хочется поймать себя на слове, и отметить, что как хорошо приглушить музыку и просто смотреть в окошко на проносящиеся мимо улицы или природу. Конечно, есть пробки, но в этой публикации ставится цель отметить не сколько этическую составляющую или рассмотреть проблемы информационного перенасыщения участников дорожного движения, а рассмотреть те «невидимые» компоненты технологий IoT, которые уже используются в транспортных средствах и доступны для широкого применения.
На сегодня, интересным и очень перспективным решением автомобильного 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 на основе «подключенного» автомобиля, как составляющей такой инфраструктуры.

VM6200S4G OBD Device – ZTEWelink Corporation
Но не только SyncUP DRIVE сейчас представлена на рынке, например, многие компании предоставляют нечто подобное. Конечно, недавно появившийся Samsung Connect auto device – одно из таких интересных предложений, превращающих автомобиль в подключенное устройство. Решение от Samsung аналогичным образом использует мобильную сеть поколения 4G LTE и разворачивает внутри автомобиля точку доступа Wi-Fi: 802.11 a/b/g/n. Connect auto device поддерживает подключение Bluetooth v4.1, содержит GPS-приемник, датчик ускорений, гироскоп и базируется на 4-х ядерном процессоре с частотой 1.2GHz и операционной системе Tizen. Следует отметить, что корейский электронный гигант Samsung говорит о защищенности системы за счет использования Samsung Knox – мобильного решения с защитой уровня предприятия. Фактически Samsung Knox – это программно-аппаратное решение для усиления защиты операционной системы Android.

Таким образом, информация, полученная по средствам считывания данных OBD-II, текущие координаты месторасположения с GPS-приемника и параметры динамики движения автомобиля, полученные с гиро-сенсоров, на текущий момент времени и де-факто, стали основой для превращения любого транспортного средства в устройство IoT. Дальше можно рассмотреть сценарии использования агрегированной информации, полученной от автомобилей, применять различные методики обработки Big Data, и при этом не нужно забывать о перспективах объединения таких данных с информацией от инфраструктуры «умных» дорог. Но прежде чем заняться обработкой данных, нужно их сначала получить, поэтому в этой публикации уделим основное внимание аппаратной составляющей реализации сценариев работы на уровне диагностического разъема OBD-II.
Так или иначе, но все ранее рассмотренные решения – это более совершенные промышленные изделия, по сравнению с обычным устройством считывания кодов диагностики на базе микросхемы ELM327 канадской компании Elm Electronics. ELM327 – это универсальный преобразователь протоколов, используемых в диагностических шинах автомобилей, в последовательный протокол типа RS-232.

Структурная схема микросхемы ELM327 v2.2 – Elm Electronics
Взаимодействие с ELM327 осуществляется стандартными AT-командами, поддерживаемыми микросхемой. Нужно просто организовать обмен текстовыми сообщениями по, уже ставшему классикой, протоколу RS-232 (или правильнее UART, т.к. речь идет только о потоке данных, а не уровнях сигнала). А само физическое соединение низкого уровня по USB, Bluetooth или Wi-Fi просто реализуется, с применением микросхем преобразования последовательного протокола UART. Получается, чтобы превратить автомобиль в устройство IoT вполне достаточно, не забыв о согласовании уровней напряжений, подключить микросхему ELM327 к диагностическому разъему OBD-II и на выходе этой микросхемы, например, поставить преобразователь последовательного интерфейса в Bluetooth или Wi-Fi. Затем, можно со своего смартфона «считывать» диагностику автомобиля. Впрочем, таких готовых модулей или блоков на рынке предостаточно. А их цена на AliExpress колеблется в пределах US $2.50 – US $10. Хотя модуль и не должен потреблять много энергии, но будет очень удобно, если на нем уже присутствует кнопка отключения питания. Кстати, с точки зрения защищенности – это тоже не плохо.

Mini ELM327 Bluetooth OBD-II Car Diagnostic Adaptor V1.5
Теперь можно подключить стандартный модуль Mini ELM327 Bluetooth OBD-II V1.5 (интересно, что во многих источниках советуют использовать модули со старой прошивкой версии 1.5, а не новые с версией 2.2, т.е. как аргумент высказывается более стабильная работа модуля на старой прошивке и поддержка большего количества авто, но это очень субъективно) и поэкспериментировать с подключением смартфона к выбранному модулю, например, для платформы Android можно использовать одну из самых популярных программ диагностики Torque Lite (OBD2 & Car) или Torque Pro (OBD 2 & Car), а также что-нибудь попроще или использовать свои наработки.

Работа приложения Torque Pro под Android.
Кстати, хочется отметить, очень удобный сервис MockUPhone с бесплатными mock-up современных гаджетов, который очень пригодился, для подготовки скриншота работы программы Torque. Но это небольшое отступление от темы публикации. Нужно заметить, что в большинстве случаев, разъем OBD-II, к которому подключается модуль диагностики, находится под рулевой колонкой автомобиля.

Getting Started with OBD-II – SparkFun Electronics
Понятно, что уже готовых решений существует множество. Но если речь идет о разработке сервиса на основе 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 и зависит от количества поддерживаемых эмулируемых протоколов.

ECUsim 2000 OBD Simulator – ScanTool
Конечно, профессиональный эмулятор не заменишь, но энтузиастов и гиков вполне может заинтересовать самостоятельная реализация менее сложного проекта на Arduino или Raspberry Pi. Например, можно ограничиться только наиболее распространенным интерфейсом CAN (Controller Area Network). В свое время, стандарт CAN, предложенный компанией Bosch, совершил заметный прогресс в разработке систем для автомобильной электроники. Если автомобиль в сети Интернет появился только недавно, то концепция сети внутри автомобиля существует уже с середины 80-х. Идея очень проста, и как Ethernet совершил прорыв в компьютерных сетях, так и CAN стал основой надежных коммуникаций внутри автомобиля.

An Arduino Based CAN Bus Network – Henry’s Bench
Раньше в автомобиле, как правило, к центральному блоку управления двигателем «стекались» шины и провода различных подключенных модулей и устройств. Последовательная двухпроводная шина CAN позволила реализовывать уже независимые интеллектуальные модули, например, центральный блок управления стал просто одним из таких модулей, которые «общаются» друг с другом фактически по сетевому протоколу. При этом значительно уменьшается количество проводки внутри автомобиля.
В отличие от Ethernet, сеть CAN значительнее надежнее, что обусловило ее применение не только в автопроме, но и в системах промышленной автоматики, решениях умного дома и т.п. На физическом уровне в CAN используется двухпроводная линия, CAN Lo и CAN Hi, которые побитно передают данные, упакованные в пакет. На концах шины присутствуют согласующие сопротивления по 120 Ом, а также для подавления помех следует использовать скрутку проводов. Скорость передачи данных может достигать 1 Мбит/с.

A Controller Area Network (CAN bus)
Передача данных в CAN bus чем-то напоминает модель «издатель-подписчик», где каждое устройство на шине имеет уникальный идентификатор и, когда передает данные одно устройство, то все остальные слушают, и принимают решение на основе этого идентификатора – нужны ли конкретно им эти данные для приема и обработки или нет. В общем, протокол достаточно сложен, но для микроконтроллера или микропроцессора вряд ли придется писать реализацию CAN, а также думать об особенностях физической среды передачи данных. Для решения этих задач уже есть готовые аппаратные контроллеры шины, а для согласования уровней, зачастую применяются интегральные преобразователи. Например, контроллер MCP2515 с интерфейсом SPI и трансивер (согласовательная микросхема уровней) MCP2551. Как раз на базе этих микросхем и предложен проект Arduino OBD2 Simulator, опубликованный на площадке Instructable. Для его реализации потребуется лишь плата Arduino UNO и CAN-BUS Shield, например, компании Seeed Technology.

Эксперименты с применением Arduino OBD2 Simulator
В принципе, для разработки эмулятора данных OBD-II, не помешает наличие блока питания DC на 12V для модуля ELM327, а также разъем OBD-II. Впрочем, no-name преобразователь DC-DC-USB-TO-12V вполне может решить проблему, т.к. несколько блоков питания на 5V, пожалуй, будут под рукой у любого разработчика для Интернета вещей и не только. Для подключения к OBD-II потребуется два информационных провода CAN_H и CAN_L, а также наличие питания 12 V, но как было замечено ранее, 12 V нужно только для обеспечения работоспособности для модуля ELM327.

CAN-BUS Shield V1.2 — Seeed Development Limited Wiki
На плате расширения CAN-BUS Shield очень удобно использовать не разъем D-SUB, а просто клеммник на два контакта (CAN_H, CAN_L). С точки зрения разработки программного кода, следует отметить, что прототип энтузиасты выложили на GitHub. Сейчас платы от Seeed изменились, да и в любом случае для контроллера MCP2515 лучше использовать новые драйверы все той-же Seeed-Studio. Конечно, оригинальную программу нужно будет немного доработать под новые драйверы, но это дело на пару минут.

Работа с CAN-BUS в среде Arduino IDE на основе low cost OBD2 ECU Simulator
Однако, рассмотренный пример очень примитивен, так как все параметры, отправляемые по протоколу OBD-II, просто генерируются случайным образом, нет связи параметров работы двигателя между собой и т.д. Как продолжение проекта очевидным является разработка приложения, похожего на Freematics OBD-II Emulator GUI. Это графическая оболочка с открытым исходным кодом, которая используется в аппаратном решении Freematics OBD-II Emulator.

Freematics OBD-II Emulator GUI – Freematics
Таким образом, собрав на базе Arduino модуль, позволяющий работать с CAN, вполне можно создать эмулятор OBD-II, так как протокол диагностики хорошо описан и его несложно реализовать. Следует отметить, что реализация взаимодействия микроконтроллера и бортовой шины CAN – это совсем другая задача и нужно понимать, что внутренние высокоуровневые протоколы этой шины не документируются автопроизводителями, да и с другой стороны – не следует внедрятся во внутреннее устройство автомобильной электроники, чтобы не коим образом не снизить безопасность эксплуатации транспортных средств. Если говорить о CAN в общем, то для разработки своих устройств на базе этой шины вполне можно использовать высокоуровневый открытый протокол CANopen.
Остается дело за малым – немного свободного времени и в удовольствие выполнять разработку своего кода. Правда, где же это время найти в конце года? Но будем оптимистами. А вот, если говорить о применении такого эмулятора OBD-II, то самое прямое направление – это разработка уже своего модуля для диагностического разъема. Например, за отправную точку можно взять открытый проект Carloop, который нацелен на создание модуля подключения автомобиля к облаку с использованием технологий 3G, Wi-Fi или Bluetooth.

Проект Carloop основывается на использовании плат: Particle Photon (на базе Wi-Fi модуля Cypress BCM43362, который поддерживает стандарт 802.11b/g/n; контроллера семейства ARM Cortex M3 – STM32F205 на частоте 120Mhz; 1MB флеш-памяти; 128KB оперативной памяти) и Electron (платы с поддержкой подключения к сети мобильной связи 3G/2G). Платформа Particle и сама очень интересна, поскольку базируется на облачном сервисе подключения устройств IoT, облачной IDE для разработки, например, на базе плат Photon, где используется язык похожий на C/C++ для Arduino. Фактически Particle – это отдельная тема для публикации, а проект Carloop однозначно заслуживает отдельного внимания со сороны энтузиастов автомобиля, как подключенного устройства IoT.
Подключив автомобиль к сети Интернет и сервисам IoT, можно реализовать множества сценариев, которые несомненно будут способствовать удобству эксплуатации транспортных средств, повышению комфорта и, просто, эфективному решению повседневных задач, конечно, включая и решение транспортных перевозок. Например, данные о стиле вождения, надежности работы двигателя и агрегатов автомобиля, вполне могут и уже сейчас учитываются страховыми компаниями. Текущее месторасположение автомобиля будет актуально для сервисов такси и аренды автомобилей. Взаимодействие участников дорожного движения стает более удобной при использовании IoT, так же проблема парковок, поиска свободных мест на стоянке, и многое-многое другое.
Интересные ресурсы и ссылки
— Car Hacking: так ли безопасны системы безопасности автомобиля? – Хабрахабр
— Микропроцессору- 25 лет! – Computerworld
— T‑Mobile SyncUP DRIVE – T-MOBILE
— ZTE и Mojio сделают практически любой автомобиль частью Интернета вещей – ZTE Corporation
— Samsung Knox – SAMSUNG
— Возможности CAN протокола – Журнал «СТА»
— Интернет вещей в вашем доме — подключите к дому свою машину – IBM developerWorks
— Vehicle telematics analytics using Watson IoT Platform Cloud Analytics – IBM developerWorks Recipes
— Использование сети CAN и стека CANopen – Хабрахабр
— Протокол высокого уровня CANopen – Журнал РАДИОЛОЦМАН
— Бортовой компьютер для авто на Arduino своими руками – Geektimes
— Wiring the MCP2515 Controller Area Network CAN BUS Diagnostics – 14CORE
— Arduino OBD2 ELM327 I2C-LCD HC05 Bluetooth – Instructables
—Разработка Android приложения для работы с OBDII протоколом – Хабрахабр
Ни для кого не секрет, что в современных автомобилях все системы под завязку забиты различной электроникой, даже простой стеклоподъемник имеет собственный микроконтроллер и адрес в общей сети. Мне, как интересующемуся владельцу, стало интересно, что же можно сделать имея просто доступ к разъему OBD и ничего более.
Все описанное в статье относится к автомобилю 2008 года (Mitsubishi Lancer), но как показала практика, спустя 10 лет у производителя ничего не изменилось и все функции продолжают использоваться и работать на современных авто.
Строение сети в автомобиле изображено на картинке:

В машине имеются 3 CAN шины (скоростная шина двигателя 500kbps, низкоскоростная салонная 83.3 kbps, диагностическая) и одна шина LIN. Связующим звеном между ними является блок ETACS (Electronic Total Automobile Control System), который выступает «шлюзом» и пересылает сообщения из одной шины в другую, по определенным правилам, а также занимается обработкой некоторых из них. Что же можно сделать с CAN шиной? Например, пообщаться с блоками, а может и что-нибудь изменить. Чтобы начать диалог с любым блоком необходимо знать его адрес, а также поддерживаемые функции (PID), которые он сможет обработать и дать ответ.
В открытом доступе лежит ПО для дилерских центров под названием MUT III. Изучив базы данных из него, можно найти всю интересующую нас информацию.
О адресах (запрос-ответ) в CAN сети:

PID’ы запросов, полные расшифровки ответов от всех блоков, включая положение байт в ответе (если за один кадр отправляются несколько значений) и множители с единицами измерений:

Например, хотим мы узнать угол поворота рулевого колеса. Для этого отправим в блок управления ESP команду 2102. В ответ прилетит сообщение 6102 FFEA000008FFF302
Взглянув в таблицу, узнаем, что нужны байты 2 и 3.

Значение в int16. 0xFFEA = -22, умножая на коэффициент 0,04375 получаем угол поворота руля -0,9625 градуса.
Таким образом можно запросить из блоков управления очень много информации, вплоть до того, сколько часов играло радио и сколько дисков было загружено в магнитолу, а также запускать диагностические проверки на всех узлах (можно на приборной панели включать разные лампочки и дергать стрелки, например).

Небольшое отступление. Почти во всех автомобилях для проведения диагностики и обслуживания используется механизм UDS (он же ISO 14229).
Он упрощает жизнь разработчикам автомобильных диагностических сканеров и является унифицированным для всех автопроизводителей (но это не значит, что некоторые не могут придумывать поверх него свои надстройки).
В итоге имеем расшифрованный ответ от вариатора: 7F — запрос отклонен, 31 — это PID, который мы отправляли и Negative response code 33, а именно Security Access Denied. То есть, у нас нет прав на изменение или запрос этой функции. У кого же она есть?
Отступление 2. В UDS используется механизм разграничения доступа по нескольким уровням — обычная диагностическая сессия, расширенная сессия, сессия программирования и т.п. В каждой сессии присутствуют уровни допуска, которые решают, что вам можно, а что нет. Чтобы получить доступ к ним, необходимо запросить у блока так называемый Seed, обработать его определенным алгоритмом и отправить обратно в блок (Key). Подробнее можно почитать тут.
Попробуем запросить seed. Отправляем в ECU команду 2701 и получаем в ответ 6701 6A43FD3C.
Отправив в ответ любое 4-байтное значение (27 02 DEADBEEF), получим в ответ 7F2735, где 35 это Invalid Key (неверный ключ), т.к. было отправлено значение «с потолка». Где же искать алгоритм вычисления ключа? В прошивке блока управления, больше негде. Достать его достаточно легко (но не на всех блоках, все зависит от используемого микроконтроллера), сначала находим обработчик приема CAN, затем функцию обработки PID 0x27.

Повторив обмен seed-key с алгоритмом из прошивки получим в ответ 6702 34, где 34 это «Доступ разрешен». После этого команда на сброс уровня деградации масла успешно отрабатывает и возвращает не negative response code, а положительный ответ 7103 01 и счетчик успешно сбрасывается.
Таким образом, через OBD разъем можно делать с автомобилем практически все: менять VIN номера в блоках, настраивать кодировку (конфигурацию), менее чем за секунду отключить иммобилайзер, очищать информацию об ошибках, вводить блок в состояние загрузки, когда можно загрузить в RAM контроллера любой код и выполнить его. Система безопасности у японцев слегка хромает.
Статья написана исключительно в ознакомительных целях. Любое вмешательство в электронные блоки управления автомобиля может стать для них последним. Всем хорошего дня!
Идея не новая, но вопросов много. С одной стороны, можно снять практически любые данные, а с другой стороны, OBDII похож на лоскутное одеяло, т.к. общее количество физических интерфейсов и протоколов напугает любого. А объясняется всё тем, что к моменту появления первых версий спецификаций OBD большинство автопроизводителей уже успели разработать что-то своё. Появление стандарта хоть и навело некоторый порядок, но потребовало включения в спецификацию всех интерфейсов и протоколов, которые на тот момент существовали, ну, или почти всех.
В OBDII разъёме по стандарту J1962M присутствуют три стандартных интерфейса: MS_CAN, K/L-Line, 1850, там же плюс аккумулятора и две земли (сигнальная и просто масса). Это по стандарту, остальные 7 из 16 выводов – ОЕМ, то есть каждый производитель эти выводы использует как ему заблагорассудится. Но и стандартизованные выводы зачастую имеют расширенные, продвинутые функции. Например, MS_CAN может быть HS_CAN, HS_CAN может быть на других пинах (неоговоренных стандартом) наряду со стандартным MS_CAN., Пин №1 может быть: у форда – SW_CAN, у WAGов – IGN_ON, у КИА – check_engene. И т.д. Все интерфейсы также не были стационарны в своём развитии: тот же интерфейс K –Line изначально был однонаправленным, сейчас он двунаправленный., Бодрейт CAN интерфейса также растёт. Вообще, подавляющее большинство европейских автомобилей 90-х и начала нулевых вполне себе можно было продиагностировать имея только K –Line, а большинство американских – только SAE1850. В настоящее время общий вектор развития – это всё более широкое применение CAN, повышение скорости обмена., всё чаще видим и однопроводный SW_CAN.
Существует мнение, что англоязычный программист сидя на профильных(англоязычных же) форумах, закопавшись в тексты стандартов, может за “максимум 4-5 месяцев” построить универсальный движок, который со всем этим разнообразием справится. На практике это не так. Всё равно возникает потребность сниферить каждую новую машину., иногда даже одну и ту же машину, но в разных комплектациях. И получается, что заявляют о 800-900 типах поддерживаемых автомобилей, а на практике 10-20 реально оттестированных. И это система, –в РФ автору известны, по-крайней мере, 3 команды разработчиков, пошедших по этому тернистому пути и все с одинаково плачевным результатом: нужно сниферить/кастомизировать каждую модель автомобиля, а ресурсов/средств на это нет. И причина этого вот в чем: стандарт-стандартом, а каждый производитель когда вынужденно, а когда и преднамеренно вносит в свою реализацию что-то своё, стандартом не описанное. Кроме того, не все данные по-умолчанию присутствуют на разъёме. Есть данные, появление которых нужно инициировать (дать тому или иному блоку автомобиля команду передать нужные данные).
И вот тут на сцену выходят интерпретаторы шины OBDII. Это микроконтроллер, с набором интерфейсов, соответствующих стандарту J1962M, переводящий всё многообразие данных на разных интерфейсах диагностических разъёмов в язык, более удобный для приложений, например для приложений диагностики. Иными словами, всё многообразие протоколов расшифровывается теперь приложением, не важно, на чём работающим – на компьютере с Windows или на планшете/смартфоне. Первым массовым интерпретатором OBDII с открытым протоколом стал ELM327. Это 8-ми битный микроконтроллер MicroChip PIC18F2580. Пусть читателя не удивляет тот факт, что этот микроконтроллер является массовым прибором общего применения. Прошивка как раз проприентарная и реальная стоимость “PIC18F2580+FirmWare” составляет внушительные 19-24$. То есть сканер, выполненный на “честном” чипе ELM327 не может стоить меньше, чем 50 вечнозелёных президентов. Откуда же на рынке такое разнообразие сканеров/адаптеров с ценами “от 1000рублей”, спросите Вы? А это наши китайские друзья постарались! Уж как они клонировали этот чип, травили кристалл послойно или сниферили денно и ночно – оставим за кадром. Но факт остаётся: на рынке появились клоны (для справки: 8-ми битный контроллер MicroChip в оптовых закупках ныне стоит меньше доллара). Другое дело, насколько правильно эти клоны работают. Есть мнение, что “пока народ покупает дешёвые адаптеры, автоэлектрики без работы не останутся”. То есть покупает человек адаптер с мыслью “чего-нибудь там перезалить или настроить”., а результат получает иной, ну, то есть, не тот, на который рассчитывал. Ну например, вдруг начинает всеми своими огоньками мультимедиа-система моргать, или выскакивает ошибка, или вообще коробка в аварийный режим переходит. И хорошо, если без серьезных последствий – в большинстве случаев специалист с профессиональным оборудованием вылечит железного коня. Но случается и иначе. Здесь могут смешаться сразу несколько факторов: неправильный адаптер(клон), неправильный софт, неправильная связка адаптер+софт, ну и “кривые” руки тоже свою роль сыграть могут. Замечу, что адаптер на честном чипе от производителя с правильным софтом к плачевным результатам не приведёт, по крайней мере, автору о таких случаях не известно.
А что можно сделать с помощью такого адаптера? Ну наверное, самый частый случай, положить в бардачок “на всякий случай”. Посмотреть и сбросить ошибку, коль скоро та появится. Одометр сбросить перед продажей авто, или наоборот, “накрутить” если ты наёмный водитель. Включить какую-либо опцию в автомобиле, которая по-умолчанию выключена, а у официального дилера эта услуга платная. Обновление прошивок и переконфигурирование электронных блоков, всё-таки оставим специалистам, но большинство адаптеров позволяют и это. Кому-то понравится просто иметь больше информации о параметрах работы двигателя и других систем в виде красивой графики на планшете или смартфоне. Часто встречаются на дороге, почему-то таксисты, у которых андроид-планшет установлен перед приборной панелью и полностью её перекрывает, так вот: планшет этот скорее всего подключен к такому адаптеру по блютузу или по Wi-Fi. Есть и ещё целый ряд применений, это использование такого адаптера совместно с телематическим прибором (трекером) или сигнализацией. Подключение к диагностическому разъёму посредством такого адаптера позволяет малой кровью снимать данные, необходимые для мониторинга. В большинстве случаев такой метод обходится разработчику дешевле, да и сама установка проще, ведь исчезает необходимость в установке различных датчиков, всё (ну или почти всё) можно снять с OBDII.
Другое дело, что возможности чипа в настоящее время уже недостаточны и для использования в современных автомобилях. Где-то в середине нулевых годов пошли вверх скорости обмена по шине CAN, появился SW_CAN. Но самое главное: возросла длина (количество символов) в кодовых словах. И если аппаратно можно, через реле или банальный тумблер, приляпать к ELM327 костыли, которые позволят работать и с MS и с HS да и с SW релизами CAN, то на длинные кодовые слова вычислительной мощности PIC18F2580 с его 4 MIPS явно недостаточно. К слову, последняя версия ELM327 (V1.4) датируется 2009 годом. И использовать этот чип без “костылей” можно только для автомобилей выпуска до середины нулевых. Так что же делать. Выход, как ни странно есть, причём не один.
CAN-LOG, тоже интерпретатор, но не полного набора интерфейсов OBDII, а двух CAN шин. Оказывается, этого достаточно, чтобы в большинстве случаев снять всю необходимую информацию. Правда, далеко не у всех автомобилей обе CAN шины выведены на диагностический разъём. Значит, придётся подключаться под панелью приборов. А это не всегда приемлемо из соображений сохранения гарантии, правда есть вариант беспроводного съёма информации с шины, но это ещё дороже, да и достоверность снятых данных не 100%. Можно использовать как готовый прибор, подключив его посредством УАРТа или RS232, так и просто чип, интегрировав его на плату устройства с небольшим количеством дискретных компонентов. Стоимость прибора – конечно выше, чем стоимость аутентичного ELM327, но это компенсируется огромным списком поддерживаемых автомобилей и функций. Причём в список поддерживаемых автомобилей включены не только легковые автомобили, но и также грузовики, строительная, дорожная и сельскохозяйственная техника. CAN-LOG работает несколько иначе, чем ELM327 и его клоны. При подключении к шинам автомобиля необходимо выбрать и установить номер программы, соответствующей автомобилю. И это удобно, т.к. разработчику не нужно вникать во всё многообразие протоколов. (В ELM327 выбор автомобиля и тонкая настройка чипа отданы на откуп приложению).
Существуют и иные решения, позволяющие легко и изящно снимать данные с диагностического разъёма. Ну а вопрос о том, можно ли приручить штатный диагностический разъём, и как, каждый разработчик решит сам. Для парка автомобилей одной марки, можно попытаться написать свой софт, если конечно производитель не закрывает протоколы. А если телематическое устройство будет устанавливаться на разные модели, то разумнее использовать какой-либо из OBDII интерпретаторов.

Друзья поймите, вы никак не можете купить себе OBD2 или OBD2 ELM327 (хотя второй иногда так называют китайцы), ведь одно является разъемом для диагностики, а второй адаптером для считывания ошибок. И ЭТО НЕ ОДНО И ТОЖЕ! Давайте все по порядку
Что такое OBD2?
Если расшифровать «OBD» с английского языка, то получается On-Board Diagnostic, а цифра «2», обозначает level 2, то есть уже второй релиз. OBD1 возник еще в 90-х годах в США, по требованиям властей Калифорнии.
Первое поколение было «заточено» в основном на сбор данных по экологии, то есть в машине нужен был разъем, к которому можно было легко и просто подключиться специальным оборудованием и «считать» данные по выбросам в окружающую среду. Также должны были показываться ошибки систем автомобиля, которые приводили к увеличению выбросов. Например, неисправность системы зажигания, подачи топлива и т.д. Вообще OBD1, был достаточно скудным по характеристикам

В 1996 году (в США) вводят новый стандарт OBD2, он стал обязательным для всех производителей автомобилей, причем стал универсальным. То есть сама форма разъема одинакова на всех авто (похожа на трапецию с закругленными углами).

В Европе этот разъем стал появляться в 2001 году для бензиновых моторов, а в 2003 – для дизельных.
Нужно отметить, что этот изначально, разъем не был обязательным на Европейских, Японских, Корейских и многих других авто. Поэтому на некоторых старых машинах его может и не быть.
НО уже с 2008 годов, этот разъем стал обязательным для всех стран, в том числе и для Российских авто.
Для чего используется?
Сейчас OBD2 это достаточно мощный инструмент диагностики, считывания данных, сброса ошибок и т.д. Причем зачастую вы можете сделать это сами, без помощи каких-либо станций и прочих мастеров.
Например, если у вас вылезла ошибка CHECK-ENGINE, то вы можете легко и просто «прочитать» ее код, далее при помощи специальных справочников (ну или банально интернета), вы можете найти, что вызвало эту ошибку. Удалить причину самому или уже ехать на СТО зная, что у вас неисправно.

Например – «пропуски системы зажигания в таком-то цилиндре», понятно, что не работает либо свеча, либо катушка зажигания.
Зачастую ошибки (даже не глобальные) могут переводить автомобиль в аварийный режим, и вы не сможете передвигаться нормальная, мощность машины режется. Так вот, сброс такой ошибки поможет вам банально доехать до сервиса.
Еще одним из полезных особенностей является контроль за различными характеристиками, скажем температура двигателя или АКПП (для нее это важно), расход топлива, скорость, разогрев катализатора, угол опережения зажигания, данные с датчиков кислорода и т.д. Благодаря этому вы сможете понять в каком состоянии у вас различные агрегаты (скажем катализатор). Возможности сейчас действительно впечатляют.

НУ и на верное последнее, многие могут прошивать ЭБУ, через этот разъем (не на всех авто это удается но все же). Также вы можете разблокировать те или иные функции, скажем на авто RENAULT, функции на бюджетных комплектациях машин, специально выключают (данные спидометров, поднятие стеклоподъемников, настройка света и т.д.). Так вот пир помощи OBD2 и специальных программ и устройств вы можете все это включить.
Где находится?
Нет общего стандарта, и засунуть этот разъем могут куда угодно. Например у меня на ОПТИМЕ он находится внизу передней панели, за специальной крышкой. То есть открыл и только после этого увидел.
НА других авто, например VOLKSWAGEN или FORD может находиться под рулем , нужно заглянуть под него и сразу увидите.

В третьих авто, может находиться в бардачке, сбоку или где то сверху.
Как видите, определенного места нет. Посмотрите под панелью, под рулем, в бардачке, это самые распространенные места.
OBD2 и ELM327
И ELM327 – это диагностический сканер, который подключается в этот разъем (его купить на АЛИЭКСПРЕСС МОЖНО)!

Надеюсь теперь такие вопросы типа – купил себе OBD2 как им пользоваться? Больше мне не будут задавать!
Вообще сам разъем вам ни о чем не расскажет (это просто «розетка», если провести аналогию, вам нужна еще и «вилка»). Чтобы прочитать ошибки, вам нужно специальное оборудование + программное обеспечение (которое вы можете поставить и на смартфон, и на компьютер и неважно под какими системами они работают, я имею в виду MAC, ANDROID или WINDOWS)
Есть как специализированные сканеры, которые поддерживают кучу ЭБУ, почти всех производителей, в них уже встроенные все базы (причем их каждый год обновляют) в них есть и свое программное обеспечение. ТО есть такой аппарат уже готовый к бою! НО стоит он ОЧЕНЬ дорого, если и по 60 000 а есть и по 200 000 рублей. Все зависит от функционала и возможностей.

Однако есть бюджетные варианты, типа ELM327, который продается на «АЛИ» и стоит копейки. Вы его покупаете, ставите специальные программу себе на смартфон, подключаете его в OBD2 разъем, и считываете параметры или ошибки.
У меня есть про это подробное видео, посмотрите
Единственное, что поддерживать он может не все авто, база не такая широкая (как у платных сканеров). ДА и могут отличаться по версиям, есть 1,5 и 2,1 (нужно брать именно 1,5, потому как ее содрали с оригинального Канадского сканера).
Про это тоже есть видео можете посмотреть.
В целом ничего сложного и наверное уже поняли чем отличаются OBD2 (розетка) и ELM327 (вилка).
НА этом заканчиваю, думаю, мои материалы были вам полезны. Читайте мой сайт, подписываетесь на канал в YOUTUBE. Искренне ваш АВТОБЛОГГЕР.
(18 голосов, средний: 4,94 из 5)
OBD расшифровывается как – On Board Diagnostics (Система бортовой диагностики). С определённого момента автомобили начали оснащаться электронными блоками управления в частности блоками управления двигателем, а в последующем и другие системы получили свои блоки управления. Эти блоки поддерживают так называемую , то есть они проверяют работу соответствующих систем и если что-то работает неправильно, то они засвечивают контрольные лампы check engine и могут выдавать диагностическую информацию через сканеры диагностики авто.
Первый стандарт OBD был принят в Америке в 1986 году. Он был необходим для возможности проверки автомобиля на разного рода неисправности в работе системы, которые могли приводить к избыточной токсичности и превышать заданные нормы указанные при изготовлении автомобиля.
Первый OBD стандарт регламентировал наличие таких систем, но никак не регламентировал их исполнение. В связи с этим, каждый автопроизводитель использовал свой собственный протокол и свои собственные разъемы диагностики.

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

Стандарт OBD2 предполагает наличие 16 разъёма. Данный стандарт SAE J1962, его форму, количество и какие именно протоколы должны быть на соответствующих .
SAE J1850 PWM – применяется в автомобилях марок Ford, Jaguar и Mazda.
SAE J1850 VPW – General Motors (GM) и Chrysler
L-линия, К-линия ISO 9141-2 – Acura, Honda, Infinity, Lexus, Nissan, Toyota, Audi, BMW, Mercedes, MINI, Porsche, некоторые модели WV и др., ранние модели Chrysler, Dodge, Eagle, Plymouth, ВАЗ, ГАЗ, УАЗ, ЗАЗ, Chevrolet, Daewoo.
J2234 (ISO 15765) – используется на большинстве современных автомобилях
При наличии такого стандарта стало возможным использование одного универсального сканера для всех автомобилей, одним из которых является ELM327.
Вернуться к списку публикаций





