Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
mIKROPROTsESSORY / LABMP_ALL_2013.doc
Скачиваний:
75
Добавлен:
09.04.2015
Размер:
2.25 Mб
Скачать

3.1.2. Система прерываний оэвм

Система прерываний ОЭВМ позволяет различным источникам осуществлять запрос на свое обслуживание путем прерывания выполнения основной программы. Таких источников в классической ОЭВМ пять:

  • внешнее прерывание INT0, которое поступает извне на вход INT0,

  • прерывание по переполнению от таймера 0,

  • внешнее прерывание INT1, которое поступает извне на вход INT1,

  • прерывание по переполнению от таймера 1,

  • прерывание по приему или передаче последовательного канала.

Каждое прерывание, если оно разрешено, вызывает переход на определенный адрес в начале памяти команд (соответственно, 0003H, 000BH, 0013H, 001BH, 0023H для указанных выше источников). По этим адреса должны располагаться подпрограммы обработки этих прерываний.

В системе со многими источниками прерывания важным вопросом является приоритет каждого источника при прерывании. Другими словами, может ли во время обслуживания какого-либо прерывания другое прерывание вмешаться и прервать эту первую программу?

В ОЭВМ используется 2 механизма приоритета:

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

  • регистр приоритета IP (адрес 0В8Н), который позволяет устанавливать для любого уровня прерывания два вида приоритета: высший и низший (для этого в нем каждому уровню прерывания отведен 1 бит - если он установлен в 1, то данный тип прерывания будет иметь высший приоритет и его не может прервать любое прерывание с более низким приоритетом, если он установлен в 0, то данный тип прерывания будет иметь низший приоритет и его может прервать любое прерывание с более высоким приоритетом. Таким образом, установкой битов регистра IP можно изменить обычный "поллинг" уровней прерывания.

Для того чтобы прерывание было воспринято ОЭВМ, его надо разрешить. Для этого есть специальный регистр разрешения прерываний IE (адрес 0А8Н), каждый бит которого (установкой в 1) разрешает или запрещает (установкой в 0) то или иное индивидуальное прерывание.

Кроме того, старший бит этого регистра (обозначаемый как IE.7) запрещает (установкой в 0) все прерывания. Кстати, сброс процессора также запрещает все прерывания.

Структура регистра IE показана на рис. 3.1, а регистра IP - на рис. 3.2.

Рис.3.1. Структура регистра IE:

IE.0 - бит разрешения внешнего прерывания 0,

IE.1 - бит разрешения прерывания по переполнению таймера 0,

IE.2 - бит разрешения внешнего прерывания 1,

IE.3 - бит разрешения прерывания по переполнению таймера 1,

IE.4 - бит разрешения прерывания от последовательного порта,

IE.7 - бит запрещения (когда установлен в 0) всех прерываний.

Рис.3.2. Структура регистра IP:

IP.0 - бит управлением приоритетом внешнего прерывания 0,

IP.1 - бит управлением приоритетом прерывания от таймера 0,

IP.2 - бит управлением приоритетом внешнего прерывания 1,

IP.3 - бит управлением приоритетом прерывания от таймера 1,

IP.4 - бит управлением приоритетом прерывания от последовательного порта.

Соседние файлы в папке mIKROPROTsESSORY