Мегаобучалка Главная | О нас | Обратная связь


Программирование контроллера прерываний i 8259 A



2019-12-29 249 Обсуждений (0)
Программирование контроллера прерываний i 8259 A 0.00 из 5.00 0 оценок




Для вывода информации в ПКП используются 2 порта ввода-вывода. Порт с четным адресом (обычно это порт 20h) и порт с нечетным адресом (обычно 21h). Через эти порты могут быть переданы 4 слова инициализации (Initialization Control Word, ICW1 - ICW4), задающие режим работы ПКП, и 3 операционных управляющих слова (слова рабочих приказов, Operation Control Words, OCW1 - OCW3).

В порт с четным адресом выводятся ICW1, OCW2 и OCW3.

Порт с нечетным адресом используется для вывода ICW2, ICW3, ICW4 и OCW1. Неоднозначности интерпретации данных в этом случае так же не возникает, т. к. слова инициализации ICW2 - ICW4 должны непосредственно следовать за ICW1, выведенным в порт с четным адресом и выводить в промежутке между ними OCW1 не следует, оно не будет опознано контроллером.

Выводом в порт с четным адресом управляющего слова инициализации ICW1 начинается инициализация ПКП. В процессе инициализации контроллер последовательно принимает управляющие слова ICW1 - ICW4. При наличии в системе одного контроллера ICW3 не выводится. Наличие ICW4 определяется содержанием ICW1. При наличии каскада из нескольких ПКП каждый из них инициализируется отдельно.

Для инициализации и управления работой ведомого контроллера используются адреса A0h, A1h. В порт с адресом A0h выводятся ICW1, OCW2 и OCW3. Порт с адресом A1h используется для вывода ICW2, ICW3, ICW4 и OCW1.

При наличии в системе ведомого контроллера слово ICW3 для контроллеров ПКП обязательно.

Формат ICW1 следующий:

Биты ICW1 Назначение и содержание
0 1 – управляющее слово ICW4 будет присутствовать в данной последовательности приказов
1 0 – каскадное подключение ПКП (ICW3 будет в последовательности) 1 – одиночное подключение ПКП (ICW3 не будет)
2 0 – не используется
3 0 – прерывание по перепаду сигнала
4 1 – признак ICW1
5..7 0 – не используется

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

Биты ICW2 Назначение и содержание
0..2 0 – не используется
3..7 Бит для задания номера базового вектора

 

Управляющее слово ICW2 задает номер вектора прерывания, процедуры обработки прерываний, для аппаратного прерывания irq0. Вектора обработки аппаратных прерываний располагаются последовательно с адреса 08h, загружаемого в начале работы процессора. Некорректное изменение номера вектора приведет к сбою всей системы.

Формат ICW3 для ведущего контроллера следующий:

Биты ICW3 Назначение и содержание
0..7 1- если ко входу irqN подключен ведомый 0- если ко входу irqN подключено внешнее устройство

Формат ICW3 для ведомого контроллера следующий:

Биты ICW3 Назначение и содержание
0..3 Задает номер уровня, на котором работает ведомый контроллер
4..7 0 – не используется

Формат ICW4:

Биты ICW4 Назначение и содержание
0 Тип микропроцессора: 0 – i8080; 1 – i80x86, Pentium
1 1- режим автоматического завершения обработки прерывания, описанный выше 0- действует обычное соглашение: процедура обработки аппаратного прерывания должна сама сбрасывать свой бит в ISR.
2 1 – данный контроллер ведущий, 0 - данный контроллер ведомый
3 1 – системная шина буферизована 0 - системная шина не буферизована
4 0 - устанавливает специальный вложенный режим, применяемый при каскадировании для определения приоритетов запросов от разных контроллеров (Special Fully Nested Mode)
5..7 0

 

В процессе работы с ПКП вы можете без переинициализации:

- маскировать и размаскировать аппаратные прерывания;

- изменять приоритеты уровней;

- издавать команду завершения обработки аппаратного прерывания;

- устанавливать/сбрасывать режим специальной маски;

- переводить контроллер в режим опроса и считывать состояние регистров ISR и IRR.

Для этого Вам потребуется вывести в порты ПКП одно из трех слов рабочих приказов OCW1 - OCW3.


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

Биты ОCW1 Назначение и содержание
0..7 0 – разрешить прерывания уровня N 1 - запретить прерывания уровня N

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

Биты ОCW2 Назначение и содержание
0..2 000-nnn – код уровня запроса irq для действий, определяемых разрядами 5-7
3..4 00 – признак OCW2
5 0- режим автоматического EOI 1- режим неавтоматического EOI
6..7 Задают операцию в сочетании с 5-м битом: 000 – автоматический режим приоритетов с автоматическим EOI 001 – сброс бита с максимальным приоритетом в ISR 011 – сброс бита в ISR для уровня с кодом nnn 100 – установка режима циклической смены приоритета при автоматическом EOI 101 – установка режима циклической смены приоритета при неавтоматическом EOI 111 - установка режима циклической смены приоритета но относительно бита nnn

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

Биты ОCW3 Назначение и содержание
0..1 10 – прочитать содержимое IRR (следующей командой из порта 020h); 11– прочитать содержимое ISR (следующей командой из порта 020h); Содержимое IМR доступно постоянно как содержимое порта 021h.
2 1 - переводит контроллер в режим опроса
3..4 Признак OCW3
5..6 11 – установить режим специального маскирования 10 – сбросить режим специального маскирования 00 или 01 – ничего не менять
7 0

Распределение и приоритеты аппаратных прерываний в архитектуре АТ

 

Уровень Контроллер Источник прерываний Приоритет уровня
Irq0 Ведущий Таймер 2
Irq1 Ведущий Клавиатура 3
Irq2 Ведущий Выход INT ведомого  
Irq8 Ведомый Часы реального времени 4
Irq9 Ведомый Вход для устройства расширения 5
Irq10 Ведомый Вход для устройства расширения 6
Irq11 Ведомый Вход для устройства расширения 7
Irq12 Ведомый Вход для устройства расширения 8
Irq13 Ведомый Ошибка сопроцессора 9
Irq14 Ведомый Контроллер жесткого диска 10
Irq15 Ведомый Вход для устройства расширения 11
Irq3 Ведущий Вход для устройства расширения (последовательный порт СОМ2) 12
Irq4 Ведущий Вход для устройства расширения (последовательный порт СОМ1) 13
Irq5 Ведущий Вход для устройства расширения (параллельный порт LPT2) 14
Irq6 Ведущий Контроллер гибкого диска 15
Irq7 Ведущий Вход для устройства расширения (параллельный порт LPT1) 16

 



2019-12-29 249 Обсуждений (0)
Программирование контроллера прерываний i 8259 A 0.00 из 5.00 0 оценок









Обсуждение в статье: Программирование контроллера прерываний i 8259 A

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (249)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)