Введение в микропроцессоры. Конспект лекций по курсу "Микропроцессорные устройства", страница 11

Цикл записи в порт вывода может быть вызван только командой OUT Port (см. 2.8.9), где Port = 0...255. Это двухбайтная команда, КОП которой считывается в цикле М1. В цикле М2 (чтение памяти) считывается код адреса порта Port. В цикле М3 этот код устанавливается на шине А и на шине AD (в Т1). По этому адресу содержимое аккумулятора (находится на AD в Т2 и Т3) записывается в порт вывода.

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

2.4.7. Машинный цикл захвата

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

Разумеется, альтернативный задатчик не должен захватывать магистраль раньше чем МП переведет свои магистральные выходы в третье состояние. Для достижения этой цели МП обменивается с альтернативным задатчиком сигналами HOLD, HLDA (см. табл. 2.1), временные диаграммы  которых приведены на рис. 2.8.

Процесс захвата магистрали альтернативным задатчиком начинается с активизации сигнала HOLD (см. момент времени t0). Этот вход МП проверяет в начале такта Т3 (см. момент времени t1). Если в момент проверки МП определит на входе HOLD низкий уровень сигнала, то такт Т3 переходит в такт Т1 следующего машинного цикла (см. рис. рис. 2.3...2.7).

Рис. 2.8. Временные диаграммы циклов захвата

В нашем случае в момент проверки на входе HOLD присутствует сигнал высокого уровня, поэтому МП после такта Т3 перейдет в режим захвата Тзх (см. момент времени t3), о чем в середине такта Т3 оповестит альтернативный задатчик высоким уровнем сигнала HLDA (cм. момент времени t2). Только с момента времени t2 альтернативный задатчик может владеть магистралью. МП не может раньше отдать магистраль, поскольку до середины такта Т3 он выполняет собственный цикл обращения к памяти или порту ввода/вывода.

В режиме захвата МП продолжает выполнять внутренние операции по выполнению текущей команды и продолжает проверять вход HOLD в начале тактов захвата (см. моменты времени t3, t4, t6). В моменты времени t3, t4 на входе HOLD присутствуют сигналы высокого уровня, поэтому МП продолжает воспроизводить такты захвата. В момент времени t6 на входе HOLD присутствует сигнал низкого уровня (поскольку в момент времени t5 альтернативный задатчик оповестил МП о возврате магистрали), поэтому МП выполнит последних такт захвата и перейдет к управлению магистралью, формируя такт Т1 следующего машинного цикла. Альтернативный задатчик оповещается об этом в момент времени t7 низким уровнем сигнала HLDA. Подобный алгоритм синхронизации образно называется ²рукопожатием².

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

2.5.1. Общие сведения

Прерывание - переход от выполнения текущей программы (фоно­вой) на выполнение какой-либо другой подпрограммы (называемой подпрограммой обработки прерывания или короче - обработчиком) под действием внешних электрических сигналов (которые называются сигналами запроса прерываний) с последующим возвратом в фоновую программу. Сигналы запроса прерываний поступают на входы TRAP, RST5.5, RST6.5, RST7.5, INTR (см. табл. 2.1).

Вектор прерывания - начальный адрес обработчика. Если вектор прерывания не надо вводить в процессе аппаратной обработки прерывания, то он называется фиксированным (TRAP, RST5.5, RST6.5, RST7.5), в противном случае - вводимым (INTR).

Приоритет прерывания - порядок (номер), в котором определяется наличие того или запроса среди многих. Чем выше приоритет запроса на прерывание (меньше номер) тем выше вероятность обслуживания этого запроса. Запросы на прерывания МП М1821ВМ85А имеют следующие приоритеты (в порядке понижения): TRAP, RST7.5, RST6.5, RST5.5, INTR.

Аппаратная обработка прерываний - совокупность действий, которые выполняет МП, получив один или несколько запросов на прерывания.