Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Микропроцессоры и микроЭВМ. Периферийные устройства

.pdf
Скачиваний:
6
Добавлен:
12.11.2023
Размер:
2.66 Mб
Скачать

7. Программируемый контроллер прерываний

Программируемый контроллер прерываний (ПКП) ИМС ВН59 реализует управление приоритетными прерываниями от 8 источников. Число источников прерывания относительно просто может быть увеличено до 64. Контроллер инициализируется под управлением программы и с использованием управляю­ щих слов может быть настроен для работы в одном из следующих четырех ре­ жимов:

-векторное прерывание с фиксированным приоритетом. Каждому входу запросов прерывания присваивается фиксированный приоритет в порядке воз­ растания. Запрос с более высоким приоритетом прерывает обслуживание пре­ рывания с меньшим приоритетом;

-векторное прерывание с циклическим перераспределением приорите­ тов. Каждому входу запросов прерывания, как и в предыдущем режиме работы, присваивается приоритет, но после каждого запроса и обслуживания прерыва­ ния вся система приоритетов изменяется по кругу так, что последний обслу­ женный вход запроса прерывания будет иметь самый низкий приоритет, а вход запроса прерывания, который дольше всех не обслуживался - наивысший при­ оритет;

1.После появления на одной или нескольких линиях ЗПР сигнала 1 кон­ троллер фиксирует запросы в РЗПР, учитывая их приоритеты, и формирует сигнал ПР для МП.

2.После завершения выполнения текущей команды МП в случае, если прерывания разрешены командой EI, выдает в 11KII сигнал подтверждения пре­ рывания ПНР.

3.1ЖП по ШД передает в МП первый байт (код операции) команды CALL для вызова подпрограммы обслуживания'прерывания.

4.Код операции CALL (11001101B=CDH) заставляет МП выработать два дополнительных сигнала ППР, по которым ПКП передает в МП предваритель­ но запрограммированный двухбайтный адрес подпрограммы обслуживания прерывания.

5.Управление передается подпрограмме обслуживания прерывания.

6.После завершения подпрограммы выполняется возврат к прерванной программе.

Регистр запросов РЗПР фиксирует все сигналы ЗПР в том случае, если они сохраняют значение 1 до первого ответного сигнала ПИР. По сигналу ПИР! контроллер выдает в шину данных код операции CALL и фиксирует сигнал за­ проса в соответствующем разряде РЗПР. По сигналам ППР2 и ППРЗ контроллер выдает в ШД два байта начального адреса подпрограммы обслуживания преры­ вания. После сигнала ППРЗ логика приоритетов устанавливает в 1 соответст­ вующий разряд в регистре обслуживания P03JTP, сбрасывает этот же разряд в регистре РЗПР и блокирует сигналы ЗПР от этого и от всех других входов

сменьшим приоритетом. При этом сигнал ЗПР на данном входе может еще быть в состоянии 1, однако это нс вызовет повторного прерывания, так как по­ следующие запросы прерываний от данного входа запрещены до момента по­ лучения от МП управляющего слова конца прерывания (УСКП) или специаль­ ный конец прерывания (УССКП), выдачей которых б ПКП должны завершаться все подпрограммы обслуживания прерываний. Для повторного запроса преры­ вания сигнал на входе ЗПР должен быть предварительно сброшен в нулевое со­ стояние.

Запретить обслуживание запросов прерывания можно применением мас­ кирования. Загрузка в регистр МЗПР соответствующего управляющего словамаски (УСМ) позволяет заблокировать любой из входов ЗПР.

При этом сигпал ЗПР будет зафиксирован в РЗПР и может быть обслу­ жен, если выполняемая программа снимет маску. Маскирование входа ЗПР

снекоторым приоритетом не блокирует прерывания от входов ЗПР с меньшими

приоритетами.

Модифицировать механизм блокировки сигналов ЗПР можно с использо­ ванием механизма специального маскирования, который позволяет «затемнить» любой разряд РОЗПР. Применяется этот механизм в тех случаях, когда при­ кладной программе необходимо на какое-то время разрешить прерывания от всех источников, в том числе и от источников прерывания с низкими приорите­ тами. Можно было бы обеспечить это загрузкой УС, по которому сбрасывается

Слово УС01 используется для маскирования отдельных запросов преры­ вания во время исполнения программы. Сигналы ЗПР фиксируются в РЗГГР, но не обслуживаются до тех пор, пока программа не снимет маску.

 

Младший бейт адресе в команде CALL

Ао

D7 DQ D5 П4 D3 Do D-} DQ

B2 - Во - двоично-десятичный код ЗПР, выротевшего ПР (уазатель вектора прерывания)

 

АО

О7

 

De

Ds

D4

D3

О2

D1

DQ

 

УСИ2

А15 А14

А13

A12

AH

Аю

Ag

Aa

Старший байт

 

 

адреса в

 

 

 

 

 

 

 

 

 

 

 

команде CALL

 

Ар

Dr

 

Da

05

D4

D3

D2

01

DO

 

УСИЗа

1

U7

 

иа

U5

U4

U3

U2

U1

U0

Для

 

ведущею

 

 

 

 

 

 

 

 

 

 

 

ПКЛ

 

 

1

Имеет ведомого

На вход ЗПР ведущего сигнал ПР ведомого

 

 

 

0

На имеет

 

На вход ЗПР сигналы запроса отУВВ

 

 

 

 

L

 

_______________________________________________ I

 

Ао

Об

05

04

D3

02

01

DO

 

 

07

 

 

 

 

 

 

0

0

0

0

U2

U1

ио

Для

 

 

 

 

ведомого

 

 

 

 

 

 

 

 

 

 

 

ПКП

и г

U1

и0

ПКП

0

0

0

0

1

0

0

1

2

0

1

0

3

с

1

1

4

1

0

0

5

1

0

1

6

1

1

0

7

1

1

1

fs

i 1

£ 9

l l

Слово УСОЗ используется для управления режимом специального маски­ рования, для чтения состояния ПКП и управления работой ПКП в режиме пре­ рываний по результатам опроса.

Таблица 7.1

Операции ПКП для УС02

УСО

D 7D 6D 5D4D 3

D2D 1D0

КП

0 0 1 0 0

X X X

к п ц

1 0 1 0 0

X X X

е к п

0 1 1 0 0

АР2АР1АП0

е к п ц

1 1 1 0 0

АР2АР1АП0

УПЦ

1 1 0 0 0

APjAPiAIIo

 

 

i

 

 

1

Операции

Фиксированный приоритет. Сброс разряда РОЗПР с максимальным приоритетом Конец прерывания. Циклический сдвиг приоритетов. Присвоение обслуженному запросу минимального уровня приоритетов Специальный конец прерывания. Фиксиро­ ванный приоритет.

АРгАРо - адрес сбрасываемого разряда в РОЗПР Специальный конец прерывания. Цикличе­

ский сдвиг приоритетов.

АРгАРо - адрес сбрасываемого разряда в РОЗПР и присвоения ему низшего уровня приоритетов

Установка приоритета. Циклический сдвиг S приоритета без завершения обслуживания прерывания.

АРгАРо - адрес входа ЗПР. которому при­ сваивается низший приоритет

С помощью УСОЗ МП имеет возможность считать состояние ПКП, т.е. перегрузить в свои рабочие регистры для последующего анализа содержимое РЗПР, РОЗПР и регистр маски. Содержимое регистров считывается по команде IN ADR, которая должна следовать сразу за УСОЗ. Для чтения регистра маски не надо подавать УСОЗ, так как в буфере данных ПКП автоматически пред­ ставляется содержимое регистра МЗПР, если AQ= 1 и на вход ЧТ подается сиг­ нал 0, генерируемый по команде IN ADR.

При обслуживании прерываний по опросу программа блокирует коман­ дой DI вход ЗПР процессора, так как в этом режиме инициирует обслуживание сам МП. После подачи УСОЗ обслуживание по результату’ опроса по команде IN ADR (сигнал Ч Т =0) в МП передается слово состояния ПКП, формат которо­ го и назначение полей показаны на рис. 7.4.

Обслуживание запросов УВВ на прерывание осуществляется после ана­ лиза считанного слова состояния ПКП специальной программой, которая опре­ деляет, какой из пришедших ЗПР обладает наивысшим приоритетом по сравне­ нию с приоритетом выполняемой в текущий момент времени программы.

к МП

 

 

ППР

 

ПР

т

 

 

 

 

 

 

л

 

<2=

0

1

о

ПКП

*

 

 

 

 

2

ё

1чл^2-0

 

ведущий

^

 

 

CZ

 

 

щ

 

Л

 

в п м

 

_

 

у

 

 

 

 

 

х

в

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

х

 

 

 

 

 

 

3

А-

ППР

 

ПР

 

 

 

 

О) ПКП

 

 

N-

D(7 -

^

 

 

 

 

 

ведомый

ж

 

 

к а с 2-о

№ 7

ш

 

 

 

^

 

 

 

 

 

 

 

у •,

я п м

 

 

Рис. 7.5. Каскадное соединение ПКП

ЗПРо

ЗПР1

ЗПР2

ЗПРз

ЗПР*

ЗПРв

ЗПРв

ЗПР7

ЗПРв

ЗПРв

ЗПРш

ЗПРм

ЗПР,2

ЗПР,3

ЗПР14

ЗПР1б

ЗПР2|

По сигаалам ППР устанавливаются соответствующие прерывающим вхо­ дам разряды РОЗПР ведущего и ведомого ПКП. Поэтому подпрограмма обслу­ живания прерывания должна завершаться выдачей двух УС конца прерывания для ведущего и ведомого ПКП.

Режимы работы и система распределения приоритетов за внешними уст­ ройствами могут быть изменены для каждого ПКП статически или динамиче­ ски в любое время выполнения основной программы системы.

Инициализация ПКПВН59

Пример. Запрограммировать режим работы, используя УСИ1иУСИ2, с па­ раметрами:

- начальный адрес таблицы переходов - 4000Н;

-формат - 4 байта;

-один ПКП в системе.

1.Составим управляющее слово инициализации (УСИ1):

D7

D6

D5

D4

D3

D2

D1

D0

 

0

0

0

1

0

1

1

0

И

 

 

 

 

 

 

 

1|

 

2,Составим управляющее слово инициализации (УСИ2);

D7 D6

D5

D4

D3

D2

D1__ DO

J

0

0

j 0

0

о ! о 1

 

. . 1

 

1

 

____I_____ I

-в шестнадцатиричном коде УСИ2 = 40Н;

-примем адрес ПКП, чтобы записать в регистр УСИ1 - 50Н, адрес дол­ жен быть всегда четным, т.к. Ао =0, адрес УСИ2 = 51Н, т.к. Ао =1.

3.Напишем программу инициализации:

LOAD: DI

; запретить прерывание

MVI А, 16Н; занести УСИ1 в регистр А

OUT ЗОН

; вывести УСИ1 из per. А в рег.УСИ! ПКП

MVI А, 40Н; занести УСИ2 в регистр А

OUT 51Н

; вывести УСИ2 из per. А в рег.УСИ2 ПК11

Е1

; разрешить прерывание

Соседние файлы в папке книги