Организация системы прерываний

Система прерываний позволяет с помощью определенного сигнала прервать текущую программу и вызвать подпрограмму обработки прерываний. После выполнения этой подпрограммы микроЭВМ автоматически возвращается к выполнению прерванной.

Прерывания могут быть вызваны следующими условиями:

1) сигнал готовности устройства к вводу или выводу информации

2) сигнал оповещающий об окончании операции ввода—вывода

3) сигнал оповещающий об ошибке

4) условие, определяемое внешним сигналом, поступившим от датчика или оператора

Переход к командам, которые реализуют обмен в системе ввода—вывода, осуществляется при получении сигнала от ПУ, называемого «запрос на прерывание».

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

Формирование запроса на прерывание происходит в контроллерах соответствующих ПУ. Для предоставления прерывания процессор формирует сигнал разрешения прерывания для конкретного ПУ. Обычно сигнал запроса от всех ПУ поступают на один вход МП и возникает проблема определения ПУ, запросившего обслуживание и реализация заданного приоритета при одновременном поступлении.

Существует 2 способа определения ПУ:

1) программный опрос регистров состояния контроллеров всех ПУ

2) Использование векторов прерываний. При их использовании ПУ, запросившее прерывание, определяет себя само с помощью вектора прерывания – адреса ячейки памяти, в которой хранится первая команда подпрограммы обработки прерываний. Таким образом процессор, получив от контроллера ПУ вектор прерывания, сразу переходит на подпрограмму обработки прерывания. Выдача вектора прерывания осуществляется только после прихода от МП сигнала разрешения прерывания.

Для организации векторной системы прерываний могут использоваться специальные БИС (например БИС программируемого контроллера прерываний КР580ВН59).

КР580ВН59—является программируемым контроллером, обеспечивающим прием и обработку восьми сигналов прерываний. За счет каскадного объединения микросхем число уровней прерывания можно расширить до 64. Структурная схема КР580ВН59 на рисунке 1.

В состав БИС входят двунаправленный 8—разрядный буфер ШД, блок управления чтением /записью, принимающий сигналы от центрального процессора и задающий режим функционирования схемы.

Схема управления вырабатывает сигнал запроса к МП и по приходу сигнала разрешения формирует вектор, передаваемый МП по ШД.

Регистр запросов прерываний используется для хранения всех уровней прерываний, поступивших в контроллер.

Схема приоритетов определяет приоритеты поступивших запросов и вырабатывает наивысший.

Регистр маскируемых прерываний обеспечивает запрет одной или нескольких линий запросов.

Схема каскада обеспечивает объединения контроллеров и определяет статус контроллера (ведущий, ведомый)

Связь микросхемы с системным интерфейсом осуществляется по стандартному протоколу.

Процессор передает контроллеру управляющие слова, которые определяют один из 4 режимов работы:

1. Режим фиксированных приоритетов (IR0—высший, IR7—низший)

2. Режим вложенных прерываний (за уровнями прерывания закрепляются фиксированный приоритет, но приход запроса с более высоким приоритетом прерывает обслуживание прерываний с меньшим приоритетом)

3. Режим циклического приоритета, устанавливается сначала фиксированные приоритеты, но после обслуживания какого-либо запроса приоритеты изменяются циклически таким образом, что обслуживаемое прерывание имеет самый низкий (меньший).

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

Рг маскирования прерываний
Схема управления
Схема каскадов
Блок управления ЧТ/ЗП
IR7
IR0
INTA Подтверждение прерывания
SP
CAS2
CAS1
CAS0
E FAAGAAgAAAAhADMvBZ5BAAAAOQAAABUAAABkcnMvZ3JvdXBzaGFwZXhtbC54bWyysa/IzVEoSy0q zszPs1Uy1DNQUkjNS85PycxLt1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBL AwQUAAYACAAAACEAgO7BQMMAAADbAAAADwAAAGRycy9kb3ducmV2LnhtbERPy2rCQBTdC/2H4Ra6 M5O0KG10FAlt6UIEk0Jxd8lck2DmTshM8/h7Z1Ho8nDe2/1kWjFQ7xrLCpIoBkFcWt1wpeC7+Fi+ gnAeWWNrmRTM5GC/e1hsMdV25DMNua9ECGGXooLa+y6V0pU1GXSR7YgDd7W9QR9gX0nd4xjCTSuf 43gtDTYcGmrsKKupvOW/RsHniOPhJXkfjrdrNl+K1ennmJBST4/TYQPC0+T/xX/uL63gLawPX8IP kLs7AAAA//8DAFBLAQItABQABgAIAAAAIQCi+E9TBAEAAOwBAAATAAAAAAAAAAAAAAAAAAAAAABb Q29udGVudF9UeXBlc10ueG1sUEsBAi0AFAAGAAgAAAAhAGwG1f7YAAAAmQEAAAsAAAAAAAAAAAAA AAAANQEAAF9yZWxzLy5yZWxzUEsBAi0AFAAGAAgAAAAhADMvBZ5BAAAAOQAAABUAAAAAAAAAAAAA AAAANgIAAGRycy9ncm91cHNoYXBleG1sLnhtbFBLAQItABQABgAIAAAAIQCA7sFAwwAAANsAAAAP AAAAAAAAAAAAAAAAAKoCAABkcnMvZG93bnJldi54bWxQSwUGAAAAAAQABAD6AAAAmgMAAAAA "> P VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEA9dM+VMEA AADcAAAADwAAAGRycy9kb3ducmV2LnhtbERPS4vCMBC+C/sfwix402QXH7vVKMuK4ElRV2FvQzO2 xWZSmmjrvzeC4G0+vudM560txZVqXzjW8NFXIIhTZwrONPztl70vED4gGywdk4YbeZjP3jpTTIxr eEvXXchEDGGfoIY8hCqR0qc5WfR9VxFH7uRqiyHCOpOmxiaG21J+KjWSFguODTlW9JtTet5drIbD +vR/HKhNtrDDqnGtkmy/pdbd9/ZnAiJQG17ip3tl4vzBGB7PxAvk7A4AAP//AwBQSwECLQAUAAYA CAAAACEA8PeKu/0AAADiAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnhtbFBL AQItABQABgAIAAAAIQAx3V9h0gAAAI8BAAALAAAAAAAAAAAAAAAAAC4BAABfcmVscy8ucmVsc1BL AQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAQAAAAAAAAAAAAAAAAACkCAABkcnMvc2hhcGV4bWwu eG1sUEsBAi0AFAAGAAgAAAAhAPXTPlTBAAAA3AAAAA8AAAAAAAAAAAAAAAAAmAIAAGRycy9kb3du cmV2LnhtbFBLBQYAAAAABAAEAPUAAACGAwAAAAA= " filled="f" stroked="f">
RD
WR
AO
CS
INT Запрос прерывания
D0—D7
Чтение из Рг Запись в Рг Адрес Рг Выбор кристалла (разрешение обмена с БИС)
Локальная шина каскадного соединения БИС Определение контроллера (ведущий/ведомый)
Буфер ШД

Рисунок 1 – структурная схема КР580ВН59

Контроллер состоит из 4-х идентичных каналов, позволяющих подключить к системе до 4-х устройств, работающих в режиме ПДП. В состав каждого канала входят следующие регистры:

1. MR (Mode Register) – регистр режима

Определяются следующие параметры передачи:

- порядок изменения (увеличения или уменьшения) адреса ОП при передаче

- возможность авто инициализации

- режим обслуживания

- одиночная передача (контроллер возвращает магистраль к процессору после каждого цикла ПДП

- мощная передача (контроллер владеет магистралью в течении передачи всего массива

- по требованию (окончание передачи определяется снятием сигнала DRQ или подачей сигнала IEOP на внешний вход КПДП)

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

2. CAR (Current Address Register) – регистр текущего адреса

3. BAR (Base Address Register) – базовый регистр адреса

4. CWR (Current Word Register) – текущий счетчик данных

5. WCR (Word Control Register) – базовый счетчик данных

Значение в регистрах BAR и WCR устанавливаются при инициализации и в ходе циклов в ПДП не меняются. В регистре CAR и CWR в начале выполнения ПДП заносит значения из регистров BAR и WCR соответственно. При выполнении ПДП эти регистры изменяются.

Управляющие регистры, общее для всего контроллера:

1. CR (Command Register) – регистр команд – определяют:

- Режим память-память или обычный. В режиме память-память осуществляется обмен по схеме ПДП между двумя областями ОП с использованием буферного регистра TR (Temp Register)

- запрет\разрешение ПДП

- порядок изменения приоритетов каналов

- фиксированный приоритет

- циклическое изменение приоритета после обработки запроса на ПДП по одному из каналов.

- явное указание наиболее приоритетного канала

- уровень сигналов DRQ и DACK (настройка на активный уровень сигналов особенности работы внешних устройств)

2. Регистр SR (Status Register) –регистр условий – используется для фиксации признаков обмена по каждому из каналов и программных запросов на ПДП

Во избежание ложных срабатываний внешних устройств, не использующих в данный момент режим прямого доступа, контроллер ПДП во время режима ПДП вырабатывает сигнал AEN, который блокирует работу остальных внешних устройств:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: