В компьютерах типа AT последовательный интерфейс клавиатуры подключен к специальному контроллеру клавиатуры на системной плате. В качестве такого контроллера используется микросхема 8042 универсального интерфейса периферийных устройств (Universal Peripheral Interface — UPI). Этот микроконтроллер фактически является еще одним процессором со встроенными ROM емкостью 2 Кбайт и RAM на 128 байт. Существует версия с микроконтроллером 8742, в котором используется микросхема EPROM; такой микроконтроллер позволяет стирать информацию и записывать ее заново. В комплекты ROM для модернизации старых системных плат входили и новые микросхемы контроллеров клавиатуры, поскольку в них есть свои микросхемы ROM, которые тоже должны быть модифицированы. В некоторых компьютерах можно использовать микросхемы 8041 и 8741, которые отличаются только емкостью встроенной памяти.
В системах AT микроконтроллер, установленный в клавиатуре (типа 8048), пересылает данные в контроллер клавиатуры (типа 8042) на системной плате; возможна также передача данных в обратном направлении. Когда контроллер на системной плате принимает данные от клавиатуры, он выдает запрос по цепи IRQ 1 и передает данные главному процессору через порт ввода-вывода с адресом 60h (как и в PC/XT). Играя роль посредника между клавиатурой и главным процессором, контроллер клавиатуры типа 8042 может также преобразовывать скан-коды и выполнять другие функции. Данные могут передаваться контроллеру 8042 через тот же порт 60h, после чего он пересылает их в клавиатуру. Кроме того, при необходимости передать команды или проверить состояние контроллера клавиатуры на системной плате может быть использован порт ввода-вывода с адресом 64h. Передача команд обычно сопровождается пересылкой данных в одном из направлений через порт 60h.
В большинстве старых систем контроллер 8042 используется также для управления шиной адреса А20 при обращении к памяти, объем которой больше одного мегабайта. В современных системных платах эта функция возложена непосредственно на процессор и набор микросхем системной платы.
Клавиатура, подключенная к порту USB, работает практически так же, как и при подключении к традиционному порту DIN или mini-DIN. Микросхемы контроллера, установленные в клавиатуре, используются для получения и интерпретации данных перед тем, как они будут переданы через порт USB в систему. Некоторые микросхемы включают в себя логическую часть концентратора USB, что позволяет клавиатуре работать непосредственно в качестве концентратора USB. При получении данных от клавиатуры порт USB передает их на 8042-совместимый контроллер, который обрабатывает данные так же, как и любую другую информацию клавиатуры.
Описанный процесс осуществляется уже после загрузки Windows. Но что же происходит в том случае, если пользователю приходится использовать клавиатуру при работе в командной строке или при конфигурировании системной BIOS? Как уже говорилось, для работы с клавиатурой USB в режиме MS DOS необходимо осуществить поддержку технологии USB Legacy в базовой системе ввода-вывода. BIOS, поддерживающая USB Legacy, позволяет выполнить следующие задачи:
■ конфигурирование главного контроллера;
■ подключение клавиатуры и мыши USB;
■ настройка планировщика главного контроллера;
■ направление данных, вводимых с клавиатуры или мыши USB, на контроллер клавиатуры 8042.