Классификация и особенности архитектуры микроконтроллеров
Архитектура однокристальных микроконтроллеров
Вопросы лекции:
Классификация и особенности архитектуры микроконтроллеров.
Структура микроконтроллеров.
Популярные семейства 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 |
Число выводов и тип корпуса | 18 DIP, SOIC | 18 DIP, SOIC | 18 DIP, SOIC | 18 DIP, SOIC |
Микроконтроллеры подгруппы PIC16F8X обладают развитыми возможностями ввода/вывода:
- 13 линий ввода-вывода с индивидуальной установкой направления обмена;
- высокий втекающий/вытекающий ток, достаточный для управления светодиодами:
- максимальный втекающий ток – 25 мА;
- максимальный вытекающий ток – 20 мА;
- 8-битный таймер/счетчик TMR0 с 8-битным программируемым предварительным делителем.
Специализированные микроконтроллерные функции включают следующие возможности:
- автоматический сброс при включении (Power-on-Reset);
- таймер включения при сбросе (Power-up Timer);
- таймер запуска генератора (Oscillator Start-up Timer);
- сторожевой (Watchdog) таймер WDT с собственным встроенным генератором, обеспечивающим повышенную надежность;
- EEPROM бит секретности для защиты кода;
- экономичный режим SLEEP;
- выбираемые пользователем биты для установки режима возбуждения встроенного генератора;
- последовательное встроенное устройство программирования Flash/EEPROM памяти программ и данных с использованием только двух выводов.
КМОП технология обеспечивает МК подгруппы PIC16F8X дополнительные преимущества:
- статический принцип работы;
- широкий диапазон напряжений питания: 2,0 … 6,0 В;
- низкое энергопотребление:
- менее 2 мА при 5В и 4МГц;
- порядка 15 мкА при 2В и 32КГц;
- менее 1 мкА для SLEEP-режима при 2В.
Микроконтроллеры подгруппы PIC16F8X различаются между собой только объемом ОЗУ данных, а также объемом и типом памяти программ. Наличие в составе подгруппы МК с Flash-памятью программ облегчает создание и отладку прототипов промышленных образцов изделий.
Особенности архитектуры
Упрощенная структурная схема МК подгруппы PIC16F8X приведена на рис. 5.1.
Рис. 5.1. Структурная схема МК подгруппы PIC16F8X.
Архитектура основана на концепции раздельных шин и областей памяти для данных и для команд (гарвардская архитектура). Шина данных и память данных (ОЗУ) – имеют ширину 8 бит, а программная шина и программная память (ПЗУ) имеют ширину 14 бит.
Такая концепция обеспечивает простую, но мощную систему команд, разработанную так, что битовые, байтовые и регистровые операции работают с высокой скоростью и с перекрытием по времени выборок команд и циклов выполнения. 14-битовая ширина программной памяти обеспечивает выборку 14-битовой команды в один цикл.
Двухступенчатый конвейер обеспечивает одновременную выборку и исполнение команды. Все команды выполняются за один цикл, исключая команды переходов.
Микроконтроллеры PIC16F83 и PIC16CR83 адресуют 512х14 памяти программ, а PIC16F84 и PIC16CR84 – 1Кх14 памяти программ. Вся память программ является внутренней.
Микроконтроллер может прямо или косвенно обращаться к регистрам или памяти данных. Все регистры специальных функций, включая счетчик команд, отображаются на память данных.
Ортогональная (симметричная) система команд позволяет выполнять любую команду над любым регистром с использованием произвольного метода адресации.
Ортогональная архитектура и отсутствие специальных исключений делает программирование МК группы PIC16F8X простым и эффективным.
Назначение выводов МК подгруппы PIC16F8X приведено в табл. 5.2.
Таблица 5.2. Назначение выводов МК подгруппы PIC16F8X. | |||
Обозначение | Тип | Буфер | Описание |
OSC1/CLKIN | I | ТШ/КМОП1) | Вход кристалла генератора, RC-цепочки или вход внешнего тактового сигнала |
OSC2/CLKOUT | O | – | Выход кристалла генератора. В RC-режиме – выход 1/4 частоты OSC1 |
/MCLR | I/P | ТШ | Сигнал сброса/вход программирующего напряжения. Сброс низким уровнем. |
RA0 | I/O | ТТЛ | PORTA – двунаправленный порт ввода/вывода RA4/T0CKI может быть выбран как тактовый вход таймера/счетчика TMR0. Выход с открытым стоком. |
RA1 | I/O | ТТЛ | |
RA2 | I/O | ТТЛ | |
RA3 | I/O | ТТЛ | |
RA4 | I/O | ТШ | |
/T0CKI | |||
RB0/INT | I/O | ТТЛ/ТШ2) | PORTB – двунаправленный порт ввода/вывода. Может быть запрограммирован в режиме внутренних активных нагрузок на линию питания по всем выводам. Вывод RB0/INT может быть выбран как внешний вход прерывания. Выводы RB4…RB7 могут быть программно настроены как входы прерывания по изменению состояния на любом из входов. При программировании МК RB6 используется как тактовый, а RB7 как вход/выход данных. |
RB1 | I/O | ТТЛ | |
RB2 | I/O | ТТЛ | |
RB3 | I/O | ТТЛ | |
RB4 | I/O | ТТЛ | |
RB5 | I/O | ТТЛ | |
RB6 | I/O | ТТЛ/ТШ3) | |
RB7 | I/O | ТТЛ/ТШ4) |
Таблица 5.2. Назначение выводов МК подгруппы PIC16F8X (продолжение). | |||
Обозначение | Тип | Буфер | Описание |
Vdd | P | – | Положительное напряжение питания |
Vss | P | – | Общий провод (земля) |
В таблице использованы следующие обозначения: I — вход; O — выход; I/O — вход/выход; P — питание; – — не используется; ТТЛ — ТТЛ вход; ТШ — вход триггера Шмитта. |
Микроконтроллер содержит 8-разрядное АЛУ и рабочий регистр W.
АЛУ является арифметическим модулем общего назначения и выполняет арифметические и логические функции над содержимым рабочего регистра и любого из регистров контроллера.
АЛУ может выполнять операции сложения, вычитания, сдвига и логические операции. Если не указано иное, то арифметические операции выполняются в дополнительном двоичном коде.
В зависимости от результата операции, АЛУ может изменять значения бит регистра STATUS: C (Carry), DC (Digit carry) и Z (Zero).
Источник: https://infopedia.su/4x59c5.html
Назначение и особенности архитектур микроконтроллеров
18802
Назначение и особенности архитектур микроконтроллеров
Доклад
Информатика, кибернетика и программирование
Назначение и особенности архитектур микроконтроллеров Микроконтроллер МК ‐ это специализированный микропроцессор предназначенныйдля обработки внешних событий при решении задач управления техническими процессами. Обычно МК в реальном времени выполняют задачи с
Русский
2013-07-08
76.74 KB
13 чел.
Назначение и особенности архитектур микроконтроллеров
Микроконтроллер (МК) ‐ это специализированный микропроцессор, предназначенныйдля обработки внешних событий при решении задач управления техническими процессами.
Обычно МК в реальном времени выполняют задачи сбора и первичной обработки информации о ходе технологического процесса и передачи результатов ее в локальную сеть, а также осуществляют управление в соответствии с заданным законом автоматического регулирования.
МК – это однокристальные микро‐ЭВМ. МК используют различные корпуса от простейших малоконтактных DIP до многоконтактных BGA.
На одном кристалле МК размещаются:
– процессор; – оперативное запоминающее устройство (ОЗУ) данных; – постоянное запоминающее устройство (ПЗУ) команд; – последовательные и параллельные порты; – котроллер прерываний; – контроллер ПДП (опция); – таймеры (опция); – ЦАП, АЦП (опция); – внутренние схемы запуска и тактовой синхронизации.
Основной архитектурой МК является Гарвардская архитектура, что обеспечивает возможность совместить во времени процедуры выборки и декодирования команд с исполнением предыдущей команды с целью повышения производительности.
Команды размещаются во внутреннем и/или внешнем ПЗУ и поступают в устройство управления МК. Данные (операнды) размещаются во внутреннем и/или внешнем ОЗУ и поступают на исполнение в оперативное устройство МК.
Во многих МК внутреннее ОЗУ реализована как расширение для регистров общего назначения процессора и поэтому иногда данное ОЗУ называют «регистровый файл».
Как правило, МК имеют сложный набор команд, т.е.
это процессор СISC – типа (некоторые микроконтроллеры имеют простой набор команд для пересылок и передачи данных, выполняющих за один машинный цикл, а также несколько сложных вычислительных команд (умножение, деление)).
МК с простым набором команд RISC‐типа, также широко представлены на рынке микроэлектроники, например, PIC‐контроллеры. МК RISC‐типа применяются для проектирования простейших устройств, таких как интеллектуальная периферия.
Структурная схема:
МК устроен таким образом, чтобы максимально упростить взаимосвязь микроконтроллера с различными разнообразными внешними устройствами. Это достигается с помощью наличия программно‐управляемых портов.
Наличие в МК нескольких портов ввода – вывода (последовательного и параллельного)определяет интерфейсные возможности проектируемой системы:
1. По связи с системами верхнего уровня: HOST ПК, ПЛК, терминалы, интеллектуальные пульты операторов;
2. По организации межпроцессорных коммуникаций для построения мультипроцессорных систем;
3. По подключению большого числа стандартных исполнительных устройств, датчиков, а также внешних БИС/СБИС, как программируемых, так и с жесткой логикой.
Основные направления и тенденции развития МК:
1 Повышение производительности ЦП, за счет использования RISC ядра и конвейерной обработки.
2 Использование flash‐памяти и увеличение емкости внутренней памяти.
3 Расширение внутренних функциональных устройств (АЦП/ЦАП, ШИМ и т.д).
4 Расширение разнообразия последовательных портов (от стандартных последовательных интерфейсов, включая RS‐485, до CAN).
5 Увеличение гибкости (программируемости) внутренних устройств.
6 Увеличение эффективности системы команд и как следствие повышение качества и надежности программного кода.
Источник: http://5fan.ru/wievjob.php?id=18802
Основные типы микроконтроллеров и их архитектура
Промышленностью выпускаются очень широкая номенклатура встраиваемых МК. В них все необходимые ресурсы (память, устройства ввода-вывода и т.д.) располагаются на одном кристалле с процессорным ядром.
Если подать питание и тактовые импульсы на соответствующие входы МК, то можно сказать, что он как бы «оживет» и с ним можно будет работать.
Обычно МК содержат значительное число вспомогательных устройств, благодаря чему обеспечивается их включение в реальную систему с использованием минимального количества дополнительных компонентов. В состав этих МК входят:
- Схема начального запуска процессора (Reset);
- Генератор тактовых импульсов;
- Центральный процессор;
- Память программ (E(E)PROM) и программный интерфейс;
- Средства ввода/вывода данных;
- Таймеры, фиксирующие число командных циклов.
Общая структура МК показана на рис. 1.1. Эта структура дает представление о том, как МК связывается с внешним миром.
Более сложные встраиваемые МК могут дополнительно реализовывать следующие возможности:
- Встроенный монитор/отладчик программ;
- Внутренние средства программирования памяти программ (ROM);
- Обработка прерываний от различных источников;
- Аналоговый ввод/вывод;
- Последовательный ввод/вывод (синхронный и асинхронный);
- Параллельный ввод/вывод (включая интерфейс с компьютером);
- Подключение внешней памяти (микропроцессорный режим).
Все эти возможности значительно увеличивают гибкость применения МК и делают более простым процесс разработки систем на и основе.
Некоторые МК (особенно 16- и 32-разрядные) используют только внешнюю память, которая включает в себя как память программ (ROM), так и некоторый объем памяти данных (RAM), требуемый для данного применения. Они применяются в системах, где требуется большой объем памяти и относительное не большое количество устройств (портов) ввода/вывода.
Типичным примером применения такого МК с внешней памятью является котроллер жесткого диска (HDD) с буферной кэш-памятью, который обеспечивает промежуточное хранение и распределение больших объемов данных (порядка нескольких мегабайт).
Внешняя память дает возможность такому микроконтроллеру работать с более высокой скоростью, чем встраиваемый МК.
Цифровые сигнальные процессоры (DSP) – относительно новая категория процессоров.
Назначение DSP состоит в том, чтобы получать текущие данные от аналоговой системы, обрабатывать данные и формировать соответствующий отклик в реальном масштабе времени.
Они обычно входят в состав систем, используясь в качестве устройств управления внешним оборудованием, и не предназначены для автономного применения.
Система команд МК
В зависимости от числа используемых кодов операций системы команд МК можно разделить на две группы: CISC и RISC. Термин CISC означает сложную систему команд и является аббревиатурой английского определения Complex Instruction Set Computer.
Аналогично термин RISC означает сокращенную систему команд и происходит от английского Reduced 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) – оперативное запоминающее устройство, используется для хранения данных. Эту память называют еще памятью данных. Число циклов чтения и записи в ОЗУ неограниченно, но при отключение питания вся информация теряется.
Источник: http://kpe.hww.ru/cms/page/osnovnye-tipy-mikrokontrollerov-i-ih-arhitektura
AVR. Учебный курс. Архитектура
Итак, камрад, прежде чем ты начнешь работать с контроллером, то неплохо бы тебе узнать что у него внутри.
Поэтому дам тебе краткий ликбез по архитектуре контроллера AVR.
Основой любого микроконтроллера является вычислительное ядро. Во всех моделях AVR оно практически одинаковое и это большой плюс. Именно единство архитектуры обеспечивает легкую переносимость кода.
Итак, что же у нас в основе микроконтроллера, взгляни на диаграмму:
Ядро состоит, в первую очередь, из памяти программ (Flash Programm Memory) и Арифметико-логического устройства (ALU), блока управления (на диаграмме не показан) и программного счетчик (Program Counter).
Также есть тактовый генератор, задающий импульсы относительно которых работают блоки микроконтроллера. Тактовый генератор можно сравнить с маятником и собачкой в будильнике: маятник туда сюда, собачка тикает по одному зубчику — шестеренки крутятся.
Встала собачка — встал весь будильник.
При старте микроконтроллера значение программного счетчика равно 0000 — это адрес первой команды в нашей flash ROM. Микроконтроллер хватает оттуда два байта (код команды и ее аргументы) и отдает на выполнение в декодер команд (Instruction Decoder).
А дальнейшая судьба зависит от команды. Если это просто команда работы с какими-либо действиями, то они будут выполнены, а на следующем такте значение программного счетчика будет увеличено и из следующей пары ячеек памяти будут взяты еще два байта команды и также отправлены на выполнение.
Все интересней становится когда встречается команда перехода.
В этом случае в Программный счетчик загружается адрес указанный в команде (абсолютный переход) или его значение увеличивается не на 1, а на столько сколько нужно и на следующем такте микроконтроллер возьмет команду уже с нового адреса.
Декодер команд загребает команду и скармливает ее логике блока управления, который уже пинает все остальные блоки, заставляя их делать нужные действия в нужном порядке.
Вся математика и обработка делается посредством ALU. Это, своего рода, калькулятор. Он может складывать, вычитать, сравнивать, сдвигать разными способами, иногда делить и умножать (это считается круто, встречается редко).
В качестве промежуточных операндов используются 32 ячейки — Оперативные регистры общего назначения РОН. Доступ к этим ячейкам самый быстрый, а число операций с их содержимым наиболее богатое. В ассемблере регистры эти называются просто R0,R1,R2 … R31. Причем делятся они на три группы:
Младшие R0..R15
Обычные регистры общего назначения, но какие то ущербные. С ними не работают многие команды, например, такие как загрузка непосредственного числа. Т.е. нельзя, например, взять и присвоить регистру число. Зато можно скопировать число из любого другого регистра.
Старшие R16..R31
Полноценные регистры, работающие со всеми командами без исключения.
Индексные R26…R31
Шесть последних регистров из старшей группы особенные. В принципе, их можно юзать и как обычные регистры общего назначения. Но, кроме этого, они могут образовывать регистровые пары X(R26:R27), Y(R28,R29), Z(R30:R31) которые используются как указатели при работе с памятью.
ОЗУ
Кроме 32 регистров в микроконтроллере есть оперативная память. Правда не везде — в младших семействах AVR Tiny12 и Tiny11 оперативной памяти нет, так что приходиться вертеться в 32 ячейках.
Оперативная память это несколько сотен ячеек памяти. От 64 байт до 4килобайт, в зависимости от модели. В этих ячейках могут храниться любые данные, а доступ к ним осуществляется через команды Load и Store.
То есть нельзя взять, например, и прибавить к ячейке в памяти, скажем, единицу. Нам сначала сделать операцию Load из ОЗУ в РОН, потом в регистре прибавить нашу единицу и операцией Store сохранить ее обратно в память. Только так.
EEPROM
Долговременная память. Память которая не пропадает после выключения питания. Если Flash может содержать только код и константы, а писать в нее при выполнении ничего нельзя (Это память Read Only), то в ЕЕПРОМ можно сколько угодно писать и читать. Но в качестве оперативки ее особо не поюзаешь. Дело в том, что цикл записи в EEPROM длится очень долго — миллисекунды.
Чтение тоже не ахти какое быстрое. Да и число циклов перезаписи всего 100 000, что не очень много в масштабах работы оперативной памяти. ЕЕПРОМ используется для сохранения всяких настроек, предустановок, собранных данных и прочего барахла, что может потребоваться после включения питания и в основном на чтение. Эта память есть не во всех моделях AVR, но в подавляющем их большинстве.
Периферия
Периферия это внутренний фарш микроконтроллера. То что делает его таким универсальным.
ALU, RAM, FLASH и Блок управления это как в компе Мать, Проц, Память, Винт — то без чего комп даже не запустится толком. То периферия это уже как сетевуха, видяха, звуковая карта и прочие прибамбасы.
Они могут быть разными, разной степени крутости и навороченности, а также комбинироваться в разном порядке.
Именно по наличию на кристалле той или иной периферии происходит выбор микроконтроллера под задачу.
Периферии всякой придумано великое множество, всего я наверное даже не опишу. Но дам основной набор присутствующий почти во всех AVR, а также в других современных контроллерах.
- Порты ввода вывода — то без чего невозможно взаимодействие контроллера с внешним миром. Именно порты обеспечивают то самое «ножкодрыгательство» управляющее другими элементами схемы. Захотели получить на выводе единичку, дали приказ соответствующему порту — получите, распишитесь. Захотели узнать какой там сигнал на входе? Спросили у соответствующего порта — получили. Почти все выводы микроконтроллера могут работать в режиме портов ввода-вывода.
- UART/USART приемопередатчик — последовательный порт. Работает по тому же асинхронному протоколу что и древние диалапные модемы. Старый как мир, надежный и простой как кувалда. Подходит для связи с компьютером и другими контроллерами.
- Таймеры/счетчики — задача таймеров отсчитывать тики. Сказал ему отсчитать 100 тактов процессора — он приступит и как досчитает подаст сигнал. Им же можно подсчитывать длительность входных сигналов, подсчитывать число входных импульсов. Да много чего умеет таймер, особенно в AVR. Подробное описание функций таймера занимает добрых три десятка страниц в даташите. При том, что таймеров самих существует несколько видов и фарш у них разный.
- АЦП — аналоговый вход. Есть не у всех микроконтроллеров, но вещь полезная. Позволяет взять и замерить аналоговый сигнал. АЦП это своеобразный вольтметр.
- I2C(TWI) интерфейс — последовательная шина IIC. Через нее осуществляется связь с другими устройствами. На IIC можно организовать своеобразную локальную сеть из микроконтроллеров в пределах одного устройства.
- SPI — еще один последовательный протокол, похожа на IIC, но не позволяет организовывать сети. Работает только в режиме Мастер-Ведомый. Зато ОЧЕНЬ быстрая.
- Аналоговый Компаратор — еще один аналоговый интерфейс. Но, в отличии от АЦП, он не замеряет, а сравнивает два аналоговых сигнала, выдавая результат А>B или A
Источник: http://easyelectronics.ru/avr-uchebnyj-kurs-arxitektura.html
Микропроцессоры и микроконтроллеры, назначение, сфера применения и архитектура. Структура типового микроконтроллера. Память и внешние устройства микроконтроллеров
Микропроцессор характеризуется:
- тактовой частотой, определяющей максимальное время выполнения переключения элементов в ЭВМ;
- разрядностью, т.е. максимальным числом одновременно обрабатываемых двоичных разрядов.
Разрядность МП обозначается m/n/k/ и включает: m – разрядность внутренних регистров, определяет принадлежность к тому или иному классу процессоров; n – разрядность шины данных, определяет скорость передачи информации; k – разрядность шины адреса, определяет размер адресного пространства.
Например, МП i8088 характеризуется значениями m/n/k=16/8/20; 3) архитектурой. Понятие архитектуры микропроцессора включает в себя систему команд и способы адресации, возможность совмещения выполнения команд во времени, наличие дополнительных устройств в составе микропроцессора, принципы и режимы его работы.
Выделяют понятия микроархитектуры и макроархитектуры.
Микроархитектура микропроцессора – это аппаратная организация и логическая структура микропроцессора, регистры, управляющие схемы, арифметико-логические устройства, запоминающие устройства и связывающие их информационные магистрали.
Макроархитектура – это система команд, типы обрабатываемых данных, режимы адресации и принципы работы микропроцессора.
В общем случае под архитектурой ЭВМ понимается абстрактное представление машины в терминах основных функциональных модулей, языка ЭВМ, структуры данных.
Архитектура типичной небольшой вычислительной системы на основе микроЭВМ показана на рисунке. Такая микроЭВМ содержит все 5 основных блоков цифровой машины: устройство ввода информации, управляющее устройство (УУ), арифметико-логическое устройство (АЛУ) (входящие в состав микропроцессора), запоминающие устройства (ЗУ) и устройство вывода информации.
Рисунок 25.1 – Архитектура типичной небольшой вычислительной системы
Микроконтроллер — микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает в себе функции процессора и периферийных устройств, может содержать ОЗУ и ПЗУ.
По сути, это однокристальный компьютер, способный выполнять простые задачи.
Использование одной микросхемы, вместо целого набора, как в случае обычных процессоров, применяемых в персональных компьютерах, значительно снижает размеры, энергопотребление и стоимость устройств, построенных на базе микроконтроллеров.
Микроконтроллеры являются основой для построения встраиваемых систем, их можно встретить во многих современных приборах, таких, как телефоны, стиральные машины и т. п. Большая часть выпускаемых в мире процессоров — микроконтроллеры.
При проектировании микроконтроллеров приходится соблюдать баланс между размерами и стоимостью с одной стороны и гибкостью и производительностью с другой.
Для разных приложений оптимальное соотношение этих и других параметров может различаться очень сильно.
Поэтому существует огромное количество типов микроконтроллеров, отличающихся архитектурой процессорного модуля, размером и типом встроенной памяти, набором периферийных устройств, типом корпуса и т. д.
В то время, как 8-разрядные процессоры общего назначения полностью вытеснены более производительными моделями, 8-разрядные микроконтроллеры продолжают широко использоваться.
Это объясняется тем, что существует большое количество применений, в которых не требуется высокая производительность, но важна низкая стоимость.
В то же время, есть микроконтроллеры, обладающие больши?ми вычислительными возможностями, например цифровые сигнальные процессоры.
Ограничения по цене и энергопотреблению сдерживают, также, рост тактовой частоты контроллеров. Хотя производители стремятся обеспечить работу своих изделий на высоких частотах, они, в то же время, предоставляют заказчикам выбор, выпуская модификации, рассчитанные на разные частоты и напряжения питания.
Во многих моделях микроконтроллеров используется статическая память для ОЗУ и внутренних регистров. Это даёт контроллеру возможность работать на меньших частотах и, даже, не терять данные при полной остановке тактового генератора.
Часто предусмотрены различные режимы энергосбережения, в которых отключается часть периферийных устройств и вычислительный модуль.
Кроме ОЗУ, микроконтроллер может иметь встроенную энергонезависимую память для хранения программы и данных. Во многих контроллерах вообще нет шин для подключения внешней памяти. Наиболее дешёвые типы памяти допускают лишь однократную запись.
Такие устройства подходят для массового производства в тех случаях, когда программа контроллера не будет обновляться. Другие модификации контроллеров обладают возможностью многократной перезаписи энергонезависимой памяти.
В отличие от процессоров общего назначения, в микроконтроллерах часто используется гарвардская архитектура.
Неполный список периферии, которая может присутствовать в микроконтроллерах, включает в себя:
- различные интерфейсы ввода-вывода, такие как UART, I2C, SPI, CAN
- аналого-цифровые и цифро-аналоговые преобразователи
- компараторы
- широтно-импульсные модуляторы
- таймеры
Программирование микроконтроллеров, обычно, осуществляется на языке ассемблера или Си, хотя существуют компиляторы для других языков, используются, также, встроенные интерпретаторы Бэйсика и Форта.
Для отладки программ используются программные симуляторы (специальные программы для персональных компьютеров, имитирующие работу микроконтроллера), внутрисхемные эмуляторы (электронные устройства, имитирующие микроконтроллер, которые можно подключить вместо него к разрабатываемому встроенному устройству) и интерфейс JTAG.
На рисунке 25.2 изображена структурная схема типичного современного микроконтроллера.
Рисунок 25.2 – Структурная схема типичного современного микроконтроллера.
Из рисунка видно, что микроконтроллер может управлять различными устройствами и принимать от них данные при минимуме дополнительных узлов, так как большое число периферийных схем уже имеется непосредственно на кристалле микроконтроллера. Это позволяет уменьшить размеры конструкции и снизить потребление энергии от источника питания.
Типичные схемы, присутствующие в микроконтроллерах.
- Центральное процессорное устройство (ЦПУ) — сердце микроконтроллера. Оно принимает из памяти программ коды команд, декодирует их и выполняет. ЦПУ состоит из регистров, арифметико-логического устройства (АЛУ) и цепей управления.
- Память программ. Здесь хранятся коды команд, последовательность которых формирует программу для микроконтроллера.
- Оперативная память данных. Здесь хранятся переменные программ. У большинства микроконтроллеров здесь расположен также стек.
- Тактовый генератор. Этот генератор определяет скорость работы микроконтроллера.
- Цепь сброса. Эта цепь служит для правильного запуска микроконтроллера.
- Последовательный порт — очень полезный элемент микроконтроллера. Он позволяет обмениваться данными с внешними устройствами при малом количестве проводов.
- Цифровые линии ввода/вывода. По сравнению с последовательным портом с помощью этих линий возможно управлять одновременно несколькими линиями (или проверять несколько линии).
- Таймер. Используется для отсчета временных интервалов.
Источник: https://studopedya.ru/1-40716.html