Космонавтика  Архитектура 3-х шинных систем 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 [ 29 ] 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Процессора, он будет игнорировать все айпросы на прерывание, поступающие от внешних аппаратных/ередств. .Действительно, микропроцессор 8080 будет работать/в режиме запрета прерываний. Единственный способ, который позволяет перевести выход INTE в состояние логической 1/состоит в применении команды разрешения прерываний Е}; После выполнения команды разрешения прерывания выход INTE окажется в состоянии логической 1. Если на выходе INTE состояние логической 1, то и на входе сброс триггера 74LS74 будет состояние логической 1. Тем самым допускается возможность передачи запроса прерывания со входа D иа выход Q схемы 74LS74, Предположим теперь, что извне поступил запрос на прерывание. Когда запрос на прерывание воспринят, с помощью внутренних аппаратных средств микропроцессора выход INTE снова перейдет в состояние логического 0.

Что же произойдет, когда микропроцессор снова будет переведен в режим запрета прерываний? Единственный способ разрешить прерывания в микропроцессоре 8080 - это выполнить команду EI. Таким образом, выход INTE может быть переведен в состояние логического О либо с помощью аппаратных, либо с помощью программных средств микропроцессора 8080, Однако в состояние логической 1 этот выход можно перевести только программно.

Указанная особенность требует специального рассмотрения. Отметим прежде всего, что программное обеспечение микропроцессора 8080 должно содержать специальную программу, назначение которой разрешать прерывания в некоторые точно определенные моменты времени. Это значит, что йосле выполнения программы прерывания возможность прерывания должна быть снова восстановлена. Действительно, во время выполнения программы прерывания микропроцессор 8080 не может воспринимать другие запросы на прерывания. Так будет до тех пор, пока выполнение этой программной секции не завершится. Блок-схема, отражающая последовательность событий, происходящих в системе после возникновения прерывания, представлена на рис. 6.5. Рассмотрим эту блок-схему.

Запрос на прерывание поступает на вывод 14 микропроцессора 8Ш0. Микропроцессор устанавливает уровень логического О на выходе INTE (вывод 16). После этого система приступает к выполнению специальной программы. Пока не будем обсуждать, каким образом система получает начальный адрес этой программы. Допустим, что система каким-либо образом его получила и начала выполнение программы, во время которого на выходе INTE будет состонние логического 0. Следовательно, микропроцессор 8080 не будет воспринимать запросы на прерывания. Однако программа прерывания завершается командой

EI и на выходе ШТЕчснова устанавливается уровень логической 1. Кроме того, прерванная программа, продолжит работу.. Подробное рассмотрение уого, как возобновляется выполнение прерванной программы, бу)щт сделано ниже.

Измененный вариант рассмотренной нами блок-схемы представлен на рис. 6.6. В новом варианте блок-схемы после пере-

Рис. 6.5. Блок-схема последовательности действий, выполняемых в системе 8080 после возиикиовеиия прерывания.

Запрос на лрерываипе

Система 8080

выполняет специальную системную программу

Выполняется команда El

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

Вывод 14 микропроцессора логическая 1

8080 =

Сигнал IN ТЕ принимает значение логического О

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

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

Сигнал INTE (вывод 16> переходит в состояние логической 1 *

ч

Теперь запросы на прерывания разрешены.

вода выхода INTE в состояние логического О, осуществляемого аппаратными средствами, воспринявшим запрос на прерывание, выполняется команда разрешения прерывания. Когда выполнится команда EI, вывод INTE перейдет в состояние логической 1. Теперь микропроцессор 8080 может воспринимать новые запросы на прерывание.

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



просы на Прерывания. Указанная особенность организации системы прерываний характерна для большинства микропроцессоров. /

Теперь рассмотрим, как запрос/йа прерывание вводится в микропроцессор 8080 и каким обвгазом микропроцессор реагирует на этот запрос. Сначала остановимся на вопросе организа-

Запрос на прерывание

Внешние аппаратные средства устанавливают на выводе 14 микропроцессора 8080 уровень логической 1

Выполняется команда Е1.Микро- процессор 8080 выполняет специальную программу обработки преры-вания

Программа обработки прерывания может быть прервана при появлении запроса на прерывание

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

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

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

К четырем известным нам сигналам управления (ЗАПИСЬ В ПАМЯТЬ, ЧТЕНИЕ ИЗ ПАМЯТИ, ЗАПИСЬ В УСТРОЙСТВО ВЫВОДА и ЧТЕНИЕ ИЗ УСТРОЙСТВА ВВОДА), передаваемым по шине управления, нужно добавить новый сигнал, который будет называться сигналом ПОДТВЕРЖДЕНИЯ ПРЕРЫВАНИЯ. Он будет иметь обозначение INTA. Когда подается сигнал управления INTA с логическим значением О, внешние аппаратные средства системы должны поместить на шину дан-

ных вектор прерывания. Соответствующая последовательность действий представлена лок-схемой, приведенной на рис. 6.7.

Анализируя блок-схему, мы видим, что после поступлени запроса на прерывание накыводе INTj устанавливается состояние логического О, затем подается сигнал INTA с логическим значением, равным 0. Теперь с помощью определенных аппаратных средств должен обеспечиваться ввод вектора прерываний

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

INTE = 0

INTA = 0

Вектор прерывания

помещается на шину данных

Запуск программы обработки прерывания, указанной вектором прерывания

Прерывание

запрошено

Прерывание запрещено

Подтвержджие прерывания

микропроцессор. В системе 8080 имеется восемь векторов прерываний, что позволяет системе начинать выполнение программы прерывания с одной из восьми определенных ячеек памяти. Векторы и соответствующие им адреса памяти представлены на рис. 6.8.

В системе 8080 векторы прерываний называют также векторами рестарта, а для их обозначения используется аббревиатура RST. Таким образом, векторы рестарта будут иметь следующие обозначения: RSTo, RSTi, RST2, RST3, RST4, RST5. RSTe и RST7. При этом вектору RSTo соответствует адрес О, вектору RST] соответствует адрес 8 и т. д. Если, например, в микропроцессор вводится вектор RST3, то на шину данных поступит слово данных, соответствующее вводимому вектору.

На рис. 6.9 представлена схема, обеспечивающая подачу вектора рестарта на шину данных. Подачу вектора рестарта на шину данных называют также вклиниванием вектора рестарта. Видно, что эта операция подобна чтению данных из памяти



;,илн чтению данных из устройства ввода/Единственное отличие <к)стоит в том, что функция ввода дных в микропроцессор S080 имеет другое назначение.

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

Вектор рестарта

RSTo

RST,

RST,

RSTs

RST.

RSTs

RSTe

RST7

Разряды слова данных

Адрес памяти

10,в

18,6

20,в

28,8

30,8

38,е

Рис. 6.8. Соответствие между именами, разрядами слова данных и -адресами памяти векторов рестарта.

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

На рис. 6.10 представлена последовательность событий, происходящих в системе 8080 после поступления запроса на прерывание от внешних аппаратных средств системы. Мы видим, что, после того как произошло прерывание, на выводе INTE устанавливается уровень логического 0. Затем вырабатывается сигнал шины управления, и в это время вектор рестарта вводится в микропроцессор. Наконец, адрес возврата помещается в системный стек.

Подобная последовательность действий осуществляется, когда при выполнении некоторой программы реализуется вызов подпрограммы. Когда в системе 8080 происходит обращение к

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

Рис. 6.9. Схема подачи вектора рестарта иа шииу данных за заданное время. Схема соответстеу-ет вектору рестарта RST 5.

D, 31

74LS367

4.7 кОм

<0

с; я

Об 6!

<0

Од 9

<3

D, 13

174LS367

Dn 51

I \ I I I

Такая же временная последовательность событий происходит и при обработке прерываний. Микропроцессор помещает адрес возврата в системный стек. Когда после обработки прерывания возникнет необходимость возвращения к основной программе, в программе обработки прерывания должна быть выполнена команда возврата RET. При выполнении команды RET из стека будет выбран адрес, который был помещен туда перед началом выполнения программы обработки прерывания. Используя извлеченный из стека адрес, микропроцессор приступает к выполнению прерванной программы.

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



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 [ 29 ] 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57