Chevy-Niva http://www.chevy-niva.ru/n/ |
|
Расходомер на однокристалке... ;-) http://www.chevy-niva.ru/n/viewtopic.php?f=16&t=15730 |
Страница 1 из 11 |
Автор: | Serge_ISA [ 04 сен 2008, 17:36 ] |
Заголовок сообщения: | Расходомер на однокристалке... ;-) |
Итак, проект с условным названием "ШНГбензОметр", начатый парой странных личностей ![]() Немного теории, обсуждавшиейся в теме 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: Естественно, всё что вы возможно будете делать, руководствуясь вышенаписанным, вы будете делать на свой страх и риск - авторы ничего и никому не гарантируют. Спасибо за внимание. |
Автор: | ШНива-гамно [ 05 сен 2008, 07:22 ] |
Заголовок сообщения: | |
Супер получилось... ![]() |
Автор: | Петруха [ 05 сен 2008, 08:39 ] |
Заголовок сообщения: | |
Serge_ISA, всё енто здоровско, а БК у тебя нет? По сути он выполняет те-же функции, считывает расход с контроллера по К-линии. Когда заправляю к примеру 20 литров, обнуляю счётчик на БК и слежу за показаниями, считает довольно точно. И мгновенный расход там есть и т.п. ![]() |
Автор: | Alex59 [ 05 сен 2008, 09:12 ] |
Заголовок сообщения: | |
Петруха, Расход не считывается с к-линии!!! Вышепредставленный девайс получает его с вывода СРТ контроллера. Если бы расход шел по к-линии все было бы несколько проще... |
Автор: | Петруха [ 05 сен 2008, 09:22 ] |
Заголовок сообщения: | |
Alex59, да ну? А мужики-то незнают! ![]() |
Автор: | Alex59 [ 05 сен 2008, 09:25 ] |
Заголовок сообщения: | |
Петруха, Есть ![]() |
Автор: | Serge_ISA [ 05 сен 2008, 09:32 ] |
Заголовок сообщения: | |
Петруха писал(а): Serge_ISA, всё енто здоровско, а БК у тебя нет? По сути он выполняет те-же функции, считывает расход с контроллера по К-линии. Когда заправляю к примеру 20 литров, обнуляю счётчик на БК и слежу за показаниями, считает довольно точно. И мгновенный расход там есть и т.п.
![]() ![]() Когда проект начинался не было, а теперь вот - левая верхняя "кнопка" - БК "Штат Х1 Универсал" (на фотке показывает 29л в баке против 28 по нашему прибору). Что впрочем не отменяет ценности девайса - как уже говорили, БК, подключаемые только к K-Line, расход рассчитывают, а наш девайс его по сути только показывает. Хотя есть БК "Гамма GF-223" - тот и то и другое делает и показания по двум способам коррелирует, но он денежек стОит 2600руб., а у нашего себестоимость 50 руб. PS: я по нашему девайсу коррекцию расхода для БК рассчитывал, т.к. он гораздо точнее БК получился. ![]() |
Автор: | Alex59 [ 05 сен 2008, 09:34 ] |
Заголовок сообщения: | |
Serge_ISA, Вообще супер девайс получился! |
Автор: | MerkaVa [ 05 сен 2008, 11:03 ] |
Заголовок сообщения: | |
Ну вы ребят просто молодцы! : А за денежку такую штуку сделаете для безграмотных?... : |
Автор: | Serge_ISA [ 05 сен 2008, 11:57 ] |
Заголовок сообщения: | |
MerkaVa писал(а): Ну вы ребят просто молодцы! : А за денежку такую штуку сделаете для безграмотных?... :
Спасибо на добром слове. ![]() Но вот понимаешь, в чём тут засада... : Этот девайс отлично иллюстрирует поговорку про бесплатный сыр - сам-то он простой и почти бесплатный, но вот подключать его тот ещё гемор (почему и планируется отдельный пост на эту тему). Если не чувствуешь в себе сил на сборку девайса, то, как мне кажется, сил на самостоятельное его подключение ты врядли найдешь. Я бы и сам только ради такого прибора не полез бы ковырять разъём автомобильного контроллера. Другое дело, что я совместил подключение расходомера с подготовкой к чип-тюнингу и с противоугонной перепайкой разъёма и контроллера - в таком варианте игра стоила свеч однозначно. |
Страница 1 из 11 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |