Linux mini-HOWTO

Параллельный порт


Основной адрес параллельного порта (далее "БАЗА") - 0x3bc для /dev/lp0, 0x378 для /dev/lp1 и 0x278 для /dev/lp2. Если вы хотите управлять чем-то вроде обычного принтера, см. Printing-HOWTO.

В дополнение к стандартному режиму только вывода, описываемому ниже, в большинстве параллельных портов существует `расширенный' двунаправленный режим. Для дополнительной информации по этому и более новому режиму ECP/EPP (и стандарт IEEE 1284 в общих чертах), см. http://www.fapo.com/ и http://www.senet.com.au/~cpeacock/parallel.htm. Только помните, что вы не можете в ваших программах использовать IRQ и DMA, и для использования ECP/EPP. Вам скорее всего придется написать свой драйвер ядра; хотя, я думаю, что кто-нибудь уже написал его.

Порт БАЗА+0 (Порт данных) соответственно управляет сигналами данных на параллельном порту (от D0 до D7 для битов от 0 до 7, соответствуют значения: 0 = 0В, 1 = 5В). Запись в этот порт устанавливает соответствующие уровни напряжения на контактах разъема принтера. При чтении возвращается последнее записанное значение в стандартном или расширенном режиме записи, или данные на разъеме от другого устройства в расширенном режиме чтения.

Порт БАЗА+1 (Порт состояния) предназначен только для чтения и возвращает следующие входные сигналы:

  • Биты 0 и 1 зарезервированы.

  • Бит 2 состояние IRQ (его нет на разъеме и я не знаю как он работает)

  • Бит 3 ERROR (1=ОШИБКА)

  • Бит 4 SLCT (1=ВЫБОР)

  • Бит 5 PE (1=ГОТОВ)

  • Бит 6 ACK (1=ПОДТВЕРЖДЕНИЕ)

  • Бит 7 -BUSY (0=ЗАНЯТ)

(Я не уверен насчет их значений)

Порт БАЗА+2 (Порт управления) предназначен только для записи (чтение возвращает последнее записанное значение) и управляет следующими сигналами:

  • Bit 0 -STROBE (0=СТРОБ)

  • Бит 1 AUTO_FD_XT (1=АВТО_ПЕРЕВОД_СТРОКИ)

  • Бит 2 -INIT (0=СБРОС)

  • Бит 3 SLCT_IN (1=ВЫБРАН)

  • Бит 4 включает IRQ параллельно порта (которое возникает при изменении ACK с нуля на еденицу) (1=IRQ включено).

  • Бит 5 управляет направлением работы порта в расширенным режиме (0 = запись, 1 = чтение) и предназначен только для записи (чтение не возвращает ничего полезного).

  • Биты 6 и 7 зарезервированы.

(Опять же, я не уверен насчет этих значений)

Разводка (25-разъемный разъем (мама)) (i=ввод, o=вывод):



Содержание раздела