Раздел: Документация
0 1 2 3 4 5 6 7 ... 131 ные адаптеры часто имеют в выходной цепи согласующий резистор с сопротивлением до 50 Ом. Выходной ток короткого замыкания выхода на землю обычно не превышает 30 мА. Простой расчет показывает, что в случае короткого замыкания контакта разъема на землю при выводе «единицы» на этом резисторе падает напряжение 1,5 В, что входной схемой приемника будет воспринято как «единица». Так что такой способ ввода не будет работать на всех компьютерах. На некоторых адаптерах портов выходной буфер отключается перемычкой на плате. Тогда порт превращается в обыкновенный порт ввода. Status Register (SR) — регистр состояния; представляет собой 5-битный порт ввода сигналов состояния принтера (биты SR.4-SR.7), адрес=ВАЭЕ+1. Бит SR.7инвертируется — низкому уровню сигнала соответствует единичное значение бита в регистре, и наоборот. Назначение бит регистра состояния (в скобках даны номера контактов разъема): s SR. 7 — Busy — инверсные отображения состояния линии Busy (И): при низком уровне на линии устанавливается единичное значения бита — разрешение на вывод очередного байта. ш SR. 6 —Аск (Acknowledge) — отображения состояния линии Аск# (10). ш SR.5 — РЕ (Paper End) — отображения состояния линии Paper End (12). Единичное значение соответствует высокому уровню линии — сигналу о конце бумаги в принтере. $ SR.4 — Select — отображения состояния линии Select (13). Единичное значение соответствует высокому уровню линии — сигналу о включении принтера. л SR.3 — Error — отображения состояния линии Error (15). Нулевое значение соответствует низкому уровню линии — сигналу о любой ошибке принтера. * SR. 2 — PIRQ — флаг прерывания по сигналу Аск# (только для порта PS/2). Бит обнуляется, если сигнал Аск# вызвал аппаратное прерывание. Единичное значение ус- танавливается по аппаратному сбросу и после чтения регистра состояния. SR[1:0] — зарезервированы. Control Register (CR) — регистр управления, anpec=BASE+2. Как и регистр данных, этот 4-битный порт вывода допускает запись и чтение (биты 0-3), но его выходной буфер обычно имеет тип «открытый коллектор». Это позволяет корректно использовать линии данного регистра как входные при программировании их в высокий уровень. Биты 0, 1, 3 инвертируются. Назначение бит регистра управления: »< CR[7:6] — зарезервированы. & CR. 5 — Direction — бит управления направлением передачи (только для портов PS/2). Запись единицы переводит порт данных в режим ввода. При чтении состояние бита не определено. » CR.4 — AcklntEn (Ack Interrupt Enable) — единичное значение разрешает прерывание по спаду сигнала на линии Аск# — сигнал запроса следующего байта. ш CR.3 — Select In — единичное значение бита соответствует низкому уровню на выходе Select ln# (17) — сигналу, разрешающему работу принтера по интерфейсу Centronics. ш CR.2 — Init — нулевое значение бита соответствует низкому уровню на выходе lnit# (16) — сигналу аппаратного сброса принтера. ш CR. 1 — Auto LF — единичное значение бита соответствует низкому уровню на выходе Auto LF# (14) — сигналу на автоматический перевод строки (JLF — Line Feed) по приему байта возврата каретки (CR). Иногда сигнал и бит называют AutoFD или AutoFDXT. * CR.0 — Strobe — единичное значение бита соответствует низкому уровню на выходе Strobe* (1) — сигналу стро-бирования выходных данных. Запрос аппаратного прерывания (обычно IRQ7 или IRQ5) вырабатывается по отрицательному перепаду сигнала на выводе 10 разъема интерфейса (Аск#) при установке CR.4=i. Во избежание ложных прерываний контакт 10 соединен резистором с шиной +5 В. Прерывание вырабатывается, когда принтер подтверждает прием предыдущего байта. Как уже было сказано, BIOS это прерывание не использует и не обслуживает. Процедура вывода байта по интерфейсу Centronics включает следующие шаги (в скобках приведено требуемое количество шинных операций процессора): ш Вывод байта в регистр данных (1 цикл IOWR#). « Ввод из регистра состояния и проверка готовности устройства (бит SR. 7 — сигнал Busy). Этот шаг зацикливается до получения готовности или до срабатывания программного тайм-аута (минимум 1 цикл IORD#). ш По получении готовности выводом в регистр управления устанавливается строб данных, а следующим выводом строб снимается (2 цикла IOWR#). Обычно, чтобы переключить только один бит (строб), регистр управления предварительно считывается, что добавляет еще один цикл IORD#. Видно, что для вывода одного байта требуется 4-5 операций ввода/вывода с регистрами порта (в лучшем случае, когда готовность обнаружена по первому чтению регистра состояния). Отсюда вытекает главный недостаток вывода через стандартный порт — невысокая скорость обмена при значительной загрузке процессора. Порт удается разогнать до скоростей 100-150 Кбайт/с при полной загрузке процессора, что недостаточно для печати на лазерном принтере. Другой недостаток — функциональный — сложность использования в качестве порта ввода. Стандартный порт асимметричен — при наличии 12 линий (и бит), нормально работающих на вывод, на ввод работают только 5 линий состояния. Если необходима симметричная двунаправленная связь, на всех стандартных портах работоспособен режим полубайтного обмена — Nibble Mode. В этом режиме, называемом также Hewlett Packard Bitronics, одновременно передаются 4 бита данных, пятая линия используется для квитирования. Таким образом, каждый байт передается за два цикла, а каждый цикл требует по крайней мере 5 операций ввода/вывода. 0 1 2 3 4 5 6 7 ... 131
|