Интерфейсы периферийных устройств. Ключев А.О - 170 стр.

UptoLike

169
1. Вывод байта в регистр данных (1 цикл IOWR#).
2. Ввод из регистра состояния и проверка готовности устройства (сигнал
Busy). Этот шаг зацикливается до получения готовности или до
срабатывания программного тайм-аута (минимум 1 цикл IORD#).
3. По получению готовности выводом в регистр управления
устанавливается строб данных, а следующим выводом строб снимается.
Обычно, чтобы
переключить только один бит (строб), регистр
управления предварительно считывается, что к двум циклам IOWR#
добавляет еще один цикл IORD#.
Видно, что для вывода одного байта требуется 4-5 операций ввода-вывода с
регистрами порта (в лучшем случае, когда готовность обнаружена по первому
чтению регистра состояния). Отсюда вытекает главный недостаток вывода
через стандартный портневысокая скорость
обмена при значительной
загрузке процессора. Порт удается разогнать до скоростей 100-150 Кбайт/с при
полной загрузке процессора, что недостаточно для печати на лазерном
принтере. Другой недостаток функциональныйсложность использования в
качестве порта ввода.
Все перечисленные недостатки помог решить стандарт на параллельный
интерфейс IEEE 1284, принятый в 1994 году. Он определяет 5 режимов обмена
данными, метод
согласования режима, физический и электрический
интерфейсы. Согласно IEEE 1284, возможны следующие режимы обмена
данными через параллельный порт:
Режим совместимости (Compatibility Mode) – однонаправленный (вывод)
по протоколу Centronics. Этот режим соответствует SPP-порту.
Полубайтный режим (Nibble Mode) – ввод байта в два цикла (по 4 бита),
используя для приема линии состояния. Этот режим обмена подходит
для любых адаптеров, поскольку задействует только
возможности
стандартного порта.
Рис. 98. Передача данных в Nibble Mode.
Байтный режим (Byte Mode) – ввод байта целиком, используя для
приема линии данных. Этот режим работает только на портах,
допускающих чтение выходных данных (Bi-Directional или PS/2 Туре 1).