Реклама:

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

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

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

Итак, в соответствии с этим алгоритмом, сначала сформулируем требования к интерфейсной части. При побайтном управлении внешними линиями имеет смысл ограничиться 8-разрядным обменом (скорость передачи информации здесь не очень важна), и тогда для обмена данными потребуется 7 адресов в адресном пространстве ввода/вывода. Помимо этого в УС надо записывать 7 бит управляющего слова, которое будет определять направление передачи информации для каждого из семи внешних 8-разрядных портов. Поэтому нашему УС необходимо в целом 8 адресов. Нужны ли здесь прерывания? Желательны, но не обязательны: можно ограничиться и опросом флага готовности. Прямой доступ не нужен совершенно.

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

♦ при включении питания компьютера все внешние линии контроллера должны переходить в состояние приема и только потом программно устанавливаться в нужный режим;

♦ • необходимо программно контролировать правильность выдаваемой информации, причем желательно читать именно сигнал, приходящий от внешнего устройства, сравнивая который с выдаваемым сигналом, можно обнаружить конфликт и принять меры по его ликвидации (например, переключить линию на прием, подать нужные сигналы на внешнее устройство, проинформировать оператора и т.д.);


⇐ Предыдущая страница| |Следующая страница ⇒