Микроконтроллеры | MegaDOCs

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

19

ТЕМА 5 Микроконтроллеры

ЛЕКЦИЯ 8

Архитектура однокристальных микроконтроллеров

Вопросы лекции:

  1.  Классификация и особенности архитектуры микроконтроллеров.
  2.  Структура микроконтроллеров.
  3.  Популярные семейства 8-разрядныхмикроконтроллеров.

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

Основной особенностью современного этапа развития МПС является завершение перехода от систем, выполненных на основе нескольких больших ИС, к однокристальным МК.

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

Все МК можно условно разделить на три основных класса:

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-разрядных МК используют гарвардскую архитектуру. Однако гарвардская архитектура является недостаточно гибкой для реализации некоторых программных процедур. Поэтому сравнение МК, выполненных по разным архитектурам, следует проводить применительно к конкретному приложению.

  1.  Структура микроконтроллеров

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

Рис. 4.1. Модульная организация МК.

Процессорное ядро включает в себя:

центральный процессор;

внутреннюю контроллерную магистраль (ВКМ) в составе шин адреса, данных и управления;

схему синхронизации МК;

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

Изменяемый функциональный блок включает в себя модули памяти различного типа и объема, порты ввода/вывода, модули тактовых генераторов (Г), таймеры. В относительно простых МК модуль обработки прерываний входит в состав процессорного ядра. В более сложных МК он представляет собой отдельный модуль с развитыми возможностями. В состав изменяемого функционального блока могут входить и такие дополнительные модули как компараторы напряжения, аналого-цифровые преобразователи (АЦП) и другие. Каждый модуль проектируется для работы в составе МК с учетом протокола ВКМ. Данный подход позволяет создавать разнообразные по структуре МК в пределах одного семейства.

  1.  Популярные семейства 8-разрядныхмикроконтроллеров

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

  1.  МК с ядром MCS-51.

Начало мощному клану с ядром MCS-51 положила фирма «Intel», выпустив в 1980 г. МК 8051АН. Его аналог получил в России распространение под именем 1816ВЕ51. Для своего времени МК 8051АН был очень сложным изделием - на кристалле размещалось 128 тыс. транзисторов. Этот микроконтроллер содержал процессорное ядро MCS-51, резидентные ПЗУ объемом 4 Кбайта, ОЗУ в 128 байт, 4 порта ввода/вывода, 2 таймера и асинхронный порт. Быстродействие центрального процессора MCS-51 в МК 8051 АН по нынешним меркам было невелико. Частота внутренней шины составляла 1 МГц. Однако само ядро MCS-51 оказалось настолько удачным, что на два десятилетия стало стандартом «де-факто» в области 8-разрядных МК.

Фирма «Intel» непрерывно совершенствовала МК с архитектурой MCS-51:

частота внутренней шины в последних моделях возросла до 3 МГц;

появились модели с объемом памяти программ 8, 16 и 32 Кбайта;

в составе МК появились новые периферийные модули (АЦП, программируемый счетный массив, сторожевой таймер).

Одновременно ряд других фирм разработали МК, программно совместимые с MCS-51, обладающие современными типами памяти программ и данных (Flash и EEPROM), имеющие расширенный набор периферийных модулей, работающие в расширенном диапазоне напряжения питания. Фирма «Intel» постепенно свернула производство 8-разрядных МК. В результате основными производителями в мире 51-го семейства оказались фирмы «Philips», «Infineon», «Atmel», «Dallas Semiconductor», «Temic». В 1999 г. фирма «Analog Devices» представила совершенно новый МК Adu812 на основе 51-го ядра. Отличия в технических характеристиках встроенных модулей ЦАП и АЦП этого изделия столь велики, что семейство AduSxx было названо семейством интеллектуальных преобразователей или микроконверторами.

  1.  МК семейства НС05 фирмы «Motorola».

Одновременно с первым МК семейства MCS-51 появился первый МК популярного до настоящего времени семейства НС05 фирмы «Motorola». В рамках этого семейства фирма «Motorola» провозгласила и успешно реализует стратегию «заказных» МК. Многие модели этого семейства своим рождением обязаны крупным потребителям, которые заказывали конфигурацию МК под конкретную продукцию. Сейчас семейство НС05 насчитывает около 180 различных МК, начиная с простейшего 68HC05KJ1 в корпусе DIP 16 и заканчивая 128-выводным бескорпусным 68HC05L10 со встроенным контроллером управления 960 сегментами ЖКИ. На протяжении всего своего еще не оконченного периода жизни семейство НС05 является сильным и успешным оппонентом семейству MCS-51. Выполненное на основе принстонской архитектуры в противовес MCS-51 с гарвардской архитектурой, это семейство демонстрирует, во-первых, многообразие возможных технических решений даже для очень несложных задач управления, во-вторых, успех стратегии полного удовлетворения технических требований, пользователя без избыточности в архитектуре и производительности. Долгое пребывание семейства НС05 на столь динамичном рынке МК определяется отнюдь не сверхбыстродействием (частота внутренней шины для большинства моделей равна 2 МГц) или уникальным набором команд. Причина успеха кроется в очень точной ориентации на различные сектора рынка массового потребления. Широчайшее разнообразие периферийных модулей при неизменном, очень простом ядре НС05 позволяет разработчику для каждой задачи найти МК практически без избыточных ресурсов архитектуры, что обусловливает низкую стоимость изделия.

В дополнение к дешевым «заказным» МК семейства НС05 фирма «Motorola» еще в 1980-х гг. предложила семейство универсальных и более производительных МК семейства НС11. Это семейство насчитывает около 40 моделей. Процессорное ядро семейства НС11 отличается от НС05 возможностью выполнения операций над 16-разрядными операндами, наличием дополнительных методов адресации, повышенной частотой внутренней шины (до 4 МГц). МК семейства НС11 выгодно отличает наличие трех типов памяти на кристалле: однократно программируемого ПЗУ программ, статического ОЗУ данных и электрически программируемого и электрически стираемого ПЗУ данных.

  1.  МК семейства НС08

В конце 1990-х годов фирма «Motorola» представила новое 8-разрядное семейство НС08, которое должно постепенно заменить МК семейства НС05 и стать новым «промышленным стандартом» 8-разрядных МК фирмы. Отличительные особенности и направления развития семейства НС08 перечислены ниже:

• Высокопроизводительное 8-разрядное АЛУ. Увеличение производительности достигается повышением частоты обмена внутренней шины до 8,0 МГц, совмещением цикла исполнения и цикла выборки следующей команды, введением специальных команд просмотра таблиц и организации циклов, расширением числа способов адресации операндов. Указанные меры позволили повысить производительность центрального процессора НС08 в 6 раз по сравнению с процессором семейства НС05.

Программная совместимость «снизу вверх» как на уровне исходного текста, так и на уровне объектных кодов с процессорным ядром семейства НС05.

Переход к FLASH-технологии для ПЗУ программ пользователя. Для большинства типов МК проектируется создание двух моделей с возможностью замены «корпус в корпус». Эти МК полностью идентичны по функциональному составу и различаются только технологией занесения информации в ПЗУ программ (maskROM или FLASH).

Библиотека периферийных модулей имеет расширенный набор контроллеров последовательного обмена. Кроме стандартных для МК фирмы «Motorola» портов асинхронного (SCI) и синхронного (SPI) обмена, разработаны контроллеры для работы в промышленных сетях с протоколом CAN и для перспективной шины вычислительной техники USB.

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

МК с памятью программ типа FLASH позволяют реализовать режим программирования в системе, при котором прикладная программа заносится в память МК, который стационарно расположен на плате изделия. Коды программы передаются по последовательному интерфейсу от персонального компьютера.

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

  1.  МК фирмы «Microchip»

В конце 1980-х годов фирма «Microchip» выпустила МК PIC16C5X, которые основали ныне широко распространенное семейство PIC16. Благодаря высокой производительности, малому потреблению и низкой стоимости это семейство с RISC-архитектурой составило серьезную конкуренцию производимым в то время 8-разрядным МК с CISC-архитектурой. В основу концепции PIC была положена RISC-архитектура с системой простых однословных команд. Система команд базового семейства РЮ16С5х содержит только 33 команды. Все команды, кроме команд перехода, выполняются за один машинный цикл с перекрытием по времени выборок команд из памяти и их исполнения. Производительность Р1С16С5х при частоте тактирования в 20 МГц составляет 5 MIPS. В настоящее время фирма «Microchip» выпускает пять семейств МК с RISC-архитектурой:

  1.  Р1С15С5х включает недорогие контроллеры с минимальным набором периферии;
  2.  PIC12Сххх включает МК в миниатюрном 8-выводном корпусе со встроенным тактовым генератором; однако «миниатюрность» не мешает некоторым моделям этого семейства иметь встроенный модуль 8-разрядного АЦП;
  3.  Р1С1бх/7х/8х/9х объединяет МК с развитой периферией; в число периферийных модулей входят таймеры-счетчики с опциями захвата/сравнения, широтно-импульсные модуляторы, аналоговые компараторы, АЦП, контроллеры различных последовательных интерфейсов;
  4.  Р1С17С4х/5хх включает высокопроизводительные МК с расширенной системой команд и обширной периферией; МК этого семейства имеют встроенный аппаратный умножитель 8x8, выполняющий операцию умножения за один машинный цикл;

5} Р1С18Сххх - новое семейство с оптимизированным под использование Си-компилятора RISC-ядром и частотой внутренней шины до 10 МГц.

  1.  МК семейства AVR

В1997 г. фирма «Atmel» представила первые МК семейства AVR. Семейство AVR AT90S объединяет мощный гарвардский RISC-процессор с раздельным доступом к памяти программ и данных, 32 регистра общего назначения и развитую систему команд. Последние версии семейства AVR имеют в составе АЛУ аппаратный умножитель. Базовый набор команд AVR содержит 120 инструкций. Большинство команд выполняется за один машинный цикл, производительность ряда моделей составляет 20 MIPS. Периферия AVR MK включает параллельные порты, таймеры-счетчики, различные последовательные интерфейсы, АЦП, аналоговые компараторы. МК AVR подразделяются на три серии:

  1.  tiny AVR - МК в 8-выводном корпусе низкой стоимости;
  2.  classic AVR - основная линия МК с производительностью до 16 MIPS, Flash память программ объемом до 8 Кбайт и статическим ОЗУ данных 128...512 байт;
  3.  mega AVR - МК для сложных приложений, требующих большого объема памяти (Flash ПЗУ до 128 Кбайт), ОЗУ до 4 Кбайт, производительностью до 6 MIPS.

Приведенная краткая аннотация семейств 8-разрядных МК является далеко не полной, 8-разрядные МК выпускают также фирмы «ST-Microelectronics» (семейства ST6, ST7 и ST9), «National Semiconductor» (семейство СОР8), «Zilog», NEC, «Mitsubishi», «Hitachi», «Toshiba», «Scenix» и др. Продукция этих фирм постепенно появляется на российском рынке, но пока не получила широкого распространения.

  1.   Процессорное ядро микроконтроллера
    1.   Структура процессорного ядра МК

Основными характеристиками, определяющими производительность процессорного ядра МК, являются:

набор регистров для хранения промежуточных данных;

система команд процессора;

способы адресации операндов в пространстве памяти;

организация процессов выборки и исполнения команды.

  1.  Система команд процессора МК

Так же, как и в любой микропроцессорной системе, набор команд процессора МК включает в себя четыре основные группы команд:

команды пересылки данных;

арифметические команды;

логические команды;

команды переходов.

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

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

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

  1.  Схема синхронизации МК

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

4.3. Память программ и данных МК

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

  1.  Память программ

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

ПЗУ масочного типа — mask-ROM. Содержимое ячеек ПЗУ этого типа заносится при ее изготовлении с помощью масок и не может быть впоследствии заменено или допрограммированно. Поэтому МК с таким типом памяти программ следует использовать только после достаточно длительной опытной эксплуатации. Основным недостатком данной памяти является необходимость значительных затрат на создание нового комплекта фотошаблонов и их внедрение в производство. Обычно такой процесс занимает 2-3 месяца и является экономически выгодным только при выпуске десятков тысяч приборов. ПЗУ масочного типа обеспечивают высокую надежность хранения информации по причине программирования в заводских условиях с последующим контролем результата.

ПЗУ, программируемые пользователем, с ультрафиолетовым стиранием — EPROM (Erasable Programmable ROM). ПЗУ данного типа программируются электрическими сигналами и стираются с помощью ультрафиолетового облучения. Ячейка памяти EPROM представляет собой МОП-транзистор с «плавающим» затвором, заряд на который переносится с управляющего затвора при подаче соответствующих электрических сигналов. Для стирания содержимого ячейки она облучается ультрафиолетовым светом, который сообщает заряду на плавающем затворе энергию, достаточную для преодоления потенциального барьера и стекания на подложку. Этот процесс может занимать от нескольких секунд до нескольких минут. МК с EPROM допускают многократное программирование и выпускаются в керамическом корпусе с кварцевым окошком для доступа ультрафиолетового света. Такой корпус стоит довольно дорого, что значительно увеличивает стоимость МК. Для уменьшения стоимости МК с EPROM его заключают в корпус без окошка (версия EPROM с однократным программированием).

ПЗУ, однократно программируемые пользователем, — OTPROM (One-Time Programmable ROM). Представляют собой версию EPROM, выполненную в корпусе без окошка для уменьшения стоимости МК на его основе. Сокращение стоимости при использовании таких корпусов настолько значительно, что в последнее время эти версии EPROM часто используют вместо масочных ПЗУ.

ПЗУ, программируемые пользователем, с электрическим стиранием - EEPROM (Electrically Erasable Programmable ROM). ПЗУ данного типа можно считать новым поколением EPROM, п которых стирание ячеек памяти производится также электрическими сигналами за счет использования туннельных механизмов. Применение EEPROM позволяет стирать и программировать МК, не снимая его с платы. Таким способом можно производить отладку и модернизацию программного обеспечения. Это дает огромный выигрыш на начальных стадиях разработки микроконтроллерных систем или в процессе их изучения, когда много времени уходит на поиск причин неработоспособности системы и выполнение циклов стирания-программирования памяти программ. По цене EEPROM занимают среднее положение между OTPROM и EPROM. Технология программирования памяти EEPROM допускает побайтовое стирание и программирование ячеек. Несмотря на очевидные преимущества EEPROM, только в редких моделях МК такая память используется для хранения программ. Связано это с тем, что, во-первых, EEPROM имеют ограниченный объем памяти. Во-вторых, почти одновременно с EEPROM появились Flash-ПЗУ, которые при сходных потребительских характеристиках имеют более низкую стоимость;

ПЗУ с электрическим стиранием типа Rash — Flash-ROM. Функционально Flash-память мало отличается от EEPROM. Основное различие состоит в способе стирания записанной информации. В памяти EEPROM стирание производится отдельно для каждой ячейки, а во Flash-памяти стирать можно только целыми блоками. Если необходимо изменить содержимое одной ячейки Flash-памяти, потребуется перепрограммировать весь блок. Упрощение декодирующих схем по сравнению с EEPROM привело к тому, что МК с Flash-памятью становятся конкурентоспособными по отношению не только к МК с однократно программируемыми ПЗУ, но и с масочными ПЗУ также.

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

Память данных М К выполняется, как правило, на основе статического ОЗУ. Термин «статическое» означает, что содержимое ячеек ОЗУ сохраняется при снижении тактовой частоты МК до сколь угодно малых значений (с целью снижения энергопотребления). Большинство МК имеют такой параметр, как «напряжение хранения информации» - ustandby. При снижении напряжения питания ниже минимально допустимого уровня UDDM|N, но выше уровня USTANIJBy  работа программы МК выполняться не будет, но информация в ОЗУ сохраняется. При восстановлении напряжения питания можно будет сбросить МК и продолжить выполнение программы без потери данных. Уровень напряжения хранения составляет обычно около 1 В, что позволяет в случае необходимости перевести МК на питание от автономного источника (батареи) и сохранить в этом режиме данные ОЗУ.

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

  1.  Регистры МК

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

В МК с RISC-процессором все регистры (часто и аккумулятор) располагаются по явно задаваемым адресам. Это обеспечивает более высокую гибкость при работе процессора.

Одним из важных вопросов является размещение регистров в адресном пространстве МК. В некоторых МК все регистры и память данных располагаются в одном адресном пространстве. Это означает, что память данных совмещена с регистрами. Такой подход называется «отображением ресурсов МК на память».

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

  1.  Стек МК

В микроконтроллерах ОЗУ данных используется также для организации вызова подпрограмм и обработки прерываний. При этих операциях содержимое программного счетчика и основных регистров (аккумулятор, регистр состояния и другие) сохраняется и затем восстанавливается при возврате к основной программе.

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

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

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

  1.  Внешняя память

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

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

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