STM32: что это за микроконтроллер и почему без него не летает почти ни один дрон

Что такое семейство STM32, зачем микроконтроллер нужен в полётном контроллере и почему для дрона важнее стабильная задержка, чем высокая частота.

Pardus · Главный редактор

ПоделитьсяВКонтактеTelegramMAX
STM32: что это за микроконтроллер и почему без него не летает почти ни один дрон

Что такое STM32 на самом деле

STM32 — семейство 32-битных микроконтроллеров компании STMicroelectronics, построенных на процессорных ядрах Arm Cortex-M. Ключевое слово здесь — «микроконтроллер»: вычислительное ядро, память и периферия собраны на одном кристалле, а не разнесены по отдельным корпусам, как в классическом процессоре с материнской платой (1, 2).

Чтобы понять, почему такая конструкция оказалась удобной именно для летающих машин, полезно посмотреть на архитектуру. Ядро Cortex-M — RISC-ядро с простыми и быстрыми инструкциями, оптимизированное под эффективность и низкое энергопотребление. Память инструкций и память данных разделены (гарвардская архитектура), поэтому выборка команды и обращение к данным идут параллельно, а не по очереди. Выполнение организовано конвейером, а набор инструкций Thumb-2 уменьшает размер кода, не отнимая производительности (4).

Отдельно стоит выделить блок, который для дрона важнее частоты ядра, — NVIC, встроенный контроллер прерываний с малой задержкой и автоматическим сохранением состояния. Прерывание — это и есть механизм, которым борт узнаёт, что «пришли новые данные с гироскопа» или «сработал вход приёмника». Чем меньше и стабильнее задержка между событием и реакцией, тем плотнее можно вести контур управления. Внутренние шины связывают ядро с флеш-памятью, SRAM, контроллером прямого доступа к памяти (DMA) и периферией, а её состав — UART, SPI, I2C, АЦП, таймеры, USB, CAN, Ethernet — зависит от конкретной серии (3).

Здесь и появляется первая поправка к бытовому представлению: STM32 — это не чип, а линейка, внутри которой серии отличаются ядром, памятью и составом периферии. Точные значения задержки NVIC в тактах и её разброс по сериям в открытых источниках, которые удалось найти, не приводятся — в открытых данных не найдено.

Плата, чип и семейство: три уровня, которые обычно путают

Слово «полётный контроллер» и аббревиатуру STM32 в разговорах часто используют как синонимы, а это разные уровни конструкции. Верхний — семейство микроконтроллеров как линейка производителя. Средний — конкретный кристалл, например STM32F405 или STM32H743, со своей частотой, объёмом памяти и набором блоков. Нижний — готовое изделие: плата полётного контроллера под конкретным названием, со своей разводкой, разъёмами и набором датчиков (6).

Практическое следствие: датчики и обвязка принадлежат плате, а не микроконтроллеру. MPU6000, BMI270 или ICM42688P, разъёмы UART, микросхема OSD, чип флеш-памяти для чёрного ящика — всё это выбирает производитель платы, и две платы на одном и том же STM32F405 могут различаться по возможностям сильнее, чем два разных кристалла (7, 8).

И честная оговорка, без которой получилась бы реклама: STM32 доминирует в классе, но не является единственным вариантом. Встречаются платы на микроконтроллерах AT32, есть самостоятельные проекты на ESP32, попадаются и старые поколения F1 и F3 (9, 10, 11). Правильная формулировка — «основной выбор», а не «единственный». И второе: STM32 применяется далеко не только в беспилотниках — это общее семейство для встраиваемых систем, дрон здесь просто один из сценариев.

Серии STM32: что из этой линейки попадает в дроны

Разбираться во всей номенклатуре не нужно, но понимать логику деления полезно: серии различаются прежде всего ядром, производительностью, энергопотреблением и периферией (3, 5).

Семейства STM32 и их типичное назначение. Таблица общая для встраиваемых систем, а не только для БПЛА.
СерияЯдроТипичное назначение
F0Cortex-M0Простые недорогие устройства, базовая периферия
F1Cortex-M3Универсальная серия, множество legacy-проектов
F3Cortex-M4FИзмерения, управление двигателями, смешанные сигналы
F4Cortex-M4FПроизводительные встраиваемые системы, обработка сигналов
F7Cortex-M7Тяжёлая обработка данных, кэш, графика
H7Cortex-M7, встречаются двухъядерные M7+M4Максимальная производительность линейки

Теперь сузим до дронов. Ранние полётные контроллеры строились на F1 и F3; массовым стандартом стал F4 — сочетание скорости и зрелой экосистемы прошивок; F7 и H7 — верхний класс, который берут там, где нужен запас на навигацию, телеметрию и расширенную периферию (16). Двухъядерные H7 в линейке есть, но подтверждения их применения именно в бортовых платформах поиск не дал — в открытых данных не найдено.

Роль STM32 на борту: замкнутый контур

Назначение микроконтроллера в борту описывается одной цепочкой: датчики → оценка состояния → регуляторы → сигналы на исполнительные устройства → моторы. STM32 читает гироскоп и акселерометр, иногда барометр, приёмник и данные с GPS; вычисляет углы, угловые скорости и положение аппарата; прогоняет фильтры и ПИД-регуляторы; формирует управляющие сигналы для регуляторов хода, которые вращают моторы (12, 13).

Цикл этот замкнут и повторяется непрерывно. Срыв такого контура означает не «просадку производительности», а потерю аппарата: коптер с задержкой в управлении начинает раскачиваться и падает. Отсюда и требование, которое отличает бортовой контроллер от обычного вычислителя, — детерминированность. Важна не средняя скорость обработки, а минимальный и стабильный разброс задержек: одинаковый отклик на каждом обороте цикла.

Именно под это требование подобрана периферия. Таймеры формируют точные интервалы и сигналы ШИМ, интерфейсы SPI и I2C обеспечивают быстрый обмен с датчиками, DMA перекладывает данные без участия ядра, а прерывания позволяют реагировать на событие, не тратя время на постоянный опрос (14, 15).

По частоте контура приведу цифру с обязательной оговоркой. Отраслевой блог, специализирующийся на компонентах для дронов, указывает, что контуры ПИД на платформах класса STM32F4 обновляются обычно в диапазоне от 1 до 8 кГц (11). Это заявление из отраслевого источника, независимого протокола измерений в открытых данных нет, поэтому воспринимать его следует как ориентир, а не как проверенную характеристику. Точных значений целевого времени цикла и допустимого джиттера для конкретных серий поиск не дал.

Проще говоря, STM32 в борту — это слой рефлексов, а не слой размышлений. Он должен реагировать быстро и одинаково, а не решать сложные задачи.

Как это выглядит в реальных платформах

FPV и мультироторные аппараты. Наиболее массовый случай — платы на STM32F405. По документации производителей, у этой серии 168 МГц, 1 МБ флеш-памяти и 192 КБ оперативной, а типовые платы несут шесть UART, микросхему OSD для вывода телеметрии поверх видео, чёрный ящик и рассчитаны на питание от 3S до 6S (17, 18, 19, 20).

Все перечисленные характеристики плат — вендорские. Независимого протокола испытаний у них нет, поэтому в тексте они подаются как заявление производителя, а не как измеренный факт.

Самолётные БПЛА и крылья. Классическая схема на F4 встречается и в аппаратах с неподвижным крылом, где требования смещаются: частота контура ниже, зато критичны длительная стабилизация, работа с GPS и разветвлённая телеметрия (21, 22).

Pixhawk-класс и переход на старшие серии. Здесь видна эволюция линейки на уровне стандартов. Поколения аппаратной платформы с индексами FMUv2, FMUv3 и FMUv4 построены на семействе F4, а FMUv5 и FMUv6X — уже на F7 и H7 (23). Конкретика: плата ModalAI VOXL Flight использует STM32F765 и полностью совместима с PX4 начиная с версии 1.11 (24), а Holybro Kakute H743-Wing несёт STM32H743 с частотой 480 МГц и поддерживается в PX4 версии 1.16 и новее (25).

Обратите внимание: 480 МГц относится к конкретной плате в документации автопилота, а не к серии H7 целиком. У разных исполнений цифры могут отличаться, и подменять одно другим нельзя.

Учебные и исследовательские стенды. Отдельный кейс роли, а не продукта: на STM32 собирают демонстрационные платформы для отработки алгоритмов стабилизации и обработки данных гироскопа (27, 28).

Где роль STM32 заканчивается

Граница проходит не по частоте, а по типу задачи. Всё, что требует не быстрой реакции, а «размышления» — обработка видеопотока, машинное зрение, построение карты, сложные алгоритмы планирования, — на микроконтроллер не помещается и выносится на отдельный вычислитель. STM32 остаётся нижним контуром, а полётный контроллер превращается в связку «микроконтроллер плюс companion-компьютер».

Ограничивают здесь два фактора: объём оперативной памяти и число периферийных каналов. Поэтому замена F4 на H7 расширяет возможности, но не отменяет разделения труда — она лишь сдвигает границу, за которой всё равно нужен второй вычислитель. Верхняя граница проявляется и в таких вещах, как процедура обновления прошивки: загрузчик STM32 — отдельная точка, где ошибка или вмешательство извне приводят к неработоспособной плате (26).

Отдельно, без развития темы: в открытых источниках встречается сообщение о планах выпустить в России крупную партию чипов для двигателей дронов как замену STM32 (29). Это пересказ пресс-сообщения, независимого подтверждения характеристик и реальных объёмов поставки в нём нет.

Что открытые данные не подтверждают

  • доля STM32 на рынке полётных контроллеров: ходящая по текстам оценка в районе 90% независимым источником не подтверждена — в открытых данных не найдено;
  • полные характеристики STM32H743 именно в исполнении бортовой платы: по документации автопилота подтверждается частота 480 МГц для конкретного изделия, объём флеш-памяти и оперативной для этой платы поиск не вернул — в открытых данных не найдено;
  • точные значения целевого времени цикла управления, допустимого джиттера и задержки NVIC по сериям — в открытых данных не найдено;
  • подтверждение применения двухъядерных версий H7 в бортовых платформах — в открытых данных не найдено;
  • объёмы выпуска, стоимость в закупке и статистика отказов микроконтроллеров в бортовом применении — в открытых данных не найдено;
  • независимо измеренные характеристики плат на F405 и H743 (реальная частота контура, задержки, потребление) — в открытых данных не найдено, есть только вендорские спецификации.

Вывод

Роль STM32 в беспилотнике формулируется одной строкой: это слой, который превращает показания датчиков в движение с гарантированным временем отклика. Семейство выиграло не за счёт рекордной производительности — F4 при 168 МГц не является быстрым процессором по современным меркам. Оно выиграло за счёт предсказуемости и зрелой периферии, которые позволяют удерживать замкнутый контур в жёстких временных рамках. За этой границей начинается территория вычислителей помощнее — и то, что STM32 туда не заходит, не недостаток микроконтроллера, а точное описание его места в конструкции.

Источники

  1. STM32 Microcontrollers (MCUs) — st.com
  2. STM32 MCU basics — wiki.st.com
  3. STM32 — ru.wikipedia.org
  4. STM32: архитектура — robocraft.ru
  5. Микроконтроллеры STM32: семейства, платы, характеристики — ikkaro.net
  6. Полётный контроллер — ru.wikipedia.org
  7. Flight Controller F405-CTR — mateksys.com
  8. Полётный контроллер для БПЛА: полное руководство по выбору — audioberry.ru
  9. Flight Controller Processors Explained: AT32, STM32 F4 и другие — oscarliang.com
  10. Как я разработал квадрокоптер на ESP32 с нуля — habr.com
  11. STM32 vs ESP32 for Drone Flight Controllers — uavchip.com
  12. Руководство по МК STM32F405RGT6 для дронов — uavchip.com
  13. Микроконтроллеры в дронах: принципы управления — picbasic.ru
  14. Встроенные системы для дронов: какие технологии применяются — wezom.com.ua
  15. Drones & STM32 — emcu.eu
  16. MCU полётного контроллера, разновидности: F1, F3, G4 — profpv.ru
  17. SpeedyBee F405 V3 30X30 Flight Controller — speedybee.com
  18. F4 Advanced Flight Controller (MPU6000, STM32F405) — getfpv.com
  19. SpeedyBee F405 V3 BLS 50A 30x30 FC&ESC Stack — speedybee.com
  20. SpeedyBee F405 V4 — betaflight.com
  21. Полётный контроллер JHEMCU F405 WING — air-hobby.ru
  22. MATEKSYS F405-Wing Flight Controller — getfpv.com
  23. PX4 Reference Flight Controller Design — docs.px4.io
  24. ModalAI VOXL Flight — docs.px4.io
  25. Holybro Kakute H743-Wing — docs.px4.io
  26. STM32 Bootloader — docs.px4.io
  27. FPV-дрон как учебный стенд: разбираем по компонентам — vc.ru
  28. Программируем квадрокоптер на STM32 — habr.com
  29. 200 000 чипов для двигателей дронов выпустят в России — www1.ru
ТП

Журналист_1 — технический журналист «Технологий Победы»

Темы: БПЛА, робототехника, связь, радиоэлектроника, ИИ, военные технологии. Материал подготовлен по открытым источникам; технические характеристики приведены со ссылками и с пометкой о степени подтверждения.

Помогите сделать материал точнее Работаете с бортовыми контроллерами на STM32 или испытывали такие платформы на практике? Нашли неточность, располагаете измерениями частоты контура, задержек или потребления? Сообщите редакции — после проверки данные будут добавлены в статью с указанием источника, если вы этого захотите.
Как встроить на площадке: вставьте код целиком в блок «Произвольный HTML» или в поле контента в режиме кода — заголовок, краткое описание и блок мнения редакции шаблон выводит отдельно, дублирования не будет; если шаблон сам выводит карточку автора — удалите блок .tv-author; если шаблон уже добавляет плашку обратной связи — удалите последний .tv-callout; анкоры #s1–#s29 внутренние; при вырезании атрибутов id замените короткие сноски на полные адреса из блока «Источники»; таблица на мобильных прокручивается по горизонтали, min-width: 520px можно поднять, если колонки получатся тесными.
ПоделитьсяВКонтактеTelegramMAX

Ещё в рубрике «БПЛА и беспилотные системы»

Ещё в разделе «Технологии»

Все материалы