Приложение Б
ПЕРИФЕРИЙНЫЙ ИНТЕРФЕЙС
МС6800
По входу VPA# процессору
сообщается, что адрес на шине является адресом устройства М6800 (или
областью, зарезервированной под устройства М6800), и что данные должны
быть совместимы с передаточными характеристиками второй фазы шины
М6800. VPA# образуется декодированием адресной шины при условии адресного
строба AS#.
После распознавания AS# процессор устанавливает
низкий уровень на Е, при необходимости ожидая, и после этого активизирует
VMA#. VMA# используется затем в булевой функции выбора кристалла периферии,
чтобы гарантировать корректные временные соотношения для установки
и отмены выбора устройства М6800. Будучи выбранным, периферийное устройство
запускает свой цикл при высоком уровне Е. На рис.Б.4 и Б.5 показан
цикл М6800 в наилучшем и наихудшем варианте соответственно. Продолжительность
цикла полностью зависит от временного соотношения выработки VPA# и
Е.
Когда внешняя схема выдает сигнал VPA#, следующий
за формированием AS#, активный VPA# распознается по срезу S4. В этом
случае дополнительные состояния ожидания (ожидания активизации VPA#)
не вводятся. Добавляются только состояния ожидания, требуемые для
синхронизации с сигналом Е. Задержка синхронизации на целое число
тактов системной синхронизации
имеет место в следующих экстремальных случаях:
- Наилучший случай - активный VPA# распознается по срезу за три
такта до возникновения Е (или спустя три такта после снятия Е).
- Наихудший случай активный VPA# распознается по срезу за два
такта синхронизации до возникновения Е (или спустя четыре такта
после снятия Е).
Процессор фиксирует данные от периферии в состоянии
S6 цикла чтения. Во всех циклах процессор снимает стробы адреса и
данных, спустя половину такта синхронизации в состоянии S7, и в это
время снимается Е. Спустя еще пол-такта шина адреса переводится в
высокоимпедансное состояние, а на R/W# устанавливается высокий уровень.
Логические схемы периферийного устройства должны удалить VPA# через
один такт после снятия адресного строба.
DTACK# не должен активизироваться, пока активен
VPA#. Внутренний автомат процессорапроверяет DTACK#, чтобы идентифицировать
асинхронный шинный цикл, и чтобы VPA# идентифицировал синхронный периферийный
шинный цикл. Если выданы оба сигнала, действия автомата непредсказуемы.
Чтобы позволить процессору перевести свои шины в
высокоимпедансное состояние при запросах прямого доступа, исключив
непреднамеренный выбор периферийных устройств, VMA# процессоров семейства
М68000 имеет активный низкий уровень, который противоположен высокому
уровню сигнала VMA периферии М6800.
ОРГАНИЗАЦИЯ ИНТЕРФЕЙСА ПО ПРЕРЫВАНИЯМ
Когда процессор в цикле подтверждения прерывания
захватывает вектор, устанавливается VРA#, и процессор (или внешняя
схема) вырабатывает VMA# и завершает нормальный цикл чтения, как показано
на рис.Б.6. В качестве вектора прерывания процессор использует внутренне
сгенерированный номер вектора, называемый автовектором. Автовектор
соответствует уровню прерывания, которое обслуживается. Семь автовекторов
представляют собой десятичные номера векторов 25-31.
Обработка автовектора, который можно использовать
с любой периферией, подобно обычному циклу подтверждения прерывания.
Возможность образования автовектора предоставляет векторы шести уровням
маскируемых прерываний и одному уровню немаскируемого. Предоставляет
ли вектор само устройство, либо процессор генерирует автовектор, подпрограмма
обслуживания прерывания может находиться в любом месте адресного пространства
программ супервизора в зависимости от того, как пользователь назначит
векторы в таблице векторов.
С момента активизации VMA# при обработке автовектора
необходимо позаботиться о предотвращении случайного доступа к устройству,
который может произойти, если в это время на шине адреса находился
адрес периферийного устройства. |