CR
) — регистр управления, адрес=ВАSЕ+2
, допускает запись и чтение. Регистр связан с Ниже описано назначение бит регистра управления.
♦ CR[7:6]
♦ CR.5
Direction
— бит управления направлением передачи (только для портов PS/2, см. ниже). Запись единицы переводит порт данных в режим ввода. При чтении состояние бита не определено.♦ CR.4
AckINTEN
(Ack Interrupt Enable) — единичное значение разрешает прерывание по спаду сигнала на линии Ack#
— сигнал запроса следующего байта.♦ CR.3
Select In
— единичное значение бита соответствует низкому уровню на выходе Select In#
(17) — сигналу, разрешающему работу принтера по интерфейсу ♦ CR.2
Init
— нулевое значение бита соответствует низкому уровню на выходе Init#
(16) — сигнал аппаратного сброса принтера.♦ CR.1
Auto LF
— единичное значение бита соответствует низкому уровню на выходе Auto LF#
(14) — сигналу на автоматический перевод строки (LF — Line Feed) по приему байта возврата каретки (CR). Иногда сигнал и бит называют AutoFD
или AutoFDXT
.♦ CR.0
Strobe
— единичное значение бита соответствует низкому уровню на выходе Strobe#
(1) — сигналу стробирования выходных данных.IRQ7
или IRQ5
) вырабатывается по отрицательному перепаду сигнала на выводе 10 разъема интерфейса (Ack#
) при установке CR.4=1
. Во избежание ложных прерываний контакт 10 соединен резистором с шиной +5 В. Прерывание вырабатывается, когда принтер подтверждает прием предыдущего байта. Как уже было сказано, BIOS это прерывание не использует и не обслуживает.Перечислим шаги процедуры вывода байта по интерфейсу Centronics с указанием требуемого количества шинных операций процессора.
1. Вывод байта в регистр данных (1 цикл IOWR#
2. Ввод из регистра состояния и проверка готовности устройства (бит SR.7
Busy
). Этот шаг зацикливается до получения готовности или до срабатывания программного тайм-аута (минимум 1 цикл IORD#
).3. По получению готовности выводом в регистр управления устанавливается строб данных, а следующим выводом строб снимается. Обычно, чтобы переключить только один бит (строб), регистр управления предварительно считывается, что к двум циклам IOWR#
IORD#
.Видно, что для вывода одного байта требуется 4–5 операций ввода-вывода с регистрами порта (в лучшем случае, когда готовность обнаружена по первому чтению регистра состояния). Отсюда вытекает главный недостаток вывода через стандартный порт — невысокая скорость обмена при значительной загрузке процессора. Порт удается разогнать до скоростей 100–150 Кбайт/с при полной загрузке процессора, что недостаточно для печати на лазерном принтере. Другой недостаток функциональный — сложность использования в качестве порта ввода.
Стандартный порт асимметричен — при наличии 12 линий (и бит), нормально работающих на вывод, на ввод работает только 5 линий состояния. Если необходима симметричная двунаправленная связь, на всех стандартных портах работоспособен