СигналI/O¹КонтактНазначение
Strobe#I1Строб данных. Данные фиксируются по низкому уровню сигнала
Data [0:7]I2-9Линии данных. Data 0 (контакт 2) — младший бит
Ack#O10Acknowledge — импульс подтверждения приема байта (запрос на прием следующего). Может использоваться для формирования запроса прерывания
BusyO11Занято. Прием данных возможен только при низком уровне сигнала
PaperEndO12Высокий уровень сигнализирует о конце бумаги
SelectO13Сигнализирует о включении принтера (обычно в принтере соединяется резистором с цепью + 5 В)
Auto LF#I14Автоматический перевод строки. При низком уровне принтер, получив символ CR (Carriage Return — возврат каретки), автоматически выполняет и функцию LF (Line Feed — перевод строки)
Error#O32Ошибка: конец бумаги, состояние OFF-Line или внутренняя ошибка принтера
Init#I31Инициализация: сброс в режим параметров умолчания, возврат к началу строки и страницы
Select In#I36Выбор принтера (низким уровнем). При высоком уровне принтер не воспринимает остальные сигналы интерфейса
GND-19-30, 33Общий провод интерфейса

¹ I/O задает направление (вход или выход) применительно к принтеру.

Рис. 8.5. Передача данных по протоколу Centronics

Передача данных начинается с проверки готовности принтера — состояния линии Busy. Строб данных может быть коротким — доли микросекунды, и порт заканчивает его формирование, не обращая внимания на сигнал Busy. Во время строба данные должны быть действительными. Подтверждением приема байта (символа) является сигнал Ack#, который вырабатывается после приема строба через неопределенное время (за это время принтер может выполнять какую-либо длительную операцию, например прогон бумаги). Импульс Ack# является запросом принтера на прием следующего байта, его задействуют для формирования сигнала прерывания от порта принтера. Если прерывания не используются, то сигнал Ack# игнорируется и весь обмен управляется парой сигналов Strobe# и Busy. Свое состояние принтер может сообщить порту по линиям Select, Error#, PaperEnd — по ним можно определить, включен ли принтер, исправен ли он и есть ли бумага. Формированием импульса на линии Init# принтер можно проинициализировать (при этом он очистит и весь свой буфер данных). Режимом автоматического перевода строки, как правило, не пользуются, и сигнал AutoLF# имеет высокий уровень. Сигнал SelectIn# позволяет логически отключать принтер от интерфейса.

Через параллельный порт (LPT) протокол Centronics может быть реализован чисто программно, используя стандартный режим порта (SPP), достигая скорости передачи до 150 Кбайт/с при полной загрузке процессора. Благодаря «продвинутым» режимам порта протокол может быть реализован и аппаратно (Fast Centronics), при этом скорость до 2 Мбайт/с достигается при меньшей загрузке процессора.

Большинство современных принтеров с параллельным интерфейсом поддерживают и стандарт IEEE 1284, в котором оптимальным режимом передачи является ECP (см. п. 1.3.4).

Перейти на страницу:

Все книги серии Наиболее полное и подробное руководство

Похожие книги