МикроконтроллерМикроконтро́ллер (англ. Micro Controller Unit, MCU) — микросхема для программного управления электронными устройствами. Обычно изготавливается в виде единого кристалла с функциями ядра микропроцессора, шин команд и данных, периферийных устройств, ОЗУ и ПЗУ. По сути, это компьютер в чипе, выполняющий роль периферийного процессора. ИсторияС появлением однокристальных микроЭВМ связывают начало эры массового применения компьютерной автоматизации в области управления. По-видимому[источник не указан 1799 дней], это обстоятельство и определило термин «контроллер» (англ. controller — регулятор, управляющее устройство). В связи со спадом отечественного производства и возросшим импортом техники, в том числе вычислительной, термин «микроконтроллер» (МК) вытеснил из употребления ранее использовавшийся термин «однокристальная микроЭВМ». Первый патент на однокристальную микроЭВМ был выдан в 1971 году инженерам Майклу Кокрэну и Гэри Буну, сотрудникам американской Texas Instruments. Именно они предложили на одном кристалле разместить не только процессор, но и память с устройствами ввода-вывода. В 1976 году[1] американская фирма Intel выпускает микроконтроллер i8048. В 1978 году фирма Motorola выпустила свой первый микроконтроллер MC6801, совместимый по системе команд с выпущенным ранее микропроцессором MC6800. В 1980 году Intel выпускает следующий микроконтроллер: i8051. Удачный набор периферийных устройств, возможность гибкого выбора внешней или внутренней программной памяти и приемлемая цена обеспечили этому микроконтроллеру успех на рынке. С точки зрения технологии микроконтроллер i8051 являлся для своего времени очень сложным изделием — в кристалле было использовано 128 тыс. транзисторов, что в 4 раза превышало количество транзисторов в 16-разрядном микропроцессоре i8086. В СССР велись разработки оригинальных микроконтроллеров. В 1979 году в СССР ЛКТБ разработало однокристальную 16-разрядную микро-ЭВМ «Электроника С5-31» (К1827 ВЕ1) с системой команд семейства «Электроника С5» и НИИ ТТ разработал однокристальную 16-разрядную ЭВМ К1801ВЕ1, микроархитектура которой получила название «Электроника НЦ». Уровень их разработки соответствовал лучшим мировым результатам того периода в области 16-разрядных однокристальных микро-ЭВМ. Также осваивался выпуск клонов наиболее удачных зарубежных образцов.[2][3][4][5] На 2013 год существовало более 200 модификаций микроконтроллеров, совместимых с i8051, выпускавшихся двумя десятками компаний, и большое количество микроконтроллеров других типов. Популярностью у разработчиков пользуются 8-битные, 16-битные и 32-битные микроконтроллеры PIC фирмы Microchip Technology, микроконтроллеры AVR фирмы Atmel (с 2016 года производятся фирмой Microchip[6]), 16-битные MSP430 фирмы TI, а также 32-битные микроконтроллеры архитектуры ARM, которую разрабатывает фирма ARM Limited и продаёт лицензии другим фирмам для их производства. Несмотря на популярность в России микроконтроллеров, упомянутых выше, на 2009 год мировой рейтинг по объёму продаж, по данным Gartner Group, выглядел иначе: первое место с большим отрывом занимала Renesas Electronics, на втором — Freescale, на третьем — Samsung, затем шли Microchip и TI, далее — все остальные[7]. ОписаниеПри проектировании микроконтроллеров приходится соблюдать компромисс между размерами и стоимостью с одной стороны и гибкостью и производительностью с другой. Для разных приложений оптимальное соотношение этих и других параметров может различаться очень сильно. Поэтому существует огромное количество типов микроконтроллеров, различающихся архитектурой процессорного модуля, размером и типом встроенной памяти, набором периферийных устройств, типом корпуса и т. д. В отличие от обычных компьютерных микропроцессоров, в микроконтроллерах часто используется гарвардская архитектура памяти, то есть раздельное хранение данных в ОЗУ, а команд — в ПЗУ. Кроме ОЗУ, микроконтроллер может иметь встроенную энергонезависимую память для хранения программы и данных. Многие модели контроллеров вообще не имеют шин для подключения внешней памяти. Наиболее дешёвые типы памяти допускают лишь однократную запись, либо хранимая программа записывается в кристалл на этапе изготовления (конфигурацией набора технологических масок). Такие устройства подходят для массового производства в тех случаях, когда программа контроллера не будет обновляться. Другие модификации контроллеров обладают возможностью многократной перезаписи программы в энергонезависимой памяти. Неполный список периферийных устройств, которые могут использоваться в микроконтроллерах, включает в себя:
Ограничения по цене и энергопотреблению ограничивает тактовую частоту контроллеров. Хотя производители стремятся обеспечить работу своих изделий на высоких частотах, они, в то же время, предоставляют заказчикам выбор, выпуская модификации, рассчитанные на разные частоты и напряжения питания. Во многих моделях микроконтроллеров используется статическая память для ОЗУ и внутренних регистров. Это даёт контроллеру возможность работать на меньших частотах и даже не терять данные при полной остановке тактового генератора. Часто предусмотрены различные режимы энергосбережения, в которых отключается часть периферийных устройств и вычислительный модуль. Известные семейства
ПрименениеИспользование в современном микроконтроллере достаточного мощного вычислительного устройства с широкими возможностями, построенного на одной микросхеме вместо целого набора, значительно снижает размеры, энергопотребление и стоимость построенных на его базе устройств. Используются в управлении различными устройствами и их отдельными блоками:
В промышленности:
В то время как 8-разрядные микропроцессоры общего назначения полностью вытеснены более производительными моделями, 8-разрядные микроконтроллеры продолжают широко использоваться. Это объясняется тем, что существует большое количество применений, в которых не требуется высокая производительность, но важна низкая стоимость. В то же время, есть микроконтроллеры, обладающие больши́ми вычислительными возможностями, например, цифровые сигнальные процессоры, применяющиеся для обработки большого потока данных в реальном времени (например, аудио-, видеопотоков). ПрограммированиеПрограммирование микроконтроллеров осуществляется на низкоуровневых языках типа ассемблера и языках с возможностью непосредственного доступа к адресам памяти (Си/С++, Оберон, Форт), хотя существуют компиляторы для любых других языков с добавлением низкоуровневых рантаймов. Известные компиляторы Си для МК:
Известные компиляторы бейсика для МК:
Для отладки программ используются программные симуляторы (специальные программы для персональных компьютеров, имитирующие работу микроконтроллера), внутрисхемные эмуляторы (электронные устройства, имитирующие микроконтроллер, которые можно подключить вместо него к разрабатываемому встроенному устройству) и отладочный интерфейс, например, JTAG. См. такжеПримечания
Литература
Ссылки |