Михаил Гук - Аппаратные интерфейсы ПК. Энциклопедия
1.6. Применение LPT-порта
Обычно LPT-порт используют для подключения принтера (см. п. 8.3.1), однако этим его применение не исчерпывается.
Для связи двух компьютеров по параллельному интерфейсу применяются различные кабели в зависимости от режимов используемых портов. Самый простой и медленный — полубайтный режим, работающий на всех портах. Для этого режима в кабеле достаточно иметь 10 сигнальных и один общий провод. Распайка разъемов кабеля приведена в табл. 1.11. Связь двух PC данным кабелем поддерживается стандартным ПО типа Interlnk из MS-DOS или Norton Commander. Заметим, что здесь применяется свой протокол, отличный от описанного в п. 1.3.1.
Таблица 1.11. Кабель связи PC-PC (4-битный)
X1, разъем PC#1 X2, разъем PC#2 Бит Контакт Контакт Бит DR.0 2 15 SR.3 DR.1 3 13 SR.4 DR.2 4 12 SR.5 DR.3 5 10 SR.6 DR.4 6 11 SR.7 SR.6 10 5 DR.3 SR.7 11 6 DR.4 SR.5 12 4 DR.2 SR.4 13 3 DR.1 SR.3 15 2 DR.0 GND 18-25 18-25 GNDРазъемы X1 и X2 — DB25-P (вилки).
Высокоскоростная связь двух компьютеров может выполняться и в режиме ЕСР (режим ЕРР неудобен, поскольку требует синхронизации шинных циклов ввода- вывода двух компьютеров).
В табл. 1.12 приведена распайка кабеля, в аналогичной таблице предыдущих книг автора (см. [2] и [5]) была ошибка (перепутаны контакты 13 и 15). Из всех сигналов в кабеле не используется лишь PeriphRequest# (контакт 15). В цепи линий данных рекомендуется вставить последовательные резисторы (0,5–1 кОм), препятствующие протеканию слишком больших токов, когда порты данных обоих компьютеров находятся в режиме вывода. Эта ситуация возникает, когда коммуникационное ПО компьютеров еще не запущено. Связь в режиме ЕСР поддерживается Windows 9х, в комплект поставки этих ОС входит драйвер PARALINK.VxD, но из-за внутренней ошибки он неработоспособен. «Заплатку» на этот драйвер, а также тестовую утилиту и необходимые описания можно найти в сети (www.lpt.com, www.lvr.com/parport.htm).
Таблица 1.12. Кабель связи PC-PC в режиме ЕСР и байтном режиме
Разъем X1 Разъем X2 Контакт Имя в ЕСР Имя в ЕСР Контакт 1 HostClk PeriphClk 10 14 HostAck PeriphAck 11 17 1284Active Xflag 13 16 ReverseRequest# AskReverse# 12 10 PeriphClk HostClk 1 11 PeriphAck HostAck 14 12 AckReverse# ReverseRequest# 16 13 Xflag 1284Active 17 2, 3…9 Data [0:7] Data [0:7] 2, 3…9Подключение сканера к LPT-порту эффективно, только если порт обеспечивает хотя бы двунаправленный режим (Bi-Di), поскольку основной поток — ввод. Лучше использовать порт ЕСР, если этот режим поддерживается сканером (или ЕРР, что маловероятно).
Подключение внешних накопителей (Iomega Zip Drive, CD-ROM и др.), адаптеров ЛВС и других симметричных устройств ввода-вывода имеет свою специфику. В режиме SPP наряду с замедлением работы устройства заметна принципиальная асимметрия этого режима: чтение данных происходит в два раза медленнее, чем (весьма небыстрая) запись. Применение двунаправленного режима (Bi-Di или PS/2 Туре 1) устранит эту асимметрию — скорости сравняются. Только перейдя на ЕРР или ЕСР, можно получить нормальную скорость работы. В режиме ЕРР или ЕСР подключение к LPT-порту почти не уступает по скорости подключению через ISA- контроллер. Это справедливо и при подключении устройств со стандартным интерфейсом шин к LPT-портам через преобразователи интерфейсов (например, LPT-IDE, LPT-SCSI, LPT-PCMCIA). Заметим, что винчестер IDE, подключенный через адаптер к LPT-порту, для системы может быть представлен как устройство SCSI (это логичнее с программной точки зрения).
В табл. 1.13 описано назначение выводов разъема LPT-порта в различных режимах и их соответствие битам регистров стандартного порта.
Таблица 1.13. Назначение выводов разъема LPT-порта и бит регистров в режимах SPP, ЕСР и ЕРР
Контакт I/O Бит¹ SPP ECP EPP 1 O/I CR.0 Strobe# HostClk Write# 2 O/I DR.0 Data 0 Data 0 Data 0 3 O/I DR.1 Data 1 Data 1 Data 1 4 O/I DR.2 Data 2 Data 2 Data 2 5 O/I DR.3 Data 3 Data 3 Data 3 6 O/I DR.4 Data 4 Data 4 Data 4 7 O/I DR.5 Data 5 Data 5 Data 5 8 O/I DR.6 Data 6 Data 6 Data 6 9 O/I DR.7 Data 7 Data 7 Data 7 10 I SR.6 Ack# PeriphClk INTR# 11 I SR.7 Busy PeriphAck Wait# 12 I SR.5 PaperEnd AckReverse# —² 13 I SR.4 Select Xflag —² 14 O/I CR.1 Auto LF# HostAck DataStb# 15 I SR.3 Error# PeriphRequest# —² 16 O/I CR.2 Init# ReverseRequest# Reset# 17 O/I CR.3 Select In# 1284Active AddrStb#¹ Символом «» отмечены инвертированные сигналы (1 в регистре соответствует низкому уровню линии).