Программирование и комп-ры

Контроллеры семейства МК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 с.: ил.



смотреть на рефераты похожие на "Контроллеры семейства МК51"