Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
прерывания.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
353.28 Кб
Скачать

1. 6. Основы программной инициализации и изменения режимов работы pic

Программный доступ к PIC осуществляется с помощью специальных команд ввода/вывода INT/OUT, адресующих порты ввода/вывода, зарезервированные за PIC. Доступ к ведущему PIC осуществляется с помощью двух портов с адресами 20h и 21h. Доступ к ведомому PIC осуществляется с помощью портов с адресами 0A0h и 0A1h.

Использование всего пары адресов для программного взаимодействия на большое число программно-доступных регистров PIC объясняется, во-первых, строгим заданием порядка следования слов (регистров) при инициализации, во-вторых – использованием специальных битов идентификации, с помощью которых различаются слова (регистры) инициализации и рабочие приказы.

Слова приказов инициализации (регистров инициализации) устанавливаются общей процедурой инициализации при включении компьютера и в дальнейшем не изменяются. Слова рабочих приказов (операционных регистров) используются для динамического управления обработкой прерываний и могут изменяться в ходе работы компьютера. В порт с четным адресом выводятся слова ICW1, OCW2, OCW3. В порт с нечетным адресом выводятся остальные слова приказов.

Инициализация PIC начинается выводом в порт с четным адресом приказа ICW1, далее контроллер принимает приказ ICW2 в порт с нечетным адресом. Необходимость ввода последующих приказов инициализации определяется единичными значениями соответствующих бит приказа ICW1.

Для стандартных схем ПК на базе процессоров Intel процесс инициализации включает в себя вывод всех четырех слов.

1. 7. Основные функции и назначения основных битов приказов инициализации

Регистры КПП делятся на 2 группы: регистры инициализации ICW1-ICW4 и операционные регистры OCW1-OCW3.

Регистры инициализации загружаются при инициализации контроллера и в процессе работы КПП не меняются.

ICW1 определяет особенности последовательности приказов инициализации. Два специальных бита определяют, будут ли присутствовать слова ICW3 и ICW4 в последовательности приказов. Один из битов определяет режим запуска по входам IRQ0-IRQ7. Режим запуска задает способ установки битов в регистре IRR при появлении запроса на соответствующем входе IRQi. При сброшенном бите запуск осуществляется по фронту сигналов, при установленном бите – по уровню сигналов.

Регистр ICW1 - управление микросхемой:

- настраивает контроллер на восприятие сигналов запроса по низкому уровню или заднему фронту;

- определяет, используется в МПС единственный КПП или применяется их каскадное включение;

- определяет порядок загрузки приказов инициализации. Необходимость этого обусловлена тем, что в пространстве ввода/вывода каждому контроллеру выделено всего 2 адреса. Так, в стандартной конфигурации персональной ЭВМ ведущему контроллеру выделены адреса 20h и 21h, а ведомому - A0h и A1h. В то же время каждый контроллер имеет в своем составе 7 регистров, к которым должен быть обеспечен программный доступ. В частности, при инициализации необходимо занести информацию в 4 регистра ICWi.

ICW2 – содержимое этого регистра задает базовый адрес последовательности векторов прерываний, размещаемых в таблице векторов. Собственно под базовый адрес отводятся пять старших бит приказов, младшие три бита определяются номером источника запроса и фиксируются с помощью шифратора приоритета (см. схему). Для ведущего PIC базовый адрес инициализируется на значение 08h, для ведомого PIC – на значение 70h. Значение базового адреса дополняется уровнем обслуживаемого запроса и выставляется микросхемой PIC на внешнюю шину данных в цикле подтверждения прерывания. Фактически, содержимое регистра ICW2 и является номером (типом) обрабатываемого прерывания.

Регистр ICW2 - регистр типа прерывания. При инициализации в 5 его старших разрядов заносится некоторая константа. В процессе обработки запросов прерываний в 3 младшие разряда этого регистра заносится номер входа IRQi, по которому принят запрос, подлежащий обработке (рисунок 14.6):

Рисунок 14.6 – Формат регистра типа прерывания ICW2

В персональной ЭВМ в регистр ICW2 ведущего контроллера при инициализации заносится константа 00001b, а в ведомый - константа 01110b. Поэтому типы всех прерываний, запросы от которых поступают через ведущий КПП, лежат в диапазоне 00001000b-00001111b (08h-0Fh), а через ведомый - в диапазоне 01110000b-01110111b (70h-77h).

ICW3 – определяет связи микросхем PIC при их каскадном включении. Для ведущего PIC установленные биты определяют, к каким входам IRQ подключаются ведомые контроллеры. В свою очередь, сброшенное значение бита для ведущего PIC означает, что к соответствующему входу подключается запрос от ВУ, либо этот вход вообще не используется. Для ведомых PIC младшие три бита приказа являются кодом идентификации и задают номер линии запроса ведущего PIC, к которой подключается выход INT ведомого контроллера.

Регистр ICW3 - регистр управления ведомым. Имеет различное назначение в ведущем и ведомом КПП. В ведущем КПП устанавливаются единицы в разрядах, соответствующих линиям с подключенными ведомыми КПП. В персональной ЭВМ его значение имеет вид 00000100b. В ведомом КПП пять старших разрядов этого регистра установлены в 0, а в трех младших кодируется номер входа ведущего КПП, к которому подключен данный ведомый. В персональной ЭВМ его значение имеет вид 00000010b.

ICW4 – наиболее важным битом этого приказа является бит, именуемый AEOIAutomatic End Of Interrupt (автоматический конец прерывания). Установленный бит задает соответствующий режим автоматического конца прерывания. В этом режиме выделенный бит обслуживаемого запроса в регистре ISR автоматически сбрасывается в тот момент, когда начинается обработка соответствующего этому биту прерывания. Следствием этого является возможность приема к обслуживанию запроса того же типа до окончания обработки предыдущего запроса. Сложность работы в этом режиме обусловлена тем, что процедура обработки должна обеспечивать свойство реентерабельности (повторной входимости).

Регистр ICW4 - регистр управления режимом. Определяет, является данный КПП ведущим или ведомым, тип окончания прерывания, то есть кем должен сбрасываться бит запроса в регистре обслуживания прерывания ISR, и другие параметры работы.

После инициализации PIC готов к работе в заданном режиме, т.е. способен выполнять следующие действия:

1) маскировать или размаскировать аппаратные прерывания;

2) изменять приоритеты уровней;

3) издавать команду завершения обработки аппаратного прерывания (AEOI);

4) переводить контроллер в режим опроса и считывать состояния регистров IRR и ISR с помощью вывода в соответствующий порт одного из слов рабочих приказов.