Основные типы микроконтроллеров и их архитектура. Введение

28.12.2023

Микроконтроллер - это целая микропроцессорная система в одной микросхеме(на одном кристалле). Данная микросхема предназначена для управления всевозможными электронными устройствами и выполнения множества функций. Взаимодействие между электронными устройствами совершается в соответствии с заложенной в микроконтроллер программой.

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

Миросхемы изобрели практически одновременно Джек Килби (Тексас Инструментс) и Роберт Нойс (Файрчайлд Семикондакторс) примерно в 1958 году. Производить промышленно начали только в начале 70-х годов. Первый процессор (8080) был выпущен в 1974 году. Придуман он был под названием Intel 4040, ещё в 1969 году, но в коммерческое производство пошел только в 1974.

С появлением однокристальных микро-ЭВМ связывают начало эры массового применения компьютерной автоматизации в области управления. Скорее всего, это обстоятельство и определило термин «контроллер» (англ. controller - регулятор, управляющее устройство). В связи с резким спадом отечественного производства и увеличением импорта техники, в том числе вычислительной, термин «микроконтроллер» (МК) вытеснил из употребления термин «однокристальная микро-ЭВМ». Первый патент на однокристальную микро-ЭВМ был выдан в 1971 году инженерам Майклу Кочрену и Гари Буну , сотрудникам американской Texas Instruments. Именно они родоночальники идеи размещения на одном кристалле не только процессор, но и память с устройствами ввода-вывода. В 1976 году американская фирма Intel выпускает микроконтроллер i8048. Через 4 года, в 1980 году, Intel выпускает следующий микроконтроллер: i8051. Удачный набор периферийных устройств, возможность гибкого выбора внешней или внутренней программной памяти и приемлемая цена обеспечили этому микроконтроллеру успех на рынке. С точки зрения технологии микроконтроллер i8051 являлся для своего времени крайне сложным изделием - в кристалле было использовано 128 тысяч транзисторов, что в 4 раза превышало количество транзисторов в 16-разрядном микропроцессоре i8086.

Виды микроконтроллеров

Условно микроконтроллеры можно разделить на три группы: простейшие, встраиваемые и универсальные.

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

Встраиваемые в приборы и аппаратуру микроконтроллеры запрограммированы на реализацию узкоспецилизированных задач.

Универсальные микроконтроллеры ориентированы на решение многочисленных задач в системах управления, регулирования, и контроля.

Если представить все типы современных микроконтроллеров, то можно поразиться огромным количеством разнообразных приборов этого класса, доступных потребителю. Однако все эти приборы можно разделить на следующие основные типы:

встраиваемые (embedded) 8-разрядные МК,

16- и 32-разрядные МК,

цифровые сигнальные процессоры(специализированный микропроцессор, предназначенный для цифровой обработки сигналов).

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

DIP(Dual Inline Package) - корпус с двумя рядами контактов. Количество ножек в корпусе от 8 до 56.

SOIC(Small Outline Integrated Circuit) - планарная микросхема - ножки припаиваются с той же стороны, где находится корпус. При этом, микросхема лежит корпусом на плате. Количество ножек и их нумерация - такие же, как у DIP.

PLCC(Plastic Leader Chip Carrier) - квадратный корпус. Ножки расположены по всем четырем сторонам, и имеют J - образную форму.

TQFP(Thin Profile Quad Flat Package) - среднее между SOIC и PLCC. Квадратный корпус толщиной около 1 мм, выводы расположены по всем сторонам. Количество ножек - от 32 до 144.

Перечислим основные составные части любого микроконтроллера:

Вычислительный блок (арифметико-логическое устройство) -> этот миниатюрный компьютер является сердцем каждого микроконтроллера. Конечно, встроенный в небольшой кристалл вычислительно-логический модуль далеко не столь мощный, как его настольный собрат, но ему и не нужны все эти лошадиные силы. В то время как настольный компьютер должен одновременно выполнять сразу несколько задач - искать информацию в Интернете, рассчитывать электронные таблицы и вылавливать вирусы, типичный микроконтроллер обычно предназначен для решения какой-то одной задачи.

Энергонезависимая память -> в микроконтроллере всегда есть энергонезависимая память, в которой хранятся программы. Эта память продолжает хранить данные даже после выключения питания. В момент включения батареи или другого источника данные, хранящиеся в микроконтроллере, снова становятся доступными.

Порты ввода-вывода -> позволяют микроконтроллеру связываться с окружающим миром.

Для достижения более высокого уровня интеграции(процесс объединения частей в целое) и надежности, все микроконтроллеры имеют встроенные дополнительные устройства. Встроенные устройства повышают надежность системы, потому что они не требуют никаких внешних электрических цепей. Они предварительно тестируются производителем и освобождают место на плате, так как все соединительные электрические цепи выполнены на кристале в микроконтроллере. К наиболее распространенным встроенным устройствам относятся устройства памяти и порты ввода/вывода (I/O), интерфейсы связи, таймеры, системные часы. Устройства памяти включают оперативную память (RAM), постоянные запоминающие устройства (ROM), перепрограммируемую ROM (EPROM), электрически перепрограммируемую ROM (EEPROM). Таймеры включают и часы реального времени, и таймеры прерываний. Средства I/O включают последовательные порты связи, параллельные порты (I/O линии), аналого-цифровые преобразователи (A/D), цифроаналоговые преобразователи (D/A), драйверы жидкокристаллического дисплея (LCD) или драйверы вакуумного флуоресцентного дисплея (VFD). Встроенные устройства обладают повышенной надежностью, поскольку они не требуют никаких внешних электрических цепей.

АЛУ производит операции над числами и возвращает результат операции в виде числа. Данные числа помещаются в регистры общего назначения – своеобразную временную память. У каждого микроконтроллера количество регистров может быть разным. Однако, для нормальной работы микроконтроллера регистров общего назначения недостаточно, т.к., например, 32 байта – очень маленький объем памяти. Для того, чтобы можно было хранить больше информации, используется оперативно-запоминающее устройство (ОЗУ) . Регистры общего назначения содержат данные, с которыми АЛУ работает в данный момент, а ОЗУ – остальные. Команды, а точнее последовательность команд, которые выполняет АЛУ, хранятся в постоянно-запоминающем устройстве (ПЗУ) . Обычно это Flash-память. Данная последовательность команд является ничем иным, как программой микроконтроллера, которую создает программист. Все команды находятся в ПЗУ по определенным адресам. Для того, чтобы достать какую-то команду из ПЗУ, необходимо обратиться к ее адресу, чем занимается программный счетчик или счетчик команд. Данные из ПЗУ попадают в регистр команд. АЛУ постоянно «смотрит» содержимое регистра команд и если в нем появляется команда, то АЛУ сразу же начинает ее выполнять. Все эти устройства микроконтроллера были бы бесполезны без портов ввода-вывода, с помощью которых микроконтроллер взаимодействует с внешним миром. Порты ввода-вывода можно настраивать таким образом, чтобы они работали как в качестве входов, так и в качестве выходов. Управления портами осуществляется через специальные регистры. По умолчанию все порты микроконтроллера настроены на выход.

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

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

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

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

Если вы заинтересовались микроконтроллерами, то не пугайтесь трудностей, в лице изучения языка программирования Си для микроконтроллеров.

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

В зависимости от стоимости и габаритов устройства, которым требуется управлять, определяются и требования к контроллеру. Если объект управления занимает десятки метров по площади, как, например, автоматические телефонные станции, базовые станции сотовых систем связи или радиорелейные линии связи, то в качестве контроллеров можно использовать универсальные компьютеры. Управление при этом можно осуществлять через встроенные порты компьютера (LPT, COM, USB или ETHERNET). В такие компьютеры при включении питания заносится управляющая программа, которая и превращает универсальный компьютер в контроллер.

Использование универсального компьютера в качестве контроллера позволяет в кратчайшие сроки производить разработку новых систем связи, легко их модернизировать (путём простой смены программы) а также использовать готовые массовые (а значит дешёвые) блоки.

Если же к контроллеру предъявляются особенные требования, такие, как работа в условиях тряски, расширенном диапазоне температур, воздействия агрессивных сред, то приходится использовать промышленные варианты универсальных компьютеров. Естественно, что эти компьютеры значительно дороже обычных универсальных компьютеров, но всё равно они позволяют экономить время разработки системы, за счёт того, что не нужно вести разработку аппаратуры контроллера.

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

Любые устройства, в том числе и устройства связи, радиоавтоматики или аудиовизуальной аппаратуры требуют присутствия в своем составе устройства управления (контроллера). Контроллеры требуются практически во всех предметах и устройствах, которые окружают нас. В качестве примера на рисунке 1 приведены узлы автомобиля, в которых применяются микроконтроллеры.


Рисунок 1 Узлы автомобиля, в которых применяются микроконтроллеры

Внешний вид автомобильной и носимой радиостанции, в которых тоже применяются микросхемы микроконтроллеров, показаны на рисунке 2 и рисунке 3.



Рисунок 2. Малогабаритная радиостанция с применением микроконтроллеров

Рисунок 3. Малогабаритная радиостанция с применением микроконтроллеров

Как выглядит носимая радиостанция внутри показывает фотография, приведённая на рисунке 4.



Рисунок 4. Печатная плата приёмопередатчика носимой радиостанции.

Наиболее распространёнными в настоящее время являются микроконтроллеры семейства
http://сайт/dsp/DSP/

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

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


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

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

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

Давайте представим идеальный случай, У нас есть МК и в его память уже записан программный код. Или, как обычно говорят "ушастые перцы", Микроконтроллер "прошит" (при этом программный код кличат "прошивкой").

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

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

Устройство типичного МК

Любой МК, как и любая микропроцессорная система базируется на трёх китах:

Процессор (АЛУ + устройство управления)
Память (RAM, ROM,FLASH)
Порты ввода-вывода.

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


Физическая структура микроконтроллеров разных серий может достаточно сильно отличаться, но общая база у них будет похожа и она будет состоять из следующих блоков: ОЗУ, ПЗУ, АЛУ, таймеры, порты ввода/вывода, регистры, счетчики.

ПЗУ Постоянное запоминающее устройство или постоянная память. Всё, что записано в ПЗУ, остаётся в нем и после отключения питания.
ОЗУ Оперативно запоминающее устройство - рабочая память МК. В неё сохраняются все промежуточные результаты выполнения програмного кода или данные от внешних датчиков.
АЛУ Мозг МК. Именно он вычитает, складывает, умножает, а иногда и делит, сравнивает единички и нолики в процессе выполнения программы..
Порты I/O Порты ввода и вывода: Устройства через которые МК ведет диалог с внешним миром с внешним миром. Наш МК должен общаться с внешним миром. Благодаря портам мы можем посылать в микроконтроллер сигналы от датчиков, клавиатуры и т.п. А МК после обработки таких сигналов отправит через эти устройства свой ответ, с помощью которого можно регулировать яркость свечения лампы или скорость вращения двигателя.
Таймеры Он отсчитывает интервалы, выдает сигнал о срабатывании и т.д.
Счетчики Необходимы, когда нужно что-то подсчитать.
Каждый регистр представляет собой миниатюрную ячейку памяти. И обычно в МК их всего несколько десятков.

Как ты уже знаешь из курса основы цифровой электроники, вся информация в цифровом мире представляется в виде двоичных чисел, которые записываются с помощью всего двух цифр: "нуля" и "единицы" в двоичной системе счисления. Число три в привычной для нас десятичной системе в двоичной будет "11", т.е. 3 10 = 11 2 . Нижние индексы подсказывают о системе счисления. Одна цифра в двоичном числе называется разрядом. У разрядов имеется старшинство. Самый правый разряд называют младшим, а самый левый соответственно старшим. Старшинство разряда увеличивается справа налево:


При работе микроконтроллера в нем "бегают такие же двоичные числа". Они перемещаются от процессора к памяти и обратно, а также к устройствам ввода-вывода (УВВ). Бегают циферки по проводам (в МК они спрятаны внутри микросхемы). Каждый такой проводник в какой-то заданный программой момент времени может передавать только один разряд со значением "0" или "1". Поэтому, для передачи 8-ми разрядного числа от процессора к памяти и обратно понадобится минимум 8 таких проводников.

Несколько таких объединенных проводов, называют шиной. Шины бывают нескольких видов:

Шина адреса
Шина данных
Шина управления

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

Разрядность шины адреса влияет на количество адресов, которые можно по ней пропустить. Допустим, в 4-разрядной системе это 2 4 = 16 адресов, в 64-разрядной, числов адресов будет уже 2 64 =18446744073709551616, т.е чем выше разрядность адресной шины тем к больше объем памяти и больше УВВ можно использовать, с которыми может работать МК. Это очень важный момент.

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

Байт необходим для обозначения количества информации. Если количество разрядов говорит только о длине двоичного числа, то битность подскажет о количестве информации, которую это число передает. Считается, что один разряд двоичного числа способен передать один бит информации. При этом биты группируются в байты, килобайты, мегабайты и т.д.

Кстати в отличии от привычной системы счисления, 1 байт = 8 бит, 1 килобайт = 1024 байтам, 1 мегабайт = 1024 килобайтам и т.д. Почему именно 1024? Спросите вы. Да потому, что размер памяти кратен степени двойки: т.е 2 3 = 8, 2 10 =1024.

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

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

Если МК необходимо обратиться к памяти он задает на управляющей шине сигнал MREQ, при этом одновременно с ним задается сигнал RD/WR. Если МК будет писать в память, то задается сигнал WR, если чтение, соответственно RD. Тоже случится, когда МК обращается к УВВ.

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

Таким образом, если подать питающее напряжение на МК, то он выставляет сигнал на управляющей шине MREQ, RD, а на адресной шине - адрес, по которому в ячейке памяти должна быть первая команда его алгоритма (программного кода, обычно это нулевой адрес памяти). Затем МК её выполняет и в зависимости от управляющих команд на шинах управления, адреса и данных будут появляться соответствующие программе данные и сигналы.

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

Одной из первых фирм выпустившей в большой мир микроконтроллеры на ядре ARM Cortex-M3 является компания «STMicroelectronics». Начиналось всё не так и давно в 2007 году с появления двух семейств – «Performance Line» (STM32F103) и «Access Line» (STM32F101). На текущий момент МК STM32 представлены десятью основными линейками для различных задач. Основные их достоинства это «pin-to-pin» и полная программная совместимость по всем возможным линейкам. И это всё уместилось на ядре ARM Cortex-M3. Рассмотрим основные инструменты, для того что бы можно было начать работу с МК STM32.

Предположим вам поставили задачу — заставить мигать светодиод.
Рассуждаем, как решить эту задачу:

Вариант 1 — самое простое, взять тумблер/кнопку, рядом посадить раба, который тумблером будет включать/выключать светодиод. Обычно в России большинство задач именно так и решается. А что ведь мигает)))
Вариант 2 — собрать мультивибратор. Уже интереснее. Для того чтобы помигать, одним светодиодом вполне даже хорошее решение. К тому же просто, дешево, надежно.
Вариант 3 — собрать на микроконтроллере. Дороже чем собрать мультивибратор, но на мой взгляд проще. Написал программу, прошил, получил результат. Без настройки. Конечно это идеальный случай.

Теперь усложним задачу. Например, 5 светодиодов и 5 вариантов их мигания (изменяется скорость и порядок их мигания). Первый вариант сразу отпадает, способом 2 сделать можно, но размеры устройства резко увеличатся. Вариант 3 останется примерно тех же размеров, достаточно дописать пару строк кода. Следовательно есть разные случаи, где то без микроконтроллера невозможно, а где то он излишество. Поэтому всегда оценивайте трудозатраты, время и финансовые затраты.

Итак, микроконтроллер позволяет нам гибко управлять, системами, процессами и т.п, имеет небольшие габариты, по функциональности это миникомпьютер. Микроконтроллеры выпускаются разными фирмами. Одна из разновидностей микроконтроллеры AVR фирмы Atmel. Почему именно они? Их довольно просто найти в магазине, легко найти примеры готового кода, встроенный функционал позволяет решать даже сложные задачи.

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

Программируют микроконтроллеры обычно на языке Си или на ассемблере. На чем писать по большому счету разницы нет. Из-за большого количества готовых примеров, я свой выбор сделал в пользу Си. Кроме того, существует несколько программ позволяющих писать на Си. Например бесплатная, фирменная AVR Studio, CodeVision, WinAVR и т.п. Несмотря на то, что я пишу в CodeVision, очень активно использую AVR Studio как отладчик.

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

Если представить все типы современных микроконтроллеров (МК), то можно поразиться огромным количеством разнообразных приборов этого класса, доступных потребителю. Однако все эти приоры можно разделить на следующие основные типы:

  • Встраиваемые (embedded) 8-разрядные МК;
  • 16- и 32-разрядные МК;
  • Цифровые сигнальные процессоры.

Промышленностью выпускаются очень широкая номенклатура встраиваемых МК. В них все необходимые ресурсы (память, устройства ввода-вывода и т.д.) располагаются на одном кристалле с процессорным ядром. Если подать питание и тактовые импульсы на соответствующие входы МК, то можно сказать, что он как бы «оживет» и с ним можно будет работать. Обычно МК содержат значительное число вспомогательных устройств, благодаря чему обеспечивается их включение в реальную систему с использованием минимального количества дополнительных компонентов. В состав этих МК входят:

Общая структура МК показана на рис. 1.1. Эта структура дает представление о том, как МК связывается с внешним миром.


Более сложные встраиваемые МК могут дополнительно реализовывать следующие возможности:

  • Встроенный монитор/отладчик программ;
  • Внутренние средства программирования памяти программ (ROM);
  • Обработка прерываний от различных источников;
  • Аналоговый ввод/вывод;
  • Последовательный ввод/вывод (синхронный и асинхронный);
  • Параллельный ввод/вывод (включая интерфейс с компьютером);
  • Подключение внешней памяти (микропроцессорный режим).

Все эти возможности значительно увеличивают гибкость применения МК и делают более простым процесс разработки систем на и основе.
Некоторые МК (особенно 16- и 32-разрядные) используют только внешнюю память, которая включает в себя как память программ (ROM), так и некоторый объем памяти данных (RAM), требуемый для данного применения. Они применяются в системах, где требуется большой объем памяти и относительное не большое количество устройств (портов) ввода/вывода. Типичным примером применения такого МК с внешней памятью является котроллер жесткого диска (HDD) с буферной кэш-памятью, который обеспечивает промежуточное хранение и распределение больших объемов данных (порядка нескольких мегабайт). Внешняя память дает возможность такому микроконтроллеру работать с более высокой скоростью, чем встраиваемый МК.
Цифровые сигнальные процессоры (DSP) – относительно новая категория процессоров. Назначение DSP состоит в том, чтобы получать текущие данные от аналоговой системы, обрабатывать данные и формировать соответствующий отклик в реальном масштабе времени. Они обычно входят в состав систем, используясь в качестве устройств управления внешним оборудованием, и не предназначены для автономного применения.

Система команд

В зависимости от числа используемых кодов операций системы команд МК можно разделить на две группы: CISC и RISC. Термин CISC означает сложную систему команд и является аббревиатурой английского определения Complex Instruction Set Computer. Аналогично термин RISC означает сокращенную систему команд и происходит от английского Reduce Instruction Set Computer. Систему команд МК 8051 можно отнести к типу CISC. Однако, не смотря на широкую распространенность этих понятий, необходимо признать, что сами названия не отражают главного различия между системами команд CISC и RISC. Основная идея RISC архитектуры – это тщательный подбор таких комбинаций кодов операций, которые можно было бы выполнить за один такт тактового генератора. Основной выигрыш от такого подхода – резкое упрощение аппаратной реализации ЦП и возможность значительно повысить его производительность.
Очевидно, что в общем случае одной команде CISC соответствует несколько команд RISC. Однако обычно выигрыш от повышения быстродействия в рамках RISC перекрывает потери от менее эффективной системы команд, что приводит к более высокой эффективности RISC систем в целом по сравнению с CISC.
Однако в настоящее время грань между CISC и RISC архитектурой стремительно стирается. Например, МК семейства AVR фирмы Atmel имеют систему команд из 120 инструкций, что соответствует типу CISC. Однако большинство из них выполняется за один такт, что является признаком RISC архитектуры. Сегодня принято считать, что признаком RISC архитектуры является выполнение команд за один такт тактового генератора. Число команд само по себе значения уже не имеет.

Типы памяти МК

Можно выделить три основных вида памяти, используемой в МК:
а) память программ ;
б) память данных ;
в) регистры МК .
Память программ представляет собой постоянную память, предназначенную для хранения программного кода и констант. Эта память не изменяет содержимого в процессе выполнения программы.
Память данных предназначена для хранения переменных в ходе выполнения программы.
Регистры МК – этот вид памяти включает внутренние регистры процессора и регистры, которые служат для управления периферийными устройствами.
Для хранения программ обычно служит один из видов постоянной памяти: ROM (масочные ПЗУ), PROM (однократно программируемые ПЗУ), EPROM (электрически программируемые ПЗУ с ультрафиолетовым стиранием) или EEPROM (ПЗУ с электрической записью и стиранием, к этому виду также относятся современные микросхемы Flash-памяти). Все эти виды памяти являются энергонезависимыми – это означает, что содержимое памяти сохраняется после выключения питания МК.
Многократно программируемые ПЗУ – EPROM и EEPROM (Electrically Erasable Programmable Memory) подразделяются на ПЗУ со стиранием ультрафиолетовым (УФ) облучением (выпускаются в корпусах с окном), и МК с электрически перепрограммируемой памятью, соответственно.
В настоящее время протоколы программирования современной EEPROM памяти позволяют выполнять программирование МК непосредственно в составе системы, где он работает. Такой способ программирования получил название – ISP (In System Programming). И теперь можно периодически обновлять программное обеспечение МК без удаления из платы. Это дает огромный выигрыш на начальных этапах разработки систем на базе МК или в процессе их изучения, когда масса времени уходит на многократный поиск причин неработоспособности системы и выполнение последующих циклов стирания-программирования памяти программ.
Функционально Flash-память мало отличается от EEPROM. Основное различие состоит в способности стирания записанной информации. В памяти EEPROM стирание производится отдельно для каждой ячейки, а во Flash-памяти стирание осуществляется целыми блоками.
ОЗУ (RAM) – оперативное запоминающее устройство, используется для хранения данных. Эту память называют еще памятью данных. Число циклов чтения и записи в ОЗУ неограниченно, но при отключение питания вся информация теряется.