Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПСУ.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
11.26 Mб
Скачать

1.13.1.1. Многоуровневые прерывания

Прерывать можно не только фоновую программу, но и программу обслуживания прерывания.

Каждая прерванная программа, после завершения прервавшей ее программы, продолжает работу так, как будто прерывания не было (рис. 13.2).

1.13.1.2. Приоритетные прерывания

Разные внешние устройства могут иметь в системе различную степень важности. Существует мнение, что более важные устройства имеют более высокий приоритет. Это означает, что устройства с более высоким приоритетом обслуживаются в первую очередь, более того - они могут прерывать процедуру обслуживания устройства с меньшим приоритетом (рис. 13.3).

1.13.2. Идентификация источника прерывания

1.13.2.1. Программный поллинг

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

Если в результате опроса триггера прерываний устройства с высшим приоритетом оказывается, что он установлен в активный уровень, то запускается выполнение сопоставленной этому устройству программы обработки прерывания (рис. 13.5). По ее завершении возможны следующие варианты действий:

    1. В ыясняется, не было ли также запросов от устройств с более низким приоритетом.

    2. Поиск устройств прекращается.

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

1.12.2.2. Аппаратный поллинг

Аппаратный поллинг отличается большими аппаратными затратами и более высоким быстродействием. Существует много вариантов схем реализации.

Запросы от всех ВУ объединяет элемент ИЛИ; получив такой запрос, микропроцессор завершает выполнение текущей команды и, если обработка прерываний разрешена, вырабатывает сигнал подтверждения прерывания INT. Этот сигнал поступает на входы источников прерывания, если встре

чается устройство с высоким уровнем на выходе INT, то сигнал дальше не пойдет и произойдет обработка прерывания. В противном случае сигнал распространится вправо, пока не достигнет устройства с наивысшим приоритетом или числа, вызывающего прерывание (рис. 13.6).

Рис. 13.6

1.13.3. Программируемый контроллер прерываний

1.13.3.1. Общая характеристика контроллера

PIC обеспечивает восьмиуровневую векторную систему приоритетных прерываний. Возможное каскадирование позволяет расширить число уровней до 64. Любое прерывание может быть запрещено (маскировано) программными связями. Возможно 4 режима работы:

1. Векторное прерывание с фиксированным приоритетом. Каждому входу запросов прерывания присваивается фиксированный приоритет. Запрос с более высоким приоритетом прерывает обслуживание прерывания с меньшим приоритетом.

  1. Векторное прерывание с циклическим перераспределением приоритетов (рис. 13.7). Каждому входу запросов прерывания, как и в предыдущем режиме работы, присваивается приоритет, но после каждого запроса и обслуживания прерывания вся система приоритетов изменяется по кругу так, что последний обслуженный вход запроса прерывания будет иметь самый низкий приоритет, а приоритеты остальных прерываний увеличатся на единицу.

  1. Векторное прерывание с адресуемым распределением приоритетов. В этом режиме ПКП работает, как и в предыдущем, но кроме этого возможно программное указание номера входа запроса прерывания, которому присваивается самый низкий приоритет в системе.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]