View Categories

Микроконтроллер

Микроконтроллер, МК (Microcontroller Unit, MCU, MC, UC, μC) - программируемая цифровая микросхема, состоящая из процессора и широкого набора периферийных блоков. Если проводить аналогию с компьютером, то процессор - это просто процессор, а микроконтроллер - это весь компьютер целиком. Точнее, его системный блок. В одной микросхеме могут умещаться в различных сочетаниях и количествах:

  • Процессор со всеми своими блоками
  • Постоянная память (ROM, Flash)
  • Оперативная память (RAM, SRAM, DRAM)
  • Энергонезависимая память (EEPROM)
  • Тактовый генератор
  • Сторожевой таймер (Watchdog timer)
  • ШИМ контроллер (PWM)
  • Многоцелевой таймер
  • Часы реального времени
  • Аналогово-цифровой преобразователь (АЦП, ADC)
  • Цифро-аналоговый преобразователь (ЦАП, DAC)
  • Компаратор
  • Источник опорного напряжения
  • Универсальные цифровые порты ввода-вывода (GPIO)
  • Интерфейсы ввода-вывода (UART, I²C, SPI, CAN, USB...)
  • Контроллеры сенсорных кнопок
  • Контроллеры бесколлекторных и шаговых двигателей
  • Контроллеры дисплеев, камер и клавиатур

Процессору для работы нужна дополнительная периферия (память, устройства ввода-вывода, и т.д.), микроконтроллер же работает самостоятельно - у него всё это есть внутри, включая процессор

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


Блок-схема ESP32 - одного из самых навороченных МК (SoC) с WiFi и Bluetooth

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

  • Производить вычисления
  • Измерять напряжение на выводах
  • Выдавать напряжение на выводах

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

Устройства на основе МК окружают нас повсюду: это компоненты умного дома, стиральные машины, микроволновки, станки с ЧПУ, принтеры, компьютерные клавиатуры и мыши, электронные игрушки... Такие устройства попадают под понятие встраиваемых систем (embedded system) - система на основе МК или другого микропроцессора, которая работает непосредственно в устройстве, т.е. "встроена" в него. Также все вот эти поделки на Arduino - это embedded.

SoC #

Система на кристалле (System-on-a-Chip, SoC) - это набор аппаратных блоков, расположенных на одном кристале внутри одной микросхемы. Между понятиями МК и SoC довольно широкая граница, по сути SoC - это сильно навороченный МК, внутри которого может быть несколько процессоров и гораздо более сложная периферия, например несколько МБ памяти, специальные ядра для обработки информации, блоки шифрования, цифровые сигнальные процессоры (DSP), регуляторы и стабилизаторы напряжения, радиопередатчики и приёмники с антенной, SoC может работать на операционной системе, например Linux. Если МК используется в не очень производительных устройствах, то SoC может стоять в смартфоне или WiFi роутере.

Программирование МК #

Большинство МК программируются на C/C++ с использованием соответствующего компилятора под конкретную архитектуру. Есть бесплатные компиляторы, есть платные, есть как с открытым исходным кодом, так и с закрытым. Одного компилятора будет мало - код сначала нужно где-то написать, то есть нужен текстовый редактор кода. А затем загрузить в МК - процесс и способ загрузки отличается у разных семейств и архитектур и часто требует внешнего устройства - программатора, который позволяет компьютеру подключиться к МК для загрузки скомпилированной программы - бинарника. На стороне компьютера нужна специальная утилита для загрузки. Модели МК с WiFi или другим радио на борту могут прошиваться без проводов "по воздуху" (Over The Air, OTA).

Бинарник также называют прошивкой (firmware). В то же время "прошивка", как глагол - процесс загрузки бинарника в память МК. Прошивка прошивки, вот такие дела

Загрузчик #

Есть два способа загрузки прошивки в МК - напрямую через программатор и через загрузчик (bootloader). Программатор позволяет писать данные с компьютера сразу в память МК, а также читать содержимое его памяти. Загрузчик же - отдельная специальная прошивка, расположенная в своей отдельной области памяти МК. Он позволяет загружать основную прошивку различными способами, например по USB, по интерфейсу UART или даже с подключенной SD карты памяти. К некоторым МК можно написать свой загрузчик под свои цели и задачи.

IDE #

Таким образом для работы с МК нам понадобится как минимум:

  • Сам МК
  • Программатор
  • Редактор кода
  • Компилятор
  • Утилита для загрузки

По сути можно писать код хоть в блокноте, затем компилировать его и загружать при помощи внешней утилиты, но в современном мире всё это объединяется в IDE - интегрированной среде разработки (Integrated Development Environment). Это специальная программа, в которой есть и удобный редактор, и компилятор со всеми утилитами уже туда встроен. Почти у каждого производителя МК есть своя IDE под его продукцию (CUBE IDE, Microchip Studio, ESP-IDF), но также существуют и универсальные IDE, которые поддерживают МК от разных производителей и с разными архитектурами (Arduino IDE, VS Code, Eclipse IDE).

В данном разделе уроков мы рассматриваем только общие понятия, в других разделах по разным семействам МК есть более подробная информация по работе с конкретными IDE

Отладочная плата #

Популярные модели МК можно встретить в виде отладочной платы (development board, dev board) - это печатная плата, на которой распаян МК со всей необходимой обвязкой для питания и стабильной работы, могут присутствовать кнопки и светодиоды для отладки, дисплеи, камеры и другие устройства. Ножки микросхемы МК выведены на пины по краям платы для удобного подключения и сборки макетов, а также на плате может находиться USB порт и программатор для загрузки прошивки. Именно в таком виде удобнее всего собирать прототипы или просто изучать работу с МК.

Основные тезисы урока #

  • Микроконтроллер - это процессор с набором дополнительной периферии, который может работать сам по себе
  • МК может заменить собой большую электронную схему
  • В общем случае МК может программироваться, читать и выдавать напряжение на своих выводах
  • SoC - ещё более мощный и навороченный микроконтроллер
  • Программатор позволяет писать данные напрямую в память МК
  • Загрузчик - вспомогательная прошивка в памяти, нужен для загрузки основной прошивки разными способами без использования программатора
  • Для программирования МК нужен редактор кода, компилятор, утилита для загрузки и программатор, либо IDE + программатор
  • Отладочная плата - удобная плата с МК и всем необходимым для его работы и загрузки прошивки
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Прокрутить вверх