Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Адаптеры и контроллеры ЭВМ.docx
Скачиваний:
13
Добавлен:
01.04.2025
Размер:
844.13 Кб
Скачать

60H. Ответные коды клавиатуры на команды помещаются микроконтроллером адаптера в выходной буфер и

доступны для чтения по адресу 60h. При программирование клавиатуры на уровне ее команд необходимо

соблюдать ряд правил:

- передавать код команды через входной буфер адаптера можно только при наличие признака

"Входной буфер пуст" (разряд D1 регистра состояния адаптера клавиатуры установлен в 0);

- ответные коды клавиатуры на команды можно читать из выходного буфера только после установки

адаптером признака "Выходной буфер полон" (разряд D0 регистра состояния адаптера клавиатуры

установлен в 1);

- перед программированием клавиатуры необходимо запретить, при завершение - разрешить

обработку прерывания клавиатуры.

Список команд клавиатуры приведен в табл. 1.10, а ниже - их описание.

Установить индикаторы состояния (EDh)

"Установить индикаторы состояния" (EDh) - это двухбайтовая команда, которая изменяет состояние

светодиодных индикаторов клавиатуры. После получения этой команды клавиатура прекращает

сканирование, возвращает системе код ACK (FAh - код подтверждения) и ожидает от системы байта

конфигурации. Байт конфигурации определяет установку светодиодных индикаторов и имеет следующий

формат:

Бит CL задаст значение индикатора CAPS LOCK (0 - выключен, 1 - включен).

Бит NL управляет значением индикатора NUM LOCK (0 -выключен, 1 - включен).

Бит SL задает значение индикатора SCROLL LOCK (0 - выключен, 1 - включен).

Зарезервированные биты 7-3 должны быть установлены в 0.

После получения байта конфигурации клавиатура устанавливает индикатор состояния, возвращает код

ACK и возобновляет сканирование. Если в то время, когда клавиатура ожидает байт конфигурации,

поступает другая команда, выполнение команды "Установить индикаторы состояния" прекращается и

выполняется новая команда.

Эхо (EEh)

"Эхо" (EEh) используется для диагностирования. После получения этой команды клавиатура

возвращает ответ - "Эхо" (EEh). Обычно команда ЕЕh используется при возникновение ошибок в работе

клавиатуры. Посылка команды ЕЕh после выполнения сброса клавиатуры позволяет определить,

восстановился ли нормальный режим функционирования. Неправильный ответ на эхо-команду означает, что

контроллер клавиатуры "зациклился" и привести систему в нормальное состояние можно только

отключением питания. Выбрать альтернативный режим (F0h)

"Выбрать альтернативный режим" (F0h): клавиатура подтверждает эту двухбайтовую команду, сбрасы-

вает выходной буфер и повторение клавиши. После этого она готовится к приему байта конфигурации,

который задает рабочий режим. Клавиатура подтверждает байт конфигурации, устанавливает новый рабочий

режим и возобновляет сканирование.

Байт конфигурации должен содержать номер устанавливаемого режима клавиатуры (01h - режим 1; 02h

- режим 2 и 03h - режим 3).

Когда система посылает байт конфигурации 00h, клавиатура отвечает кодом подтверждения и посылает

байт конфигурации, указывающий системе текущий режим.

Холостые операции (EFh, F1h)

"Холостые операции" (EFh, F1h): в ответ на такую команду клавиатура посылает код повторной

посылки (FEh), не предпринимая никаких других действий.

Идентификатор расширенной клавиатуры (F2h)

"Идентификатор расширенной клавиатуры" (F2h) - это команда, передаваемая клавиатуре при включе-

нии питания. Клавиатура отвечает кодом ACK, прекращает сканирование, передает два байта идентифика-

тора расширенной клавиатуры: сначала код AВh, а затем код 83h (или другой, например 41h) и возобновляет

сканирование клавиш.

Установить частоту повторения клавиши (F3h)

"Установить частоту повторения клавиши" (F3h) - это двухбайтовая команда, которая изменяет

значения задержки и частоты повторения клавиши. Схема работы этой команды аналогична схеме работы

команды "Установить индикаторы состояния" (EDh).

Как только клавиатура получает команду "Установить частоту повторения клавиши", она прекращает

сканирование и возвращает код ACK. После этого система посылает клавиатуре байт, в котором содержатся

значения частоты повторения и времени задержки. Частота повторения показывает, сколько раз в секунду

повторяется данная клавиша. Время задержки - это время, в течение которого клавиша должна удерживаться

нажатой, прежде чем начнется функция повторения. Клавиатура возвращает код ACK и остается в

предшествующем состоянии сканирования - разрешенном или запрещенном.

Для возобновления сканирования должна быть передана команда "Разрешить клавиатуру" (F4h).

Байт частоты повторения и времени задержки имеет следующий формат: частота повторения (число повторений в секунду) - разряды (4 - 0):

00000=30,0, 01000=15,0, 10000=7,5, 11000=3,7,

00001=26,6, 01001=13,3, 10001=6,7, 11001=3,3,

00010=24,0, 01010=12,0, 10010=6,0, 11010=3,0,

00011=21,8, 01011=10,9, 10011=5,5, 11011=2,7,

00100=20,0, 01100=10,0, 10100=5,0, 11100=2,5,

00101=18,4, 01101=9,2, 10101=4,6, 11101=2,3,

00110=17,1, 01110=8,6, 10110=4,3, 11110=2,1,

00111=16,0, 01111=8,0, 10111=4,0, 11111=2,0;

- время задержки (в миллисекундах) - разряды (6 - 5):

00=250, 01=500, 10=750, 11=1000.

Седьмой разряд всегда должен содержать нуль.

Разрешить клавиатуру (F4h)

Команда "Разрешить клавиатуру" (F4h) разрешает клавиатуре начать сканирование и передачу данных.

После получения этой команды клавиатура возвращает код ACK, сбрасывает выходной буфер и начинает

сканирование.

Запрет по умолчанию (F5h)

"Запрет по умолчанию" (F5h) останавливает сканирование клавиатуры. После получения этой команды

клавиатура возвращает системе код ACK (подтверждение) и:

· устанавливает частоту повторения клавиши и время задержки, принятые по умолчанию;

· прекращает сканирование;

· очищает буфер клавиатуры;

· устанавливает типы клавиш по умолчанию (только для режима 3);

· сбрасывает последнюю повторяемую клавишу;

· ожидает дальнейших команд.

Установить условия по умолчанию (F6h)

По команде "Установить условия по умолчанию" (F6h) клавиатура посылает код ACK и:

· устанавливает частоту повторения клавиши и время задержки, принятые по умолчанию;

· очищает буфер клавиатуры;

· устанавливает типы клавиш по умолчанию (только для режима 3);

· сбрасывает последнюю повторяемую клавишу;

· продолжает сканирование.

Установить все клавиши (F7h, F8h, F9h, FAh)

Установить отдельные клавиши (FBh, FCh, FDh)

По команде "Установить отдельные клавиши" (FBh, FCh, FDh) клавиатура подтверждает получение

этой двухбайтовой команды, устанавливает команду кода отдельной клавиши, очищает выходной буфер,

прекращает сканирование и ожидает байт идентификации клавиши. Идентификация клавиши выполняется с

помощью кода сканирования позиции клавиши, приведенного в табл. 1.12. Клавиатура подтверждает байт

идентификации клавиши, устанавливает новый тип клавиши и ожидает следующей команды. Клавиатура не

возобновляет сканирование, пока система не позволит сделать это посредством команды "Разрешить клави-

атуру" (F4h), что дает возможность одновременной установки нескольких клавиш. Эти команды использу-

ются только в режиме 3. Послать повторно (FEh)

Команда "Послать повторно" (FEh) выдается только после передачи данных с клавиатуры. Клавиатура

отвечает повторной передачей последнего байта, переданного системе. Если последний переданный байт

был RESEND (FEh), клавиатура передает предшествующий ему байт.

Сброс (FFh)

По команде "Сброс" (FFh) клавиатура возвращает системе код ACK. Для того чтобы принять этот код,

система возбуждает линии CLOCK и DATA по меньшей мере на 500 мкс. После передачи кода АСК клави-

атура выполняет внутренний тест (ВАТ) и посылает в систему код завершения теста - значение AAh, если

тест завершился удачно, и FDh, если произошла ошибка. Адаптер программируется в адресном пространстве портов 60h и 64h. Перед записью команды или

данных в порты 60h или 64h необходимо убедиться, что в регистре состояния адаптера установлен указатель

"Входной буфер пуст" (разряд 1 установлен в 0).

Перед чтением данных из порта 60h необходимо проверить регистр состояния, который должен

указывать состояние "Выходной буфер полон" (разряд 0 установлен в 1) или "Выходной буфер мыши полон"

(разряд 5 установлен в 1).

Для чтения данных из выходного буфера адаптера по адресу 60h используется команда IN

микропроцессора. Данные в выходном буфере - это данные от клавиатуры или мыши, если только адаптер

предварительно не получил определенную команду, например 20h - читать командный байт адаптера. В

последнем случае из выходного буфера читается значение текущего командного байта.

Для передачи данных в клавиатуру через входной буфер по адресу 60h используется команда OUT. Все

данные, записываемые во входной буфер по адресу 60h адаптером передаются в клавиатуру, если только

адаптер не получил много байтовую команду, например 60h - записать командный байт. В последнем случае

переданный через порт 60h байт будет записан в регистр командного байта, а не передан в клавиатуру или

мышь. Для передачи данных в манипулятор мышь используется команда D4h - передать мыши байт данных.

После получения этого кода по адресу 64h, адаптер ожидает поступление байта данных во входной буфер по

адресу 60h для передачи его в манипулятор мышь.

Чтобы выдать на клавиатуру много байтовую команду, необходимо ввести первый командный байт в

порт 60h и после положительного ответа клавиатуры (код FAh в порту 60h) ввести второй командный байт

(атрибут) в порт 60h и дождаться ответа от клавиатуры (код FAh в порту 60h).

Для передачи много байтовой команды манипулятору мышь необходимо выполнять аналогичный набор

операций, только перед каждым занесением байта данных по адресу 60h, необходимо по адресу 64h заносить

команду D4h .

Для чтения регистра состояния адаптера используется команда IN (ввод из порта 64h), а чтобы передать

команду в адаптер, используется команда OUT (вывод в порт 64h). Запись по этому адресу указывает, что

следующий байт, записанный в порт 60h, может быть атрибутом команды. Большинство команд. выполняются за один шаг. Однако для выполнения некоторых команд требуется второй шаг, например

чтение или запись портов и регистров 8042.

Для работы с адаптером клавиатуры и PS-Mouse используются следующие команды языка Ассемблер:

IN AL, 64h ;прочитать в аккумулятор AL процессора содержимое регистра состояния 8042

OUT 64h, AL ;вывести команду из AL в 8042

IN AL, 60h ;прочитать в AL данные из порта 60h

OUT 60h, AL ;вывести данные из AL в порт 60h

Перед отсылкой команд и данных в порты 64h и 60h программа должна предварительно убедиться в

том, что входной буфер адаптера пуст и, следовательно, адаптер готов получить байт. Аналогично перед

чтением данных из порта 60h программа должна предварительно убедиться в том, что в выходной буфер

адаптер поместил байт данных. Информацию о состоянии входного и выходного буферов программа может

получить чтением регистра состояния по адресу 64h. Для работы с портами микроконтроллера i8042 используются команды адаптера D1h, D0h, C0h и E0h

(см. табл. 1.2).

Запись в выходной порт.

Для записи в выходной порт необходимо:

· дождавшись освобождения входного буфера передать команду D1h (записать в выходной порт) по

адресу 64h,

· дождавшись освобождения входного буфера передать значение данных для выходного порта по

адресу 60h.

При программировании состояния разряда адресной шины A20 через выходной порт i8042 программа,

использующая определенный режим адресации, должна «убедиться», что разряд Gate A20 установлен на

нужное значение перед тем, как будут продолжены действия программы в выбранном режиме адресации.

Например, некоторые программы разрешают A20 при входе в защищенный режим для доступа в память

выше адреса 100000h. Эти программы перед обращением к этой области памяти должны ждать, пока A20

будет действительно разрешен аппаратно.

Для того чтобы быть уверенным в установке A20 на нужное значение, рекомендуется выдать адаптеру

нулевую команду (FFh) после завершения последовательности команды записи в выходной порт (D1h).

Когда адаптер принимает эту нулевую команду, программа может быть «уверена», что предыдущая команда

(записать в выходной порт) выполнена, и разряд порта Gate A20 установлен аппаратно на требуемое

значение. Контролировать состояние вывода А20 чтением состояния выходного порта i8042 не

рекомендуется, поскольку в компьютерах старше РС/АТ этот разряд всегда показывает значение 1.

Не рекомендуется использовать команду D1 для изменения любого разряда выходного порта, кроме

разряда 1 (Gate A20). Это связано с тем, что изменение состояния разряд 0 выходного порта с 1 на 0 в

компьютерах РС/АТ и вплоть до Pentium 133/166 вызывает сброс системы.

В чипсетах современных компьютеров операция записи в выходной порт выполняется как "холостая"

операция, т.е. никакая информация в регистр выходного порта не записывается, однако фактически

состояние управления линией А20 изменяется в зависимости от значения разряда 1 записываемого в

выходной порт байта. Факт переключения состояния управления линией А20 можно проверить чтением в

реальном режиме адресации содержимого области памяти HYMEM (первые 64 килобайта памяти выше

адреса 100000h) и нижней страницы памяти. Если их содержимое со сдвигом на 16 адресов совпадает, то

линя А20 установлена в 0, если нет, то ее состояние управляется адресным регистром процессора.

Чтение выходного порта.

Чтобы прочитать значение выходного порта i8042, нужно:

· дождавшись освобождения входного и выходного буферов адаптера передать команду D0h

(прочитать выходной порт) по адресу 64h,

· дождавшись заполнения выходного буфера прочесть значение выходного порта по адресу 60h.

Чтение входного порта.

Чтобы прочитать значение входного порта i8042, нужно:

· дождавшись освобождения входного и выходного буферов адаптера передать по адресу 64h

команду C0h (прочитать входной порт),

· дождавшись заполнения выходного буфера прочесть значение входного порта по адресу 60h.

Чтение тестового порта.

Чтобы прочитать значение тестового порта (TEST) микроконтроллера, необходимо:

· дождавшись освобождения входного и выходного буферов адаптера передать по адресу 64h

команду E0h (чтение тестового порта),

· дождавшись заполнения выходного буфера прочитать значение тестового порта по адресу 60h.

  1. Вопрос: Охарактеризуйте правила программирования электронной клавиатуры ПК.

Ответ:

Программирование клавиатуры РС/ХТ заключается в обработке нажатия и отпускания клавиш клави-

атуры, квитирование приема скан-кода по последовательному интерфейсу, а также в запрещение и разреше-

ние интерфейса клавиатуры.

Клавиатура РС/АТ и расширенные клавиатуры подключаются к системе через модифицированный

адаптер клавиатуры и двунаправленный последовательный интерфейс, позволяющие передавать

управляющую информацию в клавиатуру. Поэтому программирование этих клавиатур дополнительно

46

включает в себя процедуры управления адаптером клавиатуры и передачу в клавиатуру кодов команд и их

атрибутов, а также принятие от клавиатуры различных кодов подтверждения, формируемых клавиатурой в

ответ на команды.

1.2.6.1. Обработка нажатия и отпускания клавиш.

Как после нажатия, так и после отпускания клавиши адаптер клавиатуры генерирует аппаратное преры-

вание IRQ1. Обработчик прерывания INT 09h читает из порта 60h байт данных и начинает обработку

нажатия (отпускания) клавиши. Результатом работы INT 09h могут являться

· установка флажков состояния клавиатуры (после отпускания клавиш Caps Lock, Num Lock и пр.);

· включение специальных режимов обработки (после нажатия Alt, Ctrl, Shft и пр.);

· вызов специальных программ - печать экрана, пауза и пр.;

· перевод скан кодов в двухбайтовые коды (ASCII-код и последний байт скан-кода) и занесение их в

буфер клавиатуры, расположенный в оперативной памяти, отведенной для переменных BIOS (таблицы

этих кодов приведены в разделе 1.2.6.4. 9).

1.2.6.1.1. Обработка специальных клавиш

Нажатие одной из клавиш сдвига (Ctrl, Shift, Alt) вызывает изменение статуса сдвигов, при этом

изменяется трансляция других клавиш. Например, нажатие клавиши C при нажатой клавише Shift заставляет

INT 09h интерпретировать ее как заглавную "C", а нажатие Ctrl + C - как прерывание текущей задачи.

Отпускание клавиши сдвига возвращает клавиатуру в нормальное состояние.

Клавиши переключения - Caps Lock, Num Lock. Нажатие этих клавиш вызывает постоянное (до

повторного нажатия) изменение статуса основной (Caps Lock) или цифровой (Num Lock) клавиатуры.

Комбинации клавиш:

· Ctrl-Alt-Del - перезагрузка ПК;

· Shift-PrtSc (или клавиша Print Screen на 101-клавишной клавиатуре) - вызов прерывания INT 05h -

печать копии экрана;

· Ctrl-Num Lock (клавиша Pause на 101-клавишной клавиатуре) - пауза до первого нажатия клавиши;

· Ctrl-Break - генерирование прерывания INT 1Bh и установка разряда 7 в байте 0040:0071h;

· SysRq (или Alt-SysRq на 101-клавишной клавиатуре) - вызов подфункции AH=85h прерывания INT

15h.

1.2.6.2. Программное взаимодействие с клавиатурой

Программное взаимодействие с клавиатурой возможно через порты 60h, 61h и 64h, через обработчик

аппаратного прерывания INT 09h; посредством функций программных прерываний INT 15h и INT 16h,

обрабатываемых BIOS, функций программного прерывания INT 21h, обрабатываемого DOS и средствами

стандартных прикладных программных интерфейсов, например Win32 API в среде современных ОС.

1.2.6.2.1. Работа с клавиатурой через порты ввода-вывода

Доступ к клавиатуре через порты ввода-вывода является самым низкоуровневым методом доступа.

Такой метод используется обычно только прерываниями INT 09h, INT 15h и драйверами клавиатуры.

С помощью порта 61h можно определить, доступна ли клавиатура, и разрешить (запретить) доступ к ней

(только для PC/XT, в PC/AT используются порты 60h и 64h и соответствующие команды адаптера

клавиатуры). Причем, если значение, возвращаемое из порта 61h, содержит в седьмом разряде нуль, то

клавиатура не доступна.

  1. Вопрос: Охарактеризуйте правила программирования LPT порта в режимах SPP, EPP и ECP

Ответ:

Порт параллельного интерфейса был введен в PC для подключения принтера — отсюда и пошло его

название LPT-порт (Line PrinTer — построчный принтер). Традиционный, он же стандартный, LPT-порт (так

называемый SPP-nopm) ориентирован на вывод данных, хотя с некоторыми ограничениями позволяет и

вводить данные. Существуют различные модификации LPT-порта — двунаправленный, ЕРР, ЕСР и другие,

расширяющие его функциональные возможности, повышающие производительность и снижающие нагрузку

на процессор. Поначалу они являлись фирменными решениями отдельных производителей, позднее был

принят стандарт IEEE 1284.

С внешней стороны порт имеет 8-битную шину данных, 5-битную шину сигналов состояния и 4-битную

шину управляющих сигналов, выведенные на разъем-розетку DB-25S. В LPT-порте используются

логические уровни ТТЛ, что ограничивает допустимую длину кабеля из-за невысокой помехозащищенности

ТТЛ-интерфейса. Гальваническая развязка отсутствует — схемная земля подключаемого устройства

соединяется со схемной землей компьютера. Из-за этого порт является уязвимым местом компьютера,

страдающим при нарушении правил подключения и заземления устройств. Поскольку порт обычно

располагается на системной плате, в случае его «выжигания» зачастую выходит из строя и его ближайшее

окружение, вплоть до выгорания всей системной платы.

С точки зрения программного взаимодействия LPT-порт представляет собой набор регистров,

расположенных в пространстве ввода-вывода. Регистры порта адресуются относительно базового адреса

порта, стандартными значениями которого являются 3BCh, 378h и 278h. Порт может использовать линию

запроса аппаратного прерывания, обычно IRQ7 или IRQ5. В расширенных режимах может использоваться и

канал DMA.

Порт имеет системную поддержку на уровне BIOS: поиск установленных портов во время теста POST,

сервисы печати Int 17h и INT 05h и сервисы EPP BIOS.

Практически все современные системные платы (еще начиная с PCI-плат для процессоров i486) имеют

встроенный адаптер LPT-порта. Существуют интерфейсные карты (устройства расширения) ISA с LPT-

портом, где он чаще всего соседствует с парой СОМ-портов, а также с контроллерами дисковых

интерфейсов (FDC+IDE). LPT-порт обычно присутствовал и на видеоадаптерах MDA и HGC. Есть и карты

PCI с дополнительными LPT-портами.

К современным LPT-портам подключают принтеры, плоттеры, сканеры, коммуникационные устройства

и устройства хранения данных, а также электронные ключи, программаторы и прочие устройства. Иногда

параллельный интерфейс используют для связи между двумя компьютерами — получается сеть, «сделанная

на коленке» (Lap Link). Регистры SPP-порта.

Для управления работой порта, определения состояния порта и подключенного к нему устройства а

также программной реализации протокола передачи данных адаптер SPP-порта содержит три 8-битных

регистра, расположенных по соседним адресам в пространстве ввода-вывода, начиная с базового адреса

порта BASE (3BCh, 378h или 278h).

Data Register (DR) — регистр данных, адрес: BASE. Данные, записанные в этот регистр, выводятся на

выходные линии Data[7:0]. Данные, считанные из этого регистра, в зависимости от схемотехники адаптера

соответствуют либо ранее записанным данным, либо сигналам, поступающим на вход порта со стороны

15

внешнего устройства.

Status Register (SR) — регистр состояния (только чтение), адрес: ВАSЕ+1. Регистр отображает 5-

битный порт ввода сигналов состояния принтера и флаг прерывания. Бит SR.7 инвертируется — низкому

уровню сигнала соответствует единичное значению бита в регистре, и наоборот.

Ниже приведено назначение бит регистра состояния (в скобках даны альтернативные названия

разрядов).

· SR. 7 — BUSY (nBusy) - инверсное отображение состояния линии Busy: при низком уровне на

линии устанавливается единичное значения бита — разрешение на вывод очередного байта.

· SR. 6 — ACK (nAck) - отображение состояния линии Ack# .

· SR. 5 — РЕ (РЕггог) - отображение состояния линии Paper End. Единичное значение соответствует

высокому уровню линии, устанавливается при отсутствии бумаги в принтере.

· SR. 4 — Select - отображение состояния линии Select. Единичное значение соответствует высокому

уровню линии — сигналу о включении принтера.

· SR. 3 — Error (nFault) - отображение состояния линии Error# . Нулевое значение соответствует

низкому уровню линии — сигналу о любой ошибке принтера.

· SR. 2—PIRQ - флаг прерывания по сигналу Ack#. Бит обнуляется, если сигнал Ack# вызвал

аппаратное прерывание. Единичное значение устанавливается по аппаратному сбросу и после

чтения регистра состояния.

· SR [1, 0] - зарезервированы.

Control Register (CR) — регистр управления, anpec=BASE+2, допускает запись и чтение. Регистр

связан с 4-битным портом вывода управляющих сигналов (биты 0-3) для которых возможно и чтение;

выходной буфер обычно имеет тип «открытый коллектор». Это позволяет корректно использовать линии

данного регистра как входные при программировании их в высокий уровень. Биты 0, 1, 3 инвертируются.

Ниже приведено назначение бит регистра управления.

· CR [7:6] — зарезервированы.

· CR. 5 — Dir (direction) - бит управления направлением передачи (только для портов PS/2, см. ниже

и в портах, поддерживающих стандарт IEEE 1284). Запись единицы переводит порт данных в

режим ввода. При чтении регистра CR, состояние бита не определено.

· CR. 4— IRQE (ackIntEn) - разрешение прерывания. Единичное значение разрешает прерывание по

спаду сигнала на линии Ack# — сигнал подтверждения приема и запроса следующего байта.

· CR. 3—SELIN (Selectin) - единичное значение бита соответствует низкому уровню на выходе Select

In# - сигналу, разрешающему работу принтера по интерфейсу Centronics.

· CR. 2— INIT (ninit) - нулевое значение бита соответствует низкому уровню на выходе Init# - сигнал

аппаратного сброса принтера.

· СR. 1 — AUTO LF (autofd) - единичное значение бита соответствует низкому уровню на выходе

Auto LF# - сигналу на автоматический перевод строки (LF — Line Feed) по приему байта возврата

каретки (CR). Иногда сигнал и бит называют AutoFD или AutoFDXT.

· CR. 0 — STRB (strobe) - единичное значение бита соответствует низкому уровню на выходе Strobe#

— сигналу стробирования выходных данных.

Запрос аппаратного прерывания (обычно IRQ7 или IRQ5) вырабатывается по отрицательному перепаду

сигнала на выводе 10 разъема интерфейса (Ack#) при установке СR. 4=1. Во избежание ложных прерываний

контакт 10 соединён резистором с шиной +5 В. Прерывание вырабатывается, когда принтер подтверждает

прием предыдущего байта. BIOS это прерывание не использует и не обслуживает. Стандарт на параллельный интерфейс IEEE 1284, принятый в 1994 году, описывает порты SPP, ЕРР и

ЕСР. Стандарт определяет 5 режимов обмена данными, метод согласования режима, физический и

электрический интерфейсы. Согласно IEEE 1284, возможны следующие режимы обмена данными через

параллельный порт:

· Режим совместимости (Compatibility Mode) — однонаправленный (вывод) по протоколу Centronics.

Этот режим соответствует SPP-порту.

· Полубайтный режим (Nibble Mode) — ввод байта в два цикла (по 4 бита), используя для приема

линии состояния. Этот режим обмена подходит для любых адаптеров, поскольку задействует только

возможности стандартного порта.

· Байтный режим (Byte Mode) — ввод байта целиком, используя для приема линии данных. Этот

режим работает только на портах, допускающих чтение выходных данных (Bi-Directional или PS/2 Type