Способы программирования
Разделим условно их на "диагностический"(ПС)* и "инженерный"(ПС)*. В чем-же их различия.
Первое и самое главное в порядке доступа к содержимому Flash-памяти ЭБУ.
"Диагностический" предполагает всегда доступ через сервисный разъем автомобиля посредством программы-загрузчика подгружающей "Loader" в ОЗУ или ПЗУ ЭБУ автомобиля на время сессии чтения-записи. Тут надо сразу оговориться, что не все Флешеры (от слова Flash, так мы будем далее именовать устройства работающие с ЭБУ через диагностический разъем) имеют возможность читать содержимое Flash-Памяти. Некоторые, как например практически все дилерские приборы, умеют только производить запись.
"Инженерные" варианты загрузчиков работают с содержимым памяти ЭБУ через так называемый отладочный интерфейс, который по своему существу и называется "инженерным". В зависимости от семейства процессоров, этот интерфейс на сегодня может быть различным.
Для ЭБУ, оснащенных процессорами Motorola MPC, он носит название BDM (Background Debug Mode).
Для ЭБУ, оснащенных процессорами семейств "Infineon" (С167xx, ST10xx, TC17xx и т.д.), он носит название BSL (Bootstrap Loader)
Для ЭБУ, оснащенных процессорами семейства "Renesas", он носит название JTAG (Joint Test Action Group)
Данные загрузчики используют Loader самого процессора ЭБУ.
Следующим достаточно существенным отличем являются принципы "получения разрешения" загрузчиком от ЭБУ на начало процесса чтения-записи. При работе "дилерским" методом ЭБУ запрашивает ключ доступа (пароль) для разрешения сессии репрограмминга.
При получении правильного ключа, ЭБУ разрешает работу со своим массивом памяти. При не получении ответа, получении неправильного ответа — сессия закрывается. Назовем такой метод полученя разрешения ВИРТУАЛЬНЫМ.
При работе "инженерным" методом разрешение на такую сессию получается путем изменения физического уровня сигналов на соответствующих выводах процессора ЭБУ. Принято называть такие выводы Boot-Pin. Их может быть от одного и до… Зависит от схемотехники и конфигурации конкретного процессора. В ряде случаев необходимо бывает снять физический уровень с одного пина процессора и подать его на другой. Например С167хх ST10хх. Снимем со 105 пина процессора, подаем на 104 пин.
Соответстенно и назовем такой метод получения доступа ФИЗИЧЕСКИМ.
Но… производитель не стоит на месте. С целью затруднить доступ тюнерам к своему ПО, способы защиты постоянно совершенствуются. Повышается ее уровень (TPROT от Protection). Примерно с TPROT9 при открытии BSL-Сессии процессор запрашивает у загрузчика ключ доступа.
Еще одним действием для защиты ПО стало помещение одного из ключей RSA в ОТР (одноразово программируемая) область Flash-Памяти процессора. Например Bosch Kefico ME17.9.хх, что затруднило работу с данным ЭБУ "Диагностическим" методом. Благо сам же производитель закладывает в ПО ряд моментов, которые позволяет тюнерам обходить данные способы защиты. (например флаг конфигурации " Не рассчитывать RSA")
Статья не моя но для общего развития будет совсем не лишней.