Асинхронный обмен по ISA
Основным типом обмена по ISA является синхронный обмен, то есть обмен в темпе задатчика без учета быстродействия исполнителя. Однако возможен и асинхронный обмен, при котором "медленный" исполнитель приостанавливает работу задатчика на время выполнения им требуемой команды. В этом случае надо использовать сигнал I/O СН RDY, снятие которого (установка в состояние логического нуля) говорит о неготовности исполнителя к окончанию цикла обмена. Как уже отмечалось, приостановка производится на целое число периодов SYSCLK и не может быть дольше системного времени ожидания 15,6 мкс (для некоторых компьютеров — 2,5 мкс).
Рассмотрим некоторые аппаратурные решения для асинхронного обмена. Прежде всего, здесь можно выделить две ситуации: когда существует внутренний сигнал УС, говорящий об окончании выполнения функции записи или чтения, и когда такого сигнала нет. В качестве этого сигнала (обозначим его DK) может выступать, например, сигнал окончания преобразования (готовности данных) АЦП, входящего в состав УС. На рис. 9.22 приведена структура УС с сигналом DK. DK может быть потенциальным (то есть сниматься после окончания стробов обмена) или импульсным (то есть окончанию выполнения функции соответствует фронт сигнала DK). Временные диаграммы и схемы для этих двух случаев показаны на рис. 9.23 и 9.24 (для упрощения считаем, что строб обмена — единственный).
Рис. 9.22. Структура УС, использующая асинхронный обмен. |
Рис. 9.24. Реализация асинхроннного обмена при потенциальном DK (уровень логического нуля). |
Если сигнал DK отсутствует в явном виде, но известно время выполнения функции или его верхний предел, то необходимо сформировать задержку в самой интерфейсной части. В схеме на рис. 9.25 слева эта задержка определяется временем выдержки одновибратора. Надо отметить, что при проектировании УС одним из показателей мастерства разработчика является количество использованных им одновибраторов или RC-цепочек (естественно, эти величины обратно пропорциональны друг другу). Это связано с тем, что любые аналоговые цепи подвержены действию помех и требуют настройки. Поэтому, если есть возможность, то надо формировать задержки, временные сдвиги, интервалы с помощью магистральных тактовых сигналов SYSCLK и OSC или внутренних тактов УС. На рис. 9.26 справа приведена схема с использованием линии задержки на сдвиговом регистре, задержка которой определяется номером замкнутого переключателя и задается с точностью до периода сигнала SYSCLK. Но, в принципе, в данном случае требования к точности времени задержки невысоки, и использование одновибратора и даже простой RC-цепочки вполне допустимо.
Рис. 9.25. Реализация асинхронного обмена при импульсном DK (положительный фронт). |
Асинхронный режим обмена по ISA можно реализовать и на более высоком уровне: путем опроса задатчиком флага готовности исполнителя и путем использования прерываний. Эти решения удобны в случае очень медленных УС, то есть тех, время реализации функции которыми превышает предельное системное время задержки (системный тайм-аут).
Теперь попробуем изобразить обобщенную структурную схему интерфейсной части УС, включающей в себя все рассмотренные узлы (рис. 9.27). Здесь использованы входные буфера, двунаправленный буфер данных (в общем случае должен быть разделен на два для каждого байта), выходной буфер, селектор адреса, формирователь внутренних стробов и формирователь сигнала асинхронного обмена I/O СН RDY (DK).
Рис. 9.26. Формирование задержки с помощью одновибратора и линии задержки. |
Оценим предельные значения времен задержек всех узлов интерфейсной части. Здесь надо рассмотреть две ситуации. Если наше УС работает только в режиме записи в него информации, то желательно, чтобы задержка сигнала STR относительно сигнала -IOW и задержки сигналов данных были примерно одинаковыми. Ни в коем случае задержка сигнала STR не должна превышать задержку данных более чем на 30 нс, иначе УС примет неверные данные. Разность задержки буферирования и селектирования адреса и задержки буферирования сигнала -IOW не должна превышать 91 нс, иначе УС не будет реагировать на свой адрес. Если наше УС работает только в режиме чтения из него информации, то сумма задержки сигнала STR относительно сигнала -IOR и задержки буфера данных не должна превышать 110 нс, иначе процессор примет неправильные данные от УС. Требования к буферу адреса и селектору адреса такие же. Если же УС должно работать как в режиме чтения, так и в режиме записи, то оно должно удовлетворять всем перечисленным требованиям.
Рис. 9.27. Обобщенная структурная схема интерфейсной части УС. |
Дата добавления: 2016-03-10; просмотров: 1131;