Настройка и диагностика LPT-портов

Конфигурирование LPT-портов

Управление параллельным портом разделяется на два этапа — предварительное конфигурирование (Setup) аппаратных средств порта и текущее (оперативное) переключение режимов работы прикладным или системным ПО. Оперативное переключение возможно только в пределах режимов, разрешенных при конфи­гурировании. Этим обеспечивается возможность согласования аппаратуры с ПО и блокирования ложных переключений, вызванных некорректными действиями программы.

Конфигурирование LPT-порта зависит от его исполнения. Порт, расположенный на плате расширения (мультикарте), устанавливаемой в слот ISA или ISA+VLB, конфигурируется джамперами на самой плате. Порт на системной плате конфи­гурируется через BIOS Setup.

Ниже перечислены параметры, подлежащие конфигурированию.

Базовый адрес — 3BCh, 378h или 278h. При инициализации BIOS проверя­ет наличие портов по адресам именно в этом порядке и, соответственно, при­сваивает обнаруженным портам логические имена LPT1, L PT2, L РТЗ. Адрес ЗВСЬ имеет адаптер порта, расположенный на плате MDA или HGC. Большин­ство портов по умолчанию конфигурируется на адрес 378h и может пере­ключаться на 278h.

♦ Используемая линия запроса прерывания: для L РТ — IRQ7, для LPT2 — IRQ5. Тра­диционно прерывания от принтера не задействуются, и этот дефицитный ре­сурс можно сэкономить. Однако при использовании скоростных режимов ЕСР (или Fast Centronics) работа через прерывания может заметно повысить про­изводительность и снизить загрузку процессора.

♦ Использование канала DMA для режимов ЕСР и Fast Centronics — разреше­ние и номер канала DMA.

♦ Режимы работы порта:

SPP — порт работает только в стандартном однонаправленном программно- управляемом режиме;

PS/2, он же Bi-Directionalотличается от SPP возможностью реверса кана­ла (установкой CR. 5=1);

Fast Centronicsаппаратное формирование протокола Centronics с исполь­зованием FIFO-буфера и, возможно, DMA;

ЕРР — в зависимости от использования регистров порт работает в режиме SPP или ЕРР;

ЕСР— по умолчанию включается в режим SPP или PS/2, записью в ECR
может переводиться в любой режим ЕСР, но перевод в ЕРР записью в ECR кода 100 не гарантируется;

ЕСР+ЕРР — то же, что и ЕСР, но запись в ECR кода режима 100 переводит порт в ЕРР.

Выбор режима ЕРР, ЕСР или Fast Centronics сам по себе не приводит к повыше­нию быстродействия обмена с подключенными ПУ, а только дает возможность драйверу и ПУ установить оптимальный режим в пределах их «разумения». Боль­шинство современных драйверов и приложений пытаются использовать эффек­тивные режимы, поэтому «подрезать им крылья» установкой простых режимов без веских на то оснований не стоит.

Принтеры и сканеры могут пожелать режима ЕСР. Windows (3.x, Эх и NT) имеет системные драйверы для этого режима. В среде DOS печать через ЕСР поддержи­вается только специальным загружаемым драйвером.

Сетевые адаптеры, внешние диски и CD-ROM, подключаемые к параллельному порту, могут использовать режим ЕРР. Для этого режима специальный драйвер пока еще не применяется; поддержка ЕРР включается в драйвер самого подклю­чаемого устройства.

Неисправности и тестирование параллельных портов

Тестирование параллельных портов разумно начинать с проверки их наличия в сис­теме. Список адресов установленных портов появляется в таблице, выводимой BIOS на экран перед загрузкой ОС. Список можно посмотреть и с помощью те­стовых программ или прямо в BIOS Data Area с помощью отладчика.

Если BIOS обнаруживает меньше портов, чем установлено физически, скорее всего, двум портам присвоен один и тот же адрес. При этом работоспособность ни одного из конфликтующих портов не гарантируется: они будут одновремен­но выводить сигналы, но при чтении регистра состояния конфликт на шине, скорее всего, приведет к искажению данных. Программное тестирование порта без диагностической заглушки (Loop Back) не покажет ошибок, поскольку при этом читаются данные выходных регистров, а они у всех конфликтующих (по от­дельности исправных портов) совпадут. Именно такое тестирование производит BIOS при проверке на наличие портов. Разбираться с такой ситуацией следу­ет, последовательно устанавливая порты и наблюдая за адресами, появляющи­мися в списке.

Если физически установлен только один порт, a BIOS его не обнаруживает, то либо порт отключен при конфигурировании, либо он вышел из строя (скорее всего из-за нарушений правил подключения). Если вам везет, неисправность устраняется «передергиванием» платы в слоте — там иногда возникают пробле­мы с контактами.

Наблюдаются и такие «чудеса» — при «теплой» перезагрузке DOS после Win­dows 95 порт не виден (и приложения не могут печатать из MS-DOS). Однако после повторной перезагрузки DOS порт оказывается на месте. С этим явлением легче смириться, чем бороться.

Тестирование портов с помощью диагностических программ позволяет проверить выходные регистры, а при использовании специальных заглушек — и входные линии. Поскольку количество выходных линий порта (12) и входных (5) различ­но, то полная проверка порта с помощью пассивной заглушки принципиально невозможна. Разные программы тестирования требуют применения разных за­глушек (рис. 1.8).

clip_image002

Рис. 1.8. Схема заглушки для тестирования LPT-порта: а для Norton Diagnostics б -для Checklt,

Большинство неприятностей при работе с LPT-портами доставляют разъемы и кабели. Для проверки порта, кабеля и принтера можно воспользоваться спе­циальными тестами из популярных диагностических программ (Checklt, PCCheckи т. п.). Можно попытаться просто вывести на принтер какой-либо символь­ный файл.

♦ Если вывод файла с точки зрения DOS проходит (копирование файла на
устройство с именем LPTn или PRN совершается быстро и успешно), а принтер (исправный) не напечатал ни одного символа — скорее всего, это обрыв (не­ контакт в разъеме) цепи Strobe*.

♦ Если принтер находится в состоянии On Line, а появляется сообщение о его неготовности, причину следует искать в линии Busy.

♦ Если принтер, подключенный к порту, в стандартном режиме (SPP) печатает нормально, а при переходе в режим ЕСР начинаются сбои, следует проверить кабель — соответствует ли он требованиям IEEE 1284 (см. выше). Дешевые кабели с неперевитыми проводами нормально работают на скоростях 50-100 Кбайт/с, но при скорости 1-2 Мбайт/с, обеспечиваемой ЕСР, имеют пол­ное право не работать, особенно при длине более 2 м.

♦ Если при установке драйвера PnP-принтера появилось сообщение о необхо­
димости применения «двунаправленного кабеля», проверьте наличие связи
контакта 17 разъема DB-25 с контактом 36 разъема Centronics. Хотя эта связь изначально предусматривалась, в ряде кабелей она отсутствует.

♦ Если принтер искажает информацию при печати, возможен обрыв (или замы­
кание) линий данных. В этом случае удобно воспользоваться файлом, содер­
жащим последовательность кодов всех печатных символов. Если файл печата­
ется с повтором некоторых символов или их групп, по периодичности повтора
можно легко вычислить оборванный провод данных интерфейса. Этот же файл
удобно использовать для проверки аппаратной русификации принтера.

Аппаратные прерывания от LPT-порта используются не всегда. Даже DOS-програм­ма фоновой печати PRINT работает с портом по опросу состояния, а ее обслужива­ющий процесс запускается по прерыванию от таймера. Поэтому неисправности, связанные с цепью прерывания от порта, проявляются не часто. Однако по-насто­ящему многозадачные ОС (например, NetWare) стараются работать с портом по прерываниям. Протестировать линию прерывания можно, только подключив к порту ПУ или заглушку. Если к порту с неисправным каналом прерывания под­ключить адаптер локальной сети, то он, возможно, будет работать, но с очень низ­кой скоростью: на любой запрос ответ будет приходить с задержкой в десятки се­кунд — принятый из адаптера пакет будет приниматься не по прерыванию (сразу по приходу), а по внешнему тайм-ауту.

Литература:
ГукМ. Г93 Аппаратные интерфейсы ПК. Энциклопедия. — СПб.: Питер, 2002. — 528 с.: ил.

Предлагаю ознакомиться с аналогичными статьями: