close

Вход

Забыли?

вход по аккаунту

?

MPSОтчет3

код для вставкиСкачать

Министерство образования Российской Федерации
Вятский государственный университет
Факультет автоматики и вычислительной техники
Кафедра ЭВМ
Отчет по лабораторной работе № 3
"Исследование системы прерываний на основе контроллера прерываний К1810ВН59А для микропроцессоров К580ВМ80 и К1810ВМ86"
по дисциплине "Микропроцессорные системы"
Выполнил студент гр. ВМ-41 _________________ / Новикова Л.А./
(подпись)
Проверил доцент кафедры ЭВМ _________________ / Бакшаев А.М./
(подпись)
Киров
2002 г.
Цель лабораторной работы:
Заключается в изучении:
* принципов организации системы прерываний на командном уровне на основе МПК К1810 и К580 для программируемого контроллера прерываний (ПКП) К1810ВН59А;
* принципов инициализации ПКП и программирования для различных режимов работы;
* способов включения ПКП при увеличении числа входных запросов IRQ;
* особенностей программирования при каскадном включении БИС ПКП;
* дисциплин обслуживания запросов на прерывание для заданной последовательности поступающих запросов IRQ от источников прерываний.
Задание на экспериментальную часть
* разработать программу инициализации ПКП для заданных режимов работы;
* разработать текст основной программы, во время выполнения которой приходят запросы на прерывание IRQ;
* разработать тексты подпрограмм обработки прерываний, во время выполнения которых также могут приходить запросы IRQ;
* выполнить исследования принципов обслуживания запросов для следующих дисциплин обслуживания прерываний:
- фиксированных приоритетов;
- специального маскирования;
- циклического сдвига с использованием OCW2 формата RE по типу А;
- циклического сдвига с использованием OCW2 формата RSE по типу В
(L2-L0 = №ППОП + X);
- программного опроса.
Таблица 1 - Вариант задания режимов Таблица 2 - Начальные адреса ППОП
ЗаданиеВариант 161 фиксированных пр.Ведомая2 спецмаскированияВедущая с PSV3 сдвиг Аi8080, шаг 44 сдвиг B5 программного опр.X для типа B1Ведомые на входы IRQ ведущей:2,3№ ко- Вариант 16Основ-мандыIRQCSIPная прог-рамма4
11
182
1
5,3000h000hППОП
0
1
2
3
4
5
6
7
3
3
4
2
1
6
3
4
529h
153h
312h
2DCh
F30h
238h
029h
111h
080h
050h
070h
090h
110h
100h
040h
060h Таблица 3 - Последовательность запросов IRQ
№ вариантаПоследовательность запросов IRQВариант 164,7; 7,3; 2,6; 3; 5; 4,3; 1; 2,0 Таблица 4 - Задание для режима программного опроса Номер команды Номер командычтения СС ПКПпоступления IRQ6398111412
Задание на теоретическую часть
* разработать функциональную схему каскадного включения БИС ПКП ВН59А для микропроцессора К1810ВМ86 для вариантов заданий, приведенных в таблице 1;
* привести программу инициализации ведущей и одной ведомой БИС с настройкой на режимы работы, заданные в таблице:
Вариант16Ведущая: режим
маска (IRQ)Фикс.приор
4Ведомая: режим
маска (IRQ)А
* привести фрагмент тексты ППОП для ведомой и ведущей БИС ПКП (начало и конец ППОП).
Листинги программ инициализации
1. Режим фиксированных приоритетов (ведомая)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│01F│ │ │ │Инициализация │
│020│mov al,00010001b │ 1 │00000000│UP=0 | каскад | загр ICW4 │
│021│out a2h,al │ 1 │00000000│загрузка ICW1 │
│022│mov al,00011000b │ 1 │00000000│адрес IDT 060h │
│023│out a3h,al │ 1 │00000000│загрузка ICW2 │
│024│mov al,00000010b │ 1 │00000000│CAS 2 ведомая │
│025│out a3h,al │ 1 │00000000│загрузка ICW3 │
│026│mov al,00000001b │ 1 │00000000│ведомая | i8086 │
│027│out a3h,al │ 1 │00000000│загрузка ICW4 │
│028│mov al,01001011b │ 1 │00000000│установить чт ISR │
│029│out a2h,al │ 1 │00000000│загрузка OCW3 │
│02A│ret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
2. Режим специального маскирования (ведущая с PSV)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│01F│ │ │ │Инициализация │
│020│mov al,00010001b │ 1 │00000000│UP=0 | каскад | загр ICW4 │
│021│out a2h,al │ 1 │00000000│загрузка ICW1 │
│022│mov al,00011000b │ 1 │00000000│адрес IDT 060h │
│023│out a3h,al │ 1 │00000000│загрузка ICW2 │
│024│mov al,00001100b │ 1 │00000000│ведомые на 2,3 │
│025│out a3h,al │ 1 │00000000│загрузка ICW3 │
│026│mov al,00011101b │ 1 │00000000│ведущая|-EN|PSV=1|AEOI=0|i8086│
│027│out a3h,al │ 1 │00000000│загрузка ICW4 │
│028│mov al,01101011b │ 1 │00000000│спецмаскирование | чт ISR │
│029│out a2h,al │ 1 │00000000│загрузка OCW3 │
│02A│ret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
3. Режим циклического сдвига по типу А (i8080, шаг 4)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│01F│ │ │ │Инициализация │
│020│mov al,10110110b │ 1 │00000000│UP=0 | шаг 4 | одна БИС │
│021│out a2h,al │ 1 │00000000│загрузка ICW1 │
│022│mov al,00000001b │ 1 │00000000│адрес ППОП 1E0h │
│023│out a3h,al │ 1 │00000000│загрузка ICW2 │
│024│ret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
4. Режим циклического сдвига по типу В ┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│01F│ │ │ │Инициализация │
│020│mov al,00010011b │ 1 │00000000│UP=0 | одна БИС | загр ICW4 │
│021│out a2h,al │ 1 │00000000│загрузка ICW1 │
│022│mov al,00011000b │ 1 │00000000│адрес IDT 060h │
│023│out a3h,al │ 1 │00000000│загрузка ICW2 │
│024│mov al,00001101b │ 1 │00000000│PSV=0 | AEOI=0 | i8086 │
│025│out a3h,al │ 1 │00000000│загрузка ICW4 │
│026│ret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
5. Режим программного опроса
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│01F│ │ │ │Инициализация │
│020│mov al,00010011b │ 1 │00000000│UP=0 | одна БИС | загр ICW4 │
│021│out a2h,al │ 1 │00000000│загрузка ICW1 │
│022│mov al,00011000b │ 1 │00000000│адрес IDT 060h │
│023│out a3h,al │ 1 │00000000│загрузка ICW2 │
│024│mov al,00001101b │ 1 │00000000│PSV=0| -EN | AEOI=0 | i8086 │
│025│out a3h,al │ 1 │00000000│загрузка ICW4 │
│026│ret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
Подпрограммы обработки прерываний
1. Режим фиксированных приоритетов (ведомая)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│05F│ │ │ │ППОП 7 │
│060│sti │ 1 │00000000│разрешить прерывания │
│061│push ax │ 1 │00000000│сохранение AX │
│062│dec dx │ 1 │00000000│обработчик │
│063│mov ax,dx │ 1 │00000000│обработчик │
│064│inc ax │ 1 │00000000│обработчик │
│065│mov dx,ax │ 1 │00000000│обработчик │
│066│mov al,00100000b │ 1 │00000000│EOI |clr ISR #2 │
│067│out a2h,al │ 1 │00000000│загрузка OCW2 в ведомую │
│068│in al,a2h │ 1 │00000000│чтение ISR #2 │
│069│or al,00000000b │ 1 │00000000│ведомая ISR #2=0? │
│06A│jnz 6Dh │ 1 │00000000│ │
│06B│mov al,00100000b │ 1 │00000000│EOI | clr ISR # │
│06C│out 9Ch,al │ 1 │00000000│загрузка OSW2 в ведущую (9Ch) │
│06D│pop ax │ 1 │00000000│восстановить AX │
│06E│iret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
2. Режим специального маскирования (ведущая с PSV)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│05F│ │ │ │ППОП 7 (ведущей) │
│060│push ax │ 1 │00000000│сохранение AX │
│061│push dx │ 1 │00000000│сохранение Dx │
│062│sti │ 1 │00000000│разрешить прерывания │
│063│inc dl │ 1 │00000000│обработчик │
│064│mov al,2 │ 1 │01000100│обработчик │
│065│dec al │ 1 │00000000│обработчик │
│066│mov dl,al │ 1 │00000000│обработчик │
│067│mov al,8 │ 1 │00000000│обработчик │
│068│inc al │ 1 │00000000│обработчик │
│069│add al,dl │ 1 │00000000│обработчик │
│06A│mov al,01100111b │ 1 │00000000│EOI | clr ISR # │
│06B│out a2h,al │ 1 │00000000│загрузка OCW2 │
│06C│pop dx │ 1 │00000000│восстановление Dx │
│06D│pop ax │ 1 │00000000│восстановление AX │
│06E│iret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│08F│ │ │ │ППОП 3 (ведомой) │
│090│sti │ 1 │00000000│разрешить прерывания │
│091│push ax │ 1 │00000000│сохранение AX │
│092│dec al │ 1 │00000000│обработчик │
│093│mov al,1 │ 1 │00000000│обработчик │
│094│mov dl,16 │ 1 │00000000│обработчик │
│095│add al,dl │ 1 │00000000│обработчик │
│096│mov al,00100000b │ 1 │00000000│EOI | clr ISR │
│097│out aah,al │ 1 │00000000│загрузка OCW2 │
│098│in al,aah │ 1 │00000000│чтение ISR #3 │
│099│or al,0h │ 1 │00000000│ведомая ISR=0? │
│09A│jnz 10Ch │ 1 │00000000│ │
│09B│mov al,01100011b │ 1 │00000000│SEOI | clr ISR # │
│09C│out a2h,al │ 1 │00000000│загрузка OSW2 в ведущую (9Сh) │
│09D│pop ax │ 1 │00000000│восстановление AX │
│09E│iret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
3. Режим циклического сдвига по типу А (i8080, шаг 4)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│05F│ │ │ │ППОП 7 │
│060│sti │ 1 │00000000│разрешить прерывания │
│061│pushf │ 1 │00000000│сохранение PSW │
│062│push ax │ 1 │00000000│сохранение AX │
│063│mov al,1 │ 1 │00000000│обработчик │
│064│mov dl,16 │ 1 │00100000│обработчик │
│065│add al,dl │ 1 │00000000│обработчик │
│066│mov al,1 │ 1 │00000000│обработчик │
│067│mov dl,16 │ 1 │00000000│обработчик │
│068│add al,dl │ 1 │00000000│обработчик │
│069│mov al,10100000b │ 1 │00000000│R | EOI │
│06A│out a2h,al │ 1 │00000000│загрузка OCW2 │
│06B│pop ax │ 1 │00000000│восстановление AX │
│06C│popf │ 1 │00000000│восстановление PSW │
│06D│ret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│19F│ │ │ │таблица переходов к ППОП │
│1A0│jmp 080h │ 1 │00000000│ППОП 0 │
│1A1│ │ │ │ │
│1A2│ │ │ │ │
│1A3│ │ │ │ │
│1A4│jmp 050h │ 1 │00000000│ППОП 1 │
│1A5│ │ │ │ │
│1A6│ │ │ │ │
│1A7│ │ │ │ │
│1A8│jmp 070h │ 1 │00000000│ППОП 2 │
│1A9│ │ │ │ │
│1AA│ │ │ │ │
│1AB│ │ │ │ │
│1AC│jmp 090h │ 1 │00000000│ППОП 3 │
│1AD│ │ │ │ │
│1AE│ │ │ │ │
│1AF│ │ │ │ │
│1B0│jmp 110h │ 1 │00000000│ППОП 4 │
│1B1│ │ │ │ │
│1B2│ │ │ │ │
│1B3│ │ │ │ │
│1B4│jmp 100h │ 1 │00000000│ППОП 5 │
│1B5│ │ │ │ │
│1B6│ │ │ │ │
│1B7│ │ │ │ │
│1B8│jmp 040h │ 1 │00000000│ППОП 6 │
│1B9│ │ │ │ │
│1BA│ │ │ │ │
│1BB│ │ │ │ │
│1BC│jmp 060h │ 1 │00000000│ППОП 7 │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
4. Режим циклического сдвига по типу В ┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│05F│ │ │ │ППОП 7 │
│060│sti │ 1 │00000000│разрешить прерывания │
│061│push ax │ 1 │00000000│сохранение AX │
│062│mov al,10 │ 1 │00000000│обработчик │
│063│not al │ 1 │00000000│обработчик │
│064│dec al │ 1 │01000100│обработчик │
│065│mov al,10 │ 1 │00000000│обработчик │
│066│not al │ 1 │00000000│обработчик │
│067│mov dl,16 │ 1 │00000000│обработчик │
│068│add al,dl │ 1 │00000000│обработчик │
│069│dec al │ 1 │00000000│обработчик │
│06A│mov al,11100000b │ 1 │00000000│R | SEOI | EOI| clr ISR[0] │
│06B│out a2h,al │ 1 │00000000│загрузка OCW2 │
│06C│pop ax │ 1 │00000000│восстановление AX │
│06D│iret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
5. Режим программного опроса ┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│05F│ │ │ │ППОП 7 │
│060│pushf │ 1 │00000000│сохранить PSW │
│061│push ax │ 1 │00000000│сохранение AX │
│062│dec dl │ 1 │00000000│обработчик │
│063│mov al,3 │ 1 │00000000│обработчик │
│064│add al,dl │ 1 │00000000│обработчик │
│065│mov dl,5 │ 1 │00000000│обработчик │
│066│inc dl │ 1 │00000000│обработчик │
│067│add al,dl │ 1 │00000000│обработчик │
│068│mov al,00100000b │ 1 │00000000│EOI | clr ISR │
│069│out a2h,al │ 1 │00000000│загрузка OCW2 │
│06A│pop ax │ 1 │00000000│восстановление AX │
│06B│popf │ 1 │00000000│восстановление PSW │
│06C│retf │ 1 │00000000│возврат │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│02F│ │ │ │Установка программного опроса │
│030│mov al,00001100b │ 1 │00000000│бит P=D2=1 │
│031│out a2h,al │ 1 │00000000│загрузка OCW3 │
│032│in al,a2h │ 1 │00000000│чтение слова состояния │
│033│or al,al │ 1 │00000000│формир-е флага знака байта │
│034│jns 38h │ 1 │00000000│если 0 продолжение прог-мы │
│035│and al,00000111b │ 1 │00000000│№ вектора (3 бита) │
│036│or al,00011000b │ 1 │00000000│№ вектора + ICW2 │
│037│callidt │ 1 │00000000│переход на ППОП │
│038│ret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
Графики вложенности
1. Режим фиксированных приоритетов (ведомая)
0┤ ▒▒░░ │ ││││ 1┤ ▒▒││││░░ ▒▒░░ │ ││││││││ ││││ 2┤▒▒░░ ▒▒░░ ││││││││▒▒░░ ││││ │││││ ││││ ││││││││││││ ││││ 3┤││││ ▒▒││││░░▒▒░░ ▒▒││││││││││││░░ ││││▒▒░░ │││││ ││││││││││││ ││││││││││││││││ ││││││││ 4┤││││▒▒││││││││││││░░ ││││││││││││││││▒▒░░ ││││││││ │││││││││││││││││││││ ││││││││││││││││││││ ││││││││ 5┤││││││││││││││││││││▒▒││││││││││││││││││││░░ ││││││││▒▒░░
│││││││││││││││││││││││││││││││││││││││││││││ ││││││││││││
6┤││││││││││││││││││││││││││││││││││││││││││││▒▒░░ ││││││││││││
│││││││││││││││││││││││││││││││││││││││││││││││││ ││││││││││││
7┤││││││││││││││││││││││││││││││││││││││││││││││││▒▒░░││││││││││││
│││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││
└────────────────────────────────────────────────────────────────────
2. Режим специального маскирования (ведущая с PSV)
0┤ ▒▒░░ │ ││││ 1┤ ▒▒││││░░ ▒▒░░ │ ││││││││ ││││ 2┤▒▒ ││││││││ ░░▒▒░░││││ │││ ││││││││ ││││││││││ 3┤││ ▒▒ ░░▒▒││││││││░░ ││││││││││▒▒ ░░
│││ ││ ││││││││││││││ ││││││││││││ ││
4┤││▒▒││ ││││││││││││││░░▒▒░░││││││││││││ ││
│││││││ ││││││││││││││││││││││││││││││││ ││
5┤││││││ ▒▒░░││││││││││││││││││││││││││││││││▒▒░░││
│││││││ ││││││││││││││││││││││││││││││││││││││││││
6┤││││││ ▒▒░░ ││││││││││││││││││││││││││││││││││││││││││
│││││││ ││││ ││││││││││││││││││││││││││││││││││││││││││
7┤││││││▒▒││││░░││││││││││││││││││││││││││││││││││││││││││
│││││││││││││││││││││││││││││││││││││││││││││││││││││││││
└────────────────────────────────────────────────────────────────────
3. Режим циклического сдвига по типу А (i8080, шаг 4)
0┤ ▒▒░░ │ ││││ 1┤ ││││▒▒░░ ▒▒░░ │ ││││││││ ││││ 2┤▒▒░░ ▒▒░░ ││││││││▒▒░░││││ │││││ ││││ ││││││││││││││││ 3┤││││ ▒▒░░ ││││▒▒░░ ││││││││││││││││▒▒░░ │││││ ││││ ││││││││ ││││││││││││││││││││ 4┤││││▒▒││││░░ ││││││││▒▒░░ ││││││││││││││││││││ │││││││││││││ ││││││││││││ ││││││││││││││││││││ 5┤││││││││││││ ││││││││││││▒▒░░││││││││││││││││││││▒▒░░
│││││││││││││ ││││││││││││││││││││││││││││││││││││││││
6┤││││││││││││▒▒░░ ││││││││││││││││││││││││││││││││││││││││
│││││││││││││││││ ││││││││││││││││││││││││││││││││││││││││
7┤││││││││││││││││▒▒░░││││││││││││││││││││││││││││││││││││││││
│││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││
└────────────────────────────────────────────────────────────────────
4. Режим циклического сдвига по типу В 0┤ ▒▒░░ │ ││││ 1┤ ▒▒││││ ░░▒▒░░ │ ││││││ ││││││ 2┤▒▒░░ ▒▒░░ ││││││▒▒░░ ││││││ │││││ ││││ ││││││││││ ││││││ 3┤││││ ││││ ││││││││││ ▒▒░░││││││▒▒░░ │││││ ││││ ││││││││││ ││││││││││││││ 4┤││││▒▒░░ ││││ ▒▒░░ ││││││││││ ││││││││││││││ │││││││││ ││││ ││││ ││││││││││ ││││││││││││││ 5┤││││││││ ││││▒▒││││ ││││││││││░░││││││││││││││▒▒░░
│││││││││ ││││││││││ ││││││││││││││││││││││││││││││
6┤││││││││ ▒▒░░││││││││││ ││││││││││││││││││││││││││││││
│││││││││ ││││││││││││││ ││││││││││││││││││││││││││││││
7┤││││││││▒▒││││││││││││││░░││││││││││││││││││││││││││││││
│││││││││││││││││││││││││││││││││││││││││││││││││││││││││
└─────────────────────────────────────────────────────────
5. Режим программного опроса 0┤ │ 1┤ │ 2┤ ▒▒░░
│ ││││
3┤ ▒▒░░ ││││
│ ││││ ││││
4┤▒▒░░││││ ││││
│││││││││ ││││
5┤││││││││ ││││
│││││││││ ││││
6┤││││││││ ││││
│││││││││ ││││
7┤││││││││▒▒░░││││
│││││││││││││││││
└────────────────────────────────────────────────────────────────────
Выводы:
В зависимости от времени поступления запросов и их приоритетов обработка для режимов происходит следующим образом:
- фиксированные приоритеты - запросы с меньшим приоритетом поступают на обработку только при отсутствии запросов с большим приоритетом и обработка прерывания с меньшим приоритетом может быть прервана запросом с большим;
- специальное маскирование - любой запрос поступает на обработку, обработка текущего запроса на прерывание может быть прервана как запросом с более высоким приоритетом, так и с более низким, кроме находящихся в обработке запросов. При одновременном поступлении двух незамаскированных запросов выполняться будет запрос с большим приоритетом;
- сдвиг типа А - запросы поступают на обработку только в случае, если относительно дна приоритетного кольца нет запросов с большим приоритетом. После обработки запрос с наивысшим приоритетом занимает позицию дна приоритетного кольца, что обеспечивает всем запросам на прерывание практически равные права в различные моменты времени. - сдвиг типа В - аналогичен режиму сдвиг типа А, но отличается тем, что имеется возможность программисту самостоятельно устанавливать дно приоритетного кольца после обработки каждого запроса в зависимости от значимости различных источников прерывания в тот или иной момент времени;
- программный опрос - запросы поступают на обработку согласно установленному программистом режиму; применяется в тех случаях, когда существует единая программа обработки прерывания для нескольких запросов, а также для расширения числа уровней запросов IRQ.
Теоретическое задание
1) Функциональная схема включения БИС ПКП ВН59А для микропроцессора К1820ВМ86
2) Программы инициализации
ведущая (режим фиксированных приоритетов, порт A2h, с PSV, ведомые на IRQ 2,3)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│000│mov al,00010001b │ 1 │00000000│UP=0 | каскадное | загр ICW4 │
│001│out a2h,al │ 1 │00000000│загрузка ICW1 │
│002│mov al,00011000b │ 1 │00000000│адрес IDT 060h │
│003│out a3h,al │ 1 │00000000│загрузка ICW2 │
│004│mov al,00001100b │ 1 │00000000│ведомые на 2,3 │
│005│out a3h,al │ 1 │00000000│загрузка ICW3 │
│006│mov al,00011101b │ 1 │00000000│PSV=1 | -EN=1 | ведущ | i8086 │
│007│out a3h,al │ 1 │00000000│загрузка ICW4 │
│008│mov al,00010000b │ 1 │00000000│маска на IRQ 4 │
│009│out a3h,al │ 1 │00000000│загрузка OCW1 │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
ведомая (режим циклического сдвига по типу А, порт А8h, IRQ ведущей - 2)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│00A│mov al,00010001b │ 1 │00000000│UP=0 | каскадное | загр ICW4 │
│00B│out a8h,al │ 1 │00000000│загрузка ICW1 │
│00C│mov al,00011000b │ 1 │00000000│адрес IDT 060h │
│00D│out a9h,al │ 1 │00000000│загрузка ICW2 │
│00E│mov al,00000010b │ 1 │00000000│на IRQ 2 ведущей │
│00F│out a9h,al │ 1 │00000000│загрузка ICW3 │
│010│mov al,00000001b │ 1 │00000000│PSV=0 | -EN=0 | ведом | i8086 │
│011│out a9h,al │ 1 │00000000│загрузка ICW4 │
│012│mov al,01001011b │ 1 │00000000│чтение ISR │
│013│out a8h,al │ 1 │00000000│загрузка OCW3 │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
3) Фрагменты текстов ППОП
ППОП 7-4,1,0 ведущей (режим фиксированных приоритетов, порт A2h, с PSV, ведомая на IRQ 2,3)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│060│push ax │ 1 │00000000│cохранение AX │
│061│in al,a3h │ 1 │00000000│чтение маски │
│062│or al,10000000b │ 1 │00000000│маскирование IRQ7 │
│063│out a3h,al │ 1 │00000000│запись маски │
│064│sti │ 1 │00000000│разрешение прерываний │
--------------------------------------------------------------------------------
│067│cli │ 1 │00000000│запрет прерываний │
│068│in al,a3h │ 1 │00000000│чтение маски │
│069│and al,01111111b │ 1 │00000000│размаскирование IRQ7 │
│06A│out a3h,al │ 1 │00000000│запись маски │
│06B│mov al,00100000b │ 1 │00000000│EOI | clr ISR │
│06C│out a2h,al │ 1 │00000000│загрузка OCW2 │
│06D│pop ax │ 1 │00000000│восстановление AX │
│06E│iret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
ППОП 2,3 ведомой (режим циклического сдвига по типу А, порт А8h, IRQ ведущей - 2)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│070│sti │ 1 │00000000│разрешить прерывания │
│071│push ax │ 1 │00000000│сохранение AX │
--------------------------------------------------------------------------------
│076│mov al,10100000b │ 1 │00000000│R-EOI | clr ISR #2 │
│077│out a8h,al │ 1 │00000000│загрузка OCW2 │
│078│in al,a8h │ 1 │00000000│чтение ISR #2 │
│079│or al,0h │ 1 │00000000│ведомая ISR=0? │
│07A│jnz 07Dh │ 1 │00000000│ │
│07B│mov al,01100010b │ 1 │00000000│SEOI | clr ISR # │
│07C│out a2h,al │ 1 │00000000│загрузка OSW2 в ведущую │
│07D│pop ax │ 1 │00000000│восстановление AX │
│07E│iret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
Документ
Категория
Рефераты
Просмотров
12
Размер файла
440 Кб
Теги
mpsотчет
1/--страниц
Пожаловаться на содержимое документа