Посмотр рубрик

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

Данные уроки ориентированы на программирование микроконтроллеров, поэтому разберёмся, что это такое и чем микроконтроллер отличается от процессора.

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

Микроконтроллер, МК (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

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

  • Производить вычисления
  • Измерять напряжение на выводах
  • Управлять логическими уровнями на цифровых выводах

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

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

SoC #

Система на кристалле (System-on-a-Chip, SoC) - микросхема, объединяющая на одном кристалле большинство блоков вычислительной системы. Микроконтроллер сам является одним из видов SoC, но термином SoC часто называют более сложные системы с несколькими процессорными ядрами, контроллерами памяти, графическими, сигнальными, криптографическими и радиочастотными блоками. Такая SoC может запускать Linux и использоваться, например, в смартфоне или Wi-Fi-роутере. Антенна и оперативная память при этом не обязаны находиться на том же кристалле или даже в той же микросхеме.


Возможный состав SoC

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

Большинство МК программируют на C/C++ с использованием компилятора для конкретной архитектуры. Код пишут в редакторе, собирают вместе с библиотеками, а затем загружают в память МК. Способ загрузки зависит от семейства и платы: иногда требуется внешний программатор или отладчик, а иногда достаточно встроенного USB-интерфейса или загрузчика. На компьютере процессом управляет специальная утилита для загрузки. МК с Wi-Fi или другим каналом связи могут поддерживать беспроводное обновление прошивки (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 порт и программатор для загрузки прошивки. Именно в таком виде удобнее всего собирать прототипы или просто изучать работу с МК.


Отладочные платы. Цветные, красивые и очень удобные

Дополнительно #

Дополнительный контент доступен владельцам набора GyverKIT и по подписке, подробнее читай здесь. Блок содержит:

  • Тезисы, Вопросы

Полезные страницы #


(18 голосов)
Подписаться
Уведомить о
guest

1 Комментарий
Старые
Новые Популярные
Прокрутить вверх