Согласование режимов IEEE
ПУ в стандарте IEEE 1284 обычно не требуют от контроллера реализации всех предусмотренных этим стандартом режимов. Для определения режимов и методов управления конкретным устройством стандарт предусматривает последовательность согласования (negotiation sequence). Последовательность построена так, что старые устройства, не поддерживающие IEEE 1284, на нее не ответят, и контроллер останется в стандартном режиме. Периферия IEEE 1284 может сообщить о своих возможностях, и контроллер установит режим, удовлетворяющий и хост, и ПУ.
Во время фазы согласования контроллер выставляет на линии данных байт расширяемости (extensi bi 1 i ty byte), запрашивая подтверждение на перевод интерфейса в требуемый режим или прием идентификатора ПУ (табл. 1.9). Идентификатор передается контроллеру в запрошенном режиме (любой режим обратного канала, кроме ЕРР). ПУ использует сигнал Xflag (Select в терминах SPP) для подтверждения запрошенного режима обратного канала, кроме полубайтного, который поддерживается всеми устройствами IEEE 1284. Бит Extensibility Link request послужит для определения дополнительных режимов в будущих расширениях стандарта.
1.3. Стандарт IEEE 1284
37
Таблица 1.9. Биты в байте расширяемости

Допустимые комбинации бит [7:0]

6 Запрос режима ЕРР 0100 0000
5 Запрос режима ЕСР с RLE 00110000
4 Запрос режима ЕСР без RLE 00010000
3 Зарезервировано 00001000
2 Запрос идентификатора устройства с ответом в режиме:
полубайтный 0000 0100
байтный 0000 0101
ЕСР 6e3 RLE 00010100
ЕСРсRLE 00110100
1 Зарезервировано 0000 0010 .
0 Запрос полубайтного режима 0000 0001
попе Запрос байтного режима 0000 0000

1. Хост выводит байт расширяемости на линии данных.
2. Хост устанавливает высокий уровень сигнала Selectln* и низкий — AutoFeed*, что означает начало последовательности согласования.
3. ПУ отвечает установкой низкого уровня сигнала Ack# и высокого — Error*,
PaperEnd и Select. Устройство, «не понимающее» стандарта 1284, ответа не
даст, и дальнейшие шаги не выполнятся.

38_____________________________ Глава 1. Параллельный интерфейс — LPT-порт
4. Хост устанавливает низкий уровень сигнала Strobe* для записи байта расширяемости в ПУ.
5. Хост устанавливает высокий уровень сигналов Strobe* и AutoLF*.
6. ПУ отвечает установкой в низкий уровень сигналов PAperEnd и Error*, если ПУ имеет обратный канал передачи данных. Если запрошенный режим поддерживается устройством, на линии Select устанавливается высокий уровень, если не поддерживается — низкий.
7. ПУ устанавливает высокий уровень на линии Ack# для указания на завершение последовательности согласования, после чего контроллер задает требуемый режим работы.