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

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

Контроллер клавиатуры — это микроконтроллер или специализированная интегральная схема, предназначенная для обработки нажатий клавиш на клавиатуре, преобразования их в цифровые сигналы и передачи этих сигналов на компьютер или другое устройство. Он является ключевым компонентом любой клавиатуры, отвечая за обнаружение нажатий, антидребезговую обработку, формирование скан-кодов и взаимодействие с системой по одному из интерфейсов.

История развития

Первые компьютерные клавиатуры, появившиеся в 1960-х годах (например, для мейнфреймов и терминалов), были пассивными устройствами. В них каждая клавиша замыкала отдельную электрическую цепь, а обработкой сигнала занимался центральный процессор или специализированный порт ввода-вывода. С переходом к персональным компьютерам и появлением IBM PC (1981) возникла необходимость в унификации и снижении нагрузки на процессор. Клавиатура IBM Model F (1981) и более поздняя Model M (1985) уже содержали собственный микроконтроллер (например, Intel 8048), который принимал сигналы с клавиш, формировал скан-коды и отправлял их через последовательный интерфейс (позже ставший известным как PS/2).

Развитие контроллеров шло по пути миниатюризации, снижения энергопотребления и увеличения функциональности. В 1990-е годы широкое распространение получил интерфейс USB, что потребовало от контроллеров поддержки этого протокола. С 2000-х годов, с ростом популярности механических клавиатур и энтузиастических проектов (например, QMK, TMK), получили распространение программируемые контроллеры на базе микроконтроллеров общего назначения, таких как Atmel AVR (например, ATmega32U4) и ARM Cortex-M (например, STM32 серии F0/F4). В современных ноутбуках и компактных клавиатурах всё чаще используются специализированные SoC (System-on-Chip), интегрирующие контроллер, память и периферию в один корпус.

Типы и классификация

Контроллеры клавиатур можно классифицировать по нескольким признакам:

По функциональности

По месту расположения

По типу интерфейса

Устройство и принцип работы

Матричная разводка

Основной метод соединения клавиш с контроллером — матричный. Клавиши организуются в строки и столбцы. Контроллер подаёт сигнал на одну из строк и считывает состояние столбцов. Если клавиша, находящаяся на пересечении активной строки и считываемого столбца, нажата, цепь замыкается, и контроллер регистрирует нажатие. Матрица позволяет использовать M + N контактов для M×N клавиш (например, для 100 клавиш требуется 20 контактов, а не 100).

Антидребезг (Debouncing)

При механическом нажатии клавиши контакты замыкаются не мгновенно, а с серией быстрых размыканий и замыканий (дребезг). Контроллер выполняет программный или аппаратный антидребезг — задерживает обработку сигнала на определенное время (обычно 5-20 мс) и считывает состояние повторно, чтобы убедиться, что контакт стабилен.

Сканирование

Контроллер циклически сканирует матрицу с частотой от нескольких десятков до сотен герц. При обнаружении нажатия он определяет скан-код клавиши. Скан-код может быть однобайтовым (классический для PS/2) или многобайтовым (для USB).

Формирование кода и отправка

Дополнительные функции

Технические характеристики

Программируемые прошивки

Наибольшую популярность в среде энтузиастов получили открытые прошивки:

Применение

Производители

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

Источники

  1. Стандарт IBM PC/AT. Техническая документация.
  2. Спецификация USB HID (Human Interface Device).
  3. Протокол PS/2 (IBM Personal System/2).
  4. Документация проектов QMK Firmware, ZMK Firmware.
  5. Статьи по электронике и конструкции механических клавиатур (например, на сайтах Deskthority, Geekhack, Reddit (r/MechanicalKeyboards)).
  6. Дадашиты на микроконтроллеры ATmega32U4, STM32F072, nRF52840.

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

На главную BFOmetr →