Методические указания по лабораторным работам по курсу «Аппаратные средства компьютерных систем», страница 34

С целью получения практических навыков по разработке и выполнению программ, обрабатывающих ввод с клавиатуры, необходимо самостоятельно составить программу в соответствии с вариантом задания (п. 5.7).

Следует учитывать, что клавиатура — это основное средство связи пользователя с системой. В блоке клавиатуры имеется микропроцессор, который сканирует ее в поиске нажатых клавиш. Кроме того, он контролирует свою линию связи с системой. По этой линии от системы поступают команды управления клавиатурой, а системе передаются коды сканирования и подтверждения.

Двунаправленный обмен данными между системой и клавиатурой означает обмен данными между двумя микроконтроллерами Intel 8042: контроллером клавиатуры (UPI, контроллер универсального периферийного интерфейса), расположенным на системной плате, и процессором клавиатуры — в блоке клавиатуры. Контроллер клавиатуры  управляет определенными системными функциями, интерфейсом клавиатуры, а также обеспечивает чтение информации о конфигурации системы для процедур BIOS.

В данной лабораторной работе рассматривается 101-клавишная клавиатура. Она предоставляет возможность выбора одного из трех режимов работы; для установки режима 1, 2 или 3 необходимо указать процессору клавиатуры команду F0h с байтом конфигурации соответственно 01h, 02h или 03h.

При каждой передаче команды или данных на клавиатуру (табл. 5.1) система требует от нее подтверждения. Клавиатура отвечает системе специальными кодами. Если только система не запретит вывод данных с клавиатуры, последняя дает ответ в течение 20 мс. Если ответ клавиатуры недействителен или содержит ошибку паритета, система повторно посылает ей команду или данные. Двухбайтовые команды требуют особой обработки. Если были переданы и подтверждены команды F3h, F0h или EDh, а также передан байт данных, но ответ оказался недействительным или с ошибкой паритета, то система передаст повторно и команду, и байт данных.

Таблица 5.1 — Команды процессора клавиатуры

Код

Функция

EDh

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

EEh

Эхо (средство диагностики)

F0h

Выбрать альтернативный режим

EFh-F1h

Зарезервированы (холостые команды — NOP)

F2h

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

F3h

Установить частоту/задержку повторения клавиши

F4h

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

F5h

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

F6h

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

F7h-FAh

Установить все клавиши

FBh-FDh

Установить отдельные клавиши

FEh

Послать повторно

FFh

Сброс