On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

2. Функциональное описание

Прерывание в микрокомпьютерной технике

	Дизайн микрокомпьтерных систем требует, чтобы  обмен
таких  устройств  как  клавиатура,  дисплеи,  датчики  и др.
компоненты обслуживались  эффективным образом  и большинство
общих  системных  задач  могло	выполняться  компьютером   с
небольшой или несущественной остановкой.
	Наиболее общий метод обслуживании таких устройств  -
опросный.  При	этом   процессор  должен  проверять   каждое
устройство  последовательно  и	реализует  его	запрос	 при
необходимости обслуживания.  Нетрудно заметить,  что большая
часть главной программы бесконечно зациклена на  непрерывном
опросе	и  что	такой  метод  имел бы  серьезный detrimental
-альный эффект	в системной  производительности, ограничивая
задачи,  которые  мог  бы  выполнять  компьютер  и  уменьшая
стоимостную эффективность использования таких систем.
	Более  желательным   был  бы   метод,  при   котором
компьютеру  позволялось  выполнять  его  главную программу и
останавливать  ее  для	обслуживания  периферийных устройств
только, когда устройства  говорят об этом.  Эффективен метод
обеспечивавший	 бы   внешний	асинхронный   ввод,  который
информировал  бы   процессор,  что   он  должен    завершить
выполнение текущей инструкции  и перейти к  новой программе,
которая  обслужит  запрашиваеющее  устройство.	Однако,   по
завершению обслуживания процессор вспомнил бы точно, где  он
прервался.
	Такой метод называется прерывание. Легко видеть, что
системная    производительность    резко    возрастает	  и,
следовательно  компьютер  может   выполнять  больше   задач,
увеличивая свою стоимостную эффективность.
	Функцией Программируемого  Контроллера Прерываний  (
ПКП /  PIC )  является общее  управление всем  оборудованием
систем с  прерываниями. Он  принимает запросы  от периферии,
различает  какое   из  входных	 требований  более    важное
(приоритетное),  устанавливает	выше  ли  приоритет входного
запроса  значения  текущего  обслуживаемого  уровня и выдает
прерывание в ЦПУ основываясь на этом определении.
	Каждое периферийное устройство или структура  обычно
имеет	специальную   программу   или	"рутину",    которая
ассоциируется	с   их	 специфичными	функциональными  или
операционными	требованиями;	 это	обычно	  называется
"программой  обслуживания".  ПКП  после  выдачи прерывания в
ЦПУ,  должно  как-то  ввести   информацию  в  ЦПУ,   которая
разместит счетчик команд на сервисную программу связанную  с
запрашивающим устройством. Этот указатель является адресом в
таблице векторов, и в этом документе часто будет  называться
векторными данными.

8259A

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

Регистр Запросов на Прерывание (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.


Назад       Содержание       Вперёд