Добавил:
Студент, если у тебя есть завалявшиеся работы, то не стесняйся, загрузи их на СтудентФайлс! Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МИУС .docx
Скачиваний:
5
Добавлен:
16.07.2022
Размер:
756.18 Кб
Скачать

3.4. Программируемый контроллер прерываний

Программируемый контроллер прерываний (ПКП) позволяет без дополнительных аппаратурных затрат обрабатывать до 8 векторов прерывания. Число запросов можно увеличить до 64 с помощью каскадно соединенных нескольких БИС. Каскадирование контроллеров приведено на рис.

ПКП позволяет:

  1. программно задавать различные режимы задания приоритетов;

  2. задавать адреса размещения в памяти подпрограмм обработки прерываний;

  3. разрешать и запрещать отдельные запросы.

Устройство может вырабатывать команду CALL для вызова подпрограммы обработки прерывания и выдавать ее в шину данных.

Ниже на рис.13 приведена функциональная схема ПКП.

D

Буфер данных

Схема управления

Регистр маски прерывания

Схема управления Чт / Зп

Схема управления каскадиро-ванием

7-D0 INTR INTA

A0

С S

R

Рг С

А

Рг

ЗП

D IRO-IR7

W R

CAS0

CAS1

CAS2

SP

Рис.13. Функциональная схема ПКП

РгС – регистр обслуживаемых прерываний; 8- разрядный регистр, единица в соответствующем разряде показывает, прерывания каких уровней обрабатываются в данный момент в МП.

А – арбитр приоритета, функцией данного блока является разрешение конфликта при одновременном поступлении запросов на входы IR0 – IR7.

Рг ЗП – регистр запросов прерываний; 8-разрядный регистр, который фиксирует поступление сигнала на одном их входов IR0 –IR7.

А0 – адрес; начальный адрес области памяти для хранения процедур обработки прерываний.

CAS0 - CAS2 – каналы каскадирования;

SP – выбор ведомого контроллера;

INTR – запрос прерывания;

INTA – подтверждение запроса прерывания;

IR0 –IR7 – входы запросов прерывания (вектора прерываний).

Регистр маски – 8-разрядный регистр, с помощью которого можно запретить обработку запросов прерывания. Для запрещения (маскирования) определенных уровней прерывания необходимо установить маску прерывания, т.е. занести 1 в соответствующие разряды регистра.

Во время работы ПКП может работать в одном из 4 режимов:

1. Режим вложенных прерываний. В этом режиме каждому вектору прерывания присваивается фиксированное значение приоритета. Вектор прерывания с наивысшим приоритетом имеет право прерывать обработку менее приоритетного прерывания.

2. Режим циклической обработки прерываний. В этом режиме значения приоритетов уровней векторов прерываний также линейно упорядочены, но уже не фиксированным образом, а изменяются после обработки по следующему принципу: последнему обслуженному прерыванию присваивается наименьший приоритет. Следующий по порядку вектор получает наивысший приоритет, поэтому будет обслужен в первую очередь.

3. Режим адресуемых приоритетов. В этом режиме программист или система самостоятельно могут назначить вектор прерывания с наивысшим приоритетом.

4. Режим опроса. Этот режим запрещает контроллеру автоматически прерывать работу МП при появлении запроса от внешнего устройства. Процессор должен сам обратиться к контроллеру в регистр запросов, проанализировать содержимое регистра и далее действовать по своему алгоритму. Данный режим моделирует опросную дисциплину обработки прерываний. Инициатором обработки прерывания становится не сам вектор прерывания, как при векторной дисциплине, а МП, причем в определяемые им самим моменты времени.

Программирование ПКП осуществляется через адресное пространство ввода-вывода с помощью двух 8-битовых портов с адресами 20H и 21H. Для управления ПКП в эти порты в определенной последовательности посылаются слова-приказы двух типов – управляющее слово инициализации (УСИ), которое определяет режим работы контроллера, и операционное слово (ОС). УСИ – четыре (столько, сколько режимов), ОС – три.

Форматы их следующие.

Формат УСИ 1. Определить особенности последовательности приказов.

D7

D6

D5

D4

D3

D2

D1

D0

D0 = 1 – УСИ 4 будет присутствовать в данной последовательности приказов.

D1 = 0 – каскадное подключение контроллеров; УСИ 3 будет в последовательности приказов.

D1 = 1 – одиночное подключение контроллера; УСИ3 не будет.

D2,D5,D6,D7 – не используются ( постоянный 0).

D4 = 1 признак УСИ 1.

Формат УСИ 2. Определение базового адреса.

D7 D6 D5 D4 D3 D2 D1 D0

D0-D2 – не используются (постоянный 0)

D3 – D7 – биты для задания номера базового вектора.

Ф

D7 D6 D5 D4 D3 D2 D1 D0

ормат УСИ 3. Связь контроллеров.

Di = 1, если ко входу i подключен ведомый контроллер;

Di = 0, если ко входу i подключено внешнее устройство.

Формат УСИ 4. Дополнительные особенности обработки прерываний.

D7 D6 D5 D4 D3 D2 D1 D0

D0 (определяет тип микропроцессора); 0 – i8080; 1 – i8086 (PENTIUM).

D1 – особенности обработки конца прерывания. 0 – сброс бита в регистре состояний (Рг С) производит программа обработки прерывания; 1 – установка автоматического сброса бита в Рг С после получения сигнала INTA от МП.

D2 = 0 – данный контроллер ведомый,

D2 = 1 данный контролер ведущий.

D3 – указывает буферизованность шины данных; 0 – системная шина не буферизована; 1 – системная шина буферизована.

D4 = 0 – определяет использование специального вложенного режима.

D5-D7 – не используются (постоянный 0).

Таким образом, приказы инициализации задают контроллеру режимы работы в условиях вложенных прерываний. Если требуется конкретизировать порядок обработки для отдельных векторов прерываний, необходимо использовать специальные операционные слова.

Форматы их следующие.

Формат ОС1. Управление регистром масок.

D7 D6 D5 D4 D3 D2 D1 D0

Di = 0 – разрешить прерывание уровня i;

Di = 1 – запретить (замаскировать) прерывание уровня i.

ОС2. Управление приоритетом.

Этот приказ определяет выполнение следующих действий:

  • сбросить бит в Рг ОП с наибольшим приоритетом;

  • сбросить бит в Рг ОП для определенного уровня прерываний;

  • установить низший приоритет для определенного уровня;

  • поменять приоритеты уровней с максимальным и минимальным приоритетами;

  • поменять приоритеты уровней с заданным и минимальным приоритетами.

О

D7 D6 D5 D4 D3 D2 D1 D0

С 3. Общее управление контроллером

D0,D1 – 10 – прочитать содержимое регистра запросов (Рг ЗП)

11 – прочитать содержимое регистра состояний.

D2 – 0 или 1 – устанавливает (или не устанавливает режим опроса.

D3 – 01 – признак ОС3.

D5,D6 – 11 – установит режим специального маскирования, в котором все маскированные в регистре маски запросы будут обрабатываться микропроцессором независимо от состояния регистра состояний Рг С.

Рис.14. Каскадирование контроллеров прерывания

Соседние файлы в предмете Основы микропроцессорной техники