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

Опис основних елементів і8259а

Схема керування. Основною функцією цього блока є приймання команд від мікропроцесора та передача йому інформації про стан ПКП. Обмін кодами з мікропроцесором здійснюється через 8-розрядний буфер даних (Data BUS Buffer), що є інтерфейсом між ПКП та системною шиною даних ПЕОМ. Секція керування І8259А складається з 8-роз-рядних регістрів, розділених на дві групи: перша — для команд ініціалізації ICW (Initialization Command Word), друга для робочих команд OCW (Operation Command World). Команди ICW звичайно встановлюються процедурою ініціалізації або при ввімкненні живлення ПЕОМ і при роботі не зміюються. Робочі команди OCW застосовуються для динамічного керування обробкою переривань.

Схема керування формує сигнал запиту на перериван­ня, що надсилається на вхід INTR (запит на переривання) мікропроцесора. Якщо прапорець регістра прапорців проце­сора IF=1, процесор видає сигнали стану підтвердження переривань у контролер шини, який формує сигнал INTA, що поступає на відповідний вхід І8259А. За цим сигналом скидається на 0 розряд IRR та встановлюється на 1 розряд ISR, що відповідають рівню оброблюваного переривання. Після отримання другого сигналу INTA від контролера шини, І8259А передає на шину даних 8-бітовий номер переривання.

Регістр запитів переривань IRR, арбітр пріорите­тів PR, регістр маски переривання IMR та регістр об­слуговування запитів ISR призначені для сприйняття запи­тів на переривання на входах IRQ0-IRQ7, керування ними та дозволи формування сигналу INT по незамаскованому запиту найвищого пріоритету. У регістрі IRR фіксуються запити на входах; арбітр пріоритетів PR визначає пріоритети запитів у IRR; у регістрі ISR зберігаються поточні оброблювані запити і, таким чином, міститься інформація про поточний пріоритет процесора.

Логіка «читання/запис» призначена для аналізу сигналів CS*, RD*, WR*, A0; активізації мікросхеми; ініціалізації режиму читання процесором вмісту регістрів IRR, ISR та IMR; ініціалізації режиму запису мікропро­цесором керуючих слів ICWi та OCWi у ПКП.

Керуючі слова ICWi та OCWi приймаються контролером в 9-ти розрядному форматі. Розряди 0-7 передаються через 8-розрядний буфер даних. Старший розряд слова під назвою А0 встановлюється на 0 або 1 залежно від того, через який з двох портів вводу/виводу (парна чи непарна адреса) було передано керуюче слово. Якщо А0=0 передача здійснюється через порт з парною адресою, а якщо А0=1 — через порт з непарною адресою.

Регістр запитів на переривання IRR обслуговується через входи IRQ0-IRQ7 контролера. Згідно із сигналом запиту на переривання схемою керування встановлюється відповідний біт у регістрі IRR.

Регістр стану (регістр оброблюваних запитів ISR) опи­сує в бітах 0-7, переривання яких рівнів (0-7) на даний мо­мент обробляються.

Регістр маскування запитів на переривання IMR описує, які переривання на даний момент замасковані. Одиничне значення біту в IMR вказує на те, що переривання відповідного рівня при появі запиту в IRR блокується.

Схема обробки пріоритетів (шифратор пріоритетів, priority resolver PR) визначає, переривання якого рівня на даний момент є найбільш пріоритетним для виконання.

Схема каскадування відповідає за роботу каскаду з кількох контролерів.

Дії, що складають процедуру формування запиту та обробки переривання:

системна периферія на СП або пристрій вводу/ виводу на АТ-шині активізує одну з ліній IRQx;

у регістрі IRR І8259А відбувається встановлення відповідних розрядів на 1 (цей регістр попередньо настрою­ється на сприйняття фронтових або рівневих запитів);

незамасковані запити (тобто ті, для яких відповідні розряди регістра IMR містять 0) передаються в арбітр PR; замасковані запити блокуються;

згідно з вибраною в процесі ініціалізації дисципліни обслуговування арбітр виділяє найбільш пріоритетний запит та передає його в регістр ISR;

пріоритет запиту порівнюється з поточним пріори­тетом МП. Якщо пріоритет запиту нижчий, то обробка запиту відкладається; у протилежному випадку контролер формує сигнал переривання INT. МП сприймає запит переривання і, якщо в регістрі прапорців прапорець IF=1, по закінченні поточної команди починає реалізацію послі­довності переривання: виконує два цикли підтвердження переривання з формуванням активного імпульсу по лінії INTA* в кожному з них;

у першому циклі INTA* дія тригерів-записів у IRR забороняється. Відбувається встановлення відповід­ного розряду в ISR, скидання розряду в IRR, обчислюється номер переривання в регістрі ICW2;

у другому циклі поточний вміст ICW2 (номер пере­ривання) передається в процесор по шині даних D0-D7;

процесор приймає номер переривання та викорис­товує його в якості адреси для звертання до нижчої зони адрес оперативної пам'яті (таблиці переривань), яка містить значення IP (лічильника команд) та CS (сегмента коду), що визначають початкові адреси програм обслуговування переривань (ПОП);

поточні значення IP, CS та прапорці запам'ятову­ються процесором у стеці (для можливості відновлення перерваної програми), а на їх місце заносяться вибрані значення з таблиці та виконується ПОП. Біт IF у регістрі EFLAGS скидається автоматично, що забезпечує заборону

обслуговування інших переривань. Якщо повинні бути дозволені вкладені переривання, потрібно програмно вста­новити прапорець IF=1;

команда IRET, що завершує ПОП, відновлює попе­редній стан МП (у тому числі і прапорця IF).

Режими обслуговування джерел переривань Призначення та характеристики

ПКП може знаходитись у двох станах: настройки або обслуговування запитів на переривання. У стані настройки контролер приймає керуючі слова ініціалізації ICW, а в стані обслуговування контролер приймає операційні керуючі слова OCW та здійснює обслуговування апаратних переривань. При настройці ПКП може бути переведений в один із шести режимів обслуговування запитів на переривання.

  1. Режим фіксованих пріоритетів. У цьому режимі контролер знаходиться після ініціалізації системи. Запити

  2. переривань мають тверді пріоритети від 0 до 7 та обробляються згідно з рівнем пріоритетів. Недоліком режиму є те, що переривання з меншим пріоритетом ніколи не буде обробленим, якщо в процесі обробки переривань з вищим пріоритетом постійно виникають запити на ці переривання.

  3. Автоматичний зсув пріоритетів. У цьому режимі дається можливість обробляти переривання всіх рівнів.Наприклад, після обробки переривання рівня 4, йому автоматично присвоюється нижчий пріоритет, при цьому пріоритети для всіх інших рівнів циклічно зсуваються і переривання рівня 5 будуть мати в даній ситуації вищий пріоритет.

  4. Програмно керований зсув пріоритетів дозволяє програмісту самому передавати команду циклічного зсуву пріоритетів ПКП, задавши відповідне керуюче слово. У команді задається номер рівня, якому потрібно присвоїти вищий пріоритет. Після виконання команди пристрій працює в режимі фіксованих пріоритетів з новим їх розподіленням по рівнях. При цьому пріоритети зсуваються циклічно. Наприклад, якщо максимальний пріоритет був призначений рівню 3, то рівень 2 отримає мінімальний пріоритет та буде оброблюватись останнім.

  1. Автоматичне завершення обробки переривання (Automatic End of Interrupt, AEOI). У звичайному режимі роботи процедура обробки апаратного переривання повинна перед своїм завершенням очистити свій біт у регістрі ISR спеціальною командою, інакше нові переривання не будуть оброблятися ПКП. У режимі АЕОІ потрібний біт в ISR автоматично скидається в той момент, коли починається обробка переривання відповідною процедурою обробки та від неї не вимагається видавати команду завершення обробки переривання (ЕОІ). Складність роботи в даному

  2. режимі обумовлюється тим, що всі процедури обробки апаратних переривань повинні бути повторно вхідними, так як за час їх роботи можуть виникнути повторно переривання того самого рівня.

  3. Режим спеціальної маски. Даний режим дозволяє відмінити пріоритетне упорядкування обробки запитів та обробляти їх по мірі поступання. Після відміни режиму спеціальної маски, попередній порядок пріоритетів рівнів зберігається.

6. Режим опитування. У цьому режимі апаратні

переривання не здійснюються. Даний режим дозволяє отримати інформацію від ПКП про наявність запитів на переривання і, якщо запити є, номер рівня з максимальним пріоритетом, по якому є запит.

Практикум

За допомогою програми Checkit у середовищі DOS або емуляції DOS визначіть розподілення входів IRQ0-IRQ15 ПКП між пристроями Вашої ПЕОМ, визначте кількість та номери рівнів, що не використовуються.

Порядок виконання завдання

  1. Запустіть на виконання програму Checkit у середовищі DOS або емуляції DOS.

  2. Увійдіть у вікно Sys Info.

  3. Виберіть опцію Interrapts та увійдіть у неї.

У вікні цієї опції Ви побачите розподілення входів IRQ0-IRQ15 ПКП між пристроями Вашої ПЕОМ, порівняйте з розподіленням, вказаним у таблиці 2.1

  1. Перепишіть пристрої в порядку зменшення рівня пріоритету.

  1. Вийдіть з програми Checkit.

Питання для самоконтролю знань

1. Нарисуйте структурну схему контролера переривань ПЕОМ та поясніть принципи його функціонування.

  1. Вкажіть розподілення входів IRQ0-IRQ15 ПКП між пристроями ПЕОМ.

  2. Вкажіть призначення основних вхідних та вихідних сигналів контролера переривання ПЕОМ.

  3. Назвіть основні функції, що реалізуються контролером І8259А.

  4. Нарисуйте структурну схему І8259А з указанням вхідних та вихідних сигналів.

  5. Які функціональні вузли входять до складу І8259А? Призначення, характеристики.

  6. Назвіть послідовність дій, що реалізують процедуру переривання.

  7. Перелічіть режими обслуговування джерел перери вання, що реалізуються контролером І8259А.

  8. Призначення та характеристики режиму фіксованих пріоритетів по рівнях переривань.

  1. Призначення та характеристики режиму циклічного автоматичного зсуву пріоритетів.

  2. Призначення та характеристики режиму циклічного програмно керованого зсуву пріоритетів.

  3. Призначення та характеристики режиму автоматичного завершення обробки переривання.

  4. Призначення та характеристики режиму спеціального маскування.

  5. Призначення та характеристики режиму опитування пристроїв.

Резюме

Контролер апаратних переривань ПЕОМ IBM PC/AT являє собою дві каскадно ввімкнені мікросхеми І8259А, що забезпечують обслуговування 15 джерел переривань. В обов'язки контролера входить:

фіксація запитів на переривання від 15 зовнішніх джерел;

оцінка пріоритету запиту, що поступив, та форму­вання черги на обслуговування згідно з встановленою дис­ципліною;

програмне маскування поступаючих запитів;

присвоєння циклічних або програмно змінюваних пріоритетів входам контролера, на які поступають запити;

визначення та передача процесору номера апарат­ного переривання;

ініціювання виклику процедури обробки апаратного переривання, що поступило.

Мікросхема І8259А являє собою складний багато-режимний програмований пристрій, до складу якого входять:

схема керування читання/запис (Read/Write Control Logic, R/WCL);

схема керування;

схема каскадування;

регістр запитів на переривання (Interrupt Request Register, IRR);

схема обробки пріоритетів (Priority Resulver, PR);

регістр стану (In Servise Register, ISR);

регістр маскування запитів на переривання (Interrupt Mask Register, IMR).

Для підключення до системної шини ПЕОМ у мікро­схемі І8259А є такі вхідні та вихідні сигнали:

A0 (Address 0). Служить для вказання порту І8259А, до якого здійснюється звертання;

CAS0-CAS2 (Cascade). При каскадуванні контро­лерів служать для ідентифікації веденого контролера;

CS* (Chip Select). Ідентифікує звертання до контро­лера;

D0-D7 (bidirectional Data bus). Служать для взає­модії з МП по шині даних;

INT (INTerrupt). Сигнал запиту переривання від системи маскованих джерел переривання;

INTA* (INTerrupt Acknowlege). Вхід підтвердження переривання від контролера шини;

IRQ0-IRQ7 (Interrupt Request). Входи для запитів переривання від пристроїв вводу/виводу або ведених контролерів;

RD* (ReaD). Разом з сигналами CS та АО викори­стовується для видавання на D0-D7 вмісту регістрів IMR, ISR та IRR або рівня пріоритету;

SP/EN* (Slave Program/ENable buffer). Виконує дві функції. У режимі буфера використовується як вихідний сигнал для керування приймач-передавачами; в не буферному режимі — як вхідний сигнал для вказання призначення контролера: SP=0 ведений, SP=1 ведучий;

WR* (WRite). Використовується для запису слів ініціалізації та команд у регістри керування;

кожна мікросхема контролера переривань може обслуговувати 8 джерел переривань у режимах:

фіксованих пріоритетів;

автоматичного зсуву пріоритетів;

програмно керованого зсуву пріоритетів;

автоматичного завершення обробки переривання (Automatic End of Interrapt, AEOI);

спеціальної маски, опитування.

Ваш наступний крок

Ви вивчили архітектуру та принципи функціонування контролера переривань ПЕОМ, а також архітектуру та принципи функціонування його базового елемента — мікросхеми І8259А на рівні програмного доступу до регістрів. Тепер можна приступати до детального вивчення режимів роботи ПКП та способів їх ініціалізації.

Заняття 3. Стани ПКП, керуючі слова ініціалізації та операційні слова робочих команд

Тема заняття

Призначення та формати керуючих слів ініціалізації ПКП.

Призначення та формати операційних слів (робочих команд) ПКП.

Мета заняття

Усвідомити поняття ініціалізації ПКП та керування ними в заданому режимі ініціалізації.

Вивчити призначення та формати керуючих слівініціалізації ICW — Initialization Control Word та операційних слів OCW — Operation Control Word.

Зрозуміти та засвоїти відмінності між словами іні­ціалізації та операційними словами.

Навчитись формувати структури керуючих слів ініціалізації та операційних слів.