Однокристальний контролери сімейства МК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
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
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 як мінімум протягом одного машинного циклу.
Регістр режиму роботи таймера/лічильника (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)
Система переривань
Зовнішні переривання INT0 і INT1 можуть бути викликані або рівнем, або перепадом сигналу з 1 в 0 на входах МК51 в залежності від значень керуючих біт IT0 і IT1 в регістрі TCON.
Переривання можуть бути викликані або скасовані програмою, тому що всі розглянуті вище прапори переривань програмно-доступні і можуть бути встановлені/скинуті програмою з тим же результатом, як якби вони були встановлені/скинуті апаратурними засобами.
У блоці регістрів спеціальних функцій є два регістри, призначених для управління режимом переривань і рівнями пріоритету. Їх символічні імена IE та IP відповідно.