Tag Archives: CAN Шина

Вместо NBT: Часть 6 – пробую OBD2

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

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

С помощью Bluetooth terminal, приложение из Android Market-а, я подключился к своему ELM327, воткнутому в OBD2 разъем. Затем прочитал версию устрйоства, выставил автоматическое определения настроек, проверил это и прочитал скорость и обороты двигателя в разных положениях АКПП.

comb Происходило следующее

  • ATI – печатает весрию устройства вставленного в OBD2
  • at sp 0 – вытсавить автоопределение протокола передачи данных
  • at dp – проверка, что выставлено автоматическое определение протокола

Дальше шли команды для получения скорости и оборотов двигателя:

Зажигание выключено, АКПП в Parking

  • 010C – обороты: 410С0000, нас интересуют последние два байта 0000, что соответсвует 0, поскольку машина незаведена
  • 010D – скорость: 410D00. Посдений байт 00 и показвывает, что я стою

Завел двигатель, АКПП в Parking

  • 010C – обороты: 410С0С12. Последние 2 байта переводим в десятичное число (например используя стандартный Windows Calculator в версии Programmer) и делем на 4 = 772
  • 010D – Скорость 410D00 – без изменений.

Двигатель заведён, АКПП в Drive, стою на месте

  • 010C – Обороты: 410С0С56 – используя тот же метод, получаем 789
  • 010D – скорость 410D00 – без изменений

Двигатель заведён, АКПП в Reverse, стою на месте

  • 010С – Обороты: 410С0С36 – тот же метод даёт нам 781
  • 010D – скорость 410D00 – без изменений

Screenshot_2015-08-27-20-10-45Тест на скорость вперёд и назад провалился так как в обоих случаях 010D (2 последних запроса) показывает 410D03, что при движении задним ходом (предпоследний запрос), что при движении вперед.

То есть, зная передаточные числа, посчитать передачу можно, но только при движении вперёд. Для получения же данных о включении задней передачи OBD2 недостаточно. Возможно удастся прочитать данные с CAN-Шины, к которой ELM327 также имеет доступ. Однако похоже мой ELM327 девайс, мягко говоря, говно, так как выдает мне BUFFER ERROR при попытке просто показывать все сообщения, которые ходят по CAN-шине (команда ATMA):

Почитав доку я решил попробывать с фильтрами (команда AT CRA hhh). Самый простой тест, те сообщения, которые я и так вижу, имеют CAN ID 130, так что поставив фильтр atcra 130 и запустив мониторинг всех сообщений с помошью команды ATMA я попрежнему вижу эти сообщения и получаю BUFFER ERROR. То есть команда работает.

Вооруживщись командами описаными здесь, я попробывал настроить фильтры на статус водительской двери (CAN ID 0EA), скорости (CAN ID 1A1), обороты (CAN ID 0A5), и парочка других, результат один и тот же – тишина.

Есть идеи?

 

 

Вместо NBT: Часть 3 – OBD2 и CAN-Bus

Так как у меня завалялся старый Nexus 7 решено было начать с него в качестве головного устройства. Почесав репу и прошерстив интеренет на предмет того, как же мне подружить планшет с автомобильной электроникой решил приобрести OBD2 – Bluetooth адапетр. Это мультимарочная приблуда подходит для всех машин старше какого-то там лохматого года. Выглядит вот так:20150807_101940 Пока не понятно, что удастся получить из нее. Приобрел так же прогу для Android – Torque Pro, которая может с этой штуковиной работать и много чего  показывать. Заодно нашёл команды, котоорая эта штука поидее поддерживает и как с ней работать.

Второй вариант “вторжения” в автомобильную электронику – это CAN-шина. Для работы с ней набрел на девайс на основе Arduino 20150807_101857 – проект на Kickstarter, который уже успешно завершился и перешёл в стадию продажи всем желающим. Его тоже купил с доставкой из США.

Заодно нашёл очень интересный проект одного BMW Энтузиаста, который уже “влез” в CAN-Шину и даже что-то разшифровал из того, что по ней “гоняется”.

По идее CAN-Шина позволит получить гораздо больше инфы чем доступно через OBD2, правда пока не понятно – как с ней работать… К тому же не известно, как отнесётся дилер к тому, что я “врежусь” в штатную автомобильную проводку.

Если у кого-то есть опыт работы с CAN шиной – поделитесь знаниями.