Базовая организация ВЕ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, в частности станет осуществимой операция записи, что может быть использовано при загрузке программ из внешней памяти.
Дата добавления: 2019-02-07; просмотров: 632;