Контроллеры семейства МК51
Однокристальные контроллеры
семейства МК51
Однокристальные
микроконтроллеры - отдельный класс микросистем. Полный набор их средств
расположен на одном кристалле. Сюда кроме центрального процессора входят
память, подсистема ввода-вывода, средства поддержки режима реального времени
(РВ). Интеграция всех составных частей микро-ЭВМ на одном кристалле внесла ряд
ограничений на принципы ее организации, потребовала новых решений в развитии ее
архитектуры, не свойственных многокристальным компоновкам. В результате был
получен новый класс микроконтроллеров (МК) с присущими только ему принципами
построения архитектуры и структурной схемы.
Структурная
организация, набор команд и аппаратурно-программные средства ввода/вывода
информации микроконтроллеров лучше всего приспособлены для решения задач
управления и регулирования в приборах, устройствах и системах автоматики, а не
для решения задач обработки данных. Микроконтроллеры не являются машинами
классического "фон-неймановского" типа, так как физическая и логическая
разделенность памяти программ и памяти данных исключает возможность модификации
и/или замены (перегрузки) прикладных программ микроконтроллеров во время
работы, что сильно затрудняет их использование в качестве универсальных средств
обработки данных.
МК51 имеет в своем
составе: процессор, в состав которого входят 1-байтное АЛУ и схема аппаратурной
реализации команд умножения и деления; стираемое ПЗУ программ емкостью 4
Кбайта, ОЗУ данных емкостью 128 байт; два 16-битных таймера/счетчика;
программируемые схемы ввода/вывода (32 линии); блок двухуровневого векторного
прерывания от пяти источников; асинхронный канал дуплексного последовательного
ввода/вывода информации со скоростью до 375 кбит/с; генератор, схему
синхронизации и управления.
Структурная организация и
система команд МК51.
Микроконтроллер выполнен на основе высокоуровневой n-МОП технологии
и выпускается в корпусе БИС, имеющем 40 внешних выводов. Через четыре
программируемых порта ввода/вывода МК51 взаимодействует со средой в стандарте
ТТЛ-схем с тремя состояниями по выходу. В современном исполнении
микроконтроллер может быть выполнен также в К-МОП исполнении
Назначение выводов.
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 байт. Введение прямой
адресации расширило возможности однокристальных микроконтроллеров по обработки
данных. В частности, появились средства доступа к рабочим регистрам и
системному стеку, интерпретируемым как обычные ячейки памяти.
Микроконтроллер МК51 имеет развитую
подсистему ввода-вывода и средства управления режимом реального времени. Для их
управления в микроконтроллере предусмотрен ряд регистров, которые размещены в
отдельно прямо адресуемом пространстве специальных регистров (128 байт). Сюда
же включены и некоторые регистры ЦП. Пространство специальных регистров вместе
с младшей частью адресного пространства внутренней памяти данных образуют прямо
адресуемую область. При этом сначала размещается младшая половина пространства
внутренней памяти данных, а затем пространство специальных регистров.
Блок
регистров специальных функций
Символ
|
Наименование
|
Адрес
|
ACC
|
Аккумулятор
|
0E0H
|
B
|
Регистр-расширитель
аккумулятора
|
0F0H
|
PSW
|
Слово состояния программы
|
0D0H
|
SP
|
Регистр-указатель стека
|
81H
|
DPRT
|
Регистр-указатель данных
(DPH)
|
83H
|
|
(DPL)
|
82H
|
P0
|
Порт 0
|
80H
|
P1
|
Порт 1
|
90H
|
P2
|
Порт 2
|
0A0H
|
P3
|
Порт 3
|
0B0H
|
IP
|
Регистр приоритетов
|
0B8H
|
Регистр маски прерываний
|
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
RS0
|
PSW.4
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 как минимум в
течение одного машинного цикла.
Символ
|
Позиция
|
Имя и значение
|
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)
Режимы 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 с.: ил.