Микроконтроллер
Микроконтро́ллер (англ. Micro Controller Unit, MCU) — микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает в себе функции процессора и периферийных устройств, может содержать ОЗУ и ПЗУ. По сути, это однокристальный компьютер, способный выполнять простые задачи. Использование одной микросхемы вместо целого набора, как в случае обычных процессоров, применяемых в персональных компьютерах, значительно снижает размеры, энергопотребление и стоимость устройств, построенных на базе микроконтроллеров.
Микроконтроллеры являются основой для построения встраиваемых систем, их можно встретить во многих современных приборах, таких как телефоны, стиральные машины и т. п. Большая часть выпускаемых в мире процессоров — микроконтроллеры.
История
Термин «микроконтроллер» (МК) вытеснил из употребления ранее использовавшийся термин «однокристальная микро-ЭВМ».
Первый же патент на однокристальную микро-ЭВМ был выдан в 1971 году инженерам М. Кочрену и Г. Буну, сотрудникам Texas Instruments. Именно они предложили на одном кристалле разместить не только микропроцессор, но и память, устройства ввода-вывода. С появлением однокристальных микро-ЭВМ связывают начало эры компьютерной автоматизации в области управления. По-видимому, это обстоятельство и определило термин «микроконтроллер» (control — управление). В 1979 году НИИ ТТ разработали однокристальную 16-разрядную ЭВМ К1801ВЕ1, архитектура которой называлась «Электроника НЦ». В 1976 году[1] фирма Intel выпускает микроконтроллер i8048. Чуть позже в этом же году Intel выпускает следующий микроконтроллер: i8051. Удачный набор периферийных устройств, возможность гибкого выбора внешней или внутренней программной памяти и приемлемая цена обеспечили этому микроконтроллеру успех на рынке. С точки зрения технологии микроконтроллер i8051 являлся для своего времени очень сложным изделием — в кристалле было использовано 128 тыс. транзисторов, что в 4 раза превышало количество транзисторов в 16-разрядном микропроцессоре i8086.
На сегодняшний день существует более 200 модификаций микроконтроллеров, совместимых с i8051, выпускаемых двумя десятками компаний, и большое количество микроконтроллеров других типов. Популярностью у разработчиков пользуются 8-битные микроконтроллеры PIC фирмы Microchip Technology и AVR фирмы Atmel, 16-битные MSP430 фирмы TI, а также ARM, архитектуру которых разрабатывает фирма ARM и продаёт лицензии другим фирмам для их производства.
Описание
При проектировании микроконтроллеров приходится соблюдать баланс между размерами и стоимостью с одной стороны и гибкостью и производительностью с другой. Для разных приложений оптимальное соотношение этих и других параметров может различаться очень сильно. Поэтому существует огромное количество типов микроконтроллеров, отличающихся архитектурой процессорного модуля, размером и типом встроенной памяти, набором периферийных устройств, типом корпуса и т. д.
В то время как 8-разрядные процессоры общего назначения полностью вытеснены более производительными моделями, 8-разрядные микроконтроллеры продолжают широко использоваться. Это объясняется тем, что существует большое количество применений, в которых не требуется высокая производительность, но важна низкая стоимость. В то же время, есть микроконтроллеры, обладающие больши́ми вычислительными возможностями, например цифровые сигнальные процессоры.
Ограничения по цене и энергопотреблению сдерживают также рост тактовой частоты контроллеров. Хотя производители стремятся обеспечить работу своих изделий на высоких частотах, они, в то же время, предоставляют заказчикам выбор, выпуская модификации, рассчитанные на разные частоты и напряжения питания. Во многих моделях микроконтроллеров используется статическая память для ОЗУ и внутренних регистров. Это даёт контроллеру возможность работать на меньших частотах и даже не терять данные при полной остановке тактового генератора. Часто предусмотрены различные режимы энергосбережения, в которых отключается часть периферийных устройств и вычислительный модуль.
Большое распространение получили микроконтроллеры с RISC-архитектурой (англ. Reduced Instruction Set Computer — вычисления с упрощённым набором команд). Упрощённый набор команд позволяет выполнять большинство инструкций за один такт, что обеспечивает высокое быстродействие даже при относительно низкой тактовой частоте.
Кроме ОЗУ, микроконтроллер может иметь встроенную энергонезависимую память для хранения программы и данных. Во многих контроллерах вообще нет шин для подключения внешней памяти. Наиболее дешёвые типы памяти допускают лишь однократную запись. Такие устройства подходят для массового производства в тех случаях, когда программа контроллера не будет обновляться. Другие модификации контроллеров обладают возможностью многократной перезаписи энергонезависимой памяти. В отличие от процессоров общего назначения, в микроконтроллерах часто используется гарвардская архитектура памяти, то есть раздельное хранение данных и команд в ОЗУ и ПЗУ соответственно.[2]
Неполный список периферии, которая может присутствовать в микроконтроллерах, включает в себя:
- универсальные цифровые порты, которые можно настраивать как на ввод, так и на вывод
- различные интерфейсы ввода-вывода, такие как UART, I²C, SPI, CAN, USB, IEEE 1394, Ethernet
- аналого-цифровые и цифро-аналоговые преобразователи
- компараторы
- широтно-импульсные модуляторы
- таймеры
- контроллеры бесколлекторных двигателей
- контроллеры дисплеев и клавиатур
- радиочастотные приемники и передатчики
- массивы встроенной флеш-памяти
- встроенный тактовый генератор и сторожевой таймер
Программирование микроконтроллеров обычно осуществляется на языке ассемблера или Си, хотя существуют компиляторы для других языков, например, Форта. Используются также встроенные интерпретаторы Бейсика. Тем не менее при изучении микроконтроллеров, удобнее использовать Ассемблер, так как он является более низкоуровневым языком, чем Cи, и дает представление об устройстве микроконтроллера и алгоритме его работы. Также на ассемблере можно писать небольшие программки для простых устройств. Язык Си является более высокоуровневым, чем ассемблер. Синтаксис этого языка позволяет более компактно записывать сложные действия. Например, одна и та же операция на ассемблере может состоять из 6 команд, а на си всего из одной. Поэтому на языке си удобнее писать большие программы для серьезных проектов. Для отладки программ используются программные симуляторы (специальные программы для персональных компьютеров, имитирующие работу микроконтроллера), внутрисхемные эмуляторы (электронные устройства, имитирующие микроконтроллер, которые можно подключить вместо него к разрабатываемому встроенному устройству) и интерфейс JTAG.
См. также
Примечания
- ↑ Е.А.Васильев, Микроконтроллеры: разработка встраиваемых приложений, изд. "БХВ-Петербург" 2008
- ↑ Новиков Ю. В., Скоробогатов П. К. Основы микропроцессорной техники. Глава 4. Организация микроконтроллеров
Литература
- Бродин В. Б., Калинин А. В. Системы на микроконтроллерах и БИС программируемой логики. — М.: ЭКОМ, 2002. — ISBN 5-7163-0089-8.
- Жан М. Рабаи, Ананта Чандракасан, Боривож Николич. Цифровые интегральные схемы. Методология проектирования = Digital Integrated Circuits. — 2-е изд. — М.: Вильямс, 2007. — ISBN 0-13-090996-3.
- Микушин А. Занимательно о микроконтроллерах. — М.: БХВ-Петербург, 2006. — ISBN 5-94157-571-8.
- Новиков Ю. В., Скоробогатов П. К. Основы микропроцессорной техники. Курс лекций. — М.: Интернет-университет информационных технологий, 2003. — ISBN 5-7163-0089-8.
- Фрунзе А. В. Микроконтроллеры? Это же просто!. — М.: ООО «ИД СКИМЕН», 2002. — Т. 1. — ISBN 5-94929-002-X.
- Фрунзе А. В. Микроконтроллеры? Это же просто!. — М.: ООО «ИД СКИМЕН», 2002. — Т. 2. — ISBN 5-94929-003-8.
- Фрунзе А. В. Микроконтроллеры? Это же просто!. — М.: ООО «ИД СКИМЕН», 2003. — Т. 3. — ISBN 5-94929-003-7.
Ссылки
- Wiki о программировании микроконтроллеров с использованием свободного ПО
- Параметрический поиск и описания архитектур
- Учебный курс, посвящённый микроконтроллерам AVR. Assembler, архитектура, примеры программирования
- Микроконтроллеры семейства MCS-51. Принципы работы. Архитектура. Принципы программирования для микроконтроллеров. С. Ассемблер.
- Проекты для микроконтроллеров
- Практика программирования микроконтроллеров Atmel AVR