В этой небольшой статье я кратко опишу основные принципы и работу системы обновления программного обеспечения бортовых компьютеров Штат.
Разработка системы начата в 2006 году и прошла несколько модификаций.
Используемые сокращения:
- ПО — Программное Обеспечение, программа.
- БК — Бортовой Компьютер. Устройство, устанавливаемое в автомобиль.
- ПК — Персональный Компьютер под управлением операционной системы Windows.
Терминология:
- Основное ПО — программа управляющего микроконтроллера БК. Именно ею определяется поведение и функциональность этого устройства.
- Загрузчик — узкоспециализированная программа, располагающаяся в памяти микроконтроллера БК. Единственная ее задача — принять файл основного ПО и записать его в память микроконтроллера. В настоящее время существует три версии. Номер версии Загрузчика — вторая слева цифра в серийном номере БК (тот, что пишется на экране в сервисном меню, а не тот, что написан на наклейке).
- Файл образа основного ПО (прошивка) — в нашем случае, файл с расширением hex — шифрованный образ основного ПО.
- Программатор — программа для ПК, устанавливающая связь с загрузчиком и передающая ему файл образа основного ПО. В настоящее время есть три варианта — SP2.EXE, SP21.EXE и RDF3.EXE – все они подобны, отличаются только «заточенностью» под свои адаптеры связи с БК.
Принцип работы понятен из приведенного рисунка: программатор устанавливает связь с загрузчиком и передает ему файл образа ПО. Загрузчик записывает этот образ в память БК.
Значок ключика означает операции шифровки и дешифровки — файл образа шифрован, загрузчик перед записью расшифровывает его.
Неочевиден следующий момент, и он вызывает трудности у пользователей: установка связи между программатором и загрузчиком.
Надо сказать, что Загрузчик и Основное ПО занимают различные области памяти микроконтроллера БК и не могут выполняться одновременно. Поэтому существую два режима работы БК — режим обновления ПО и обычный режим работы в автомобиле.
Для активации Загрузчика я использовал три разных приема:
- Режим «Бутлоадер Коннект» - активация происходит при подаче питания на БК. Сразу запускается Загрузчик и ждет поступления через канал связи специального сигнала. Если сигнал не поступил в течении определенного времени (0,3 секунды для первой и второй версии Загрузчика и пока «бежит» прогресс-индикатор «Загрузка» для третьей) — управление передается Основному ПО, то есть БК начинает работать в обычном режиме.
Для использования этого режима необходимо сначала запустить Программатор и нажать в нем кнопку «Установить связь». Программатор начнет посылать в канал связи спецсигнал раз в 0,1 секунды. И только после этого необходимо подать питание на БК. - Режим «Бутлоадер Кнопка» - активация происходит при подаче питания на БК и нажатой кнопке. Этот режим есть только в третьей версии Загрузчика. Для его использования необходимо зажать кнопку «любимая функция» и подать питание на БК.
- Режим «Демо» - активация происходит при подаче спецсигнала от программатора, когда БК находится в демо-режиме. Фактически происходит обратная передача управления от Основного ПО Загрузчику.
Еще стоит упомянуть особенности разных версий Загрузчика:
Первая и вторая версии ничего не показывают на дисплее БК и не реагируют на кпопки — вся информация о процессе есть только в окошке Программатора. Эти версии Загрузчика использовались в микроконтроллерах фирмы NXP (бывший Philips).
Третья версия уже управляет дисплеем и реагирует на кнопку «любимая фукция», причем из-за другого алгоритма шифрования загрузка идет дольше. Эта версия использовалась в микроконтроллерах фирмы Megawin.