Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_2011.doc
Скачиваний:
65
Добавлен:
09.12.2018
Размер:
1.15 Mб
Скачать
  1. Программирование контроллера прерываний

Контроллер прерываний (КП) может настраиваться на работы в одном из 4-х режимов:

  1. FNN – режим вложенных прерываний. Каждому входу в КП присваивается фиксированное значение приоритета (высший – 0, низший – 7). Здесь более приоритетные прерывания имеют право на прерывание работы менее приоритетного прерывания (режим абсолютных приоритетов).

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

  1. CRM – режим адресуемых приоритетов. Система, либо программа в процессе работы самостоятельно назначает уровень прерывания с наивысшим приоритетом

  1. PM – режим опроса. Инициатором обработки прерываний является сам микропроцессор (в контроллере все прерывания замаскированы)

Программирование КП осуществляется через адресное пространство вода/вывода посредством 2-х 8-битовых портов (например, 20h и 21h). В порты можно послать приказы 2-х типов:

  • ICW (initialization control word) (ICW1, ICW2, ICW3, ICW4) - управляющее слово инициализации,

  • OCW (operation control word) (OCW1, OCW2, OCW3). - операционное управляющее слово.

            1. Формат приказов icw

Каждый приказ - 8 бит

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

Бит 0 = 1 – управляющее слово ICW4 будет в данной последовательности приказов.

Бит 1 = 0 – каскадное включение контроллеров, 1 – одиночное включение контроллера.

Бит 4 – «1» признак первого приказа.

Остальные биты не рассматриваются.

ICW2 – определение базового адреса векторов прерываний. Это слово отправляется в порт 21h.

В реальном режиме ОС это определено: для ведущего- 08h, для ведомого – 70h.

Для записи базового вектора используются биты 3,4,5,6,7.

ICW3 – определяет связь контроллеров. Приказ позволяет каскадировать контроллеры: выход ведомого подключается к одному из входов ведущего. Здесь надо указать, к какому входу подключать выход ведомого. Приказ отправляется в порт 21h.

Для ведущего контроллера формат приказа:

Если к входу irq2 подключен ведомый контроллер, то в соответствующем разряде устанавливается «1».

«0» означает что к входу подключено внешнее устройство.

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

ICW4 – приказ передается в порт 21h

Бит 0 – «1» режим 16-разрядного микропроцессора

«0» режим 32-разрядного микропроцессора

Бит 1 – «0» сброс бита в регистре ISR производит программа обработки,

«1» сброс этого бита осуществляет микропроцессор.

Бит 2 – «0» данный контроллер ведомый

«1» данный контроллер ведущий

Бит 3 – «0» системная шина не буферизирована

«1» системная шина буферизирована

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