Корректор спидометра с функцией накрутки пробега и включения дневных ходовых огней

Даже незначительный тюнинг ходовой части (трансмиссии) автомобиля приводит к нарушению правильности показаний спидометра и одометра из-за изменяющегося передаточного числа трансмиссии. Более радикальные изменения, как, например, смена главной пары моста, вообще делают спидометр бесполезным, т.к. он начинает «врать» на десятки км/ч в ту или иную сторону. Данный корректор спидометра разработан для исправления сигнала датчика скорости таким образом, чтобы штатный спидометр показывал верную скорость.

!Если есть глюки при работе (взмах стрелки, дрожание и т.п.), обновите прошивку до 8.1 или T2.1 в этом архиве!

Типовой датчик скорости, показания которого используют электронные спидометры и одометры, генерирует импульсы при вращении. Обычно это 600 или 1024 импульса на километр пути, но возможны и другие варианты. Если мы увеличили размерность резины, то на километр может генерироваться уже, к примеру, 930 импульсов вместо 1024, и спидометр покажет меньшую скорость, а одометр занизит пробег.

Таким образом, чтобы «вылечить» путевые приборы тюнингованного автомобиля, нужно измерить период входящего сигнала, умножить его на поправочный коэффициент и сформировать «правильный» сигнал, имитирующий сигнал датчика.

Схема корректора спидометра показана на рис. 1. Первая версия устройства разработана в далёком 2006 году и с тех пор претерпела 8 модификаций. Корректор спидометра повторило более тысячи человек (это только известные мне — писавшие вопросы и благодарности). В статье рассмотрена крайняя версия устройства.

 odometr_draw

Рис. 1. Схема электрическая принципиальная корректора спидометра.

 

Корректор спидометра включается в разрыв провода, идущего от датчика скорости, установленного на коробке передач автомобиля. На вход прибора подаётся сигнал с части провода, идущего к датчику, выход же подключается к части провода, уходящему в приборную панель автомобиля:

connect

Рис. 2. Схема подключения корректора.

 

Принцип работы.

Для измерения частоты входящих импульсов используется встроенный в DD1 16-и битный таймер Т1 и прерывание INT1. Таймер считает в цикле от 0 до 65535 и далее снова с 0. Каждый отрицательный перепад (1-0) на входе 7 (PD3) DD1 вызывает срабатывание прерывания INT1, в котором запоминается мгновенное значение таймера. Каждое второе срабатывание прерывания, дополнительно, вызывает вычисление периода импульса как разницу значений таймера в момент первого (Start_Time) и второго (Stop_Time) срабатывания прерывания. Полученное значение периода умножается на заранее записанный в энергонезависимую память DD1 поправочный коэффициент и результат запоминается в оперативной памяти DD1 в переменной Timing.

Для формирования выходных импульсов используется тот же самый таймер Т1 и прерывание COMPA. Это прерывание возникает при совпадении мгновенного значения таймера со значением в регистре сравнения OCR1A. В прерывании происходит инвертирование состояния вывода 8 (PD4) DD1 и вычисление следующего значения OCR1A. Это значение получается суммированием текущего значения OCR1A с рассчитанным в предыдущем прерывании значением Timing.

Таким образом, если частота входных импульсов превосходит необходимую частоту выходных импульсов (прибор работает на понижение), значение переменной Timing будет обновляться чаще возникновения прерывания COMPA. В противном случае (если прибор работает на повышение) прерывание COMPA может использовать несколько раз одно и то же значение Timing, прежде чем оно будет пересчитано. В обоих случаях переменная Timing будет всегда содержать некоторое значение и генерация выходных импульсов не будет прервана. За счёт этого прибор может работать при любом соотношении частот входных и выходных импульсов, как на понижение, так и на повышение показаний датчика.

Чтобы исключить «залипание» показаний приборов в случае внезапного прекращения поступления импульсов от датчика (при экстренном торможении или движении в пробке) в микроконтроллере DD1 задействован восьмибитный таймер Т0. Период счёта таймера равен 2 секундам. При каждом возникновении прерывания INT1 происходит обнуление этого таймера, не дающее ему досчитать до максимального значения. Если же таймер досчитает до максимума, он вызовет прерывание TIM0_OVF, в котором произойдёт запрещение генерации выходных импульсов, пока не поступит хотя бы один импульс на вход 7 (PD3) DD1.

За счёт использования единого эталона времени – таймера Т1 – для измерения частоты входящих импульсов и для генерации выходных импульсов, соотношение частот входных и выходных импульсов строго определено поправочным коэффициентом и ничем более. Это свойство используется для сохранения точности прибора во всём диапазоне скоростей автомобиля. Дело в том, что любой таймер микроконтроллера DD1 тактируется от тактовой часты ядра через внутренний настраиваемый делитель. При частоте ядра 16 МГц и коэффициенте деления 1024 частота тактирования таймера составит 15625 Гц, а при коэффициенте 64 – 250 кГц. Время цикла заполнения таймера до значения 65535 составит 4,2 сек и 0,26 сек соответственно. Первый диапазон используется для скоростей до 40 км/ч, второй – для скоростей от 40 до 200 км/ч. Переключение происходит автоматически. Ошибка показаний спидометра в этом случае не превышает 0,5 км/ч в диапазоне скоростей 1…90 км/ч и возрастает до 5 км/ч на скоростях более 200 км/ч.

Выходные импульсы от датчика скорости поступают на вход PD3 микроконтроллера DD1 через формирующую сигнал цепь R1R4C1VD2. R4 является подтяжкой для открытого коллектора выходного каскада датчика скорости, цепь R1С1 фильтрует высокочастотные помехи, VD2 ограничивает напряжение импульсов до безопасного для DD1 уровня 5 вольт. Выходной каскад корректора построен на MOSFET транзисторе VT2. Резистор R9 необходим для защиты DD1 в случае пробоя VT2 и его номинал должен быть не менее 100 ом. Для защиты VT2 от высоковольтных импульсов бортсети автомобиля необходима установка внешнего стабилитрона VD3 на напряжение 20-22 В. На транзисторе VT1 и элементах VD1R2R3R5 собран преобразователь уровней двуполярного сигнала интерфейса RS-232 напряжением ±12 В в однополярный ТТЛ сигнал, воспринимаемый DD1. RC цепь R8C3 необходима для формирования импульса сброса при включении питания DD1, а цепь R6C2 подавляет помехи и дребезг, поступающие от кнопки SB1. Диод VD5 защищает корректор от подключения напряжения питания неправильной полярности, а цепь R10C9VD4C8 фильтрует помехи по питанию и ограничивает высоковольтные всплески (вызываемые работой системы зажигания) до безопасного для DA1 уровня.

Транзистор VT3 служит для управления дневными ходовыми огнями (ДХО или DRL). При начале движения, а именно появлении первых робких импульсов от датчика, транзистор немедленно открывается и подключённое к нему реле активирует ходовые огни. Это могут быть светодиодные фонари, противотуманки или ближний свет фар. Транзистор «тянет» любое стандартное автомобильное реле. После остановки автомобиля прибор гасит ходовые огни спустя примерно 45 секунд стоянки. Это позволяет не светить в атмосферу на стоянке и при прогреве, давая аккумулятору подзарядиться, а также не моргать светом в пробках.

Детали и конструкция.

Все детали корректора спидометра (кроме конденсаторов С1-С6, С9) — выводные, для монтажа в отверстия. Конденсаторы С1-С6, С9 использованы в SMD исполнении размерности 0805. Конденсаторы С5 и С6 с NPO диэлектриком, остальные с X7R. Конденсаторы С1, C8, C9 на напряжение не ниже 30 В, остальные — не ниже 6,3 В. Микросхема DA1 фирмы ST в корпусе ТО-220 без радиатора охлаждения. Транзистор VT2 – в корпусе SOT-23. Кварцевый резонатор ZQ1 в корпусе HC-49. Разъём Х3 типа IDC-10MS, остальные – типа WF-2.

Диод VD1 может быть заменён любым маломощьным кремниевым диодом, например КД522. Диод VD5 – на КД212А или аналогичный с током не менее 100 мА. Стабилитроны VD2, VD3, VD4 заменяемы любыми стабилитронами мощностью не менее 0,5 Вт и напряжениями стабилизации 4,7 и 22В соответственно. В качестве транзистора VT1 подойдёт любой кремниевый npn транзистор (например, КТ315, КТ3102), а в качестве VT2 – любой MOSFET управляемый ТТЛ уровнем и напряжением С-И не менее 20В. Т.к. IRLML2402 исчезает из продажи, его можно заменить более современным IRLML2502. VT3 заменим на любой силовой транзистор типа КТ815Г или аналогичный. Микросхема DA1 может быть заменена любым параметрическим стабилизатором на 5 В с током стабилизации не менее 100 мА, например 7805, S7805, КРЕН5А. Но надо убедиться, что максимальное входное напряжение стабилизатора не менее 25 В и установить VD4 напряжением стабилизации на 3-4 В ниже этого значения. Для L7805 макс. входное напряжение составляет 35 В.

Корректор спидометра рассчитан на установку в автомобили с напряжением в бортсети 12В и подключается после замка зажигания. Все детали (кроме кнопки SB1 и светодиода HL1) монтируются на печатной плате размерами 45*65 мм, которая помещается в пластиковый корпус размерами не менее 50*70*20 мм. Его закрепляют в салоне под торпедо. Светодиод и кнопку (или кнопку со встроенным светодиодом) закрепляют в удобном месте на торпедо. Второй контакт светодиода и кнопки может быть соединён с корпусом автомобиля в любом месте.

 

odometr_pcb

Рис. 3. Печатная плата корректора спидометра.

odometr_resultРис. 4. Внешний вид собранного корректора спидометра.

Программирование микроконтроллера.

Для программирования МК корректора спидометра подойдёт любой ISP программатор с поддержкой минимальной скорости программирования не выше 125 кГц. Дело в том, что с завода МК поставляются с включённым внутренним RC генератором на 500 кГц, а скорость программирования не может превышать 1/4 тактовой частоты. Для переключения тактирования на внешний резонатор необходимо перепрограммировать Fuse-биты CKSEL1..3 и CKDIV8. По умолчанию их состояние 100 и 0 соответственно (следует помнить, что у AVR термин «запрограммирован» означает состояние бита «0»). Для переключения на внешний резонатор частотой 16 МГц необходимо перевести их в состояние 111 и 1 соответственно. Значения остальных Fuse-битов менять не надо.

Внимание! Установка Fuse-битов CKSEL1..3 в состояние 000 приведёт к переключению МК на внешний тактовый генератор и сделает невозможным программирование или изменение Fuse-битов без подключения внешнего источника тактовой частоты! Некоторые программаторы отображают запрограммированный бит как «1». Убедитесь в правильности выбора состояния битов в вашем программаторе перед их программированием! Например, считав их и посмотрев, как они отобразились ПО программатора.

 

fuses

Рис. 5. Таблица fuse битов в окне программатора ASISP — так должно быть!

 

Прошивка микроконтроллера состоит из двух частей: для Flash и Eeprom памяти. В микроконтроллер должны быть прошиты оба файла, они, а также исходники прошивки и плата находятся в архиве odometr_data

Управление устройством и режимы работы.

Собранное из исправных деталей и корректно запрограммированное устройство работает сразу и наладки не требует, за исключением ввода поправочного коэффициента (по умолчанию задан коэффициент 1,2). Возможны два способа введения коэффициента: с компьютера через кабель или путём самокалибровки. [метод самокалибровки удалён из поздних версий прошивок, т.к. работоспособен лишь на ограниченной номенктатуре авто и не является универсальным, таким образом, пользуемся ТОЛЬКО загрузкой через кабель] В первом случае необходимо заранее, вручную (например, по показаниям образцовых приборов) рассчитать коэффициент и загрузить в корректор спидометра с помощью программы Data_Sender. При этом коэффициент должен находиться в диапазоне от 0,3 до 3 (хотя известны случаи ввода через программатор коэффициентов от 0,1 до 8 и прибор работал).

Во втором случае корректор спидометра сам рассчитывает коэффициент прямо на автомобиле. Способ, а так же тип датчика, задаётся двумя джамперами, которые устанавливаются на разъёме программирования X3 (рис. 6) и замыкают на землю выводы 19 или 18 DD1. Для программирования корректора спидометра использован стандартный для программаторов фирмы Atmel штыревой 10-и контактный разъём с шагом 2,54 мм. В силу цоколёвки разъёма, контакты 8 и 10, соединённые с выводами 19 и 18 DD1, находятся напротив контактов 7 и 9, соединённых с землёй. После программирования DD1 на выводах 19 и 18 программно подключаются внутренние подтяжки к питанию и эти выводы удобно использовать для задания режимов работы корректора.

djampРис. 6. Вид сверху разъёма для программирования с установленными джамперами.

Для задания поправочного коэффициента любым из способов необходимо сначала ввести корректор спидометра в режим калибровки. Для этого требуется удерживая нажатой кнопку SB1 включить питание корректора (от внешнего блока питания или повернуть ключ в замке зажигания, если корректор на автомобиле). В момент включения питания корректор проверяет нажатие на кнопку SB1. Если удерживать кнопку нажатой более 2 с, светодиод HL1 включается и корректор спидометра входит в режим калибровки, если же кнопка не была нажата, корректор входит в обычный режим работы.

После отпускания кнопки светодиод остаётся включённым, индицируя готовность к проведению калибровки. Если джампер 2 установлен (вывод 19 DD1 соединён с GND), коэффициент загружается в корректор через COM порт компьютера с помощью кабеля. Если джампера 2 нет, калибровка проводится вычислением коэффициента по заданной скорости. В этом случае необходимо задать тип установленного на автомобиле датчика – на 6 или 10 импульсов. Для этого служит джампер 1. Если он установлен (вывод 18 DD1 соединён с GND) прибор рассчитывает поправку для 6 имп. датчика. Если джампера нет — для 10 имп. датчика. Джамперы должны быть установлены на разъём до включения питания. В обычном режиме работы (не в режиме калибровки) джамперы не опрашиваются программой и не влияют на работу корректора.

Для загрузки поправочного коэффициента через ПК необходим кабель, соединяющий корректор с СОМ портом компьютера. Схема кабеля показана на рисунке 7.

cableРис. 7. Схема кабеля и внешний вид разъёмов.

Для подключения к COM порту компьютера используется стандартный девятиконтактный штекер ХР1 типа DB-9F, а для соединения с разъёмом Х1 корректора – двухконтактный штекер ХР2 типа HU-2. Контакт №3 (TxD) штекера DB-9F должен быть соединён с резистором R1 корректора, контакт №5 (GND) – с общим проводом.

Для загрузки поправочного коэффициента через кабель необходимо соединить кабелем корректор и ПК, включить питание корректора, открыть окно программы Data_Sender.exe и выбрать порт, к которому подключён кабель. Далее, ввести заранее рассчитанное значение коэффициента в диапазоне 0,3..3,0 в окно программы и нажать кнопку «послать». Если порт открыт успешно и данные переданы, программа не выдаст предупреждений, а светодиод HL1 корректора спидометра ответит тремя короткими вспышками. Новый поправочный коэффициент будет записан в энергонезависимую память DD1. В противном случае старый коэффициент не будет перезаписан.

Накрутка пробега или тест.

Если при включённом зажигании нажать и удерживать 4 сек. кнопку SB1, корректор спидометра перейдёт в режим теста — начнёт генерировать сигнал, примерно соответствующий скорости 60 км/ч на типовом автомобиле. Этот режим можно использовать как тест работоспособности прибора, а также для накрутки пробега, т.к. приборная панель будет «думать» что авто движется и считать пробег.

———

По техническим вопросам писать на sales@aviadevices.com 

Comments

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *