1.2.2. Адресное пространство микроконтроллеров

Адресное пространство МК состоит из адресного пространства регистрового файла и адресного пространства памяти. В адресное пространство регистрового файла включены периферийные регистры, управляющие регистры, порты ввода/вывода и регистры общего назначения (РОН). Последние образуют ОЗУ МК. Адресное пространство памяти образовано ячейками внутренней и внешней памяти программ для хранения программного кода и констант, а также ячейками внешней памяти данных для хранения данных и размещения стека.

1.2.2.1. Адресное пространство регистрового файла

Регистровый файл состоит из стандартного регистрового файла (СРФ), имеющегося во всех моделях МК, и расширенного регистрового файла (РРФ), частично используемого в некоторых моделях МК для управления дополнительными функциями.

Структура регистрового файла показана на рис 1.2.

СРФ состоит из 256 восьмибитных регистров с шестнадцатеричными адресами от 00H до FFH (здесь и далее H -суффикс шестнадцатеричной системы счисления). Адресное пространство СРФ разделено на 16 рабочих групп регистров по 16 регистров в каждой. Рабочая группа 0 содержит регистры с адресами от 00H до 0FH, группа 1 -регистры с адресами от 10H до 1FH и т.д. Следовательно, правомерно считать, что первая шестнадцатеричная цифра адреса соответствует номеру рабочей группы регистров, а вторая -номеру регистра. На рис.1.2 выделены рабочие группы регистров СРФ с указанием адреса нулевого регистра каждой группы в шестнадцатеричной системе счисления.

Рабочая группа регистров 0 -особая, она может замещаться группами регистров из РРФ. РРФ содержит 16 расширенных групп регистров по 16 регистров в каждой. На рис.1.2 указаны номера расширенных регистровых групп. Следует отметить, что рабочая группа 0 СРФ совпадает с расширенной группой 0 РРФ.

Специальный регистр RP (Register Pointer -Указатель регистров), размещенный в СРФ по адресу FDH (253), содержит два четырехбитных указателя, определяющие текущие номера рабочей (старшая тетрада) и расширенной (младшая тетрада) регистровых групп. Перезагрузкой регистра RP можно оперативно изменять выбранные группы регистров. Старшая цифра указанного в команде загрузки шестнадцатеричного числа будет определять номер рабочей группы, а младшая -номер расширенной группы регистров.

Доступ к регистрам может осуществляться как с помощью полного восьмибитного адреса, так и с помощью короткого четырехбитного адреса. В последнем случае адрес определяет номер регистра в текущей рабочей группе. Если текущая рабочая группа -0, то будет выбран соответствующий регистр из текущей расширенной группы. В случае использования восьмибитного адреса 0XH (где X -любая шестнадцатеричная цифра) выбирается регистр X текущей расширенной регистровой группы, а адреса 1XH -FXH соответствуют регистрам СРФ. В последнем случае исключение составляет рабочая группа регистров E (адреса E0H -EFH), к которой нельзя обращаться с помощью восьмибитного адреса, т.к. байтовый формат EXH зарезервирован разработчиками МК для команд с укороченным адресом.

Разные модели МК имеют разные наборы физически доступных регистровых групп. Для СРФ эти наборы показаны на рис.1.2 столбиковой диаграммой. Расширенная группа регистров 0 (она же -рабочая группа регистров 0) имеется во всех моделях МК. Расширенная группа регистров C имеется только в модели 06, а расширенная группа регистров F имеется в моделях 03,06,30,31,40. Незадействованные регистры расширенных групп 1 -F зарезервированы разработчиками МК для дальнейших применений.

Рис. 1.2 Структура регистрового файла

Часть регистров СРФ имеет специальное назначение (управляющие и периферийные регистры), остальная часть -регистры общего назначения -РОН (General Purpose Register -GPR). Последние и образуют оперативное запоминающее устройство (ОЗУ) МК. Регистры специального назначения сосредоточены в рабочей группе F и в расширенной/рабочей группе 0. Все задействованные регистры расширенных групп имеют специальное назначение. На рис. 1.2 справа показаны все регистры специального назначения. Для каждого регистра указаны шестнадцатеричный адрес и идентификатор, представляющий аббревиатуру назначения регистра. В табл. 1.3 приведен полный перечень этих регистров с указанием идентификатора, назначения на английском и русском языках и характера операций доступа (R -чтение, W -запись).

Таблица 1.3

Регистры специального назначения

Идентификатор Назначение Доступ
Английский Русский
SPL Stack Pointer Low Byte Указатель стека - мл. байт R/W
SPH Stack Pointer High Byte Указатель стека - ст. байт R/W
RP Register Pointer Указатель регистров R/W
FLAGS Program Control Flags Регистр флагов R/W
IMR Interrupt Mask Register Регистр маски прерываний R/W
IRQ Interrupt Request Register Регистр запросов прерываний R/W
IRP Interrupt Priority Register Регистр приоритета прерываний W
P01M Port 0-1 Mode Register Регистр режима портов 0-1 W
P3M Port 3 Mode Register Регистр режима порта 3 W
P2M Port 2 Mode Register Регистр режима порта 2 W
PRE0 TO Prescaler Предделитель ТО W
TO Timer/Counter TO Таймер/Счетчик ТО R/W
PRE1 T1 Prescaler Предделитель Т1 W
T1 Timer/Counter T1 Таймер/Счетчик Т1 R/W
TMR Timer Mode Register Регистр режимов таймеров R/W
WDTMR Watch Dog Timer Mode Register Регистр режима сторожевого таймера W
SMR Stop-Mode Recovery Register Регистр управления восстановлением из режима STOP W*
PCON Port Control Register Регистр управления портами W
SCON SPI Control Register Регистр управления последовательным интерфейсом R/W
RxBUF SPI Receive Buffer Приемный буфер последовательного интерфейса R/W
SCOMP SPI Compare Register Регистр сравнения последовательного интерфейса R/W
P3 Port 3 Порт 3 R/W
P2 Port 2 Порт 2 R/W
P1 Port 1 Порт 1 R/W
P0 Port 0 Порт 0 R/W

* Бит 7 регистра SMR - только для чтения.

Наборы регистров специального назначения для разных моделей МК приведены в табл.1.4.

Таблица 1.4

Наборы регистров специального назначения

Имя Регистра Модель МК
02 03 04 06 08 31 30 40
SPL + + + + + + + +
SPH * * * * * * * +
RP + + + + + + + +
FLAGS + + + + + + + +
IMR + + + + + + + +
IRQ + + + + + + + +
IPR + + + + + + + +
P01M + + + + + + + +
P3M + + + + + + + +
P2M + + + + + + + +
PRE0 - - + + + + + +
T0 - - + + + + + +
PRE1 + + + + + + + +
T1 + + + + + + + +
TMR + + + + + + + +
WDTMR - + - + - + + +
SMR - + - + - + + +
PCON - + - + - + + +
SCON - - - + - - - -
RxBUF - - - + - - - -
SCOMP - - - + - - - -
P3 + + + + + + + +
P2 + + + + + + + +
P1 - - - - - - - +
P0 + - + - + + + +

Примечания:1.Наличие регистра отмечено знаком "+".

 2.Регистр SPH во всех моделях, кроме 40, используется как

 регистр общего назначения GPR (отмечено знаком "*").

При программировании МК следует учитывать способ доступа к регистрам. Чтение регистров, предназначенных только для записи, будет давать результат FFH. Поэтому использование этих регистров в командах, где они считываются (например, в логических командах OR и AND), будет давать неправильный результат. Когда линии портов 0 и 1 определены как выходы адреса, они приобретают статус регистров только для записи. И, наконец, регистр WDTMR должен быть записан в течение первых 64 тактов синхронизации после сброса.

РОНы, с точки зрения системы команд, могут рассматриваться не только как отдельные восьмибитные регистры, но и как шестнадцатибитные пары регистров. При этом должно соблюдаться четное выравнивание, т.е. адрес регистровой пары должен быть четный. При этом старший байт регистровой пары размещается по четному адресу, а младший -по нечетному. В рабочей регистровой группе регистровых пар будет 8, и им соответствуют только четные номера: 0,2,...,14.

Доступ к отдельным битам регистров осуществляется логическими командами с масками.

Функция защиты ОЗУ заключается в том, что старшая часть адресного пространства от 80H до EFH (исключая управляющую группу регистров) может быть защищена от чтения и записи. Бит защиты ОЗУ программируется одновременно с ПЗУ (масочно или электрически). Если этот бит запрограммирован, то функция защиты управляется программно битом D6 регистра IMR. Логическая 1 включает функцию защиты, логический 0 -отключает. Эту функцию имеют только модели МК 30 и 40.


Информация о работе «Микроконтроллеры Z86 фирмы ZILOG»
Раздел: Информатика, программирование
Количество знаков с пробелами: 62013
Количество таблиц: 12
Количество изображений: 29

0 комментариев


Наверх