Открыть сервис

Контроллер клавиатуры 8042

Контроллер клавиатуры 8042 — это микросхема, выполняющая функции интерфейсного контроллера между клавиатурой (или другим устройством ввода, например, мышью) и центральным процессором компьютера. Разработанная компанией Intel в начале 1980-х годов, она стала стандартным компонентом IBM PC-совместимых компьютеров и долгое время использовалась в качестве основного контроллера клавиатуры, а также для управления портом PS/2. Несмотря на то, что в современных системах её функции часто эмулируются программно или интегрированы в чипсет, архитектура 8042 остаётся важной частью наследия персональных компьютеров.

История

Разработка и стандартизация

Контроллер 8042 был представлен Intel в 1981 году как часть семейства микроконтроллеров MCS-48. Его создание было связано с необходимостью унификации интерфейса клавиатуры для IBM PC. В первых моделях IBM PC (1981) использовался контроллер 8255A, но он не обеспечивал достаточной гибкости для обработки клавиатурных прерываний и управления светодиодами. В 1984 году с выходом IBM PC/AT был внедрён 8042, который стал стандартом на десятилетия.

Эволюция применения

Изначально 8042 обрабатывал только данные с клавиатуры, преобразуя скан-коды в последовательности, понятные процессору. С появлением мыши с интерфейсом PS/2 (1987) контроллер получил дополнительную функцию — управление вторым портом. В 1990-х годах, с распространением USB, физический 8042 начал вытесняться, но его логический интерфейс (набор команд и регистров) сохранился в эмуляции для обратной совместимости.

Архитектура и устройство

Микроконтроллерная основа

8042 представляет собой однокристальный 8-битный микроконтроллер с собственным процессорным ядром, памятью и периферией. Его ключевые характеристики:

  • Процессор: 8-битный, тактовая частота — от 1 до 12 МГц (зависит от версии).
  • Память: 128 байт ОЗУ, 2 КБ ПЗУ (для прошивки).
  • Порты ввода-вывода: два 8-битных порта (P1 и P2) для связи с клавиатурой, системной шиной и другими устройствами.
  • Таймеры: два 8-битных таймера-счётчика.

Регистры и команды

Контроллер взаимодействует с процессором через два порта ввода-вывода:

Основные команды, поддерживаемые 8042:

  • Чтение/запись конфигурационных байт (например, включение/отключение порта PS/2).
  • Сброс клавиатуры.
  • Управление светодиодами (Num Lock, Caps Lock, Scroll Lock).
  • Тестирование контроллера и клавиатуры.

Классификация и варианты

Физические реализации

  • Intel 8042 — оригинальный микроконтроллер в корпусе DIP-40.
  • Intel 8742 — версия с программируемым ПЗУ (EPROM) для кастомизации прошивки.
  • Совместимые контроллеры — выпускались компаниями AMD, NEC, Hitachi и другими (например, AMD 8042, NEC μPD8042).

Эмуляция и интеграция

В современных чипсетах (например, Intel PCH, AMD FCH) функции 8042 реализованы программно в составе Super I/O или Embedded Controller. Это позволяет поддерживать старые операционные системы (например, MS-DOS, Windows 95/98) без физической микросхемы. Эмуляция включает:

  • Обработку прерываний IRQ1 (клавиатура) и IRQ12 (мышь).
  • Поддержку команд портов 0x60 и 0x64.
  • Симуляцию регистра состояния.

Применение

Основная функция: интерфейс клавиатуры

8042 выполняет следующие задачи:

  1. Приём скан-кодов от клавиатуры (через интерфейс PS/2 или AT).
  2. Преобразование скан-кодов в системные коды (для передачи процессору).
  3. Генерация прерывания IRQ1 при нажатии/отпускании клавиши.
  4. Управление светодиодами клавиатуры по командам от ОС.

Дополнительные возможности

  • Управление портом PS/2 для мыши (с 1987 года). Контроллер обрабатывает данные от мыши, генерирует прерывание IRQ12.
  • Сброс системы (команда 0xFE). Используется для горячей перезагрузки (Ctrl+Alt+Del).
  • Контроль A20 Gate — управление адресной линией A20 для совместимости с 16-битным режимом (используется в реальном режиме x86). Это одна из наиболее известных функций 8042, необходимая для работы старых программ.

Значение и наследие

Роль в совместимости

Благодаря стандартизации 8042, IBM PC-совместимые компьютеры сохраняли обратную совместимость с клавиатурами и мышами на протяжении десятилетий. Даже в современных системах (x86-64) эмуляция 8042 позволяет запускать устаревшие ОС и приложения, которые напрямую обращаются к портам 0x60/0x64.

Критика и ограничения

  • Медленная скорость (до 40 кГц) по сравнению с USB.
  • Ограниченная поддержка — только два устройства (клавиатура и мышь).
  • Конфликты с ACPI — в некоторых реализациях эмуляция 8042 может вызывать проблемы с управлением питанием (например, сон/гибернация).

Современное состояние

Физические контроллеры 8042 практически не используются в новых компьютерах (с 2010-х годов). Однако их эмуляция остаётся обязательной для поддержки:

  • Старых операционных систем (Windows XP, Linux с ядром до 2.6).
  • BIOS/UEFI (для работы клавиатуры на этапе загрузки).
  • Некоторых встраиваемых систем и промышленных компьютеров.

Интересные факты

  • Контроллер 8042 имеет встроенный тест самодиагностики (BIST — Built-In Self Test), который выполняется при включении питания.
  • Команда 0xFE (сброс системы) использовалась в ранних версиях Windows для аварийной перезагрузки.
  • В некоторых материнских платах 8042 был реализован на отдельной микросхеме (например, в Intel 430TX).
  • Прошивка 8042 может быть перепрограммирована для нестандартных задач (например, управления светодиодами корпуса).

Источники

  • Intel Corporation. Microcontroller Handbook. 1985.
  • Shanley, T. ISA System Architecture. Addison-Wesley, 1995.
  • IBM. Personal Computer AT Technical Reference. 1984.
  • Messmer, H.-P. PC Hardware: A Beginner’s Guide. Osborne/McGraw-Hill, 2001.
  • Документация Intel PCH (Platform Controller Hub), 2010.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →