close

Вход

Забыли?

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

?

laba3

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ФАКУЛЬТЕТ АВТОМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
КАФЕДРА ЭЛЕКТРОННЫХ ВЫЧИСЛИТЕЛЬНЫХ МАШИН
Отчет по лабораторной работе №3
"Обработка прерываний на основе БВПП K1810ВН59A"
по дисциплине "Микропроцессорные системы"
Вариант №4.
Выполнил студент гр. ВМ-43Мусиенко В.В.
Проверил преподавательБакшаев А. М.
Киров
2003 г.
Задание.
- разработать программу инициализации ПКП для режимов фиксированных приоритетов, спецмаскирования и программного опроса;
- разработать текст пользовательской программы во время выполнения которой приходят запросы на прерывание IRQ;
- разработать также тексты подпрограмм обработки прерываний, во время выполнения которых также могут приходить запросы IRQ;
- выполнить исследования принципов обслуживания запросов для следующих дисциплин обслуживания прерываний:
1) фиксированных приоритетов;
2) специального маскирования;
3) циклического сдвига с использованием OCW2 формата RE по типу А;
4) циклического сдвига с использованием OCW2 формата RSE по типу В (L2-L0 = №ППОП + X);
5) программного опроса.
Таблица 1.1 - Вариант задания режимов Таблица 1.2 - Начальные адреса ППОП
ЗаданиеВариант 41 Фиксированных приор.Ведущая с PSV2 Спецмаскирования3 Сдвиг типа АВедомая i8080, шаг 44 Сдвиг типа B5 Программного опр.X для типа B2Ведомые на входы IRQ ведущей:0, 7№ ко- Вариант 4Основ-мандыIRQCSIPная прог-рамма5
10
130
3
4, 2000h000hППОП
0
1
2
3
4
5
6
7
3
3
4
2
1
6
3
4
486h
325h
279h
1DCh
300h
8A7h
BAAh
421h
100h
110h
040h
080h
060h
050h
090h
070h
Таблица 1.3 - Последовательность запросов IRQ
№ вариантаПоследовательность запросов IRQВариант 45, 7; 6, 0; 4, 7; 2; 5; 4, 1; 0; 1 ,3
Таблица 1.4 - Задание для режима прогр.опроса Таблица 1.5 - Режим работы(теорет.часть).
Номер команды Номер командычтения СС ПКПпоступления IRQ45981214131918Режим/вариант4Ведущая: режим
маска (IRQ)Сдвиг А
Ведомая: режим
маска (IRQ)Фикс. приор.
6
Теоретическая часть
1. Разработать функциональную схему каскадного включения БИС ПКП ВН59А для микропроцессора К1810ВМ86 для вариантов заданий, приведенных в таблице 1.1.
2. Привести программу инициализации ведущей и одной ведомой БИС с настройкой на режимы работы, заданные в таблице 1.5:
3. Привести фрагмент тексты ППОП для ведомой и ведущей БИС ПКП (начало и конец ППОП).
Листинги программ инициализации.
1. Режим фиксированных приоритетов (ведущая с PSV)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│020│mov al,00010001b │ 1 │00000000│UP=0 | каскадн | загр ICW4 │
│021│out 2Eh,al │ 1 │00000000│загрузка ICW1 │
│022│mov al,00000000b │ 1 │00000000│адрес IDT 000h │
│023│out 2Fh,al │ 1 │00000000│загрузка ICW2 │
│024│mov al,10000001b │ 1 │00000000│ведомые на 0,7 │
│025│out 2Fh,al │ 1 │00000000│загрузка ICW3 │
│026│mov al,00011101b │ 1 │00000000│PSV=1 | AEOI=0 | i8086 │
│027│out 2Fh,al │ 1 │00000000│загрузка ICW4 │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
2. Режим специального маскирования
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│020│mov al,00010011b │ 1 │00000000│UP=0 | одна БИС | загр ICW4 │
│021│out 2Eh,al │ 1 │00000000│загрузка ICW1 │
│022│mov al,00000000b │ 1 │00000000│адрес IDT 000h │
│023│out 2Fh,al │ 1 │00000000│загрузка ICW2 │
│024│mov al,00001101b │ 1 │00000000│PSV=0 | AEOI=0 | i8086 │
│025│out 2Fh,al │ 1 │00000000│загрузка ICW4 │
│026│mov al,01101010b │ 1 │00000000│установка СПЕЦ.МАСКИР │
│027│out 2Eh,al │ 1 │00000000│загрузка OCW3 │
│028│ret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
3. Режим циклического сдвига по типу А (ведомая, i8080, шаг 4)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│020│mov al,00110101b │ 1 │00000000│каскадн | шаг 4 | загр ICW4 │
│021│out 2Eh,al │ 1 │00000000│загрузка ICW1 │
│022│mov al,00000001b │ 1 │00000000│адрес ППОП 120h │
│023│out 2Fh,al │ 1 │00000000│загрузка ICW2 │
│024│mov al,10000001b │ 1 │00000000│ведомые на 0,7 │
│025│out 2Fh,al │ 1 │00000000│загрузка ICW3 │
│026│mov al,00000100b │ 1 │00000000│i8080 │
│027│out 2Fh,al │ 1 │00000000│загрузка ICW4 │
│028│ret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
4. Режим циклического сдвига по типу В
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│020│mov al,00010011b │ 1 │00000000│UP=0 | одна БИС │
│021│out 2Eh,al │ 1 │00000000│загрузка ICW1 │
│022│mov al,00000000b │ 1 │00000000│адрес IDT 000h │
│023│out 2Fh,al │ 1 │00000000│загрузка ICW2 │
│024│mov al,00001101b │ 1 │00000000│ведущий | i8086 │
│025│out 2Fh,al │ 1 │00000000│загрузка ICW4 │
│026│ret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
5. Режим программного опроса
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│020│mov al,00010011b │ 1 │00000000│UP=0 | одна БИС | загр ICW4 │
│021│out 2Eh,al │ 1 │00000000│Загрузка ICW1 │
│022│mov al,00010000b │ 1 │00000000│Адрес IDT 040h │
│023│out 2Fh,al │ 1 │00000000│Загрузка ICW2 │
│024│mov al,00001101b │ 1 │00000000│PSV=0 | AEOI=0 | i8086 │
│025│out 2Fh,al │ 1 │00000000│Загрузка ICW4 │
│026│ret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
Подпрограммы обработки прерываний.
1. Режим фиксированных приоритетов (ведущая с PSV)
- ППОП 2 (ведущей)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│040│sti │ 1 │00000000│разрешить прерывания │
│041│push ax │ 1 │00000000│сохранение AL │
│042│nop │ 1 │00000000│обработчик │
│043│nop │ 1 │00000000│обработчик │
│044│nop │ 1 │00000000│обработчик │
│045│mov al,00100000b │ 1 │00000000│EOI | clear ISR │
│046│out 2Eh,al │ 1 │00000000│загрузка OCW2 │
│047│pop ax │ 1 │00000000│восстановление AL │
│048│iret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
- ППОП 0 (ведомой)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│100│sti │ 1 │00000000│разрешить прерывания │
│101│push ax │ 1 │00000000│сохранение AL │
│102│nop │ 1 │00000000│обработчик │
│103│nop │ 1 │00001010│обработчик │
│104│nop │ 1 │00000000│обработчик │
│105│mov al,00100000b │ 1 │00000000│EOI | clear ISR │
│106│out 2Fh,al │ 1 │00000000│загрузка OCW2 в 0й ведомый │
│107│mov al,00100000b │ 1 │00000000│EOI | clear ISR │
│108│out 2Eh,al │ 1 │00000000│загрузка OCW2 │
│109│pop ax │ 1 │00000000│восстановление AL │
│10A│iret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
2. Режим специального маскирования
- ППОП 2
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│040│sti │ 1 │00000000│разрешить прерывания │
│041│push ax │ 1 │00000000│сохранение AL │
│042│nop │ 1 │00000000│обработчик │
│043│nop │ 1 │00000000│обработчик │
│044│nop │ 1 │00000000│обработчик │
│045│mov al,01100010b │ 1 │00000000│SEOI | clear ISR[2] │
│046│out 2Eh,al │ 1 │00000000│загрузка OCW2 │
│047│pop ax │ 1 │00000000│восстановление AL │
│048│iret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
3 Режим циклического сдвига по типу А (ведомая, i8080, шаг 8)
- ППОП 0 (ведомая)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│100│sti │ 1 │00000000│разрешить прерывания │
│101│pushf │ 1 │00000000│сохранение слова состояния │
│102│push ax │ 1 │00000000│сохранение AL │
│103│nop │ 1 │00001010│обработчик │
│104│mov al,10100000b │ 1 │00000000│R-EOI | clear ISR │
│105│out 30h,al │ 1 │00000000│загрузка OCW2 в 0й ведомый │
│106│in al,30h │ 1 │00000000│чтение ISR у ведомого │
│107│or al,00000000b │ 1 │00000000│ISR = 0 ??? │
│108│jnz 10Bh │ 1 │00000000│переход │
│109│mov al,00100000b │ 1 │00000000│EOI | clear ISR │
│10A│out 2Eh,al │ 1 │00000000│загрузка OCW2 │
│10B│pop ax │ 1 │00000000│восстановление AL │
│10C│popf │ 1 │00000000│восстановление слова состояния│
│10D│ret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
4. Режим циклического сдвига по типу В
- ППОП 2
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│040│sti │ 1 │00000000│разрешить прерывания │
│041│push ax │ 1 │00000000│сохранение AL │
│042│nop │ 1 │00000000│обработчик │
│043│nop │ 1 │00000000│обработчик │
│044│nop │ 1 │00000000│обработчик │
│045│mov al,11100100b │ 1 │00000000│R-SEOI[2]-EOI | clear ISR │
│046│out 2Eh,al │ 1 │00000000│загрузка OCW2 │
│047│pop ax │ 1 │00000000│восстановление AL │
│048│iret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
5. Режим программного опроса - ППОП 2 ┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│040│pushf │ 1 │00000000│Сохранить СС │
│041│push ax │ 1 │00000000│Сохранить AL │
│042│nop │ 1 │00000000│Обработчик │
│043│nop │ 1 │00000000│Обработчик │
│044│nop │ 1 │00000000│Обработчик │
│045│mov al,00100000b │ 1 │00000000│EOI | clear ISR │
│046│out 2Eh,al │ 1 │00000000│Загрузка OCW2 │
│047│pop ax │ 1 │00000000│Восстановить AL │
│048│popf │ 1 │00000000│Восстановить СС │
│049│retf │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
- ПП чтения слова состояния ПКП
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│030│mov al,00001100b │ 1 │00000000│Установка прогр. опроса │
│031│out 2Eh,al │ 1 │00000000│Загрузка OCW3 │
│032│in al,2Eh │ 1 │00000000│Чтение СС │
│033│or al,al │ 1 │00000000│ │
│034│jns 38h │ 1 │00000000│Если нет знака, то ret │
│035│and al,00000111b │ 1 │00000000│Выделение вектора │
│036│or al,00010000b │ 1 │00000000│Адрес IDT в al │
│037│callidt │ 1 │00000000│Вызов ППОП по номеру из al │
│038│ret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
Графики вложенности.
1. Режим фиксированных приоритетов (ведущая с PSV)
2. Режим специального маскирования
3. Режим циклического сдвига по типу А (ведомая, i8080, шаг 4)
4. Режим циклического сдвига по типу В
5. Режим программного опроса
Выводы.
В зависимости от времени поступления запросов и их приоритетов обработка для режимов происходит следующим образом:
- фиксированные приоритеты - запросы с меньшим приоритетом поступают на обработку только при отсутствии запросов с большим приоритетом и если на обработке нет прерываний с равным или большим приоритетом (за исключением режима разрешения приоритета ведомого для IRQ ведомых), а обработка прерывания с меньшим приоритетом может быть прервана запросом с большим;
- специальное маскирование - любой запрос поступает на обработку, за исключением случаев, когда запрос с данным приоритетом уже находится на обработке (кроме режима разрешения приоритета ведомого для IRQ ведомых, когда в ведущей БИС разрешены многократные прерывания от одной ведомой, если прерывания ведомой БИС не находятся на обработке);
- сдвиг типа А - запросы поступают на обработку только в случае, если относительно дна приоритетного кольца нет запросов с большим и прерываний на обработке с большим или равным приоритетами (для обработки - за исключением режима разреш. приоритета ведомого);
- сдвиг типа В - аналогично режиму сдвиг типа А;
- программный опрос - запросы поступают на обработку согласно установленного программистом режима.
Теоретическая часть.
1. Функциональная схема каскадного включения БИС ПКП ВН59А для микропроцессора К1810ВМ86.
2. Программы инициализации ведущей и ведомой БИС.
- ведущая (режим сдвиг по типу А, порт 2Eh, ведомая на IRQ 0)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
│020│mov al,00010001b │ 1 │00000000│каскадн | загр ICW4 │
│021│out 2Eh,al │ 1 │00000000│загрузка ICW1 │
│022│mov al,00000000b │ 1 │00000000│адрес IDT 000h │
│023│out 2Fh,al │ 1 │00000000│загрузка ICW2 │
│024│mov al,00000001b │ 1 │00000000│ведомые на 0 │
│025│out 2Fh,al │ 1 │00000000│загрузка ICW3 │
│026│mov al,00001101b │ 1 │00000000│i8086 | ведущий │
│027│out 2Fh,al │ 1 │00000000│загрузка ICW4 │
│028│ret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
- ведомая (IRQ ведущего - 0, режим фиксированных приоритетов, порт 30h, маска на IRQ 6)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│030│mov al,00010001b │ 1 │00000000│каскадн | загр ICW4 │
│031│out 30h,al │ 1 │00000000│загрузка ICW1 │
│032│mov al,00000000b │ 1 │00000000│адрес IDT 000h │
│033│out 31h,al │ 1 │00000000│загрузка ICW2 │
│034│mov al,00000000b │ 1 │00000000│CAS 0 │
│035│out 31h,al │ 1 │00000000│загрузка ICW3 │
│036│mov al,00000001b │ 1 │00000000│i8086 | ведущий │
│037│out 31h,al │ 1 │00000000│загрузка ICW4 │
│038│mov al,01000000b │ 1 │00000000│маскирование 6го прерывания │
│039│out 31h,al │ 1 │00000000│загрузка OCW1 │
│03A│ret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
3. ППОП ведущей и ведомой БИС.
- ППОП 7-1 ведущей (режим сдвиг по типу А, порт 2Eh, ведомая на IRQ 0)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│040│sti │ 1 │00000000│разрешить прерывания │
│041│push ax │ 1 │00000000│сохранение AL │
│042│nop │ 1 │00000000│обработчик │
│043│nop │ 1 │00000000│обработчик │
│044│nop │ 1 │00000000│обработчик │
│045│mov al,10100000b │ 1 │00000000│R-EOI | clear ISR │
│046│out 2Eh,al │ 1 │00000000│загрузка OCW2 │
│047│pop ax │ 1 │00000000│восстановление AL │
│048│iret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
- ППОП 0 ведомой (IRQ ведущего - 0, режим фиксированных приоритетов, порт 30h, маска на IRQ 6)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│100│sti │ 1 │00000000│разрешить прерывания │
│101│push ax │ 1 │00000000│сохранение AL │
│102│nop │ 1 │00000000│обработчик │
│103│nop │ 1 │00001010│обработчик │
│104│nop │ 1 │00000000│обработчик │
│105│mov al,10100000b │ 1 │00000000│R-EOI | clear ISR │
│106│out 30h,al │ 1 │00000000│загрузка OCW2 в 0й ведомый │
│107│in al,30h │ 1 │00000000│Чтение │
│108│or al,00000000b │ 1 │00000000│ISR = 0 ??? │
│109│jnz 10Ch │ 1 │00000000│переход │
│10A│mov al,00100000b │ 1 │00000000│EOI | clear ISR │
│10B│out 2Eh,al │ 1 │00000000│загрузка OCW2 │
│10C│pop ax │ 1 │00000000│восстановление AL │
│10D│iret │ 1 │00000000│ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
1
2
Документ
Категория
Рефераты
Просмотров
19
Размер файла
349 Кб
Теги
laba
1/--страниц
Пожаловаться на содержимое документа