Контроллер клавиатуры 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-битных таймера-счётчика.
Регистры и команды
Контроллер взаимодействует с процессором через два порта ввода-вывода:
- Порт 0x60 — буфер данных (чтение скан-кодов, запись команд для клавиатуры).
- Порт 0x64 — регистр состояния и команд (чтение статуса, отправка команд контроллеру).
Основные команды, поддерживаемые 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 выполняет следующие задачи:
- Приём скан-кодов от клавиатуры (через интерфейс PS/2 или AT).
- Преобразование скан-кодов в системные коды (для передачи процессору).
- Генерация прерывания IRQ1 при нажатии/отпускании клавиши.
- Управление светодиодами клавиатуры по командам от ОС.
Дополнительные возможности
- Управление портом 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 →