- •Теоретическая часть
- •Инициализация контроллера прерываний
- •Режим с фиксированными приоритетами прерываний
- •Режим циклического сдвига приоритетов
- •Режим специального маскирования
- •Режим последовательного опроса
- •1.6. Каскадирование контроллеров прерываний
- •Описание лабораторного стенда
- •2.1. Работа стенда с обучающей программой
- •2.2. Работа стенда в автономном режиме
- •3. Порядок выполнения работы на стенде
- •3.1. Выполнение работы в автономном режиме
- •3.2. Выполнение работы с обучающей программой
- •4. Отчет о лабораторной работе должен содержать:
- •5. Лабораторные задания
- •6. Контрольные вопросы
- •7. Список литературы
- •Программируемого контроллера прерываний кр580вн59
- •Системные требования:
- •156005, Г. Кострома, ул. Дзержинского, 17.
Режим циклического сдвига приоритетов
В отличие от предыдущего режима приоритеты могут быть динамически изменены. Циклический сдвиг приоритетов задается в слове приказа OCW2 разрядом DB7 (см. рис.4).
Возможны два варианта использования этого режима: автоматическое чередование приоритетов и программно-управляемое.
Вариант автоматического чередования приоритетов это: только что обслуженному запросу загрузкой слова OCW2=10100000 (см. рис. 4 и табл. 2) присваивается низший приоритет, и он становится последним в очередь на обслуживание, приоритеты же остальных уровней циклически сдвигаются.
Пример: распределение входов в порядке возрастания справа налево:
IRQ7 IRQ6 IRQ5 IRQ4 IRQ3 IRQ2 IRQ1 IRQ0
На входы IRQ2 и IRQ5 поступают запросы на прерывания
После первого обслуживания: IRQ2 IRQ1 IRQ0 IRQ7 IRQ6 IRQ5 IRQ4 IRQ3
После второго обслуживания: IRQ5 IRQ4 IRQ3 IRQ2 IRQ1 IRQ0 IRQ7 IRQ6
Для выполнения каждого сдвига приоритетов необходимо загружать управляющее слово OCW2 в ПКП после завершения выполнения каждой подпрограммы обработки прерываний. Режим циклического сдвига приоритетов позволяет избавиться от недостатка, который заключается в том, что при частых запросах на прерывание по входам с высшими приоритетами запросы по входам с низшими приоритетами могут не обслуживаться.
Применение этого режима целесообразно и в случае обслуживания устройств с одинаковыми приоритетами.
В программно-управляемом чередовании приоритетов пользователь может программно управлять назначением входа с низшим приоритетом. Приоритеты могут быть изменены в любой момент времени при помощи слов:
OCW2=1100L2L1L0 (см табл. 2. Режим циклического сдвига приоритетов. Назначение входу, определяемому полем L2-L0 низкого приоритета);
OCW2=1110L2L1L0 (см. табл. 2. Режим циклического сдвига приоритетов. Сброс бита РОЗПР определяемого полем L2-L0 и назначение ему низшего приоритета).
Режим специального маскирования
Режим специального маскирования задается в слове приказа OCW3 разрядами DB6,DB5=11 (см. рис. 4).
Режим специального маскирования служит для того, чтобы разрешить прерывание по входам, имеющим более низкий приоритет, чем у входа, запрос по которому обслуживается в текущий момент.
В этом режиме запросы, поступающие на входы с более низкими приоритетами, обслуживаются до тех пор, пока на отменен режим специального маскирования.
Для отмены режима спецмаскирования необходимо в слове приказа OCW3 установить разряды DB6,DB5=10 (см. рис. 4).
Режим последовательного опроса
В этом режиме микропроцессор блокирует свой вход INT, так как инициатором обслуживания является он сам. МП опрашивает не запрашивающие устройства, а контроллер. Выходной сигнал контроллера INT физически может не использоваться.
Режим последовательного опроса задается в слове приказа OCW3 при DB2=1 (бит Р устанавливается в «1», см. рис. 4).
Слово приказа OCW3 с битом Р=1 заносится МП в контроллер сигналом WR и следующим сигналом RD считывается на шину данных слово состояния в котором анализируются только разряды DB2-DB0 обозначающие код запроса IRQ с наибольшим приоритетом и разряд DB7 – наличие прерывания (наличие сигнала INT у ПКП).
Пример:
- на вход IRQ3 поступил запрос на прерывание;
- по сигналу WR загружаем слово OCW3=00001100;
- по сигналу RD читаем слово состояние 1ХХХХ011 (прерывание есть на третьем входе);
Если запроса на прерывание нет, то при считывании слово состояния будет содержать информацию: 0ХХХХ111.
Следовательно, микропроцессор в этом режиме определяет источники запросов путем многократной загрузки слова приказа OCW3 и чтением слова состояния контроллера.