1.3.8. Развитие стандарта IEEE 1284
Ниже перечислены некоторые дополнения основного стандарта IEEE 1284.
♦ IEEE P1284.1 «Standard for Information Technology for Transport Independent Printer/Scanner Interface (TIP/SI)». Этот стандарт разрабатывается для управления и обслуживания сканеров и принтеров на основе протокола NPAP (Network Printing Alliance Protocol).
♦ IEEE P1284.2 «Standard for Test, Measurement and Conformance to IEEE Std. 1284» — стандарт для тестирования портов, кабелей и устройств на совместимость с IEEE 1284.
♦ IEEE P1284.3 «Standard for Interface and Protocol Extensions to IEEE Std. 1284 Compliant Peripheral and Host Adapter Ports» — стандарт на драйверы и использование устройств прикладным программным обеспечением (ПО). Приняты спецификации BIOS для использования EPP драйверами DOS. Прорабатывается стандарт на разделяемое использование одного порта цепочкой устройств или группой устройств, подключаемых через мультиплексор.
♦ IEEE P1284.4 «Standard for Data Delivery and Logical Channels for IEEE Std. 1284 Interfaces» направлен на реализацию пакетного протокола достоверной передачи данных через параллельный порт. Основой служит протокол MLC (Multiple Logical Channels) фирмы Hewlett-Packard, однако совместимость с ним в окончательной версии стандарта не гарантируется.
1.4. Системная поддержка LPT-порта
Системная поддержка LPT-порта включает поиск установленных портов и сервисы печати (Int 17h, см. п. 8.3.3). В процессе начального тестирования 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 самостоятельно установить не может, поскольку в списке стандартных адресов поиска имеются только три вышеуказанных.
Обнаруженные порты инициализируются — записью в регистр управления формируется и снимается сигнал Init#
, после чего записывается значение 0Ch, соответствующее исходному состоянию сигналов интерфейса. В некоторых случаях сигнал Init#
активен с момента аппаратного сброса до инициализации порта при загрузке ОС. Это можно заметить по поведению включенного принтера во время перезагрузки компьютера — у принтера надолго гаснет индикатор On-Line
. Следствие этого явления — невозможность распечатки экранов (например, параметров BIOS Setup) по нажатию клавиши Print Screen
до загрузки ОС.
1.5. Параллельный порт и PnP
Большинство современных периферийных устройств, подключаемых к LPT-порту, поддерживает стандарт 1284 и функции PnP. Для поддержки этих функций компьютером с аппаратной точки зрения достаточно иметь контроллер интерфейса, соответствующий стандарту 1284. Если подключаемое устройство поддерживает PnP, оно по протоколу согласования режимов 1284 способно «договориться» с портом, представляющим «интересы» компьютера, о возможных режимах обмена. Далее, для работы PnP подключенное устройство должно сообщить операционной системе все необходимые сведения о себе. Как минимум это идентификаторы производителя, модели и набор поддерживаемых команд. Более развернутая информация об устройстве может содержать идентификатор класса, подробное описание и идентификатор устройства, с которым обеспечивается совместимость. В соответствии с принятой информацией для поддержки данного устройства операционная система может предпринять действия по установке требуемого программного обеспечения.
Устройства с поддержкой PnP распознаются ОС на этапе ее загрузки, если, конечно же, они подключены к порту интерфейсным кабелем и у них включено питание. Если ОС Windows обнаруживает подключенное устройство PnP, отличающееся от того, что прописано в ее реестре для данного порта (или просто новое устройство), она пытается установить требуемые для устройства драйверы из дистрибутива ОС или из комплекта поставки нового устройства. Если Windows не желает замечать вновь подключенного устройства PnP, это может свидетельствовать о неисправности порта или кабеля. Система PnP не работает, если устройство подключается дешевым «не двунаправленным» кабелем, у которого отсутствует связь по линии SelectIn#
(контакт 17 порта LPT и контакт 36 разъема Centronics).
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 |