загрузка...
 
3.5. Организация режима прерывания
Повернутись до змісту

3.5. Организация режима прерывания

При функционировании систем управления и измерительных приборов необходимо осуществлять прерывание основной программы работы и выполнять те или иные технические действия путем выдачи соответствующих управляющих сигналов. Сигнал прекращения действия основной программы и переход к подпрограмме обслуживания прерываний называют запросом на прерывание или запросом на обслуживание. В реальных системах существуют несколько источников запроса прерывания. Если известно, что  сигналы запроса поступают в разные моменты времени,  то идентификация источника, переход к нужной подпрограмме и возвращение к исходной программе не представляют технических трудностей. В общем случае источники вырабатывают свои запросы на прерывания независимо друг от друга. Они могут пересекаться во времени, поэтому для установления порядка обслуживания запросов каждому из источников присваивается свой номер согласно его информационной важности, который называют уровнем приоритета.  Устройство, на которое возлагаются задачи распознавания запросов и выдача соответствующих управляющих сигналов, обеспечивающих выполнение подпрограммы обслуживания, называют блоком приоритетных прерываний.          

Для реализации прерываний в системах автоматики разработан программируемый контроллер приоритетных прерываний (ПКПП)  КР580ВН59 (рис 3.23).

В состав  БИС входят:  8  разрядный  буфер  данных;  схема управления  чтением/записью  -  входы  CS,  WR, RD, АО; регистры управляющих слов; схемы управления - вход INTA, выход INT; схема каскадирования - вход SP, входы/выходы CASQ-CAS2; регистр запросов на прерывание - входы IRQ 0-IRQ7.

Программируемый контроллер прерывания может находиться в состояниях отладки и обслуживания запросов на обмен. Используются управляющие слова двух видов: инициализации (ICW) в режиме отладки и операционные (OCW)  при обслуживании запросов. Командами OUT контроллер настраивается на разнообразные режимы: полного вложения подпрограмм прерывания (приоритеты внешних устройств фиксированные); циклического сдвига приоритетов; специальной маскировки; последовательного опроса.

Рисунок  3.23 – Условное  обозначение   ПКПП

ПКПП обслуживает запросы на прерывание от восьми внешних устройств, которые поступают на входы IRQ0-IRQ7. Схема управления ПКПП формирует сигнал запроса на прерывание INT. Если микропроцессору разрешены прерывания, он отвечает контроллеру сигналом INTA. По этому сигналу на шину данных выставляется первый байт команды CALL. После чего за двумя очередными сигналами, которые поступают на вход INTA, выдается второй и третий байты команды CALL, содержащие адрес подпрограммы обработки прерываний. Отладка ПКПП проходит в соответствии  с   алгоритмом,   приведенным    на

 рис. 3.24.

Рисунок  3.24 – Алгоритм  настройки   ПКПП

Рассмотрим алгоритм отладки ПКПП. По адресу А0 = 0 командой OUT загружается управляющее слово инициализации ICW1, с помощью которого задается младший байт адреса подпрограммы прерываний и наличие каскадирования. Формат управляющего слова ICW1 приведен на рис. 3.25. После этого загружается второе управляющее слово инициализации ICW2 и таким образом задается старший байт адреса (рис. 3.26).

Рисунок  3.25 – Формат управляющего слова  ICW1

 Рисунок  3.26 – Формат управляющего слова  ICW2 

После загрузки управляющих слов  инициализации  ПКПП переходит в состояние обслуживания запросов  на прерывание,  затем в режим полного  вложения подпрограмм обработки прерываний. Некоторые из выходов запросов на прерывание могут быть замаскированы. Для этого по адресу А0 =1 в ПКПП засылается OCWI - байт с единицами в разрядах, соответствующий  входам,   по  которым  запросы не должны обслуживаться.  В  качестве   примера рассмотрим режим полного вложения  подпрограмм  обработки  прерываний.  В этом режиме приоритеты входов никогда не  изменяются, они установлены таким образом, что   IR0  имеет  высший,   а  IR7- низший приоритеты. Если  одновременно   поступают  запросы  на несколько входов ПКПП,  то  обслуживается   запрос,  который поступил   на  вход с наибольшим     приоритетом. После выполнения подпрограммы     обслуживания     прерываний загрузка   OCW2   (рис. 3.27)       регистра   состояния сбрасывается   и   продолжается     выполнение    прерванной программы.

Рисунок  3.27 – Завершение      обслуживания     запроса  прерывания – переход     в   режим   полного    вложения

  Пример   отладки   ПКПП   в  режиме   полного   вложения  и фрагмент подпрограммы обслуживания прерываний имеет вид:

ПП отладка ПКПП  ПП обработки прерываний

MVI    А, 16                            DI              ; запрет прерываний

OUT    F0:-ICW1

MVI    A, 83                            MVI   А,20

OUT    F1: - ICW2                   OUT F0     ; обработка конца прерываний

MVI    A, F0                            El              ; разрешение прерывания

OUT    F0: - OCW1                  RET           ; возвращение

HIT

В подпрограммах адрес ПКПП - F0, прерывания R 7-IR4 замаскированы, т.е. не обслуживаются. Необходимо еще раз подчеркнуть, что любую подпрограмму обработки прерывания необходимо завершать загрузкой операционного слова OCW2.



загрузка...