Микроконтроллер как однокристальный компьютер

Обновлено: 07.07.2024

Семейства однокристальных микроконтроллеров ориентировано на применение встраиваемых в изделие недорогих управляющих систем реального времени, рабочая программа которых расположена в ПЗУ системы. Широко применяются микроконтроллеры семейства iMCS -48, iMCS -51, iMCS -96, имеющие гарвардскую архитектуру, содержащие на кристалле все необходимые узлы для работы в автономном режиме и предназначенные для реализации различных цифровых алгоритмов управления. Рассмотрим базовый микроконтроллер Intel 8051 (МК-51), условное обозначение которого приведено на рисунке 52.

Рис. Условное обозначение микроконтроллера МК – 51

На рисунке 53 приведена структурная схема базовой организации микроконтроллера МК-51:

Рис. Структурная схема микроконтроллера МК-51

Двунаправленный дуплексный асинхронный последовательный приемопередатчик - последовательный порт. Двухуровневая приоритетная система прерываний от четырех внутренних и двух внешних источников. Встроенный тактовый генератор, частота которого задается с помощью внешнего кварцевого резонатора, LC-цепочки или внешнего генератора.

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

RSEG Пространство регистров

DSEG Пространство внутренней памяти данных

BSEG Битовое пространство данных

XSEG Пространство внешней памяти

CSEG Пространство программного кода

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

Регистр слова состояния программы включает флажки:

PSW .7 CY Перенос из старшего разряда АЛУ

PSW .6 АС Дополнительный перенос из младшей тетрады АЛУ

PSW .5 F 0 Флажок пользователя общего назначения

PSW .2 OV Признак арифметического переполнения результата

PSW .1 Р Признак четности

Сюда же входит двухразрядное поле RS ( Registers Select ) выбора одного из четырех возможных банков рабочих регистров. Флажки признаков результата CY , АС и OV , как правило, отражают состояние последней арифметической операции, флажок Р - четность содержимого А. Флажок переноса CY является аккумулятором булевого процессора. Функциональное назначение флажка F 0 определяется пользователем в конкретной ситуации.

Рис. Набор регистров МК-51

Шестнадцатиразрядный программный счетчик PC управляет последовательностью выполнения команд, хранящихся в программной памяти объемом до 64К байт. Указатель данных DPTR также имеет длину 16 разрядов, каждая его половина может быть адресована независимо от другой. Этот регистр используется в качестве адресного при пересылке констант из памяти программ и доступе к переменным из внешней памяти данных, а также для организации передачи управления.

Указатель стека образует системный стек глубиной до 256 байт. Он всегда содержит адрес последнего байта, занесенного в стек. Стек растет в сторону увеличения содержимого SP .

Пространство внутренней памяти DSEG имеет общий объем 256 байт. Однако организация ВЕ51 предусматривает реализацию только первой его половины (128 байт). В МК 8052 DSEG используется в полном объеме.

Подобно архитектуре ВЕ48 все банки рабочих регистров, а также системный стек в МК ВЕ51 располагаются во внутренней памяти данных и могут рассматриваться как обычные ячейки памяти. Существуют два способа адресации памяти данных МК: прямой ( direct ) и косвенный (@ Ri , i = 0- 1) через регистры R 0, R 1 выбранного в данный момент одного из банков RB 0- RB 3. При прямой адресации доступна только младшая половина адресного пространства внутренней памяти данных (128 байт), при косвенной обеспечивается доступ к любой ее ячейке (256 байт). Введение отсутствующей в ВЕ48 прямой адресации значительно расширило возможности обработки данных МК, в частности появились средства прямого доступа в соседние регистровые банки и стек системы, интерпретируемые как обычные ячейки памяти.

Микроконтроллер ВЕ51 имеет мощную и развитую подсистему ВВ и средства поддержки режима реального времени. Для их управления в МК предусмотрен ряд регистров, которые размещаются во второй половине прямо адресуемого пространства (Рисунок 55), образующей пространство специальных регистров (128 байт). Сюда же включены порты и основные регистры ЦП. Центральный процессор МК - 51 содержит специальную логику, предназначенную для выполнения нескольких однобитовых операций, булев или одноразрядный процессор для вычисления булевых выражений. В основу булева процессора положен стандартный аккумуляторный принцип организации. В данном случае роль аккумулятора выполняет флажок переноса CY .

Для хранения булевых данных в архитектуре ВЕ51 предусмотрено специальное одноразрядное линейно упорядоченное пространство BSEG объемом 256 байт, которое физически совмещено с байтовым пространством данных DSEG . При этом одна часть пространства BSEG попадает на обычные ячейки памяти DSEG и может рассматриваться как область общего назначения. Обычно она используется для хранения булевых переменных. Другая часть пространства BSEG попадает на ячейки памяти, совмещенные с регистрами МК, что обеспечивает независимый доступ к их отдельным разрядам. В булевом пространстве определена только прямая адресация bit .

На рисунке 53 показано в байтах пространство с прямой адресацией, которое размещено в булевом пространстве, указаны диапазоны адресов BSEG , относящихся к их разрядам.

Рис. Прямо адресуемая часть внутренней

памяти данных (а) и память специальных регистров (б)

Например, старший разряд аккумулятора А, отождествленного с ячейкой пространства памяти с прямой адресацией под адресом 0 E 0 H , имеет адрес пространства BSEG , равный 0Е7Н.

6. Периферийные средства МК – 51

Параллельные каналы связи. Подсистема ВВ микроконтроллера МК - 51 размещается непосредственно на кристалле. Для ВВ данных и управления процессом их передачи в состав МК введен ряд портов данных и регистров управления/состояния, совокупность которых образует набор специальных регистров.

Кроме того, порты Р0 - РЗ совмещены с битовым пространством BSEG , что обеспечивает доступ к отдельным его разрядам независимо от других. Порты Р0 - РЗ занимают адреса BSEG : 80Н - 87Н, 90Н -97Н, 0А0Н -0А7Н и 0В0Н - 0В7Н соответственно.

Расширение пространства ВВ может быть выполнено за счет области XSEG или другими средствами с помощью самих портов Р0 - РЗ и SBUF .

При обращении к внешней памяти программ или данных порты Р0, Р2 выполняют функции системных шин AD и АВ соответственно. Младший байт адреса и данные передаются через Р0 в мультиплексном режиме: сначала выводится адрес, а затем для передачи данных используется порт. Старший байт адреса формируется на Р2. Линии порта РЗ реализуют управление циклами обмена и другие специальные функции аппаратного уровня

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

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

Ситуация тут как в Starcraft :) Кто круче? Люди? Зерги? Протоссы? Все дело в применении, масштабах задач и массе других параметров. У каждого семейства есть свои достоинства и недостатки. Но лично я бы выбрал AVR и вот по каким причинам:

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

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

Рекоменую следующие модели:

Спасибо. Вы потрясающие! Всего за месяц мы собрали нужную сумму в 500000 на хоккейную коробку для детского дома Аистенок. Из которых 125000+ было от вас, читателей EasyElectronics. Были даже переводы на 25000+ и просто поток платежей на 251 рубль. Это невероятно круто. Сейчас идет заключение договора и подготовка к строительству!

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

94 thoughts on “AVR. Учебный Курс. Вводная. Что такое микроконтроллер.”

Конкретно с эзернетом не встречал. По моему это вообще фишка именно пика. Другие до такого не дошли :) Но я же говорил не конретно про наличие чего либо, а в целом по архитектуре.

Хотя есть АТМЕГА и начиная со 64й на нее можно сделать эзернет программно, библиотека готовая в WinAVR есть. Только PHY подрубить.
Кстати в том пике PHY внутренняя?

Удивил езернетом на пике. Нагугли xmega атмеловский и прикинь может ли это все пик =)

Много периферии важно для новичков. Чтобы купив один кристалл изучить сразу все возможное. За это я и люблю Атмел.

ПОстранично чтоль дергал? Или там прям архив лежит? Чето не найду.

не, программуся есть, offline explorer, говоришь ей, что качать, она и выдергивает.

А внутри мобильного телефона что находится? Микроконтроллер?

Да ARM9 или ARM7TDMI но это уже ближе к обычному процессору с внешней памятью

Вот так и появилось ядро ARM в 90% всей мобильной электроники.

Кстати, угадайте, почему после появления ПРОГРАММ для (де-)кодирования медиаформатов (видео, аудио) с открытым исходным кодом на C (C++) довольно быстро появились АППАРАТНЫЕ чипы, реализующие те же функции (см. выше про однокристальные мегамобильники китайские), во всеформатных плеерах китайских, например.

Вот вы и узнали страшные тайны пиратских микросхем ))

Архитектура микроконтроллера определяет его систему команд и возможности по мат обработке. Погугли про RISC и CISC архитектуру.

По сути дела так. МК это проц и периферия в одном флаконе

Обычно микроконтроллеры делают из твердых пород древесины. Чаще с фактурой черного цвета. Впрочем, иные эстеты предпочитают коричневый цвет корпуса.

Хорошо, значит микроконтроллер это деревяшка с воткнутыми туда кусками металла.

А как ассемблер его программирует. И с чем общаются куски метталла.

Это черная магия Вуду. Он ему что то нашептывает и бездушное дерево подчиняется.

ГЫ! :-D МК из твёрдых пород древесины! Был долго пацталом. :-)

Архитектура однокристальных микроконтроллеров MCS -51, разработанная фирмой Intel, стала де-факто стандартной для этого типа микропроцессоров. Микропроцессоры, имеющие такую архитектуру, с определенными модификациями выпускаются различными фирмами. В нашей стране микроконтроллеры данной архитектуры относятся к семейству МК-51 и в настоящее время содержат следующие схемы: К1816ВЕ31, К1816ВЕ51, К1816ВЕ751, К1830ВЕ31, К1830ВЕ51. Все они являются функционально завершенными и содержат на кристалле все необходимые узлы для построения законченной системы управления минимальной конфигурации. Основные электрические характеристики этих схем представлены в табл. 14.1.

Все приведенные в табл. 14.1 м микроконтроллеры имеют емкость внутренней памяти данных в 128 бит и максимальную внешнюю тактовую частоту - 12 МГц.

Дальнейшее описание будет относиться к микросхеме К1816ВЕ51, если иное не оговорено особо.

Структурная схема МК-51 представлена на рис. 14.1.

Структурная схема однокристального микроконтроллера семейства МК-51


Рис. 14.1. Структурная схема однокристального микроконтроллера семейства МК-51
  • регистр-аккумулятор A и дополнительный регистр-аккумулятор B, использующиеся при выполнении операций умножения и деления;
  • битовое АЛУ ;
  • битовый аккумулятор, находящийся в разряде C слова состояния процессора PSW , который в байтовых арифметических операциях фиксирует сигнал переноса;

Формат регистра PSW представлен в табл. 14.2.

Организация памяти

Одной из основных особенностей однокристальных микроконтроллеров , отличающих их от других типов микропроцессорных БИС, является так называемая "гарвардская архитектура ", при которой память программ и память данных физически и логически отделены друг от друга.

Память данных

Память данных , расположенная на кристалле (внутренняя память данных ), имеет емкость 128 байт с адресами 00h-7Fh. Она может быть расширена до 64 Кбайт за счет подключения блоков внешней памяти данных.

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

Распределение адресного пространства ОЗУ показано на рис. 14.2.

Структура внутренней памяти данных

Младшие 32 байта внутреннего ОЗУ данных сгруппированы в 4 банка по 8 регистров общего назначения в каждом (БАНК 0-БАНК 3). Определение рабочего в данный момент банка, то есть банка регистров, к которому обращается программа при использовании имен R0-R7, осуще ствляется установкой битов RS0 и RS1 в регистре слова состояния PSW .

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

ОЗУ данных с адресами 20h-2Fh образует область ячеек, к которым возможен побитный доступ . Система команд МК-51 содержит значительное количество инструкций, позволяющих работать с отдельными битами, используя при этом прямую адресацию. 128 бит , составляющие рассматриваемую область внутреннего ОЗУ данных , имеют адреса бит 00h-7Fh и предназначены для работы с такими инструкциями. Таким образом, к ячейке с адресом, например, 21h можно обратиться как к байту, используя ее прямой адрес 21h, а можно обратиться к ее отдельным битам с помощью команд, работающих с битовой информацией. При этом младший бит этого байта имеет адрес 08h, а старший - 0Fh.

Ячейки памяти с адресами 30h-7Fh используются как обычная оперативная память .

Во внутреннем ОЗУ данных размещается также область стека. Ее положение не фиксировано, а определяется значением указателя стека SP .

Адресное пространство внутренней памяти данных с адресами 80h-FFh отведено под указание регистров специальных функций микропроцессора. Область регистров специальных функций содержит регистры-защелки портов ввода-вывода , регистры таймеров/счетчиков, регистры управления и т. п. Эти регистры допускают только прямую адресацию.

Все ячейки внутреннего ОЗУ данных могут адресоваться с использованием прямой и косвенной адресации . Обращение к регистрам специальных функций допускается с применением только прямой адресации.

К внешней памяти данных можно обращаться только на запись или чтение с помощью специальных команд. Эти команды осуществляют обмен информацией между внешней памятью данных и аккумулятором микроконтроллера и не влияют на внутреннюю память данных МК. Таким образом, в системе могут одновременно присутствовать внутренняя память данных с адресами 00h-0Fh и внешняя память данных с адресами 0000h-FFFFh.

В составе разных электронных устройств часто встречаются как микроконтроллеры, так и микропроцессоры. Оба этих компонента берут из памяти команды и по ним выполняют логические и арифметические операции, работая при этом с устройствами ввода/вывода и прочей периферией. Так в чём тогда разница?

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

Микроконтроллер — (далее МК) это микросхема, предназначенная для программного управления электронными схемами. МК выполняется на одном кристалле. На нём расположено как вычислительное устройство, так и ПЗУ и ОЗУ. Кроме этого, в составе МК чаще всего находятся порты ввода/вывода, таймеры, АЦП, последовательные и параллельные интерфейсы. В некоторых даже можно заметить Wi-Fi-/Bluetooth-модуль и даже поддержку NFC.

Первый патент на микроконтроллер был выдан в 1971 году компании Texas Instruments. Инженеры этой компании предложили размещать на кристалле не только процессор, но и память с устройствами ввода/вывода.

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

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

Несмотря на то, что всё необходимое для работы микроконтроллера в нём уже есть, иногда они используются в паре с внешними периферийными устройствами. К примеру, когда внутренней ПЗУ не хватает (или она попросту отсутствует), подключают внешнюю. Именно так сделали с микроконтроллерами серии ESP. У ESP8266 встроенной памяти нет вообще, а у ESP32 есть незначительные 448 КБ. Поэтому к ним в корпус (точнее под радиатор) помещается flash-память ёмкостью 1–16 МБ.

Знакомство с недорогим и функциональным микроконтроллером ESP8266: прошивка и пример использования

Тогда почему бы не сделать какой-нибудь портативный компьютер на основе микроконтроллера? Дело в том, что вычислительной мощности у МК чаще всего достаточно мало. Её хватает на управление например, системой полива, микроволновкой или же каким-нибудь станком.

Например, одна из мощных плат платформы Arduino — Due. Она находится под управлением 32-битного AVR-микроконтроллера AT91SAM3X8E. Его тактовая частота 84 МГц. Постоянной памяти тут 512 КБ, а оперативной — 96 КБ. МК имеет 54 цифровых GPIO (12 из которых с поддержкой ШИМ), 12 аналоговых входов и 2 аналоговых выхода (ЦАП). Тут так же присутствуют различные интерфейсы, такие как UART, SPI, I2C.

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

Микропроцессор

С микропроцессором (далее МП) дела обстоят немного иначе. Он содержит в себе арифметико-логическое устройство, блок синхронизации и управления, запоминающие устройство, регистры и шину. То есть МП содержит в себе только то, что непосредственно понадобится для выполнения арифметический и логических операций. Все остальные комплектующие (ОЗУ, ПЗУ, устройства ввода/вывода, интерфейсы) нужно подключать извне.

Структурная схема микропроцессорного устройства

Структурная схема микропроцессорного устройства

Первые микропроцессоры появились тоже в начале 70-х. Самым популярным на тот момент считался 4004. Это микропроцессор, разработанный компанией Intel и представленный 15 ноября 1971 года. Он имел внушающие на тот период характеристики:

  • 2300 транзисторов;
  • тактовая частота — 740 кГц;
  • разрядность регистров и шины — 4 бита;
  • техпроцесс — 10 мкм;
  • площадь кристалла: — 12 мм².

К слову, 4004 был выполнен в обычном DIP-16 корпусе. Этот МП является самой популярной микросхемой для коллекционирования. Некоторые экземпляры продаются по 400 $ за штуку. Менее раритетные стоят около 250 $.

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

Получается, чтобы обеспечить работоспособность микропроцессора, нужно подключить ему хотя бы минимальный набор периферии. Минусы:

  1. Размер — если в случае МК всё уже находится в одном корпусе, то минимальный набор элементов для работы МП занимает больше места.
  2. Цена — обычно, вся «сборка» комплектующих для МП выходит гораздо дороже «голых» микроконтроллеров.
  1. Производительность — микропроцессоры обладают большей производительностью, чем микроконтроллеры.
  2. Выбор — в случае МП у вас есть возможность подобрать комплектующие. Это позволит поставить более подходящую под ваши цели периферию.

Применение

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

Однако иногда в сети появляются умельцы, которые впихивают в микроконтроллер ESP32 DOOM и даже эмулятор NES-игр.

Читайте также: