Микас спорт и 8 цилиндров

вопросы по работе с программами, FAQ
Сообщение
Автор
nikll
Сообщения: 161
Зарегистрирован: Ср май 27, 2009 9:26 am

#41 Сообщение nikll »

http://gazclub.ru/faq/?mess_id=671 тут тока по 5.4 и 7.1, а где по 11 взглянуть?

Contros

#42 Сообщение Contros »

протокол 11-го мне не встречался
а зачем он? если делать ПО, сразу реализовывать в нем протокол 7.1.

nikll
Сообщения: 161
Зарегистрирован: Ср май 27, 2009 9:26 am

#43 Сообщение nikll »

:), ну впринципе вариант, еще бы где нарыть сорцы микас-спорт приведенные в божеский вид

Аватара пользователя
Merlin
Сообщения: 453
Зарегистрирован: Пн фев 02, 2009 2:26 pm

#44 Сообщение Merlin »

Сорцы никто недаст, ИМХО потомучто их может и небыть в божеском виде.

nikll
Сообщения: 161
Зарегистрирован: Ср май 27, 2009 9:26 am

#45 Сообщение nikll »

Неповерю, один фиг ктото уже дизасмил прошивку микас7.1, приводил ее к виду способному к компиляции и переделывал, полюбому в процессе этого были сделанны комментарии, адекватно названны переменные (хотябы частично), по времени это примерно от двух недель до месяца кропотливого ковыряния по вечермм в огромных листингах ассемблерного кода.
Какой смысл в том что снова проделывать этот нелекий труд?
Всетаки я думаю что стоит привлеч разработчика Микас-спорт к этому проэкту и портировать микас-спорт с расширением функционала на платформу Микас11.

nikll
Сообщения: 161
Зарегистрирован: Ср май 27, 2009 9:26 am

#46 Сообщение nikll »

Много уважаемый разработчик Микас-спорт, прошу вас, поделитесь своим опытом с нами.
Я сидел и пытался обрисовать алгоритм работы обычного контроллера впрыска, получается довольно занятная и вместе с тем обьемная штучка. Нехотелось бы заного изобретать велосипед. Пускай не даже код, но хотябы детальное описание алгоритмов и общей архитектуры программы.

Contros

#47 Сообщение Contros »

almi на этом форуме нет..
Детальное описание алгоритмов, формат таблиц, протоколы - это все не главное. Имхо сложнее будет создать минимально работоспособную прошивку (схемы Микас-11 нет - придется выяснять за какую ногу ЭБУ какой порт отвечает и т.д.), на которой получится завести двигатель:
1. по сигналу с ДПКВ вычисляется частота вращения коленвала, момент ВМТ и НМТ
2. в ВМТ начинается опрос АЦП ДАД, в НМТ опрос АЦП ДАД заканчивается
3. вычисляется среднее значение АЦП ДАД
4. вычисляется давление в мбар: давление (мбар) =202.8*АЦП_ДАД (в вольтах) + 120 (это при использовании ДАД от 4063)
5. из забитой в прошивку такой таблички http://s51.radikal.ru/i134/0910/39/1ddecbd55e31.png берется время впрыска (в мс), координаты таблички: по X-обороты(об/мин), по Y-давление (мбар); (надо учесть, что без датчика фаз впрыск в 2 раза чаще, но время впрыска делим на 2); к времени впрыска из таблички надо прибавить 1.5мс для форсунок Siemens и 0.8мс для форсунок Bosch
6. УОЗ достаточно сделать постоянным 20-25 градусов

Стоковый 4062 на такой прошивке должен завестись.

Аватара пользователя
Jetsamnaz
JC Administrator
Сообщения: 1152
Зарегистрирован: Вт сен 23, 2008 5:12 pm

#48 Сообщение Jetsamnaz »

Contros писал(а):almi на этом форуме нет..
Детальное описание алгоритмов, формат таблиц, протоколы - это все не главное. Имхо сложнее будет создать минимально работоспособную прошивку (схемы Микас-11 нет - придется выяснять за какую ногу ЭБУ какой порт отвечает и т.д.), на которой получится завести двигатель:
1. по сигналу с ДПКВ вычисляется частота вращения коленвала, момент ВМТ и НМТ
2. в ВМТ начинается опрос АЦП ДАД, в НМТ опрос АЦП ДАД заканчивается
3. вычисляется среднее значение АЦП ДАД
4. вычисляется давление в мбар: давление (мбар) =202.8*АЦП_ДАД (в вольтах) + 120 (это при использовании ДАД от 4063)
5. из забитой в прошивку такой таблички http://s51.radikal.ru/i134/0910/39/1ddecbd55e31.png берется время впрыска (в мс), координаты таблички: по X-обороты(об/мин), по Y-давление (мбар); (надо учесть, что без датчика фаз впрыск в 2 раза чаще, но время впрыска делим на 2); к времени впрыска из таблички надо прибавить 1.5мс для форсунок Siemens и 0.8мс для форсунок Bosch
6. УОЗ достаточно сделать постоянным 20-25 градусов

Стоковый 4062 на такой прошивке должен завестись.
хочу поправить немного, врядли он заведется именно на этом :wink: На пуске, если брать стандартную схему, то там ничего не вычисляется из этого, а просто задаются поцикловые подачи, и многоискровое зажигание. Тогда он запустится уже.
В чем сила? В турбо!

Contros

#49 Сообщение Contros »

важно в режиме пуска надо сделать ниже УОЗ - 0-5 градусов
многоискровое зажигание второстепенно.. на траблерах его не было)
PS на начальной стадии протокол все равно придется реализовать для отладки.

nikll
Сообщения: 161
Зарегистрирован: Ср май 27, 2009 9:26 am

#50 Сообщение nikll »

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

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

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

Предлагаю заранине прикинуть минимально допустимую точность по всем параметрам, например продолжительность открытия форсунок нет смысла обсчитывать через каждые пол оборота на оборотах в 7000prm, вполне достаточно раз в два оборота.

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

Из опыта разработки highload проэктов могу подчеркнуть что вообще стоит делать общую структуру асинхронной, тогда будет прощще отслеживать ошибки, прощще находить узкие по производительности места, да и сама система станет более гибкой и расширяемой, расплатой за это будет очень точный подсчет времени выполнения каждой строчки кода, т.к. тут выходит посути кооперативная многозадачность (типа пародия на ос).

Пример логики на fsm (final state mashine - конечный автомат):
Есть главный цикл в котором проверяются флаги автоматов и данные с портов (опрос ДАД ДПРВ ДПКВ), как только данные на одном из портов изменились меняем нужные флаги.
Дальше согласно флагам обсчитываем математику (в зависимости от оборотов через разное количество циклов, иначе говоря с увиличением оборотов точность на один оборот будет падать, по времени будет та же точность, иначе мы очень быстро упремся в железо).
В конце цикла согласно таблицам по форсункам и зажиганию снимаем или взводим нужные биты в портах.
Продолжительность открытия форсунок имеет смысл регулировать через таймеры с прерыванием, тоесть когда открываем форсунку инициализируем таймер привязанный к ней, когда таймер сработает форсунку закрываем. Прерывания вызываются в режиме реального времени, поэтому мы сможем контролировать продолжительность открытия форсунок с точностью до тактов процессора.

из даташита по процу:
Interrupt
– 8-channel peripheral event controller for
single cycle interrupt driven data transfer
– 16-priority-level interrupt system with 56
sources, sampling rate down to 15.6 ns
Дак с такой кучей программируемых прерываний черерз одни прерывания можно разрулить большую часть обработки внешних датчиков.


¦ Timers
– 2 multifunctional general purpose timer
units with 5 timers
А вот таймерочков то маловато... придется усложнать алгоритм разделения времени для точного закрытия форсунок.
Contros, Jetsamnaz, может у вас есть опыт ковыряния сорцов микаса? необходим скилет программы под него, мне надо знать как там происходит работа с таймерами прерываниями ацп и вообще бы просто парочку примеров с комментами поглядеть.

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

Сидел думал как упростить жизнь себе, придумал как на 16том пике сделать обсчет ДПРВ ДПКВ и ДАД в режиме реального времени с выводом в три восьмибитных порта (по 255 значений в каждый), по времени должно успевать до 12500об отрабатывать. В итоге неплохо разгрузится основной процессор на плате, достаточно будет просто брать значения когда они нам будут нужны либо напрямую (но потратится три порта), либо реализовать паралельный однопортовый интерфейс и сделать банальную схему типа запрос ответ.
Мда, всетки мну опять несет, такими темпами можно докатится до спайки контроллера на коленке....

Ответить