40787

Основные классификационные признаки микроконтроллеров

Лекция

Коммуникация, связь, радиоэлектроника и цифровые приборы

По набору команд и способу адресации: CISC процессоры RISC процессоры и VLIW – процессоры. Классификация набору команд и способу адресации По данному функциональному признаку в современных микропроцессорах реализуются следующие варианты архитектур: CISCархитектура RISCархитектура VLIWархитектура CISC Complex Instruction Set Computer архитектура реализована во многих типах микропроцессоров выполняющих большой набор разноформатных команд с использованием многочисленных способов адресации. Они выполняют более 200 команд...

Русский

2013-10-22

157.95 KB

5 чел.

Основные классификационные признаки микроконтроллеров (МК).

  1.  По назначению: микроконтроллеры общего назначения и специализированные МК.
  2.  По набору команд и способу адресации: CISC - процессоры, RISC - процессоры и VLIW – процессоры.
  3.  По типу архитектуры: Неймановская (классическая) и Гарвардская архитектура.
  4.  По разрядности данных, обрабатываемых арифметико-логическим устройством (АЛУ). По этому признаку МК делятся на 4-, 8-, 16-, 32- и 64-разрядные.

Структурная схема рынка микроконтроллеров представлена на рис.1.

Рис.1.

1. Классификация по назначению

Специализированные МК имеют в своей структуре дополнительные периферийные схемы или функции, предназначенные специально для использования в конкретных задачах. К группе специализированных МК относят и контроллеры для управления приводами. Данная группа контроллеров определяется наличием дополнительных генераторов ШИМ сигналов, генераторов “мертвого времени”, каналов АЦП, схем прерывания, таймеров.

Отдельно выпускаются DSP-МК (DSP - Digital Signal Processor - цифровой сигнальный процессор), ориентированные на использование в системах обработки сигналов.

3. Классификация набору команд и способу адресации

По данному функциональному признаку в современных микропроцессорах реализуются следующие варианты архитектур:

  1.  CISC-архитектура
  2.  RISC-архитектура
  3.  VLIW-архитектура

CISC (Complex Instruction Set Computer) - архитектура реализована во многих типах микропроцессоров, выполняющих большой набор разноформатных команд с использованием многочисленных способов адресации. Фактически в этой архитектуре реализован перенос "центра тяжести" обработки с программного уровня системы на аппаратный.

Типичным примером CISC-процессоров являются микропроцессоры семейства Pentium. Они выполняют более 200 команд разной степени сложности, которые имеют размер от 1 до 15 байт и обеспечивают более 10 различных способов адресации. Такое большое многообразие выполняемых команд и способов адресации позволяет программисту реализовать наиболее эффективные алгоритмы решения различных задач.

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

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

Однако, начиная с некоторого момента, СISC-технология стала не ускорителем, а тормозом роста производительности систем. Дело в том, что большое разнообразие команд и различная их длина существенно усложняют аппаратуру управления внутри процессора. Большое число действий, которое должен совершить микропроцессор при выполнении команды, заставляло отводить под устройство управления большую часть кристалла микросхемы (до 70 % в процессорах х86). В результате для арифметико-логических    устройств (АЛУ), сопроцессоров и других устройств, повышающих производительность процессора, оставалось всего 30.. .40 % площади кристалла.

RISC (Reduced Instruction Set Computer) - архитектура отличается использованием ограниченного набора команд фиксированного формата.

В RISC - процессорах  "центр тяжести" перенесен на программные средства, оставлено минимально возможное число команд, имеющих простую и регулярную структуру. Другими словами, в RISC - процессорах  принята стратегия "длинная программа — короткие команды" в противовес господствующей "короткая программа — длинные команды". Аббревиатура RISC расшифровывается как Reduced Instruction Set Computer — компьютер с сокращенным набором команд, т. е. речь идет о процессорах, система команд которых существенно сокращена в сравнении с системой команд х86.

Современные RISC-процессоры обычно реализуют около 100 команд, имеющих фиксированный формат длиной 4 байта. Также значительно сокращается число используемых способов адресации. Обычно в RISC-процессорах все команды обработки данных выполняются только с регистровой или непосредственной адресацией. При этом для сокращения количества обращений к памяти RISC-процессоры имеют увеличенный объем внутреннего регистрового ЗУ – от 32 до нескольких сотен регистров, тогда как в CISC-процессорах число регистров общего назначения обычно составляет 8–16.

Четыре основных принципа, которые положены в основу процессоров группы RISC:

а) любая операция, к какому бы типу она ни принадлежала, должна выполняться за один такт;

б) операции обработки данных реализуются только в формате ”регистр—регистр". Обмен между памятью и регистрами (т. е. модификация памяти и чтение из нее необходимых данных) осуществляется только лишь с помощью специальных команд чтения/записи;

в) система команд должна содержать минимальное число наиболее часто используемых простейших команд одинаковой длины:

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

Реализация первого принципа осуществляется благодаря использованию так называемого конвейера команд. С каждым из тактовых импульсов на конвейер вступает новая команда, и несколько уже обрабатываются на разных его ступенях. Одновременно, также с каждым из тактовых импульсов, его покидает одна выполненная команда. И хотя на выполнение каждой затрачивается по-прежнему от четырех до семи-восьми, каждый из них сопровождается, как это и требовалось, выполнением одной команды. Следовательно, если для СISC - процессоров конвейер команд является необязательным (хотя и желательным) элементом, то для RISC-процессоров он обязателен. Отметим, что большинство RISC-процессоров имеют не один, а несколько (от двух до четырех) конвейеров, за что они получили название суперскалярных (в отличие от скалярных — одноконвейерных).

Следующая особенность RISC-процессоров— высокая степень дробления конвейера. Реально RISC-процессоры характеризуются семидесяти ступенчатыми конвейерами. С увеличением числа ступеней действия, выполняемые на каждой из них, все более и более упрощаются. Последнее означает, что уменьшается число необходимых для этого логических элементов и появляется возможность повысить тактовую частоту процессора. Не случайно RISC-процессоры преодолели барьер 100 МГц существенно раньше СISC-процессоров.

Третья особенность — использование большого числа регистров. Как правило, в RISC-процессорах их не менее 32 (около 140). Добавим к этому, что все RISC-процессоры содержат системы управления кэш-памятью второго уровня, позволяющие работать с ней на максимальной скорости (в СISC-изделиях взаимодействие с кэш-памятью обычно происходит на частоте, более низкой, чем частота самого процессора).

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

VLIW (Very Long Instruction Word) - архитектура появилась относительно недавно - в 1990-х годах. Ее особенностью является использование очень длинных команд (до 128 бит и более), отдельные поля которых содержат коды, обеспечивающие выполнение различных операций. Таким образом, одна команда вызывает выполнение сразу нескольких операций параллельно в различных операционных устройствах, входящих в структуру микропроцессора.

3. Классификация по типу архитектуры

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


Рис. 2.  Структура МК с фон-неймановской архитектурой.

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

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


Рис.3. Структура МК с гарвардской архитектурой.

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

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

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

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

В настоящее время наиболее яркими представителями микроконтроллеров СISC и RISC, имеющих соответственно фон-неймановскую и гарвардскую архитектуры являются микроконтроллеры i8051 и AVR – микроконтроллеры фирмы Atmel.

Архитектура МК

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

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

Базовый функциональный блок включает:

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

Базовый функциональный блок принято называть процессорным ядром МК. Процессорное ядро обозначают именем семейства МК, основой которого оно является. Например, ядро НС08 - процессорное ядро семейства Motorola MC68HC08, ядро MCS-51 - ядро семейства МК Intel 8хС51, ядро PIC16 - процессорное ядро Microchip PIC16.

Рис. 4 - Модульная структура МК

СТРУКТУРНАЯ СХЕМА МК51

Основу структурной схемы МК51 (рис. 5) образует внутренняя двунаправленная 8-битная шина, которая связывает между собой все основные узлы и устройства: резидентную память, АЛУ (арифметическо-логическое устройство), блок регистров специальных функций, устройство управления и порты ввода/вывода. Рассмотрим основные элементы структуры и особенности организации вычислительного процесса в МК51.

 

 Рис.5  Арифметическо-логическое устройство 

8-битное АЛУ может выполнять арифметические операции сложения, вычитания, умножения и деления; логические операции И, ИЛИ, исключающее ИЛИ, а также операции циклического сдвига, сброса, инвертирования и т.п. В АЛУ имеются программно недоступные регистры T1 и T2, предназначенные для временного хранения операндов, схема десятичной коррекции и схема формирования признаков.

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

Простейшие операции автоматически образуют "тандемы" для выполнения в АЛУ таких операций, как, например, инкрементирование 16-битных регистровых пар. В АЛУ реализуется механизм каскадного выполнения простейших операций для реализации сложных команд. Так, например, при выполнении одной из команд условной передачи правления по результату сравнения в АЛУ трижды инкрементируется СК, дважды производится чтение из резидентной памяти данных, выполняется арифметическое сравнение двух переменных, формируется 16-битный адрес перехода и принимается решение о том, делать или не делать переход по программе. Все перечисленные операции выполняются в АЛУ всего лишь за 2 мкс.

Важной особенностью АЛУ является его способность оперировать не только байтами, но и битами. Отдельные программно-доступные биты могут быть установлены, сброшены, инвертированы, переданы, проверены и использованы в логических операциях. Эта способность АЛУ, оперировать битами, столь важна, что во многих описаниях МК51 говорится о наличии в нем "булевского процессора". Для управления объектами часто применяются алгоритмы, содержащие операции над входными и выходными булевскими переменными (истина/ложь), реализация которых средствами обычных микропроцессоров сопряжена с определенными трудностями.

Таким образом, АЛУ может оперировать четырьмя типами информационных объектов: булевскими (1 бит), цифровыми (4 бита), байтными (8 бит) и адресными (16 бит). В АЛУ выполняется 51 различная операция пересылки или преобразования этих данных. Так как используется 11 режимов адресации (7 для данных и 4 для адресов), то путем комбинирования "операция/ режим адресации" базовое число команд 111 расширяется до 255 из 256 возможных при однобайтном коде операции.

Резидентная память

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

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

Память данных (РПД) предназначена для хранения переменных в процессе выполнения прикладной программы, адресуется одним байтом и имеет емкость 128 байт. Кроме того, к адресному пространству резидентной памяти данных примыкают адреса регистров специальных функций (РСФ), которые перечислены в табл. 1.

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

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

Таблица 1. Блок регистров специальных функций

Символ

Наименование

Адрес

* ACC

Аккумулятор

0E0H

* B

Регистр-расширитель аккумулятора

0F0H

* PSW

Слово состояния программы

0D0H

SP

Регистр-указатель стека

81H

DPTR

Регистр-указатель данных (DPH)

(DPL)

83H

82H

* P0

Порт 0

80H

* P1

Порт 1

90H

* P2

Порт 2

0A0H

* P3

Порт 3

0B0H

* IP

Регистр приоритетов

0B8H

* IE

Регистр маски прерываний

0A8H

TMOD

Регистр режима таймера/счетчика

89H

* TCON

Регистр управления/статус таймера

88H

TH0

Таймер 0 (старший байт)

8CH

TL0

Таймер 0 (младший байт)

8AH

TH1

Таймер 1 (старший байт)

8DH

TL1

Таймер 1 (младший байт)

8BH

* SCON

Регистр управления приемопередатчиком

98H

SBUF

Буфер приемопередатчика

99H

PCON

Регистр управления мощностью

87H

Примечание. Регистры, имена которых отмечены знаком (*), допускают адресацию отдельных бит.

 При выполнении многих команд в АЛУ формируется ряд признаков операции (флагов), которые фиксируются в регистре PSW. В табл.2 приводится перечень флагов PSW, даются их символические имена и описываются условия их формирования.

 Таблица 2. Формат слова состояния программы (PSW)

Символ

Позиция

Имя и назначение

C

PSW.7

Флаг переноса. Устанавливается и сбрасывается аппаратурными средствами или программой при
выполнении арифметических и логических операций

AC

PSW.6

Флаг вспомогательного переноса. Устанавливается и сбрасывается только аппаратурными средствами при выполнении команд сложения и вычитания и сигнализирует о переносе или заем в бите 3

F0

PSW.5

Флаг 0. Может быть установлен, сброшен или проверен программой как флаг, специфицируемый пользователем

RS1

RS0

PSW.4

PSW.3

Выбор банка регистров. Устанавливается и сбрасывается программой для выбора рабочего банка регистров (см. примечание)

OV

PSW.2

Флаг переполнения. Устанавливается и сбрасывается аппаратно при выполнении арифметических операций

_

PSW.1

Не используется

P

PSW.0

Флаг паритета. Устанавливается и сбрасывается аппаратуры в каждом цикле команды и фиксирует нечетное/четное число единичных бит в аккумуляторе, т.е. выполняет контроль по четности

Примечание.

RS1

RS0

Банк

Границы адресов

0

0

0

00H-07H

0

1

1

08H-0FH

1

0

2

10H-17H

1

1

3

18H-1FH

 Наиболее "активным" флагом PSW является флаг переноса, которые принимает участие и модифицируется в процессе выполнения множеств операций, включая сложение, вычитание и сдвиги. Кроме того, флаг переноса (C) выполняет функции "булевого аккумулятора" в командах, манипулирующих с битами. Флаг переполнения (OV) фиксирует арифметическое переполнение при операциях над целыми числами со знаком и делает возможным использование арифметики в дополнительных кодах. АЛУ не управляет флагами селекции банка регистров (RS0, RS1), и их значение полностью определяется прикладной программой и используется для выбора одного из четырех регистровых банков.

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

Регистры-указатели. 8-битный указатель стека (РУС) может адресовать любую область резидентной памяти данных. Его содержимое инкрементируется прежде, чем данные будут запомнены в стеке в ходе выполнения команд PUSH и CALL. Содержимое РУС декрементируется после выполнения команд POP и RET. Подобный способ адресации элементов стека называют прединкрементным/постдекрементным. В процессе инициализации МК51 после сигнала СБР в РУС автоматически загружается код 07H. Это значит, что если прикладная программа не переопределяет стек, то первый элемент данных в стеке будет располагаться в ячейке резидентной памяти данных с адресом 08Н.

Двухбайтный регистр-указатель данных (РУД) обычно используется для фиксации 16-битного адреса в операциях с обращением к внешней памяти. Командами МК51 регистр-указатель данных может быть использован или как 16-битный регистр, или как два независимых 8-битных регистра (DPH и DPL).

Таймер/счетчик. В составе средств МК51 имеются регистровые пары с символическими именами ТНО, TLO и THI, TLI, на основе которых функционируют два независимых программно-управляемых 16-битных таймера/счетчика событий.

Буфер последовательного порта. Регистр с символическим именем SBUF представляет собой два независимых регистра - буфер приемника и буфер передатчика. Загрузка байта в SBUF немедленно вызывает начало процесса передачи через последовательный порт. Когда байт считывается из SBUF, это значит, что его источником является приемник последовательного порта.

Регистры специальных функций. Регистры с символическими именами IP, IE, TMOD, TCON, SCON и PCON используются для фиксации и программного изменения управляющих бит и бит состояния схемы прерывания, таймера/счетчика, приемопередатчика последовательного порта и для управления мощностью электропитания МК51. Их организация будет описана ниже при рассмотрении особенностей работы МК51 в различных режимах.

 Устройство управления и синхронизации

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

Рис. 6 Последовательности выборки и выполнения команд в МК51:

а - команда 1 байт/1 цикл, например INC A; б - команда - 2 байта/1 цикл, например ADD A,#d; в - команда 1 байт/2 цикла, например INC DPTR; г - команда 1 байт/2 цикла, например MOVX.

 Устройство управления МК51 на основе сигналов синхронизации формирует машинный цикл фиксированной длительности, равной 12 периодам резонатора или шести состояниям первичного управляющего автомата (S1—S6). Каждое состояние управляющего автомата содержит две фазы (P1, P2) сигналов резонатора. В фазе Р1, как правило, выполняется операция в АЛУ, а в фазе P2 осуществляется межрегистровая передача. Весь машинный цикл состоит из 12 фаз, начиная с фазы S1P1 и кончая фазой S6P2, как показано на рис. 3. Эта временная диаграмма иллюстрирует работу устройства управления МК51 при выборке и исполнении команд различной степени сложности. Все заштрихованные сигналы являются внутренними и недоступны пользователю МК51 для контроля. Внешними, наблюдаемыми сигналами являются только сигналы резонатора и строба адреса внешней памяти. Как видно из временной диаграммы, сигнал САВП формируется дважды за один машинный цикл (S1P2-S2P1 и S4P2-S5P1) и используется для управления процессом обращения к внешней памяти.

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

Порты ввода/вывода информации

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

Выходные драйверы портов 0 и 2, а также входной буфер порта 0 используются при обращении к внешней памяти (ВП). При этом через 1 порт 0 в режиме временного мультиплексирования сначала выводится младший байт адреса ВП, а затем выдается или принимается байт данных. Через порт 2 выводится старший байт адреса в тех случаях, когда 1 разрядность адреса равна 16 бит.

Все выводы порта 3 могут быть использованы для реализации альтернативных функций, перечисленных в табл.8.1. Альтернативные функции могут быть задействованы путем записи 1 в соответствующие биты регистра-защелки (Р3.0-Р3.7) порта 3.

Порт 0 является двунаправленным, а порты 1, 2 и З - квазидвунаправленными. Каждая линия портов может быть использована независимо для ввода или вывода информации. Для того чтобы некоторая линия порта использовалась для ввода, в D-триггер регистра-защелки порта должна быть записана 1, которая закрывает МОП-транзистор выходной цепи.

По сигналу СБР в регистры-защелки всех портов автоматически записываются единицы, настраивающие их тем самым на режим ввода.

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

 На рис.6 приведены временные диаграммы, иллюстрирующие процесс выполнения операций ввода/вывода информации через порты МК51.

Рис. 6

СТРУКТУРНАЯ СХЕМА МК AVR

На рис. 7 показаны все основные компоненты  AVR.

Рис.7 Обобщенная структурная схема микроконтроллеров AVR.

В состав МК входят:

  1.  генератор тактовых импульсов (ГТИ) - GCK;
  2.  центральное процессорное устройство –GPU;
  3.  ПЗУ для хранения программы, выполненное по технологии Flash – FlashRom;
  4.  ОЗУ  статического типа для хранения данных (SRAM);
  5.  энергонезависимое ПЗУ  для хранения данных EEPROM;
  6.  набор периферийных устройств для ввода-вывода данных, управляющих сигналов и выполнения специализированных функций.

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

Микроконтроллеры семейства AVR являются устройствами синхронного типа. Действия, выполняемые в МК, привязаны к импульсам тактового генератора. МК имеют полностью статическую структуру и могут работать при тактовой частоте от 0 Гц. Максимальное значение тактовой частоты определяется типом МК.

В качестве генератора тактовых импульсов используются:

  1.  Внутренний генератор с внешним кварцевым или керамическим резонатором (XTAL);
  2.  Внутренний RC-генератор (IRC);
  3.  Внутренний генератор с внешней RC-цепочкой (ERC);
  4.  Внешний генератор (EXT).

Центральное процессорное устройство

Процессор формирует адрес очередной команды, выбирает команду из памяти и организует ее выполнение. Код команды имеет формат  «слово» (16 бит) или «двойное слово».

В состав процессора входят:

  1.  счетчик команд (PC);
  2.  арифметико-логическое устройство (АЛУ);
  3.  блок регистров общего назначения  (РОН) – GPR – General Purpose Registers;
  4.  регистр состояния МК – SREG;
  5.  регистр-указатель  стека  SP или SPL  и  SPH.

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

В АЛУ выполняются арифметические и логические операции. Операнды поступают из РОН. При выполнении однооперандных операций, результат записывается в регистр, из которого поступил операнд. При выполнении двухоперандных команд результат записывается в регистр, из которого поступил первый операнд.

Блок РОН содержит 32 восьмиразрядных регистра, которым присвоены имена  R0, R1 ….. R31. Регистры с именами R26 ….. R31 могут образовывать пары, используемые для хранения слов, при этом регистр с четным номером хранит младший байт, а регистр с нечетным номером хранит старший байт.        

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

Регистр состояния МК SREG

Регистр состояния МК SREG ($3F) содержит восемь разрядов (SREG.7, SREG.6 … SREG.0) – называемых битами условий или флагами МК. Регистр доступен для чтения и записи и после подачи сигнала сброса инициализируется нулями. Формат SREG показан на рис. 8.

Разряд

7

6

5

4

3

2

1

0

$3F

I

T

H

S

V

N

Z

C

SREG

Рис. 8

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

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

Значения отдельных битов условий:

I – общее разрешение прерываний (Global Interrupt), если прерывания разрешены, то он устанавливается в 1;

Т – флаг копирования (Transfer or Copy)- предназначен для свободного применения программистом (например, в качестве буфера);

Н – флаг половинного переноса (Half Carry) -  указывает на переполнение в младшей тетраде байта данных, устанавливается когда происходит перенос  из младшей тетрады в старшую  в противном случае – сбрасывается;

S – флаг знака (Sign) -  S=NV – связь флагов N и Vс помощью операции «Исключающее ИЛИ» - знак результата арифметической операции;

V – флаг переполнения при вычислениях в дополнительных кодах (Two’s complement  Overflow);

N -  флаг отрицательного результата (Negative) – указывает на отрицательный результат после выполнения арифметической или логической операции;

Z – нулевой флаг (Zero) – всегда устанавливается, если результат арифметической или логической операции равен нулю, сбрасывается если результат операции не равен нулю;

С – флаг переноса ( Carry) -  указывает на переполнение (перенос) после выполнения арифметической или логической операции;

Память программ (flash-память)

Объем встроенной Flash- памяти программ в  AVR- контроллерах составляет от 1 кбайт (АТtiny11) до 256 кбайт ( АТmega2560).  Первое число в наименовании модели соответствует  величине этой памяти из ряда: 1, 2, 4, 8, 16, 32, 64, 128, 256 кбайт. Память программ имеет страничную организацию, размер страницы в зависимости от модели составляет от 64 до 256 байт. Страница может программироваться только целиком. Число циклов перепрограммирования достигает 10 тыс.

С точки зрения программиста память программ состоит из слов по два байта каждое. Такая организация обусловлена тем, что любая команда в AVR  имеет длину ровно два байта. Исключение составляют команды  JMP, CALL  и некоторые другие, которые оперируют с 16-разрядными  и более длинными адресами, длина этих команд равна 4 байтам. Во всех остальных случаях счетчик команд сдвигается при выполнении очередной команды на два байта (одно слово), поэтому необходимую емкость памяти легко подсчитать, зная число используемых команд. Абсолютные адреса в памяти программ (например, в таблицах векторов прерываний) также отсчитываются в словах. Последний адрес существующего объема памяти программ для конкретной модели обозначается  FLASHEND.

По умолчанию все МК AVR всегда начинают выполнение программы с адреса $0000. Если в программе нет прерываний, то с этого адреса может начинаться пользовательская программа. В противном случае по этому адресу располагают т. Называемую таблицу векторов прерываний. Укажем, что первым в этой таблице (по адресу $0000) размещается вектор сброса  RESET, который должен указывать на процедуру, выполняющуюся при сбросе МК. (в том числе и при включении питания).

Flash- память программ МК AVR может программироваться как в параллельном режиме, так и с помощью специального встроенного последовательного интерфейса  SPI. В результате программа пользователя может быть записана в память и снова стерта непосредственно  в составе схемы, в которой будет работать МК. Схема программирования уже интегрирована в кристалл. Вспомогательное напряжение +12В необходимо только при программировании в параллельном  режиме.

Энергонезависимая память (EEPROM)

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

Управляющая программа МК может в любой момент записать данные в EEPROM или прочитать  их оттуда. Память EEPROM допускает до 1000000 циклов записи/чтения. Количество циклов чтения из памяти EEPROM не ограничено. Объем памяти EEPROM сравнительно небольшой, для разных МК он составляет от 64 байт до 2 кбайт.

Чтение из EEPROM осуществляется в течение одного машинного цикла, а вот запись в EEPROM протекает значительно медленнее, и к тому же с точно не определенной скоростью (от 2 до 4 мс и более).


 

А также другие работы, которые могут Вас заинтересовать

3293. Дом, в котором мы живем, Мероприятие 71 KB
  Дом, в котором мы живем Цель: формирование ответственности, гуманизма учащихся, проявляющихся в отношениях друг к другу, к учебе, труду, умения проявлять свои лучшие личные качества, подведение итогов. Задача: формирование гордости за достижения каж...
3294. Путешествие в Великобританию 52.5 KB
  Тема: Путешествие в Великобританию. Форма: урок - игра. Цели: Обучающие: А) обобщение изученного материала по теме «Великобритания». Б) совершенствование навыков устной речи В) актуализация страноведческого материала. 2. Развивающи...
3295. Внеклассное мероприятие на тему «Никто не забыт, ничто не забыто» 53 KB
  Внеклассное мероприятие на тему «Никто не забыт, ничто не забыто» Цель: воспитание патриотического сознания Задачи: 1) познакомить участников с историей нашей страны в годы ВОВ, показать величие подвига советского народа, 2) воспитать уважение к ист...
3296. Викторина. Олимпийские игры. 56 KB
  Викторина. План мероприятия. Вступительное слово ведущего. Домашнее задание 9 «А» класса. Танец сиртаки и легенда.  Викторина. Домашнее задание 10 «Б» класса. Подведение итогов. Сценарий. Ведущий: Добрый день уважаемые з...
3297. Сто к одному. Конспект урока 48 KB
  Тема. Сто к одному Цели, систематизация знаний учащихся об аппаратном обеспечении ПК, базовом комплекте ПК, редакторе текстов, табличном процессоре;  развитие у школьников творческого мышления, памяти (лучше всего запоминается то, что с...
3298. Город Лицей на 59-м градусе северной широты 43.33 KB
  Город Лицей на 59-м градусе северной широты» (лицейский годы Пушкина). ХОД МЕРОПРИЯТИЯ Учитель: Сегодня у нас необычная встреча. Мы приглашаем всех отправиться совсем недалеко – всего на два столетия назад, в первые десятилетия 19 века. Мы поз...
3299. Внеклассное мероприятие Знай и люби свой край 34.5 KB
  Внеклассное мероприятие Знай и люби свой край Конкурс 1. Лекарственные растения. 1.Перечислите правила сбора лекарственных растений (нельзя заготавливать вблизи дорог и в черте города; собирать только в сухую ясную погоду; нельзя собирать больные ...
3300. Внеклассное мероприятие. Семья, как много в этом слове 37 KB
  Семья, как много в этом слове Цели внеклассного мероприятия: сформировать уважение к членам семьи, сформировать у детей понимание сущности основных социальных ролей: дочери, сына, мужа, жены. Задачи внеклассного мероприятия: сформировать представлен...
3301. Внеклассное мероприятие на тему: 30 KB
  Формировать толерантное и уважительное отношение к одноклассникам, людям другой национальности Задачи: Ввести и закрепить определение термина “толерантность”. Учить находить ком...