Техподдержка RD Lab

Продукция лаборатории => Прошивки => Тема начата: RomeLa от 14 Декабрь 2013 года, 08:58



Название: Как работает система обновления
Отправлено: RomeLa от 14 Декабрь 2013 года, 08:58
В этой небольшой статье я кратко опишу основные принципы и работу системы обновления программного обеспечения бортовых компьютеров Омега.

Используемые сокращения:
  • ПО — Программное Обеспечение, программа.
  • БК — Бортовой Компьютер. Устройство, устанавливаемое в автомобиль.
  • ПК — Персональный Компьютер под управлением операционной системы Windows.

Терминология:
  • Основное ПО — программа управляющего микроконтроллера БК. Именно ею определяется поведение и функциональность этого устройства.
  • Загрузчик — узкоспециализированная программа, располагающаяся в памяти микроконтроллера БК. Единственная ее задача — принять файл основного ПО и записать его в память микроконтроллера БК.
  • Файл образа основного ПО (прошивка)— шифрованный образ основного ПО.  В нашем случае, этот образ "вшит" в  программатор.
  • Программатор — программа для ПК, устанавливающая связь с загрузчиком и передающая ему файл образа основного ПО.

(http://rd-lab.info/images/upds.gif)

Принцип работы понятен из приведенного рисунка: программатор устанавливает связь с загрузчиком и передает ему файл образа ПО. Загрузчик записывает этот образ в память БК.
Значок ключика означает операции шифровки и дешифровки — файл образа шифрован, загрузчик перед записью расшифровывает его.

Не очевиден следующий момент, и он вызывает трудности у пользователей: установка связи между программатором и загрузчиком.
Надо сказать, что Загрузчик и Основное ПО занимают различные области памяти микроконтроллера БК и не могут выполняться одновременно. Поэтому существую два режима работы БК — режим обновления ПО и обычный режим работы в автомобиле.

Для активации Загрузчика я использовал два разных приема:
  • Режим «Бутлоадер Коннект» - активация происходит при получении специального сигнала от программатора при подаче питания на БК.
    После подачи питания запускается Загрузчик и ждет  поступления через канал связи специального сигнала. Если сигнал не поступил в течении определенного времени ( пока «бежит» прогресс-индикатор «Проверка ПО») — управление передается Основному ПО, то есть БК начинает работать в обычном режиме.  Для использования этого режима необходимо сначала запустить Программатор и нажать в нем кнопку «Установить связь». Программатор начнет посылать в канал связи спецсигнал раз в 0,1 секунды. И только после этого необходимо подать питание на БК.
  • Режим «Бутлоадер Кнопка» - активация происходит при подаче питания на БК и нажатой кнопке «MENU».  Для его использования необходимо зажать эту кнопку  и подать питание на БК.