Итак, проект с условным названием "ШНГбензОметр", начатый парой странных личностей

, известных под никами
Serge_ISA и
FunTic 9го мая 2008г. (
http://www.chevy-niva.ru/viewtopic.php? ... c&start=55 ), счастливо завершился и представляется вашему вниманию.
Немного теории, обсуждавшиейся в теме
http://www.chevy-niva.ru/viewtopic.php? ... sc&start=0 :
Контроллеры ЭСУД Bosch 7.0, Bosch 7.9.7 имеют на разьёме вывод под названием "СРТ" - ничто иное, как "сигнал расхода топлива". Используется он якобы для того, чтобы подключённый к контроллеру Бортовой Компьютер мог точно считать расход топлива. Некоторые БК пользуют этот сигнал (напр. "Гамма":smile_wink:, некотороые получают расход расчётным способом (напр. "Штат-Шеви":smile_wink:. Но как бы то ни было, из документации следует, что на этом выводе контроллер генерирует 16000 импульсов на каждый израсходованный литр топлива. Т.е. в первом приближении достаточно просто считать импульсы на выходе контроллера и будет счастье... :-)
Несмотря на то, что некоторые из софорумчан высказывали сомнение в идеинтичности работы этого выхода у контроллеров Bosch 7.0 и Bosch 7.9.7 (
http://www.chevy-niva.ru/viewtopic.php? ... c&start=15 ), корректная работа нашего девайса совместно с первым доказана практически (
http://www.chevy-niva.ru/viewtopic.php? ... 85#3070285 ). Спасибо
Pans, взявшему на себя труд выступить тестером и доложившему о результатах.
В отличии от первой версии расходомера, реализованной на логических микросхемах, эта версия реализована на однокристальном микроконтроллере Atmel ATTiny2313, что позволило, во-первых, значительно упростить устройство, во-вторых, наделить его дополнительными функциями. Так в текущей версии микропрограммы (v.5.5) кроме "виртуального бака" реализованы подсчёт собственно расхода топлива и экономайзер, позволяющий выбрать наиболее экономичный стиль езды.
Рис.1. Схема расходомера
Схема расходомера приведена на рис.1. Вход устройства "СРТ" подключён к 10му выводу контроллера Bosch 7.9.7 (для Bosch 7.0 это вывод #32). Сигнал со входа подаётся на вывод 6 микроконтроллера. Управляется ус-во посредством кнопки, подключённой к выводу 7 микроконтроллера. Микроконтроллер тактируется от кварцевого резонатора с частотой 16МГц. Индикация реализована на двухразрядном 7ми-сегментном светодиодном индикаторе с общим анодом (A-362 в моём случае). Питание схемы осуществляется от интегрального стабилизатора 78L05 (7805, КР142ЕН5). При выключенном зажигании микроконтроллер отключает индикацию и переходит в режим пониженного энергопотребления. Потребление - 26mА/10mА в соответствующих режимах. Выводы схемы, обозначенные как "Programming interface" служат для т.н. внутрисхемного программирование микроконтроллера. Т.е. для смены прошивки (например для обновления версии) в микроконтроллере без физического удаления его из схемы. Если менять прошивки не планируется, эти выводы не нужны.
Рис.2. Возможные варианты реализации прибора.
На рис.2 приведены примеры реализации устройства, опробованнные авторами на практике. Изготовление первого более подробно описано тут
http://www.chevy-niva.ru/viewtopic.php? ... &start=116 и тут
https://yadi.sk/d/PBLBZFO9fTRYc . Изготовление второго и третьего вариантов особых сложностей вызывать не должно, т.к. в блоке контрольных ламп свободного места хватает. ;-) Про изготовление третьего немного тут -
http://www.chevy-niva.ru/viewtopic.php? ... 98#3810298 .
Ещё вариант от
cop12007:
Инструкция по использованию (v.5.5):
Управление прибором осуществляется посредством единственной кнопки. Короткими нажатиями (менее 1с.) осуществляются выбор пункта меню, выбор значений и т.п. Длинными нажатиями подтверждаются выбранные действия.
Рис.3. "Главное меню" прибора.
В "главном меню" (рис.3) можно выбрать один из 3-х режимов работы.
Режим "Р1" - подсчёт расхода топлива. В этом режиме происходит увеличение значения соответствующего счётчика на единицу на каждый израсходованный литр топлива. Можно ввести корректирующие коэффициенты для увеличения точности подсчёта и сбросить счётчик в ноль.
Режим "Р2" - экономайзер. В этом режиме измеряется и выводится на индикатор относительный мгновеннный расход в процентах. Для его расчёта устройство запоминает и хранит максимальное значение мгновенного расхода, которое когда-либо ему "попадалось". Т.е. устройство постоянно "обучается" - отслеживает и запоминает максимальное значение мгновенного расхода для использования этого значения в дальнейшей работе. Это значение можно сбросить в ноль и таким образом начать "обучение" экономайзера заново. Для достижение максимальной экономии топлива требуется при движении добиваться минимальных значений на индикаторе прибора.
Режим "Р3" - "виртуальный бак". В этом режиме водитель самостоятельно вводит количество заправленного в топлива в литрах и корректирует его при каждой заправке. Устройство вычитает единицу из счётчика на каждый израсходованный литр топлива и индицирует таким образом кол-во топлива, оставшегося в баке. Корректировочные коэффициенты, введённые в первом режиме действуют и в этом режиме. Можно "долить" бак сразу до паспортного полного объёма - 58л. Максимальное значение - 70л (по "горло" на моей машине входит 65,5л).
Выбор режима осуществляется короткими нажатиями на кнопку, вход в выбранный режим - длинным нажатием. Выход из режима в "главное меню" - длинным нажатием.
Прибор хранит рабочие значения всех счётчиков в энергонезависимой памяти, поэтому при отключении питания они не "забываются". Запись в энергонезависимую память осуществляется непосредственно перед отключением индикатора и "засыпанием" прибора - через минуту после пропадания сигнала на входе. При появлении сигнала на входе, т.е при включении зажигания, прибор "просыпается".
Рис.4. Режим "Р1" - расход.
На рис.4 показаны возможные варианты индикации (подрежимы) в режиме "Р1".
Первый - индикация количества израсходованного топлива после сброса. Индикация в литрах, точность - 1л.
Второй и третий подрежимы - ввод корректирующего коэффициента. Отсутствию коррекции соответствует значение "5". "9"=4%,"8"=3%,"7"=2%,"6"=1%. Соответственно "4"=-1%, "3"=-2%,"2"=-3%,"1"=-4%.
Четвёртый подрежим - сброс счётчика израсходованного топлива в 0. Например, если есть желание узнать, сколько бензина будет израсходованно в поездке, то нужно сбросить показания перед началом поездки.
Рис.5 Режим "Р2" - экономайзер.
На рис.5 показаны возможные варианты индикации (подрежимы) в режиме "Р2".
Первый - индикация текущего относительного мгновенного расхода (в процентах от максимального).
Второй подрежим - сброс значения максимально возможного мгновенного расхода в ноль.
Рис.6 Режим "Р3" - "виртуальный бак".
На рис.6 показаны возможные варианты индикации (подрежимы) в режиме "Р3".
Первый - индикация количества оставщегося в баке топлива.
Второй и третий подрежимы - коррекция количества оставщегося в баке топлива.
Во втором подрежиме можно увеличивать текущее значение с шагом в 5л., в третьем - уменьшать с шагом 1л.
Четвёртый подрежим - быстрая "доливка" бака до полного паспортного объёма - 58л.
Прошивка v.5.5 в текстовом виде (формат .hex):
http://www.chevy-niva.ru/viewtopic.php?p=5400701#5400701
Она же в виде файла -
http://yadi.sk/d/0fUCTXBD65qkY
Исходники -
http://yadi.sk/d/03DX0KJRCk8oi
: : : : :
Теперь рассмотрим процедуру "прошивки" микроконтроллера, т.е записи управляющей микропрограммы в его энергонезависимую память.
Рис.7.Схема простейшего программатора.
На рис.7 изображена простейшая схема для программирования микроконтроллеров ATTiny2313 программатором PonyProg. Провода для подключения к порту LPT компьютера должны иметь минимальную длину (на практике 10-15см нормально). Питание Vcc=+5 вольт можно взять от USB-порта или с разъема клавиатуры. Кварцевый резонатор 1-10МГц, резистор 1-10кОм.
В случае программирования микроконтроллера прямо в схеме, выводы 1,10,17,18,19 микроконтроллера подключаются напрямую к LPT-порту, дополнительная обвязка при этом не требуется.
Программу программатора PonyProg можно бесплатно скачать здесь:
http://downloads.sourceforge.net/ponypr ... _V207c.zip
Процедура прошивки:
1. Запускаем PonyProg. Если это первый запуск, то настраиваем - меню "Setup", "Interface Setup". Выбираем "Parallel", "Avr ISP I/O", "LPT1". После чего запускаем т.н. калибровку из этого же меню.
2. В списке "Device" выбираем "AVR micro", "ATTiny2313".
3. Подключаем программатор с микроконтроллером или собранный девайс к LPT-порту, подаём питание на программатор/девайс.
4. Пробуем прочитать микроконтроллер, чтобы убедиться в работоспособности всей связки - меню "Commands", "Read All"
5. Если чтение прошло успешно, загружаем файл прошивки - меню "File", "Open Program (FLASH) File"...
6. Прошиваем - меню "Commands", "Write Program (FLASH)".
7. Устанавливаем т.н. конфигурационные биты - меню "Commands", "Security & Configuration Bits". Ставим галочки только для SUT1, CKSEL0 и CKSEL1. Жмём кнопку "Write"
Собственно и всё - на мой взгляд проще не бывает.
: : : : :
Ну и наконец про подключение девайса к контроллеру и питанию автомобиля.
:!: ВНИМАНИЕ :!: Всё нижеописанное действительно для контроллера Bosсh M7.9.7 и для прочих может отличаться или может быть вообще неприменимо.
Как уже говорилось, для работы нашего "ШНГбензОметра" :-) требуется кроме питания один-единственный сигнал с контроллера ЭСУД - "СРТ" или "сигнал расхода топлива". Проблема только в том, что в разъёме шлейфа контроллера отсутствует этот (и не только этот) контакт. И нужно его всего-навсего туда добавить. :
Процедура, очень простая на словах, на практике весьма трудоёмкая и муторная. Поэтому лично я советовал бы совместить несколько работ за один заход, как это делал в своё время я, решив одним махом следующие задачи:
1. Доработка разъёма шлейфа контроллера ЭСУД
1.1. Установка недостающих контактов "СРТ" (сигнал расхода топлива) и "ВКД" (выбор калибровочных данных, используется как переключатель в двухрежимных тюнинговых прошивках, напр. "бензин-газ", "эконом-спорт" и т.д.)
1.2. Противоугонная перекоммутация контактов разъёма шлейфа и контроллера. Не секрет, что такая великолепная штука, как штатный иммобилайзер АПС-6 очень легко обходится угонщиками просто заменой контроллера. Перекоммутация шлейфа превращает штатный иммобилайзер именно в то, чем он должен быть - в практически невскрываемую противоугонку (естественно в купе с замком капота).
1.3. Противоугонная механическая доработка разъёма, радикально увеличивающая время на "перекидывание" контроллера.
1.4. Герметизация разъёма. При хорошем "купании" контроллер вполне реально залить через салонный фильтр - почему бы не решить проблему заранее?
2. Доработка контроллера ЭСУД
2.1. Противоугонная перекоммутация контактов разъёма контроллера - см. п.1.2
2.2. Впаивание недостающих элементов для "открытия" возможности перепрограммирования контроллера для чиптюнинга.
2.3. Герметизация контроллера - см.п.1.4.
2.4. Противоугонная механическая доработка крепления контроллера,увеличвающая время на доступ к нему.
3. Доработка диагностического разъёма OBD-II
3.1. Удаление контакта прямого включения бензонасоса. Наличие этого контакта на диагностическом разъёме - огромная "дыра" в защите от угона.
3.2. Добавление дополнительных контактов для сигналов "СРТ", "ВКД" (см.п.1.1) и прочих по вкусу (напр. 12В_после_включения_зажигания и т.д.)
Не буду останавливаться на том, как найти контроллер в автомобиле и снять его - этот вопрос хорошо освещён в литературе.

От себя добавлю, что крайне желательно для облегчения работы предварительно снять бардачок. Клеммы с аккумулятора то-же, естественно, необходимо до начала работ снять.
Далее снимаем крышку с блока реле и предохранителей, отвинчиваем и снимаем контроллер вместе с прикрученным к нему блоком реле и отвинчиваем блок реле от контроллера. Снимаем разъём шлейфа с контроллера, для чего нужно вытянуть из разъёма небольшую "ручку" (на рис.9 за неё как раз и держат разъём).
Далее разбираем разъём. Как я понимаю, встречаются два вида разъёмов - производства Bosch (VAG) и AMP. Процедура разборки пошагово расписана здесь -
http://chiptuner.ru/content/conn_81pin/ .
Рис.8.Разъём AMP - снимаем крышку.
Разъём AMP разбирается на порядок проще и примерно так-же, но начинать надо со снятия крышки, для чего отрезать маленький пластиковый ленточный хомут у жгута проводов и сдвинуть крышку вперёд (см. рис.8 ).
Рис.9.Разбираем разъём AMP.
Далее надо поддеть тонким острым инструментом жёлтую Ш-образную пластиковую вставку сбоку разъёма (на фото с левого бока разъёма) и вынуть её (см.рис.9),
Рис.10.Разобранный разъём AMP и его контакты.
после чего из корпуса разъёма вынимаются две группы контактов (см.рис.10).
Ищем "по сусекам" пару подходящих контактов и внедряем их в разъём на позиции 10 и 57 ("СРТ" и "ВКД" соответственно). Я использовал контакты от старого компьютерного шлейфа для подключения SCSI-дисков. Провода от контактов я "прокинул" к диагностическому разъёму под рулевую колонку. На этом, в принципе, "программу-минимум" можно завершать, собирать всё обратно и подключать расходомер к "прокинутому" проводу с сигналом "СРТ".
: : : : :
Для продолжения работ по "программе-максимум" переставляем провода в разъёме шлейфа так, как показано на рис.11.
Рис.11.Схема перекоммутации разъёма жгута проводов.
Естественно, порядок коммутации (какой сигнал на какую позицию в разъёме переставлять) не важен, важно соответствие разъёма шлейфа и разъёма контроллера. Поэтому можно и нужно делать свою уникальную схему перекоммутации. Перекоммутируемые контакты выбраны из следующих соображений:
ДПКВ1 и ДПКВ2 - сигналы с датчика положения коленвала. Это единственный критически важный для работы двигателя датчик, с любым другим неработоспособным датчиком двигатель худо-бедно можно завести.
CE - сигнал наличия неисправностей в системе управления двигателем, зажигает лапочку в приборной панели. Его отсутствие из-за перекоммутации лишает угонщика информации о неисправности, которая появится при подключении "чужого" контроллера.
K-LINE - провод, по которому связываются с контроллером бортовой компьютер и/или диагностическое оборудование. Цель перекоммутации этого сигнала - лишить угонщика средств диагностики неисправностей при подключении "чужого" контроллера.
Далее вскрываем контроллер и припаиваем перемычки в соответствии с рис.12 или собственной схемой перекоммутации.
Рис.12.Схема установки перемычек в разъёме контроллера.
Припаиваем именно перемычки между соответсвующими ножками разъёма, резать оригинальные дорожки не нужно. Таким образом сохраняется возможность работы контроллера как на перекроссированном, так и на оригинальном шлейфе.
Если планируется контроллер перешивать (т.е. заниматься чип-тюнингом), имеет смысл сразу впаять недостающие элементы на плату контроллера - смотрим сюда:
http://chiptuner.ru/content/ecu_add/ .
Собираем контроллер и ... сильно удивляемся, мягко говоря, дырявости его корпуса : . Такое чувство, что ГМ-АвтоВАЗ сэкономил на резинке-уплотнителе : . Берём герметик и восполняем потерю (см.рис.13).
Рис.13.Герметизация контроллера.
Ставим "проапгрейженный" контроллер на место, предварительно откусив кусачками ту самую "ручку" (см.рис.2) и мстительно представив попытки гипотетического угонщика снять теперь разъём с контроллера. : Для пущего эффекта можно ещё прикрутить разъём шлейфа к разъёму контроллера маленьким шурупом с обратной стороны (со стороны кузова). : :
Герметизируем разъём шлейфа и места соединений разъёмов (см. рис.14 и 15). Теперь можно купаться. : Правда неплохо бы поднять повыше ещё и АПС-6, но это уже из другой оперы (см. здесь
http://www.chevy-niva.ru/viewtopic.php? ... 77#4223977 )... При прикручивании контроллера на место есть смысл применить нестандартные винты/гайки - пусть помучаются злодеи.
Рис.14.Герметизация контактов разъёма.
Рис.15.Герметизация разъёма.
Переходим к финальной части - доработке диагностического разъёма OBD-II, который как известно находится под рулевой колонкой справа. Изучаем его распиновку на рис.16....
Рис.16.Назначение контактов "полного" диагностического разъёма OBD-II.
... и видим, что часть контактов обозначена как "OEM". А это означает, что каждый производитель волен задействовать их под свои нужды. Далеко ходить не надо, возьмём АвтоВАЗ. На 11 контакт диагностического разъёма заведён "троянский", по другому не скажешь, сигнал - питание бензонасоса напрямую, минуя всякие там реле и прочие хитрые блокировки. Этакий подарок для юных угонщиков. : Вынимаем 11й контакт из разъёма на#$% и прячем его в шлейф проводов подальше от греха. В свободные дырки разъёма, обозначенные как OEM, ставим подходящие контакты (см.рис.17)
Рис.17.Контакт разъёма OBD-II.
и заводим на них сигналы "СРТ", "ВКД" и чего там ещё душе угодно. Я использовал контакты из разъёма питания от старых блоков питания PC AT, а один можно отрезать от "троянского" 11го.
Собственно, финиш - припаиваем кусочки толстой проволки к трём проводам от расходомера и втыкаем их в соответствующие контакты диагностического разъёма (ну а если найдёте "папу" разъёма OBD, то тогда можно сделать красиво-красиво : ).
:!: Важное замечание для тех, кто будет делать иначе - питание для расходомера обязательно надо брать с диагностического разъёма или с контроллера. В противном случае безуспешная борьба с помехами обеспечена (см. тему про "Расходомер на логике" -
http://www.chevy-niva.ru/viewtopic.php? ... sc&start=0 ).
:!: PS: Естественно, всё что вы возможно будете делать, руководствуясь вышенаписанным, вы будете делать на свой страх и риск - авторы ничего и никому не гарантируют.
Спасибо за внимание.