Сигнал
|
Т
|
Конт.
|
Напр.
|
Назначение
|
Strobe
|
0
|
1
|
IN
|
Строб данных. Передаваемые данные
фиксируются по низкому уровню сигнала.
|
D0 ... D7
|
1
|
2-9
|
IN
|
Линии данных (D0 - младший бит).
|
Ack
|
0
|
10
|
OUT
|
Acknowledge – сигнал подтверждения приема байта (запрос на прием следующего). Может использоваться для формирования прерывания.
|
Busy
|
1
|
11
|
OUT
|
ПУ занято. Прием данных возможен только при низком уровне сигнала.
|
PE
|
1
|
12
|
OUT
|
"1" сигнализирует о конце бумаги.
|
Select
|
1
|
13
|
OUT
|
"1" сигнализирует о включении принтера.
|
Auto LF
|
0
|
14
|
IN
|
Автоматический перевод строки Auto Feed Line.
Если "0", то ПУ при получении символа CR (перевод каретки) выполняет функцию LF – перевод строки.
|
Error
|
0
|
32
|
OUT
|
Ошибка ПУ (нет бумаги, нет тонера,
внутренняя ошибка).
|
Init
|
0
|
31
|
IN
|
Инициализация (переход к началу строки, сброс всех параметров на значения по умолчанию).
|
Slct In
|
0
|
0
|
IN
|
Выбор принтера. При "1" ПУ не
воспринимает сигналы интерфейса.
|
GND
|
|
|
–
|
Общий провод.
|
Столбец «T» определяет активный уровень сигнала: «1» – высокий активный уровень, «0» – низкий, столбец «Напр.» – направление передачи по отношению к принтеру: IN – вход, OUT – выход. Сигнал Auto LF практически не применяется, но его неправильное значение может приводить к ошибкам печати.
Обмен данными по интерфейсу Centronics можно описать с помощью временной диаграммы (рис. 46). Для передачи байта данных в ПУ вначале необходимо убедится, что уровень сигнала на линии BUSY равен 0, а уровень сигнала на линии ACK – единице. После этого следует установить код выводимого символа на линиях DATA.
Рис. 46. Временные диаграммы интерфейса Centronics.
Затем не ранее, чем через 0,5 мкс линию STROBE необходимо перевести в состояние логического нуля. При этом выводимый символ запишется во внутренний буфер ПУ. Сигнал STROBE необходимо удерживать в течение как минимум 0,5 мкс. После истечения интервала времени линию STROBE нужно вновь перевести в состояние логической единицы. После этого выходная линия принтера BUSY устанавливается в единицу, сигнализируя о том, что принтер занят обработкой полученного символа и временно не может принимать другие символы.
Когда ПУ полностью обработает выведенный байт данных, линия ACK перейдет в состояние 0. Приблизительно через 5 мкс. после этого линия BUSY также перейдет в состояние 0. Еще через 5 мкс линия ACK примет состояние 1. Теперь ПУ готово принять следующий байт данных.
Если в течение длительного времени (несколько секунд) источник не получает подтверждения ACK, то он принимает решение об ошибке «тайм-аут» устройства. Если после приема байта приемник не готов принимать данные, то он не снимает сигнал Busy. При программной реализации обмена желательно ограничить время ожидания снятия Busy (обычно 30÷45 сек), иначе возможно «зависание» программы.
Do'stlaringiz bilan baham: |