Полезным дополнением является использование ACKNLG ' для возбуждения прерывания. На рис. 10.21 все сказанное проиллюстрировано применительно к магистрали IBM PC.
Рис. 10.21. Порт Centronicsдля PC.
Заметьте, что организация прерываний в этом случае не составляет труда, поскольку прерывания в PC активизируются перепадом; попросту используйте спад сигнала ACKNLG ' , как это показано на рис. 10.20. Для запрещения прерываний мы использовали один из фиксируемых выходных бит, как это описывалось в разд. 10.09 и 10.11 . Обратите также внимание на использование сигнала магистрали RESET DRV для сброса всех выходов (и прерываний) при включении питания; именно ради этого мы выбрали микросхему `273 восьмиразрядного D-peгистра (в котором предусмотрен вход RESET).
В процессе работы с этим интерфейсом вы избирательно устанавливаете и сбрасываете выходные управляющие сигналы, подавая выходные байты с соответствующим образом установленными или сброшенными битами, в порт В. Поскольку на выходе предусмотрены фиксаторы, вы можете спокойно изменять состояние любого выходного бита, не боясь появления выбросов на других выходах. Однако храните в памяти копию байта, зафиксированного в порте В, чтобы можно было посылать в этот порт новые байты, отличающиеся единственным битом (используя операции И и ИЛИ, см. пример ниже). Импульс STROBE ' следует генерировать программно, поскольку в интерфейсе нет безобразных одновибраторов. В программе 10.6 показано, как можно создать «программный импульс» на линии STROBE ' .
Отметьте использование операций И и ИЛИ для сброса и установки, соответственно, одного бита. В этом примере мы не стали тратить время на модификацию текущего байта в ячейке current, поскольку в итоге он не изменяется. Если бы нам надо было изменить (и оставить измененным) какой-то другой управляющий бит, новый байт пришлось бы сохранить с помощью команды mov current, AL.
Аппаратный альтернативой хранения в памяти копии байта порта является включение в состав интерфейса порта с возможностью чтения, чтобы операция программного ввода позволила вам определить, что, собственно, зафиксировано в порте. Следующий пример позволит вам сообразить, как это делается.
Упражнение 10.6.Представьте себе, что вы полны энтузиазма и хотите добавить к схеме интерфейса Centronics порт с возможностью чтения. Сделайте так, чтобы чтение из порта В решало эту задачу. Вы будете приятно удивлены, обнаружив, как мало дополнительных цепей требует это усовершенствование.
Упражнение 10.7.Теперь перепишите программу 10.6, используя ваш новый порт и опустив ячейку current.
Порты Centronics используются практически во всех микрокомпьютерах; если вам нужен простой и быстрый параллельный выходной порт, без колебаний выбирайте Centronics. Во многих случаях (но не в IBM PC) микрокомпьютер позволит даже использовать порт в обе стороны. Обычно это делается путем посылки в порт управляющего бита, после чего изменяется направление передачи данных по единственной 8-разрядной шине данных.
SCSI и IPI.Это стандартные универсальные параллельные интерфейсы для подключения к компьютерам дисков и других высокопроизводительных периферийных устройств, как уже кратко упоминалось в разд. 10.16 . SCSI (Small Computer System Interface — интерфейс малых компьютерных систем) представляет собой 8-бит параллельный кабельный интерфейс с квитированием и протоколами для обслуживания нескольких машин и нескольких периферийных устройств. В SCSI предусмотрены и синхронный, и асинхронный режимы, а также определенные программные протоколы. Вы можете найти интерфейсную плату SCSI для установки на магистраль практически любого популярного микрокомпьютера, включая VME и Multibus I и II; затем вы подсоединяете этот «главный адаптер» SCSI с помощью плоского кабеля SCSI-шины к плате периферийного контроллера (рис. 10.22). Плата контроллера часто является элементом самого периферийного устройства (т. е. располагается в дисководе жесткого диска) и взаимодействует с дисководом через «интерфейс уровня устройства», который может называться ST-506/412, ESDI или SMD.
Рис. 10.22. Магистраль SCSI с единственным периферийным устройством.
Достоинством SCSI является то, что с помощью этого интерфейса все микрокомпьютеры становятся совместимыми со всеми периферийными устройствами. Каждый разработчик считает своим долгом использовать SCSI, и в новых микрокомпьютерах этот интерфейс располагается прямо на системной плате. Со стороны периферийного устройства тоже удается избавиться от контроллера путем использования «архитектуры встроенного SCSI», когда магистраль SCSI становится одновременно и интерфейсом уровня устройства. Другими словами, вы соединяете кабелем системную плату микрокомпьютера с дисководом. SCSI обеспечивает передачу данных со скоростью до 1,5 Мбайт/с (при асинхронной передаче) или 4 Мбайт/с (при синхронной) при длине кабеля до 7 м (несимметричный) или 27 м (симметричный).
Читать дальше