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

TSAiU_Lektsia_6

.pdf
Скачиваний:
1
Добавлен:
26.01.2024
Размер:
770.04 Кб
Скачать

Лекция №6. Техническая реализация интерфейса обмена данных с прерыванием программы

Интерфейс обмена данными с прерыванием программы позволяет реализовать и все ранее рассмотренные способы программного обмена данными (безусловный, по готовности ВУ), следовательно интерфейс обмена данными с прерыванием программы включает все компоненты интерфейса обмена данными по готовности ВУ:

регистр(ы) данных,

регистр(ы) состояния ВУ,

регистр(ы) управления ВУ.

Дополнительные элементы интерфейса обмена данными с прерыванием: 1. Схема формирования ЗП (Рис. 6.1.).

Для формирования ЗП, в РУ интерфейсом ВУ должен быть флаг разрешения прерываний (ФРП). Для разрешения ВУ выполнять обмен данными с прерыванием программы необходимо в фоновой

программе установитьФРП в―1‖.

Фоновая программа может разрешать или запрещать (или маскировать) прерывания, устанавливая или сбрасывая ФРП.

ВРС интерфейса ВУимеется ФГ ВУ, которыйможет устанавливать в ―1‖только ВУ при готовности к обменуданными.

ЗП на шине управленияЭВМ появляется, когдаодновременно и ВУ установит в―1‖ ФГ и ЦП установитв―1‖ФРП.

Т.о. ВУ должно быть готово к обменуданными, а ЦП (т.е. фоновая программа) должен разрешить ВУ обмен с прерыванием.

Сигналы свыходовобоихтриггеровобъединяются спомощьюлогической схемы―И‖, а выход схемы соединяется с линией ЗП магистрали ЭВМ (рис. 6.1.).

Регистр состояния интерфейса ВУ

ФГ

(УправляетВУ)

КлинииЗП

 

2*И

 

 

от ВУ

ФРП (Управляет программа)

от ЦП

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

Рис. 6.1. Схема формирования ЗП

1

2. Схема учета приоритетов.

Указывает ЦП когда надо реагировать на прерывание. 3. Схема формирования адреса ВП.

Должна передавать в ЦП уникальный для каждого ВУ код (АВП).

Техническая реализация 2 и 3 элементов интерфейса различается для ЭВМ с разной архитектурой. Существует 2 варианта технической реализация интерфейса обмена данными с прерыванием программы:

Приоритетная цепочка (Macintosh)

Программируемая логика управления приоритетами прерывания (IBM PC).

6.1Техническая реализация многоуровневых векторных прерываний в ЭВМ семейства

Macintosh

п

 

 

р

 

ШУ

о

 

 

 

ц

 

 

е

Интерфейс

Интерфейс

с

ВУ1

ВУn

с

АВП1

АВПn

о

 

ШД

р

 

 

 

Рис. 6.2. Схема работы приоритетной цепочки

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

В ЭВМ семейства Macintosh имеется 7 пар линий ЗПi – РПi

ЗП7-РП7 Линии запросов прерывания. ЗП7 – РП7 – самый высокий приоритет, ЗП6-РП6 линии ЗП1-РП1- самый низкий приоритет обслуживания.

ЗП5-РП5 При поступлении ЗП ЦП сравнивает приоритет линии приоритетом, ЗП4-РП4 указанным в РС (ЦП). При равенстве приоритетов прерывания не

происходит.

ЗП1-РП1. Уровни приоритетов и адреса ВП устанавливаются аппаратными средствами.

Если приоритет линии ЗПk выше приоритета процессора, процессор выдает сигнал РПk по соответствующей линии, и начинает исполнять процедурупрерывания.

При равенстве приоритетов линии ЗПk и процессора, прерывания программы не происходит. Линия ЗПk остается возбужденной, т.е. прерывание как бы ждет очереди.

Когда приоритет процессора станет ниже приоритета линии, процессор переходит к обслуживанию запроса с данной линии ЗПk.

Разработчик АС имеет возможность подсоединить ВУ к любой линии ЗП.

Программист имеет возможность присвоить оперативной программе обслуживания ВУ любой приоритет, указывая его в векторе прерывания.

Обычнопрограммаобслуживанияпрерыванияимееттотжеприоритет,чтоиинициализирующееееВУ. Основнаяособенностьтакогоспособареализациипрерываний— уровниприоритетовВУ,иАВП устанавливаютсяаппаратнымисредствамиинтерфейсаинемогутменятьсявпроцессеработысистемы.

2

6.3 Техническая реализация многоуровневых векторных прерываний в ЭВМ семейства IBM.

Для Реализация многоуровневых ВП в ЭВМ семейства IBM применена БИС Intel 8259A.

Технические характеристики БИС Intel 8259A

1.Число уровней ЗП = 8.

2.Количество уровней можно расширить до 64 за счет каскадного включения микросхем.

3.Режим обслуживания ЗП, уровни приоритетов и АВП устанавливаются программным путем.

6.4Программируемые режимы обслуживания внешних устройств в ЭВМ семейства IBM

1. Режим вложенные прерывания.

Каждомуиз входов присваивается приоритет IR0, IR1, …IR7 в порядке убывания. ЗП с большим приоритетом могут прерывать обслуживание ЗП с меньшими приоритетами.

2. Режим круговых циклических приоритетов.

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

3.Режим адресуемых приоритетов.

Аналогично п. 2, но допускает программное указание входа, которому назначается самый низкий приоритет.

4.Режим опроса.

Вэтом режиме ЦП не реагирует на ЗП (прерывания запрещены). ВУ, требующее обслуживания, определяется чтением состояния ПКП (т.е. опрос состояния контроллера).

5.Специальный режим. В этом режиме незамаскированные запросы прерываний обслуживаются

впорядке их поступления.

6.5Схема включения программируемого контроллера прерываний к системной шине и

 

 

 

внешним устройствам

 

 

ШД ША ШУ

 

 

Intel 8259A

 

 

ЗП от ВУ

 

D7-D0

 

D7-D0

 

 

 

 

 

~IOR (Ввод)

 

~RD

 

 

 

IR0

 

~IOW (Вывод)

 

~WR

 

 

 

 

 

INTR

(ЗП)

 

 

 

IRR

 

INT

ISR

PR

IMR

 

INTA

 

IR7

 

 

~INTA

 

 

 

 

 

 

 

 

 

 

 

Дешифратор

 

 

 

 

 

A0

адреса

 

~CS

 

 

 

 

 

 

 

Схема управления

 

 

 

 

 

 

 

 

 

А0

 

 

 

 

 

 

 

 

 

 

К другим ПКП

 

 

 

~SP/~EN

CAS2-CAS0

 

 

Рис. 6.3. Схема включения ПКП к системной шине и ВУ

3

Назначение выводов БИС:

D7-D0 – выводы ШД, служат для приема управляющее информации от ЦП и передачи статусной информации в ЦП.

A0 – адресный вход, адресация внутренних регистров контроллера (2 адреса).

~CS (chip select) - выбор кристалла, разрешает или запрещает связь контроллера с системной шиной.

~CS = 0 – есть связь, ~CS = 1 – нет связи. Первый ПКП использует адреса – 20h, 21h. Второй ПКП использует адреса – A0h, A1h.

~RD, ~WR – ввод, вывод (сигналы ШУ), соединяются с линиями магистрали ~IOR и ~IOW.

INT (выход) – сигнал ЗП в ЦП.

~INTA (interrupt acknowledge) – сигнал РП от ЦП.

CAS2, CAS1, CAS0 – шина каскадирования. Для ведущего контроллера прерывания эти линии являются выходами, а для ведомого – входами.

~SP/~EN – указывает ведущий (1) или ведомый (0) ПКП.

IR0...IR7 – входы запросов прерывания от ВУ.

Аппаратные прерывания в порядке их приоритетов и назначения

Вход

Номер

Назначение входа

 

типа

 

IR0

8

АВП = 0000.0020h Таймер

IR1

9

АВП =0000.0024h Клавиатура

IR2

Ah

Каскадирование

IR3

Bh

COM2

IR4

Ch

COM1

IR5

Dh

LPT2

IR6

Eh

НГМД (накопитель на гибких магнитных

 

 

дисках)

IR7

Fh

LPT1

6.6 Функциональный состав программируемого контроллера прерываний и его программная модель

IRR – Interrupt Request Register – регистр запросов прерываний,

IMR – Interrupt Mask Register – регистр масок прерываний,

ISR – Interrupt Service Register регистр обслуживаемых запросов,

PR – Priority Resolver – шифратор приоритетов.

Назначение регистров контроллера прерываний:

IRR:

фиксирует ЗП на входах IR0-IR7 от ВУ. К каждомувходу можно подключить одно ВУ. IRi=1, если на входе IRi появляется ЗП.

Входные цепи могут программироваться на восприятие уровня или фронта сигнала.

IMR:

Служит для маскирования или разрешения ЗП на отдельных входах.

Если IMi=1, то сигнал на входе IRi не обслуживается.

Маскирование входа IRi не запрещает прерывание на остальных входах.

4

ISR:

Хранит запросы, обслуживаемые ЦП.

На время обслуживания IRi ЦП, бит ISi устанавливается в 1.

Если ISi= 1, то прерывания от этого входа и входов с меньшими приоритетами запрещены.

Этот бит должна сбросить программа обслуживания прерывания по завершению работы или в процессе обслуживания ВУ.

PR:

Анализирует содержимое предыдущих трех регистров и определяет необходимость генерировать сигнал ЗП (INT) в ЦП, т.е. реализует схему учета приоритетов и формирования АВП.

6.7 Алгоритмы работы программируемого контроллера прерываний

Начальная инициализация подразумевает установкувсех параметров:

1.Количество ПКП в системе: один или несколько.

2.АВП (номера типов прерываний).

3.Режим обслуживания ВУ.

Инициализация выполняется специальными командами записи приказов инициализации в регистр ПКП и не должна прерываться. В ЭВМ семейства IBM PC инициализация выполняется BIOS (basic input/output system - базовая система ввода-вывода), которая устанавливает режим вложенных прерываний, АВП, ПКП1 объявляет ведущим, ПКП2 – ведомым.

При появлении сигналаЗП от какого-либо устройства, контроллер выполняет следующие действия:

1.Запрос на входе IRiфиксируется в регистре IRR.

2.Установленный в 1 бит IRi сравнивается с соответствующим битом IMi. Если

a)IMi = 1 → запрос IRi не обслуживается.

b)IMi = 0 → запрос IRi передается в PR.

3.PRсравниваетприоритетIRiсприоритетамиЗП,обслуживаемымивданныймоментвремениЦП.

a)ЕслибитырегистраISRсбольшимприоритетом=1,тодальнейшееобслуживаниезапросане выполняется.

b)Если биты регистра ISR с большими приоритетами сброшены в 0, то ПКП формирует ЗП

(INT) в ЦП.

4.ЦП проверяет бит IF (Interrupt Flag) в регистре флагов (Flags):

a)Если IF = 0, запрос не обслуживается, пока IF не будет установлен в единицу.

b)Если IF = 1, то по завершению текущей команды ЦП сбрасывает IF=0 и возвращает сигнал в ПКП по линии INTA в виде двух последовательных импульсов.

5.ПКП при первом импульсе INTA запрещает сигналы на входах IRR до второго импульса INTA. Сбрасывает бит IRi = 0 и устанавливает бит ISi = 1.

6.ПКП при втором импульсе INTA ЦП разрешает сигналы на входах регистра IRR и на ШД устанавливает номер типа прерывания.

7.ЦП считывает с ШД код номера типа прерывания и приступает к обслуживанию устройства. Если поступает сигнал с большим приоритетом, ЦП не реагирует на сигнал INT при сброшенном IF. Поэтомулюбая оперативная программа должна устанавливать IF=1, как только это становится возможным, чтобы восстановить режим вложенных прерываний.

Чтобы повторить процедурупрерывания, то входа IRi необходимо сигнал на входе IRiперевести в неактивное состояние.

Если какой-то вход IRкзамаскирован соответствующим битом IMк, то запрос не обрабатывается ПКП. Если программа сбрасывает IMк=0, ПКП распознает активный запроси начинает его обслуживать.

5

6.8 Каскадирование контроллеров прерываний

Каскадирование позволяет объединить несколько контроллеров для расширения числа ЗП. При этом один ПКП работает как ведущий, а до 8 ПКП могут работать ведомыми.

Сигнал INT ведомого ПКП подается на один из входов ведущего (IRi). Если IMR и ISR не блокируют сигнал, то он поступает на вход ЦП по линии INT ведущего.

Когда ЦП возвращает INTA, ведущий ПКП проверяет, возникло ли его собственное прерывание или от ведомого. Если прерывание от ведомого, то на шинуведущий на шину каскадирования выдает код, соответствующий входу, к которомуподключен ведомый.

IR0

 

 

 

1

П КП 1

INT

к ЦП

(ведущ ий)

2

 

 

 

 

 

3

 

 

 

4

 

INTA от Ц П

5

C A S0 .. 2

 

 

6

 

 

7

 

 

 

8

C A S0 .. 2

 

 

 

IN T на вход П К П 1

9

 

10

П КП 2

 

 

11

INTA

от Ц П

(ведомый)

12

 

 

 

 

 

13

 

 

 

14

 

 

 

15

 

 

 

Рис. 6.4 Схема каскадирования контроллеров прерываний

В нашем случае ведущий выдает код 010, который соответствует линии IR2.

 

 

 

CAS2

 

CAS1

 

CAS0

 

 

 

 

 

 

 

 

22 (4)

 

21 (2)

 

20 (1)

 

 

 

 

 

 

 

 

 

0

 

1

 

0

 

 

 

 

 

 

 

 

 

За исключением реакции на сигнал INTA действия всех контроллеров в системе одинаковы.

 

IR0 имеет самый высокий приоритет, номер типа прерывания – 8.

 

 

 

 

 

IR0

IR1

IR8

IR9

IR10

IR11

IR12

IR13

IR14

IR15

IR3

IR4

IR5

IR6

IR7

8

9

70h

71h

72h

73h

74h

75h

76h

77h

Bh

Ch

Dh

Eh

Fh

Рис 6.5. Номера типов прерываний первого и второго контроллеров ПДП

6

Соседние файлы в предмете Технические средства автоматизации и управления