32.Организация прерывания выполнения программы в МП-системе с МП ВМ80.
Внешние устройства вырабатывают запросы прерываний. Специальная подпрограмма производит обработку прерывания. Триггер INTE сбрасывается при начальной установке МП и при входе в цикл обслуживания прерывания. Обратно установить в 1 этот триггер невозможно. Программно команда EI устанавливает триггер в 1, а DI – сбрасывает триггер прерывания. Если INTE=1, то МП, получив запрос прерывания, заканчивает выполнение очередной команды (анализирует в последнем цикле) и переходит к обработке прерывания. В стек МП помещает содержимое PC (адрес следующей команды – адрес возврата). В машинном цикле обработки прерывания МП вырабатывает в разряде D0 сигнал INTA – сигнал подтверждения прерывания. Из этого сигнала схема управления формирует строб NOT INTA, который используется для подачи на ШД вектора прерывания. В машинном цикле обработки прерывания данные на ШД МП воспринимает как вектор прерывания. В МП КР580ВМ80А вектор прерывания сообщается МП косвенно, путём подачи команды RST N, где указывается начальный адрес @ обработки прерывания. МП получив код команды RST N определяет адрес вектора прерывания. Этот адрес загружается в программный счетчик и МП обрабатывает прерывания. В конце п/программы стоит команда извлечения адреса возврата. В некоторых системах несколько устройств могут запросить прерывание одновременно. Поэтому используется метод приоритета. При поступлении нескольких запросов, обслуживается наиболее приоритетный. Рассмотрим два варианта реализации модуля прерывания.
Организация модуля прерывания при одном запросе.
В МП КР580ВМ80А вектор прерывания формируется командой RST N.
1 |
1 |
v |
v |
v |
1 |
1 |
1 |
0 |
0 |
0 |
|||||
0 |
0 |
1 |
|||||
. |
. |
. |
|||||
1 |
1 |
1 |
0000h |
RST0 |
0008h |
RST1 |
0010h |
RST2 |
…. |
|
0038h |
RST7 |
vvv – зависит от числа N, пусть есть команда RST 1 (11001111)
Адрес ISR 0008h загружается в PC и МП переходит на адрес обработки прерывания. В каждой п/п обработки прерывания выделяется всего 8 ячеек в этих ячейках располагаются только адрес перехода. В конце п/п перед выходом ставиться команда EI - разрешить прерывание и команда RET. EI необходимо, т.к. в МП при переходе к п/п обработки IRQ автоматически запрещается прерывания (т.е. МП перестает реагировать на новые запросы). Поэтому после обработки п/п необходимо опять их разрешить. В такой схеме есть вероятность зацикливания, т.е. запрос прерывания может не закончиться, перед выходом из п/п IRQ и МП опять начнет его обрабатывать с помощью сигнала INTA. См. схему. Как только появился строб INTA триггер сбрасывается в нулевое состояние. После включения питания триггер может быть в произвольном состоянии. Если он в 1, то это будет запросом IRQ. Поэтому есть цепь RS, которая сбрасывает триггер в “0”.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.