Обслуживание запросов на прерывание
Система прерываний предназначена для переключения внимания МП на особые условия, возникающие в нем самом или во внешних устройствах, и начала выполнения других задач. Источники прерывания делятся на три класса. 1. Внутренние прерывания, например, аппаратный сбой, ошибка от схем контроля и т.д. При внутренних прерываниях не происходит формирования сигнала INTE . Внутренние прерывания имеют более высокий приоритет по сравнению с внешними прерываниями. 2. Внутрисистемные прерывания, возникающие вследствие событий во внешних устройствах, например, прерывания от тайме pa, устройства ввода-вывода в момент его готовности к обмену информацией и т. д. 3. Прерывания, предусмотренные в выполняемой текущей программе с помощью специальных команд. Существуют два типа обслуживания прерываний: считываемый и векторный. При считываемом типе обслуживания МП использует подпрограмму периодического опроса возможных источников прерывания и выявляет устройства, нуждающиеся в обслуживании. Выявленное устройство выставляет начальный адрес подпрограммы его обслуживания по прерыванию, после чего МП приступает к обработке прерывания. При векторном типе обслуживания прерываний внешние устройства, требующие к себе внимания со стороны МП, выставляют сигнал INT (Запрос прерывания). Восприятие запросов устанавливается определенным разрядом ССП при выполнении команды EI (Разрешение прерывания). МП не воспринимает запросы на прерывание при начальной установке по входу RESET , когда все триггеры, в том числе и триггеры ССП, устанавливаются в нулевое состояние. Поэтому, если МП приступил к выполнению программы, то он и в дальнейшем не будет реагировать на запросы прерывания до тех пор, пока в программе не появится команда EI (Разрешение прерывания). При дальнейшем продолжении выполнения программы, в случае, если необходимо проигнорировать прерывание, вводят команду DI (Запрещение прерываний). Удовлетворение запроса на прерывание зависит от значения сигнала DO ССП. Если DO = 1, то при наличии сигнала DB IN (прием информации) формируется сигнал 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. сообщает МП начальный адрес подпрограммы обслуживания прерывания внешнего устройства, причем адрес подпрограммы обслуживания прерывания сообщается МП по ШД.
Имеется два способа задания кода прерывания, с помощью На первом такте Т1 устанавливается уровень «0» на выходе Р. Пр. МП БИС информирует ВУ о восприятии и начале обслуживания прерывания выдачей слова состояния с «1» в разрядах Д0, Д1, Д5. Разряд Д0 совместно с сигналом на выходе ПРИЕМ используется для формирования сигнала ОБ. Пр (обслуживание прерывания) магистрали управления микроЭВМ (рис. 2.1.8). Поэтому сигналу ВУ выдают на МД микроЭВМ либо код команды RST<N>, либо код команды CALL<A1 > < А2> . Существует восемь кодов команды RST<N>,где N=0—7. Команда RST<N> указывает начальный адрес подпрограммы Получив команду на первом машинном Возврат можно осуществить с помощью команды RET (RETURN), которая загружает содержание двух верхних ячеек стека в PC. Таким образом, каждая подпрограмма обслуживания прерываний должна в конце иметь команду RET. Первым машинным циклом при обращении к ячейкам памяти, указанным в команде RST<N>, является цикл М1 извлечения команды. При векторном способе задания прерываний на первом цикле Получив команду CALL, МП БИС автоматически переходит в режим ввода 2 байтов адреса А1 и А2 на циклах М2, М3. После этого организуется сохранение содержания PC в стеке и Отметим, что при векторном способе задания прерывания ВУ сообщает не только команду CALL, но и адрес начала подпрограммы обслуживания прерываний.
Рисунок 2.1.8 – Ввод кода команды RST1 при обслуживании МП БИС сигнала прерывания
Тема 2.2
Популярное: Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Почему стероиды повышают давление?: Основных причин три... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (291)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |