Энциклопедия электроники

СОДЕРЖАНИЕ

Микроконтроллер (microcontroller , microcontroller unit, MCU) – интегральная микросхема, совмещающая в себе процессор, ОЗУ, ПЗУ, АЦП, ЦАП, каналы ввода/вывода, таймеры и прочее.

Классификация

В зависимости от разрядности (как правило, шины данных) микроконтроллеры бывают: 4, 8, 16, 32 битные.

В настоящее время существует большое число архитектур микроконтроллеров. Наиболее распространены МК Гарвардской архитектуры с системой команд RISC. Ниже перечислены некоторые из них:

Семейство восьмибитных микроконтроллеров PIC делится на несколько серий:

Семейство восьмибитных микроконтроллеров AVR делится на несколько серий:

Структура

Структурная схема микроконтроллера семейства AVR приведена на рисунке.

Структурная схема микроконтроллера семейства AVR

Память программ (Program memory)

В микроконтроллере программа хранится в отдельной области памяти – память программ. Первые микроконтроллеры выпускались с однократно программируемой памятью программ. У выпускаемых в настоящее время микроконтроллеров программы хранятся в электрически перепрограммируемой памяти типа FLASH. Это позволяет обновлять программу в процессе жизненного цикла изделия. Применяемая в микроконтроллерах FLASH память допускает около 10 000 циклов записи/очистки.

Оперативная память (Data memory, SRAM)

Оперативная память микроконтроллера содержит регистры портов ввода/вывода и пользовательские регистры необходимые для выполнения программ. Например, адресное пространство оперативной памяти микроконтроллера семейства AVR Atmega8A состоит из 32 регистров общего назначения, 64х регистров портов ввода/вывода и 1024 байтов памяти.

Память данных (EEPROM)

Энергонезависимая память данных (EEPROM) предназначена для хранения данных при отсутствии питания, например, коэффициенты настройки устройства, текущий режим и т.д. В МК память данных выделена в отдельное адресное пространство. Для чтения и записи используются специальные команды. Ресурс памяти около 100 000 циклов записи/очистки.

АЛУ и регистры данных

Арифметико-логическое устройства (АЛУ) предназначено для выполнения операций с регистрами и константами. Операции могут быть арифметические, логические, операции, изменяющие счетчик команд.

Особенностью архитектуры AVR является наличие 32 регистров общего назначения: R0…R31. В архитектуре PIC предусмотрен один 8ми битный регистр, под названием W.

После выполнения операции в АЛУ происходит запись регистра статуса (в архитектурах AVR и PIC регистр называется STATUS). В нем содержится информация о выполненной информации. Отдельные биты характеризуют: флаг четности, флаг отрицательного числа, флаг нуля и т.д.

Также после выполнения команды изменяется счетчик программы: адрес в памяти программ выполняемой команды.

Тактовый генератор

Для работы АЛУ, периферии ввода/вывода, оперативной памяти необходим тактовый сигнал. В качестве источника тактового сигнала в большинстве микроконтроллеров могут выступать:

На рисунке ниже показано использование генератора от внешнего кварцевого резонатора.

Схема подключения кварцевого резонатора к микроконтроллеру ATtiny25

Встроенный RC генератор может работать на нескольких частотах. Выбор конкретной частоты осуществляется программированием специальной ячейки. Например, у МК ARV частота задается изменением прожигаемых ячеек (fuses) CKSEL.

Недостатком генераторов на RC цепочках является зависимость частоты от температуры. Для применений где требуется временная точность рекомендуется использовать внешний кварцевый резонатор.

Порты ввода/вывода

Выводы микроконтроллера могут быть настроены на прием или на выдачу логического сигнала. Направление работы вывода меняются в пользовательской программе путем изменения регистра порта ввода/вывода. На рисунке вывод PB3 работает как вход, PB0, PB1 – как выход. Применение полевых транзисторов позволяет подключать светодиоды непосредственно к микроконтроллеру.

Схема подключения к порту ввода/вывода ATtiny25

Некоторые выводы микроконтроллера кроме приема и выдачи логических сигналов могут применяться для других целей, например, вход АЦП, компаратора и т.д.

Интерфейсы связи

Шина SPI (Serial Peripheral Interface) – синхронная полнодуплексная шина. Предназначена для обмена между микроконтроллером и другими устройствами.

Протокол SPI позволяет подключать несколько ведомых устройств к одному ведущему. Для связи используется 4 линии:

Схема подключения EEPROM памяти AT25010B к микроконтроллеру ATmega8A по шине SPI
Обмен данными между микроконтроллером ATMega8A и EEPROM памятью AT25010B по шине SPI

Шина I2C, TWI – последовательная ассиметричная шина, использующая две линии связи:

Схема подключения АЦП MCP3425 к микроконтроллеру ATmega8A по шине I2C/TWI
АЦП MCP3425 измеряет сопротивление терморезистора, чтение измеренных значений осуществляется по шине I2C/TWI

USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter) – универсальный синхронный/асинхронный последовательный передатчик/приемник. Позволяет принимать/передавать данные по последовательному интерфейсу.

Схема подключения микроконтроллера ATMega8A к компьютеру по интерфейсу RS-232 через преобразователь MAX232
Для связи с персональным компьютером через порт RS-232 используется микросхема MAX232. Обмен информацией осуществляется через порт USART микроконтроллера.

Счетчики/таймеры

Счетчики/таймеры предназначены для предназначены для подсчета импульсов. Источником импульсов может служить внешний сигнал или тактовый сигнал микроконтроллера.

С помощью таймеров можно осуществить задержку по времени в программе.

Блок прерываний

Прерывания необходимы для выполнения определенной программы при возникновении некоторых событий, например, изменения логического входа, переполнение счетчика, завершения передачи данных по USART и т.д.

Сторожевой таймер

Сторожевой таймер (watchdog timer) предназначен для сброса микроконтроллера при его зависаниях. Зависания могут возникнуть из-за ошибок в пользовательской программе, (переход в бесконечный цикл, переход в «пустую» область памяти программ). При переполнении сторожевого таймера осуществляется сброс микроконтроллера.

АЦП

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

Компараторы

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

Конфигурируемая логика

Блок конфигурируемой логики позволяет реализовать физическую логическую схему внутри МК. Данные блоки являются редкостью для микроконтроллеров.

Входами логической схемы могут являться: выводы МК, тактовый сигнал, биты регистров оперативной памяти. Выходами могут быть выводы МК, биты регистров оперативной памяти. Конфигурируемую логику можно настроить на выполнение простейших логических операций: И, И-НЕ, ИЛИ-НЕ и прочих.

Корпуса

Одна модель микроконтроллера может выпускаться в различных корпусах. Корпус DIP для монтажа в отверстия платы последнее время встречается всё реже. Ниже приведен краткий список наиболее распространенных корпусов микроконтроллеров:

Типы корпусов микроконтроллеров

Язык

Программирование микроконтроллеров может осуществляться на ассемблере или на языке высокого уровня Си.

Запись программ в МК

Запись программ в память микроконтроллера (программирование) осуществляется с помощью программаторов. Запись можно выполнить двумя способами: вставить микроконтроллер в панель программатора или подключить программатор к конечному устройству (внутрисхемное программирование).

Контроллеры Microchip PIC16 программируются по технологии ICSP (In-Circuit Serial Programming). По данной технологии программирование может осуществляться в готовом устройстве. Программатор имеет пять линий связи с МК:

Схема подключения программатора к микроконтроллеру PIC

Микроконтроллеры Microchip AVR можно запрограммировать параллельным и последовательным способами. Для параллельного метода необходимо: 9 (управляющие линии) + 8 (линии данных) +2 (линии питания и земли) линий связи. Параллельное программирование требует подачи напряжения 12 В в микроконтроллер.

Для последовательного метода используется интерфейс SPI: 5 линий связи. Одним из недостатков является медленная скорость по сравнению с параллельным методом и необходимость предварительного запуска МК.

Схема подключения программатора к микроконтроллеру AVR

На рисунке ниже представлен внутрисхемный USB программатор микроконтроллеров AVR. Такой программатор продается в известном китайском магазине.

Программатор микроконтроллеров AVR

Среда разработки

Разработка программ для микроконтроллеров осуществляется в интегрированной среде разработке (IDE). Для создания проектов на AVR и PIC можно воспользоваться средой: Atmel Studio 7 IDE, MPLAB X IDE, он-лайн MPLAB Xpress.

MPLAB Xpress
Онлайн среда разработки MPLAB Xpress

IDE среда разработки содержит редактор проектов, программ, компилятор, отладчик, симулятор и много другое. Также для программирования микроконтроллеров могут использоваться сторонние среды разработки.

ATmel START

Онлайн среда конфигурирования ATmel START

Применение

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