КАРТА ПАРАЛЛЕЛЬНОГО ПОРТА ДЛЯ ПК


В. МИХЕЕВ, г. Москва

В последние годы системные платы ПК выпускаются с размещенными на них последовательными и параллельными портами. Это удобно производителям и не приносит неудобств большинству пользователей. Однако при подключении к ПК некоторых самодельных устройств, например, популярного программатора PonyProg (см. статью А. Долгого "Разработка и отладка устройств на МК" в "Радио", 200?, № 6, с. 24-26), возникает опасность повреждения интегрированной периферии. И если последовательные порты (СОМ 1, СОМ 2) достаточно защищены, то параллельный порт (LPT 1, он же Centronics) может выйти (и нередко выходит) из строя. Чтобы этого не случилось, можно заменить интегрированную карту параллельного порта самодельной. Кроме того, программы последних лет, использующие порт LPT для подключения внешних устройств, требуют наличия двунаправленного режима. Предлагаемая карта, в отличие от стандартного LPT, реализует этот режим, сохраняя полную с ним совместимость. По приводимой в статье схеме можно переделать на двунаправленный режим старую карту, собранную на микросхемах "мелкой" логики. Ну и, помимо всего прочего, знакомство со схемой, адресами регистров и побитным распределением сигналов в них будет полезно конструкторам самодельных устройств, подключаемых к ПК.

Принципиальная схема карты параллельного порта показана на рис. 1. Микросхема DD1 - буфер шины данных ISA, DD2 - выходной регистр данных, DD3 - порт приема данных, выставленных на розетку XS1.

cif_3o21.gif
Рис. 1

На микросхемах DD4, DD7 и элементе DD9.3 выполнен селектор адреса параллельного порта. Прошивка микросхемы DD7 проста, так как требуется прожечь всего две ячейки: по адресу 0F3h записать 0F1h (т. е. бит по выходу Q0), а по адресу 0F2h - 0F2h (бит по выходу Q1). Остальные ячейки содержат нули. Микросхема DD5 - порт приема сигналов состояния принтера, а DD6 - регистр управления. Необходимо отметить, что в стандартной карте LPT (Standard Parallel Port - SPP) выход Q5 (вывод 7) регистра DD6 не задействован, хотя в большинстве случаев данные на его вход D5 (вывод 6) подаются, а вход ЕО (вывод 1) микросхемы DD2 соединен с общим проводом. В картах LPT для машин серии PS/2 показанное на рис. 1 соединение между выходом Q5 DD6 и входом ЕО DD2 имеется, что превращает карту в двунаправленный порт (Simple Bidirectional Port или PS/2 Port). В этом случае запись лог. 1 в разряд D5 регистра управления переводит DD2 в третье состояние, позволяя внешнему устройству выставлять данные на входы DD3. После системного сброса на всех выходах DD6 нули и карта работает в стандартном режиме.

"Подтягивающие" резисторы R1- R11 и нагрузочные конденсаторы С11-С19 соответствуют стандартному режиму работы LPT (SPP). Для карт, поддерживающих новые скоростные режимы (ЕРР, ЕСР), номиналы будут другими, также как и соединительные кабели.

Микросхема К556РТ11 (DD7) заменима на К556РТ4(К556РТ4А), но в этом случае необходимо ввести "подтягивающие" резисторы сопротивлением 300...510 Ом. При отсутствии ППЗУ можно использовать узел, выполненный по схеме, приведенной на рис. 2.

cif_3o22.gif
Рис. 2

Состояние линии адреса А2 шины ISA селектором в обоих случаях не анализируется так же, как это сделано во многих картах LPT производства Юго-Восточной Азии. Необходимо иметь в виду, что для подключения внешних устройств к системной плате фирмой IBM были выделены адреса от 0100h до 03FFh, и только на платах недавней разработки возможно подключение до 64 К устройств. Если потребуется полный селектор адреса, его схему можно посмотреть в [1], там же описаны сигналы, определяющие выбор дополнительного устройства.

В отличие от типовой схемы, выходные инверторы регистра управления реализованы на элементах микросхемы К155ЛНЗ (DD8), способных коммутировать ток до 40 мА и напряжение до 30 В (разумеется, не одновременно). Если не предполагается подключать периферию с такими параметрами, можно использовать К555ЛН2 (КР1533ЛН2).

Еще одно отличие предлагаемой карты в том, что вместо обычно применяемых буферных элементов К555ЛН1 на входе регистра состояния в данном случае используются триггеры Шмитта К555ТЛ2, что повышает помехоустойчивость при подключении длинных линий. При повторении необходимо обратить внимание на подключение сигнала от принтера АСК (линия 26) непосредственно к входу 5 DD10.2 (в некоторых картах китайского производства эта связь идет через инвертор DD9.4), хотя это не столь существенно, поскольку сигнал прерывания от принтера большинство программ не используют.

Все детали устройства размещают на стандартной макетной плате для шины ISA или на самодельной, размеры которой вместе с печатной вилкой ХР1 приведены в [1]. Автор использовал макетную плату с печатной вилкой стандарта КАМАК, правда, несколько большей длины (излишек отрезан ножовкой). Розетка XS1 - стандартная DRB-25F, выпаянная из неисправной мультикарты, оттуда же взяты и двурядные штыревые соединители PLD с джампером MJ-0 в качестве S1, S2 и конденсаторы, аналогичные отечественным оксидным К50-35 и керамическим КД-2. Вместо К555ИР23 (DD2) удобно использовать КР1533ИР37 с расположением входов и выходов на противоположных сторонах корпуса.

Для проверки собранного устройства можно использовать программы проверки, описанные в [2]. Некоторые из них требуют установки заглушек (loopback plugs) на выходную розетку XS1. Соединения ответной части разъема (вилка DB-25M) для программ NDiags из комплекта Norton Utilities и Checkit приведены соответственно на рис. 3, а и б.

cif_3o23.gif
Рис. 3

Проверка работы карты в двунаправленном режиме проводилась с помощью программы parallel.ехе фирмы Parallel Software (желающие найдут ее на редакционном ftp-сервере в Интернете по адресу: ftp://ftp.paguo.ru/pub/2002/03/lpt. Допустимо проверить карту и с помощью самодельных программ, имея в виду, что адрес регистра данных карты LPT1 - 378Н (278Н), регистра управления - 37АН (27АН), регистра состояния (только чтение) - 379Н (279Н).

В скобках приведены адреса для LPT2. Распределение сигналов по битам для регистра управления (Control Register) указано в табл. 1, для регистра состояния (Status Register) - в табл. 2.

Таблица 1

Бит

DO

D1

D2

D3

D4

D5

Сигнал

STROBE

AUTOLF

INIT

SLCTIN

EIRQ*

ЕIO**


'Сигнал разрешения прерывания, внутренний, на розетку XS1 не выведен. "Сигнал разрешения двунаправленного режима, внутренний, на розетку XS1 не выведен, отсутствует в стандартной карте LPT.

Таблица 2

Бит

D3

D4

D5

D6

D7

Сигнал

ERROR

SLCT

РЕ

АСК

BUSY


Биты, не указанные в таблицах, не используются и должны быть маскированы программно.

В заключение следует отметить, что описанная карта расширяет возможности стандартного параллельного порта, но не добавляет режимов ЕСР и ЕРР, требующих дополнительных регистров. С возможностями, предоставляемыми этими режимами, и их программированием можно ознакомиться в [3].

ЛИТЕРАТУРА

1. Рюмик С. Секреты игрового порта IBM PC. - Радио, 2000, № 1, с. 27-29, 35.
2. Трушин Н. Утилиты для IBM-совместимых компьютеров. - Радио, 2000, № 10, с. 26,27.
3. Долгий А. Программатор микросхем Flash-памяти. - Радио, 2000, № 10, с. 23-25.


Радио 3/2002.