В качестве входных сигналов система использует:
1. сигнал с датчика положения дросселя (выключателя), показывающего нажатие педали газа;
2. сигнал с датчика высокого напряжения, расположенный на силовом проводе свечи 1 цилиндра;
3. сигнал с датчика детонации;
4. сигналы, вырабатываемые электронным блоком управления ДВС:
4.1. “зажигание” - управляющий моментом зажигания рабочей смеси;
4.2.“топливо” - управляющий длительностью впрыска топлива.
На основании этих данных, система состоит из следующих функциональных узлов:
1. узел обработки входных сигналов;
1.1. блок фиксации сигналов (измерение длительности);
1.2. блок вычисления значений коррекции;
2. узел формирования выходных сигналов;
3. ПЗУ;
4. схема сопряжения с сигналами датчиков.
С помощью переключателей S1, S2 пользователь может выбирать алгоритм коррекции сигнала “зажигание” и тип впрыска топлива. При установке переключателя S1 в положение 0 выбирается адаптивный алгоритм коррекции сигнала “зажигание”, в положении 1 - алгоритм коррекции на основе данных из ПЗУ. Установкой переключателя S2 в положение 0 выбирается асинхронный впрыск (выходной сигнал “топливо” аналогичен входному плюс коррекция), если же S2 - 1, то сигнал “топливо” корректируется и выдается в синхронном виде.
Система работает в циклическом режиме, постоянно (раз в период корректируемого сигнала) вычисляя значения коррекции. Практически программа представляет собой два программных таймера (для сигналов “зажигания” и “топливо”), работающих на основании данных, получаемых в результате прерываний. Внутренний системный 8ми разрядный таймер стартует во время пуска системы. Для достижения точностных характеристик при измерении корректируемых сигналов внутренний таймер программно расширен до 17ти разрядного счетчика. При частоте HS генератора равной 10МГц и пределителе 1:16 ( период внутреннего таймера 6,4 мкс) максимальный период измеряемого сигнала 0,8389 с (частота вращения 35 об/мин).
Алгоритм работы системы. В момент пуска единственный раз запускается настройка системы - установка портов ввода/вывода, делителя внутреннего таймера-счетчика, активные фронты входных сигналов (те фронты, по которым система будет входить в обработчики прерываний), размаскируются необходимые прерывания.
Анализируя флаги, выставляемые по окончанию коррекции, принятию входного сигнала и т.д. программа в каждый момент времени может определить свое состояние (ожидание прихода сигнала, корректировка, цикл выдачи сигнала и т.д.).
Коррекция входного сигнала состоит из нескольких этапов:
1. вычисление номера интервала частоты вращения коленвала двигателя;
2. ввод значения коррекции, соответствующего этому интервалу;
3. вычисление длительности коррекции (шаг * значение коррекции);
4. определение знака коррекции и изменение длительности корректируемого сигнала на значение длительности коррекции.
Из всего этого следует, что основная часть программы работает только по анализу флагов, устанавливаемых обработчиками прерываний.
В данной системе существуют три вида прерываний:
1. прерывание по переполнению таймера-счетчика;
2. прерывание по изменению фронта сигнала (“зажигание”) на выводе RB0;
3. прерывание по изменению уровня сигнала на выводе RB5 (“топливо”).
Самый наивысший приоритет (устанавливаемый программно по очереди анализа флагов в аппаратном регистре прерываний) имеет обработчик прерывания по переполнению таймера-счетчика. Это прерывание возникает каждый раз, когда счетчик переходит из состояния 0xFF в 0x00. Обработчик увеличивает восьмиразрядный регистр расширения разрядов таймера, и, при его переполнении, выставляет флаг переполнения 16ти разрядов таймера.
Обработчик прерывания на выводе RB0 выполняет следующие функции:
По отрицательному перепаду сигнала
1. вычисляет значение текущего периода сигнала “зажигание” и текущего шага коррекции этого сигнала;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.