Контроллер клавиатуры (вычисления) - Keyboard controller (computing)

Контроллер клавиатуры и разъем AT-Keyboard на В -Материнская плата

В вычислениях клавиатура контролер это устройство, которое взаимодействует с клавиатура к компьютер. Его основная функция - информировать компьютер, когда ключ нажата или отпущена. При поступлении данных с клавиатуры контроллер поднимает прерыватьпрерывание клавиатуры), чтобы позволить ЦПУ для обработки ввода.

Если клавиатура отдельная периферийный системный блок (например, в большинстве современных настольные компьютеры ) контроллер клавиатуры не присоединяется напрямую к клавишам, а получает сканкоды из микроконтроллер встроен в клавиатуру через какой-то Последовательный интерфейс. В этом случае контроллер обычно также управляет клавиатурой. Светодиоды отправив данные обратно на клавиатуру по проводу.

В IBM PC AT использовал Intel 8042 чип для взаимодействия с клавиатурой. Этот компьютер также контролировал доступ к Линия A20 чтобы реализовать обходной путь для ошибки чипа в Intel 80286.[1] Контроллер клавиатуры также использовался для запуска программного сброса ЦП, чтобы ЦП мог перейти из защищенный режим к реальный режим[1] потому что 286 не позволял CPU перейти из защищенного режима в реальный режим, если CPU не был перезагружен. Это было проблемой, потому что BIOS и службы операционной системы могли вызываться только программами в реальном режиме. Это поведение использовалось большим количеством программного обеспечения, которое ожидает этого поведения, и поэтому контроллеры клавиатуры продолжали управлять линией A20 и выполнять программный сброс ЦП, даже когда необходимость сброса с помощью контроллера клавиатуры была устранена за счет Intel 80386 возможность перехода в реальный режим из защищенного режима без перезагрузки процессора. Контроллер клавиатуры также обрабатывает PS / 2 мышь вход, если присутствует порт мыши PS / 2. Сегодня контроллер клавиатуры - это либо блок внутри Супер ввод / вывод устройство или отсутствует, его функции клавиатуры и мыши обрабатываются контроллером USB, а его роль в управлении линией A20 - набором микросхем.


IBM

  • IBM играет небольшую роль в создании контроллера клавиатуры. В IBM-совместимых компьютерах контроллер клавиатуры или контроллер клавиатуры Intel 8042 находится на материнской плате. Контроллер обрабатывает ввод, полученный с клавиатуры компьютера, строки A20, сброс, расшифровку кодов сканирования, а также мышь PS / 2. В более поздних моделях клавиатур 8042 был заменен микроконтроллером 8742, который имел микропроцессор, ОЗУ и порты ввода-вывода.[2]
  • Любой, кто пытается использовать классический контроллер клавиатуры в стиле 8042 (KBC), присутствующий в IBM PC / AT и почти всех более поздних ПК, обычно сталкивается с проблемой отсутствия точной документации. 8042 (или 8742, или любое количество совместимых частей, встроенных в более поздние микросхемы Super I / O) на самом деле довольно хорошо документированы. Загвоздка в том, что 8042 - это программируемый микроконтроллер с собственным управляющим программным обеспечением в (обычно) ПЗУ. До недавнего времени никто, кроме нескольких компаний (IBM, AMI, Phoenix), точно не знал, что делает управляющее программное обеспечение.[3]
  • IBM задокументировала ряд команд, которые хост может отправлять в KBC. Следует понимать, что все эти команды являются чисто программной конструкцией, и ничто в оборудовании 8042 не диктует, что команды должны следовать какому-либо определенному формату, функции или что они вообще должны присутствовать. Поэтому понимание кода ПЗУ 8042 - единственный способ понять, что именно представляют собой команды и что они делают, с оговоркой, что разные контроллеры могут иметь и имеют несколько разный код в своем ПЗУ.[4]

Список команд KBC[5]

-Команды, указанные как «игнорируемые», не выполняют никаких функций.

  • 00ч-1фч: Прочтите KBC RAM косвенно. Не задокументировано.
  • 20ч-3фч: Прочитать KBC RAM по смещению 20h-3Fh. Только команда 20h задокументирована IBM.
  • 40ч-5фч: Пишите KBC RAM косвенно. Не задокументировано.
  • 60ч-7фч: Записать KBC RAM по смещению 20h-3Fh. IBM задокументировала только команду 60h. Байт по смещению 20h является байтом команды и обрабатывается особым образом.
  • 80h-A8h: Игнорируется.
  • AAh: Самопроверка. Эта команда задокументирована, но ее побочные эффекты - нет.
  • ABh: Тест интерфейса.
  • АЧ: Диагностический дамп. Упоминается третьими сторонами, но не задокументировано IBM.
  • ADh: Отключить клавиатуру.
  • AEh: Включить клавиатуру.
  • AFh-BFh: Игнорируется.
  • C0h: Чтение входного порта.
  • C1h: Непрерывный опрос входного порта, старший полубайт. Упоминается третьими сторонами, но не задокументировано IBM.
  • C2h: Непрерывный опрос входного порта, младший полубайт. Упоминается третьими сторонами, но не задокументировано IBM.
  • C3h-CFh: Игнорируется.
  • D0h: Чтение выходного порта.
  • D1h: Порт вывода записи.
  • D2h-DEh: Игнорируется.
  • E0h: Прочитать тестовые входы.
  • E1h-EFh: Игнорируется.
  • F0h-FFh: Биты импульсного выхода.

Вывод

Портативное вычислительное устройство, содержащее: контроллер клавиатуры, имеющий первый вход для приема нажатий клавиш и имеющий выход для передачи упомянутых нажатий клавиш на главный процессор; и вторичный процессор, имеющий интерфейс к упомянутому контроллеру клавиатуры через вторичную шину, упомянутая вторичная шина также используется для связи с модулем батареи, при этом упомянутый контроллер клавиатуры также передает упомянутые входные данные нажатия клавиш упомянутому вторичному процессору через упомянутую вторичную шину.[6] Контроллер клавиатуры запрограммирован для поддержки последовательного интерфейса клавиатуры IBM®-совместимого персонального компьютера. Контроллер клавиатуры получает последовательные данные с клавиатуры, проверяет четность данных, транслирует скан-код и представляет данные системе в виде байта данных в своем выходном буфере. Контроллер прервет работу системы, когда данные будут помещены в его выходной буфер. Байт данных будет последовательно отправлен на клавиатуру с автоматически вставленным битом нечетной четности. Клавиатура требуется для подтверждения всех передач данных. Передача на клавиатуру не должна осуществляться до тех пор, пока не будет получено подтверждение для предыдущего отправленного байта. Контроллер клавиатуры и BIOS для повышения производительности компьютеров IBM PC и их совместимых устройств. В этом контроллере клавиатуры используется аппаратная методология, а не программная реализация, как в традиционном BIOS клавиатуры 8042. Это позволяет контроллеру клавиатуры мгновенно реагировать на все команды, отправляемые с клавиатуры в BIOS ЦП. Благодаря этому популярные программы, такие как Microsoft® Windows ™, NOVELL® и другие, работают намного быстрее.[7]

Смотрите также

Рекомендации

  1. ^ а б http://www.win.tue.nl/~aeb/linux/kbd/A20.html
  2. ^ "Что такое контроллер клавиатуры?". www.computerhope.com. Получено 2019-12-04.
  3. ^ "Команды контроллера клавиатуры IBM PC / AT 8042 | Музей OS / 2". www.os2museum.com. Получено 2019-12-04.
  4. ^ "Команды контроллера клавиатуры IBM PC / AT 8042 | Музей OS / 2". www.os2museum.com. Получено 2019-12-04.
  5. ^ "Команды контроллера клавиатуры IBM PC / AT 8042 | Музей OS / 2". www.os2museum.com. Получено 2019-12-04.
  6. ^ [1], "Вычислительное устройство, имеющее маломощный вторичный процессор, соединенный с контроллером клавиатуры", выпущенный 2008-03-08 
  7. ^ "Техническое описание KBD42W11 (PDF) - SMSC Corporation". www.alldatasheet.com. Получено 2019-12-04.

внешняя ссылка