Примечание:
столбец "Т" — активный уровень сигнала: "1" — высокий активный уровень, "0" — низкий активный уровень. Столбец "Напр." — направление передачи по отношению к принтеру: I — Input (вход), О — Output (выход).Сигнал Auto LF практически не применяется, но его неправильное значение приводит к тому, что принтер либо делает пропуски строк, либо печатает строки поверх друг друга, либо дублирует строки при печати в два прохода.
Отечественным аналогом интерфейса Centronics является ИРПР-М. Кроме него существует интерфейс ИРПР (устаревший), который отличается протоколом обмена, отсутствием сигнала "Error" и инверсией линий данных. Кроме того, ко всем входным линиям ИРПР подключены пары согласующих резисторов: 220 Ом к +5 В и 330 Ом к общему проводу. Это перегружает большинство интерфейсных адаптеров современных ПК.
Рис. 1.
Протокол обмена данными по интерфейсу Centronics приведен на рис. 1. Передача начинается с проверки источником сигнала ERROR. Если он установлен, то обмен не производится. Затем проверяется состояние сигнала BUSY. Если он равен "0", то источник приступает к передаче байта данных. Для передачи байта источник выставляет на линии D0-D7 байт данных и выдает сигнал STROBE#. Приемник по сигналу STROBE# (здесь и далее по тексту значок "#" после названия сигнала является признаком того, что сигнал имеет низкий активный уровень) читает данные с шины данных и выставляет сигнал Busy на время его обработки. По окончании обработки приемник выдает сигнал ACK# и снимает сигнал BUSY. Если в течение длительного времени (6-12 сек) источник не получает АСК#, то он принимает решение о ошибке "тайм-аут" (time-out) устройства. Если после приема байта приемник по какой-либо причине не готов принимать данные, то он не снимает сигнал BUSY. При программной реализации обмена по указанному протоколу желательно ограничить время ожидания снятия BUSY (обычно 30–45 сек), иначе возможно зависание программы.
Стандартный параллельный порт называется SPP (Standard Parallel Port). SPP порт является однонаправленным, на его базе программно реализуется протокол обмена Centronics. Порт обеспечивает возможность генерации IRQ по импульсу ACK# на входе. Сигналы порта выводятся на стандартный разъем DB-25S (розетка), который размещен непосредственно на плате адаптера или соединяется с ним плоским шлейфом (в случае, если адаптер интегрирован с материнской платой).
Названия сигналов соответствуют названиям сигналов интерфейса Centronics (таблица 2), а изображение разъема интерфейсного адаптера со стороны компьютера приведено на рис. 2.
Примечание
. I/O — направление передачи: I — вход; О — выход; 0(1) — выход, состояние которого может быть считано при определенных условиях, 0/1 — выходные линии, состояние которых читается при чтении из соответствующих регистров порта. * — Вход ACK# соединен с питанием +5 В через резистор 10 кОм. Это сделано для исключения ложных прерываний, т. к. прерывание генерируется по отрицательному перепаду сигнала на входе ACK#.Рис. 2.
В качестве недостатков стандартного LPT порта (SPP) следует отметить невысокую скорость передачи данных (100–150 кВ/сек), загрузку процессора при передаче данных, невозможность двунаправленного побайтного обмена. Существует "радиолюбительская" методика двунаправленного обмена, которая состоит в том, что для ввода данных на линии D0-D7 выставляют "1", а в качестве передатчика используют микросхемы с открытым коллектором, которые при открытом транзисторе могут "подсаживать" напряжение логической единицы до уровня порядка 1.5–1.7 В. Ток ограничен на уровне 30 мА. Как очевидно из уровней сигналов, они не соответствуют уровням ТТЛ, поэтому многие порты не работают в таком режиме или работают нестабильно. Кроме того, такой способ может быть опасен для адаптера порта, который будет работать с предельными для него токами.
Стандарт IEEE 1284, принятый в 1994 году, определяет термины SPP, ЕРР и ЕСР. Стандарт определяет 5 режимов обмена данными, метод согласования режима, физический и электрический интерфейсы. Согласно IEEE 1284, возможны следующие режимы обмена данными через параллельный порт: