Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Консп_АПЗ_ПК_10_укр.doc
Скачиваний:
45
Добавлен:
10.02.2016
Размер:
2.7 Mб
Скачать

9.2. Організація системи переривань

Функціональна схема системи переривань наведена на рис.9.2.

Система заснована на взаємодії CPU 8088 з контролером переривань PIC 8259А.

Рис. 9.2. Організація переривань

Початок переривання складається з подачі сигналу запиту на переривання IRQ зовнішнім пристроєм, що вимагає обслуговування, на один з восьми входів PIC. Останній робить запит на CPU сигналом INT. Крім цього, переривання може бути ініційовано відповідною командою. Центральний процесор видає два сигнали підтвердження INTA. У відповідь на сигнал підтвердження -INTА1 8259А не видає даних і залишається в Z-Стані. У цей час CPU завершує виконання поточної команди, копіює регістри F, CS, IP у стек, скидає прапор IF і готується до прийому байта з 8259. По сигналу -INTА2 8259 посилає в CPU номер переривання. Для визначення адреси початку програми CPU використовує таблицю вказівників векторів переривань, що завжди розміщається на початку пам'яті за адресою 0..3FF (1кБ).

Таблиця містить 256 елементів по 4 байти в кожному. У молодших двох байтах утримується зміщення адреси, а в старших двох байтах - базова адреса сегмента. CPU обчислює адреса зміщення як номер переривання помножений на 4 та зчитує його в регістр IP. Наступні два байти зчитуються в регістр CS та починається виконання програми за адресою CS:IP

Наприкінці програми переривання міститься команда посилки байта з CPU в 8259, що інформує про завершення переривання. CPU відновлює стан регістрів, який був до початку переривання, а 8259 готовий до обслуговування наступних запитів IRQ від зовнішніх пристроїв. У системі AT та вище використовуються два контролери переривань, включені каскадно.

9.3. Контролер переривань 8259

Структурна схема контролера представлена на мал. 9.3.

У регістрах запитів (РЗПР) і обслужених запитів (РОЗПР) порозрядно зберігаються запити від периферійних пристроїв, що очікують, та від обслужених периферійний пристроїв. Після зняття запиту та закінчення переривання у відповідний розряд записується 0.

Програмування 8259 зводиться до запису в нього слів (байт) командної ініціалізації (СКІ) і слів команд операцій (СКО). СКІ вводяться на початку роботи контролера (в BIOS) та задають режим його роботи.

│INTA# │ INT

v ^

┌────────┐ ┌───┴──────────┴────┐

D7..D0 │ Буфер │ ║ │ Схема управління │

════════╡ шини ╞═══╣ └─┬───┬──────┬──────┘

│ даних │ ┌───────┘ v ^

└────────┘ │ ╠═════╦═══│══════│══╦═══

┌────────┐ │ ║ ┌─╨───┴──┐ ┌─┴──╨───┐

RD#────>┤ Логіч. ├─┤ ║ │ Регістр│ │ Регістр├<──IRQ0

WR#────>┤ схема │ │ ║ │ обслу- │ │ запитів├<──IRQ1

А0────>┤ читан./│ │ ║ │ жених │ │ перери-├<── ...

CS#────>┤ запису │ │ ║ │ запитів│ │ вань ├<──IRQ7

└────────┘ │ ║ └───┬────┘ └───┬────┘

┌────────┐ │ ║ ^ ^

CАS0<──>┤ Буферн.├─┘ ║ ┌───┴──────────┴────┐

CАS1<──>┤ схема │ ╠═══╡ Схема маскування │

CАS2<──>┤ каска- │ ║ │ запитів та аналіза│

DE# ──>┤ дування│ │ їх по пріоритету │

└────────┘ └───────────────────┘

Рис. 9.3. Структура контролера 8259

У процесі роботи можлива зміна алгоритму обслуговування запитів за допомогою команд СКО1...СКО3. СКО1 заноситься в порт 21h та забезпечує порозрядне маскування входів IRQ0...IRQ7. Одиниця в i-му розряді забороняє переривання по входу IRQi. Байти СКО2 та СКО3 записуються в порт 20h. СКО2 (А0=0, D4=0, D3=0) указує вид установки дна та дно пріоритетного кільця, а також вид кінця переривання. Наприклад, наприкінці програми переривання, як правило, заноситься число 20h у порт 20h:

MOV AL, 20h

OUT 20h, AL

Це означає нормальний кінець переривання для 8259 та перехід на обслуговування інших входів IRQ.

Контрольні питання

1. Чи можливо функціонування ПЕОМ без переривань?

2. Дайте класифікацію типів переривань.

3. Як організована система переривань?

4. Приведіть опис контролера переривань.

5. Навіщо в програмі переривання в порт 20h заноситься число 20h?