Ни для кого не секрет, что в современных автомобилях все системы под завязку забиты различной электроникой, даже простой стеклоподъемник имеет собственный микроконтроллер и адрес в общей сети. Мне, как интересующемуся владельцу, стало интересно, что же можно сделать имея просто доступ к разъему OBD и ничего более.

Все описанное в статье относится к автомобилю 2008 года (Mitsubishi Lancer), но как показала практика, спустя 10 лет у производителя ничего не изменилось и все функции продолжают использоваться и работать на современных авто.

Строение сети в автомобиле изображено на картинке:

image

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

В открытом доступе лежит ПО для дилерских центров под названием MUT III. Изучив базы данных из него, можно найти всю интересующую нас информацию.

О адресах (запрос-ответ) в CAN сети:

image

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

image

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

Взглянув в таблицу, узнаем, что нужны байты 2 и 3.

image

Значение в int16. 0xFFEA = -22, умножая на коэффициент 0,04375 получаем угол поворота руля -0,9625 градуса.

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

image


Хорошо, все что хотели мы узнали, а какая от этого польза? Вот если что-нибудь изменить/включить/отключить…

Простой пример. В блоке управления автоматической коробкой передач есть программный счетчик уровня старения масла и при накоплении определенного порогового значения на экране бк появляется сообщение о том, что необходимо произвести обслуживание трансмиссии. Масло поменяли, а сообщение продолжает отображаться на экране, ведь счетчик никто не сбросил и сбросить может только дилерский сканер MUT-III (который стоит около 1000$, не каждый может себе такое позволить) и некоторые программы (тоже не бесплатные). Все в тех же таблицах можно найти команду под говорящим само за себя названием CLEAR_CVT_oil_degradation_level_Start. Можно злобно посмеяться в сторону ОД и самому сбросить этот злополучный счетчик. Отправляем команду 3103 в блок CVT и… получаем в ответ 7F3133.

Небольшое отступление. Почти во всех автомобилях для проведения диагностики и обслуживания используется механизм 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.

image

Повторив обмен seed-key с алгоритмом из прошивки получим в ответ 6702 34, где 34 это «Доступ разрешен». После этого команда на сброс уровня деградации масла успешно отрабатывает и возвращает не negative response code, а положительный ответ 7103 01 и счетчик успешно сбрасывается.

Таким образом, через OBD разъем можно делать с автомобилем практически все: менять VIN номера в блоках, настраивать кодировку (конфигурацию), менее чем за секунду отключить иммобилайзер, очищать информацию об ошибках, вводить блок в состояние загрузки, когда можно загрузить в RAM контроллера любой код и выполнить его. Система безопасности у японцев слегка хромает.

Пример изменения конфигурации на видео:


Статья написана исключительно в ознакомительных целях. Любое вмешательство в электронные блоки управления автомобиля может стать для них последним. Всем хорошего дня!

Комментарии (58)


  1. slashd
    19.04.2019 10:55

    А где можно получить эту самую прошивку для анализа?


    1. kolyandex Автор
      19.04.2019 10:58

      Слить с блока программатором. Защиты от чтения там нет.


  1. Unkn0wnUserName
    19.04.2019 11:19

    главное — не послать не туда не ту команду…

    кое-кто имел опыт убивания блока управления ЦВТ :)


  1. Unkn0wnUserName
    19.04.2019 11:28

    Повторив обмен seed-key с алгоритмом из прошивки получим в ответ 6702 34, где 34 это «Доступ разрешен».


    А можно поинтересоваться алгоритмом?


    1. emmibox
      19.04.2019 14:03

      так он есть же на картинке статье…


      1. esaulenka
        22.04.2019 17:31

        Там константы замазаны.

        Впрочем, можно поснимать штук н-цать логов с родного MUT-3 и попробовать перебрать значения. Там, насколько я понимаю, 16 (начальное значение) + 8 (множитель 1) + 8 (множитель 2) бит перебирать, по современным меркам — любой калькулятор справится.

        Автору в любом случае спасибо, занятная информация.


        1. esaulenka
          22.04.2019 19:18

          Получилось даже смешнее. Смотрим видео в этой статье, ищем мануал на ассемблер этого странного процессора (lsr2, lsl2 я никогда раньше не встречал), и… оп! готово! Прямо не вставая с дивана.

          PS остался главный вопрос. Зачем я этим занимался?.. Оно ж мне нафиг не надо…


  1. inoyakaigor
    19.04.2019 12:15

    Вспомнился тут тетрис в Газели
    www.youtube.com/embed/swn4xJm-TrE


  1. Buzzzzer
    19.04.2019 12:18

    Когда у меня был Lancer X, я его настраивал через Lexia 3, купленную у китайцев.
    Еще по такому же протоколу работает ряд французов.
    С одним пареньком, который написал свою софтинку под Windows даже хотели написать Android-программу для Lexia через usb-otg.
    Я научился обмениваться «приветствием» с Lexia, определять машину.
    Но дальше, по некоторым причинам, всё заглохло и я передал исходники.
    Не знаю, чем закончилось дело…


    1. kolyandex Автор
      19.04.2019 12:24

      Еще по такому же протоколу работает ряд французов.

      А именно Peugeot 4007/4008 и Citroen C-crosser (это те же аутлендеры, только со своим шильдиком)


      1. Unkn0wnUserName
        19.04.2019 12:49

        Есть еще Dodge caliber и Jeep Compass, построенные на той же базе. Но там есть некоторые отличия… иногда неприятные.


  1. VioletGiraffe
    19.04.2019 13:12

    Пользуясь случаем, хочу спросить: кто-то пытался программно реализовывать на микроконтроллере LIN slave через GPIO, без хардварных трансиверов? Встала сейчас такая задача с целью ремонта сдохшего электронного блока, но очень мало инфы по этой теме. Обычно под Ардуино для любой ерунды есть готовая библиотека, а для LIN нет, хотя это же очень интересно и потенциально открывает возможности интересных доработок.


    1. JerleShannara
      19.04.2019 16:35

      А зачем оно надо? Берем нормальный микроконтроллер, берем RS232-LIN преобразователь и спокойно работаем по USART


      1. VioletGiraffe
        19.04.2019 16:45

        Преобразователь — лишняя железка, которую нужно искать, заказывать, ждать, осваивать программирование, ещё и лишняя точка отказа. Хотелось избежать. Там 20 кбит/с, не понимаю, в чём проблема сэмплировать линию через GPIO. Единственное, что — посылать данные неудобно, надо какой-то ключевой транзистор изобретать.


        1. JerleShannara
          19.04.2019 17:39
          +1

          Преобразователь это железка, которую надо тупо подключить, и ничего осваивать не надо, т.к. далее идёт просто преобразование RS232 в LIN. Кроме того у МК спокойно бывают UARTы, которые из коробки могут работать в UART/USART/LIN/ISO7816 и т.д.
          А если так беспокоит надежность, то возникает вопрос: а почему вообще взгляд был на ардуино, там и код и железо весьма паршивого качества.


    1. Dima_Sharihin
      19.04.2019 16:52

      Хардварный трансивер стоит копейки, геморроя не в пример меньше, зачем оно вам.


      1. VioletGiraffe
        19.04.2019 17:12

        Большое спасибо, изучу даташит. Беглый запрос в гугле показал, что купить их у нас похоже, негде; может, какой-то другой аналог меня спасёт.


        1. GloooM
          19.04.2019 21:35
          +1

          Можете искать трансиверы для k-line, физически это тоже самое что и LIN шина, ISO 9141 интерфейс. TJA1020 или L9637 из популярных.


          1. esaulenka
            22.04.2019 17:42

            Вот да, TJA1020 продают в чип-дипе.
            www.chipdip.ru/product/tja1020t-cm.118

            Если не хочется заморочек с ЛУТом, можно поискать LIN Shield у китайцев. Кажется, я что-то подобное видел.


        1. Dima_Sharihin
          20.04.2019 10:31

          Если проявите минимальную активность на сайте e2e.ti.com (а именно: зададите вопрос по существу, вам на него ответят и вы пометите ответ, как полезный и так несколько раз), то для TI Store дают купон на бесплатную доставку (доставляют они обычно FedEx'ом, а это не в пример молниеносно быстрее, чем покупать что либо на алиэкспрессе, обычно за неделю из штатов до стола доезжает)


    1. GloooM
      19.04.2019 21:30
      +1

      Трансивер это штука которая просто преобразует уровни +12 вольт LIN шины в rx/tx на 3-5 вольт пригодные для подключения к МК. Собрать трансивер можно хоть из рассыпухи на одном транзисторе и нескольких резисторах.
      А вот именно реализация протокола уже другое дело, в LIN используется по сути тот же уарт, только чутка изменен, можно использовать железный уарт в МК, можно софтварное все изобразить. Во многих современных МК штатный уарт даже поддерживает break и синхронизацию по sync, но в целом если не стоит задачи сделать все по феншую, то можно и обычный уарт из ардуины просто игнорировать битые кадры из-за brake.


    1. esaulenka
      22.04.2019 17:48

      Вы точно пробовали что-то искать по теме?
      Вот, например: github.com/zapta/linbus (сходу, кстати, не вызывает приступов отвращения, в отличие от большей части ардуино-кода).


      1. VioletGiraffe
        22.04.2019 20:36

        Точно пробовал искать, зуб даю. Кажется, я видел этот проект, но здесь же целая кастомная железка. Я искал реализацию для голой стоковой Ардуино, ведь явно же 20 кбит/с по единственному проводу можно легко обрабатывать одной ногой GPIO!
        P. S. Если бы железку можно было заказать готовой, я бы заказал и не морочил голову. но за вменяемые деньги и любительского уровня я подобного не видел, видел более индустриальные анализаторы от $100.
        P. P. S. Вот это представляет интерес, попытаюсь выяснить, сколько будет стоить доставка.


        1. esaulenka
          22.04.2019 20:56

          Это необязательно кастомная железка. Внутри там такая же атмега, как у всех остальных ардуин. Ищете где-то модуль с трансивером (или делаете самостоятельно), курите код товарища zapta, и всё — устройство готово.

          При любви к нетрадиционным занятиям в гамаке, можно, конечно, и на GPIO сделать (откуда, кстати, цифра 20 кбит/с? я видел 4800, 9600 и 19200. Ещё 10400 есть, но это не LIN), но очень советую пользоваться по возможности аппаратными модулями. Особенно если хоть о какой-то надёжности говорить.


          1. VioletGiraffe
            22.04.2019 22:55

            20 — потолок по спецификации LIN. У товарища zapta, к сожалению, использован экзотический трансивер. Хочу попробовать ширпотребный TJA1021, но смущает, что кроме упомянутого zapta практически ничего и не находится по теме LIN + Arduino, а именно с TJA1021 так и вовсе ничего, хотя сама микруха довольно известна. Чувствую себя первопроходцем, а это верный признак, что ступаю на поле граблей.


            1. esaulenka
              22.04.2019 23:47

              Предлагаю всё-таки получше разобраться в теме, благо даташиты в свободном доступе, спецификация на LIN тоже (повторю, кстати, вопрос: Вам точно LIN нужен?).
              Потому что сразу выяснится, что LIN — это такой однопроводный UART (со специфичным признаком «начало пакета», правда), а все трансиверы — суть трансляторы уровня с процессорных 3/5 вольт до автомобильных 12+. Ну ещё там есть всякие плюшки, типа защиты от КЗ, переполюсовки, статики. Иногда бывает ещё встроенный стабилизатор (для питания того самого контроллера) и защита от подвисания контроллера (в виде ограничения на макс. длительность dominant level, чтоб шину напрочь не завесить).


              1. VioletGiraffe
                22.04.2019 23:56

                Я понимаю всё, что вы написали, спецификацию LIN читал (правда, по диагонали). Мораль в том, что все трансиверы должны быть с логически-цифровой точки зрения одинаковы?

                Я не нашёл достоверной информации, что нужен именно LIN, но есть косвенные на то указания, например, какой-то training мануал моего автопроизводителя примерно тех же времён, что и моя машина, где сказано именно LIN, и приводится довольно детальная схема работы протокола и шины.


                1. esaulenka
                  23.04.2019 11:24

                  Я понимаю всё, что вы написали, спецификацию LIN читал

                  Тогда откуда идеи «GPIO без трансиверов»?
                  Ну и вообще, как мне кажется, для человека, который умеет «программировать на С++ за деньги», набросать реализацию этого примитивного протокола особых проблем составить не должно. Просто джаст фо фан.

                  все трансиверы должны быть с логически-цифровой точки зрения одинаковы

                  Я вам не скажу за всю Одессу, но тексасовские SN65HVDA195, nxp-шные TJA1020, микрочиповские MCP200x и ATA6631 с точностью до методики включения (из спящего режима) и поведения в этом спящем режиме совершенно одинаковы.

                  Я не нашёл достоверной информации, что нужен именно LIN,

                  Самое достоверное — взять трансивер, подоткнуть его в живую шину с одной стороны и в логический анализатор — с другой. Транспортный уровень — как на ладони.


                  1. VioletGiraffe
                    23.04.2019 11:37

                    Тогда откуда идеи «GPIO без трансиверов»?

                    Кроме вопросов надёжности и сертификации automotive (устойчивости к transients и load dump), я по-прежнему не понимаю, почему это нельзя сделать на GPIO + 1 полевой транзистор с изолированным затвором вместо целого трансивера. Я только не умею выбрать правильный тип и модель транзистора.

                    набросать реализацию этого примитивного протокола особых проблем составить не должно.
                    Грабли, не люблю по граблям ходить, особенно там, где это касается физического железа, которое под отладчиком на паузу не поставишь и значения переменных / регистров не посмотришь. С софтом всё намного проще. Было бы LIN-master устройство, работающее на столе, я бы уже начал экспериментировать, но сидя в багажнике авто с ноутбуком этим заниматься не очень весело. Хочется просто, чтобы работало, поэтому уже заказал трансивер на Алиэкспресс, осталось дождаться. Спасибо за помощь / ликбез.


                    1. esaulenka
                      23.04.2019 12:54

                      устойчивости к transients и load dump

                      В первую очередь нужна устойчивость к перегрузке и переполюсовке.
                      Отваливание незаряженного аккумулятора на полном ходу встречается редко, а криворукие прикручиватели проводов не туда — часто.

                      сделать на GPIO

                      Можно. Но первым же вопросом будет «как мне сформировать биты?». Вторым — «как мне прочитать биты и сложить их в байты?». И я ещё раз спрашиваю, зачем их героически решать, если в контроллере есть готовый модуль UART?

                      + 1 полевой транзистор с изолированным затвором

                      Не нужен там никакой изолированный затвор.
                      Берите любой NPN, базу через резистор на ногу контроллера, эмиттер на землю, коллектор в линию. Для определённости, скажем, www.chipdip.ru/product/bc635pbf и килоомный резистор. Всё как по заказу — без защит и сертификаций. Для хоть какой-то защиты можно резистор воткнуть www.chipdip.ru/product0/18265 (физический размер имеет значение!)
                      Ну и да, приём чего-либо мы ещё не обсудили. Ардуины от 12 вольт горят.

                      Было бы LIN-master устройство, работающее на столе

                      Берём Saleae logic (must have!), паяем из двух резисторов делитель 12 -> 3.3, лезем в багажник, снимаем протокол. Возвращаемся на диван, берём отдельную ардуину, и тупо в цикле с ногодрыгом и sleep'ом повторяем услышанное.


                      1. VioletGiraffe
                        23.04.2019 13:04

                        Хороший вариант с тупым копированием услышанного, спасибо за наводку, я не догадался. Как раз колега пообещал одолжить Saleae.
                        Насчёт приёма 12 вольт Ардуиной — думал о резистивном делителе. Только не знаю, нужно ли в таком варианте использовать АЦП, чтобы правильно обработать уровни 0/1, не надеясь, что они магически совпадут с логическими уровнями выбранного МК. Но это всё умозрительно, потому что я уже послушал вас и других комментаторов — заказал TJA1021.


    1. esaulenka
      22.04.2019 17:52

      Кстати, пользуясь случаем, хочу напомнить, что UART-подобных однопроводных интерфейсов автопромышленность изобрела больше одного. LIN — только один из них. Ещё существуют ISO 14230 и куча всякого вендор-специфик (с документацией, в лучшем случае, на фанатских форумах).


  1. DMGarikk
    19.04.2019 13:40

    Оч жалею что у меня авто крайне жмотского производителя — Крайслер (jeep, dodge)… и соответственно все протоколы наглухо закрыты и недоступны и софта нет, даже стандартный odb2 обрезан по минимуму

    p.s. у крайслера есть авто построенные на чужой базе, у них таких проблем нет, а вот «родные»… печаль


  1. acodered
    19.04.2019 16:50

    Предупреждение в конце должно звучать немного по-другому:
    Любая поддержка протокола, которую вы реализуете в своей железке или программе, будет специально сломана производителем авто в следующей версии, а если ему это не удастся, то он просто подаст на вас в суд.

    CAN-шина прекрасный, открытый стандарт. И посмотрите во что он превратился в автомобилях. Дилеры постоянно оказывают давление на автопроизводителя — дайте нам заработать! Мы купили у вас этот стенд за 20К, мы покупаем у вас программы, запретите это делать пользователям. И разумеется, автопроизводитель идет им навстречу, ведь он так же зависит от продаж через дилеров.

    Open Ford (сейчас OpenXC) была прекрасная инициатива, очень смелая. Ну и где сейчас Форд? Ну и кто из читателей Хабра купил себе Форд, потому что там есть открытый стандарт?


    1. novice2001
      19.04.2019 17:55
      +1

      Машины вообще редко покупают по идеологическим соображениям такого характера.


    1. GloooM
      19.04.2019 22:25
      +4

      Строго говоря сам стандарт CAN шины не регламентирует что по нему будет передаваться, он про физические уровни, арбитраж и прочий низкий уровень.
      Это как сказать что Ethernet открытый стандарт, а посмотрите злой скайп закрыл протокол и не дает нам.

      Тут ситуация двоякая еще, не дает производитель доков по работе со своей электроникой, залочил везде прошивки, все пошифровал — плохо, мы же за свободу и все такое.
      Гоняет все в открытую — опять плохо, теперь любой злодей может переписать прошивку и т.д.


    1. Ctacfs
      20.04.2019 03:00
      +4

      Кто из читателей хабра знал об инициативе форда до того, как прочел этот коммент?
      Форд мог бы влить денег в пиар, в организацию комьюнити вокруг этой инициативы.


      1. shaggyone
        20.04.2019 04:13

        Форд, увы, прекращает легковые авто в России продавать.


        1. tvr
          20.04.2019 16:36

          Производить.


      1. esaulenka
        22.04.2019 17:58

        Самое смешное, что это знал alizar ;-)
        habr.com/ru/post/165929


        1. acodered
          22.04.2019 20:01

          Отлично, спасибо. Самое время развести руками и сказать — а что вы ожидали от открытого ПО? Прошло почти 8 (восемь!!!) лет. Дети во второй класс идут, а на Хабре о программе знает 2.5 человека, если считать alizar.


  1. stavinsky
    19.04.2019 17:02

    Пытался найти данные для Ford Focus 2007 и облом ничего толком не нашлось. Есть кто-то кто опытным путем собирал данные и потом пытался их интерпретировать. Но было интересно. Собирал свой can модуль на stm32. Все подключается и работает. Интересно и куча непонятных данных. (ловил все что прилетает)


    1. kolyandex Автор
      19.04.2019 17:48

      Есть программа ForScan, может там есть что интересное?


      1. stavinsky
        19.04.2019 18:33

        Да есть и даже вроде куплена(не помню что-то из них было за деньги)
        Я наивно думал когда начинал что документацию я найду. Ford для следующих моделей даже свой DIY девайс какой-то сделал. И доки выложил.
        В целом не подумал что оттуда можно было заснифать трафик. Сейчас уже все равно забросил все это.


  1. sergzah
    19.04.2019 18:46
    +1

    Давно пользую can-адаптер для VW – «вася диагност». Позволил активировать много функций комфорта, которые по неведомым причинам не выведены в настройки, нигде в официальной доке не описаны, но зато дилер пытался мне их продать. Но самое главное – это чтение кодов ошибок, ведь не знаю как у Mitsubishi, но у VW отображаемые на панели ошибки это какая-то жесть: мало чего понятно, всегда все фатально и возникает ощущение что без поездки в сервис вообще никак. А подключаешь, и понимаешь что всего-то перегорела одна из лампочек.
    Смело могу рекомендовать для VAG, хотя за рекламу мне не платят. Но давайте откровенно: даже в продукте, который существует ни один год и заточен под определенный автоконцерн, даже там не все очевидно: не все значения регистров описаны, у разных модельных годов одной и той же модели есть отличия, при работе есть вероятность накосячить. Поэтому автору большой респект за ликбез, но от меня лично огромный дисклеймер: читать автофорумы, бекапить каждый update, следить за контактом шнурка, зарядкой АКБ и ноута и… верить!


    1. gwathedhel
      21.04.2019 23:08

      Какие, если не секрет, опции комфорта получилось так включить?


  1. aivs
    19.04.2019 18:50

    У VAG есть утилита VCDS, в народе ВАСЯ, через которую можно посмотреть любой датчик, настроить любой блок и поуправлять чем хочешь, сниффером вытаскиваются любые команды.


    1. apple01
      19.04.2019 19:34

      В свободном доступе есть VCDS lite, работает с китайским адаптером за $5. Возможности урезаны но тем не менее для поиска неисправного сенсора чего-либо (например ABS в моем случае) или чтения кода ошибки незаменимо.


      1. aivs
        19.04.2019 19:39

        У меня китайский аналог шнурка и крякнутая VCDS. Поддерживаются все функции оригинального, кроме обновления.


  1. Bronx
    20.04.2019 00:31
    +1

    Статья интересная, только сомнительно, что для сброса maintenance lamp обязательно нужен OBD-сканер. У Хонды, например, этот сигнал легко сбрасывается комбинацией «повернуть ключ зажигания, удерживая кнопку сброса пробега (trip reset) 10 секунд». А, скажем, check engine сбрасывается комбо «повернуть ключ зажигания (не заводить) -> нажать педаль газа на 5 секунд -> выключить зажигание --> отпустить педаль, выждать 2 минуты до включения».


    1. Tzimie
      20.04.2019 10:04

      На Зафире тоже просто


    1. kolyandex Автор
      20.04.2019 10:11

      На моем пепелаце таким образом сбрасывается только напоминание о ТО.


  1. samponet
    20.04.2019 00:54

    В конце статьи должна была быть ссылка на СЦ, где делают всё кучеряво, ибо зачем так поверхностно статью писать? Из примеров я не смог сопоставить PIDы, блоки и ответы, хотя и очень тема интересна.Так то можно и канхакером посоветовать проводить анализ данных в свое удовольствие и свободное время.


  1. Merkat0r
    20.04.2019 04:00
    +2

    В конце статьи должна была быть ссылка на

    ИМХО
    Там таки должна быть отсылка к тому, что: это вам не ардуинка для экспериментов — 1 неверное значение, например, в блоке АБС\курсовой стабилизации\ГУР(ЭУР) и почти наверняка вы в скором времени труп


    1. emmibox
      23.04.2019 11:45

      Вы представляете эту цивилизацию как то, что может разрушить любой случайно залетевший дятел… В то время как в блоке АБС кодируется лишь размер колес и выбор там из малого N значений. В стабилизации можно еще ноль руля закодировать. А в ГУР-е вообще нет никакой электроники.


      1. DMGarikk
        23.04.2019 12:27

        А в ГУР-е вообще нет никакой электроники.

        бывает клапан регулировки усилия, которым эбу рулит в зависимости от скорости авто
        грубо говоря можно взять и отключить гур на низкой скорости, что в некоторых авто может быть крайне неприятно


  1. telobezumnoe
    20.04.2019 10:03

    любопытно, с помощью чего подключались к кан шине?? это какой то кан юсб адаптер? видел в продаже MCP2515 я так понимаю это can spi, затем нужен spi-usb конвертер?? или на микроконтроллере с поддержкой can выполнен мост??


    1. kolyandex Автор
      20.04.2019 10:07

      Для опытов использовался Lawicel (CAN hacker) протокол на stm32 + tja1051.
      Софт на видео работает с J2534 Pass-thru адаптерами и всеми разновидностями ELM327.