Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
konspekt_lektsy_po_PTsU.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.31 Mб
Скачать

6.1 Процессорное ядро

6.1.1 Организация памяти

Встроенную память микроконтроллера можно разделить на два типа: память программ и память данных.

В МК реализовано 1024 14-разрядных перепрограммируемых ячеек памяти. Работа с памятью осуществляется с помощью 13-разрядного счетчика команд. Учитывая, что 13 разрядов – обращение к 8кб, то обращение к физически не реализованной памяти приводит к обращению к реализованной в адресном пространстве от 0000 до 05FF. Память программ представлена 2-мя векторами: адрес сброса 000, вектор прерывания 004. Память предназначена для хранения программ пользователя и обеспечивает до 10 000 циклов записи.

6.1.1 Организация памяти данных.

Данный МК рассматривает 2 типа памяти: регистровая память данных (ОЗУ) и постоянная память данных (реализуется как дополнительный периферийный модуль).

Регистровая память данных разделена на два банка и содержит 2 блока, которые содержат регистры общего (GPR) и специального (SFR) назначения. Первые 32 ячейки каждого банка зарезервированы под регистры специального назначения (нулевой банк – регистры с адресом 00-1F, первый банк – регистры с адресами 80-9F). Регистры с 20-5F адреса реализованы в нулевом банке, в первом являются физически нереализованными (обращаются к нулевому банку). Регистры общего назначения предназначены для хранения операндов, переменных, участвующих в операциях при выполнении программ пользователя.

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

При любом виде сброс МК происходит очищение обоих регистров. Возможна 2 способа загрузки данных в счетчик команд:

1) непосредственная загрузка младшего регистра СК

2) загрузка СК при выполнении команды вызова подпрограммы или команд переходов.

Вычисляемый переход может быть выполнен командой приращения содержимого регистра PCL командами арифметических операций.

При выполнении табличного чтения вычисляемых переходов, пользователю необходимо отслеживать, чтобы содержимое регистра PCL не пересекло границу блока памяти (256байт), т.к. операции над младшим разрядом не вызывает изменения содержимого старшего.

Регистр INDF (0,80), FSR (3,83) предназначены для организации косвенной адресации к регистровой памяти данных. Для выполнения косвенной адресации необходимо обратиться к физически нереализованному регистру INDF. При этом обращение к этому регистру фактически вызывает действие с регистром, адрес которого указан в регистре FSR. Косвенное чтение непосредственно регистра INDF дает результат 0, запись не вызывает никаких действий.

Организация стека.

Рассматриваемый МК имеет 8-уровневый 13-разрядный аппаратный стек. Стековая память не имеет отображения на память программ и память данных, т.е. при помощи стандартного набора команд нельзя производить запись и чтения данных из стека. Загрузка и считывание данных производится автоматически при выполнении инструкции перехода на подпрограмму (команда call) или обработка прерывания, путем загрузки в него значения счетчика команд. Чтение из стека производится аппаратно при выполнении операции команды возврата из подпрограммы. При данной процедуре значение регистра PCL не изменяется. Стек работает как циклический буфер, т.е. после 8-ми записей стек, 9-ая записывается на место 1-ой, тем самым не сохраняя начальные адреса возврата. Контроль за переполнением стека возлагается на программу пользователя. В МК базового семейства стек является 2-х уровневым.

Регистр OSCCAL – калибровка генератора. Данный регистр содержит 6 функциональных разрядов, которые представляют собой загружаемую константу, позволяющую регулировать собственный внутренний RC генератор. (Константа 100000 соответствует частоте 4 МГц).

Регистр STATUS – доступен для чтения и записи и играет роль регистра признаков/флагов. Условно признаки регистра делятся на 3 части:

1)флаги состояния АЛУ: C, DC, Z. Данные признаку используются для формирования условий.

С – признак переполнения. В зависимости от операции выполняет 2 функции:

а)при операциях сложения и логических сдвигов выполняет бит переноса в 9 разряд результата.

б)при операциях вычитания формирует признак знака.

DC – аналогичен С, только для двоично-десятичных чисел.

Z – признак нуля.

2)Флаги причины сброса МК: TO, PD. Данные признаки не изменяются при программном обращении к регистру STATUS.

3)Флаг выбора банка памяти данных RP0. 0 в этом разряде определяет рабочим 0-ой банк, 1 – 1-ый банк. Существуют МК, в области регистровой памяти которых 4 банка. В этом случае регистр STATUS содержит дополнительный бит RP1.

Регистр OPTIONREG – содержит биты управления базовых модулей МК:

-- биты управления таймером TMR0(T0SC, T0SE, PSA, PS0..2).

T0SC - выбор тактового сигнала для таймера. 0 – модуль работает как таймер (от внутренней системной тактовой частоты), 1- от внешних сигналов, подаваемых на вход T0CKI (режим счетчика).

T0SE – определяет фронт приращения счетных сигналов в режиме счетчика.

PSA – бит направления подключения встроенного предделителя: 0 – к таймеру TMR0, 1 – к специальному сторожевому таймеру.

PS0..2 – определяет коэффициент предделителя от 1/1 до 1/128.

--INTEDG - определяет активный фронт внешнего прерывания INT.

--GPPU - разрешение работы подтягивающих регистров на входе GP.