
- •Глава 1.
- •1 .1. Понятия организации и архитектуры
- •1.2. Архитектура типовой микросистемы
- •1.3. Структура типовой микросистемы
- •1.4. Регистры микропроцессора
- •1.5. Адресация данных
- •Глава 2.
- •2 .1. Вводные замечания
- •2.2. Архитектура вм80
- •2.3. Система команд вм80
- •2.4. Структурная схема вм80
- •2.5. Базовый комплект бис серии кр580
- •2.6. Центральный процессор на базе бис серии кр580
- •2.7. Организация вм85а
- •Глава 3.
- •3.1. Организация программно-управляемого обмена
- •3.2. Периферийные бис
- •3.3. Средства параллельного ввода-вывода
- •3.4. Средства последовательного ввода-вывода
- •3.5. Система прерываний
- •3.6. Программируемый контроллер прерываний вн59
- •3.7. Средства счета времени
- •Глава 4.
- •4 .1. Вводные замечания
- •4.2. Базовая организация ве48
- •4.3. Набор регистров ве48
- •4.4. Организация памяти ве48
- •4.5. Система ввода-вывода и служба реального времени ве48
- •4.6. Система команд ве48
- •4.7. Физический интерфейс ве48
- •4.8. Расширение внутренних ресурсов ве48
- •4.9. Универсальный периферийный адаптер
- •4.10. Базовая организация ве51
- •4.11. Периферийные средства ве51
- •4.12. Система команд ве51
- •4.13. Функциональное описание ве51
- •Глава 5.
- •5 .1. Одноплатный микроконтроллер мМс1204
- •5.2. Средства ввода-вывода и поддержки режима реального времени
- •5.3. Программирование системы ввода-вывода
- •5.4. Программирование средств поддержки режима реального времени
- •Глава 6.
- •6 .1. Вводные замечания
- •6.2. Организация регистров вм86
- •6.3. Организация памяти вм86
- •6.4. Формат команд вм86
- •6.5. Система команд вм86
- •6.6. Структурная схема вм86
- •6.7. Структурные отличия вм88
- •Глава 7.
- •7 .1. Принцип построения
- •7.2. Генератор тактовых импульсов гф84
- •7.3. Системный контроллер вг88
- •7.4. Центральный процессор на базе бис серии к1810
- •7.5. Программируемый контроллер прерываний вн59а
- •7.6. Одноплатный микроконтроллер мМс1212
- •Глава 1. Организация микросистем ……………………………………………………………………………………..
- •Глава 2. Микропроцессоры кр580вм80/к1821вм85а ………………………………………………………………
- •Глава 3. Подсистема ввода-вывода ………………………………………………………………………………………
- •Глава 4. Организация однокристальных микроконтроллеров ……………………………………………………..
- •Глава 5. Организация одноплатных микроконтроллеров на базе кр580вм80 ………………………………
- •Глава 6. Микропроцессор к1810вм86 …………………………………………………………………………………
- •Глава 7. Организация одноплатных микроконтроллеров на базе к1810вм86 ………………………………
4.10. Базовая организация ве51
Введение в организацию ВЕ51. В состав однокристального МК ВЕ51 (рис. 4.19) входит 8-разрядный ЦП, управляющее ПЗУ, внутреннее ОЗУ данных, 32 линии прямого ВВ, четыре тестируемых входа, канал последовательного ВВ, два или три 16-разрядных таймера/счетчика Т и логика двухуровневой системы прерываний с пятью или шестью источниками запросов [64]. Эти средства образуют резидентную часть МК, размещенную непосредственно на кристалле. Базовая организация предоставляет встроенные средства расширения своих ресурсов, которые предусматривают либо реализацию вне кристалла всей памяти программ, либо расширение памяти, имеющейся внутри кристалла до 64К байт. Имеется возможность подключения дополнительной внешней памяти данных в 64К байт. Дальнейшее расширение ресурсов может быть выполнено только с помощью внешних средств.
Рис. 4.19. Схема микроконтроллера ВЕ51
Для сокращения ширины физического интерфейса большинство логических линий совмещаются. Так, при обращениях к внешней памяти порт Р0 выполняет роль совмещенной шины адреса/данных, а Р2—шины старшей части адреса. Все выводы порта Р3 выполняют роль линий управления и специального ВВ.
В архитектуре ВЕ51 и ее модификациях использован стандартный для МК принцип независимости сред для хранения программ и данных. Всего же архитектура ВЕ51 включает пять типов пространств, четыре из которых являются областями данных:
-
RSEG
DSEG
BSEG
XSEG
CSEG
Пространство регистров
Пространство внутренней памяти данных
Битовое пространство данных
Пространство внешней памяти
Пространство программного кода
Однако пространство регистров, за исключением PC, и пространство битов, частично пересекаясь, физически совмещаются с пространством DSEG, образуя единую внутреннюю среду для хранения данных, имеющую достаточно сложную структуру. Принцип наложения нескольких пространств данных друг на друга уже встречался в архитектуре ВЕ48. Это стандартный для однокристальных МС прием, позволяющий одни и те же физические данные рассматривать с разных позиций. В результате выбирается наиболее удобный для конкретного случая способ интерпретации тех или иных данных, в соответствии с которым и организуется доступ к ним.
Набор регистров ВЕ51. Набор программно-доступных регистров процессора ВЕ51 приведен на рис. 4.20. Он является расширением набора регистров ВЕ48 (см. рис. 4.3), что обеспечивает совместимость архитектур ВЕ48 и ВЕ51 снизу вверх. Обе архитектуры относятся к классу аккумуляторных с переключаемыми банками рабочих регистров. Поэтому центральным регистром набора считается 8-разрядный аккумулятор А, выполняющий обычные функции основного арифметического регистра.
Рис. 4.20. Набор регистров ВЕ51
Регистр В служит расширением аккумулятора А, необходимым для осуществления операций умножения и деления, причем он является как источником, так и приемником операндов. Во всех других операциях регистр В выполняет функции, определяемые пользователем.
Регистр слова состояния программы кроме флажков, входящих в PSW BE48:
-
PSW.7
CY
Перенос из старшего разряда АЛУ
PSW.6
AС
Дополнительный перенос из младшей тетрады АЛУ
PSW.5
F0
Флажок пользователя общего назначения
включает также флажки
-
PSW.2
OV
Признак арифметического переполнения результата
PSW.1
P
Признак четности
Сюда же входит двухразрядное поле RS (Registers Select) выбора одного из четырех возможных банков рабочих регистров. Напомним, что в архитектуре BE48 таких банков было всего два. Флажки признаков результата CY, АС и OV, как правило, отражают состояние последней арифметической операции, флажок Р—четность содержимого А. Флажок переноса CY является аккумулятором булевого процессора. Функциональное назначение флажка F0 определяется пользователем в конкретной ситуации.
Шестнадцатиразрядный программный счетчик PC управляет последовательностью выполнения команд, хранящихся в программной памяти объемом до 64К байт. Указатель данных DPTR также имеет длину 16 разрядов, каждая его половина может быть адресована независимо от другой. Этот регистр используется в качестве адресного при пересылке констант из памяти программ и доступе к переменным из внешней памяти данных, а также для организации передачи управления.
Указатель стека образует системный стек глубиной до 256 байт. Он всегда содержит адрес последнего байта, занесенного в стек. Стек растет в сторону увеличения содержимого SP.
В МК ВЕ51 предусмотрено четыре банка по восемь рабочих регистров R0—R7 в каждом, переключаемых полем RS слова состояния программы. Регистры выполняют общецелевые функции промежуточного хранения данных. По аналогии с BE48 два регистра R0 и R1 каждого банка реализуют также функции 8-разрядных указателей данных.
Использование наборов рабочих регистров позволяет существенно уменьшить длительность переключения контекстов ЦП, что очень важно для МС реального времени. Следует также отметить, что в ВЕ51 отсутствует ряд ограничений, накладываемых на обработку подпрограмм и процедур обслуживания прерываний, которые свойственны BE48.
При сбросе МК все регистры устанавливаются в исходное состояние. Программный счетчик PC принимает значение 0000Н, аккумулятор А—00Н; В—00Н, PSW—00Н, SP—07H и DPTR—0000Н. Сброс PC обеспечивает передачу управления по стартовому адресу 0000Н, а установка SP в состояние 07Н поддерживает совместимость со стеком BE48. Сброс PSW реализует выбор нулевого регистрового банка RB0, что также соответствует архитектуре BE48.
Организация памяти BE51. Пространство внутренней памяти DSEG имеет общий объем 256 байт. Однако организация ВЕ51 предусматривает реализацию только первой его половины (128 байт). В МК 8052 DSEG используется в полном объеме.
Подобно
архитектуре ВЕ48 все банки рабочих
регистров, а также системный стек в МК
ВЕ51 располагаются во внутренней памяти
данных и могут рассматриваться как
обычные ячейки памяти. Существуют два
способа адресации памяти данных МК:
прямой (direct)
и косвенный (@Ri,
i
= 0—1) через регистры R0,
R1
выбранного в данный момент одного из
банков RB0—RB3.
При прямой адресации доступны обе только
младшая половины
адресного пространства внутренней
памяти данных
(128
256 байт),
при косвенной обеспечивается доступ к
любой ее ячейке
(256 байт).
Введение отсутствующей в ВЕ48 прямой
адресации значительно расширило
возможности обработки данных МК, в
частности появились средства прямого
доступа в соседние регистровые банки
и стек системы, интерпретируемые как
обычные ячейки памяти.
Микроконтроллер ВЕ51 имеет мощную и развитую подсистему ВВ и средства поддержки режима реального времени. Для их управления в МК предусмотрен ряд регистров, которые размещаются во второй половине прямо адресуемого пространства (рис. 4.21), образующей пространство специальных регистров (128 байт). Сюда же включены порты и основные регистры ЦП. Элементы, присутствующие только в модели 8052, отмечены знаком «*», как и на рис. 4.22—4.24.
Рис. 4.21. Прямо адресуемая часть внутренней памяти данных (а) и память специальных регистров (б)
Центральный процессор ВЕ51 содержит специальную логику, предназначенную для выполнения нескольких однобитовых операций,—булев или одноразрядный процессор для вычисления булевых выражений. В основу булева процессора положен стандартный аккумуляторный принцип организации. В данном случае роль аккумулятора выполняет флажок переноса CY.
Для хранения булевых данных в архитектуре ВЕ51 предусмотрено специальное одноразрядное линейно упорядоченное пространство BSEG объемом 256 байт, которое физически совмещено с байтовым пространством данных DSEG. При этом одна часть пространства BSEG попадает на обычные ячейки памяти DSEG и может рассматриваться как область общего назначения. Обычно она используется для хранения булевых переменных. Другая часть пространства BSEG попадает на ячейки памяти, совмещенные с регистрами МК, что обеспечивает независимый доступ к их отдельным разрядам. В булевом пространстве определена только прямая адресация bit.
На рис. 4.21 в байтах пространства с прямой адресацией, которые размещены в булевом пространстве, указаны диапазоны адресов BSEG, относящихся к их разрядам. Например, старший разряд аккумулятора А, отождествленного с ячейкой пространства памяти с прямой адресацией под адресом 0Е0Н, имеет адрес пространства BSEG, равный 0Е7Н. Двойная, а в ряде случаев тройная интерпретация отдельных данных дает возможность программисту выбирать тип доступа, наиболее подходящий для конкретного прикладного случая программирования. Все это позволяет повысить эффективность программного кода, его длину и скорость исполнения.
Пространство внешней памяти XSEG имеет объем 64К байт и реализуется внешними по отношению к МК средствами. Существует единственная команда, поддерживающая связь с данным пространством:
-
MOVX
MOVX
MOVX
MOVX
A, @Ri
A, @DPTR
@Ri, A
@DPTR, A
;AXSEG(P2:Ri), i = 0—1
;AXSEG(DPTR)
;XSEG(P2:Ri)A, i = 0—1
;XSEG(DPTR)A
В команде используются два типа адресации: косвенная регистровая по DPTR и страничная с номером страницы в Р2 и смещением в R0, R1. Это дает право рассматривать организацию внешней памяти ВЕ51 как линейную область или как область со страничной структурой.
Память программ CSEG адресуется 16-разрядным счетчиком PC и, следовательно, может иметь объем до 64К байт. Часть этой памяти (4К/8К байт с младшими адресами) может быть расположена на кристалле в виде программируемого маской ПЗУ или ре-программируемого электрически УСППЗУ. Она образует внутреннюю память программ. Оставшаяся часть, реализуемая внешними средствами вне кристалла, называется внешней памятью программ. С точки зрения программиста как внутренняя, так и внешняя память представляет собой единое пространство CSEG с равными правами доступа.
Среди особых точек пространства CSEG следует отметить
-
RESET
0000Н
Стартовый адрес при сбросе системы
ЕХТ10
0003H
Внешнее прерывание 0
TIMER0
000BH
Прерывание таймера/счетчика 0
EXTI1
0013Н
Внешнее прерывание 1
TIMER1
001ВH
Прерывание таймера/счетчика 1
SINT
0023Н
Прерывание последовательного порта
TIMER2
002ВН
Прерывание таймера/счетчика 2 (только для 8052)
Пространство CSEG—однородное линейное пространство, в котором определены два основных способа передачи управления: абсолютный addr16 и относительный с помощью 8-разрядного смещения rel со знаком. Однако для некоторых команд оно представляет набор 2К-байтовых страниц:
-
ACALLAJMP
addr11
addr11
; +(SP)PC, PC0—10addr11
;PC0—10addr11
Кроме того, предусмотрен переход по смещению относительно базы DPTR:
-
JMP
@A + DPTR
;РСDPTR + A
Эти команды введены для поддержки совместимости с архитектурой ВЕ48. Специальная команда пересылки
-
MOVCMOVC
А, @A + DPTR
А, @А + РС
;АCSEG(А + DPTR)
;АCSEG(А + РС)
позволяет использовать содержимое программной памяти в качестве константов, доступных для чтения.
В МК ВЕ51 имеется возможность совмещения внешней части CSEG с пространством XSEG. Такое совмещение поможет распространить на область CSEG операции и способы доступа к XSEG, в частности станет осуществимой операция записи, что может быть использовано при загрузке программ из внешней памяти.