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

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

Программирование контроллера прерываний осуществляется через адресное пространство ввода-вывода посредством двух 8-битовых портов с адресами 20h и 21h. Управление контроллером осуществляется путем посылки в определенной последовательности в эти порты специальных приказов двух типов.

1) Управляющее слово инициализации. Всего имеются четыре таких слова с жесткой внутренней структурой – ICW1...ICW4. Эти слова предназначены для задания режима работы контроллера. Количество этих слов (4) определено количеством режимов.

2) Операционное управляющее слово. Таких слов всего три, и они несут информационную нагрузку для определенных выше режимов работы контроллера прерываний. Обычно их обозначают OCW1...OCW3.

Перечислим функции управляющих слов.

ICW1 – определить особенности последовательности приказов.

Состояние битов этого приказа определяет особенности в последовательности приказов при инициализации контроллера. Данный приказ посылается в порт 20h.

ICW2 – определение адреса базового вектора.

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

ICW3 – связь контроллеров.

Этот приказ предназначен для связи контроллеров в системе с несколькими контроллерами прерываний.

ICW4 – дополнительные особенности обработки прерываний.

Данный приказ определяет дополнительные особенности обработки прерываний контроллером i8259А. (тип микропроцессора, особенности обработки конца прерывания и т.д.). Данный приказ посылается в порт 21h.

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

OCW1 – управление регистром масок IMR.

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

OCW2 – управление приоритетом.

Используется для управления приоритетом и учета особенностей завершения обслуживания прерывания в контроллере.

OCW3 – общее управление контроллером.

Установка режима опроса режима специального маскирования и т.д.

Компьютеры архитектуры ХТ имели всего одну микросхему i8259А, которая обрабатывала прерывания от следующих источников:

– уровень 0 таймера;

– уровень 1 клавиатуры;

– уровень 2 зарезервирован для нестандартных внешних устройств;

– уровень 3 порта COM2;

– уровень 4 порта COM1;

– уровень 5 жесткого диска;

– уровень 6 НГМД;

– уровень 7 параллельного порта принтера.

В компьютерах архитектуры АТ (с микропроцессорами i286 и выше) в связи с возросшей номенклатурой внешних устройств восьми источников прерываний стало недостаточно. Нужно было как-то расширить этот диапазон. Здесь и пригодилась способность микросхем i8259А работать в связке, или каскадом. Максимально можно таким образом соединить 8 контроллеров, что позволит обработать запросы от 64 источников. В архитектуре АТ используются два контроллера, соединенные каскадом, что позволяет обрабатывать запросы от 15 источников прерываний. Один из этих контроллеров является ведущим, другой - ведомым. Выход ведомого контроллера замкнут на вход уровня 2 ведущего контроллера.

Распределение и приоритеты аппаратных прерываний в архитектуре AT представлены в табл. 4.1.

Таблица 4.1.

Прерывания в архитектуре АТ

Уровень (вход)

Контроллер

Источник прерывания

Приоритет уровня

Irq0

Ведущий

Таймер

2

Irq1

Ведущий

Клавиатура

3

Irq2

Ведущий

Выход INT ведомого

Irq8

Ведомый

Часы реального времени (CMOS)

4

Irq9

Ведомый

Вход для устройства расширения

5

Irq10

Ведомый

Вход для устройства расширения

6

Irq11

Ведомый

Вход для устройства расширения

7

Irq12

Ведомый

Вход для устройства расширения

8

Irq13

Ведомый

Ошибка сопроцессора

9

Irq14

Ведомый

Контроллер жесткого диска

10

Irq15

Ведомый

Вход для устройства расширения

11

Irq3

Ведущий

Последовательный порт COM2

12

Irq4

Ведущий

Последовательный порт COM1

13

Irq5

Ведущий

Параллельный порт LPT2

14

Irq6

Ведущий

Контроллер гибкого диска

15

Irq7

Ведущий

Параллельный порт LPT1

16

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