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








 

7. Режимы реагирования на уровень и на фронт

Этот режим программируется битом 3 в ICW1.
	Если  LTIM=0,  прерывание  будет  распознаваться  по
переходу от нижнего уровня к  верхнему на входе IR. Вход  IR
может оставаться высоким, без генерации других прерываний.
	Если  LTIM=1,  прерывание  будет  распознаваться  по
"высокому"  уровню  на  входе  IR,  и  нет необходимости для
определения фронта.  Запрос на	прерывание должен  убираться
перед  выдачей	команды  EOI,  либо  прерывание  ЦПУ  должно
позволить предотвратить реагирование на второе прерывание.
	На   диаграмме	  приоритетной	  ячейки    показана
концептульная  цепь  реагирования  на  фронт  и  на  уровень
входных сигналов в 8259A. Обязательно отметьте, что  триггер
запроса является D-триггером.
	В обоих режимах реагирования как по фронту, так и по
уровню вход IR должен  оставаться высоким до заднего  фронта
первого  INTA.	Если  вход   IR  станет  низким  до   этого,
произойдет прерывание по умолчанию IR7, когда ЦПУ подтвердит
прерывание. Это может быть полезно для гарантии  определения
прерываний вызванных вызванных всплесками шума на входе  IR.
Чтобы использовать это средство, рутина для IR7 используется
для   "уборки"   в   виде   простой   инструкции   возврата,
следовательно игнорируя прерывание. Если IR7 необходимо  для
других целей, IR7,  вызванную по умолчания,  можно выделить,
прочитав ISR. Обычное IR7 устанавливает соответствующий  бит
ISR, а	шумовое IR7  нет. Если	произойдет IR7-  шумовое при
выполнении  рутины  обслуживания  обычного  IR7, регистр ISR
останется   установленным.   В	 этом	случае	  необходимо
прослеживать,  вошли  или  нет	в  рутину  IR7	ранее.	Если
произошло второе IR7, то это шум.


Специальный полностью вложенный режим.

	Этот режим  используется в  больших системах,  когда
применяется каскадирование, а  приоритеты хранятся в  каждом
ведомом 8259A. В  этом случае ведущий  8259A программируется
(используя ICW4) на полностью  вложенный режим.  Этот  режим
похож на обычный вложенный режим за исключением следующего:

a. При обслуживании  запроса на прерывание  от определенного
   ведомого, этот ведомый 8259A не блокируется	приоритетной
   логикой  ведущего  и  последующие  запросы  на прерывание
   более приоритетных IR ведомого будут распознаны ведущим и
   вызовут прерывания процессора. В обычном вложенном режиме
   ведомый 8259A маскируется весь, когда обслуживается	один
   из  его  запросов,  и  ни  один  более высокоприоритетный
   запрос от него не может быть обслужен.

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



Буферный режим

	Когда 8259A используется в больших системах, где для
подключения на	шину данных  требуются буферы  и применяется
каскадный режим, существуют проблемы с разрешением буферов.
	Буферный  режим  будет	структурировать  8259A	так,
чтобы посылать сигнал разрешения на SP/EN разрешая буфера. в
данном	режиме	как  только  разрешаются  выходы шины данных
8259A, становится активным выход SP/EN.
	Данная	 модификация	заставляет   определять    в
программном обеспечении,  является ли  данная 8259A  ведущей
или ведомой. Бит 3 в ICW4 программирует в буферный режим,  а
бит 2 в ICW4  определяет, является данная 8259A  ведущей или
ведомой.



		К А С К А Д Н Ы Й   Р Е Ж И М.

	8259A  может  быть  лего  подсоединен  в  систему из
одного	главного  и   до  8  ведущих,	обрабатывая  до   64
приоритетных уровней.
	Ведущий управляет ведомыми по трем линиям  каскодной
шины.  Каскадная  шина	работает  как "выбор микросхемы" для
ведомого во время последовательности INTA.
	В каскадной  конфигурации выходы  прерывания ведомых
подключаются на  входы запросов  на прерывания	IR ведущего.
Когда  активизируется  линия  запроса  в  ведомом,  а  затем
подтверждается, ведущий  разрешит соответствующему  ведомому
выдать адрес рутины устройства в течение второго и  третьего
байта INTA (только второго в 8086/8088)
	Сигналы каскадной шины обычно низкие и содержат  код
адреса ведомого между задним фронтом первого импульса INTA и
задним фронтом	третьего импульса.   Каждый 8259A  в системе
должен	быть  раздельно  проинициализирован  и	может	быть
запрограммирован для работы в различных режимах. Команда EOI
должно выдаваться дважды:  один раз на	ведущий и другой  на
соответствующий  ведомый.  Для	активизации  входа CS (выбор
схемы) каждого 8259A требуется адресный декодер.
	Каскадные  сигналы  ведущего  8259A   активизируются
только	для  входов  ведомых,  ни  один  вход  ведомого   не
оставляет каскадные линии неактивными (низкими).
Назад       Содержание