ВВЕДЕНИЕ 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. разработанная система обновления микропрограммного обеспечения представляет большой практический интерес, после доработки она будет использована в новых версиях скважных приборов в компании ООО «ТГТ-Сервис».
Отдельная благодарность нефте-сервисной компании “ТГТ-Сервис”, в частности Масленникову Г.Г., за предоставленные возможности и материалы в процессе выполнения дипломной работы. Были приобретены опыт работы в команде, с микроконтроллерами, навыки пайки.
1. ST-LINK/V2 in-circuit debugger/programmer for STM8 and STM32 | User manual // STMicroelectronics. - 2018 - 19с.
2. Discovery kit with STM32F407VG MCU | Data brief // STMicroelectronics. - 2016- 4с.
3. ARM Cortex-M4 | Programming manual. // STMicroelectronics. - 2019 - 261с.
4. ARM® IoT Subsystem for Cortex® -M| Technical Reference Manual. //ARM. - 2015 - 93с.
5. ARM Cortex-M4 32b MCU+FPU, 210DMIPS, up to 1MB Flash/192+4KB RAM| Datasheet // STMicroelectronics. - 2016 - 202с.
6. "USB in a NutShell — Chapter 2: Hardware". Beyond Logic.org. Archived from the original on 12 August 2007. Retrieved 12 April 2018
7. STM32F405/415, STM32F407/417, STM32F427/437 and STM32F429/439 advanced Arm®-based 32-bit MCUs | Reference manual. // STMicroelectronics. - 2019 - 1749с.
8. Stigge, M. Reversing CRC - Theory and Practice / M. Stigge, H. Plotz and W. Muller // HU Berlin Public Report - 2006 - 24с.
9. R. N. Williams. A Painless Guide to CRC Error Detection Algorithms
[Электронный ресурс]. - Режим доступа:
http://www.ross.net/crc/download/crc_v3.txt , свободный.
10.STM32CubeMX for STM32 configuration and initialization C code generation | User manual // STMicroelectronics. - 2019 - 361с.
11. Сайт компании КОМПЭЛ [Электронный ресурс]. - Режим доступа https://www.compel.ru/lib/ne/2016/2/8-cubemx-i-workbench-sozdanie- proekta-na-baze-stm32-s-pomoshhyu-besplatnogo-po, свободный. - Загл. с экрана.
12. Макс Шлее Qt 4.8 Профессиональное программирование на C++. — СПб.: «БХВ-Петербург», 2012. - с.912
13. Саммерфилд М. Qt. Профессиональное программирование. Разработка кроссплатформенных приложений на С++. — СПб.: «Символ-Плюс», 2011. - с.560.