Параллельный порт
Основной адрес параллельного порта (далее "БАЗА") - 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=вывод):