ВВЕДЕНИЕ 4
Глава 1. СУЩЕСТВУЮЩИЕ ТЕХНОЛОГИИ МИКРОПРОГРАММНОГО ОБНОВЛЕНИЯ 6
1.1 Программатор ST-Link/V2 6
1.2 Программный загрузчик DFU 9
1.3 Карта памяти в качестве загрузчика 11
Глава 2. ОТЛАДОЧНАЯ ПЛАТА И ИСПОЛЬЗУЕМЫЙ ФУНКЦИОНАЛ STM32 13
2.1 Отладочная плата STM32F4-Discovery 13
2.2 Процессорное ядро Cortex-M4 15
2.3 Flash память 19
2.4 Периферия МК STM32F407VG, применяемая в работе 20
2.4.1 USB (универсальная последовательная шина) 20
2.4.2 UART (универсальный асинхронный приёмопередатчик) 23
2.4.3 CRC (циклический избыточный код) 24
Глава 3. Разработка комплекса программ 29
3.1. Используемые средства разработки 29
3.1.1 Визуальный графический редактор STM32CubeMX 29
3.1.2 Среда разработки программного обеспечения System Workbench for STM32 33
3.1.3 Среда разработки программного обеспечения Qt Creator 35
3.2 Разделение памяти 37
3.3 Алгоритм работы системы обновления микропрограммного обеспечения 38
3.4 Формирование файла прошивки 47
Глава 4. РЕЗУЛЬТАТЫ РАБОТЫ РАЗРАБОТАННОЙ СИСТЕМЫ ОБНОВЛЕНИЯ МИКРОПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 49
4.1 Результат работы системы обновления для микроконтроллера STM32F407VG 49
ЗАКЛЮЧЕНИЕ 53
СПИСОК ЛИТЕРАТУРЫ 54
ПРИЛОЖЕНИЯ 56
Многие современные цифровые устройства выполнены на базе микропроцессоров, причем сложность состоит в написании исходного кода к данным устройствам, т.е. большая нагрузка лежит на программной составляющей, а не на аппаратной. Довольно часто после выпуска продукции выявляются различного рода ошибки. Для устранения недочетов предыдущих версий или усовершенствования программного кода выпускаются новые варианты программного обеспечения (ПО). Для обновления версии прошивки существуют различные технологии микропрограммного обновления (например, J-Link, ST-Link), требующие определенного опыта использования, которым зачастую обладает далеко не каждый пользователь.
Данная работа была выполнена совместно с нефте-сервисной компанией “ТГТ-Сервис”, которая для нефтяных исследований использует геофизическую аппаратуру. Когда прибор находится глубоко в скважине, то для передачи данных компьютеру он использует один из интерфейсов USB или UART. Для обновления прошивки приборов, внутри которых расположен микроконтроллер, их необходимо разбирать, что является трудоёмкой задачей. Поэтому существует необходимость в создании загрузчика (bootloader), который будет обновлять прошивку через интерфейс, используемый для передачи данных.
Bootloader - программа, записанная в постоянную память микроконтроллера, которая может принимать данные через любой, заранее определённый программистом интерфейс. При включении устройства и инициализации периферии управление передается загрузчику при выполнении определенных условий. Если оно не выполнено, управление передается основной программе.
Источником обновления является прошивка, расположенная на компьютере, поэтому необходимо создание терминальной программы на языке С++ с использованием библиотек Qt. Вычислительные способности микроконтроллеров серии STMicroelectronics ниже, чем у компьютеров, поэтому обновления должны поставляться пакетами, а не всем файлом целиком, таким образом, снизив нагрузку на устройства.
Целью работы является разработка и реализация системы обновления микропрограммного обеспечения, и её отладка на макете STM32F4- Discovery.
Поставленная цель потребовала решения следующих задач:
• обзор возможностей отладочной платы STM32F4-Discovery, ее периферии и организации памяти;
• обзор программных средств разработки: STM32CubeMX, System Workbench for STM32, Qt Creator;
• создание терминальной программы для передачи файла прошивки с компьютера устройству и программы, осуществляющей автоматическую загрузку обновления прошивки;
• отладка загрузчика на геофизической аппаратуре;
Был проведен обзор возможностей отладочной платы STM32F4- Discovery, ее периферии и организации памяти. Данная серия микроконтроллеров F4 используется в геофизической аппаратуре. Освоена работа с контрольными суммами и интерфейсами USB, UART микроконтроллера.
В данной работе:
1. проведен обзор существующих технологий микропрограммного обновления, выявлены их основные недостатки и возможные пути решения;
2. реализована терминальная программа с использованием библиотек Qt, для файла обновления устройству. Реализована и отлажена программа микропрограммного обеспечения для микроконтроллеров STM32F407VG и STM32F427IIH;
3. разработанная система обновления микропрограммного обеспечения представляет большой практический интерес, после доработки она будет использована в новых версиях скважных приборов в компании ООО «ТГТ-Сервис».
Отдельная благодарность нефте-сервисной компании “ТГТ-Сервис”, в частности Масленникову Г.Г., за предоставленные возможности и материалы в процессе выполнения дипломной работы. Были приобретены опыт работы в команде, с микроконтроллерами, навыки пайки.