Author:
Serge_ISA
Subject:
Расходомер на однокристалке... ;-)
Message:
Итак, проект с условным названием "ШНГбензОметр", начатый парой странных личностей :D , известных под никами [b:f36452742f]Serge_ISA[/b:f36452742f] и [b:f36452742f]FunTic[/b:f36452742f] 9го мая 2008г. ( http://www.chevy-niva.ru/viewtopic.php?t=24575&postdays=0&postorder=asc&start=55 ), счастливо завершился и представляется вашему вниманию.

Немного теории, обсуждавшиейся в теме http://www.chevy-niva.ru/viewtopic.php?t=24575&postdays=0&postorder=asc&start=0 :
Контроллеры ЭСУД Bosch 7.0, Bosch 7.9.7 имеют на разьёме вывод под названием "СРТ" - ничто иное, как "сигнал расхода топлива". Используется он якобы для того, чтобы подключённый к контроллеру Бортовой Компьютер мог точно считать расход топлива. Некоторые БК пользуют этот сигнал (напр. "Гамма"), некотороые получают расход расчётным способом (напр. "Штат-Шеви"). Но как бы то ни было, из документации следует, что на этом выводе контроллер генерирует 16000 импульсов на каждый израсходованный литр топлива. Т.е. в первом приближении достаточно просто считать импульсы на выходе контроллера и будет счастье... :-)
Несмотря на то, что некоторые из софорумчан высказывали сомнение в идеинтичности работы этого выхода у контроллеров Bosch 7.0 и Bosch 7.9.7 ( http://www.chevy-niva.ru/viewtopic.php?t=24575&postdays=0&postorder=asc&start=15 ), корректная работа нашего девайса совместно с первым доказана практически ( http://www.chevy-niva.ru/viewtopic.php?p=3070285#3070285 ). Спасибо [b:f36452742f]Pans[/b:f36452742f], взявшему на себя труд выступить тестером и доложившему о результатах.

В отличии от первой версии расходомера, реализованной на логических микросхемах, эта версия реализована на однокристальном микроконтроллере Atmel ATTiny2313, что позволило, во-первых, значительно упростить устройство, во-вторых, наделить его дополнительными функциями. Так в текущей версии микропрограммы (v.5.5) кроме "виртуального бака" реализованы подсчёт собственно расхода топлива и экономайзер, позволяющий выбрать наиболее экономичный стиль езды.

[img:f36452742f]http://i027.radikal.ru/1104/3b/002906d3cf51.jpg[/img:f36452742f]
[i:f36452742f]Рис.1. Схема расходомера[/i:f36452742f]

Схема расходомера приведена на рис.1. Вход устройства "СРТ" подключён к 10му выводу контроллера Bosch 7.9.7 (для Bosch 7.0 это вывод #32). Сигнал со входа подаётся на вывод 6 микроконтроллера. Управляется ус-во посредством кнопки, подключённой к выводу 7 микроконтроллера. Микроконтроллер тактируется от кварцевого резонатора с частотой 16МГц. Индикация реализована на двухразрядном 7ми-сегментном светодиодном индикаторе с общим анодом (A-362 в моём случае). Питание схемы осуществляется от интегрального стабилизатора 78L05 (7805, КР142ЕН5). При выключенном зажигании микроконтроллер отключает индикацию и переходит в режим пониженного энергопотребления. Потребление - 26mА/10mА в соответствующих режимах. Выводы схемы, обозначенные как "Programming interface" служат для т.н. внутрисхемного программирование микроконтроллера. Т.е. для смены прошивки (например для обновления версии) в микроконтроллере без физического удаления его из схемы. Если менять прошивки не планируется, эти выводы не нужны.

[img:f36452742f]http://s49.radikal.ru/i123/1004/be/92b93f132d03.jpg[/img:f36452742f]
[img:f36452742f]http://s45.radikal.ru/i108/1004/c0/e51823dcdf0c.jpg[/img:f36452742f]
[img:f36452742f]http://i028.radikal.ru/1104/21/62557121f8ef.jpg[/img:f36452742f]
[i:f36452742f]Рис.2. Возможные варианты реализации прибора.[/i:f36452742f]


На рис.2 приведены примеры реализации устройства, опробованнные авторами на практике. Изготовление первого более подробно описано тут http://www.chevy-niva.ru/viewtopic.php?t=24575&postdays=0&postorder=asc&start=116 и тут https://yadi.sk/d/PBLBZFO9fTRYc . Изготовление второго и третьего вариантов особых сложностей вызывать не должно, т.к. в блоке контрольных ламп свободного места хватает. ;-) Про изготовление третьего немного тут - http://www.chevy-niva.ru/viewtopic.php?p=3810298#3810298 .

Ещё вариант от [b:f36452742f]cop12007[/b:f36452742f]:
[img:f36452742f]http://i039.radikal.ru/1104/35/963328bf2edf.jpg[/img:f36452742f]



[u:f36452742f][i:f36452742f]Инструкция по использованию (v.5.5):[/i:f36452742f][/u:f36452742f]

Управление прибором осуществляется посредством единственной кнопки. Короткими нажатиями (менее 1с.) осуществляются выбор пункта меню, выбор значений и т.п. Длинными нажатиями подтверждаются выбранные действия.

[img:f36452742f]http://img137.imageshack.us/img137/535/03p1p3lz5.jpg[/img:f36452742f]
[i:f36452742f]Рис.3. "Главное меню" прибора.[/i:f36452742f]


В "главном меню" (рис.3) можно выбрать один из 3-х режимов работы.
Режим "Р1" - подсчёт расхода топлива. В этом режиме происходит увеличение значения соответствующего счётчика на единицу на каждый израсходованный литр топлива. Можно ввести корректирующие коэффициенты для увеличения точности подсчёта и сбросить счётчик в ноль.
Режим "Р2" - экономайзер. В этом режиме измеряется и выводится на индикатор относительный мгновеннный расход в процентах. Для его расчёта устройство запоминает и хранит максимальное значение мгновенного расхода, которое когда-либо ему "попадалось". Т.е. устройство постоянно "обучается" - отслеживает и запоминает максимальное значение мгновенного расхода для использования этого значения в дальнейшей работе. Это значение можно сбросить в ноль и таким образом начать "обучение" экономайзера заново. Для достижение максимальной экономии топлива требуется при движении добиваться минимальных значений на индикаторе прибора.
Режим "Р3" - "виртуальный бак". В этом режиме водитель самостоятельно вводит количество заправленного в топлива в литрах и корректирует его при каждой заправке. Устройство вычитает единицу из счётчика на каждый израсходованный литр топлива и индицирует таким образом кол-во топлива, оставшегося в баке. Корректировочные коэффициенты, введённые в первом режиме действуют и в этом режиме. Можно "долить" бак сразу до паспортного полного объёма - 58л. Максимальное значение - 70л (по "горло" на моей машине входит 65,5л).
Выбор режима осуществляется короткими нажатиями на кнопку, вход в выбранный режим - длинным нажатием. Выход из режима в "главное меню" - длинным нажатием.
Прибор хранит рабочие значения всех счётчиков в энергонезависимой памяти, поэтому при отключении питания они не "забываются". Запись в энергонезависимую память осуществляется непосредственно перед отключением индикатора и "засыпанием" прибора - через минуту после пропадания сигнала на входе. При появлении сигнала на входе, т.е при включении зажигания, прибор "просыпается".

[img:f36452742f]http://img135.imageshack.us/img135/3421/04p114lt3.jpg[/img:f36452742f]
[i:f36452742f]Рис.4. Режим "Р1" - расход.[/i:f36452742f]


На рис.4 показаны возможные варианты индикации (подрежимы) в режиме "Р1".
Первый - индикация количества израсходованного топлива после сброса. Индикация в литрах, точность - 1л.
Второй и третий подрежимы - ввод корректирующего коэффициента. Отсутствию коррекции соответствует значение "5". "9"=4%,"8"=3%,"7"=2%,"6"=1%. Соответственно "4"=-1%, "3"=-2%,"2"=-3%,"1"=-4%.
Четвёртый подрежим - сброс счётчика израсходованного топлива в 0. Например, если есть желание узнать, сколько бензина будет израсходованно в поездке, то нужно сбросить показания перед началом поездки.

[img:f36452742f]http://img354.imageshack.us/img354/4645/05p212xr4.jpg[/img:f36452742f]
[i:f36452742f]Рис.5 Режим "Р2" - экономайзер.[/i:f36452742f]

На рис.5 показаны возможные варианты индикации (подрежимы) в режиме "Р2".
Первый - индикация текущего относительного мгновенного расхода (в процентах от максимального).
Второй подрежим - сброс значения максимально возможного мгновенного расхода в ноль.

[img:f36452742f]http://i073.radikal.ru/0912/f0/ca8fa53de130.jpg[/img:f36452742f]
[i:f36452742f]Рис.6 Режим "Р3" - "виртуальный бак".[/i:f36452742f]


На рис.6 показаны возможные варианты индикации (подрежимы) в режиме "Р3".
Первый - индикация количества оставщегося в баке топлива.
Второй и третий подрежимы - коррекция количества оставщегося в баке топлива.
Во втором подрежиме можно увеличивать текущее значение с шагом в 5л., в третьем - уменьшать с шагом 1л.
Четвёртый подрежим - быстрая "доливка" бака до полного паспортного объёма - 58л.

[u:f36452742f][i:f36452742f]Прошивка v.5.5 в текстовом виде (формат .hex):[/i:f36452742f][/u:f36452742f]
[url]http://www.chevy-niva.ru/viewtopic.php?p=5400701#5400701[/url]
Она же в виде файла - [url]http://yadi.sk/d/0fUCTXBD65qkY[/url]
Исходники - [url]http://yadi.sk/d/03DX0KJRCk8oi[/url]
:arrow: :arrow: :arrow: :arrow: :arrow:

Теперь рассмотрим процедуру "прошивки" микроконтроллера, т.е записи управляющей микропрограммы в его энергонезависимую память.

[img:f36452742f]http://img363.imageshack.us/img363/9866/avr20ptoponyaf4.jpg[/img:f36452742f]
[i:f36452742f]Рис.7.Схема простейшего программатора. [/i:f36452742f]


На рис.7 изображена простейшая схема для программирования микроконтроллеров ATTiny2313 программатором PonyProg. Провода для подключения к порту LPT компьютера должны иметь минимальную длину (на практике 10-15см нормально). Питание Vcc=+5 вольт можно взять от USB-порта или с разъема клавиатуры. Кварцевый резонатор 1-10МГц, резистор 1-10кОм.
В случае программирования микроконтроллера прямо в схеме, выводы 1,10,17,18,19 микроконтроллера подключаются напрямую к LPT-порту, дополнительная обвязка при этом не требуется.
Программу программатора PonyProg можно бесплатно скачать здесь:
http://downloads.sourceforge.net/ponyprog/PonyProg_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"

Собственно и всё - на мой взгляд проще не бывает. 8)

:arrow: :arrow: :arrow: :arrow: :arrow:

Ну и наконец про подключение девайса к контроллеру и питанию автомобиля.

:!: ВНИМАНИЕ :!: Всё нижеописанное действительно для контроллера Bosсh M7.9.7 и для прочих может отличаться или может быть вообще неприменимо.

Как уже говорилось, для работы нашего "ШНГбензОметра" :-) требуется кроме питания один-единственный сигнал с контроллера ЭСУД - "СРТ" или "сигнал расхода топлива". Проблема только в том, что в разъёме шлейфа контроллера отсутствует этот (и не только этот) контакт. И нужно его всего-навсего туда добавить. :wink:

Процедура, очень простая на словах, на практике весьма трудоёмкая и муторная. Поэтому лично я советовал бы совместить несколько работ за один заход, как это делал в своё время я, решив одним махом следующие задачи:
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В_после_включения_зажигания и т.д.)

Не буду останавливаться на том, как найти контроллер в автомобиле и снять его - этот вопрос хорошо освещён в литературе. 8) От себя добавлю, что крайне желательно для облегчения работы предварительно снять бардачок. Клеммы с аккумулятора то-же, естественно, необходимо до начала работ снять.
Далее снимаем крышку с блока реле и предохранителей, отвинчиваем и снимаем контроллер вместе с прикрученным к нему блоком реле и отвинчиваем блок реле от контроллера. Снимаем разъём шлейфа с контроллера, для чего нужно вытянуть из разъёма небольшую "ручку" (на рис.9 за неё как раз и держат разъём).
Далее разбираем разъём. Как я понимаю, встречаются два вида разъёмов - производства Bosch (VAG) и AMP. Процедура разборки пошагово расписана здесь - http://chiptuner.ru/content/conn_81pin/ .

[img]http://www.chevy-niva.ru/album_pic.php?pic_id=26507[/img]
[i:f36452742f]Рис.8.Разъём AMP - снимаем крышку. [/i:f36452742f]


Разъём AMP разбирается на порядок проще и примерно так-же, но начинать надо со снятия крышки, для чего отрезать маленький пластиковый ленточный хомут у жгута проводов и сдвинуть крышку вперёд (см. рис.8 ).

[img]http://www.chevy-niva.ru/album_pic.php?pic_id=21366[/img]
[i:f36452742f]Рис.9.Разбираем разъём AMP. [/i:f36452742f]


Далее надо поддеть тонким острым инструментом жёлтую Ш-образную пластиковую вставку сбоку разъёма (на фото с левого бока разъёма) и вынуть её (см.рис.9),

[img]http://www.chevy-niva.ru/album_pic.php?pic_id=21365[/img]
[i:f36452742f]Рис.10.Разобранный разъём AMP и его контакты. [/i:f36452742f]


после чего из корпуса разъёма вынимаются две группы контактов (см.рис.10).
Ищем "по сусекам" пару подходящих контактов и внедряем их в разъём на позиции 10 и 57 ("СРТ" и "ВКД" соответственно). Я использовал контакты от старого компьютерного шлейфа для подключения SCSI-дисков. Провода от контактов я "прокинул" к диагностическому разъёму под рулевую колонку. На этом, в принципе, "программу-минимум" можно завершать, собирать всё обратно и подключать расходомер к "прокинутому" проводу с сигналом "СРТ".

:arrow: :arrow: :arrow: :arrow: :arrow:
Для продолжения работ по "программе-максимум" переставляем провода в разъёме шлейфа так, как показано на рис.11.

[img]http://www.chevy-niva.ru/album_pic.php?pic_id=21492[/img]
[i:f36452742f]Рис.11.Схема перекоммутации разъёма жгута проводов. [/i:f36452742f]


Естественно, порядок коммутации (какой сигнал на какую позицию в разъёме переставлять) не важен, важно соответствие разъёма шлейфа и разъёма контроллера. Поэтому можно и нужно делать свою уникальную схему перекоммутации. Перекоммутируемые контакты выбраны из следующих соображений:
ДПКВ1 и ДПКВ2 - сигналы с датчика положения коленвала. Это единственный критически важный для работы двигателя датчик, с любым другим неработоспособным датчиком двигатель худо-бедно можно завести.
CE - сигнал наличия неисправностей в системе управления двигателем, зажигает лапочку в приборной панели. Его отсутствие из-за перекоммутации лишает угонщика информации о неисправности, которая появится при подключении "чужого" контроллера.
K-LINE - провод, по которому связываются с контроллером бортовой компьютер и/или диагностическое оборудование. Цель перекоммутации этого сигнала - лишить угонщика средств диагностики неисправностей при подключении "чужого" контроллера.

Далее вскрываем контроллер и припаиваем перемычки в соответствии с рис.12 или собственной схемой перекоммутации.

[img]http://www.chevy-niva.ru/album_pic.php?pic_id=21493[/img]
[i:f36452742f]Рис.12.Схема установки перемычек в разъёме контроллера. [/i:f36452742f]


Припаиваем именно перемычки между соответсвующими ножками разъёма, резать оригинальные дорожки не нужно. Таким образом сохраняется возможность работы контроллера как на перекроссированном, так и на оригинальном шлейфе.
Если планируется контроллер перешивать (т.е. заниматься чип-тюнингом), имеет смысл сразу впаять недостающие элементы на плату контроллера - смотрим сюда: http://chiptuner.ru/content/ecu_add/ .
Собираем контроллер и ... сильно удивляемся, мягко говоря, дырявости его корпуса :roll: . Такое чувство, что ГМ-АвтоВАЗ сэкономил на резинке-уплотнителе :shock: . Берём герметик и восполняем потерю (см.рис.13).

[img]http://www.chevy-niva.ru/album_pic.php?pic_id=21362[/img]
[i:f36452742f]Рис.13.Герметизация контроллера. [/i:f36452742f]


Ставим "проапгрейженный" контроллер на место, предварительно откусив кусачками ту самую "ручку" (см.рис.2) и мстительно представив попытки гипотетического угонщика снять теперь разъём с контроллера. :twisted: Для пущего эффекта можно ещё прикрутить разъём шлейфа к разъёму контроллера маленьким шурупом с обратной стороны (со стороны кузова). :twisted: :twisted:
Герметизируем разъём шлейфа и места соединений разъёмов (см. рис.14 и 15). Теперь можно купаться. :lol: Правда неплохо бы поднять повыше ещё и АПС-6, но это уже из другой оперы (см. здесь http://www.chevy-niva.ru/viewtopic.php?p=4223977#4223977 )... При прикручивании контроллера на место есть смысл применить нестандартные винты/гайки - пусть помучаются злодеи.

[img]http://www.chevy-niva.ru/album_pic.php?pic_id=21363[/img]
[i:f36452742f]Рис.14.Герметизация контактов разъёма. [/i:f36452742f]

[img]http://www.chevy-niva.ru/album_pic.php?pic_id=26508[/img]
[i:f36452742f]Рис.15.Герметизация разъёма. [/i:f36452742f]


Переходим к финальной части - доработке диагностического разъёма OBD-II, который как известно находится под рулевой колонкой справа. Изучаем его распиновку на рис.16....

[img]http://www.chevy-niva.ru/album_pic.php?pic_id=26509[/img]
[i:f36452742f]Рис.16.Назначение контактов "полного" диагностического разъёма OBD-II. [/i:f36452742f]


... и видим, что часть контактов обозначена как "OEM". А это означает, что каждый производитель волен задействовать их под свои нужды. Далеко ходить не надо, возьмём АвтоВАЗ. На 11 контакт диагностического разъёма заведён "троянский", по другому не скажешь, сигнал - питание бензонасоса напрямую, минуя всякие там реле и прочие хитрые блокировки. Этакий подарок для юных угонщиков. :evil: Вынимаем 11й контакт из разъёма на#$% и прячем его в шлейф проводов подальше от греха. В свободные дырки разъёма, обозначенные как OEM, ставим подходящие контакты (см.рис.17)

[img]http://www.chevy-niva.ru/album_pic.php?pic_id=26510[/img]
[i:f36452742f]Рис.17.Контакт разъёма OBD-II. [/i:f36452742f]


и заводим на них сигналы "СРТ", "ВКД" и чего там ещё душе угодно. Я использовал контакты из разъёма питания от старых блоков питания PC AT, а один можно отрезать от "троянского" 11го.

Собственно, финиш - припаиваем кусочки толстой проволки к трём проводам от расходомера и втыкаем их в соответствующие контакты диагностического разъёма (ну а если найдёте "папу" разъёма OBD, то тогда можно сделать красиво-красиво :wink: ).
:!: Важное замечание для тех, кто будет делать иначе - питание для расходомера обязательно надо брать с диагностического разъёма или с контроллера. В противном случае безуспешная борьба с помехами обеспечена (см. тему про "Расходомер на логике" - http://www.chevy-niva.ru/viewtopic.php?t=24575&postdays=0&postorder=asc&start=0 ).

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


Спасибо за внимание.


Next  Topics
Last
Reply
Menu  Home