Аппаратные интерфейсы ПК | страница 13



10Ack#ISR.6PtrClk. Низкий уровень означает готовность тетрады, высокий — ответ на сигнал HostBusy
11BusyISR.7Прием бита данных 3, затем бита 7
12РЕISR.5Прием бита данных 2, затем бита 6
13SelectISR.4Прием бита данных 1, затем бита 5
15Error#ISR.3Прием бита данных 0, затем бита 4

Рис. 1.1. Прием данных в полубайтном режиме

Прием байта данных в полубайтном режиме состоит из следующих фаз:

1. Хост сигнализирует о готовности приема данных установкой низкого уровня на линии >HostBusy.

2. ПУ в ответ помещает тетраду на входные линии состояния.

3. ПУ сигнализирует о готовности тетрады установкой низкого уровня на линии >PtrClk.

4. Хост устанавливает высокий уровень на линии HostBusy, указывая на занятость приемом и обработкой тетрады.

5. ПУ отвечает установкой высокого уровня на линии >PtrClk.

6. Шаги 1–5 повторяются для второй тетрады.

Полубайтный режим сильно нагружает процессор, и поднять скорость обмена выше 50 Кбайт/с не удается. Безусловное его преимущество в том, что он работает на всех портах. Его применяют в тех случаях, когда поток данных невелик (например, для связи с принтерами). Однако при связи с адаптерами локальных сетей, внешними дисковыми накопителями и CD-ROM прием больших объемов данных требует изрядного терпения со стороны пользователя.

1.3.2. Двунаправленный байтный режим — Byte Mode

В этом режиме данные принимаются с использованием двунаправленного порта, у которого выходной буфер данных может отключаться установкой бита >CR.5=1. Как и предыдущие, режим является программно-управляемым — все сигналы квитирования анализируются и устанавливаются драйвером. Сигналы порта описаны в табл. 1.3, временные диаграммы — на рис. 1.2.


Таблица 1.3. Сигналы LPT-порта в байтном режима ввода-вывода

КонтактСигнал SPPИмя в байтном режимеI/OБитОписание
1Strobe#HostClkOCR.0\Импульс (низкого уровня) подтверждает прием байта в конце каждого цикла
14AutoFeed#HostBusyОCR.1\Сигнал квитирования. Низкий уровень означает готовность хоста принять байт; высокий уровень устанавливается по приему байта
17SelectIn#1284ActiveОCR.3\Высокий уровень указывает на обмен в режиме IEEE 1284 (в режиме SPP уровень низкий)
16Init#Init#OCR.2Не используется; установлен высокий уровень
10Ack#PtrClkISR.6Устанавливается в низкий уровень для индикации действительности данных на линиях Data[0:7]. В низкий уровень устанавливается в ответ на сигнал HostBusy
11BusyPtrBusyISR.7\Состояние занятости прямого канала
12PEAckDataReq¹