Применение LPT-порта
Обычно LPT-порт используют для подключения принтера (см. п. 8.3.1), однако этим его применение не исчерпывается.
Для связи двух компьютеров по параллельному интерфейсу применяются различные кабели в зависимости от режимов используемых портов. Самый простой и медленный — полубайтный режим, работающий на всех портах. Для этого режима в кабеле достаточно иметь 10 сигнальных и один общий провод. Распайка разъемов кабеля приведена в табл. 1.11. Связь двух PC данным кабелем поддерживается стандартным ПО типа Interlnk из MS-DOS или Norton Commander. Заметим, что здесь применяется свой протокол, отличный от описанного в п. 1.3.1.
Таблица 1.11. Кабель связи PC-PC (4-битный)
Х1, разъем РС#1 Х2, разъем РС#2 Бит Контакт Контакт БитDR.O | 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.O |
GND 18-25 18-25 GND
Разъемы XI и Х2 - DB25-P (вилки).Высокоскоростная связь двух компьютеров может выполняться и в режиме ЕСР (режим ЕРР неудобен, поскольку требует синхронизации шинных циклов ввода-вывода двух компьютеров).
В табл. 1.12 приведена распайка кабеля, в аналогичной таблице предыдущих книг автора (см. [2] и [5]) была ошибка (перепутаны контакты 13 и 15). Из всех сигналов
1.6. Применение LPT-порта_____________________________________________ 43
в кабеле не используется лишь PeriphRequest* (контакт 15). В цепи линий данных рекомендуется вставить последовательные резисторы (0,5-1 кОм), препятствующие протеканию слишком больших токов, когда порты данных обоих компьютеров находятся в режиме вывода. Эта ситуация возникает, когда коммуникационное ПО компьютеров еще не запущено. Связь в режиме ЕСР поддерживается Windows Эх, в комплект поставки этих ОС входит драйвер PARALINK.VxD, но из-за внутренней ошибки он неработоспособен.
«Заплатку» на этот драйвер, а также тестовую утилиту и необходимые описания можно найти в сети (www.lpt.com, www.lvr.com/parport.htm).
Таблица 1.12. Кабель связи PC-PC в режиме ЕСР и байтном режиме
Разъем Х1 Разъем Х2
Контакт Имя в ЕСР Имя в ЕСР Контакт
1 |
HostClk |
PeriphClk |
10 |
14 |
HostAck |
PeriphAck |
11 |
17 |
1284Active |
Xflag |
13 |
16 |
ReverseRequest* |
AckReverse* |
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 |
Подключение внешних накопителей (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-порта в различных режимах и их соответствие битам регистров стандартного порта.
44 |
Таблица 1 |
.13. Назначение выводов разъема LPT-порта и бит регистров в режимах SPP, ЕСР и ЕРР |
||||
Контакт |
I/O |
Бит1 |
SPP |
ECP |
EPP |
1 |
0/I |
CR.O\ |
Strobe# |
HostClk |
Write» |
2 |
0/I |
DR.O |
DataO |
Data 0 |
DataO |
3 |
0/I |
DR.1 |
Datal |
Datal |
Datal |
4 |
0/I |
DR. 2 |
Data 2 |
Data 2 |
Data 2 |
5 |
0/I |
DR.3 |
DataS |
DataS |
DataS |
6 |
0/I |
DR.4 |
Data 4 |
Data 4 |
Data 4 |
7 |
0/I |
DR.5 |
Data S |
Data S |
Data S |
8 |
0/I |
DR.6 |
Data 6 |
Data 6 |
Data 6 |
9 |
0/I |
DR.7 |
Data 7 |
Data 7 |
Data 7 |
10 |
I |
SR.6 |
Ack# |
PeriphClk |
INTR# |
11 |
I |
SR.A |
Busy |
PeriphAck |
Wait# |
12 |
I |
SR.5 |
PaperEnd |
AckReverse* |
__ 2 |
13 |
I |
SR.4 |
Select |
Xflag |
—2 |
14 |
0/I |
CR.1\ |
Auto LF# |
HostAck |
DataStb* |
15 |
I |
SR.3 |
Error» |
PeriphRequest* |
__ 2 |
16 |
0/I |
CR.2 |
lnit# |
ReverseRequest* |
Reset» |
17 |
0/I |
CR.3\ |
Select ln# |
1284Active |
AddrStb# |
2 Определяется пользователем.