Классификация и особенности архитектуры микроконтроллеров

Архитектура однокристальных микроконтроллеров
Вопросы лекции:
Классификация и особенности архитектуры микроконтроллеров.
Структура микроконтроллеров.
Популярные семейства 8-разрядныхмикроконтроллеров.
Классификация и особенности архитектуры микроконтроллеров
Основной особенностью современного этапа развития МПС является завершение перехода от систем, выполненных на основе нескольких больших ИС, к однокристальным МК.
Микроконтроллеры (МК) представляют собой законченную микропроцессорную систему обработки информации, которая реализована в виде одной большой интегральной микросхемы.
МК объединяет в пределах одного полупроводникового кристалла основные функциональные блоки МП управляющей системы: центральный процессор (ЦПУ), постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), периферийные устройства для ввода и вывода информации (УВВ).
Все МК можно условно разделить на три основных класса:
• 8-разрядные МК для встраиваемых приложений;
• 16- и 32-разрядные МК;
• цифровые сигнальные процессоры (DSP),
Наиболее распространенным представителем семейства МК являются 8-разрядные приборы, широко используемые в промышленности, бытовой и компьютерной технике.
Они прошли в своем развитии путь от простейших приборов с относительно слаборазвитой периферией до современных многофункциональных контроллеров, обеспечивающих реализацию сложных алгоритмов управления в реальном масштабе времени.
Причиной жизнеспособности 8-разрядных МК является использование их для управления реальными объектами, где применяются, в основном, алгоритмы с преобладанием логических операций, скорость обработки которых практически не зависит от разрядности процессора.
Росту популярности 8-разрядных МК способствует постоянное расширение номенклатуры изделий, выпускаемых такими известными фирмами, как Motorola, Microchip, Intel, Zilog, Atmel и многими другими.
Современные 8-разрядные МК обладают, как правило, рядом отличительных признаков. Перечислим основные из них:
• модульная организация, при которой на базе одного процессорного ядра (центрального процессора) проектируется ряд (линейка) МК, различающихся объемом и типом памяти программ, объемом памяти данных, набором периферийных модулей, частотой синхронизации;
• использование закрытой архитектуры МК, которая характеризуется отсутствием линий магистралей адреса и данных на выводах корпуса МК. Таким образом, МК представляет собой законченную систему обработки данных, наращивание возможностей которой с использованием параллельных магистралей адреса и данных не предполагается;
• использование типовых функциональных периферийных модулей (таймеры, процессоры событий, контроллеры последовательных интерфейсов, аналого-цифровые преобразователи и др.), имеющих незначительные отличия в алгоритмах работы в М К различных производителей.
• расширение числа режимов работы периферийных модулей, которые задаются в процессе инициализации регистров специальных функций МК.
С точки зрения системы команд и способов адресации операндов процессорное ядро современных 8-разрядных МК реализует один из двух принципов построения процессоров:
• процессоры с CISC-архитектурой, реализующие так называемую полную систему команд (Complicated Instruction Set Computer);
• процессоры с RISC-архитектурой, реализующие сокращенную систему команд (Reduced Instruction Set Computer).
CISC-процессоры выполняют большой набор команд с развитыми возможностями адресации, давая разработчику возможность выбрать наиболее подходящую команду для выполнения необходимой операции.
В применении к 8-разрядным МК процессор с CISC-архитектурой может иметь однобайтовый, двухбайтовый и трехбайтовый (редко четырехбайтовый) формат команд.
При этом система команд, как правило, неортогональна, то есть не все команды могут использовать любой из способов адресации применительно к любому из регистров процессора. Выборка команды на исполнение осуществляется побайтно в течение нескольких циклов работы МК.
Время выполнения команды может составлять от 1 до 12 циклов. К МК с CISC-архитектурой относятся МК фирмы Intel с ядром MCS-51, которые поддерживаются в настоящее время целым рядом производителей, МК семейств НС05, НС08 и HCII фирмы Motorola и ряд других.
В процессорах с RISC-архитектурой набор исполняемых команд сокращен до минимума. Для реализации более сложных операций приходится комбинировать команды.
При этом все команды имеют формат фиксированной длины (например, 12, 14 или 16 бит), выборка команды из памяти и ее исполнение осуществляется за один цикл (такт) синхронизации. Система команд RISC-процессора предполагает возможность равноправного использования всех регистров процессора.
Это обеспечивает дополнительную гибкость при выполнении ряда операций. К МК с RISC-процессором относятся МК AVR фирмы-AtmeI, МК PIC16 и PIC17 фирмы Microchip и другие.
С точки зрения организации процессов выборки и исполнения команды в современных 8-разрядных МК применяется одна из двух уже упоминавшихся архитектур МПС: фон-неймановская (принстонская) или гарвардская.
| Рис. 2. Структура МПС с фон-неймановской архитектурой. |
Основной особенностью фон-неймановской архитектуры является использование общей памяти для хранения программ и данных, как показано на рис. 2.
Основное преимущество архитектуры Фон-Неймана – упрощение устройства МПС, так как реализуется обращение только к одной общей памяти.
Кроме того, использование единой области памяти позволяло оперативно перераспределять ресурсы между областями программ и данных, что существенно повышало гибкость МПС с точки зрения разработчика программного обеспечения.
Размещение стека в общей памяти облегчало доступ к его содержимому. Неслучайно поэтому фон-неймановская архитектура стала основной архитектурой универсальных компьютеров, включая персональные компьютеры.
Основной особенностью гарвардской архитектуры является использование раздельных адресных пространств для хранения команд и данных, как показано на рис. 3.
| Рис. 3. Структура МПС с гарвардской архитектурой. |
Гарвардская архитектура почти не использовалась до конца 70-х годов, пока производители МК не поняли, что она дает определенные преимущества разработчикам автономных систем управления.
Дело в том, что, судя по опыту использования МПС для управления различными объектами, для реализации большинства алгоритмов управления такие преимущества фон-неймановской архитектуры как гибкость и универсальность не имеют большого значения.
Анализ реальных программ управления показал, что необходимый объем памяти данных МК, используемый для хранения промежуточных результатов, как правило, на порядок меньше требуемого объема памяти программ. В этих условиях использование единого адресного пространства приводило к увеличению формата команд за счет увеличения числа разрядов для адресации операндов.
Применение отдельной небольшой по объему памяти данных способствовало сокращению длины команд и ускорению поиска информации в памяти данных.
Кроме того, гарвардская архитектура обеспечивает потенциально более высокую скорость выполнения программы по сравнению с фон-неймановской за счет возможности реализации параллельных операций.
Выборка следующей команды может происходить одновременно с выполнением предыдущей, и нет необходимости останавливать процессор на время выборки команды.
Этот метод реализации операций позволяет обеспечивать выполнение различных команд за одинаковое число тактов, что дает возможность более просто определить время выполнения циклов и критичных участков программы.
Большинство производителей современных 8-разрядных МК используют гарвардскую архитектуру. Однако гарвардская архитектура является недостаточно гибкой для реализации некоторых программных процедур. Поэтому сравнение МК, выполненных по разным архитектурам, следует проводить применительно к конкретному приложению.
Источник: https://megaobuchalka.ru/6/38713.html
Архитектура микроконтроллера

Архитектура микроконтроллера – это, говоря простым языком, его внутреннее устройство. Можно сказать, что это некая структурная схема, которая содержит основные элементы, из которых состоит микроконтроллер.
Архитектура микроконтроллера позволяет понять, как устроен микроконтроллер конкретного семейства на уровне основных функциональных узлов. То есть архитектура описывает устройство микроконтроллера на уровне “железа”.
Если попробовать “завернуть” чуть более научно, то архитектура – это некий набор свойств, присущих семейству микроконтроллеров (микропроцессоров), или внутренняя организация этих устройств.
Имеются различные классификации архитектур по разным параметрам. Например, по количеству и скорости выполнения команд. Или по назначению (графические, математические, обработки сигналов и т.п.).
Кроме того, существует такое понятие, как архитектура команд микроконтроллера (микропроцессора). Это совместимость с определённым набором команд (например, с набором инструкций Intel x86), а также структура команд и способ выполнения команд.
Как вы понимаете, на сегодняшний день существует довольно много различных архитектур (как аппаратных, так и программных). Рассказать о всех в одной статье невозможно (да и не нужно).
С учётом того, что практически все мои статьи и книги рассчитаны на начинающих, я буду пытаться рассказывать об архитектуре (и не только) как можно более простым и понятным языком (пусть даже иногда в ущерб точности и правильности).
Моя задача – объяснить сложные предметы далёким от темы людям, чтобы они хотя бы в общих чертах их поняли.
Поэтому все дальнейшие материалы будут на примере одного из самых дешёвых и относительно простых микроконтроллеров ATtiny13A-SSU производства компании Atmel, который на момент написания этой статьи стоит всего 38 рублей (то есть примерно 0,7$). Этот микроконтроллер принадлежит к семейству AVR и имеет соответствующую архитектуру.
Я запланировал серию статей о микроконтроллерах для начинающих. Сразу скажу, что я не буду в этих статьях во всех подробностях рассказывать о программировании микроконтроллеров. Если кому интересно, то могу посоветовать отличный видеокурс по этой теме.
Ну а пока см. рисунок ниже, где показана архитектура ядра AVR в целом. То есть это относится ко всему семейству AVR, а не только к микроконтроллеру ATtiny13A.
Не пугайтесь непонятных слов и аббревиатур на английском языке, которые вы увидели на рисунке. Также не бойтесь, если что-то из того, что будет сказано далее, вам будет непонятно. В следующих статьях мы будем всё это подробно изучать. А пока самые общие сведения об архитектуре.
Ядро процессора
Основное назначение ядра процессора – это обеспечение правильного выполнения программы. Поэтому процессор должен быть в состоянии получать доступ к памяти, выполнять расчёты, управлять периферией и обрабатывать прерывания.
То, что вы видите на рисунке, это и есть ядро процессора.
Для достижения максимальной производительности и возможности параллельного выполнения команд AVR использует Гарвардскую архитектуру с раздельными памятью и шинами программ и данных.
Инструкции программы в памяти (блок Flash Program Memory, далее – FPM) выполняются с одноуровневой конвейеризацией. Пока одна инструкция выполняется, следующая инструкция программы предварительно считывается из памяти (из FPM). Эта концепция позволяет инструкции выполняться за один такт. Память программы (блок FPM) в системе – это перепрограммируемая флэш-память.
Блок регистров содержит 32 восьмиразрядных регистра общего назначения (далее – РОН) с быстрым доступом (на рисунке это 32 х 8 General Purpose Registrers). Доступ к регистру выполняется за один такт.
Это позволяет арифметико-логическому устройству (АЛУ) – Arithmetic Logic Unit (ALU) также выполнять операции за один такт.
В общем случае при выполнении операции АЛУ два операнда берутся из файлового регистра (Register File), выполняется операция, а результат записывается обратно в файловый регистр. И всё это за один такт.
Шесть из 32 регистров могут использоваться как 16-разрядные регистры косвенной адресации для указания на область адресов данных, обеспечивая эффективное вычисление адреса.
На рисунке это показано стрелкой с надписью Indirect address (косвенная адресация). То есть 6 из 32 регистров общего назначения можно использовать как указатели адреса для доступа к данным в области Data SRAM.
Один из этих указателей адреса можно также использовать как указатель адреса для просмотра таблиц в программной памяти (FPM). Эти дополнительные функциональные регистры, которые являются 16-разрядными регистрами X-, Y- и Z-, будут описаны далее.
АЛУ поддерживает арифметические и логические операции между регистрами или между константой и регистром. Операция с одним регистром также может быть выполнена в АЛУ. Операции с одним регистром также могут выполняться в ALU. После арифметической операции регистр состояния (Status Register) обновляется для отображения сведений о результате операции.
Выполнение программы обеспечивается условными и безусловными переходами и вызовами инструкций, способными непосредственно обращаться ко всему пространству адресов. Большинство инструкций AVR имеют формат одиночного 16-разрядного слова. Каждый адрес памяти программы содержит 16-или 32-разрядную инструкцию.
При генерации прерывания и вызове подпрограмм адрес возврата счетчика команд (Program Counter, сокращённо PC) сохраняется в стеке. Стек эффективно распределяется среди общих данных в SRAM, и, следовательно, размер стека ограничивается только общим размером SRAM и использованием SRAM.
Все пользовательские программы должны инициализировать SP в подпрограмме сброса (перед выполнением подпрограмм или прерываний). Указатель стека (Stack Pointer, сокращённо SP) доступен для чтения и записи в пространстве ввода-вывода.
К статическому ОЗУ данных (SRAM) можно легко получить доступ через пять различных режимов адресации архитектуры AVR.
Всё пространство памяти в архитектуре AVR является линейным и представляет собой обычные таблицы памяти.
Гибкий модуль прерываний содержит свои управляющие регистры в пространстве ввода-вывода (I/O space) с дополнительным битом глобального разрешения прерываний (Global Interrupt Enable) в регистре статуса (Status Register).
Все прерывания имеют отдельный вектор прерываний (Interrupt Vector) в таблице векторов прерываний (Interrupt Vector table). Прерывания имеют приоритет в соответствии с их положением в таблице векторов прерываний.
Чем ниже адрес вектора прерывания, тем выше приоритет.
Пространство памяти ввода-вывода содержит 64 адреса для периферийных функций центрального процессора (CPU) в качестве регистров управления (Control Registers), SPI и других функций ввода-вывода. Память ввода-вывода может быть доступна непосредственно, или как размещение пространства данных (Data Space), находящееся за регистром файла (Register File), 0x20 – 0x5F.
В следующих статьях я расскажу о некоторых частях ядра более подробно…
| Микроконтроллеры для ЧАЙНИКОВБесплатная рассылка о микроконтроллерах. Рассылка содержит как бесплатную информацию для начинающих, так и ссылки на платные продукты (книги, видеокурсы и др.) для тех, кто захочет вникнуть в тему более глубоко. Подробнее… |
Источник: http://av-assembler.ru/mc/architecture-of-microcontroller.php
Особенности архитектуры микроконтроллеров семейства PIC16CXXX

Микроконтроллеры семейства PIC16CXXX, выполненные по технологии HCMOS представляют собой 8-разрядные микроконтроллеры на основе RISC-процессора, выполненные по гарвардской архитектуре.
Имеют встроенное ПЗУ команд объемом от 0,5 до 4 Кслов (разрядность слова команд равна 12 – 14 бит).
Память данных PIC-контроллеров организована в виде регистрового файла объемом 32 – 128 байт, в котором от 7 до 16 регистров отведено для управления системой и обмена данными с внешними устройствами.
Одним из основных достоинств этих устройств является очень широкий диапазон напряжений питания (2 – 6 В).
Ток потребления на частоте 32768 Гц составляет менее 15 мкА, на частоте 4 МГц – 1 – 2 мА, на частоте 20 МГц 5 – 7 мА и в режиме микропотребления (режим SLEEP) – 1 – 2 мкА.
Выпускаются модификации для работы в трех температурных диапазонах: от 0 до +70°С, от -40 до +85°С и от -40 до +125°С.
Каждый из контроллеров содержит универсальные (от 1 до 3) и сторожевой таймеры, а также надежную встроенную систему сброса при включении питания.
Частота внутреннего тактового генератора задается либо кварцевым резонатором, либо RC-цепочкой в диапазоне 0 – 25 МГц.
PIC-контроллеры имеют от 12 до 33 линий цифрового ввода-вывода, причем каждая из них может быть независимо настроена на ввод или вывод.
В устройство PIC16C64 входит широтно-импульсный модулятор, с помощью которого можно реализовать ЦАП с разрешением до 16 разрядов. Здесь есть и последовательный двунаправленный синхронно-асинхронный порт, обеспечивающий возможность организации шины I2C. Приборы PIC16C71 и PIC16C74 содержат встроенный многоканальный 8-разрядный АЦП с устройством выборки-хранения.
Помимо памяти программ в PIC предусмотрено несколько индивидуально прожигаемых перемычек, с помощью которых можно на этапе программирования кристалла выбрать тип тактового генератора, отключить сторожевой таймер или систему сброса, включить защиту памяти программ от копирования, а также записать серийный номер кристалла (16 бит).
С программной точки зрения PIC-контроллер представляет собой 8-разрядный RISC-процессор с гарвардской архитектурой. Число команд небольшое — от 33 до 35. Все команды имеют одинаковую длину и, кроме команд ветвления, выполняются за четыре периода тактовой частоты (в отличие, например, от 12 периодов для i87C51).
Поддерживаются непосредственный, косвенный и относительный методы адресации, можно эффективно управлять отдельными битами в пределах всего регистрового файла. Стек реализован аппаратно. Его максимальная глубина составляет два или восемь уровней в зависимости от типа контроллера. Почти во всех микросхемах PIC есть система прерываний, источниками которых могут быть таймер и внешние сигналы.
Система команд практически симметрична и, как следствие, легка в освоении.
Применение PIC-контроллеров целесообразно в несложных приборах с ограниченным током потребления (автономные устройства, приборы с питанием от телефонной линии и т.п.). Благодаря малому количеству компонентов, используемых при построении таких приборов, их размеры уменьшаются, а надежность увеличивается.
Типичным представителем микроконтроллеров семейства PIC16CXXX являются микроконтроллеры подгруппы PIC16F8X.
Микроконтроллеры подгруппы PIC16F8X
Основные характеристики
Микроконтроллеры подгруппы PIC16F8X относятся к семейству 8-разрядных КМОП микроконтроллеров группы PIC16CXXX, для которых характерны низкая стоимость, полностью статическая КМОП-технология и высокая производительность.
В состав подгруппы входят МК PIC16F83, PIC16CR83, PIC16F84 и PIC16CR84. Основные характеристики МК подгруппы PIC16F8X приведены в табл. 5.1.
Все микроконтроллеры подгруппы PIC16F8X используют гарвардскую архитектуру с RISC-процессором, обладающую следующими основными особенностями:
- используются только 35 простых команд;
- все команды выполняются за один цикл (400 нс при частоте 10 МГц), кроме команд перехода, которые требуют 2 циклов;
- рабочая частота 0 Гц … 10 МГц;
- раздельные шины данных (8 бит) и команд (14 бит);
- 512 х 14 или 1024 х 14 память программ, выполненная на ПЗУ или электрически перепрограммируемой Flash- памяти;
- 15 восьмиразрядных регистров специальных функций (SFR);
- восьмиуровневый аппаратный стек;
- прямая, косвенная и относительная адресация данных и команд;
- 36 или 68 восьмиразрядных регистров общего назначения (GPR) или ОЗУ;
- четыре источника прерывания:
- внешний вход RB0/INT;
- переполнение таймера TMR0;
- изменение сигналов на линиях порта B;
- завершение записи данных в память EEPROM;
- 64 x 8 электрически перепрограммируемая EEPROM память данных с возможностью выполнения 1000000 циклов стирания/записи;
- сохранение данных в EEPROM в течение как минимум 40 лет.
| Таблица 5.1. Основные характеристики МК подгруппы PIC16F8X. | ||||
| Параметр | PIC16F83 | PIC16CR83 | PIC16F84 | PIC16CR84 |
| Максимальная частота, МГц | ||||
| Flash-память программ, слов | – | 1K | – | |
| ПЗУ программ, слов | – | – | 1K | |
| Память данных, байт | ||||
| Память данных в РПЗУ (EEPROM), байт | ||||
| Таймеры | TMR0 | TMR0 | TMR0 | TMR0 |
| Число источников прерываний | ||||
| Число линий ввода/вывода | ||||
| Диапазон напряжений питания, В | 2,0 – 6,0 | 2,0 – 6,0 | 2,0 – 6,0 | 2,0 – 6,0 |
| Число выводов и тип корпуса |