… или теоретическая. Ибо как завещали умные люди: “метод тыка хорошо, но пропустишь много интересного”.
Итак, как мы можем узнать, что происходит с машиной?
Способ первый, он же в большинстве случаев единственный: приборная панель. Скорость, обороты двигателя, сколько бензина в баке и немного всяких непонятных значков. Если загорелась лампочка “джекичан”, то ругаемся и пытаемся включением-выключением зажигания погасить ее. Если не удается, то едем в сервис к суровым дядькам, которым либо платим денег, либо доказываем, что она сломалась сама, а мы не причем и почините по гарантии.
Есть подспособ, применяемый в гламурных иномарках: там есть отдельный дисплейчик бортового компьютера, который рассказывает о погоде за окном и количестве оставшихся километров на литр топлива. И если что случается, то с помощью некоторых действия можно увидеть что-нибудь типа “Gearbox fault” или “Oil level low”. Эту надпись можно продиктовать мастеру в сервисе даже по телефону и получить предварительный диагноз. Или даже рассказ, как починить.
Владельцы более обделенных автомобилей обычно покупают бортовые компьютеры (мультитроникс, престиж, штат и так далее), подключают к диагностической колодке машины и начинают смотреть на кучу параметров: от температуры охлаждающей жидкости до напряжения на катализаторе. Продвинутые компьютеры умеют считать расход топлива, напоминать о смене масла и орать дурным голосом при выходе какого-либо параметра за пределы нормы.
Эстетствующим нищебродам, которым не хватило денег на иномарку с бортовым компьютером или которым не нравятся существующие компьютеры, рынок предлагает другой вариант: включение в диагностический разъем адаптера и просмотр примерно тех же параметров на экране мобильника, планшета или ноутбука. Внешне ничего нового в машине, а попытаться узнать причину джекичана можно. Спрос породил предложение: есть адаптеры с bluetooth, wifi и usb. Короче на любой вкус и кошелек. И пофиг, что они сделаны на одном и том же чипе. Минус: необходимо хоть чуть-чуть поизучать специальные программы и помучаться, что бы любимый айфончик понял, что от него хотят.
Отдельной стайкой стоят владельцы экзотических или старых машин. Там либо вовсе нет диагностических разъемов, либо они нетрадиционных форм и размеров. Но с этой группой я знаком очень слабо, поэтому дальше касаться не буду.
И наконец, большие и страшные дядьки в сервисах с компьютерами. Они отработанным движением втыкают кабель от компьютера в потроха машины, с умным видом тыкают пальцем по кнопкам и непререкаемым тоном выносят вердикт. Но в 99% случаев они способны только озвучить написанное на экране компьютера или с озабоченным видом произнести “что-то мне не нравится этот параметр, надо поменять ХУЗ”. Оставшийся процент я отношу к настоящим диагностам, которые на самом деле понимают, почему компьютер может показывать то или иное и отвечают за свои слова.
Где-то еще рядом обитают чиповщики, прошивальщики и тюнингаторы. Те, которые заставляют мозги машины работать не так, как их запрограммировали на заводе. Их сама работа заставляет чуть аккуратней относиться к показываемому на экране компьютера, ибо если он спалит мозги машине, то он ставит новые за свои деньги. Но как и везде, есть и тупые обезьяны, и понимающие товарищи. Различить их очень сложно, ибо слишком много мифов вокруг этой области, которые все всеми силами поддерживают.
В какую категорию себя отнести, решайте сами. Я постараюсь описать все с точки зрения человека, который болтается где-то посредине тюнингаторов и диагностов. То есть я понимаю, что “электрика – это наука о контактах” и “компьютер – это просто”, но поддержать разговор про цикловое наполнения цилиндров не смогу. Учитывайте, если что.
Итак, воткнувшись в любую современную машину, мы можем получить аж два типа соединения: напрямую с мозгом/вебастой/коробкой/ещечем и широковещательное сразу всех со всеми. Давайте посмотрим еще раз на типовую картинку OBD-2 разъема.
Те, что помечены CAN и Bus – широковещательные. А остальные – прямые, direct и так далее.
Чем они отличаются? В широковещательных каналах одновременно присутствует множество устройств, которые по каким-то правилам обмениваются данными. В прямых только два: приемник и передатчик. В случае появления третьего весь обмен данными стопорится намертво.
Маленькое лирическое отступление. На рынке вы можете найти много OBD-2 разветвителей. Дескать, позволяют подключать много адаптеров сразу. Выглядят они так.
Но почему-то у некоторых они не работают. Матерые уазоводы еще вспомнят те времена, когда у уазика было два обд разъема: под капотом и в салоне. И при попытке подключения адаптера при работающем бортовом компьютере либо не работало все, либо работало что-то одно. Почему? Давайте глянем на схему первого попавшегося, ибо они все равно все по одной схеме сделаны.
Видите проводки, которые перекрещиваются? Это витая пара, она же twisted pair на инглише. Это именно широковещательные каналы. Остальные, которые напрямую соединены – прямые.
В итоге если мы берем два адаптера, которые хотят пообщаться напрямую с мозгом машины и включаем в этот разъем, то получаем фигу. Мозг ожидает разговора с одним адаптером, а ему подсовывают два. Он просто не знает, кому отвечать. И если адаптеры честные, то они оба затыкаются. А если нет, то кто кого переорет. Но в общем случае ничего хорошего не получится.
Зачем же нужны такие удлинители-разветвители? Взгляните еще раз на обозначение выводов разъема. Видите контакты, которые помечены “Vendor Option” (оно же типа зарезервировано для производителя)? Не скажу за все машины, но LandRover выводит (выводил точно, сейчас не знаю) на них выводы с мозгов вебасты и коробки. И в результате к одному разъему можно подключить обычный адаптер, а к другому – специализированный. Они друг другу не мешают, все счастливы и довольны. Или к обоим подключить адаптеры, которые работают только по CAN шине и снимать с обоих всякие данные. В общем, случаи применения довольно специфические и нужны редко кому. Но знать о такой возможности надо.
Теперь что можно воткнуть в этот разъем? Вы не поверите, но все, что можно вставить в этом разъем – тупые преобразователи. Тупые от слова “ничего сами делать не умеют”. Все, что они умеют это отдать данные, полученные от машины, в более-менее понятном виде в компьютер. Ну вернуть данные обратно при необходимости.
Что может купить простой автомобилист? Это всякие адаптеры, сделанные на основе чипа ELM327 и так называемые K/L-line (Написаний много, но все начинаются на букву K и имеют в названии буквы про line) адаптеры.
Принцип работы ELM-327 простой. Он понимает всякие протоколы, по которым машина умеет общаться и предоставляет простой и текстовый интерфейс для программок. В итоге производителю адаптера достаточно приделать микросхемку, отвечающую за bluetooth, com или wifi и готов адаптер на продажу. Программисту достаточно взять на сайте производителя чипа документацию и вуаля, “диагностический” софт готов. Я дальше расскажу, как можно превратить любой компьютер или смартфон с “терминалкой” в диагностический компьютер. Минус тут один, но существенный. Производитель ELM327 не может знать всяких тонкостей, используемых производителями, поэтому ориентируется на стандарты. А довольный производитель (привет LandRover и BMW) добавит какую-нибудь опцию и все, для доступа нужен специальный адаптер за 100500 денег.
К-лайн адаптер работает еще проще. Он просто преобразует напряжения сигналов от машины в удобоваримые для компьютера. Всё, больше он ничего не делает. Из-за тотального исчезновения com портов (это такие же разъемы как для монитора, только с поменяной местами вилкой и розеткой) с компьютеров, в схему обычно добавляют преобразователь com-usb или com-wifi. Повторюсь, вся, абсолютно вся логика общения с машиной делается компьютером. В результате стоит сменить программу и один и тот же набор железа будет способен работать с машиной другого производителя.
Есть еще редко встречающиеся can-адаптеры в “чистом виде”, но их я видел только в виде наборов для увлекающихся электронщиков (в гугле наберите arduino can bus adapter) или в составе “профессиональных” кабелей.
Чем же отличаются адаптеры, используемые профессионалами от тех, что может купить за 10 баксов любой желающий? Во-первых, банальной механической прочностью и влагозащитой. Ведь большинство народа работает в условиях, которые далеки от стерильных. Во-вторых, большей электрической защитой. Они не боятся статики, переплюсовок, коротких замыканий и прочих ужасов современной электроники. И наконец, во многие из них ставят маленькие, специализированные микрокомпьютеры, которые занимаются только тем, что общаются с мозгами, выдерживая всякие параметры очень точно. Ведь как с обычным компьютером? Начнем перепрошивку мозгов, а винда захочет жестким диском пошуршать или окошко обновить. А буфер у компьютерных портов маленький, обычно 16 байт всего. Р-р-а-з и кончается. А мозги в режиме перепрошивки тупые, таких приколов не понимают. Вот и получаются кирпичики от 7-8 тысяч рублей ценой. Нет, и их можно вернуть к жизни, но не со знаниями обычных гаражных мастеров. Но если глядеть сверху, то “их” адаптеры от “наших” не отличаются и 2х долларовым “ка-лайном” можно успешно прошить вазовские мозги.
Осталось немного рассказать про протоколы и можно переходить к программной части. Протокол – это просто набор правил, которые должны соблюдать все стороны. Туда входит все, начиная от уровней напряжений в проводах и заканчивая описанием того, как будут передаваться всякие значения и команды. Лично я считаю, что туда лезть совершенно смысла нет, ибо там епархия людей с паяльниками и осциллографами. В общем, там делать вроде нечего, но знать общие принципы полезно.
Из интересного для нас внутри машины есть только CAN-шина и CAN-протокол. Интересного во всем этом ровно три вещи:
1. На CAN-шине может быть много (а с всякими усилителями еще больше) устройств.
2. Никаких методов подтверждения правильности устройства на CAN шине нет.
3. CAN – широковещательный протокол.
Пойдем с конца. Что же все-таки значит широковещательный? Это значит, что внутри CAN все выглядит примерно так “Я мозги, обороты двигателя 1000. Я абс, левое переднее колесо буксует. Я мозги, температура охлаждающей жидкости 95 градусов. Я коробка, включила 4ю передачу”. Каждый пакетик занимает один и тот же объем в шине (для электронщиков: размер пакета одинаковый. 11, 29 или 64 бита) и летят они по шине от 10 тысяч пакетиков в секунду (250КБит/с) до … в общем до дофига. Поэтому не смотря на такую простоту сообщений, скорости хватает, что бы описать все происходящее в автомобиле, от работы двигателя до мигания поворотников. Правда, такое пока только в гламурных машинах, которые даже чихнуть не могут без компьютеров. В обычных в CAN-шине живут двигатель, коробка и всякие абс с климатами.
Рассмотрим простой пример: я хочу сделать световой индикатор необходимости включения следующей передачи. Ну как в формуле-1, когда двигатель подходит к отсечке, загорается зеленый-желтый-красный. Что делают обычно? Цепляются к форсункам, датчикам, разбирают приборку и занимаются прочими извращениями. Я же тупо возьму микросхему-адаптер для CAN, запрограммирую ее “только слушай, фильтруй мне все сообщения о оборотах двигателя” и выведу ее вывод на другую микросхему, которая будет мигать светодиодиками. Всё. Полученная схема будет работоспособна с абсолютно любым автомобилем, выпущенным после 2002 (или 2004 – не помню) года. Удобно? Не то слово!
Теперь про никакого подтверждения правильности устройств в CAN шине. Это значит что любое устройство которое работает с шиной, считает что все данные, поступающие по ней – правильные. То есть защиты “от дурака” нет (ну или почти нет). Именно эту дырку используют современные “моталки пробега”. Их просто вставляют в OBD-2 разъем и они начинают орать в шину “я коробка, скорость машины 4000км/ч”. Не работает 4000км/ч? Будет орать про 200км/ч: пара нажатий на кнопку. И всё: кому положено считать скорость и пробег (от спидометра на приборке до “секретных” хранилищ в мозгах) начинают “мотать”. А у машины всего-лишь включено зажигание …
И наконец, про много устройств на шине. Тут думаю все понятно: сколько повесим, столько и будет. Пожелаем, что бы у нас было 20 тахометров – будет. “Кричащему” на шине абсолютно все равно, сколько его услышат. Ему главное проорать.
Ну, вот кажется про теорию всё. Теперь можно переходить к играм с машиной. Я пойду писать, а вы вопросы по теорию задавайте.
У меня нет даже расходомера топлива… Пикабы рулят!
У меня нет даже расходомера топлива… Пикабы рулят!