| 17 | SelectIn# | 1284Active | O | Высокий уровень указывает на обмен в режиме IEEE 1284 (в режиме SPP уровень низкий) |
| 16 | Init# | ReverseRequest# | O | Запрос реверса. Низкий уровень сигнализирует о переключении канала на передачу в обратном направлении |
| 10 | Ack# | PeriphClk | I | Строб данных, используется в паре с HostAck для передачи в обратном направлении |
| 11 | Busy | PeriphAck | I | Используется как сигнал подтверждения в паре с HostClk для передачи в прямом направлении. Индицирует тип команда/данные при передаче в образном направлении |
| 12 | PaperEnd | AckReverse# | I | Подтверждение реверса. Переводится в низкий уровень в ответ на ReverseRequest# |
| 13 | Select | Xflag¹ | I | Флаг расширяемости |
| 15 | Error# | PeriphRequest#¹ | I | Устанавливается ПУ для указания на доступность (наличие) обратного канала передачи¹ |
| 2-9 | Data [0:7] | Data [0:7] | I/O | Двунаправленный канал данных |
¹ Сигналы действуют в последовательности согласования (см. ниже)
Адаптер ECP тоже генерирует внешние протокольные сигналы квитирования аппаратно, но его работа существенно отличается от режима EPP.
На рис. 1.5, HostAck: в цикле данных — высокий, в командном цикле — низкий. В командном цикле байт может содержать
Рис. 1.5. Передача в режиме ECP:
В отличие от диаграмм обмена EPP, на рис. 1.5 не приведены сигналы циклов системной шины процессора. В данном режиме обмен программы с ПУ разбивается на два относительно независимых процесса, которые связаны через FIFO-буфер. Обмен драйвера с FIFO-буфером может осуществляться как с использованием DMA, так и программного ввода-вывода. Обмен ПУ с буфером аппаратно выполняет адаптер ECP. Драйвер в режиме ЕСР не имеет информации о точном состоянии процесса обмена, но обычно важно только то, завершен он или нет.
1. Хост помещает данные на шину канала и устанавливает признак цикла данных (высокий уровень) или команды (низкий уровень) на линии HostAck.
2. Хост устанавливает низкий уровень на линии HostClk, указывая на действительность данных.
3. ПУ отвечает установкой высокого уровня на линии PeriphAck.
4. Хост устанавливает высокий уровень линии HostClk, и этот перепад может использоваться для фиксации данных в ПУ.
5. ПУ устанавливает низкий уровень на линии PeriphAck для указания на готовность к приему следующего байта.
Поскольку передача в ЕСР происходит через FIFO-буферы, которые могут присутствовать на обеих сторонах интерфейса, важно понимать, на каком этапе данные можно считать переданными. Данные считаются HostClk переходит в высокий уровень. В этот момент модифицируются счетчики переданных и принятых байт. В протоколе ЕСР
