Найти в Дзене

Микроконтроллеры: обзор и практика применения. Часть 1

Автор: Жижин Валерий В статье представлен обзор современных микроконтроллеров. Приводится история их появления, классификация, рассматриваются области применения различных типов микроконтроллеров. Особое внимание уделяется архитектуре 32-разрядных устройств на основе ARM-ядер Cortex-M. Представлены некоторые средства разработки и отладки ПО. Введение Данная статья содержит обзор современных архитектур микроконтроллеров и областей их применения. Во второй части приводятся примеры практической реализации проектов с фрагментами кода на языке Си. Статья написана на основе как технических публикаций, так и материалов автора, имеющего многолетний опыт работы в данной области. История История появления и развития микроконтроллеров неразрывно связана с историей микропроцессоров. А она достаточно любопытна. В 1969 г. Intel получила заказ от молодой японской компании, занимающейся производством калькуляторов. Им требовался набор из 12 интегральных схем в качестве основного элемента для нового де
Оглавление

Автор: Жижин Валерий

В статье представлен обзор современных микроконтроллеров. Приводится история их появления, классификация, рассматриваются области применения различных типов микроконтроллеров. Особое внимание уделяется архитектуре 32-разрядных устройств на основе ARM-ядер Cortex-M. Представлены некоторые средства разработки и отладки ПО.

Введение

Данная статья содержит обзор современных архитектур микроконтроллеров и областей их применения. Во второй части приводятся примеры практической реализации проектов с фрагментами кода на языке Си.

Статья написана на основе как технических публикаций, так и материалов автора, имеющего многолетний опыт работы в данной области.

История

История появления и развития микроконтроллеров неразрывно связана с историей микропроцессоров. А она достаточно любопытна.

В 1969 г. Intel получила заказ от молодой японской компании, занимающейся производством калькуляторов. Им требовался набор из 12 интегральных схем в качестве основного элемента для нового дешёвого настольного калькулятора. Проект был разработан Масатоши Шима, который и представлял японскую сторону. Тед Хофф (Теd Ноff), руководитель отдела, занимавшегося разработкой применений для продукции Intel, ознакомившись с проектом, понял, что вместо того, чтобы создавать калькулятор с некоторыми возможностями программирования, можно сделать наоборот: компьютер, программируемый для работы в качестве калькулятора. Развивая идею, в течение осени 1969 г. Хофф определился с архитектурой будущего микропроцессора, которую назвали «семейство 4000». Семейство состояло из четырёх 16-выводных микросхем: 4001 содержал ROM на 2 Кбайта; 4002 – RAM с 4-битным выходным портом для загрузки программ; 4003 представлял собой 10-битный расширитель ввода-вывода с последовательным вводом и параллельным выводом для связи с клавиатурой, индикатором и другими внешними устройствами; наконец 4004 был 4-битным ЦПУ (центральным процессорным устройством).

Это ЦПУ содержало 2300 транзисторов и работало на тактовой частоте 108 кГц. 15 ноября 1971 г. было объявлено о создании первого микропроцессора. Правообладателем этого первого микропроцессора стала компания Intel.

Первый патент на однокристальную микро-ЭВМ был выдан в 1971 году инженерам Майклу Кочрену и Гари Буну, сотрудникам американской Texas Instruments. Именно они родоначальники идеи размещения на одном кристалле не только процессора, но и памяти с устройствами ввода-вывода. В 1976 году американская фирма Intel выпускает микроконтроллер i8048. Он имел на борту 4 Кбайт УФ однократно программируемой памяти, 128 байт SRAM, GPIO, последовательные порт и, собственно, 8-битное процессорное ядро. Через 4 года, в 1980 году, Intel выпускает следующий микроконтроллер: i8051. Intel 8048 был использован в игровой приставке Magnavox Odyssey, аналоговых синтезаторах Roland.

Удачный набор периферийных устройств, возможность гибкого выбора внешней или внутренней программной памяти и приемлемая цена обеспечили этому микроконтроллеру успех на рынке. С точки зрения технологии микроконтроллер i8051 являлся для своего времени крайне сложным изделием: в кристалле было использовано 128 тысяч транзисторов, что в 4 раза превышало количество транзисторов в 16-разрядном микропроцессоре i8086.

В СССР с начала 1980-х годов до как минимум 1992 года на заводе «Квазар» в г. Киеве выпускался КМ1816ВЕ48 – 8-битный однокристальный микроконтроллер (ОМК), советский аналог i8048. Он получил широкое распространение во встраиваемых вычислительных системах, а также как периферийный контроллер в составе специальных вычислительных средств.

В 90-е годы в индустрии микроконтроллеров начался настоящий бум. Дело в том, что в начале 1990-х годов большая вселенная восьмибитных микроконтроллеров принадлежала одной компании, всемогущей «Мотороле». Но вдруг у неё появился никому не известный соперник с малозначащим именем Microchip Technology, выпустивший контроллер PIC 16C84. Особенность этого чипа состояла в том, что он включал в себя электрически перепрограммируемую память типа EEPROM, которая не требовала ультрафиолетовой засветки для стирания, как у её предшественницы EPROM. «Теперь пользователи могли изменять программу прямо в процессе работы», – говорил Род Дрейк, ведущий разработчик микросхемы и первый директор Microchip.

Вдобавок один чип стоил менее 5 долларов, что было в 4 раза ниже, чем цены конкурентов (в первую очередь, конечно, «Моторолы»). 16C84 нашёл применение в смарт-картах, пультах дистанционного управления и беспроводных автомобильных ключах. Он положил начало целой линейке микроконтроллеров, ставших «суперзвёздами» электроники – сейчас любой радиолюбитель знает о PIC-контроллерах. К настоящему времени продано около 6 миллиардов микросхем этого семейства.

Далее в игру включились такие столпы, как Texas Instruments, Atmel (в 2016 году была поглощена Microchip), STMicroelectronics.

Микроконтроллеры этих производителей заняли свои ниши. 16-разрядные микроконтроллеры Texas Instruments (линейка MSP) были и остаются ориентированы в основном на низко и сверхнизко потребляющие приложения и нашли применения в огромном количестве различных датчиков с автономным питанием, изделия Atmel завоевали популярность низкой ценой и используются в аппаратуре общего назначения.

Начиная с 2010-х рынок микроконтроллеров постепенно стали захватывать 32-разрядные устройства компании STMicroelectronics – STM32. Это связано в основном с сочетанием трёх факторов: наличием очень развитого функционала периферийных устройств в составе МК, высокой тактовой частоты (свыше 100 МГц) и наличием большого количества библиотек и компиляторов для этого семейства МК, что существенно снижает затраты и время для разработки прикладного ПО.

Особую популярность МК линейки STM32 приобрели у разработчиков систем промышленной автоматики, устройств «умный дом», полётных контроллеров и автопилотов БПЛА, медицинской техники. О МК ряда STM32 в основном и пойдёт речь в этих статьях.

Классификация микроконтроллеров

В микроконтроллерах традиционно используются две архитектуры: Гарвардская и Фон-Неймана.

Гарвардская архитектура использует раздельные адресные пространства команд и данных, а также раздельные шины доступа к ним. В Гарвардской архитектуре МК может читать следующую инструкцию, пока выполняется текущая, что существенно повышает производительность вычислений. Эта архитектура идеально подходит для приложений, требующих высокой скорости обработки данных, и применяется в МК реального времени. К недостаткам данной архитектуры следует отнести недостаточно гибкое использование памяти, поскольку размер памяти для кода и данных фиксирован. Функциональная схема Гарвардской архитектуры показана на рис. 1.

Рис. 1. Функциональная схема Гарвардской архитектуры
Рис. 1. Функциональная схема Гарвардской архитектуры

Архитектура Фон-Неймана характеризуется общим адресным пространством для команд и данных и использует общую шину доступа к ним. Это повышает гибкость в использовании памяти, поскольку её можно динамически перераспределять между кодом и данными, но одновременно снижается производительность вычислений. Функциональная схема архитектуры Фон-Неймана показана на рис. 2.

Рис. 2. Функциональная схема архитектуры Фон-Неймана
Рис. 2. Функциональная схема архитектуры Фон-Неймана

Современные МК используют модифицированные варианты этих архитектур, сочетая преимущества обоих.

Наиболее распространённая классификация современных микроконтроллеров показана на рис. 3.

Рис. 3. Классификация микроконтроллеров
Рис. 3. Классификация микроконтроллеров

Разрядность МК – это количество бит, которое параллельно может передавать шина данных. В микроконтроллерах Гарвардской архитектуры используются 3 типа шин: шина данных, шина команд и шина управления. Они могут иметь разную разрядность, но не менее 8. Разрядность шины данных определяет производительность МК.

С точки зрения системы команд и способов адресации операндов процессорное ядро современных микроконтроллеров реализует один из трёх принципов построения процессоров [1].

CISC-процессоры (Complex Instruction Set Computer) выполняют большой набор команд с развитыми возможностями адресации, что даёт разработчику возможность выбрать наиболее подходящую команду для выполнения необходимой операции. В применении к 8-разрядным микроконтроллерам процессор с CISC-архитектурой может иметь однобайтовый, двухбайтовый и трёхбайтовый (редко четырёхбайтовый) формат команд. Время выполнения команды может составлять от 1 до 12 циклов. К МК с CISC-архитектурой относятся МК фирмы Intel с ядром MCS-51, которые в настоящее время поддерживаются целым рядом производителей, например, МК семейств AT89Cx051, AT89S(Atmel) и ряда других.

В процессорах с RISC-архитектурой (Reduced Instruction Set Computer) набор исполняемых команд сокращён до минимума. Для реализации более сложных операций команды комбинируются. При этом все команды имеют формат фиксированной длины (например, 14 или 16 бит), выборка команды из памяти и её выполнение осуществляются за один такт синхронизации. Система команд RISC-процессора предполагает возможность равноправного использования всех регистров процессора. Это обеспечивает дополнительную гибкость при выполнении ряда операций. К МК с RISC-процессором относятся МК AVR фирмы Atmel, МК PIC16...PIC18 фирмы Microchip, MSP430 (Texas Instrument).

ARM-ядро (Advanced RISC Machine – усовершенствованная RISC-машина) – семейство лицензируемых 32-битных и 64-битных микропроцессорных ядер, разрабатываемых компанией ARM Limited.

Особенности ARM-ядер:

  • базируются на архитектуре RISC;
  • помимо реализации вычислительных функций ядро ARM управляет периферийными устройствами кристалла, такими как порты ввода-вывода, таймеры, устройства оцифровки сигналов (аналого-цифровые и цифро-аналоговые преобразователи);
  • имеют аппаратные блоки для операций с плавающей точкой и векторных вычислений, встроенную кэш-память;
  • поддерживают сопроцессоры и могут быть использованы для построения многопроцессорных систем с общей памятью;
  • обладают очень низким энергопотреблением.

Процессорные ARM-ядра содержат все МК ряда STM32. В зависимости от функционала они существуют в следующих модификациях: Cortex-M33, Cortex-M7F, Cortex-M4F, Cortex-M3, Cortex-M0+, Cortex-M0.

По энергопотреблению в активном режиме (Run) современные микроконтроллеры условно относят к одной из трёх групп:

  • с пониженным напряжением питания (от 1,8 до 3 В) – предназначены для работы в устройствах с автономным питанием. Наиболее популярные модели: STM32Fxxx, MSP430Fxxx;
  • низкопотребляющие – имеют режимы пониженного потребления, в которых тем не менее способны выполнять различные функции. Типичные представители семейства: PIC16xxx, PIC18xxx, Atmega128xxx, STM32Fxxx, MSP430Fxxx;
  • со сверхнизким энергопотреблением (picoPower).

В активном режиме потребляют 30–40 мкА/МГц, а ток в режиме сна – 50–70 нА. К ним относятся: Atmega328xxx, PIC18F42xx, STM32Lxxx, MSP430F2xxx.

Разработчики систем на основе микроконтроллеров применяют следующие способы снижения энергопотребления:

  • использование специализированных режимов энергосбережения, таких как Sleep Mode, Idle Mode;
  • отключение неиспользуемых функциональных узлов МК, так как редко требуется работа всех периферийных устройств одновременно;
  • выбор рабочей тактовой частоты, минимально необходимой для выполнения приложения;
  • использование табличных методов вычисления вместо расчётов по формулам;
  • в отдельных случаях в код, написанный на языке высокого уровня, например, на Си, включают подпрограммы на языке Ассемблер для конкретного типа микроконтроллера.

Рассмотрим режимы энергосбережения.

Режим Idle Mode

В этом режиме прекращает работу центральный процессор, но продолжают функционировать периферийные модули, которые контролируют состояние объекта управления. При необходимости сигналы от периферийных модулей переводят МК в активный режим, и рабочая программа формирует необходимые управляющие воздействия.

В режиме ожидания мощность потребления МК снижается по сравнению с активным режимом в 5–10 раз.

Режим Sleep Mode

В этом режиме прекращают работу как центральный процессор, так и большинство периферийных модулей. Переход МК из состояния останова в рабочий режим возможен, как правило, только по прерываниям от внешних источников или после подачи сигнала сброса. В режиме останова мощность потребления МК снижается по сравнению с активным режимом примерно на три порядка и составляет единицы микроватт.

Переход на 32-разрядную архитектуру

В последние годы наблюдается активная тенденция у разработчиков встраиваемых систем на использование 32-разрядной архитектуры [2].

Главной причиной движения в сторону 32-разрядных МК является усложнение функционала встраиваемых устройств под влиянием требований рынка. Поскольку встраиваемые приложения становятся всё более функционально насыщенными, 8- и 16-разрядные МК не позволяют обеспечить требуемую производительность.

Второй причиной является то, что 32-разрядные МК обеспечивают более чем 10-кратное повышение производительности, а также позволяют снизить энергопотребление в активном режиме, уменьшить размер программного кода и ускорить разработку ПО.

Снижение энергопотребления в 32-разрядных ARM-микроконтроллерах происходит за счёт следующих факторов.

  • Повышение эффективности доступа к памяти. Использование 32-разрядной шины уменьшает число требуемых циклов обращения к памяти (в 4 раза меньше, чем у 8-разрядных).
  • Уменьшение рабочей частоты. Высокая производительность ARM-ядра позволяет организовать работу на более низкой тактовой частоте. Пример: приложение с рабочей частотой 30 МГц на 8-разрядном CISC-ядре 8051 реализуется также на 32-разрядном ARM-процессоре с частотой 3 МГц при той же производительности вычислений.
  • Уменьшение количества активных циклов. ARM-микроконтроллеры имеют намного более высокую производительность по сравнению с 8- и 16-разрядными. Поэтому есть возможность завершить задачу и перейти в дежурный режим с пониженным энергопотреблением намного быстрее, что снижает общее число активных циклов в ПО.

Третья причина – продукты на основе ARM-процессора обеспечивают широкий выбор периферии, производительности, объёма памяти, типа корпусов и в итоге помогают оптимизировать стоимость конечного продукта.

Кроме того, микроконтроллеры на базе ARM-ядра Cortex M имеют ряд функций, позволяющих их использовать в различных сферах применений: беспроводные сенсорные сети, IoT-системы, медицинское оборудование, беспилотные системы.

Цена на ARM-микроконтроллеры значительно (примерно в 3 раза) снизилась за последние 8 лет, и на рынке появляется всё больше недорогих и даже бесплатных инструментов разработки и отладки.

Программный код, разработанный для ARM-процессоров, можно использовать в течение ряда лет для микроконтроллеров других поставщиков. Это обусловливает лёгкость портирования приложений с одного МК, содержащего ARM-ядро, на МК другого поставщика. Портирование осуществляется с помощью стандарта Cortex Microcontroller Software Interface Standart (CMSIS). Этот интерфейс включён в библиотеки драйверов устройств МК почти всех производителей и обеспечивает программный доступ к функциям и регистрам ядра. Это позволяет осуществлять поддержку встраиваемых ОС, а также компиляторов различных поставщиков.

Разработка прикладного ПО для МК на базе АРМ Cortex-M значительно проще, чем для 8- и 16-разрядных структур. Ядро Cortex-M полностью программируется на языке С, содержит различные функции отладки, помогающие обнаружить в коде ошибки. В Интернете существует большое количество примеров и руководств, а также доступны недорогие стартовые наборы для начинающих разработчиков.

Поскольку ARM-архитектура получила широкое распространение, становится всё проще найти программиста-разработчика для ARM-архитектур, чем для других.

В России НПО «Миландр» серийно производит отечественный аналог ряда STM32F103x.

Это устройства серии 1986ВЕ9x, которые являются микроконтроллерами со встроенной Flash-памятью программ и построены на базе высокопроизводительного процессорного RISC-ядра ARM Cortex-M3 (производительность – 1,25 DMIPS/МГц при нулевой задержке между обращениями к памяти). Максимальная тактовая частота работы МК – 80 МГц. Готовятся к выпуску и другие модели отечественного производства.

Функциональная схема АРМ микроконтроллера

Типовая функциональная схема микроконтроллера ряда STM32 показана на рис. 4 (на примере STM32F303x).

Рис. 4. Функциональная схема микроконтроллера STM32
Рис. 4. Функциональная схема микроконтроллера STM32

Процессор

В микроконтроллерах, начиная с STM32F3ххх и выше, используется ядро ARM Cortex-M4. Оно интегрирует 32-битное ЦПУ, шинную структуру, блок вложенных прерываний, отладочную систему и предопределённую организацию памяти. Особенности функционирования ядра:

поддерживает фрагментированные данные (Unaligned Data);

имеет несколько шин, позволяющих выполнять операции параллельно;

поддерживает контроллер векторизованных вложенных прерываний (КВВП).

Максимальная тактовая частота процессора составляет 72 МГц.

Память

Адресное пространство микроконтроллера организовано в виде линейного пространства. Некоторые области памяти:

  • флеш-память – начинается с адреса 0x00000000, в этой области хранятся коды программ пользователя и системная информация. Объём 256 Кбайт;
  • оперативная память (SRAM) – имеет начальный адрес 0x20000000. Объём 40 Кбайт;
  • специальные регистры (CCM RAM) – находятся в памяти, начиная с адреса 0xE0000000. Объём 8 Кбайт.

Периферия

В микроконтроллере интегрированы:

  • четыре 12-битных АЦП на 16 входных каналов каждый (скорость преобразования – до 12 МГц);
  • два 12-битных ЦАП;
  • два DMA-контроллера на 7 и 5 каналов соответственно с поддержкой режимов «периферия-память», «память-периферия», «память-память»;
  • 17 таймеров (16 и 32 разряда).

Интерфейсы

В микроконтроллере также реализованы следующие интерфейсы:

  • I2C-интерфейс – два модуля, каждый может работать в режиме «ведущий» (Master) или «ведомый» (Slave). Доступны стандартные скорости передачи данных до 100 кГц и быстрая передача на частотах до 400 кГц;
  • SPI-интерфейс – три модуля, каждый может работать в режиме Master или Slave, поддерживать полнодуплексную, полудуплексную и симплексную передачи данных;
  • USART (ISO 7816, LIN, IrDA) – 5 модулей, обеспечивает асинхронную коммуникацию;
  • CAN-интерфейс. Соответствует спецификации 2.0 B (активный) со скоростью передачи данных до 1 Мбит/с;
  • USB-интерфейс – 2.0 FS;
  • 7 компараторов;
  • четыре усилителя с программируемым коэффициентом усиления (PGA);
  • контроллер сенсорного интерфейса;
  • интегрированный датчик температуры;
  • средства обеспечения безопасности;
  • SRAM-память с битом чётности;
  • контроллер защиты памяти (MPU);
  • аппаратный генератор избыточного циклического кода (CRC);
  • диапазон напряжения питания от 1,8 В до 3,6 В.

Система тактирования

Система тактирования микроконтроллера включает в себя несколько тактовых генераторов:

  • встроенный RC-генератор на 8 МГц, который называется High-Speed Internal (HSI) RC Oscillator. После сброса микроконтроллер по умолчанию тактируется от этого генератора. Основным его плюсом является то, что для работы генератора не нужны никакие дополнительные внешние компоненты. Однако его минус – плохая стабильность генерируемой частоты: при изменении температуры окружающей среды его частота в 8 МГц будет немного плыть;
  • High-Speed External (HSE). Этот генератор является альтернативой HSI. Для его работы нужен внешний кварцевый резонатор на частоту 4–32 МГц. Его главным преимуществом в сравнении с HSI является стабильность генерируемой частоты. Также при определённой настройке вывод OSC_IN можно подключить к источнику готового прямоугольного тактового сигнала без использования резонатора;
  • Low-Speed External (LSE). Этот генератор также требует внешнего кварцевого резонатора, но только на 32 768 Гц. LSE используется только для тактирования встроенных часов реального времени RTC, с помощью которых можно вести отсчёт текущего времени;
  • Low-Speed Internal (LSI) RC Oscillator. Это встроенный RC-генератор на 40 КГц. Он не отличается особой точностью, главная задача у него – генерация тактового сигнала для сторожевого таймера МК, который перезапустит систему в случае зависания.

Центральным узлом системы тактирования является синтезатор частоты PLL, вырабатывающий сигналы тактирования процессора, памяти и периферийных устройств.

Функциональная схема системы тактирования периферийных устройств показана на рис. 5.

Рис. 5. Функциональная схема системы тактирования периферийных устройств
Рис. 5. Функциональная схема системы тактирования периферийных устройств

Процессорное ядро и основная часть периферии использует тактовый сигнал SYSCLK.

После делителя AHB Prescaler тактовый сигнал распределяется между шинами микроконтроллера. Сигнал HCLK поступает в процессорное ядро, память и периферию шины AHB. FCLK также идёт в ядро. Делитель APB1 Prescaler формирует сигнал тактирования устройств шины APB1, а APB2 Prescaler – для устройств шины APB2.

Обзор семейств микроконтроллеров STM32

Семейство микроконтроллеров STM32 состоит из 16 серий микроконтроллеров: F0, F1, F2, F3, F4, F7, L0, L1, L4, L4+, L5, G0, G4, H7, WB, WL[3]. Каждая из серий базируется на одном из ядер ARM: Cortex-M33, Cortex-M7F, Cortex-M4F, Cortex-M3, Cortex-M0+, Cortex-M0.

Производитель делит все серии микроконтроллеров STM32 на 4 платформы (группы):

  • высокопроизводительные – F2, F4, F7, H7;
  • широкого применения – F0, G0, F1, F3, G4;
  • сверхнизкого потребления – L0, L1, L4, L4+, L5;
  • беспроводные – WB, WL.

Высокопроизводительные микроконтроллеры STM32 предназначены для реализации приложений для управления высокотехнологичным оборудованием, и некритичных к энергопотреблению. Этот ряд представлен в табл. 1.

Таблица 1. Высокопроизводительные микроконтроллеры STM32
Таблица 1. Высокопроизводительные микроконтроллеры STM32

Микроконтроллеры STM32 широкого применения используются в приложениях, критичных к цене, но содержат развитую систему АЦП, ЦАП, таймеров и компараторов. Они представлены в табл. 2.

Таблица 2. Микроконтроллеры STM32 широкого применения
Таблица 2. Микроконтроллеры STM32 широкого применения

Микроконтроллеры STM32 сверхнизкого потребления применяются во встраиваемых системах с автономным питанием. Типовое динамическое потребление тока (минимальное): 62 мA/MГц. Представлены в табл. 3.

Таблица 3. Микроконтроллеры STM32 сверхнизкого потребления
Таблица 3. Микроконтроллеры STM32 сверхнизкого потребления

Беспроводные микроконтроллеры STM32 находят применение в беспроводных приложениях, критичных к габаритам, например, в беспроводных сенсорных сетях Bluetooth LE, Zigbee, Thread. Представлены в табл. 4.

Таблица 4. Беспроводные микроконтроллеры STM32
Таблица 4. Беспроводные микроконтроллеры STM32

Новейшие серии микроконтроллеров

STM32 H7

В серию H7 входят высокопроизводительные микроконтроллеры, основанные на ядре ARM Cortex-M7F с поддержкой чисел с плавающей запятой двойной точности и тактовой частотой до 550 МГц. У микроконтроллеров STM32H747/757 и STM32H745/755 дополнительно имеется ядро Cortex-M4F частотой до 240 МГц. Ядро M7F в таком случае работает на частоте до 480 МГц. Ядра при этом могут работать как совместно, так и независимо.

STM32 F7

Серия F7 представлена микроконтроллерами на базе ядра ARM Cortex-M7F частотой до 216 МГц. По расположению портов ввода/вывода большинство микроконтроллеров серии взаимозаменяемы с контроллерами серии STM32 F4.

STM32 F4

STM32 F4 – первая серия, основанная на ядре ARM Cortex-M4F и имеющая поддержку DSP и чисел с плавающей запятой. Расположение портов ввода/вывода совместимо с серией F7, а сам чип отличается большей тактовой частотой (от 84 до 180 МГц), имеет 64 Кбайт встроенной памяти, поддержку протокола I²S, встроенные часы реального времени и более быстрый АЦП.

Средства разработки и отладки ПО

Ниже будут перечислены наиболее популярные у программистов STM-микроконтроллеров платформы [4].

1. IAR Embedded Workbench

IAR Embedded Workbench – профессиональная платформа разработки для микроконтроллеров STM32, которая отличается высокой скоростью компиляции и качеством сгенерированного кода.

Преимущества IAR Embedded Workbench.

  • Высокая производительность: генерирует эффективный и компактный код, что особенно важно для микроконтроллеров с ограниченными ресурсами памяти.
  • Расширенные отладочные возможности: предоставляет мощные инструменты для отладки, анализа стека и использования памяти.
  • Поддержка множества стандартов: IAR обеспечивает соответствие стандартам безопасности и качества кода, таким как MISRA-C.
  • Поддержка CMSIS: включает стандартную библиотеку для работы с Cortex-M процессорами – CMSIS (Cortex Microcontroller Software Interface Standard).

IAR Embedded Workbench – это коммерческий продукт, предлагающий пробную версию с ограничениями на размер кода.

2. STM32CubeIDE

STM32CubeIDE – интегрированная среда разработки (IDE) на базе Eclipse, разработанная STMicroelectronics. Она объединяет все необходимые инструменты для разработки, отладки и тестирования программного обеспечения для микроконтроллеров STM32.

Особенности STM32CubeIDE.

Гибкость. Поддерживает C и C++, а также интеграцию с различными системами управления версиями (Git и другие).

Интеграция с STM32CubeMX. Среда полностью интегрирована с STM32CubeMX, что позволяет легко генерировать и редактировать проектные файлы.

Отладка и тестирование. Встроенные инструменты отладки и профилирования помогают в поиске и исправлении ошибок, а также в мониторинге производительности.

Поддержка FreeRTOS. IDE предоставляет интеграцию с операционной системой реального времени FreeRTOS, позволяя использовать её в многозадачных приложениях.

STM32CubeIDE – это бесплатное и мощное решение для разработки как небольших, так и сложных проектов.

3. Keil MDK-ARM

Keil MDK-ARM – это популярная платная среда разработки от компании Arm, которая используется для программирования и отладки микроконтроллеров STM32.

Основные преимущества Keil MDK-ARM.

  • Компилятор ARMCC и LLVM: включает высокоэффективные компиляторы, обеспечивающие оптимизацию кода для STM32.
  • Интегрированные отладочные инструменты: поддерживает работу с аппаратными отладчиками, такими как ST-Link и ULINK.
  • Мощная система симуляции: Keil позволяет симулировать работу микроконтроллера без реального железа, что упрощает процесс тестирования.
  • Поддержка CMSIS: включает стандартную библиотеку для работы с Cortex-M процессорами – CMSIS (Cortex Microcontroller Software Interface Standard).

Keil MDK-ARM имеет ограниченную бесплатную версию для небольших проектов (до 32 Кбайт), однако полные лицензии достаточно дорогостоящие.

Следует отметить, что продвинутые инструменты, такие как Keil, IAR, предоставляют профессиональные возможности, но требуют платных лицензий. Выбор конкретного инструмента зависит от требований проекта, бюджета и уровня квалификации разработчика.

Заключение

Изобретение в начале 70-х годов прошлого века микропроцессоров и микроконтроллеров произвело настоящую революцию в электронной индустрии и повлияло практически на все сферы человеческой деятельности.

Во-первых, была произведена замена контроллеров управления технологическим оборудованием, выполненных на жёсткой логике, на программируемые логические контроллеры. Исчезли километры шлейфов межплатных соединений и громоздкие шкафы с этажерками плат, значительно возросла надёжность и технологичность аппаратуры с одновременным снижением её стоимости.

Во-вторых, начался новый виток микроминиатюризации электронной аппаратуры. Появилась так называемая технология SoC – система на кристалле, и с середины 90-х годов начали повсеместно распространяться электронные платёжные системы с RFID-метками (микроконтроллер + катушка), компоненты систем «умный дом», интеллектуальные датчики для автоэлектроники, авионики, медицины, систем безопасности.

В-третьих, в военной сфере произошёл значительный рывок в технологиях высокоточного оружия и беспилотных систем. Это кардинально изменило тактику ведения боевых действий в локальных конфликтах.

В настоящее время наблюдается тенденция активного внедрения алгоритмов машинного обучения (иногда его почему-то называют «искусственный интеллект») практически во все сферы деятельности. Поэтому в недалёком будущем следует ожидать появления коммерчески доступных 64-разрядных микроконтроллерных систем.

Во второй части статьи пойдёт речь о практическом применении микроконтроллеров STM32 в различных устройствах.

Литература

  1. Козырев В.Г. Программирование микроконтроллеров: учебное пособие для вузов. Севастополь: СевГУ, 2023. С. 64–66.
  2. Джозеф Ю. Почему стоит переходить на 32-разрядную архитектуру микроконтроллеров // Электронные компоненты. 2010. № 3. C. 93–98.
  3. STM32. РУВИКИ: интернет-энциклопедия. URL: https://ru.ruwiki.ru/wiki/STM32#mw-header.
  4. Основные программные инструменты для разработки под микроконтроллеры STM32. Интернет-ресурс. URL: https://embeddershop.ru/blog/stm32-software/?ysclid=mcw9voxhg279964858.

© СТА-ПРЕСС, 2025

Статья была опубликована в СЭ № 8 / 2025
Больше интересного – на медиапортале
https://www.cta.ru/