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

Intel 8042

Intel 8042 — это однокристальный 8-битный микроконтроллер, разработанный корпорацией Intel и выпускавшийся с начала 1980-х годов. Относится к семейству микроконтроллеров MCS-48 (8048). Наибольшую известность получил как основной контроллер клавиатуры в архитектуре IBM PC/AT и совместимых с ней компьютерах, где выполнял функции интерфейса между клавиатурой и центральным процессором, а также управлял линией сброса (Reset) и линией A20 Gate.

История и происхождение

Микроконтроллер Intel 8042 был представлен Intel в 1980 году как модификация более раннего Intel 8048, с увеличенным объёмом встроенной памяти и расширенными возможностями ввода-вывода. Изначально он предназначался для различных встраиваемых применений, включая бытовую технику, промышленные контроллеры и периферийные устройства.

Переломным моментом в истории 8042 стало его использование компанией IBM в персональном компьютере IBM PC/AT (модель 5170), выпущенном в 1984 году. В этой системе микроконтроллер выполнял две ключевые функции: обслуживал клавиатурный интерфейс и управлял системными сигналами, связанными с адресацией памяти и сбросом процессора. Успех архитектуры IBM PC/AT сделал 8042 де-факто стандартом для совместимых компьютеров на протяжении более двух десятилетий. Впоследствии, с появлением материнских плат на чипсетах Super I/O и южных мостах, функции 8042 были эмулированы программно или интегрированы в другие микросхемы, однако вплоть до середины 2000-х годов многие материнские платы содержали отдельный микроконтроллер 8042 или его клон (например, 8042A или 8042AH).

Архитектура и технические характеристики

Intel 8042 построен на базе архитектуры MCS-48 и представляет собой законченную вычислительную систему на одном кристалле.

Основные параметры

Система команд

8042 использует систему команд MCS-48, включающую около 90 инструкций. Большинство команд имеют длину 1 или 2 байта и выполняются за один или два машинных цикла (2,5–5 мкс при тактовой частоте 6 МГц). Поддерживаются операции пересылки данных, арифметические (сложение, вычитание), логические (И, ИЛИ, исключающее ИЛИ, сдвиги), переходы (условные и безусловные), вызов подпрограмм, работа с портами ввода-вывода и таймером.

Применение в IBM PC-совместимых компьютерах

Основная историческая роль Intel 8042 — выполнение функций контроллера клавиатуры (Keyboard Controller, KBC) в системах, совместимых с IBM PC/AT. Микроконтроллер подключался к шине ISA (или её аналогам) и взаимодействовал с клавиатурой через интерфейс PS/2 (или более ранний 5-контактный DIN).

Функции контроллера клавиатуры

Управление системными сигналами

Помимо работы с клавиатурой, микроконтроллер 8042 в IBM PC/AT выполнял две критически важные системные функции:

Программный интерфейс (BIOS)

Взаимодействие с 8042 в IBM PC-совместимых компьютерах осуществлялось через прерывание INT 16h (сервисы клавиатуры BIOS) и прямое программирование портов 0x60 и 0x64. BIOS материнской платы содержал драйвер для 8042, который обрабатывал прерывания от клавиатуры (IRQ1) и управлял буфером скан-кодов.

Другие применения

Хотя 8042 наиболее известен как контроллер клавиатуры, он также использовался в ряде других устройств:

Клоны и эмуляция

В связи с широкой распространённостью архитектуры IBM PC/AT, было выпущено множество клонов Intel 8042, как лицензионных (например, NEC 8042, AMD 8042), так и нелицензионных. Кроме того, многие производители чипсетов (например, Intel, VIA, SiS, ALi) интегрировали функциональность 8042 в состав своих микросхем Super I/O или южных мостов. В современных компьютерах (начиная с середины 2000-х годов) физический микроконтроллер 8042, как правило, отсутствует — его логика эмулируется программно в прошивке UEFI/BIOS или встроена в чипсет (например, в Intel PCH — Platform Controller Hub). Однако для обеспечения совместимости со старым программным обеспечением (например, MS-DOS, Windows 9x) эмуляция 8042 сохраняет все основные функции, включая управление линией A20 и портами 0x60/0x64.

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

Источники

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

На главную BFOmetr →