Доброго времени суток всем)
В своей статье про программирование ЭБУ, я упоминал, о редактировании стоковых прошивок ЭБУ DME, ну что же, я думаю настало время, познакомиться с этим по-ближе. Для начала, разберемся в основных картах и параметрах прошивок, которые необходимо и можно изменить, чтобы получить в итоге ту прошивку которую хотим. Разберем несколько способов как произвести чтение или запись прошивки, программы для редактирования, приведем краткое руководство по чип-тюнингу.
Естественно данные записи осилят не все, углубляться в тонкости тоже не будем, ну и по количеству желающих мы определим, стоит ли двигаться дальше, или же это мало кому интересно. Самое главное правило, это четко знать и понимать что Вы делаете, и какой будет результат. Для того чтобы разобраться в этом подробнее, нужно уметь работать с байтами, иметь навык работ с программами, поэтому эти понятия мы опустим, так как это не уроки программистов, а теория может растянуться на долго.
Существует несколько способов чтения/записи прошивки блока.
— Выпаивание flash с платы с помощью фена и чтение/запись посредством программаторов flash памяти. Данный способ самый старый и самый трудоёмкий. Всегда есть вероятность повредить дорожки платы при демонтаже или перегреть саму микросхему памяти. Вот небольшой список программаторов, которые работают с 29F400:
— Wilem
— Triton
— Autoprog
— galep
— biprog
— turboV6
— KESS v2. Профессиональный загрузик ЭБУ, предназначен для чтения и записи блоков управления легковых, грузовых автомобилей и мотоциклов через диагностический разъем OBD2. Поддерживает большинство типов ЭБУ и совместим практически со всеми автомобилями. Поддерживает все основные протоколы CAN / J1850 / K-LINE. Имеет функцию автоматического резервного копирования и восстановления ЭБУ. Так же используют для чип-тюнинга.
— Флешер Galetto 1260. Чтение/запись части памяти или так называемой области калибровок. 1260lФлешер работает через k — линию блока управления. Данный способ удобен для быстрого чтения, правки и записи небольшого участка памяти содержащего основные калибровки программы ЭБУ, т.е. при выполнении отстройки (откатки карт топлива и зажигания) блока по даталоггеру. Адаптер можно купить за 10$ на любом китайском сайте, торгующим разным диагностическим барахлом. Кроме того, список ЭБУ с которыми может работать данный флешер очень внушителен. Чтение блока MS43 можно проводить как на столе, так и на машине. Для чтения на машине достаточно соединить флешер с разъёмом OBD-II, выбрать в списке автомобиль и нажать кнопку read. Программа считает и сохранит на диск 64kb калибровок в виде .bin файла.
— Флешер Galetto 1260 в режиме загрузчика (boot mode), полное чтение flash. Изначально программа адаптера 1260 не позволяет читать всю flash блока MS43 в режиме загрузчика. Но в тоже время, такая возможность заявлена для блоков ME7.1, ME 7.5 фирмы BOSCH. Таким образом, «ошибочно» указав ME7.1, ME 7.5 в программе флешера можно прочитать MS43 в boot mode.
— Загрузчик Minimon (boot mode) + k-line адаптер. Чтение всей flash памяти. Программа Minimon представляет собой свободно распространяемый монитор для процессоров семейства С166. Minimon работает через последовательный порт. На этапе загрузки, программа помещает свою сервисную подпрограмму (монитор) в процессор. Загруженный монитор содержит весь необходимый функционал для чтении/записи любой области памяти. Клиентское приложение «общаясь» с монитором по последовательному порту (в нашем случае –по интерфейсу k-line) позволяет производить манипуляции с памятью процессора.
— Программа Chiploader (boot mode)+ k-line адаптер. Чтение и запись всей flash памяти.
— JMGarageFlasher (boot mode)+ k-line адаптер. Чтение и запись всей flash памяти. Программа полностью бесплатна. Скачать можно здесь (18.1 Мб).
JMGarageFlasher — небольшая бесплатная утилита, написанная с использованием библиотеки QT. Утилита позволяет читать всю flash память AM29F400BB блоков управления Siemens MS42/MS43 в режиме загрузчика. Работает через k-line адаптер. (На данный момент версия еще сырая, и имеет баги, но ведется работа и в скором времени будет стабильная версия)
После ввода блока управления в режим загрузчика, необходимо нажать кнопку «connect». «Соединившись» с блоком, программа позволяет проводить операцию чтения и записи нажатием на кнопки «read» и «write» соответственно.
Вся прошивка ЭБУ MS43 находится во внешней flash-памяти AMD29F400BB, расположенной на плате рядом с процессором C167. Размер flash составляет 512Кб.
В случае работы с блоком на столе, необходимо подать на разъём ЭБУ питание и k-линию.
1-4 — масса ЭБУ (можно использовать любой из контактов)
1-7- «+12В»
4-32 — К-Линия
4-26- «+12B» зажигание
Для ввода процессора в режим программирования (boot mode) необходимо перемкнуть 104 вывод процесcора C167 он же вывод 27 ноги flash памяти AM29F400BB на массу через резистор сопротивлением порядка 10КОм до подачи напряжения питания на ЭБУ. См.фото выше.
Для BOSCH ME 7.2 bootmode programming:
Рассмотрим основные карты и параметры прошивки, необходимые для отстройки нестандартного (модифицированного) мотора M52TU и M54.
Все параметры прошивки подразделены на 4 основные категории:
1) Общие сведения
2) Топливо/смесь
3) Зажигание
4) Тайминги/Vanos
Редактировать прошивку можно программами WinOls и TunerPro.
Все примеры в записи сделаны в редакторе WinOls. Этот редактор Вы можете скачать здесь (бесплатная взломанная версия, с русификатором). TunerPro бесплатную версию Вы можете скачать здесь (2.74 Мб).
Общие настройки
Калибровочные данные прошивки MS43 начинаются с адреса 0x70000.
Версия софта находится в начале калибровок и повторяется 3 раза. По умолчанию, в редакторе WinOls значения по нужному адресу иллюстрируются в виде баров. Для того чтобы увидеть цифровые значения версии софта, необходимо переключиться в режим ASCII нажав правой кнопкой мыши в поле дампа и выбрав «ASCII».
VIN лежит в зашифрованном виде, но его можно найти по стартовым байтам — «20 2C A3». VIN занимает 19 байт, начиная с «20». Сам номер -18 байт, 19-ый контрольная сумма.
ISN расположен в области адреса 0x3ED0 и занимает 6 байт. ISN легко найти по предшествующим «FF FF» байтам и отдельно стоящим значимым 6 байтам самого ISN (см. изображение).
Для приведения ЭБУ к заводскому(начальному) состоянию, в область ISN нужно записать «FF FF FF FF FF FF». «Чистая» область ISN позволяет привязывать любой ЭБУ MS43/MS42 к любому рабочему EWS с помощью INPA. При проведении операции синхронизации в INPA, ЭБУ скопирует данные ISN из EWS в свою прошивку и будет проведена синхронизация в штатном режиме. Данный метод хорош при отсутствии средств программирования EWS, но требуется синхронизировать иммобилайзер от другой машины.
Топливо/смесь
Siemens MS42/MS43 имеют обширный набор настроек впрыска топлива. Такое разнообразие и гибкость позволяют откалибровать блок практически под любые задачи.
Основные константы:
C_TI_MIN_IV — минимальное время впрыска в мсек. Контроллер никогда не откроет форсунку меньше чем на заданное время. Как правило равно — 0.352 мсек.
IP_TIB (12×16) — базовый впрыск в мсек. По сути -статика форсунок.
Ось 1 — обороты
Ось 2 — расход воздуха (гр/сек)
Стоковая таблица для мотора 2.2 BMW выглядит следующим образом:
Если требуется скорректировать смесь, то начать стоит с этой карты. От этой величины отталкиваются все расчеты по времени впрыска в штатном режиме работы, когда исправен датчик расхода воздуха. В случае неисправности ДМРВ, ЭБУ получает значение расхода воздуха по карте IP_MAF_1_DIAG.
IP_MAF_1_DIAG(16×16). Прогноз(получение) расхода воздуха по положению дросселя.
Карта работает при наличии проблем с ДМРВ.
Ось 1 — обороты
Ось 2 — tps, положение дросселя
Это так называемая карта alpha/n. Многие тюнеры используют её при установке многодроссельного впуска и, соответственно, удалении ДМРВ из системы. При данном подходе, нагрузка на мотор(расход воздуха) рассчитывается очень неточно и как следствие, выходная топливовоздушная смесь и зажигание оставляют желать лучшего.
IP_TI_ADD_DLY (1×8) динамика форсунок.
Карта отображает время открытия форсунки в зависимости от напряжения на аккумуляторе. Для качественной настройки карту необходимо править при установке инжекторов отличных от заводских или изменении давления в топливной рампе.
Давление выше — больше время открытия форсунки .
Напряжение в сети выше — ниже время открытия форсунки.
Зажигание
Частичные и полные нагрузки
IGAB_IVVT — угол зажигания на частичных и полных нагрузках при работающем vanos. Это расчетная величина (переменная), которая используется для дальнейших вычислений целевого УОЗ( IGA — он же угол опережения зажигания ).
Формула раcчета:
IGAB_IVVT = (IP_IGA_TCO_1_PL_IVVT__N__MAF — IP_IGA_TCO_2_PL_IVVT__N__MAF) * IP_FAC_PL_IVVT__TCO__TCO_ST + IP_IGA_TCO_2_PL_IVVT__N__MAF
IP_IGA_TCO_1_PL_IVVT__N__MAF — карта УОЗ при холодном моторе (TCO1)
IP_IGA_TCO_2_PL_IVVT__N__MAF — карта УОЗ при горячем моторе(TCO2)
В версии a2l для 430056 значится 2 карты с RON_91 и RON_98. Т.е. есть версии MS43 где отталкиваются от RON_91 и RON_98. В зависимости от адаптаций по детонации, блок переключается (при прогретом моторе) на 91-ую или 98-ую карту.
IP_FAC_PL_IVVT__TCO__TCO_ST — фактор (вес) разницы между этими двумя картами (для TCO1 и TCO2).
При расчетах целевого IGA стоит учитывать: температурную коррекцию IP_IGA_MAF_N__N__MAF* IP_FAC_TIA_TCO__TCO__TIA и переходный угол воспламенения ID_IGA_TRA_KNK_N_MAF*ID_FAC_IGA_TRA_TIA
Т.е. суммарный УОЗ (IGA) получается по формуле:
IGA = IGAB_IVVT + (IP_IGA_MAF_N__N__MAF IP_FAC_TIA_TCO__TCO__TIA) + (ID_IGA_TRA_KNK_N_MAF ID_FAC_IGA_TRA_TIA)
При тюнинге стоит крутить карты IP_IGA_RON_91_PL_IVVT__N__MAF и IP_IGA_RON_98_PL_IVVT__N__MAF для прогретого мотора и 91-го, 98-го октана соответственно.
Старт
IP_IGA_ST__N — карта УОЗ на старте,
IP_IGA_TCO_ST__TCO — коррекция УОЗ на старте
IGA (на старте) = IP_IGA_ST__N + IP_IGA_TCO_ST__TCO
Частое изменение дросселя
IP_IGA_PU__N__TCO — УОЗ при перемещения дросселя, так называемый tralling trottle.
Холостой ход
Базовый УОЗ на ХХ при рабочем VANOS:
вычисляется на основании 2-ух карт IP_IGA_TCO_1_IS_IVVT__N__MAF и IP_IGA_TCO_2_IS_IVVT__N__MAF для холодного (TCO1) и прогретого (TCO2) мотора соответственно и в соответствии с фактором из карты IP_FAC_IS_IVVT__TCO__TCO_ST.
В случае отказа VANOS, блок перемещает валы в крайние положения, выставляет ошибку и УОЗ на ХХ расчитывается по карте IP_IGAB_IS__N__MAF.
_iga_optm_ — карты, расчета оптимального УОЗ при работе антипробуксовочной системы, переходных режимов при переключении передач и тому подобных в которых требуется погасить момент, уменьшив УОЗ. Т.е. система рассчитывает оптимальный момент для антибукса (например) и на основании этого оптимального момента выбирает максимально возможный УОЗ — iga_optm . При тюнинге эти параметры лучше не трогать.
Источник: jmgarage
Продолжение следует, на данный момент пока усвоим данные уроки, в будущем попробуем углубиться в понятия и определения, чтобы расставить все точки над "И".
Всем спасибо за внимание! До скорых встреч! С наступающим праздником "Пасхи".