Теоретичні та практичні відомості з питань розробки систем керування на базі сучасних мікропроцесорних систем, страница 13

Команда СКОЗд припиняє дію команди СКОЗг. Таким чином, приведена система команд дозволяє встановлювати різні алгоритми і закріплювати пріоритети за зовнішніми пристроями як статично, так і динамічно, тобто у будь-який час роботи основної програми.

Переривання за запитом можливе після установки початкового стану мікросхеми. При перериванні за запитом для обслуговування запитів, що поступили на вхід мікросхеми повинна бути подана послідовність сигналів (-INTA) у відповідь на сигнал мікросхеми виходу ІNT. Всі запити, що поступили на вхід мікросхеми, записуються у відповідні розряди РЗПР. Наявність запиту сприймається мікросхемою під час переходу сигналу IRQ від низького рівня до високого, причому цей рівень повинен утримуватися принаймні до приходу першого сигналу ІNTA.

Схема МЗПР аналізує запити, що поступили, по рівню пріоритету і видає дозволи пристрою управління мікросхеми на видачу сигналу ІNT.

Запит з щонайвищим рівнем пріоритету, що пройшов через схему МЗПР, записується в регістр РОЗПР. Запити, що поступають з виходу РЗПР, можуть бути масковані. В регістрі маски команда CKOl встановлює в І розряди тих ланцюгів переривання, які слід маскувати. Масковані запити поступають на схему аналізу по рівню пріоритету і не впливають на запити переривань більш низького рівня.

РЗПР використовується для зберігання всіх запитів на переривання, що поступили на мікросхему, а РОЗПР — тих запитів на переривання, які обслуговувалися або обслуговуються в даний момент.

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

Для того щоб запити з більш низьким рівнем пріоритету отримали можливість обслуговування, потрібно або подати на мікросхему одну з команд CKO2 і встановити в 0 відповідний біт РОЗПР, або видати на мікросхему команду установки спеціального маскування (СКОЗг) і зняти дію цього запиту (біта РОЗПР) на запити з більш низьким рівнем пріоритету, не встановлюючи його в 0.

Послідовність сигналів (-INTA), які видаються на мікросхему у відповідь на сигнал INT, викликають видачу на шину даних трьохбайтової команди CALL, в якій вказана адреса підпрограми обслуговування запиту, що виробив сигнал INT, причому молодший байт адреси складається з трьох частини:

розрядів A7, A6 або A7, A6, A5 (залежно від запрограмованого формату), наперед записаних в мікросхему СКІ1;

розрядів A5, A4, A3 або A4 A3, A2 (залежно від запрограмованого формату), автоматично видаваних мікросхемою і відповідних двійково-десяткового коду номера входу IRQ, що отримав підтвердження; розрядів A2, A1, А0 або Al, А0 (залежно від запрограмованого формату), встановлених апаратно в нульовий стан. Код старшого байта, записаного в мікросхему наперед, видається з регістра СКІ2. В МПК серії KP580 по команді CALL основна програма переривається і починається виконання підпрограми обслуговування даного запиту. Після виконання підпрограми обслуговування запиту необхідно виробити повернення до перерваної програми. Підпрограма обслуговування даного запиту може бути оформлена приблизно так:

D1 — заборонить переривання (якщо це необхідно);

програма обслуговування;

OUT—видача на мікросхему команди CKO2;

POP, PSW — відновлення вмісту регістрів перерваної програми;

E1 — дозвіл переривання;

RET — повернення до перерваної програми.

Команди DI, OUT, POP, PSW, E1, RET узяті з системи команд мікропроцесора KP580BM80A.

Переривання за результатами опиту здійснюється по ініціативі програми мікропроцесорної системи шляхом подачі на мікросхему команди СКОЗа і подальшої подачі на мікросхему сигналу читання (-RD) = 0.