Многие владельцы сложной техники по различным причинам задаются вопросом перепрошивки процессоров, которые отвечают за логику работы этих приборов. Это могут быть микроконтроллеры автомобилей (в обиходе называемые "мозгами"), стиральных машин и другой бытовой техники.
Чтобы скопировать имеющуюся или "залить" (закачать, установить) новую прошивку в такой процессор необходимо:
1.Аппаратное подключение к процессору через специальный интерфейс;
2.Специальный контроллер, который сможет обеспечить правильный обмен данными с процессором на понятном ему "языке".
3.Программное обеспечение, предназначенное для обработки кода прошивки и обмена данными с контроллером.
Немного терминологии
BDM – это аббревиатура от слов "Background Debug Mode" (русск. "Фоновый режим отладки"). Фактически это специальный интерфейс, применяемый в отдельных моделях процессоров. Разработан он и применяется в микропроцессорах производителя Motorola (в отдельных линейках продуктов. Наиболее часто используются для контроля работы двигателей автомобилей в составе блоков управления ДВС, изображение ниже), а также в решениях производителя Freescale Semiconductor. Основное назначение интерфейса BDM – отладка, запись, чтение данных.
Рис. 1. Блок управления ДВС
Использование BDM предполагает обмен данными с согласованием уровней напряжения, что требует особого подхода к проектированию контроллеров BDM.
Почему собрать универсальный BDM-программатор своими руками не получится
Дело в том, что производитель не открывает спецификаций для своих микроконтроллеров и не описывает формат обмена данными для протокола BDM.
Это значит, что все потенциальные технические решения – это своеобразный реверс-инжиниринг (анализ входов/выходов с последующей попыткой воспроизведения логики их работы).
Несмотря на то, что на рынке присутствуют готовые BDM-программаторы, они очень часто не справляются со своими функциями, так как производители автомобилей и бытовой техники предпринимают ряд мер по борьбе с потенциальными попытками взлома и модификации заводских прошивок. Ведь такие изменения могут нанести вред не только самому устройству, но и окружающим (как, например, в случае с автомобилями, которые сами по себе являются потенциальными источниками опасности).
В любом случае, даже в теории, разработка такого программатора очень сложна:
1.требуются знания не просто в области радиоэлектроники, но и в микропроцессорах (коды и формат обмена данными может изменяться в различных моделях микроконтроллеров);
2.одного только контроллера для практического применения недостаточно, нужно специализированное программное обеспечение (его нужно написать, проверить в работе и т.д.);
3.как и было сказано выше, следует учесть множество нюансов, свойственных различным моделям процессоров, работающих с протоколом BDM, методы защиты производителей и способы их обхода;
4.и т.д.
Исходя из вышесказанного, следует, что на такое способны только конструкторские бюро или профессиональные проектные организации.
И даже после создания такого программатора и софта к нему (или покупки и использования готового прибора – смотри фото ниже), вы получаете следующие проблемы:
1.вмешательство в заводскую прошивку лишает вас гарантий производителя;
2.ошибка в логике работы микроконтроллера может повлечь за собой непредвиденные проблемы и последствия.
Рис. 2. BDM100
Автор: RadioRadar