Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект II частина.doc
Скачиваний:
38
Добавлен:
17.03.2016
Размер:
534.02 Кб
Скачать

5.3. Прерывания программы

Прерыванием программы в микропроцессорной системе называется способность МП прервать выполняемую программу в ответ на внешнее событие и выполнить программу, специально предназначенную для обработки этого события.

Применение прерываний по готовности порта, как правило, удобнее и эффективнее, чем непрерывное опрашивание его состояния. При этом МП освобождается для выполнения других функций.

Прерывание программы напоминает переход на подпрограмму с той разницей, что оно инициируется не командой в программе, а приходом внешнего сигнала по управляющей линии. Этот сигнал называется запросом на прерывание. Так же как и подпрограмма, программа обработки прерывания размещается в памяти, начиная с ячейки, в которую должно подаваться управление.

Обнаружив запрос на прерывание, МП откладывает выполнение текущей программы и начинает выполнять программу прерывания. Программа прерывания обычно заканчивается командой возврата, после которой продолжается выполнение прерванной программы.

МП обладает возможностью запрещать (блокировать) прерывания на какие-то отрезки времени, когда их обработка по тем или иным причинам неудобна. При заблокированных прерываниях поступающие запросы на прерывания игнорируются.

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

Существует два основных метода устранения этой проблемы.

  1. Разрабатывается главная программа обработки прерываний, которая при поступлении запроса проверяет состояние каждого устройства и находит устройство, требующее обслуживание. Такую схему часто называют системой прерываний с программным опросом.

  2. Разрабатывается аппаратура которая идентифицирует устройство, приславшее запрос. Такую систему прерываний называют векторной приоритетной системой.

5.3.1. Прерывания с программным опросом

В схеме прерываний с программным опросом все запросы на прерывания поступают по одной управляющей линии. Эта линия является выходом вентиля ИЛИ, на входы которого поступают запросы от индивидуальных устройств. Каждому устройству выделяется порт состояния, а в нем отводится один бит, хранящий запрос на прерывание. Когда по общей линии в МП поступает запрос от любого устройства, выполнение текущей команды завершается и, если прерывания не заблокированы, происходит передача управления с фиксированным адресом. С этой ячейки начинается главная программа обработки прерывания, которая последовательно вводит содержимое портов состояния и тестирует биты запросов на прерывания. Обнаружив устройство, запросившее обслуживание, главная программа передает управление программе, обслуживающей данное устройство.

Рис. 5.6. Схема организации обслуживания прерываний с программным опросом.

Когда запросы поступают одновременно от двух или большего числа устройств, возникают конфликтные ситуации. Их разрешение выполняет главная программа обработки прерываний. Один из способов решения конфликта - когда первым обслуживается то устройство, которое раньше попадается в порядке опроса.

Главный недостаток системы прерываний с программным опросом связан со временем, затрачиваемым программой на опрос состояния отдельных устройств.