Как обещал, на примере отдельно взятой прошивки.
Начнем с идентификаторов.
Возьмем к примеру приложенный файлик.
Номер бош 0261200405 лежит по адресу 7DF6 (записан в обратном порядке "5040021620").
Номер бош 1267357951 лежит по адресу 7E00 ("1597537621").
Номер бмв базовый 1740352 лежит по адресу 7E0A ("2530471")
Эти номера присутствуют в базовом незапрограммированном мозге, то-есть по ним нельзя определить какой набор настроек в мозге (объем мотора, тип топлива и тд..).
Теперь то что записывается при программировании мозга и позволяет идентифицировать настройки двигателя.
Вин лежит по адресу 7EBA занимает 13 байт (запись в 6 битной кодировке, как расшифровывать отдельная тема).
Номер файла SW-NR - 1744800 лежит по адресу 7ECB (записан в шестнадцатиричном виде "1A 9F A0").
Номер типа TYP-NR - 1730737 лежит по адресу 7ED1, ( "1A 68 B1").
Номер программы ZB-NR - 1744799 лежит по адресу 7ED5, ( "1A 9F 9F").
Калибровка СО по умолчанию записана по адресу 7E88 (0x80), допустимые значения от 00 по FE (от -127 до +127)
Поскольку в DME использовалась память стираемая ультрафиолетом, перезапись ячейки при помощи диагностики была невозможна, соответственно при каждой регулировке СО новое значение дописывается в следующую ячейку, соответственно при расчете СО, берется последняя заполненная ячейка начиная с адреса 7E88 и по 7EB8 ..
------------------------|
В прошивках под М3.1 есть базовая часть и набор данных. Базовая часть это собственно сама программа управления, а набор данных это настройки под конкретное исполнение мотора - объем, экологические опции, тип кпп и прочее. В терминологии БМВ - то как в DIS это представлено - номер базового блока, это номер программы, а программируемый блок, это номер набора данных. Прошивку можно и дальше разбирать на куски помельче, но остановимся пока на этом.
Теперь об насущном программировании набора данных).
Приложенный файл был собран руками из базовой части под номером 1740352 (доступна для заказа в виде микросхемы под номером 12 14 1 740 661) и файла с набором данных из DIS, тоесть все необходимые куски положены куда надо - так как это делает DIS при программировании.
Файл с набором данных можно найти в DIS или ISTA-P с расширением 0AB (в нашем случае файл назывался К1744800.0AB).
Файл представляет из себя дамп в модифицированном формате Intel Hex.
Если смотреть в приложенный файл то можно видеть что:
Набор данных идет с адреса 6A00 по 7995, непосредственно перед ним записана метка начала области для записи "0000".
AM code идет с адреса 7996 по 799B.
Чексумма записана по адресу 799С - два байта (Checksum-16 с адреса 6A00 по 799B, в нашем случае равна 0xA693).
AM code - 11-ти значный код отвечает за систему привода, описывает кодируемые зависимости например тип двигателя, вариант коробки передач, с катализатором или без, данный код не используется в некоторых программах, вместо него записана пустышка вроде "FFFFFFFFFFD" . Подробной документации на этот код я не нашел, сам код можно взять из таблицы в файле M3_1.DAT.
Есть еще одна область которая записывается при программировании начинается с адреса 7DD6 по 7DDF - точно не разобрал что это, но предполагаю что это ссылки на определенные области набора данных, записаны в обратном порядке например:
Первая запись EA00 - это первые два байта набора данных "00EA", по сути отсылка к адресу 6A02 предположительно начиная с этого адреса и по 6AFA лежат константы (типа
отсечки максимальных оборотов и тп). К примеру отсечка по видимому лежит по адресу 6A19.
Вторая запись EAFE отсылает к адресу 6B00 перед которым записана метка "FEEA".
Третья запись EBFA соответственно отсылает к адресу 6BFC, с которого начинается длинный массив постепенно возрастающих значений в 512байт (предполагаю что это полином расхода воздуха), заканчивается область на адресе 6DFA (интересно смотреть в двухмерном представлении см скриншот).
Позже дополню...
-
4
0 Комментариев
Рекомендуемые комментарии
Комментариев нет