Пример: Глобальная сеть INTERNET
Я ищу:
На главную  |  Добавить в избранное  

Главная/

Радиоэлектроника, компьютеры и периферийные устройства. /

Архитектураввода-вывода персональных ЭВМ IBM PC

←предыдущая следующая→
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 

управляющих слов ICW и  OCW. Схема управляется входами  CS, RD, WR и  A0. Вход CS (Chip  select)  отвечает  за  выбор  микросхемы.  Низкий уровень сигнала на  входе CS разрешает  выполнение обмена с  ПКП. Низкий уровень  сигнала на  входе WR  (Write) разрешает микропроцессору выводить управляющие слова  ICW и OCW для приема  их ПКП. Низкий уровень  сигнала  на  входе  RD  (Read)  разрешает  ПКП передать микропроцессору  информацию  о  состоянии  специальных регистров IRR, ISR и IMR, которые описаны ниже.

     Все управляющие слова ICW  и OCW принимаются контроллером в виде  9-разрядных  значений.  Разряды  0  -  7  передаются через 8-разрядный  буфер  данных.  Старший  разряд  (восьмой, считая с нуля)  носит  название  А0  и   устанавливается  в  0  или  1  в зависимости  от  того,  через  какой  из  двух  возможных портов ввода-вывода  (четный  или  нечетный)  было передано управляющее слово.  Если для  вывода  значения  использовался порт  с четным адресом, А0  будет равен 0,  если использовался порт  с нечетным адресом на единицу большим, чем предыдущий, тогда А0 будет равен 1.

     Регистр запросов на прерывания (Interrupt Request Register, IRR) обслуживается через входы IR0  - IR7 контроллера. Сигнал на одном   входов   IR0   -   IR7   -   это  запрос  на  прерывание соответствующего  уровня  (0  -  7).  В  соответствии с сигналом запроса   на   прерывание   схемой   управления  устанавливается соответствующий бит в регистре IRR.

     Регистр   состояния   (регистр   обрабатываемых   запросов, In-Service  Register, ISR)  описывает в  битах 0  - 7 прерывания каких уровней (0 - 7) в данный момент обрабатываются.

     Регистр маскирования запросов на прерывания (Interrupt Mask Register, IMR)  описывает, прерывания каких  уровней в настоящий момент замаскированы. Единичное значение бита в IMR указывает на то, что прерывание соответствующего уровня при появлении запроса в IRR блокируется.

     Схема обработки приоритетов (шифратор приоритетов, Priority Resolver) определяет,  прерывание какого уровня  в данный момент является наиболее приоритетным для выполнения.

     Схема   управления  ПКП   формирует   сигнал   запроса  на

прерывaние,  поступающий  на  вход  INT  (запрос  на прерывание) микропроцессора. Если флаг IF регистра флагов процессора равен 1 (прерывания  разрешены),  процессор  отвечает  сигналом по линии INTA  (подтверждение прерывания),  после чего  сбрасывается в  0 разряд  IRR и  устанавливается в  1 разряд  ISR, соответствующие уровню  обрабатываемого  прерывания.   После  получения  второго сигнала подтверждения от процессора  по линии INTA, ПКП передает на   шину данных    8-битовый   номер  прерывания.   Данная

последовательность  работы  схемы  управления  выполняется  при

подключении  ПКП к  системе с  микропроцессорами 8088/8086.  При работе  с микропроцессорами  8080/8085 последовательность работы схемы  управления     несколько  отличается  от   описанной  выше.

Основное  отличие состоит  в том,  что процессору  передается не только  номер  прерывания,  но  и  код  команды  процессора  INT (прерывание) - байт 0CDh.

     Схема   каскадирования  отвечает  за  работу   каскада  из

нескольких контроллеров. При  подключении к ведущему контроллеру выход INT каждого ведомого подключается к одному из входов IR0 ­IR7 ведущего.  Далее этот сигнал передается  ведущим на вход INT процессора.  Когда  процессор  возвращает  сигнал  INTA, ведущий контроллер не только устанавливает бит  в ISR и сбрасывает бит в IRR,  но  и  выдает  на  свои  выходы  CAS0  - CAS2 номер уровня прерывания,  к которому  подключен ведомый,  пославший запрос на прерывание.  Сигналы  по  линии  CAS0  -  CAS2 принимаются всеми ведомыми, однако обрабатываются только  тем, который подключен к линии IR с соответствующим номером.

3.2.Режимы работы ПКП

     1. Режим  фиксированных приоритетов (Fixed  Priority, Fully Nested  Mode). В  этом режиме  контроллер находится  сразу после инициализации. Запросы прерываний имеют  жесткие приоритеты от 0 до 7  (0     -  высший)   и  обрабатываются   в  соответствии  с

приоритетами. Прерывание с меньшим  приоритетом никогда не будет обработано,  если  в  процессе   обработки  прерываний  с  более высокими  приоритетами   постоянно  возникают  запросы   на  эти прерывания.

     2. Автоматический сдвиг приоритетов (Automatic Rotation). В этом  режиме  дается   возможность  обработать  прерывания  всех уровней без  их     дискриминации.  Например,   после  обработки

прерывания  уровня  4  ему  автоматически  присваивается  низший приоритет,  при  этом  приоритеты  для  всех  остальных  уровней циклически сдвигаются и прерывания уровня 5 будут иметь в данной ситуации  высший  приоритет  и,  следовательно, возможность быть обработанными.

     3.   Программно-управляемый   сдвиг   приоритетов(Specific

Rotation). Программист  может сам передать  команду циклического сдвига приоритетов ПКП, задав соответствующее управляющее слово. В команде  задается номер  уровня, которому  требуется присвоить максимальный   приоритет.   После выполнения   такой   команды

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

     4.   Автоматическое   завершение    обработки   прерывания

(Automatic  End Of  Interrupt,  AEOI).  В обычном  режиме работы процедура  обработки аппаратного  прерывания должна  перед своим завершением очистить свой бит  в ISR специальной командой, иначе новые  прерывания не  будут  обрабатываться  ПКП. В  режиме AEOI нужный бит в ISR автоматически  сбрасывается в тот момент, когда

начинается обработка прерывания нужной процедурой обработки и от нее   не   требуется   издавать   команду  завершения  обработки прерывания   (EOI).    Сложность   работы   в    данном   режиме обуславливается  тем,  что  все  процедуры  обработки аппаратных прерываний  должны быть  повторно входимыми,  т. к.  за время их работы могут повторно возникнуть прерывания того же уровня.

     5.  Режим  специальной  маски  (Special  Mask Mode). Данный режим  позволяет  отменить  приоритетное  упорядочение обработки запросов  и обрабатывать  их по  мере поступления.  После отмены режима  специальной  маски  предшествующий  порядок  приоритетов уровней сохранается.

     6. Режим  опроса (Polling Mode).  В этом режиме  аппаратные прерывания  не происходят  автоматически. Появление  запросов на прерывание  должно  определяться  считыванием  IRR. Данный режим позволяет так  же получить от ПКП  информацию о наличии запросов на  прерывания   и,  если  запросы  имеются,  номер  уровня   с

максимальным приоритетом, по которому есть запрос.

3.3.Программирование ПКП

     Ниже   описывается   управление   ПКП   в   ПЭВМ   на  базе

микропроцессоров Intel 8086/8088/80286. Возможности, позволяющие включить ПКП в ПЭВМ, использующие другие процессоры, опущены.

     Для   вывода  информации  в  ПКП   используются  2   порта

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

←предыдущая следующая→
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 


Copyright © 2005—2007 «RefStore.Ru»