Устройство клавиатуры и мыши, настройка параметров работы клавиатуры и мыши

1. Периферия ввода в архитектуре ЭВМ

Клавиатура и мышь — первичные аппаратные преобразователи механических воздействий человека в машинные цифровые транзакции.

Символьно-командный ввод (Клавиатура)

Дискретные события: нажатие (Make), удержание (Repeat), отпускание (Break). Генерация аппаратно-зависимых скан-кодов и передача через буферы контроллера.

Координатно-указательный ввод (Мышь)

Непрерывный опрос относительных смещений: векторы ΔX, ΔY и состояния кнопок. Расчет оптического потока на микроматрице в реальном времени.

Ключевая цель: Минимизация совокупной задержки (Input Lag) и устранение аппаратных искажений (дребезг контактов, гостинг, сглаживание).

2. Аппаратная организация матрицы клавиатуры

Для опроса 104 клавиш используется матричная топология: N строк (Rows) × M столбцов (Columns).

Частота сканирования матрицы аппаратным микроконтроллером клавиатуры составляет от 500 Гц до нескольких килогерц.

3. Паразитные замыкания: Ghosting и Key Jamming

Эффект Ghosting (Фантомный клик)

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

Key Jamming (Блокировка ввода)

Чтобы избежать хаоса фантомных символов, контроллер дешевой клавиатуры блокирует регистрацию 3-й клавиши при обнаружении потенциального паразитного прямоугольника. Это называется 2-Key Rollover (2KRO).

В офисной работе 2KRO незаметен, но в играх, стенографии и быстром наборе аккордов блокировка клавиш фатальна.

4. Схемотехника NKRO (N-Key Rollover)

Полное устранение гостинга и джемминга достигается распайкой индивидуального развязывающего диода последовательно с каждым переключателем.

Реализация в USB: Стандартный протокол USB HID Boot Keyboard ограничен 6 одновременными клавишами (6KRO). True NKRO требует кастомного дескриптора отчетов (HID Report Descriptor) с битовой картой клавиш (Bitmap).

5. Классификация переключателей (Switches)

Мембранные (Rubber Dome)

Силиконовый купол + токопроводящий графитовый пятак. Дешево, тихо, влагостойко. Минусы: срабатывание только при прожатии до упора (bottom-out), ресурс 5–10 млн.

Механические (MX Style)

Витая стальная пружина + бронзовые контакты. Срабатывание на середине хода (2 мм). Ресурс 50–100 млн. Типы: Linear (Red), Tactile (Brown), Clicky (Blue).

Оптика и Датчик Холла

Прерывание инфракрасного луча или смещение магнита (Hall Effect). Отсутствие металлического дребезга (0 мс дебаунс), функция Rapid Trigger, ресурс свыше 100 млн.

6. Скан-коды и трансляция событий ввода

Клавиатура передает в компьютер не буквы, а аппаратные коды физических клавиш:

Преобразование скан-кода в конкретный символ (букву алфавита с учетом раскладки, Shift и CapsLock) выполняет драйвер ОС.

7. Аппаратное устройство мыши: Оптический тракт

Современная оптическая мышь — это специализированная высокоскоростная микровидеокамера:

8. Алгоритм корреляции оптического потока

DSP сенсора непрерывно вычисляет пространственную взаимную корреляцию между текущим кадром t(k) и предыдущим t(k-1):

R(Δx, Δy) = Σ I_k(x, y) × I_{k-1}(x + Δx, y + Δy)

9. Разрешение сенсора: физика CPI vs маркетинг DPI

DPI (Dots Per Inch)

Термин полиграфии — количество чернильных точек на дюйм бумаги. В компьютерных мышах используется исторически как упрощенный синоним чувствительности.

CPI (Counts Per Inch)

Строгий инженерный параметр: число дискретных электрических отсчетов (импульсов), генерируемых сенсором при физическом смещении мыши ровно на 1 дюйм (25.4 мм).

Инженерный факт: Нативное оптическое разрешение кремниевых сенсоров редко превышает 1600–3200 CPI. Заявленные в рекламе 20 000–30 000 CPI формируются математической интерполяцией в DSP, что увеличивает шум (джиттер).

10. Частота опроса шины (Polling Rate)

Шина USB работает в режиме Host Controller Polling (Interrupt Transfer). Мышь не может отправить пакет без запроса хоста.

125 Гц (Стандарт USB)

Интервал опроса: T = 8.0 мс. Высокая вариативность задержки (джиттер до 8 мс), курсор движется рывками на быстрых экранах.

1000 Гц (Про-стандарт)

Интервал опроса: T = 1.0 мс. Плавная передача векторов движения, минимальная нагрузка на CPU (1 прерывание в мс).

4000 / 8000 Гц (Экстрим)

Интервал: T = 0.25 / 0.125 мс. Сверхгладкий отклик, но до 8000 аппаратных прерываний в секунду — риск троттлинга CPU.

11. Алгоритмические искажения: Angle Snapping и Акселерация

Angle Snapping (Угловая привязка)

Алгоритм DSP, насильно сглаживающий траекторию движения в прямую горизонталь или вертикаль. Удобно для офиса, но фатально для CAD-черчения по сложным радиусам и гейминга.

Hardware Acceleration (Акселерация)

Дистанция курсора зависит от скорости перемещения руки: при резком рывке курсор улетает дальше, чем при плавном движении на то же расстояние. Разрушает мышечную память оператора.

Профессиональный стандарт: Строгое отключение Angle Snapping и ускорения мыши (Enhanced Pointer Precision = OFF). Использование Raw Input.

12. Физические интерфейсы подключения

Проводной USB HID

Абсолютная помехозащита, питание по кабелю, задержка от 0.125 до 1 мс. Эталон для CAD, серверов и киберспорта.

2.4 GHz Proprietary RF

Собственный USB-донгл со сверхбыстрым радиопротоколом. Полноценные 1000–4000 Гц, отсутствие видимого лага (1–2 мс).

Bluetooth LE (HOGP)

Энергоэффективный стандарт, но частота ограничена интервалами BLE (90–133 Гц, задержка 8–15 мс). Только для офиса и планшетов.

13. Инженерный расчет совокупного Input Lag

Суммарная задержка от прикосновения до пикселя на мониторе:

T_total = T_mech + T_scan + T_debounce + T_usb_poll + T_os + T_gpu + T_monitor

14. Инженерный юмор и эволюция интерфейсов

xkcd 1172: Workflow (Spacebar heating)
Тематический интернет-мем: xkcd #1172 — «Workflow» («Every change breaks someone's workflow»).

Сюжет стрипа: Пользователь жалуется на багфикс в новой версии ПО: «Раньше удержание пробела вызывало перегрев процессора и согревало мои руки зимой, а ваше обновление всё сломало!». Мем стал культовым в среде системных программистов и разработчиков периферийных контроллеров.

Первоисточник: Официальный архив комиксов xkcd (xkcd.com/1172).
Автор: Рэндалл Манро (Randall Munroe).
Лицензия: Creative Commons Attribution-NonCommercial 2.5 Generic (CC BY-NC 2.5).
Формат встраивания: Автономный data URI (JPEG Base64) для гарантированной работы в закрытых сетях без доступа к интернету.
Слайд 1 из 15