Стандарт определяет способ, по которому ПО может определить режим, доступный и хосту (PC), и периферийному устройству (или присоединенному второму компьютеру). Режимы нестандартных портов, реализующих протокол обмена Centronics аппаратно (
В компьютерах с LPT-портом на системной плате режим — SPP, EPP, ECP или их комбинация — задается в BIOS Setup. Режим совместимости полностью соответствует SPP-порту. Остальные режимы подробно рассмотрены ниже.
При описании режимов обмена фигурируют следующие понятия:
♦
♦
♦
♦
♦
1.3.1. Полубайтный режим ввода — Nibble Mode
Полубайтный режим предназначен для двунаправленного обмена и может работать на всех стандартных портах. Порты имеют Ack#
, вызывающий прерывание, которое может использоваться в данном режиме, соответствует биту 6 регистра состояния, что усложняет программные манипуляции с битами при сборке байта. Сигналы порта приведены в табл. 1.2, временные диаграммы — на рис. 1.1.
Таблица 1.2. Сигналы LPT-порта в полубайтном режиме ввода
Контакт | Сигнал SPP | I/O | Бит | Описание |
---|---|---|---|---|
14 | AutoFeed# | O | CR.1\ | HostBusy — сигнал квитирования. Низкий уровень означает готовность к приему тетрады, высокий подтверждает прием тетрады |
17 | SelectIn# | O | CR.3\ | Высокий уровень указывает на обмен в режиме IEEE 1284 (в режиме SPP уровень низкий) |
10 | Ack# | I | SR.6 | PtrClk. Низкий уровень означает готовность тетрады, высокий — ответ на сигнал HostBusy |
11 | Busy | I | SR.7 | Прием бита данных 3, затем бита 7 |
12 | РЕ | I | SR.5 | Прием бита данных 2, затем бита 6 |
13 | Select | I | SR.4 | Прием бита данных 1, затем бита 5 |
15 | Error# | I | SR.3 | Прием бита данных 0, затем бита 4 |
Рис. 1.1. Прием данных в полубайтном режиме
Прием байта данных в полубайтном режиме состоит из следующих фаз:
1. Хост сигнализирует о готовности приема данных установкой низкого уровня на линии HostBusy
.
2. ПУ в ответ помещает тетраду на входные линии состояния.
3. ПУ сигнализирует о готовности тетрады установкой низкого уровня на линии PtrClk
.
4. Хост устанавливает высокий уровень на линии HostBusy, указывая на занятость приемом и обработкой тетрады.
5. ПУ отвечает установкой высокого уровня на линии PtrClk
.
6. Шаги 1–5 повторяются для второй тетрады.
Полубайтный режим сильно нагружает процессор, и поднять скорость обмена выше 50 Кбайт/с не удается. Безусловное его преимущество в том, что он работает
1.3.2. Двунаправленный байтный режим — Byte Mode
В этом режиме данные принимаются с использованием двунаправленного порта, у которого выходной буфер данных может отключаться установкой бита CR.5
=1. Как и предыдущие, режим является программно-управляемым — все сигналы квитирования анализируются и устанавливаются драйвером. Сигналы порта описаны в табл. 1.3, временные диаграммы — на рис. 1.2.
Таблица 1.3. Сигналы LPT-порта в байтном режима ввода-вывода