Печать

Бортовой компьютер для ВАЗ на ATmega8 с цветным дисплеем

Опубликовано . Опубликовано в Устройства на AVR

Рейтинг:   / 13
ПлохоОтлично 

С приходом в жизнь автолюбителей инжектора и его окончательной победе над карбюратором, появилась необходимость в «его» периодической диагностике. Поскольку стоимость диагностики отечественной машины варьируется от 300 до 500 руб., а квалификация диагноста порой вызывает сильные сомнения, то практически каждому автолюбителю зачастую приходится вникать в суть проблемы (неисправности) самостоятельно. И как минимум без специального адаптера и компьютера тут не обойтись. А если неисправность возникла где-то в пути и вдали от города? Поэтому порой просто необходимо иметь под рукой эдакий «миникомпьютер», который всегда будет в автомобиле и сможет помочь в пути.

Сам я являюсь обладателем автомобиля ВАЗ 11183 (Калина), поэтому далее повествование пойдет о бортовом компьютере для Калины. А в конце будет несколько слов про бортовой компьютер для ВАЗ 2115.

Цены на подобные устройства, мягко говоря, не очень радуют. Самый простой компьютер-кнопка для отображения каких-никаких кодов категорически не устраивает. Ввиду его убогости. Стоимость таких около 600-700 руб. Ну а что-то посерьёзней, с дисплеем, уже порядка 1800-2000 руб. Ну и самые дорогие модели приблизительно по 5000 руб. Поэтому было принято решение собрать бортовой компьютер для себя и с целью экономии денежных средств и с целью саморазвития.

Что я хотел видеть: параметры в режиме реального времени, текущие ошибки и возможность их сбросить. Замер времени разгона 0-100 км/ч (появилось позднее, так... побаловаться...)

Начался поиск информации. Поиск по интернету дал ответы на некоторые вопросы, но до остального пришлось доходить самому.

Итак: обмен информацией между Электронным Блоком Управления (ЭБУ) и Бортовым Компьютером (БК) происходит при помощи интерфейса K-Line. При этом используются различные протоколы. Вот с этим то как раз и возникает первая трудность. Где взять описание протокола? Мне повезло, я нашел в сети единственное описание протокола для ЭБУ Январь 5. На моей машине 2006 г.в. стоит ЭБУ Январь 7.2+. Подключившись к диагностической линии и запустив программу диагностики, я увидел, что запросы и расшифровка ответов ЭБУ полностью совпадают с найденным описанием. Дело сдвинулось....

Я думаю многие задавались вопросом, зачем вообще используется какой то там адаптер для подключения к машине. Отвечаю: адаптер представляет из себя преобразователь уровней. В стандартном COM порте (он же интерфейс RS-232) логическая единица это -12 вольт, логический 0 это +12 вольт. В K-линии логическая единица это +12 вольт, а логический ноль это 0 вольт. Т.е. размах сигнала 0-12 вольт против "-12" - "+12" у RS232. К тому же разница не только в уровнях, RS-232 имеет 2 сигнальные линии RxD и TxD, а K-Line одну двунаправленную. Итак:

Вариант №1. Калина. Кнопочное управление компьютером

Я использовал:
1. Микроконтроллер фирмы Atmel: Atmega8
2. Дисплей от сотового телефона Siemens S65
3. Обвязка... питание, резисторы, конденсаторы и другая мелочевка.
4. Преобразование уровней на сдвоенном компараторе LM293. Просто и доступно.

Питание. Тут всё просто. LM317 формирует стабилизированный ток 20 мА для светодиодов подсветки дисплея. LM7805 стабилизирует напряжение для питания микроконтроллера. Защитный диод 1N6281 рассчитанный на 27 вольт спасет от возможных всплесков напряжения.

При отладке можно использовать +12 вольт с 16-го пина колодки OBD2. А при постоянной работе напряжение на БК должно подаваться при каждом включении зажигания. Т.е. необходимо протянуть провод от замка зажигания к БК.

Ну и сама радиосхема:

Тут есть маленькая тонкость. Чтобы продлить срок службы дисплея необходимо перед отключением питания отправить в дисплей определенную последовательность команд. Транзистор на схеме в нормальном режиме работы придавливает вывод контроллера к нулю. Вывод настроен как вход с подтяжкой. Как только напряжение пропадет, на выводе появится логическая единица.  Энергии накопленной конденсатором 470 мкФ хватит на то чтобы микроконтроллер успел отправить команду выключения в дисплей. Диод 1N5818 не даст разряжаться конденсатору в «сеть», а так же защищает от переплюсовки при подключении питания.

Прошивка для микроконтроллера написана в среде CodeVisionAVR 2.05 на языке Cи.

Описание протокола есть в приложенных к статье материалах. Кратко пробежимся по основным моментам. Чтобы начать диагностику, нам надо отправить в ЭБУ запрос startCommunication:

Запрос startCommunication:
81 10 F1 81 03

Ответ:
83 F1 10 C1 6B 8F 3F

В ответе C1 означает, что ЭБУ готов с нами работать (на связи).

После этого мы можем запросить у него параметры, отправив запрос:
82 10 F1 21 01 A5

ЭБУ моей машины отвечает:
80 F1 10 26 61 01 3B 90 41 04 00 00 00 00 47 80 00 00 00 52 52 80 18 00 8E 00 5C 00 00 00 00 00 00 00 00 00 FF FF DD A4 47 02 CE

Расшифровка (пример):
61 - Положительный ответ readDataByLocalIdentifier
01 - afterSalesServiceRecordLocalIdentifier (что то там....)
....
11-й байт - Температура охлаждающей жидкости
....

Формула для расчета: N=E-40 [°C]
E - передаваемое значение
N - физическая величина

У меня это значение 47. Берем windows калькулятор. Переводим 47 hex в dec. Получаем 71. Дальше 71-40=31°C. На момент снятия данных машина постояла на улице. До конца не остыла.

И так далее… со всеми остальными параметрами.

Запрос ошибок readDTCByStatus:
84 10 F1 18 00 00 00 9D

ЭБУ моей машины отвечает:
88 F1 10 58 02 04 43 E0 14 26 E0 24

P0443 - всё верно, 2 ошибки у меня сейчас.
P1426

Самое сладкое, сброс ошибок clearDiagnosticInformation:
83 10 f1 14 00 00 98

Запрос значений АЦП:
82 10 F1 21 03 A7

Из АЦП взял напряжение на датчике кислорода и на датчике массового расхода. Хотя необходимость этого пункта под сомнением. Думаю вообще убрать. Всё остальное есть в описании.

Плата разведена на одностороннем фольгированном текстолите. Дисплей приклеен при помощи клея "секунда". Защитное стекло для дисплея сделал из коробки от компакт диска. На самоклеящейся бумаге распечатал лицевую часть (черную), наклеил на пластик, совместил, приклеил к плате. Чтобы под стекло не набивалась пыль, промазал обычным герметиком. Доработал напильником посадочное место в ящике для мелочей и просто вставил туда БК. Подключил питание и диагностическую линию. Левая кнопка смена режимов отображения, правая сброс ошибок (в режиме сброса ошибок) и сброс времени разгона на ноль (в режиме замера времени). На плате имеется место для памяти 24LC512. Но она не использовалась (не хватило flash памяти МК на реализацию). Фьюзы МК выставлены на работу от внешнего кварца.

По себестоимости получилось порядка 450 руб

Вариант №2. ВАЗ 2115. Тачскрин

Далее был изготовлен компьютер под панель ВАЗ 2115. Элементная база остается та же. Только добавляется тачскрин от телефона Sony-Ericsson G900. Цена тачскрина 35 руб. Ну и естественно меняется прошивка. Были небольшие проблемы при калибровке экрана. Хотел сначала ввести алгоритм калибровки по 4-м точкам. Добавить соответствующий пункт в меню. Но, почитав и посмотрев алгоритмы на англоязычных сайтах (под Андройд и прочее), понял, что это довольно сложно и в моём случае не нужно. Просто записываем значения АЦП по 2-м точкам,  сопоставляем координаты и через уравнение прямой по 2-м точкам находим промежуточные значения нажатия. У меня получилось:
x = 232 - 0.276*ADC
y = 0.25*ADC - 67.5

Печатная плата претерпела существенные изменения. Теперь используется микроконтроллер ATMega16A.

При помощи ножа, напильника и шпатлевки по пластику тачскрин был вмонтирован в панель, которую потом обтянул карбоновой пленкой.

По началу прикупил стилус, но потом оказалось что проще «тыкать» пальцем в экран. Залапывается он конечно. Но не более чем на телефонах с сенсорным экраном.

Для повторения рекомендую вариант с тачскрином. Его можно использовать как под Калину, так и под Пятнашку. На этом всё.

Автор: Шапкин Дмитрий Александрович

Файлы:
Исходный код(СИ), файлы прошивок микроконтроллера, макеты печатных плат SprintLayout
Дата 20.11.2012 Размер файла 187.28 KB Закачек 2497

Комментарии  

0 #1 kitario 16.02.2014 16:34
здравствуйте, а какой еще можно использовать дисплей вместо этого?
Сообщить модератору
0 #2 AntonChip 18.02.2014 08:00
Цитирую kitario:
здравствуйте, а какой еще можно использовать дисплей вместо этого?

С правкой исходного кода можно использовать любой дисплей, а так только этот
Сообщить модератору
+1 #3 19Андрей86 23.09.2014 19:56
переделал бы кто-нибудь под дисплей 16х2 например
Сообщить модератору
0 #4 valik1979 25.10.2014 19:53
а на Huyndai подойдёт?
Сообщить модератору
0 #5 boogyman 25.10.2014 20:59
Цитирую valik1979:
а на Huyndai подойдёт?

Не подойдет
Сообщить модератору
0 #6 Aleksandr0823 09.01.2015 21:29
Спасибо за Ваш труд. Собрал схему на atmega16. В окне "МГНОВЕННЫЙ РАСХОД" всегда значение 0.0. Остальное работает хорошо. У меня ЭБУ январь 5.1.1. От чего может не работать мгновенный расход? Благодарю за ответ.
Сообщить модератору
0 #7 blecbecha 21.01.2015 07:55
Да схема проста и решил повторить только есть одна трудность. В программировани и я 0 и не понимаю в протоколе обмена. У меня просьба выложить скрин фьюзов для прошивки контроллера и какой hex использовать для атмеги 8 под январь 7.2. Мой программатор поддерживает только программа AVRDUDEPROG. У меня 21124.
Сообщить модератору
0 #8 николай163 03.04.2015 17:57
Здравствуйте меня заинтересовала данная схема посмотрел на печатку и схему и у меня возник вопрос что за микросхема стоит правее от микроконтролера на готовой да и на печатной плате на принципиальной схеме её нет объясните пожалуйста?
Сообщить модератору
0 #9 AntonChip 03.04.2015 23:00
Микросхема памяти, в статье про это написано
Сообщить модератору
0 #10 николай163 08.04.2015 23:26
24LC512 это память а можно смонтировать без неё??? и будет ли работать???
Сообщить модератору
-1 #11 AntonChip 09.04.2015 06:08
Цитирую николай163:
24LC512 это память а можно смонтировать без неё??? и будет ли работать???

Можно память не ставить, работать будет
Сообщить модератору
-1 #12 николай163 09.04.2015 06:43
Спасибо,еще такой вопрос помножите переделать прошивку под матиз объемом 0,8л на нем нет ни тахометра ни бортовика вобщем самая стокоя комплектация. хотелось бы попробовать собрать под матиза???
Сообщить модератору
0 #13 николай163 10.04.2015 19:30
КАК МОЖНО СВЯЗАТЬСЯ С АВТОРОМ СТАТЬИ ДЛЯ ПОМОЩИ В РЕШЕНИИ ВОПРОСА???
Сообщить модератору
0 #14 AntonChip 10.04.2015 20:53
Цитирую николай163:
Спасибо,еще такой вопрос помножите переделать прошивку под матиз объемом 0,8л на нем нет ни тахометра ни бортовика вобщем самая стокоя комплектация. хотелось бы попробовать собрать под матиза???

В матизе совсем другой протокол обмена , также мало информации по расшифровке данных с ЭБУ, я думаю вряд ли кто-то согласится делать программу просто так
Сообщить модератору
0 #15 SergejGost 28.05.2015 13:17
Добрый день ! А почему не использовать сразу прошивку под дешевый дисплейный модуль ?
we.easyelectronics.ru/.../...
Сообщить модератору
0 #16 Павел27 28.04.2016 16:13
Добрый день! Есть спецы для изготовления подобного компа на 21099 с камерой заднего вида?
Сообщить модератору

Рекомендуем посмотреть