Контроллеры семейства МК51

Контроллеры семейства МК51

Однокристальные контроллеры семейства МК51

Однокристальные микроконтроллеры - отдельный класс микросистем. Полный

набор их средств расположен на одном кристалле. Сюда кроме центрального

процессора входят память, подсистема ввода-вывода, средства поддержки

режима реального времени (РВ). Интеграция всех составных частей микро-ЭВМ

на одном кристалле внесла ряд ограничений на принципы ее организации,

потребовала новых решений в развитии ее архитектуры, не свойственных

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

микроконтроллеров (МК) с присущими только ему принципами построения

архитектуры и структурной схемы.

Структурная организация, набор команд и аппаратурно-программные

средства ввода/вывода информации микроконтроллеров лучше всего

приспособлены для решения задач управления и регулирования в приборах,

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

Микроконтроллеры не являются машинами классического "фон-неймановского"

типа, так как физическая и логическая разделенность памяти программ и

памяти данных исключает возможность модификации и/или замены (перегрузки)

прикладных программ микроконтроллеров во время работы, что сильно

затрудняет их использование в качестве универсальных средств обработки

данных.

МК51 имеет в своем составе: процессор, в состав которого входят 1-

байтное АЛУ и схема аппаратурной реализации команд умножения и деления;

стираемое ПЗУ программ емкостью 4 Кбайта, ОЗУ данных емкостью 128 байт; два

16-битных таймера/счетчика; программируемые схемы ввода/вывода (32 линии);

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

канал дуплексного последовательного ввода/вывода информации со скоростью до

375 кбит/с; генератор, схему синхронизации и управления.

Структурная организация и система команд МК51.

Микроконтроллер выполнен на основе высокоуровневой n-МОП технологии и

выпускается в корпусе БИС, имеющем 40 внешних выводов. Через четыре

программируемых порта ввода/вывода МК51 взаимодействует со средой в

стандарте ТТЛ-схем с тремя состояниями по выходу. В современном исполнении

микроконтроллер может быть выполнен также в К-МОП исполнении

[pic]

Назначение выводов.

GND - потенциал земли;

EA/VPP - отключение резидентной памяти программ/напряжение программирования

(21В);

VCC - основное напряжение питания +5В;

ALE/PROG - строб адреса внешней памяти/для подачи уровня GND при

программировании;

PSEN - разрешение внешней памяти программ;

RD - стробирующий сигнал при чтении из внешней памяти данных или

устройства ввода/вывода;

WR - стробирующий сигнал при записи во внешнюю память данных или устройства

ввода/вывода;

T0 - входной сигнал, опрашиваемый по командам условного перехода, так же

используется при программировании;

Т1 - входной сигнал, опрашиваемый по командам условного перехода,

используется в качестве входа внутреннего счетчика внешних событий;

INT0, INT1 - сигнал запроса прерывания;

RST/VPD - сигнал общего сброса/вход питания при пониженном

энергопотреблении;

RXD и TXD - входы последовательного интерфейса;

XTAL1, XTAL2 - входы подключения кварцевого резонатора;

P0, P1, P2, P3 - квазидвунаправленные порты параллельного ввода-вывода

(порт P3 несет дополнительные функции)

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

8-битное АЛУ может выполнять арифметические операции сложения, вычитания,

умножения и деления; логические операции и, или, исключающее или, а так же

операции сдвига, сброса, инвертирования и т.д. В АЛУ имеются программно

недоступные регистры Т1 и Т2, предназначенные для временного хранения

операндов, схема десятичной коррекции и схема формирования признаков.

Важной особенностью АЛУ является его способность оперировать не только

байтами, но и битами. Отдельные программно доступные биты могут быть

установлены, сброшены, инвертированы, переданы, проверены и использованы в

логических операциях.

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

Память программ и память данных, размещенные на кристалле МК51,

физически и логически разделены, имеют различные механизмы адресации,

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

Память программ(РПП): имеет емкость 4 Кбайта и предназначена для

хранения команд, констант, управляющих слов инициализации, таблиц

перекодировки входных и выходных переменных и т.п. РПП имеет 16-битную шину

адреса, через которую обеспечивается доступ из счетчика команд или из

регистра указателя данных. Последний выполняет функции базового регистра

при косвенных переходах по программе или используется в командах,

оперирующих с таблицами.

Память данных (РПД): предназначена для хранения переменных в процессе

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

128 байт. Кроме того, к адресному пространству РПД примыкают адреса

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

Память программ, так же как и память данных, может быть расширена до

64 Кбайт путем подключения внешних БИС.

В МК51 предусмотрены четыре банка по восемь рабочих регистров R0...R7;

банк выбирается полем RS в слове состояния программы. Они выполняют

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

R0 и R1 каждого банка реализуют также функцию 8-разрядных указателей

данных. С помощью набора рабочих регистров существенно уменьшается

длительность переключения контекстов ЦП, что очень важно для

микроконтроллеров реального времени. В МС51 отсутствует ограничения,

накладываемые на процедуры обслуживания прерываний, свойственные МК48.

Память программ (64 Кбайт) - однородная линейная область, реализуемая

как внутренними, так и внешними средствами. Для совместимости с МК48

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

набора 2-Кбайтных банков. Подобно архитектуре МК48 все банки рабочих

регистров, а также системный стек располагаются во внутренней памяти

данных. Определены два способа адресации памяти: прямой (direct) и

косвенный (@Ri, где i=0...1). С помощью прямой адресации доступна только

младшая адресного пространства внутренней памяти данных (128 байт), тогда

как косвенная обеспечивает доступ к любой ее ячейки из диапазона 256 байт.

Введение прямой адресации расширило возможности однокристальных

микроконтроллеров по обработки данных. В частности, появились средства

доступа к рабочим регистрам и системному стеку, интерпретируемым как

обычные ячейки памяти.

[pic]

Микроконтроллер МК51 имеет развитую подсистему ввода-вывода и средства

управления режимом реального времени. Для их управления в микроконтроллере

предусмотрен ряд регистров, которые размещены в отдельно прямо адресуемом

пространстве специальных регистров (128 байт). Сюда же включены и некоторые

регистры ЦП. Пространство специальных регистров вместе с младшей частью

адресного пространства внутренней памяти данных образуют прямо адресуемую

область. При этом сначала размещается младшая половина пространства

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

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

|Символ |Наименование |Адрес |

|ACC |Аккумулятор |0E0H |

|B |Регистр-расширитель |0F0H |

| |аккумулятора | |

|PSW |Слово состояния |0D0H |

| |программы | |

|SP |Регистр-указатель стека|81H |

|DPRT |Регистр-указатель |83H |

| |данных (DPH) | |

| |(DPL) |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)

|Символ |Позиция |Имя и значение |

|C |PSW.7 |Флаг переноса. Устанавливается |

| | |и аппаратурными средствами или |

| | |программой при выполнении |

| | |арифметических и логических |

| | |операций |

|AC |PSW.6 |Флаг вспомогательного переноса.|

| | |Устанавливается и сбрасывается |

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

| | |при выполнении команд сложения |

| | |и вычитания и сигнализирует о |

| | |переносе или заеме в бите 3 |

|F0 |PSW.5 |Флаг 0. Может быть установлен, |

| | |сброшен или проверен программой|

| | |как флаг специфицируемый |

| | |пользователем |

|RS1 |PSW.4 |Выбор банка регистров. |

|RS0 |PSW.3 |Устанавливается и |

| | |сбрасывается аппаратно при |

| | |выполнении арифметических |

| | |операций |

|OV |PSW.2 |Флаг переполнения. |

| | |Устанавливается и сбрасывается |

| | |аппаратно при выполнении |

| | |арифметических операций |

|- |PSW.1 |Не используется |

|P |PSW.0 |Флаг паритета. Устанавливается |

| | |и сбрасывается аппаратно в |

| | |каждом цикле команды и |

| | |фиксирует нечетное/четное число|

| | |единичных бит в аккумуляторе, |

| | |т.е. выполняет контроль по |

| | |четности (PSW.0) |

Центральный процессор МК51 содержит специальную логику для выполнения

ряда однобитных операций, в которых роль аккумулятора реализует флажок

переноса СУ. Для хранения булевых данных в архитектуре МК51 предусмотрено

отдельное прямо адресуемое пространство BSEG (256 бит), которое физически

совмещено с прямо адресуемой частью внутренней памяти данных и областью

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

регистровой памяти, может быть прямо адресован и как элемент пространства

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

0E0h...0E7h. При этом битовый адрес 0E0h относится к младшему разряду

аккумулятора.

Размещенные в области специальных регистров четыре 8-разрядных

псевдодвунаправленных порта ввода-вывода совмещены с битовым пространством,

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

Последовательный интерфейс

В составе МК1 введен дуплексный периферийный связной адаптер, который

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

0 синхронный последовательный ВВ со скоростью OSC/12;

1 асинхронный с 10-битовым кадром и переменной скоростью передачи;

2 асинхронный с 11-битовым кадром и фиксированной скоростью передачи

OSC/32 или OSC/64;

3 асинхронный с 11-битовым кадром и переменной скоростью передачи.

Через универсальный асинхронный приемопередатчик (УАПП) осуществляется

прием, передача информации, представленной последовательным кодом, в полном

дуплексном режиме обмена. В состав УАПП входят принимающий и передающий

сдвигающие регистры, а также специальный буферный регистр (SBUF)

приемопередатчика. Запись байта в буфер приводит к автоматической переписи

байта в сдвигающий регистр и инициирует начало передачи байта. Наличие

буферного регистра приемника позволяет совмещать операцию чтения ранее

принятого байта с приемом очередного байта. Если к моменту окончания приема

байта предыдущий байт не был считан из SBUF, то он будет потерян.

Управление режимом работы УАПП осуществляется через специальный

регистр с символическим именем SCON. Этот регистр содержит не только

управляющие биты, определяющие режим работы последовательного порта, но и

девятый бит принимаемых или передаваемых данных (RB8 и TB8) и биты

прерывания приемопередатчика (RI и TI).

Таймер/счетчик

Два программируемых 16-битных таймера/счетчика (Т/С0 и Т/С1) могут

быть использованы в качестве таймеров или счетчиков внешних событий. При

работе в качестве таймера содержимое Т/С инкрементируется в каждом машинном

цикле. При работе в качестве счетчика содержимое Т/С инкрементируется под

воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на

соответствующий (Т0, Т1) вывод МК51. Так как на распознавание перехода

требуется два машинных цикла, то максимальная частота подсчета входных

сигналов равна 1/24 частоты резонатора. На длительность периода входных

сигналов ограничений сверху нет. Для гарантированного прочтения входного

считаемого сигнала он должен удерживать значение 1 как минимум в течение

одного машинного цикла.

Регистр режима работы таймера/счетчика (TMOD)

|Символ |Позиция |Имя и значение |

|GATE |TMOD.7 |Управление блокировкой. |

| |для T/C1 | |

| |TMOD.3 | |

| |для T/C0 | |

|C/T |TMOD.6 |Бит выбора режима таймера или |

| |для T/C1 |счетчика событий. |

| |TMOD.2 | |

| |для T/C0 | |

|M1 |TMOD.5 |Биты выбора режима работы |

| |для T/C1 | |

| |TMOD.1 | |

| |для T/C0 | |

|M0 |TMOD.4 | |

| |для T/C1 | |

| |TMOD.0 | |

| |для T/C0 | |

Структурная схема работы T/C0 (T/C1)

[pic]

Режимы 0 и 1

(режим 0 для

совместимости

с МК48 13-ти

разрядный)

Режим 2

Режим 3

Система прерываний

Внешние прерывания INT0 и INT1 могут быть вызваны либо уровнем, либо

перепадом сигнала из 1 в 0 на входах МК51 в зависимости от значений

управляющих бит IT0 и IT1 в регистре TCON.

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

рассмотренные выше флаги прерываний программно-доступны и могут быть

установлены/сброшены программой с тем же результатом, как если бы они были

установлены/сброшены аппаратурными средствами.

В блоке регистров специальных функций есть два регистра,

предназначенных для управления режимом прерываний и уровнями приоритета. Их

символические имена IE и IP соответственно.

Список литературы

1. Проектирование цифровых устройств на однокристальных

микроконтроллерах / В.В.Сташин, А.В. Урусов, О.Ф. Мологонцева. -

М.:Энергоатомиздат, 1990. - 224 с.

2. Кобылинский А.В., Липовецкий Г.П. Однокристальные микроЭВМ серии

МК1816 // Микропроцессорные средства и системы. 1986. №1. С.10

3. МикроЭВМ: В 8 кн.: пособие / Под. ред. Л.Н. Преснухина. Кн. 7.

Учебные стенды / Ю.И. Волков, В.Л. Горбунов, Д.И. Панфилов, С.Г. Шаронин. -

М.: Высш. шк., 1988. - 224 с.: ил.