Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Обработка внешних аппаратных прерываний. Назначение и работа контроллера прерываний. Последовательность аппаратного прерывания.





1) Асинхронные или внешние (аппаратные) прерывания — события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши. Факт возникновения в системе такого прерывания трактуется как запрос на прерывание (англ. Interrupt request, IRQ);

2) 8259A является устройством, специально разработанным для микрокомпьютерных систем с прерываниями. Он управляет восьмью уровнями или запросами и имеет встроенные средства расширения другими 8259A (до 64 уровней). Он программируется системным мат обеспечением как устройство обмена. Доступный программисту выбор приоритетных режимов таков, что порядок, по которому запросы обрабатываются 8259А может конфигурироваться в соответствие с системными требованиями. Приоритетные режимы могут изменяться или переконфигурироваться динамически в любое время в главной программе. Это означает, что полные структуры прерываний могут определятся в соответствие с требованиями, основываясь на общем системном оборудовании.8259A разработана для минимизации объемов программного обеспечения и накладных расходов времени при обработке прерываний с несколькими уровнями прерываний. В нем имеется несколько режимов, позволяющих оптимизацию многих системных требований. 8259A полностью совместима на верхнем уровне с Intel8259. Оригинальное мат обеспечение, написанное для 8259 будет работать с 8259A во всех эквивалентных режимах (MCS-80/85, небуферизованный, триггер по фронту).

Регистр Запросов на Прерывание (IRR) и Регистр Занятости (ISR ).

Прерывания с входных линий IR обрабатываются двумя каскадированными регистрами, регистром запросов на прерывание и регистром занятости. IRR используется для хранения прерываний всех уровней, которые запросили обслуживание, а ISR хранит все уровни прерываний, которые обслуживаются.

Арбитраж приоритетов.

 

Этот блок определяет приоритеты битов, установленных

в IRR. Высший приоритет выбирается и стробируется в

соответствующий бит ISR по сигналу INTA

 

Регистр масок прерываний (IMR)

В IMR хранятся биты, которые отмечают маскируемые линии прерываний. IMR оперирует на IRR. Маскирование входа с более высоким приоритетом не влияет на прерывания линий запросов с более низкими приоритетами.

 

INT (Прерывания)

Этот выход идет непосредственно на вход прерывания ЦПУ. Уровень Vон этой линии полностью совместим с входными уровнями 8080A, 8085A и 8086.

 

INTA (Запрос на прерывания)

Импульс INTA вызывает выдачу из 8259A на шину данных векторной информации. Формат этих данных зависит от режима системы (мPM) 8259A.

 

Буфер шины данных

 

Высокоимпедансный двунаправленный 8-битовый буфер используется для согласования с системной шиной данных. Управляющие слова и информация о состоянии передаются череэ буфер данных.

 

Логика управления обменом (чтением/записью)

 

В функции этого блока входит прием команд OUT из ЦПУ. Он состоит из регистров командных слов инициализации (ICW) и командных слов операции (OCW), которое хранят различные форматы управления операциями устройств. Этот функциональный блок также позволяет передавать статус 8259A на шину данных.

__

CS (выбор схемы - chip select)

Низкий уровень данного входа разрешает работу 8259A. Пока не схема не выбрана, невозможно ничего ни прочитать ни записать на нее.

 

__

WR (запись)

Низкий уровень данного сигнала разрешает ЦПУ запись управляющих слов (ICW и OCW) в 8259A.

 

__

RD (чтение)

Низкий уровень данного сигнала позволяет 8259A посылать состояние регистра запросов на прерывания IRR, регистра обслуживания ISR, регистр масок прерывания IMR или уровень прерывания на шину данных.

 

A0 __ __

Этот входной сигнал используется вместе с WR и RD для записи команд в различные командные регистры, а также для считывания различных регистров состояния микросхемы. Эта линия может подключаться непосредственно к одной из адресных линий.

 

Каскадный буфер/компаратор

 

Этот функциональный блок хранит и сравнивает идентификаторы всех 8259A используемых в системе. Соответствующие три ножки (CAS0-2) являются выходами, когда 8259A используется как ведущая, и входами, когда 8259A - ведомая. Ведущая 8259A посылает идентификатор ведомого устройства на линии CAS0-2. Выбранное таким образом ведомая схема выдает запрограммированный адрес подпрограммы на шину данных во время одного или двух последующих импульсов INTA (см пункт "Каскадирование 8259A")

Последовательность прерывания

Мощным средством 8259A для микрокомпьютерных систем является его программируемость и возможность адресации рутин прерывания. Последнее позволяет непосредственно или косвенно переходить на указанную рутину обслуживания прерывания безо всякого опроса прерывающих устройств. Обычная последовательность событий при прерывании зависит от типа используемого ЦПУ.

В системах MCS-80/85 порядок событий следующий:

 

1. Одна или несколько линий запросов на прерывание (IR0-7) становятся высокими, устанавливая соответствующие биты IRR.

2. 8259A оценивает эти запросы и посылает INT в ЦПУ, если это требуется.

3. ЦПУ подтверждает INT, отвечая импульсом INTA.

4. Получив от ЦПУ INTA, в ISR устанавливается бит с высшим приоритетом, а в IRR соответствующий бит сбрасывается. 8259A также выдает код инструкции CALL (11001101) на 8-битовую шину данных на ее линии D7-0.

5. Данная инструкция CALL вызовет еще два импульса INTA, посылаемых на 8259A от ЦПУ.

6. Эти два импульса INTA разрешают 8259A выдать запрограммированные адреса подпрограмм на шину данных. Вначале выходят младшие 8 битов адреса, а затем по второму импульсу INTA старшие 8 бит.

7. Это завершает 3-байтную инструкцию CALL генерируемую 8259A. В режиме AEOI бит ISR сбрасывается по концу третьего импульса INTA. В противном случае бит ISR остается установленным пока соответствующая команда EOI не выдаст конец последовательности прерывания. В системе iAPX-86 порядок до шага 4 тот же.

 

4. Получив от ЦПУ INTA, в ISR устанавливается бит с высшим приоритетом, а в IRR соответствующий бит сбрасывается. 8259A ничего не выдает на шину данных в течение этого цикла.

5. iAPX-86/10 инициирует второй импульс INTA. В течение этого импульса 8259A выдает на шину данных 8-битовый указатель, откуда он считывается ЦПУ.

6. Это завершает цикл прерывания. В режиме AEOI бит ISR сбрасывается по концу второго импульса INTA. В противном случае бит ISR остается установленным пока соответствующая команда EOI не выдаст конец последовательности прерывания.

 

Если запросы на прерывание на шаге 4 любой из последовательностей отсутствовали, (т.е. длительность запроса была слишком короткой), 8259A выдаст прерывание уровня 7. И векторные данные, и каскадные линии будут такими же как и при запросе на прерывание с уровнем 7.

 

3) Контроллер прерываний (Programmable Interrupt Controller, PIC) — микросхема или встроенный блок процессора, отвечающий за возможность последовательной обработки запросов на прерывание от разных устройств

Билет №10







ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.