Добавил:
kostikboritski@gmail.com Выполнение курсовых, РГР технических предметов Механического факультета. Так же чертежи по инженерной графике для МФ, УПП. Писать на почту. Дипломы по кафедре Вагоны Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

литература / Пухальский Проектирование микропроцессорных систем 2001

.pdf
Скачиваний:
388
Добавлен:
12.11.2017
Размер:
21.12 Mб
Скачать

160

Глава 2. Методы ввода-вывода

Рис. 2.9. Временные диаграммы режима вывода по готовности

2.3. Программный ввод-вывод с квитированием

161

Временные диаграммы, изображенные на рис. 2.8, поясняют работу схемы в режиме ввода данных по готовности при использовании МП 8080. Аналогичным образом схема работает и в режиме вывода данных по готовности (рис. 2.9).

Диализ значения сигнала READY в МП 8080 производится в такте Т2 каждого машинного цикла. Если МП обнаружит значение сигнала READY = 0, то он перейдет в состояние ожидания выдаст значение сигнала WAIT = 1. При выходе МП из состояния ожидания сигнал WAIT авоматически сбрасывается в 0. Это же справедливо и для МП 8085, только сигнал WAIT у него

тсутствует.

____

_ _ _

Если в схеме, изображенной на рис. 2.7,

вместо сигнапов IIOR и HOW подать сигналы

iEMR и МЕШУ, то ее можно будет использовать для введения тактов ожидания при чтении и аписи данных в память. При этом, конечно, на адресный дешифратор 555ИЕ7 нужно подать ругие разряды адреса.

2.3. Программный ввод-вывод с квитированием

Ввод данных без квитирования часто неприемлем, так как микропроцессору не известны юменты времени, в которые внешние устройства записывают сигналом STB = 1 данные в бу­ ферный регистр ввода (см. рис. 2.3). Осложнения возникают и при выводе данных, если внешiee устройство, подключенное к буферному регистру вывода, не в состоянии принимать дан- 1ые с такой скоростью, с которой их может выдавать МП. В таких случаях используется цитирование (acknowledgement, handshaking — подтверждение приема) — передача устройст- >ом управляющих сигналов в ответ на принятое сообщение. Для синхронизации передачи дан­ ных между внешними устройствами и МП используются сигналы квитирования (флаги) IBF Input Buffer Full — входной буфер заполнен) и OBF (Output Buffer Full — выходной буфер затолнен) — флаги могут быть как прямыми, так и инверсными.

На рис. 2.10, а показана структурная схема внешнего устройства, предназначенного для программного ввода и вывода с квитированием; 1533ИР22 — буферный регистр ввода данных, 1533ИР23 — буферный регистр вывода данных, 1533ТМ2 —- два D-триггера регистра состоя­

ния флагов IBF1

и OBFu чтение которого МП производит через драйвер 1533АП5. Регистр со­

стояния может

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

с квитированием четырех внешних устройств.

Значение сигнала STB - 0 (STB Strobe — строб) загружает байт данных в регистр ввода и устанавливает значение флага IBFX- 1, а значение сигнала АСК ~ 0 (.АСК ■Acknowledge — квитировать) подтверждает прием байта данных внешним устройством из регистра вывода и устанавливает значение флага OBFx - ]. Флаги 1BF\ и OBF\ поступают в МГ1 программным способом (читаются по шине данных), а на внешнее устройство — аппаратно (по проводни­ кам). Чтение флагов производится значением сигнала ОЕ2 - IIORCS94 = 0, чтение регистра

ввода и сброс флага 1BF\ — значением сигнала

ОЕх- [/OR-CSHO = 0, запись байта данных

в регистр вывода и установка значения OBF{ = 0 — значением сигнала II = H O W ■CS94 = I.

На рис. 2.10,6, в изображены блок-схемы

алгоритмов программного ввода и вывода

с квитированием: port_F — имя порта регистра

состояния (регистра флагов IBF и OBF),

port_1— имя порта ввода, port_2 —■имя порта вывода. Флаги 1BF\ и OBF\ фиксируются в двух разрядах регистра состояния и перед каждой операцией ввода или вывода МП производит чте­ ние этого регистра (команда IN port_F) для проверки сигналов квитирования 1BF (при вводе — рис. 2.10, б) или OAF (при выводе — рис. 2.10, в).

При получении значения IBF = 0 при вводе МП будет читать регистр состояния до тех пар, пока внешнее устройство не выдаст данные в буферный регистр ввода и не установит флаг

II Г. И. I [уханьский

162

Глава 2. Методы ввода-вывода

IBF = 1 (рис. 2.10, б). Только обнаружив, что флаг JBF установлен в 1, МГ1 производит ввод

байта данных из буферного регистра ввода и сброс флага IBF. При получении значения разряда OBF ~ 0 при выводе МП будет читать регистр состояния до тех пор, пока внешнее устройство

не примет байт данных из буферного регистра вывода и не установит значение флага OBF = I (рис. 2.10, в). Только обнаружив, что флаг OBF = 1, МП производит вывод следующего байта

данных в буферный регистр вывода и установку флага OBF в 0. Из этого следует назначение флагов:

[0 - указание I/O загрузить буферный регистр,

I BFj =<

к , г г ■

[1 - указание МП принять байт данных;

— |0 - указание I/O принять байт данных,

'[ l - указание МП загрузить буферный регистр.

Адресация регистров ввода, вывода и состояния приведена в табл. 2.2. Здесь произведена неполная дешифрация адресных сигналов — в дешифрации не участвуют разряды адреса А{ и

Ао, а значит, часть адресов теряется. Из табл. 2.2 следует, что при использованном способе ад­ ресации одним дешифратором можно адресовать как отдельные регистры, так и интерфейсные БИС типа приведенной на рис. 2.4, содержащие до четырех устройств ввода и вывода.

Временные диаграммы, изображенные на рис. 2.11, а, поясняют процесс ввода с квитиро­ ванием, а на рис. 2.11, 6 — процесс вывода с квитированием (значения сигналов ПОИ ~ 0 и HOW = 0 помечены командами IN port и OUT port, которыми они порождаются).

Рис. 2.1ft. Программный ввод-вывод с квитированием

 

 

 

 

 

 

 

2.3. Программный ввод-вывод с квитированием

 

163

 

 

Таблица 2.2. Адресация

НО

СО

Х М Ю С

 

 

 

 

Wt-o ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Разряды адреса

 

Выход

port

ST B

 

 

 

7

6

5

4

3

2

1

0

D C

Q-j-a

 

 

 

 

z z x z z z

 

 

 

 

 

 

1

0

0

0

0

0

X

X

0

8083

IBF}

 

 

 

1

0

0

0

0

1

X

X

1

84--87

L|M 94 UlN 94

IN SQ

 

1

0

0

0

1

0

X

X

2

8 8 - 8В

D 0RG -

Z-состояние

О

 

1

0

0

0

1 1

X

X

3

8С -8 F

 

 

 

 

 

 

1

0

0

1

0

0

X

X

4

90 --93

DB ~~У

VALID y ~

И Ю

С

1

0

0

1 0

1 X

X

5

94 --97

 

1 OUT 94

|_ OUT 94

1

0

0

1 1 0

X

X

6

9 8 - 9В

 

 

 

 

 

1

0

0

1 1 1 X

X

7

9С 9F

/cF

U

 

u

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЛОт-о.

 

£

 

 

 

 

 

 

 

 

 

 

 

I/OR

""1J]N 94

U lK 94

LJlN 94

Рис. 2.11. Временные диаграммы ввода-вывода с квитированием

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

Задача 1. Из регистра ввода 1533ИР22 переслать байт данных в ячейку памяти Л/(23А7) и из ячейки памяти М(23А8) байт данных переслать в регистр вывода 1533ИР23. Решение:

 

LXI

H, 23A7h

rpH <r- 23A7 — адрес памяти

 

CALL Cin

Подпрограмма ввода Cin

 

INX

H

rp H <— 23A8 — адрсс памяти

 

CALL Cout

Подпрограмма вывода Cout

Cin:

IN

94h

А <- SW =IZO(94) = x x x x OBF2IBF2OBF1IBF] — чтение флагов

 

ANI

1

1 = 0000 0001 — маска для выделения флага IBF\

 

JZ

Cin

Переход, если IBF\ = 0

 

IN

80h

А <— //0(80) — ввод из регистра 1533ИР22

 

MOV

M, A

M(rp Н) А — запись в память

 

RET

 

 

Com/:

IN

94h

А <— SW = //0(94) = xxxxOBFjlBFzOBFJBF[ — чтение флагов

 

ANI

2

2 = 0000 0010 — маска для выделения флага OBF\

 

JZ

Cout

Переход, если OBF\ = 0

 

MOV

A, M

А <— M{rp Н) — чтение памяти

 

OUT

94h

//0(94) <— M(rp Н) — вывод в регистр 1533ИР23

 

RET

 

 

Квитирование позволяет согласовать во времени работу асинхронно работающих МП и внешних устройств — быстродействие МП может быть и больше, и меньше быстродействия внешних устройств.

164 Глава 2. Методы ввода-вывода

2.4. Ввод-вывод по прерыванию

При вводе-выводе по прерыванию внешние устройства подают на вход 1NT микропроцес­ сора 8080 сигнал запроса прерывания IRQ (Interrupt Request). Значение сигнала INT МП анали­ зирует в последнем такте последнего машинного цикла каждой выполняемой команды. При обнаружении значения INT = 1 при состоянии внутреннего триггера INTE = 1 микропроцессор приостанавливает выполнение текущей программы и переходит к выполнению подпрограммы обработки прерывания (ППОП), закончив которую возвращается к выполнению прерванной программы. Для реализации ввода-вывода по прерыванию требуются дополнительные аппа­ ратные средства. Типичным примером ввода по прерыванию является ввод кода нажатой кла­ виши клавиатуры (частота нажатия клавиш невелика и потери времени при программном вводе с квитированием были бы необоснованно большими). Выполняются ППОП на фоне основной программы, что обеспечивает наиболее рациональное использование процессорного времени.

О дновекторные системы прерываний. На рис. 2.12 изображены структурные схемы МП-систем 8080 с обслуживанием одновекторных прерываний. Вектор прерывания — это ад­ рес подпрограммы обработки прерывания или число, по которому этот адрес автоматически вычисляется микропроцессором. Подключение выхода INTA системного контроллера 8238 к источнику напряжения питания +12 В переводит его в режим выдачи в МП машинного кода FFft команды RST 7 в ответ на запрос прерывания IRQ = 1 по входу INT [10]. При приеме за­ проса прерывания (при условии, что командой EI предварительно было установлено значение сигнала INTE ~ 1) МП 8080 выдает в системный контроллер слово состояния SW8>ш = 0010x011 (см. табл. 1.15), младший разряд которого D0 = 1 блокирует системную шину данных, т. е. вы­ борка команды RST 7 производится не из памяти команд программы, а из самого системного контроллера 8238. Формат команд RST п показан на рис. 2.13 — адрес вызова ППОП вычисля­ ется автоматически и определяется числом 8 х п - (8 х 7)i0 = 5б10 = 38i6-

На рис. 2.12, а изображена структурная схема МП-системы с обслуживанием по прерыва­ нию одного внешнего устройства 1/0-0. Прием запросов прерывания IRQ = 1 возможен только после установки командой EI значения сигнала INTE = 1. Сразу после приема запроса преры­ вания МП сбрасывает сигнал 1NTE в 0, что используется для сброса в 0 сигнала IRQ. Таким

образом, ввод-вывод по прерыванию определяется схемой:

 

.

=>

INTE 1

=>

IRQ 1

(аппаратное квитирование ввода-вывода),

 

:=>

SW*. ш

=>

RST 7

=^> ППОП по адресу addr= 003 8/г

(команда RST

7 поступает в МП по локальной шине данных из системного контроллера 8238).

 

 

 

 

б)

8080

AST 7

 

 

 

 

 

•D?-о

 

OS ,Ж

Сброс запроса

л р ер ш а к к я

Рис. 2.12. Одновекторные системы прерываний

 

2.4. Ввод-вывод по прерыванию

165

D1

D6

D5

D4

£>3

D2

D 1

D0

1

1

п

п

п

1

1

1

Рис. 2.13. Машинные коды команд RST

п

Содержимое всех внутренних регистров МП, которые будут использоваться подпрограм­ мой обработки прерывания, необходимо сохранить в оперативной памяти, а в самом конце ППОП следует восстановить содержимое этих регистров. Для этих целей наиболее целесооб­ разно использовать команды PUSH гр и POP гр, адресующие стек. Так как ввод и вывод дан­ ных при обработке прерываний от внешних устройств производится командами IN port и OUT port с использованием аккумулятора, то всегда следует сохранять и восстанавливать, по крайней мере, регистр P S W — аккумулятор й регистр признаков. Типовое оформление подпро­ граммы обработки прерывания при сохранении и восстановлении содержимого всех внутрен­ них регистров МП приведено ниже:

; Начало подпрограммы обработки прерывания RST 7 с адресом вызова 7 x 8 = 56d - 0038h PUSH PSW ; Сохранение в стеке состояния прерванной (основной) программы

PUSH H

PUSH D

PUSH В

 

 

; Собственно подпрограмма обработки прерывания

POP

В

; Восстановление состояния прерванной программы

POP

D

 

POP

H

 

POP

PSW

 

EI

 

; Разрешение прерываний (INTE <— 1)

RET

 

; Возврат в прерванную программу

На рис. 2.12, б показана структурная схема МП-системы с одновекторным обслуживанием по прерыванию восьми внешних устройств 1/О—т= 0 ... 7) с восемью уровнями приоритета. При выдаче активного уровня сигнала запроса прерывания /„, = 0 хотя бы одним внешним уст­ ройством приоритетный шифратор PRCD вырабатывает активный уровень группового сигнала запроса прерывания GS = 0 и выдает двоичный код номера т = А2А|А0, внешнего устройства, имеющего наибольший приоритет из всех внешних устройств, одновременно запросивших об­ служивание. Чем больше номер т входа /„, у приоритетного шифратора 555ИВ1, тем выше приоритет этого входа. Детальное описание ИС 555ИВ1, а также других приоритетных шифра­ торов, можно найти в § 6.6 книги [5].

Пример 1 (подпрограмма обслуживания прерывания, соответствующая рис. 2.12, б):

; Начало подпрограммы обработки прерывания RST 7 с адресом вызова 7 x 8 = 56d = 0038/г

PUSH

PSW

; Сохранение в стеке состояния прерванной программы

PUSH

H

 

PUSH

D

 

PUSH

В

 

IN

CSbd

; А <— хххх xA2AiA0 — чтение номера I/O, запросившего обслуживание

ANI

1

; А 0000 OA2A[A0 — выделение кода А2А 1А0 = т

CPI

1

; Сравнение кода А2А|А0 с числом 1

JZ

IO_l

; Переход на обслуживание I/O-1

JC

I0 _ 0

; Переход на обслуживание I/O -0

CPI

3

; Сравнение кода A2AiA0 с числом 3

166

 

 

Глава 2. Методы ввода-вывода

 

JZ

IO_3

Переход на обслуживание I/O- 3

 

JC

IO_2

Переход на обслуживание I/O-2

 

CPI

5

Сравнение кодаА2А(Ао с числом 5

 

JZ

IO_5

Переход на обслуживание I/O-5

 

JC

IO_4

Переход на обслуживание I/O-4

 

CPI

6

Сравнение кода Ау^Ао с числом 6

 

JZ

IO_6

Переход на обслуживание I/O-6

 

Л

 

Начало подпрограммы обслуживания 1/0-1

 

OUT

ResetJLR1

Сброс запроса прерывания от 1 /0 -1 (сигнал I/OW 8l CSI1 = 0)

 

JMP

ENDRST

Конец подпрограммы обслуживания l / 0 - l

10 0:

/ .

 

Начало подпрограммы обслуживания I/O -0

 

OUT

Reset_IR0

Сброс запроса прерывания от I/O -0

 

JMP

ENDRST

Конец подпрограммы обслуживания I/O -0

Ю_1:

 

 

и т. д.

Ю_6

 

 

 

ENDRST:

POP

В

Восстановление состояния прерванной программы

 

POP

D

 

 

POP

H

 

 

POP

PSW

 

 

EI

 

; Разрешение прерываний (INTE <— 1)

 

RET

 

; Возврат в прерванную программу

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

Для определения адресов переходов на программы обслуживания I/O-т удобно использо­ вать косвенно-регистровый метод адресации переходов (см. § 1.7). Пример 2:

; Начало подпрограммы обработки прерывания RST 7 с адресом вызова 7 x 8 = 56d = 38h

 

PUSH

PSW

; Сохранение в стеке состояния прерванной программы

 

PUSH

H

 

 

PUSH

D

 

 

PUSH

В

 

 

IN

CSbd

А <— хххх хА2А,А0 — чтение номера I/O-т , пославшего запрос

 

ANI

1

А <— 0000 OAjAjAq — выделение кода А2А,Ао = т

 

LXI

H, A d d r j

HL <— A d d rjt (начальный адрес таблицы адресов

 

MVI

D, 0

передачи управления)

 

ADD

A

А <— т х 2

 

MOV

E, A

DE = т х 2

 

DAD

D

HL <— Addr_t + (т х 2)

 

MOV

A, M

 

 

INX

H

 

 

MOV

H, M

 

 

MOV

L, A

; HL = Addr_m

Г

PCHL

 

; PC <— Addr_m (переход на обслуживание I/O-m, где m = A2AiA0)

 

 

 

Addrjt

Addr

 

A d d r j + 2

Addr_\

Addr t + 4

Addr

2

Таблица адресов переходов: Addr_m — двухбайтовый адрес передачи управления подпрограмме обслуживания внешнего устройства 1/О-т= 0 ... 7)

 

 

2.4. Ввод-вывод по прерыванию

167

Addr_t + 6

AddrJ,

Передача управления подпрограмме обслуживания

Addr_t + 8

Addr_4

Addr_t + А

AddrJ,

внешнего устройства I/O-т осуществляется с помощью

A ddrJ + С

Addr_6

косвенно-регистрового метода адресации переходов

Addr t + E

Addr 1

 

 

 

 

В этой подпрограмме используется

 

 

таблица для

восьми адресов переходов

80 80

JiSTn

Addr_m и вычисление конкретного

ад­

£*7-0

 

реса таблицы для загрузки из нее адреса

 

L O S 3 IN T

 

перехода в

программный

счетчик

PC.

 

Если при отладке программы адреса

 

 

переходов изменятся или

потребуется

 

 

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

 

 

прерываний в другое место памяти, то

 

 

достаточно будет изменить только таб­

 

 

лицу адресов.

 

 

 

 

Восьмивекторные системы

пре­

 

 

рываний. На рис. 2.14 показана струк­

 

 

турная схема МП-системы с восьмивек­

 

 

торным обслуживанием по прерыванию

 

 

внешних устройств I/O- т (т = 0 ...7 ).

 

 

Отличие этой системы прерываний от

Рис. 2.14. Восьмивекторная система прерываний

предыдущей заключается в том, что

здесь производится чтение команд RST п из элементарного контроллера прерываний, выпол­ ненного на ИС 555ИВ1 и 1533АП12. Машинный код l l x x x l l l команд RST п формируется шинным драйвером 1533АП12. В ответ на групповой запрос прерывания GS = 1 (при INTE = 1)

МП выдает в системный контроллер 8238 слово состояния SWSi ш = 0010x011 (см. табл. 1.15), по которому вырабатывается сигнал INTA ="1Г, производящий чтение шинного драйвера BD (безадресное чтение команд из внешнего устройства — контроллера прерываний).

Таким образом, ввод-вывод по прерыванию определяется схемой:

/„Д =>

INTE 1

(аппаратное квитирование ввода-вывода)

G S I

rs. INTA = ТГ

RST п => ППОП по адресу addr = 8 х п

 

SWit ю

(команда RST п поступает в МП по системной шине данных через приемопередатчик систем­ ного контроллера 8238). В МП-системах с восьмивекторным обслуживанием внешних уст­ ройств по прерыванию не нужно программным способом определять внешнее устройство, за­ просившее обслуживание, а значит, уменьшается размер ППОП и увеличивается производи­ тельность системы.

Пример 3 (подпрограммы обслуживания прерываний, соответствующие рис. 2.14):

0000

JMP

Main

Точка входа по запросу прерывания RST 0 и по аппаратному сбросу

 

 

 

RESET = 1 (при включении питания или нажатии кнопки сброса)

0008

PUSH

PSW

Начало подпрограммы обработки прерывания RST 1

 

PUSH

H

Сохранение в стеке состояния прерванной (основной) программы

 

PUSH

D

(абсолютные адреса 0000, 0008, 0010 и 0018 добавлены только

 

PUSH

В

для удобства анализа программы — в транслируемой программе

 

JMP

IO 1

они должны отсутствовать)

 

NOP

 

 

0010

PUSH

PSW

; Начало подпрограммы обработки прерывания RST 2

168

 

Глава 2. Методы ввода-вывода

PUSH

H

 

 

PUSH

D

 

 

OUT

Reset_

; Сброс запроса прерывания от I/O-2

JMP

IO_2

 

 

PUSH

PSW

; Начало подпрограммы обработки прерывания RST 3

JMP

IO_3

 

 

 

 

; и т. д. (для внешних устройств I/O-4 ... 1/0-1)

 

 

; Продолжение подпрограммы обработки прерывания RST 1

OUT

Reset_

; Сброс запроса прерывания от I/O-1

POP

В

; Восстановление состояния прерванной программы

POP

D

 

 

POP

H

 

 

POP

PSW

 

 

EI

 

; Разрешение прерываний (INTE <—1)

RET

 

; Возврат в прерванную программу

 

PUSH

В

; Продолжение подпрограммы обработки прерывания RST 2

POP

В

; Восстановление состояния прерванной программы

POP

D

 

 

POP

H

 

 

POP

PSW

 

 

EI

 

; Разрешение прерываний (INTE

1)

RET

 

; Возврат в прерванную программу

 

 

 

; Продолжение подпрограммы обработки прерывания RST 3

RET

 

 

 

 

 

; и т. д. (для внешних устройств I/O -4 ... 1/0-1)

Main:

 

; Начало основной программы: тестирование и инициализация

 

 

;

устройств МП-системы

Команды сброса запросов прерывания от внешних устройств OUT R esetjn могут распола­ гаться в любом месте подпрограмм, но не после команды EI, а команда разрешения прерыва­ ний EI — только в конце ППОП. В противном случае выполнение ППОП с большим приорите­ том будут прерывать запросы прерываний, имеющие меньший приоритет. Катастрофически же опасен в этом случае повторный запрос прерывания обслуживаемого внешнего устройства до выполнения команды RET ППОП, вызванной предыдущим запросом — будет нарушена работа стека. Если есть гарантия, что во время выполнения ППОП не будет повторных запросов (час­ тота запросов невелика), то прерывания можно разрешать и до завершения ППОП. Если ко­ манда EI расположена в конце ППОП, то приоритетность внешних устройств срабатывает только лишь при выборе их для обслуживания. Все это справедливо и для МП 8085, имеющего пять входов запросов прерываний с пятью уровнями приоритетов.

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

2.4. Ввод-вывод по прерыванию

169

тельность выполнения ППОП аналогична последовательности выполнения обычных команд CALL addr, вызывающих подпрограммы, имеющие т уровней вложенности. Для построения многоуровневой системы прерываний требуются дополнительные аппаратные затраты.

Система прерываний МП 8085. Этот МП имеет 5 входов запросов прерываний с пятью уровнями приоритетов (табл. 2.3) и четырехвекторную систему прерываний. Вход TRAP не­ маскируемого запроса прерываний имеет наибольший приоритет, а вход INTR (аналог входа INT в МП 8080) — наименьший приоритет. На рис. 2.15 изображена внутренняя схема МП, обеспечивающая прием запросов прерываний TRAP по положительному фронту с последую­ щим удержанием высокого уровня сигнала TRAP до приема запроса микропроцессором.

На рис. 2.16 изображена МП-система с восьмиуровневой системой приоритетных преры­ ваний, обеспечиваемой программируемым контроллером прерываний 8259 (580ВН59). Вход IR0 запроса прерываний имеет наибольший приоритет, а вход IR-] — наименьший приоритет.

Ввод-вывод по прерыванию определяется схемой:

=>

INTE 1 (8080) I IE 1 (8085) (аппаратное квитирование ввода-вывода),

IRmS ==> INTS

____

U Ll => CALL A d d rjn => ППОП по адресу Addr_m

=>

INTA = U

(команда CALL Addr_m поступает в МП по системной шине данных из контроллера прерыва­ ний 8259). Чтение трехбайтовых команд CALL Addrjm из контроллера прерываний 8259 без­ адресное — выполняется сигналом INTA, который больше нигде не используется. В контрол­ лере прерываний запросы прерываний с меньшим уровнем приоритета и повторные запросы блокируются, поэтому команду EI можно помещать в самом начале ППОП. Прервать выполне­ ние ППОП могут лишь запросы прерываний с большим уровнем приоритета. После выполне­ ния новой ППОП будет автоматически продолжено выполнение прерванной подпрограммы. Одновременно в обслуживании могут находиться до восьми ППОП в разной степени завер­ шенности.

 

 

Таблица 2.3. Система прерываний МП 8085

Сигнал

Приоритет

Адрес

Тип запроса (чувствительность входа)

TRAP

1

24ft

Положительный фронт и высокий уровень до приема запроса

RST 7.5

2

3Cft

Положительный фронт (запрос запоминается в триггере)

RST 6.5

3

34ft

Высокий уровень до приема запроса

RST 5.5

4

2Cft

Высокий уровень до приема запроса

INTR

5

Высокий уровень до приема запроса

 

 

 

UNTJ0

CALL addr

INT

INTA

TRAP -

 

 

£ 7-0 8259

 

 

£>7-0

 

1—

D Т

I— I Запросл

CPU

 

 

 

1—

прерывания

 

 

 

 

RES1N - W - M

R

<

 

 

I /O - 7

I /O - 0

 

Внутреннее подтверждение

ROM

= £ >

r

i s

 

 

прерывания

 

 

 

 

 

 

 

System Data

Bits

Рис. 2.15. Потенциально-импульсная

Рис. 2.16. Восьмиуровневая

схема запроса прерываний

система прерываний