Рисунок 1.3 - Оконечные цепи линий интерфейса IEEE 1284:
a — однонаправленные линии,
б—двунаправленные
Традиционные интерфейсные кабели имеют от 18 до 25 проводов, в зависимости от числа проводников цепи GND. Эти проводники могут быть как перевитыми, так и нет. К экранированию кабеля жестких требований не предъявлялось. Такие кабели вряд ли будут надежно работать на скорости передачи 2 Мбайт/с и при длине более 2 м.
Стандарт IEEE 1284 регламентирует свойства кабелей.
- Все сигнальные линии должны быть перевитыми с отдельными обратными (общими) проводами.
- Каждая пара должна иметь импеданс 62±б Ом в частотном диапазоне 4-16 МГц.
- Уровень перекрестных помех между парами не должен превышать 10%.
- Кабель должен иметь экран (фольгу), покрывающий не менее 85 % внешней поверхности. На концах кабеля экран должен быть окольцован и соединен с контактом разъема.
Кабели, удовлетворяющие этим требованиям, маркируются надписью "IEEE Std 1284-1994 Compliant". Они могут иметь длину до 10 метров, обозначения типов приведены в таблице 1.3.
Таблица 1.3 - Типы кабелей IEEE 1284
Тип | Расшифровка | Разъем 1 | Разъем 2 |
АМАМ | Type A Male — Type A Male | А (вилка) | А(вилка) |
AMAF | Type A Male — Type A Female | А(вилка) | А(розетка) |
АВ | Type A Male — Туре В Plug — стандартный кабель к принтеру | А (вилка) | В |
АС | Type A Male — Туре С Plug — новый кабель к принтеру | А (вилка) | С |
ВС | Туре В Plug — Type С Plug | В | С |
СС | Туре С Plug — Type С Plug | С | С |
Системная поддержка LPT-порта включает поиск установленных портов и сервисы печати (Int 17h). В процессе начального тестирования POST BIOS проверяет наличие параллельных портов по адресам 3BCh, 378h и 278h и помещает базовые адреса обнаруженных портов в ячейки BIOS Data Area 0:0408h, 040Ah, 040Ch, 040Eh. Эти ячейки хранят адреса портов LPT1-LPT4, нулевое значение адреса является признаком отсутствия порта с данным номером. В ячейки 0:0478, 0479, 047А, 047В заносятся константы, задающие тайм-аут для этих портов.
Поиск портов обычно ведется достаточно примитивно — по базовому адресу (в регистр данных предполагаемого порта) выводится тестовый байт (AAh или 55h), затем производится ввод по тому же адресу. Если считанный байт совпал с записанным, предполагается, что найден LPT-порт; его адрес помещается в ячейку BIOS Data Area. Базовые адреса портов могут быть впоследствии изменены программно. Адрес порта LPT4 система BIOS самостоятельно установить не может, поскольку в списке стандартных адресов поиска имеются только три вышеуказанных.
Обнаруженные порты инициализируются — записью в регистр управления формируется и снимается сигнал lnit#, после чего записывается значение ОСЬ, соответствующее исходному состоянию сигналов интерфейса. В некоторых случаях сигнал lnit# активен с момента аппаратного сброса до инициализации порта при загрузке ОС. Это можно заметить по поведению включенного принтера во время перезагрузки компьютера — у принтера надолго гаснет индикатор On-Line. Следствие этого явления — невозможность распечатки экранов (например, параметров BIOS Setup) по нажатию клавиши Print Screen до загрузки ОС.
Обычно LPT-порт используют для подключения принтера, однако этим его применение не исчерпывается.
Для связи двух компьютеров по параллельному интерфейсу применяются различные кабели в зависимости от режимов используемых портов. Самый простой и медленный — полубайтный режим, работающий на всех портах. Для этого режима в кабеле достаточно иметь 10 сигнальных и один общий провод. Распайка разъемов кабеля приведена в табл. 1.4. Связь двух PC данным кабелем поддерживается стандартным ПО типа Interlnk из MS-DOS или Norton Commander.
Таблица 1.4 - Кабель связи 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 |
Разъемы XI и Х2 - DB25-P (вилки).
Высокоскоростная связь двух компьютеров может выполняться и в режиме ЕСР (режим ЕРР неудобен, поскольку требует синхронизации шинных циклов ввода-вывода двух компьютеров).
Из всех сигналов в кабеле не используется лишь PeriphRequest (контакт 15). В цепи линий данных рекомендуется вставить последовательные резисторы (0,5-1 кОм), препятствующие протеканию слишком больших токов, когда порты данных обоих компьютеров находятся в режиме вывода. Эта ситуация возникает, когда коммуникационное ПО компьютеров еще не запущено. Связь в режиме ЕСР поддерживается Windows, в комплект поставки этих ОС входит драйвер PARALINK.VxD, но из-за внутренней ошибки он неработоспособен.
Таблица 1.5 - Кабель связи 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 |
Подключение сканера к 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.6 описано назначение выводов разъема LPT-порта в различных режимах и их соответствие битам регистров стандартного порта.
Управление параллельным портом разделяется на два этапа — предварительное конфигурирование (Setup) аппаратных средств порта и текущее (оперативное) переключение режимов работы прикладным или системным ПО. Оперативное переключение возможно только в пределах режимов, разрешенных при конфигурировании.
Таблица 1.6 - Назначение выводов разъема 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# |
Этим обеспечивается возможность согласования аппаратуры с ПО и блокирования ложных переключений, вызванных некорректными действиями программы.
Конфигурирование LPT-порта зависит от его исполнения. Порт, расположенный на плате расширения (мультикарте), устанавливаемой в слот ISA или ISA+VLB, конфигурируется джамперами на самой плате. Порт на системной плате конфигурируется через BIOS Setup.
Ниже перечислены параметры, подлежащие конфигурированию.
- Базовый адрес — 3BCh, 378h или 278h. При инициализации BIOS проверяет наличие портов по адресам именно в этом порядке и, соответственно, присваивает обнаруженным портам логические имена LPT1, L PT2, L РТЗ. Адрес ЗВСЬ имеет адаптер порта, расположенный на плате MDA или HGC. Большинство портов по умолчанию конфигурируется на адрес 378h и может переключаться на 278h.
- Используемая линия запроса прерывания: для L РТ — IRQ7, для LPT2 — IRQ5. Традиционно прерывания от принтера не задействуются, и этот дефицитный ресурс можно сэкономить. Однако при использовании скоростных режимов ЕСР (или Fast Centronics) работа через прерывания может заметно повысить производительность и снизить загрузку процессора.