Приложение Б

ПЕРИФЕРИЙНЫЙ ИНТЕРФЕЙС МС6800

    По входу VPA# процессору сообщается, что адрес на шине является адресом устройства М6800 (или областью, зарезервированной под устройства М6800), и что данные должны быть совместимы с передаточными характеристиками второй фазы шины М6800. VPA# образуется декодированием адресной шины при условии адресного строба AS#.
   После распознавания AS# процессор устанавливает низкий уровень на Е, при необходимости ожидая, и после этого активизирует VMA#. VMA# используется затем в булевой функции выбора кристалла периферии, чтобы гарантировать корректные временные соотношения для установки и отмены выбора устройства М6800. Будучи выбранным, периферийное устройство запускает свой цикл при высоком уровне Е. На рис.Б.4 и Б.5 показан цикл М6800 в наилучшем и наихудшем варианте соответственно. Продолжительность цикла полностью зависит от временного соотношения выработки VPA# и Е.
   Когда внешняя схема выдает сигнал VPA#, следующий за формированием AS#, активный VPA# распознается по срезу S4. В этом случае дополнительные состояния ожидания (ожидания активизации VPA#) не вводятся. Добавляются только состояния ожидания, требуемые для синхронизации с сигналом Е. Задержка синхронизации на целое число тактов системной синхронизации
имеет место в следующих экстремальных случаях:

  1. Наилучший случай - активный VPA# распознается по срезу за три такта до возникновения Е (или спустя три такта после снятия Е).
  2. Наихудший случай активный VPA# распознается по срезу за два такта синхронизации до возникновения Е (или спустя четыре такта после снятия Е).
   Процессор фиксирует данные от периферии в состоянии S6 цикла чтения. Во всех циклах процессор снимает стробы адреса и данных, спустя половину такта синхронизации в состоянии S7, и в это время снимается Е. Спустя еще пол-такта шина адреса переводится в высокоимпедансное состояние, а на R/W# устанавливается высокий уровень. Логические схемы периферийного устройства должны удалить VPA# через один такт после снятия адресного строба.
   DTACK# не должен активизироваться, пока активен VPA#. Внутренний автомат процессорапроверяет DTACK#, чтобы идентифицировать асинхронный шинный цикл, и чтобы VPA# идентифицировал синхронный периферийный шинный цикл. Если выданы оба сигнала, действия автомата непредсказуемы.
   Чтобы позволить процессору перевести свои шины в высокоимпедансное состояние при запросах прямого доступа, исключив непреднамеренный выбор периферийных устройств, VMA# процессоров семейства М68000 имеет активный низкий уровень, который противоположен высокому уровню сигнала VMA периферии М6800.

   ОРГАНИЗАЦИЯ ИНТЕРФЕЙСА ПО ПРЕРЫВАНИЯМ
   Когда процессор в цикле подтверждения прерывания захватывает вектор, устанавливается VРA#, и процессор (или внешняя схема) вырабатывает VMA# и завершает нормальный цикл чтения, как показано на рис.Б.6. В качестве вектора прерывания процессор использует внутренне сгенерированный номер вектора, называемый автовектором. Автовектор соответствует уровню прерывания, которое обслуживается. Семь автовекторов представляют собой десятичные номера векторов 25-31.

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