Характеристики и работа контроллеров управления впрыском топлива Январь-5.1 Январь-7.2 и Микас-7.1 с микропрограммой J5LS

Сердцем системы впрыска является микроконтроллер SAF80C509 производства фирмы Infineon, с расширенной архитектурой MCS51. Он работает с тактовой частотой 16 мгц, что обеспечивает производительность логических операций 2.66 mips, или 375 наносекунд на 1 инструкцию.

Аппаратные средства этого кристалла и набор периферии в ЭБУ позволяют при небольших доработках ЭБУ строить системы управления двигателем с числом цилиндров до 8 либо без доработок управлять двигателями с числом цилиндров 2 или 4 для ЭБУ Январь-5.1 и 2-3-4 для ЭБУ Январь-7.2.  

Встроенный сопроцессор позволяет работать с целочисленной арифметикой и обеспечивает следующее время выполнения математических операций в зависимости от разрядности (включая загрузку и выгрузку операндов): 8*8 - 1.5мкс, 8/8 - 1.5мкс, 32/16 - 6.75 мкc, 16*16 - 6 мкс , 16/16 - 6 мкс

15-ти канальный Аналогово-цифровой преобразователь, разрядностью 10 эффективных бит, может в зависимости от требуемой точности преобразования, обеспечивать время преобразования от 3 до 52 мкс на канал. Реально большинство каналов использует разрешение 8 бит и опрашиваются за 3мкс. Однако в случае необходимости высокой точности преобразования (канал ДАД и каналы потенциометров электронного дросселя для систем M7ET-M7CNG) - применяется 10-ти битный режим опроса.

Функции 2D table lookup работают с таблицами размером 33 точки и 39 точек. Диапазон значений по оси X - от 0 до 255, выборка из таблицы с учетом линейной интерполяции производится за 15 мкс. Важные 2D таблицы имеют размерность 256 точек и выборка из них производится мгновенно.

Функции 3D table lookup могут работать с таблицами размера 16x16 и 32x16. Диапазон значений X Y - от 0 до 240,  при выборке для получения промежуточных значений микропрограмма также использует функцию линейной интерполяции. Выборка из таблицы 16x16 производится за 38мкс а из таблицы 32x16 - за 47мкс.

Пятиуровневая аппаратная система приоритетов выполнения задач позволяет рационально распределять процессорное время. Задачи с уровнем приоритета выше текущего могут прерывать выполнение текущей задачи. Задачи имеющие приоритет такой же как и текущие будут выполнены после завершения текущей.  

Самый низкий уровень (0) имеет  главный 20мс цикл вычислений. 

Уровень 1 имеют задачи:

1) Фильтрация ДМРВ или ДАД, расчет обогащения при увеличении дросселя и необходимой базовой топливоподачи для текущего такта работы двигателя и открытие соответствующей форсунки. Расчет производится на основе требуемого состава смеси и информации о наполнении воздухом полученной непосредственно на этом такте работы двигателя. Эта задача инициируется обработчиком ДПКВ при совпадении углового поворота диска с установленной в системе "фазой впрыска". Периодичность вызова задачи соответствует интервалу работы цилиндров (180 градусов ПКВ для 2х и 4-х цилиндрового двигателя или 120 градусов ПКВ для 3х и 6-ти цилиндрового).

2) Обработка сигнала канала детонации. Вызывается после прохода всех фазовых окон и чтения состояния интеграторов (114 градусов после ВМТ).

Уровень 2 имеет задача обработки пакетной отправки и приема байт по протоколу K-Line. (сами пакеты создаются и обрабатываются в главном цикле).

Уровень 3 имеет задача Цикла вычислений с интервалом 1мс. 

Уровень 4 имеет задача обработки сигналов датчиков положения коленчатого вала и фазы.

Подсистема времени:

В составе микропроцессора имеются 3 таймера счетчика. Основной из них T2. Его частота 16000000/96, что обеспечивает тик таймера = 6мкс. Это значение является базовым дискретом задержки при реализации многих алгоритмов связанных с положением коленчатого вала. Регистры Т2 используются модулями захвата и сравнения для обеспечения управления форсунками и зажиганием, а также определения оборотов двигателя и привязки всех событий в системе управления по углу поворота коленчатого вала. 

Таймер T0 микропроцессора используется только в ЭБУ Январь-7.2, для аппаратного подсчета импульсов поступающих из схемы детектора детонации.

Таймер T1 микропроцессора используется для формирования временного интервала с периодичностью 1мс. Частота 1кгц образуется в результате деления тактовой частоты 16000000/6/2/1333=1000. Эта частота необходима для работы цикла 1мс. В ПО 251ALL таймер T1 используется для определения оборотов турбокомпрессора а частота 1кгц при этом формируется таймером T0.

Так же микропроцессор содержит специализированные таймера:

Таймер сравнения CT используется для формирования ШИМ в каналах адсорбера и управления давлением наддува. Он запрограммирован для получения частоты ШИМ 15.258гц, однако в некоторых случаях эта частота может быть изменена (например при применении однопроводного РХХ).

Таймер сравнения CT1 формирует прерывания с частотой 2кгц (0.5ms) для обеспечения отсчета таймаута приема пакета данных по K-line. В версиях ПО Микас-7ET с электронным дросселем и в блоке Январь-7.2 с моментным РХХ - используется для управления этими устройствами (при этом таймаут приема пакета считается в цикле 1мс с более низкой точностью).

Кроме того в системе имеются 2 генератора тактовых частот для асинхронных приемопередатчиков (USART0 и USART1), которые настраиваются на скорость 10400 для USART0 (возможно изменение на 38400 и 57600 - в последнем ПО на любую) для работы K-line и 19200 для USART1 для подключения Innovate LC1 по цифровому каналу, и обеспечения цилиндр - синхронного измерения состава смеси для контроллера ШДК - LC1F.  

Цикл 1мс:

В цикле 1мс микропрограмма обеспечивает работу следующих задач:

1) Отсчет времени для запуска главного цикла вычислений (интервалов 20мс).

2) Определение потери связи по K-line и закрытие диагностической сессии при такой потере. Определение таймаутов связи.

3) Тестирование каналов зажигания с диагностического сканера (только в режиме прямого управления зажиганием на остановленном двигателе).

4) Обеспечение движения шагового РХХ (выбор направления и разгон) для синхронизации текущего положения шагового РХХ (FSM) c желаемым положением шагового  РХХ (SSM).

5) Опрос канала АЦП ДМРВ или ДАД для последующей фильтрации сигнала.

6) Работу многоискрового режима зажигания при пуске двигателя (только блоки Январь-5.1 Микас-7).

7) ШИМ управление клапаном адсорбера (частота 15.6гц) (Только блоки Январь-7.2 - в других ЭБУ адсорбер управляется аппаратно).

8) Опрос датчика скорости автомобиля, и подсчет импульсов c датчика скорости.

9) Отсчет времени для СSV лога ПАК "Матрица" c дискретом 1мс. 

Обработчик датчика положения коленчатого вала (описание для диска формулы 60-2).

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

Для синхронизации системы управления по углу поворота используется специализированный реперный диск BOSCH MOTRONIC 60-2. На диске с равным интервалом в 6 градусов расположены 58 зубьев c номерами от 1 до 58, зубья номер 59 и 60 отсутствуют. Диск привязан по углу таким образом, что при установке первого цилиндра двигателя в ВМТ  вершина 20-го зуба (15 зуба для систем с 6ю цилиндрами) оказывается напротив датчика положения коленчатого вала, 1-м считается зуб после отсутствующих по ходу вращения диска.  

Событие обработчика ДПКВ инициируется изменением состояния входа P1.3 микроконтроллера, при этом производится аппаратный захват слепка таймера счетчика T2 и копирование его состояния в регистры CCL3 CCH3. В дальнейшем эта информация будет использоваться при всех расчетах с привязкой по углу, определения оборотов, установки момента зажигания и прочих.  

Исходя из формы задающего диска обработчик ДПКВ может работать в 2-х режимах:

Поисковый - система управления производит поиск маркерного отрезка с отсутствующими 59 и 60 зубьями, в этом режиме невозможно формирование импульсов зажигания и впрыска. 

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

Обработчик прерывания ДПКВ имеет несколько важных локальных переменных:

1) Раскладка одного оборота двигателя на 6-ти градусные интервалы - переменная "MSYN" принимает значения от 0 (1 зуб) до 59 (60 зуб) и обеспечивает привязку событий обработчика к номеру зуба шестерни ДПКВ. 

2) Раскладка одного такта двигателя на 6-ти градусные интервалы - переменная "NSYN" принимает значения от 0 (1 зуб или 31 зуб) до 29 (30 зуб или 60 зуб) и обеспечивает привязку событий к 180 градусному такту двигателя. (для 3-6 цилиндрового от 0 до 19 и 120 градусов соответственно). 

3) Номер цилиндра (такта) двигателя - переменная "NTAKT" принимает значения от 0 до 3 (от 0 до 5 в 6-ти цилиндровом ПО) и  обеспечивает привязку событий к конкретному цилиндру двигателя. 

4) Интервал "TT" между последними соседними зубьями в 6мс тиках таймера Т2 - в поисковом режиме позволяет производить синхронизацию с диском, в синхронизированном используется имитатором отсутствующих зубьев и логикой формирования импульсов УОЗ.

5) "Предыдущий" интервал "TT" между 2мя физическими зубьями "TSYN" - используется для контроля синхронизации и обеспечения имитации отсутствующих зубьев на диске ПКВ.

6) Абсолютное текущее время синхроимпульса "TABS"  - состояние таймера Т2 аппаратно захваченное в момент срабатывания модуля захвата по критерию захвата сигнала с ДПКВ. (СС3 микропроцессора С509).

Поисковый режим.

Поисковый режим имеет регистр состояния и таким образом реализует алгоритм поиска в автоматном стиле (машина состояний). При первоначальной инициализации система переходит в состояние 0:

Состояние 0-1-2 система проходит последовательно с появлением входного импульса ДПКВ и они нужны лишь для того, чтоб накопить информацию о 2-х последних интервалах (а для этого очевидно необходимо минимум 3 прерывания ПКВ) и сформировать переменные "TT" и "TSYN".

В состоянии 2 и 3 система проверяет переменные "TT" и "TSYN" на соответствие критериям нормальности зубьев и если интервалы считаются нормальными - переходит в состояние 3 из 2 (при этом код состояний одинаков).

Собственно основной поиск происходит в состоянии 3. Для примера мы возьмем обороты стартера 400RPM. При этом число тиков в таймере Т2 на интервале короткого (6 градусов) зуба будет = 100000мкс/(400rpm/60сек)/60зубьев/6мкс=416.666 Пропуск в 18 градусов соответственно будет 416.666*3=1250 Для поиска в случае пропуска 2-х зубьев мы производим вычисление результата в виде DELS=TT-2*TSYN. Запомним его знак и далее если результат отрицателен - комплементируем его.  Для нормальных зубьев далее будет выполнятся правило:

 0.5*TSYN < DELS < 1.5*TSYN 

При этом для 1 зуба ДПКВ знак DELS будет положительным! Все возможные исходы приведены в таблице:

TT TSYN Что происходит DELS 0.5*TSYN 1.5*TSYN Вывод и что мы делаем.
416.666 416.666 2 коротких интервала подряд (положение неизвестно) -416.666 208.333 624.999 Нормальные зубья - переход в режим 3.
416.666 1250 Длинный а затем короткий интервал (положение - зуб 2) -2083.333 1041.667 3125 Промах мимо 1 зуба - переход в режим 3.
1250 416.666 Короткий а затем длинный интервал (положение - зуб 1) 416.666 208.333 624.999 Если мы в режиме 3 - синхронизация завершена 1й зуб найден
416.666 208.333-1 Ошибка - импульс в ползуба минус 1 дискрета 2 103.666 310.999 Ошибка: нарушение критерия нормальности - переход в режим 2
208.333-1 416.666 Ошибка - импульс в ползуба минус 1 дискрета -625.999 208.333 624.999 Ошибка: нарушение критерия нормальности - переход в режим 2

Работа имитатора отсутствующих зубьев. 

Для возможности привязки событий в системе управления во всем диапазоне углов с точностью 6 градусов программа использует имитацию отсутствующих зубьев номер 59 и 60, таким образом для менеджмента событий ДПКВ восстанавливается целостность реперного диска и обеспечивается полная незаметность отсутствующих зубьев. При этом программа естественно предполагает равноускоренное движение реперного диска на интервале 57-58-59-60 зубьев, поскольку в реальности это движение может быть и не равноускоренным - положение прорези специально выбрано таким образом, чтоб зубья 59 и 60 не попадали в критическую зону управления двигателем по углу КВ (например область формирования УОЗ - +60 -10 ПКВ для каждого цилиндра соответственно, или область детонационного окна). В системах управления, где положение прорези может меняться в широких пределах, зачастую неопытные установщики не учитывают подобные тонкие моменты, что может привести к серьезному ухудшению качества управления двигателем, приводя к возникновению значительных динамических ошибок установки УОЗ для одной из пар цилиндров и др важных переменных. Таким образом положение прорези не может быть изменено! Для 4-х (2х) цилиндровых двигателей в ВМТ должен находится 20 зуб шестерни, для 6-ти(3х) цилиндровых - 15-й.

В синхронизированном режиме при обработке события 58 зуба ДПКВ программа предполагает отсутствие 59-го зуба, поэтому она переключает 3-й канал модуля capture-compare из режима захвата в режим сравнения, путем сброса битов 6 и 7 в регистре CCEN, после чего микропрограмма берет ранее захваченное состояние таймера T2 на 58 зубе ("TABS")и добавляет к нему угловой интервал в тиках Т2 между зубьями 57 и 58 ("TSYN"), таким образом предугадывая момент прохода над датчиком 59 зуба на основе предположения о равноускоренном вращении диска в этом угловом интервале. Полученное значение записывается в ССL3 CCH3, после чего происходит выполнение событий привязанных к 58 зубу и передача управления задачам с низшим приоритетом. Когда модуль сравнения обнаружит совпадение регистров таймера T2 и 3-го канала сравнения возникнет новый флаг события ДПКВ, который будет обработан как отсутствующий 59 зуб. Точно также будет установлен момент прохождения отсутствующего 60-го зуба, обработчик которого снова переводит 3-й канал модуля capture-compare в режим захвата, таким образом имитатор будет отключен и следующий вызов обработчика будет инициирован аппаратно - 1-м зубом шестерни. 

Контроль синхронизации. 

В синхронизированном режиме с имитацией зубьев 59-60 обработчик физически присутствующих зубьев 1-58 постоянно проверяет период импульсов с ДПКВ на признак отсутствующих зубьев (текущий период импульсов("TT")/2 > прошлый период импульсов("TSYN")). Обнаружение такого состояния выставляет флаг признака ошибки ДПКВ и переводит программу в поисковый режим. При этом формирование импульсов зажигания и впрыска прекращается. Такое состояние является срывом синхронизации - множественные признаки ошибки ДПКВ приводят к фиксированию ошибки ДПКВ для диагностики.. 

Опрос датчика фазы.

Производится в момент прохождения 1-го зуба реперного диска 60-2 напротив ДПКВ. При этом положение прорези датчика определяет конец фазы впуска для 1 цилиндра (посадка на седло впускных клапанов 1 цилиндра). Если уровень сигнала на пине  входного порта ДФ P1.2 не изменился  после двух идущий подряд опросов - возникает состояние "ошибка ДФ".

Начало сегмента двигателя.

Новый сегмент двигателя начинается при прохождении зубьев 1 или 31 диска 60-2 напротив ДПКВ. При этом: NSYN=0, MSYN = 0 (если зуб был 1й) или = 30 (если зуб был 31й) счетчик NTAKT увеличивается на +1 пока не достигает предела (=3 в 4-х цилиндровом двигателе или =5 в 6-ти цилиндровом) если значение в счетчике выше предела - счетчик обнуляется!

Интервал 1 сегмента двигателя таким образом  = 180 градусов ПКВ или 30 зубьев диска ДПКВ для двигателя с числом цилиндров = 4.

Формирование импульсов зажигания. 

Угол опережения зажигания представляет собой знаковое число с разрядностью 8 бит и шагом 0.5 угловых градуса, что позволяет реализовать УОЗ в диапазоне от +72 до -56 угловых градуса. Для точного формирования импульса зажигания в главном цикле вычислений микропрограмма для каждого цилиндра производит индивидуальный расчет 4-х параметров:

1) Момент зажигания ("FAZOF") по номеру зуба ДПКВ (привязка по углу с точностью 6 градусов)

2) Задержка момента зажигания ("DELOF") по углу, выраженная как коэффициент имеющий значение 1.00 при 6 градусах (привязка по углу с точностью 0.5 град)

3) Момент начала накопления энергии ("FAZON") по номеру зуба ДПКВ.

4) Задержка момента накопления энергии ("DELON") по углу, выраженная как коэффициент имеющий значение 1.00 при 6 градусах.

При расчетах, из общего "базового УОЗ" после всех необходимых преобразований для каждого цилиндра вычитается смещение по детонации, и индивидуальная цилиндровая коррекция заданная в калибровках, результат делится на 6 (интервал зубьев по углу) и трансформируется с учетом нахождения 20 зуба диска в ВМТ 1 цилиндра. Остаток от операции деления умножается на 6 (выделяется) и трансформируется в раскладку задержки момента зажигания от выбранного зуба.

Время накопления полученное из калибровки "Время накопления зажигания" трансформируется в угловые градусы, путем перемножения на обороты двигателя и связывающий коэффициент  и ограничивается сверху значением 174 град а снизу 12 град, чтобы не допустить перекрытие импульса и пропуск формирования УОЗ. Момент начала накопления определяется путем вычитания из расчетного углового момента зажигания полученного углового времени накопления.

Алгоритм установки зажигания находится в обработчике ДПКВ.

Подготовка данных для очередного цилиндра зажигания производится одновременно с запуском обработчика детонации предыдущего связанного с ним общим каналом зажигания, в точке 66 градусов ((19-8)*6) до ВМТ (NSYN=FAZWDT=8). При этом микропрограмма используя переменную номера цилиндра двигателя в котором только что, прошел рабочий ход, определяет, какой цилиндр из пары с ним будет следующим, например: если рабочий ход был в 4-м - следующим будет первый, если первый то 4-й. Определив номер следующего парного цилиндра, микропрограмма перебрасывает 4 рассчитанных связанных с ним переменных УОЗ в рабочие ячейки управления соответствующего канала зажигания. Управление каналами зажигания на выходах P5.1 P5.2 после этого производится полностью раздельно и автономно.

Для формирования сигнала начала накопления энергии в катушке зажигания диспетчер прерывания ДПКВ проверяет совпадение текущего номера зуба шестерни 60-2 ("MSYN") с "Моментом начала накопления по зубу" ("FAZON"), если обнаружено соответствие - программа производит вычисление времени задержки:

Коэффициент задержки момента накопления энергии по углу ("DELON") перемножается на переменную "время 6-ти градусного поворота коленчатого вала" и добавляется к состоянию Т2 захваченному на входе в обработчик ДПКВ ("TABS") прочитанного из регистров CCL3 CCH3, полученный результат используется для программирования модуля сравнения и сброса (compare and clear), и записываются в регистры COMCLRH COMCLRL. В зависимости от выбранного канала зажигания в регистр CLRMSK помещается значение 02h (P5.1) или 04h (P5.2). На этом функции диспетчера прекращаются и дальнейшее управление зажиганием производится аппаратно с использованием COMCLR модуля.

При совпадении значений в таймере T2 и регистрах COMCLR, которое произойдет через заданное время задержки, микроконтроллер переводит выбранную линию порта P5 в состояние логического нуля. Драйвер зажигания  TPS2814 производит инверсию этого сигнала и усиление по току, таким образом на соответствующем выходе ЭБУ появляется управляющее напряжение +5v. Если в системе имеется модуль зажигания General Motors - сигнал непосредственно подается на его выходные ключи, что приводит к подключению соответствующей катушки зажигания в режим накопления энергии.   

Установка момента зажигания начинается при совпадении текущего зуба шестерни ("MSYN") с "Моментом зажигания по номеру зуба"  ("FAZOF"), также как описано ранее производится вычисление времени задержки: Коэффициент задержки момента зажигания по углу ("DELOF") перемножается на время 6-ти градусного поворота коленчатого вала и добавляется к состоянию Т2 захваченному на входе в обработчик ДПКВ ("TABS") прочитанного из регистров CCL3 CCH3, полученный результат используется для программирования модуля сравнения и установки (compare and set), и записываются в регистры COMSETH COMSETL. В зависимости от выбранного канала зажигания в регистр SETMSK помещается значение 02h (P5.1) или 04h (P5.2). На этом функции диспетчера прекращаются и дальнейшее управление производится аппаратно с использованием COMSET модуля.

При совпадении значений в таймере T2 и регистрах COMSET микроконтроллер переводит выбранную линию порта P5 в состояние логической 1. Драйвер зажигания TPS2814 производит инверсию этого сигнала и усиление по току, таким образом на выходе ЭБУ оказывается низкий потенциал, который информирует модуль зажигания о необходимости разорвать цепь подачи тока на катушку. Магнитное поле, пересекая витки катушки индуцирует во вторичной обмотке высокое напряжение, пробивающее зазор в свече, возникает искра.

В 6-ти цилиндровых прошивках ЭБУ используется так же третий канал (P5.3) зажигания. А в 8-ми цилиндровых - четвертый  (P5.0). Принципы управления от этого не меняются.

Подобная методика формирования импульса зажигания позволяет достичь абсолютную вычислительную точность по углу и 6мкс по времени задержки, что в сумме на 10000 оборотах двигателя дает максимальную погрешность установки УОЗ +-0.3 угловых градуса если диск 60-2 установлен в нулях.  Однако возможно увеличение этой цифры за счет постоянной времени работы интегрирующих звеньев как самого канала формирования сигнала ДПКВ так и исполнительных устройств зажигания. Поэтому в ЭБУ предусмотрена компенсация динамической ошибки связанной с увеличением оборотов. Для компенсации  в программе имеется поправочный коэффициент определяемый опытным путем на реальном наборе датчиков и исполнительных механизмов и устраняющий рассогласование прохождения сигнала, коэффициент представляет собой поправку по углу, заданную для оборотов 10240 и уменьшающуюся пропорционально уменьшению оборотов (реальное значение 2.5 град). Таким образом достигается финальная точность УОЗ не хуже 0.5 угловых градуса во всех режимах работы ЭСУД для любых поддерживаемых оборотов двигателя. Подобная точность на высоких оборотах в настоящее время не доступна на многих aftermarket системах, в которых используются программные методики менеджмента в ос реального времени, где динамические ошибки на высоких оборотах могут быть достаточно велики.

Работа мягкой отсечки. 

Мягкая отсечка позволяет реализовать более точное управление двигателем на предельных оборотах, и подразумевает не только управление подачей топлива но и управление зажиганием. Микропрограмма вычисляет разницу между текущими оборотами и порогом оборотов отсечки и производит вырезание зажигания если эта разница менее 200rpm, разница оборотов определяет сколько импульсов зажигания необходимо пропускать. Если разницы между оборотами нет - отключается топливо и зажигание. Если разница 40 rpm - отключаются каждый 2-й импульс зажигания (2 цилиндра), 80rpm - каждый 3-й итд. Пропуск импульса зажигания осуществляется путем обхода процедуры начала накопления энергии в катушке зажигания по флагу взведенному диспетчером мягкой отсечки.

Расчеты топлива.

Расчет новой порции топлива инициируется задачей обработчика сигнала ДПКВ и начинается сразу же после его завершения в случае отсутствия задач с более высоким приоритетом. Топливо рассчитывается один раз за каждый такт для каждого цилиндра индивидуально c прохождением всей схемы расчетов.  Микропрограмма вычисляет обороты двигателя и используя таблицы квантования - получает точки квантования для выборки таблиц. после этого расчет может пойти различными путями, рассмотрим наиболее популярный метод - вычисление GBC с использованием ДАД:

Вычисление расхода воздуха с использованием ДАД.

На первом этапе производится чтение накопительного фильтра АЦП ДАД и расчет среднего арифметического для всей выборки данных о давлении. Используя "смещение" и "наклон характеристики" ДАД программа пересчитывает среднее напряжение выборки в абсолютное давление. В случае фиксации ошибки ДАД используется виртуальное давление выбираемое из таблицы по оборотам и положению дросселя. 

Вычислив давление производят расчет GBC фактора - путем перемножения давления с "цилиндровым объемом двигателя",  поправками по температуре ОЖ и воздуха (в случае не использования "температуры заряда") или на фактор температуры заряда. Далее производится выборка значения волюметрической эффективности (VE) заданной в таблицах. Таблиц VE несколько, в частности они отличаются размерностью. 32x16 или 16x16, положением фазовращателя. факторами осей нагрузки (обороты или давление). и др... Полученное VE перемножают на ранее рассчитанный GBC фактор и фильтруют методом скользящее среднее с коэффициентами определяемыми режимом работы двигателя. Результатом является "Цикловый Расход Воздуха" (GBC). Массовый расход воздуха получают делением его значения на время поворота коленчатого вала на 180 градусов - время 1 цикла (120 для 6-ти цилиндрового ДВС).

Базовая топливоподача.

Для вычисления времени впрыска, ранее рассчитанный цикловой расход воздуха делят на целевой состав смеси  (target AFR) получая таим образом первичную цикловую подачу топлива. Общая подача топлива (GTC) включает в себя так же аддитивные поправки от ускорительных насосов GTCDR GTCPR и поправку системы downshift assist (топливо подающееся для раскрутки двигателя перед включением передачи), мультипликативную поправку от системы лямбда-регулирования (если есть), мультипликативную поправку режима 2 (в случае использования битопливной схемы с дискретным переключением). Мультипликативную поправку для коррекции подачи топлива в безсливной магистрали в зависимости от давления в ресивере (если на машине есть такая магистраль).  Так же может быть задействован так называемый фактор стехиометрии топлива, это значение представляет собой разницу в стехиометрии фактического топлива в двигателе и стехиометрии некоторого базового топлива для которого простроены базовые характеристики модели (бензин)). Т.е. все параметры  в данной схеме заданы не для реального топлива а референсного топлива (если бы оно было обычным бензином). 

В случае работы в попарно-параллельном режиме впрыска полученный GTC делится на два, так как такой режим предусматривает одновременную подачу порции топлива двумя форсунками.  

Для перевода GTC в время впрыска производится перемножение полученного значения на индивидуально заданные коэффициенты статической производительности форсунок к результату добавляется время lag time (динамическая производительность форсунок) и финишное значение ограничивается снизу минимальным временем впрыска..

Далее по таблице определяющей паттерн связи конфигурации системы с использованием флага режима впрыска и номера цилиндра в котором идет впрыск определяется, какие из форсунок должны быть открыты в данный момент времени.  Используя полученный паттерн программа открывает заданные форсунки путем перевода в состояние лог0 выхода соответствующего связанного с форсункой порта P4 или P1. Одновременно включается таймер сравнения для заданного канала и в него программируется задержка соответствующая заданному времени впрыска топлива с дискретом 6мкс, после чего вывод порта P4 переводится в состояние лог1 однако фактически на выходе микропроцессора это состояние возникнет только после того, как пройдет выдержка времени модуля сравнения т.е. форсунка выключится через строго заданное время. 

Для компенсации смещения начальной фазы впрыска связанной с расчетами по топливу в программе предусмотрен механизм точно такой же как ранее описанный для УОЗ.

Работа алгоритма детектирования детонации. 

Начало работы детектора детонации (начало окна обзора) задается в калибровке "фаза начала измерения детонации", конец - в "фаза окончания измерения детонации". Калибровки, изначально заданные в градусах по коленчатому валу транслируются главным циклом вычислений в раскладку 180-ти градусного такта двигателя по КВ на 6 градусные интервалы и к ним добавляется смещение реперного диска ПКВ (20-й зуб) VMTDEL/12. В обработчике ДПКВ при совпадении "фазы начала измерения" ("KSS" - knock sensor start) взводится бит P1.4,  соединенный с контактом INT/HOLD мс HIP9010, при этом начинается процесс накопления сигнала на интеграторе микросхемы. Накопление продолжается, пока не совпадет угол поворота коленчатого вала и "фаза окончания измерения" ("KSE" - knock sensor end), после чего вывод INT/HOLD переводится в состояние лог 0 и микросхема HIP9010 фиксирует состояние интегратора. 

Чтение состояния интегратора подключенного к 7-му канала АЦП микропроцессора, производится обработчиком ДПКВ, при повороте коленчатого вала на угол 102 градуса  (180-(19-6)*6) после ВМТ ("NSYN"=6). Таким образом к этому моменту состояние интегратора (фаза окончания измерения) должно быть зафиксировано. Из прочитанного значения вычитается собственный шум интегратора "ADDET0", которым является значение, прочитанное из канала детонации при остановленном двигателе (первом включении зажигания) и ограниченное сверху порогом 0.5v. Полученное после вычитания значение является уровнем сигнала в канале детонации (ADCDET) на основании которого и производятся все дальнейшие вычисления.

Запуск задачи обнаружения детонации производится обработчиком ДПКВ через 114 градусов после ВМТ (через 12 градусов после чтения состояния интегратора) "NSYN"=FAZWDT=8. Обработчик ДПКВ передает в задачу номер цилиндра в котором в данный момент идет "рабочий ход" двигателя для цилиндровой селекции.

Нормализация по времени окна. 

Поскольку окно оценки сигнала детонации (время интегрирования) задается угловыми интервалами, алгоритм должен использовать механизмы нормализации уровня сигнала в канале учитывающий изменение продолжительности окна в зависимости от оборотов двигателя. Для такой нормализации используется встроенный в микросхему HIP9010 аттенюатор. 

Калибровка "Настройка аттенюатора" на низких оборотах позволяет уменьшить общее усиление канала детонации, практически не влияя на него на высоких, обеспечивая тем самым необходимый уровень сигнала во всем диапазоне оборотов. Таким образом нормализация производится аппаратно и не требуется высокая точность для снятия отсчетов АЦП. Соответствие значений в калибровке коэффициентам усиления микросхемы можно найти в DataSheet HIP9010.

Частотная настройка фильтров.

В программе предусмотрено изменение частоты настройки фильтра HIP9010 в зависимости от оборотов двигателя, для чего используется калибровка "Частота настройки фильтра" содержащая непосредственные численные значения из таблицы частот (см. DataSheet HIP9010).

Обновление регистров микросхемы HIP9010 производится в каждом цикле обработки информации о цилиндре двигателя.

Адаптация по шуму двигателя. 

Механизм детектирования детонации позволяет компенсировать изменение уровня сигнала с датчика детонации связанного с моментом его затяжки и собственным шумом двигателя. Для такой адаптации используется механизм настройки постоянной времени интегратора. Система производит адаптацию по шуму двигателя в точке, где детонация физически не возможна. Режимная точка для такой адаптации заданна в калибровке "зона адаптации по шуму" обычно 2500 rpm 0% дросселя. При попадании в зону адаптации система производит фильтрацию ADET асимметричным фильтром, коэффициент фильтрации которого задан в калибровках ЭБУ. Полученное значение собственно считается уровнем шума (NOISE), оно должно вписываться в диапазон заданный калибровками "макс порог шума для переключения аттенюатора на уменьшение" и "минимальный порог шума для переключения аттенюатора на увеличение". Если уровень шума выходит за указанные пределы - производится изменение состояния постоянной времени интегратора микросхемы HIP9010.  Существует всего 3 возможных integrator time constant - 40,80,160 мкс. Если уровень шума высокий - система увеличивает постоянную времени интегратора, таким образом уменьшая результирующее напряжение на его выходе, если низкий - наоборот уменьшает постоянную времени увеличивая напряжение. При этом уровень шума и значения всех фильтров автоматически пересчитываются, с учетом нового значения постоянной времени интегратора

Обновление состояния аттенюатора, интегратора и частотной настройки фильтров HIP9010 производится по окончании каждого вызова обработчика детонации (1 раз за 180градусов поворота КВ).

Детектирование ошибок низкий и высокий шум двигателя при адаптации.  

Если постоянная времени интегратора = 40мкс система сравнивает  уровень шума двигателя с порогом "низкого уровня шума" и выставляет соответствующую ошибку, если NOISE < порога. Если постоянная времени = 160 мкс - проверяет превышение порога "высокого уровня шума", ошибка выставляется если NOISE > порога.  

Для обнаружения детонации в микропрограмме реализовано 2 алгоритма - пороговый и дифференциальный.

Пороговый механизм обнаружения детонации. 

Пороговый механизм детектирования детонации оперирует  абсолютным значением уровня сигнала, однозначно указывающего на детонацию в двигателе. Детонация в соответствующем цилиндре обнаруживается, если выполняется следующее условие:

ADET > NOISE  * "Относительный порог детонации" * "Коррекцию порога детонации".

Калибровка "Коррекция порога детонации" может быть настроена на ПАК Матрица в автоматическом режиме. 

Дифференциальный механизм обнаружения детонации. 

Дифференциальный алгоритм позволяет обнаруживать детонационные стуки по превышению уровня сигнала в цилиндре для данного такта над средней мощностью сигнала текущего цилиндра. Средняя мощность рассчитывается для каждого цилиндра индивидуально путем фильтрации ADET этого цилиндра на достаточно длительном интервале. Если уровень сигнала не превышает 0.5 NOISE - считается, что шум в цилиндре слишком слабый и  детонация данным методом не обнаруживается.

Детонация обнаруживается, если: ADET > Средняя мощность сигнала в цилиндре * "Порог детонации".

Обнаружив детонацию, система взводит один из четырех флагов (в соответствии с номером цилиндра) которые в дальнейшем обрабатываются в главном цикле вычислений.

Диагностирование ошибки "Обрыв датчика детонации".

Производится путем сравнения в главном цикле вычислений суммы средних мощностей сигналов во всех цилиндрах деленной на 4 (средней мощности всех цилиндров) с калибровкой "Минимальный уровень шума для диагностики". И установкой флага ошибки "Обрыв датчика детонации" если при статистическом анализе, в более чем 50% таких проверок сумма средних мощностей окажется ниже заданного порога.

Обработчик детонации в главном цикле вычислений (20ms). 

Обработчик проверяет признак нахождения системы в "Зоне контроля детонации" если признака нет - контроль не производится. При появлении признака (первичный вход в зону контроля с низких нагрузок) производится обнуление переменных всех цилиндровых отскоков УОЗ (если таковые были ранее). Так же проверяется "Температура включения контроля детонации" - она должна быть превышена для начала работы алгоритма обработки.

При активных в системе ошибках ДМРВ, ДАД или ДПДЗ детонация не обрабатывается - смещение УОЗ не производится.

В случае обнаружения любой из трех ошибок датчика детонации обработчик устанавливает постоянное смещение УОЗ в соответствии с калибровкой "Максимальное смещение УОЗ при детонации".

В нормальном режиме функционирования, единичное детектирование детонации не приводит к изменению УОЗ, для исключения возможных ошибок детектирования, вызванных механическими ударами по двигателю (например мелкими камушками) или щелчками связанными с температурным расширением его компонентов. Однако каждое детектирование детонации выставляет флаг "признак обнаружения детонации" передаваемый на диагностику. Если же в течении времени указанного в калибровке "Минимальное время детектирования детонации" происходит вторичное детектирование - в соответствующем цилиндре производится отброс УОЗ на 2 градуса, и отсчет периода времени детектирования начинается заново, таким образом следующее детектирование детонации в период этого времени так же приводит к отбросу УОЗ на 2 градуса и так далее. Калибровка "Максимальное смещение УОЗ при детонации" ограничивает значение отскока УОЗ которое может быть достигнуто алгоритмом. Все значения рассчитываются индивидуально для каждого цилиндра.

Возвращение УОЗ к базовым расчетным значениям происходит с дискретностью шага 0.5 градуса и интервалом шага заданного в калибровке "Период восстановления УОЗ" в том случае, если за этот период не происходило нового детектирования детонации в соответствующем цилиндре двигателя. 

 

Цикл и средства разработки программного обеспечения J5LS. 

  Цикл разработки ПО J5LS состоит из нескольких стадий:

1) Запрос на разработку функциональности от пользователя или от разработчика ПО.

2) Разработка концептуальной модели функции. Анализ реализуемости. Формирование требований. 

3) Разработка функции: Моделирование. Симуляция. Кодирование. Анализ. 

4) Интеграция функции в ПО J5LS. (в текущую версию- в новую версию- в новое поколении версий).

5) Калибровка и тестирование функции на испытательном стенде с двигателем или реальном автомобиле.     

Система нумерации версий J5LS.

Позиция 1 - Тип электронного блока управления двигателем:

J5 - Январь-5.1,    J7 - Январь-7.2,   M7 - Микас-7.1, V5 - VS 5.1 (старая реализация), M1 - BOSCH M1.5.4, J4 - Январь-4 (4.1), S5 - VS5.1 (новая реализация), M4 - BOSCH M4.6

(ПО для блоков М1.5.4-J4 при тестировании показало недостаточную производительность для работы алгоритмов т.к. в них используется 12-ти тактовый MCS51 контроллер).

Позиция 2 - идентификатор программного обеспечения LS-LightSport.

Позиция 3 -  идентификатор имплант-мультиплекс стратегии а так же специальных версий.

_ - базовая версия. 

D - Специальная версия ПО ЭБУ Январь-5.1 для фазированого управления 2мя рядами топливных форсунок в 4-х цилиндровом двигателе.

о - Имплант 3-цилиндра на базе ЭБУ Январь-7.2 Ока Евро-3. в замену ЭБУ Bosch M7.9.7+ xiali.

g - Имплант 4-цилиндра на базе ЭБУ Январь-7.2 Hundai Getz и другие в замену ЭБУ Kefiko.

m - Мультиплекс версия. Специальное ПО предназначенное для создания систем для управления двигателями 8 или 12 цилиндров на базе 2-х ЭБУ с использованием шины обмена информацией между ЭБУ.

Позиция 4 - идентификатор кодирования типа двигателя и числа цилиндров.

V - Базовая версия ПО. ВАЗ. Репер 60-2. 20й зуб в ВМТ 1 цилиндра.

X - Версия для автомобилей Toyota с репером 36-2 (3sgte и аналоги)

Z - Версия для автомобилей VW Volvo Renault и др. - Репер 60-2 15й зуб в ВМТ 1 цилиндра.

F - Версия для автомобилей Форд - репер 36-1 

6  - Версия для 3-х или 6-ти цилиндрового двигателя. Репер 60-2. 15й зуб в ВМТ 1 цилиндра.

Позиция 5 - Поколение версий. (1-е 2-е 3-е 4-е 5-е)

Позиция 6 - Номер версии внутри поколения.

Одинаковой версией программного обеспечения считается любая версия совместимая по формату калибровок вниз. Совместимая по реализованным моделям основных алгоритмов. Т.е. такое программное обеспечение которое позволяет работать с любым из билдов ПО, единой (самой последней) картой калибровок. А так же производить ее настройку единым совместимым последним программным обеспечением. Так же в рамках единой  версии возможно производить обновление или откат ПО на любую из подверсий без каких либо ограничений.

Позиция 7 - Буква подверсии. Подверсии различаются по реализованной в них функциональности и целевому применению. 

Структура объекта версии.

Каждая версия программного обеспечения J5LS содержит определенный набор файлов необходимых для сборки ПО. В рамках одной версии все возможные варианты ПО собираются из единого файла исходного кода - это гарантирует единую функциональность и обеспечивает быстрое исправление ошибок. Абстракция кода от конкретного аппаратного обеспечения и жестко запрограммированных датчиков положения коленчатого вала и фаз реализована на уровне условной трансляции, определений, и макрокоманд ассемблера.

Основные файлы объекта версии:

J5LS_V??.a51 - Исходные тексты проекта - базовое ПО.

??_hal.inc - файлы hadware abstraction level описывающие реализацию различных алгоритмов драйверов зависящую от схемотехники конкретного ЭБУ (по одному на каждый поддерживаемый ЭБУ M7,J7,J5,V5,J4,M1.5.4,М4.6).

*_eal.inc - файлы engine abstraction level содержат коэффициенты описывающие тип число зубьев и совместное положение датчиков ПКВ и ФАЗ на поддерживаемых двигателях и указание на тип ЭБУ для которого должна быть собранна прошивка. (по одному на каждую сборку двигатель + ЭБУ).

*.bat - пакетные файлы запуска сборки (по одному на каждый вариант прошивки + один общий для сборки всех вариантов одновременно).

J5LS_V??.ini - файлы описывающие формат карт калибровок.

J5LS_V??.BAT - пакетный файл сборки карт калибровок.

ПО для разработки прошивки.

Для работы с текстовыми файлами проектов в качестве редактора используется файловый менеджер Connect by Dmitry Orlov 

Сборка производится пакетом X8051 от A.D. Software выпущенным для ОС MS-DOS в 1985 году.