Федеральное агентство по образованию бийский технологический институт (филиал)

Вид материалаДокументы
1.1Процессор микроконтроллера
Контрольные вопросы
1.2Адресное пространство микроконтроллера
1.2.1Подключение EROM и ERAM к микроконтроллеру
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   14

1.1Процессор микроконтроллера


Процессор выполняет команды программы и организует их выполнение в заданной последовательности. Система команд микроконтроллеров семейства АТ89С51 содержит 111 команд.

Процессор содержит генератор тактового сигнала (OSC), шестнадцатиразрядный счётчик команд (PC), шестнадцатиразрядный регистр-указатель данных (DPTR), состоящий из двух восьмиразрядных регистров – старшего (DPH) и младшего (DPL), восьмиразрядный регистр – указатель стека (SP), восьмиразрядный регистр управления (PCON) и арифметико-логическое устройство (ALU).

Генератор тактового сигнала формирует последовательность тактовых импульсов. Период следования тактовых импульсов, равный длительности такта работы микроконтроллера, определяется резонансной частотой подключённого к микроконтроллеру кварцевого резонатора (рисунок 1.3). При использовании внешнего синхрогенератора сигнал подается на вход XTAL1, а выход XTAL2 остается неподключенным.





С1, С2 = 30 пФ10 пФ; R1=8,2 кОм; С3=10 мкФ


Рисунок 1.3 – Типовая схема включения микроконтроллера


Микроконтроллеры семейства АТ89С51 изготовлены по КМОП (CMOS) технологии и имеют полностью статическую структуру. Они могут работать при значениях тактовой частоты от 0 Гц. Максимальное значение тактовой частоты у микроконтроллера составляет 24 МГц.

В состав ALU входят восьмиразрядные регистры: регистр-аккумулятор ACC, вспомогательный регистр B и регистр слова-состояния программы PSW.


Контрольные вопросы

На какие выводы микроконтроллера подается питание?

Каким уровнем организуется сброс микроконтроллера?

Что означает «статическая структура»?

Какие устройства входят в состав микроконтроллера?

Какие регистры содержит процессор микроконтроллера? За что они отвечают?

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


Адресуемым элементом памяти МК является восьмиразрядная ячейка.

Внутреннее постоянное запоминающее устройство (IROM) представляет собой программируемое запоминающее устройство с электрическим стиранием записи, выполненное по CMOS Flash-технологии (Flash Memory). Число восьмиразрядных ячеек в IROM микроконтроллера составляет 4 К.

IROM и внешнее постоянное запоминающее устройство (EROM) предназначены для хранения команд программы и констант. Адреса, используемые при обращении к IROM и EROM, образуют единое адресное пространство 64 К.

Внутреннее оперативное запоминающее устройство (IRAM) является статическим оперативным запоминающим устройством (SRAM). Адреса, используемые при обращении к IRAM, образуют адресное пространство внутренней оперативной памяти объёмом 256 байт (таблица 1.2).

Младшая половина адресов (от 00h до 7Fh) используется только для обращения к ячейкам IRAM. Старшая половина адресов используется для обращения к регистрам, расположенным в CPU и в периферийных устройствах. Обращение к ячейкам IRAM, которым соответствуют адреса от 00H до 7Fh, можно выполнять как по командам с прямой, так и по командам с косвенной адресацией.

В IRAM микроконтроллера образован стек типа LIFO. Адрес при записи байта в стек образуется путём увеличения на единицу адреса, хранящегося в регистре-указателе стека (SP). Адрес при чтении байта из стека берётся из регистра-указателя стека, после чего адрес в этом регистре уменьшается на единицу. При сбросе микроконтроллера в регистр-указатель стека заносится код 07Н. Путём записи в регистр SP иного начального адреса стек может быть смещён в другую область IRAM.

32 ячейки памяти в IRAM, которым соответствуют адреса от 00Н до 1FH, могут использоваться как регистры. К этим ячейкам можно обращаться как по командам с прямой или косвенной адресацией, так и по командам с регистровой адресацией. Группа из 32 регистров разделена на 4 банка (RB0–RB3). Регистры в пределах банка имеют номера от 0 до 7 (R0–R7).


Таблица 1.2 – Структура IRAM микроконтроллера

Адреса

Назначение

Тип адресации

FF

Регистры специальных функций (SFR)

Прямая*,

косвенная**,

поразрядная***



80

7F




Прямая,

косвенная,

поразрядная






2F

Область поразрядного обращения

7F

7E

7D

7C

7B

7A

79

78

2E

77

76

75

74

73

72

71

70



















21

0F

0E

0D

0C

0B

0A

09

08

20

07

06

05

04

03

02

01

00

1F

Банки регистров

RB3

R7





18

R0

17

RB2

R7





10

R0

0F

RB1

R7





08****

R0

07

RB0

R7





00

R0

*

При обращении к ячейкам как к регистрам специальных функций

**

При обращении к ячейкам как к памяти

***

Допускают только адреса, кратные восьми (80h, 88h,…, F8h)

****

Дно стека при сбросе микроконтроллера

Выбор регистрового банка, в котором при обращении находится регистр с указанным номером, выполняется путём предварительной установки в определённое состояние двух разрядов в регистре PSW. Схема распределения разрядов в регистре PSW приведена на рисунке 1.4.


7

6

5

4

3

2

1

0

CY

AC

F0

RS1

RS0

OV



P

Рисунок 1.4 – Схема распределения разрядов в регистре PSW


Для выбора регистрового банка используются разряды регистра PSW.4=RS1 и PSW.3=RS0. Регистровые банки RB0–RB3 выбираются при комбинациях значений RS1, RS0=00, 01, 10 и 11 соответственно. Регистры R0 и R1 в каждом регистровом банке могут быть использованы для размещения адресов при выполнении команд с косвенной адресацией.

16 ячеек памяти в IRAM, которым соответствуют адреса от 20Н до 2FH, допускают поразрядное обращение. Биты в ячейках памяти IRAM с побитовой адресацией имеют адреса от 00H до 7FH.

1.2.1Подключение EROM и ERAM к микроконтроллеру


На рисунке 1.5 приведена типовая схема подключения EROM и ERAM к микроконтроллеру, на рисунках 1.6, 1.7, 1.8 – временные диаграммы сигналов при чтении байта из EROM, ERAM и записи байта в ERAM соответственно.



Рисунок 1.5 – Типовая схема подключения EROM и ERAM




Рисунок 1.6 – Чтение байта из EROM





Рисунок 1.7 – Чтение байта из ERAM





Рисунок 1.8 – Запись байта в ERAM


В таблице 1.3 приведены значения параметров, указанных на временных диаграммах.


Таблица 1.3 – Значения параметров, указанных на временных
диаграммах


Fosc, Мгц

Чтение из EROM

Чтение из ERAM

Запись в ERAM

Trd max, нс

Trd max, нс

Twr min, нс

12

312

585

400

16–24

5Tosc–55

9Tosc–165

6Tosc–100


Параллельные порты ввода-вывода P0 и P2 при подключении к микроконтроллеру внешней памяти (EROM и ERAM) используются для выдачи шестнадцатиразрядного кода адреса, а порт Р0, кроме того, для выдачи и приема байтов данных. Младший байт кода адреса
(A0–A7) выдается через порт Р0 и запоминается во внешнем регистре. Запись кода во внешний регистр выполняется при высоком уровне сигнала на выходе ALE. Старший байт кода адреса (А8–А15) выдается через порт Р2 и удерживается на выводах порта Р2 в течение всего времени обращения к внешней памяти.

Чтение байта из EROM происходит при низком уровне сигнала на выходе PSEN, чтение байта из ERAM – при низком уровне сигнала RD на выходе порта Р3.7, а запись байта в ERAM – при низком уровне сигнала WR на выходе порта Р3.6.

Контрольные вопросы
  1. Какова емкость внутреннего ОЗУ микроконтроллера? Какая часть адресов используется только для обращения к ячейкам IRAM?
    К чему может привести некорректное использование старшей половины адресов?

Что означает понятие «банк регистров»? Каким образом осуществляется выбор активного банка регистров?

Номера регистров какого банка совпадают с адресами ячеек ОЗУ?

К каким ячейкам памяти из старшей половины адресов допускается поразрядное обращение?

Каков принцип работы стека LIFO?

Какой адрес соответствует дну стека при сбросе микроконтроллера?

Изменится ли значение ячейки по адресу 07H при помещении значения в стек сразу же после сброса микроконтроллера?

Что необходимо сделать для безопасного использования всех банков регистров при использовании стека?

К чему приведут загрузка в указатель стека числа 7FH и дальнейшее использование стека?

Для чего необходим регистр RG на рисунке 1.5? Возможно ли программно записать данные в этот регистр, не нарушив обращение к внешней памяти? Почему?

Чем отличается подключение внешних памяти программ и памяти данных?

Возможно ли одновременное подключение ОЗУ и ПЗУ, емкость каждой из которых 64 кБ?

Какая часть адреса удерживается в течение всего цикла обращения к памяти?