Terrano 0281001550

Nissan Terrano II 2.7 TDi · 0281001550

Bosch 0281001550EDC MSA 15.5Nissan 23710-7F405ПО 1037356022CPU C167, масочное ПЗУфлеш 256 КБ

Разбор стокового дампа раннего блока для 2.7 TDi (TD27ETi) по коду. Дизассемблером C166 разобрано 40 657 инструкций, около 450 функций, таблица процессов на 60 записей и 58 калибровочных карт (77 обращений). Каждая карта привязана к функции, которая её читает, и к переменным на её осях.

То же поколение, что у Фронтеры

0281001791 ≈ 0281001550

Железо и карта памяти те же, что у блока Frontera X22DTH. Две микросхемы флеша, C167 с масочным ПЗУ, код в 0x10000–0x37FFF, калибровка в 0x38000–0x3FFFF через DPP0/DPP1 = 0x0E/0x0F, тот же пролог задач и те же адреса подпрограмм ПЗУ (интерполяция карт 00:20D6 / 00:20AC, выход из задачи 00:07B4). Инструменты и выводы по Фронтере сюда переносятся, адреса карт — нет.

ПЗУ 26FC

Регулятор дозатора ТНВД находится в ПЗУ. Флеш считает уставку дозатора FC56 и сразу передаёт её через CALLS 00:26FC. ПИ-регулятора и записей в ШИМ/CAPCOM2 во флеше нет, поэтому коэффициенты регулятора не меняются. Вся цепочка подачи до уставки — во флеше.

сумма

Алгоритм контрольной суммы тот же, что у Фронтеры. По блоку на каждый набор данных (0x00B80–0x07FFB → 0x07FFC, 0x38B80–0x3FFFB → 0x3FFFC), на стоковом дампе обе суммы верны. Редактор карт поддерживает этот блок и пересчитывает обе.

68 мг

Жёсткий предел подачи в блоке параметров. Он ограничивает подачу независимо от всех карт, которые показывает ECM Titanium; выше 68 мг его тоже нужно поднимать.

Память адрес в файле = адрес процессора

АдресаЧто там
00000–0FFFFПроцессор видит здесь своё масочное ПЗУ, вызовы 00:xxxx уходят туда. В файле по 0x00000–0x07FFF лежит второй набор данных (Nissan 7F406).
10000–13FFFЗагрузчик и сервисы. Таблица из 19 векторов по 0x10120 ведёт в ПЗУ: таймеры, АЦП, последовательный порт, сброс.
10000–37FFFКод. По 0x2F1A0 диспетчер на 81 вход (похоже на диагностику по K-line).
38000–3FFFFРабочий набор данных (Nissan 7F405). Таблица процессов по 0x383F6 (60 × 10 байт), таблица указателей на карты по 0x38F04. Контрольная сумма по 0x3FFFC: тот же алгоритм, что у Фронтеры, редактор карт её пересчитывает.

Два набора данных

Код работает с набором по 0x38000 (при старте DPP0 = 0x0E, DPP1 = 0x0F). Копия по 0x00000–0x07FFF устроена так же и отличается в 812 байтах, в основном картой «подача → дозатор» и двумя картами обороты × подача. Переключения на неё в коде нет, а по этим адресам процессор видит ПЗУ, так что она, скорее всего, не используется. Адреса одной и той же карты в двух наборах отличаются на 0x38000; ECM Titanium показывает адреса 0x0xxxx и пишет в оба набора.

Цикловая подача педаль → ограничители → уставка дозатора

#34
0x20166

Запрос водителя = f(обороты, педаль C1D0).

#25
0x1D522

Потолок подачи: ограничитель по оборотам (атм. давление × обороты), ограничитель дыма с входом , пусковая подача и ещё 13 карт.

→ FCBA потолок подачи
#30
0x1E26A

Координатор подачи: сводит запрос и ограничения, читает 8 карт по 0x3919A–0x39630.

0x2A03E

Итоговая подача и подача на впрыск.

→ FC36 итоговая подача
#24
0x1709A

Поправка по температуре топлива .

#29
0x14A26

Уставка дозатора: пересчитывает подачу и обороты в положение дозатора ТНВД.

→ FC56 → ПЗУ 26FC → ТНВД

Номера процессов и функции найдены в этой прошивке напрямую. Их роли определены сопоставлением кода с более поздней прошивкой Terrano, где цепочка разобрана построчно. Переменные: обороты FC3A (ID оси E08A), итоговая подача FC36, потолок FCBA, педаль C1D0, атмосферное давление C234, уставка FC56.

Все карты

Карты, которые код реально читает через подпрограммы интерполяции ПЗУ. Уверенность подписи: H — роль подтверждена кодом и ECM Titanium, M — кодом, L — догадка; у карт без подписи роль пока не установлена. Нажмите на строку, чтобы увидеть описание карты.

ЗаголовокДанныеРазмерРольУв.Функция

Заметки по тюнингу

Чего в дампе нет