Думаю что большинству из тех, кто работает с VDO приборными панелями VAG, хорошо известен то факт, что в 35 платформе использовались решения не только на базе NEC850, но и на базе Micronas Securised 3217G. Такие панели с внешним EEPROM объемом 4096 байт в большинстве своем ставились в Audi, чуть реже в VW и, на сколько мне известно, не применялись в Skoda.
Ранние версии VDOeditor 1 понимали такие дампы, но изменить ничего было нельзя. Поэтому поддержка Micronas не была реализована и вскоре полностью удалена.
Но все меняется и, очень похоже, что VDOeditor2 (VDOe2) получит поддержку дампов панелей на базе Micronas, включая полюбившуюся многим функцию замены и конвертации шкал, благодаря Antony из Électrovag.
Некоторое время назад на форуме появилась ветка на тему “Как на счет Audi A3 White/Red clusters?” На тот момент я мог ответить одним словом: никак. На руках нет ни дампов, ни панелей: одним словом нет ничего. В таких условиях сложно говорить о какой-либо реализации. Обсуждение можно было заканчивать.
Но обсуждение получило продолжение: был предоставлен дамп и смещение карты спидометра (пусть и не очень точное, но это не важно). И каково же было мое удивление, когда с минимальными модификациями в VDOe2 этот дамп был загружен и даже обработан в рендере шкал (не обращаем внимания на артефакты вроде контрольной точки).
Начало хорошее, но для полноценного решения нужно знать алгоритм пересчета контрольной суммы и ее адрес. Без корректной суммы после загрузки исправленного дампа вы увидите сообщение об ошибке: DEF.
Значит надо искать адрес и алгоритм. И тут была главная проблема: на одном дампе без тестовой панели далеко не уедешь. А панели у меня не было. Конечно, при наличии свободного времени можно и на базе одного дампа найти нужное, но мне, например, не хотелось бы тратить время на подобный вариант поиска.
Скорее всего, это обсуждение так бы и заглохло, если примерно в это же время ко мне не обратился Anthony со схожим же вопросом о поддержке Micronas в VDOe2. Однако, у него были весомые аргументы в виде структурированной коллекции дампов, желание и возможность протестировать промежуточные результаты.
Чтобы найти нужное пришлось написать временный дополнительный код для VDOe2, который для начала сформировал обобщенную карту дампов EEPROM, а потом рассчитал статистику распределения.
Карта выглядела примерно следующем образом:
Байты 0x00 расположены по адресам, где потенциально может находится контрольная сумма. Байты 0xFF обозначают адреса, в которых контрольная сумма находится точно НЕ может.
После получения карты, все что осталось сформировать статистику, используя карту. Результат полученной таким образом статистики был более чем очевидным =)
Не представляю сколько времени могло бы потребоваться, чтобы проверить все варианты, если бы не было этой статистики. А так, все что мне оставалось этот попросить Anthony исправить байт по адресу, который набрал 42 совпадения. На рабочем дампе такая модификация, очевидно, должна дать DEF.
Просим Anthony поменять байт и бинго, заветный DEF!
Ну и финальный тест. Берем дам от 8J0920930A со шкалой 300 км/ч.
И импортируем в этот дамп другую шкалу, благо это операция в VDOe2 требует всего пары кликов мышкой. Я брал в прямом смысле первую попавшуюся, это оказалась шкала в 160мч из дампа от 8P0920983G.
Опять просим проверить результат и вуаля. Все работает. Ошибка отсутствует.
Вот таким образом, удалось найти решения для простой замены и конвертации шкал для панелей приборов на базе Micronas. В ближайшее время, все наработки, полученные в результате этих экспериментов будут реализованы в VDOeditor 2. База EEPROM также получит соответствующие обновление и поддержку дампов Micronas.
В завершении этой статьи, я хотел бы еще раз поблагодарить Anthony за помощь в решении этой задачи. Без его участия поддержка Micronas никогда бы не была реализована.
Оставайтесь с нами. Надеюсь, что дальше будет не менее интересно…