Профтемы студенту и преподавателю
Taketop.ru
СТУДЕНТУ И ПРЕПОДАВАТЕЛЮ
лекции по дисциплинам
Информатика и вычислительная техника :: Микропроцессоры и микропроцессорные системы
Обслуживание запросов на прерывание
Система прерываний предназначена для переключения внимания МП на особые условия, возникающие в нем самом или во внешних устройствах, и начала выполнения дру­гих задач.
Источники прерывания делятся на три класса.
1. Внутренние прерывания, например, аппаратный сбой, ошибка от схем контроля и т.д. При внутренних прерываниях не происхо­дит формирования сигнала INTE. Внутренние прерывания имеют более высокий приоритет по сравнению с внешними прерываниями.
2.     Внутрисистемные прерывания, возникающие вследствие со­бытий во внешних устройствах, например, прерывания от таймеpa, устройства ввода-вывода в момент его готовности к обмену информацией и т. д.
3.     Прерывания, предусмотренные в выполняемой текущей про­грамме с помощью специальных команд.
Существуют два типа обслуживания прерываний: считываемый и векторный.
При считываемом типе обслуживания МП использует подпро­грамму периодического опроса возможных источников прерыва­ния и выявляет устройства, нуждающиеся в обслуживании. Выяв­ленное устройство выставляет начальный адрес подпрограммы его обслуживания по прерыванию, после чего МП приступает к обра­ботке прерывания.
При векторном типе обслуживания прерываний внешние уст­ройства, требующие к себе внимания со стороны МП, выставля­ют сигнал INT(Запрос прерывания). Восприятие запросов уста­навливается определенным разрядом ССП при выполнении ко­манды EI (Разрешение прерывания). МП не воспринимает запро­сы на прерывание при начальной установке по входу RESET, ког­да все триггеры, в том числе и триггеры ССП, устанавливаются в нулевое состояние.
Поэтому, если МП приступил к выполнению программы, то он и в дальнейшем не будет реагировать на запро­сы прерывания до тех пор, пока в программе не появится команда EI (Разрешение прерывания).
При дальнейшем продолжении вы­полнения программы, в случае, если необходимо проигнорировать прерывание, вводят команду DI (Запрещение прерываний). Удов­летворение запроса на прерывание зависит от значения сигнала DOССП. Если DO= 1, то при наличии сигнала DBIN(прием ин­формации) формируется сигнал IN ТЕ (Разрешение прерывания) (см. рис. 2.1.7).
 

 
Рисунок 2.1.7 – УГО МП БИС КР580ИК80
Таким образом, изменяя значение разряда DO, про­граммист может запретить или разрешить МП реагировать на пре­рывание (маскирование прерываний). Если МП может восприни­мать этот сигнал в данный момент времени, то начинается режим обмена информацией по прерыванию в следующем порядке.
1.МП завершает выполнение текущей программы, сохраняя в стеке адрес следующей подготовленной к выполнению команды, к которой МП вернется после обмена информацией по прерыванию. Обычно в стеке сохраняется и последнее содержимое аккумулятора.
2. МП посылает устройствам ввода-вывода ответный сигнал INTE(Разрешение прерывания), давая понять, что он готов к обмену данными.
3. Устройство ввода-вывода сообщает начальный адрес подпро­граммы обслуживания прерывания.
4. Получив адрес, МП начинает подпрограмму обмена данными.
5. В конце подпрограммы всегда должна стоять команда выхода из подпрограммы и возврата управления прерванной основной программе по команде RETURN (RET).
6. Получив команду возврата RETURN, МП извлекает из стека адрес возврата к прерванной программе и продолжает ее выпол­нение.
Если одновременно возникают запросы на прерывание от не­скольких устройств, необходимо выработать приоритет по их обслу­живанию.
Для этой цели вводят специальный блок приоритетных прерываний (БПП), который берет на себя посреднические услу­ги между устройством ввода-вывода и МП. Для подключения БПП используется вход INTМП.
БПП выполняет следующие функции:
1.     получает запросы на прерывание от нескольких источников, если они пришли одновременно и формирует один сигнал, кото­рый поступает на вход INTМП;
2.     выставляет запрет (маскирование) на восприятие сигналов от определенных источников прерываний;
3.     устанавливает и меняет приоритеты в обслуживании поступив­ших запросов на прерывание;
4.     сообщает МП начальный адрес подпрограммы обслуживания прерывания внешнего устройства, причем адрес подпрограммы обслуживания прерывания сообщается МП по ШД.
 
Имеется два способа задания кода прерывания, с помощью
команды RST < N > и с помощью команды CALL < А1> <A2> (векторный способ). Первый цикл для обоих способов является общим и отличается от цикла М1 извлечения кода команды из памяти тем, что содержание программного счетчика МП БИС при этом не увеличивается.
На первом такте Т1 устанавливается уровень «0» на выходе Р. Пр.
МП БИС информирует ВУ о восприятии и начале обслуживания прерывания выдачей слова состояния с «1» в разрядах Д0, Д1, Д5.
Разряд Д0 совместно с сигналом на выходе ПРИЕМ используется для формирования сигнала ОБ. Пр (обслуживание прерывания) магистрали управления микроЭВМ (рис. 2.1.8). Поэтому сигналу ВУ выдают на МД микроЭВМ либо код команды RST<N>, либо код команды CALL<A1 > < А2> .
Существует восемь кодов команды RST<N>,где N=0—7.
Команда RST<N> указывает начальный адрес подпрограммы
обслуживания прерывания.
Получив команду на первом машинном
цикле, МП БИС на циклах М2 и М3 записывает в область памяти,
отведенной под стек, текущее значение программного счетчика PC.
Сохранение содержания PC в стеке необходимо для возврата к
прерванной программе после окончания выполнения подпрограммы
обслуживания прерывания.
Возврат можно осуществить с помощью команды RET (RETURN), которая загружает содержание двух верхних ячеек стека в PC.
Таким образом, каждая подпрограмма обслуживания прерываний должна в конце иметь команду RET.
Первым машинным циклом при обращении к ячейкам памяти, указанным в команде RST<N>, является цикл М1 извлечения команды.
При векторном способе задания прерываний на первом цикле
М1 ВУ будет передавать МП БИС не команду RST<N> , а команду
САLL<А1><А2>.
Получив команду CALL, МП БИС автоматически переходит в режим ввода 2 байтов адреса А1 и А2 на циклах М2, М3.
После этого организуется сохранение содержания PC в стеке и
обращение к началу подпрограммы обслуживания прерывания.
Начало подпрограммы указано во втором и третьем байтах (<А1>
<А2>) команды CALL.
Отметим, что при векторном способе задания прерывания ВУ сообщает не только команду CALL, но и адрес начала подпрограммы обслуживания прерываний.
 
 
Рисунок 2.1.8 – Ввод кода команды RST1 при обслуживании МП БИС сигнала прерывания

Работы, представленные на сайте http://taketop.ru, предназначено исключительно для ознакомления. Все права в отношении работ и/или содержимого работ, представленных на сайте http://taketop.ru, принадлежат их законным правообладателям. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие или полученные в связи с использованием работ и/или содержимого работ, представленных на сайте http://taketop.ru
Рейтинг@Mail.ru
Сайт управляется SiNG cms © 2010-2015