Конспект лекции: Архитектура устройств ввода (Клавиатура и мышь)

Раздел 1. Практическая работа №2. Устройство клавиатуры и мыши, настройка параметров работы клавиатуры и мыши

1. Введение: роль устройств ввода в архитектуре ЭВМ

В классической архитектуре фон Неймана устройства ввода служат первичным аппаратным мостом, преобразующим аналоговые механические воздействия человека (нажатие пальца на клавишу, скольжение манипулятора по плоскости) в цифровые последовательности сигналов, доступные для обработки центральным процессором.

Несмотря на кажущуюся простоту, современные клавиатуры и мыши представляют собой самостоятельные микропроцессорные встраиваемые системы (Embedded Systems) со своими АЛУ, ПЗУ с прошивкой, контроллерами интерфейсов (USB/Bluetooth), цифровыми сигнальными процессорами (DSP) и оптическими матрицами.

2. Аппаратная архитектура клавиатуры

2.1. Матричная организация клавиш

Если бы каждая из 104 клавиш стандартной клавиатуры подключалась к контроллеру индивидуальной линией связи, потребовалось бы более сотни проводников и контактов ввода-вывода микроконтроллера, что неприемлемо по стоимости, габаритам и помехоустойчивости. Поэтому клавиши коммутируются в двумерную матрицу пересечений строк (Rows) и столбцов (Columns).

Row 0 (Строка 0) Row 1 (Строка 1) Col 0 (Строб) Col 1 Col 2 SW1 SW2 SW3 Ghost Циклический стробирующий импульс 0 В подается на Col 0, считываются уровни на Row 0..N
Схема 1: Принцип матричного сканирования и возникновение паразитного контура Ghosting при одновременном нажатии трех соседних клавиш

2.2. Проблема фиктивных замыканий (Ghosting) и схемотехника NKRO

Когда в матрице без диодной развязки пользователь одновременно зажимает три клавиши, расположенные вершинами воображаемого прямоугольника (например, клавиши SW1, SW2 и SW3 на Схеме 1), замыкаются три проводящих пути. Ток от стробируемого столбца протекает через замкнутые контакты в обратном направлении, создавая на строке потенциал земли в четвертой вершине (Ghost). Контроллер ошибочно фиксирует нажатие четвертой клавиши.

Строка (Row) Столбец (Col) Диод (1N4148) Контакты переключателя Принцип NKRO (N-Key Rollover): Диод пропускает ток только в одну сторону, блокируя обратный паразитный ток.
Схема 2: Аппаратная реализация NKRO с развязывающим диодом на каждой клавише
Вывод для инженера: В офисных мембранных клавиатурах диоды отсутствуют ради экономии. Чтобы паразитные нажатия не сыпались в операционную систему, контроллер блокирует спорные клавиши (Jamming). В профессиональных механических и геймерских клавиатурах каждая клавиша снабжена диодом, что обеспечивает истинный NKRO (N-Key Rollover) — возможность корректного распознавания сколь угодно большого числа одновременно нажатых клавиш.

2.3. Механический дребезг контактов (Contact Bounce) и дебаунсинг

Любые металлические контакты при соударении вибрируют из-за микроскопической упругости металла. В течение первых 1–10 миллисекунд после нажатия контакт многократно смыкается и размыкается (дребезжит). Если передавать сигнал напрямую в процессор, одно нажатие вызовет лавину из десятков символов.

Для устранения дребезга контроллер клавиатуры применяет алгоритм Debounce: после первой фиксации замыкания контроллер «замораживает» состояние клавиши на программный интервал (обычно 5–15 мс) и лишь по истечении этого времени подтверждает стабильность сигнала. В оптических и магнитных переключателях металлические контакты отсутствуют, поэтому задержка на дебаунсинг равна нулю ($T_{debounce} = 0$).

3. Аппаратная архитектура оптической мыши

3.1. Оптический тракт и принцип оптического потока

Современная оптическая мышь не измеряет физическую скорость напрямую. Она работает по принципу непрерывной микрофотосъемки рабочей поверхности.

Микрорельеф рабочей поверхности (микронеровности волокон коврика или стола) LED / Лазер Падающий луч (косой угол) Микролинза CMOS-матрица 36x36 px @ 12 000 fps DSP процессор Корреляция: ΔX, ΔY USB HID пакет
Схема 3: Оптико-электронный тракт мыши: от микрорельефа до вычисления смещений в DSP

3.2. Алгоритм корреляции кадров

  1. Косопадающий свет формирует тени на микронеровностях коврика.
  2. Линза проецирует увеличенное изображение микропятна на скоростную CMOS-матрицу.
  3. Каждые доли миллисекунды (например, каждые $1/12000$ с) сенсор считывает новый кадр.
  4. Цифровой сигнальный процессор (DSP) накладывает текущий кадр $I(x, y, t)$ на предыдущий $I(x, y, t-1)$ со смещениями $(\delta x, \delta y)$ и ищет максимум функции взаимной корреляции: $$R(\delta x, \delta y) = \sum_{x, y} I(x, y, t) \cdot I(x + \delta x, y + \delta y, t - 1)$$
  5. Точка максимума корреляции определяет вектор сдвига манипулятора с точностью до десятых долей микрона.

4. Протокол USB HID и частота опроса (Polling Rate)

Шина USB устроена асимметрично: периферийное устройство (мышь или клавиатура) не имеет права самостоятельно захватывать шину и слать данные в память ПК. Все передачи инициируются хост-контроллером USB материнской платы.

Interrupt Transfer (Прерывания USB)

Для устройств класса HID используется тип передачи Interrupt. Хост периодически опрашивает конечную точку (Endpoint) мыши с интервалом, заданным в дескрипторе устройства (параметр bInterval). Если за интервал перемещения не произошло, устройство шлет NAK. Если мышь сместилась, передается HID Report со смещениями $\Delta X$ и $\Delta Y$.

Формула интервала опроса

Период опроса шины обратно пропорционален частоте:
$$T_{poll} = rac{1000}{F_{poll}} ext{ (мс)}$$
При 125 Гц: $T = 8.0$ мс (базовый опрос)
При 500 Гц: $T = 2.0$ мс
При 1000 Гц: $T = 1.0$ мс
При 8000 Гц: $T = 0.125$ мс (125 мкс)

Внимание (Аппаратные накладные расходы): Повышение частоты опроса до 4000–8000 Гц означает, что центральный процессор ПК будет прерываться 8 000 раз в секунду только для обработки сообщений мыши. На слабых процессорах с малым числом ядер это может вызывать просадку FPS и микрофризы в ресурсоемких CAD/3D приложениях.

5. Параметры настройки в операционной системе

Параметр Физический смысл Рекомендованное значение
Repeat Delay (Задержка автоповтора) Время от нажатия клавиши до начала генерации цепочки повторных символов (обычно 250–500 мс). Предотвращает случайные дубли при медленном снятии пальца. 250–300 мс (короткая задержка для быстрого набора и программирования).
Repeat Rate (Скорость автоповтора) Частота повтора символа при удержании клавиши (от 2 до 30 симв/с). Максимальная (30 симв/с) для эффективной навигации по коду клавишами стрелок.
Enhance Pointer Precision (Windows) Программная нелинейная акселерация курсора (смещение зависит от скорости движения мыши, а не только от физического расстояния). Отключить для точных работ (CAD, 3D, киберспорт) во избежание разрушения мышечной памяти.
Raw Input (Прямой ввод) Считывание пакетов HID напрямую в обход оконной подсистемы Windows (`WM_MOUSEMOVE`) и буферов сглаживания ОС. Включить во всех профессиональных графических и игровых пакетах для минимального лага.

Вопросы для самопроверки

  1. Какая аппаратная деталь предотвращает появление Ghosting в клавиатуре с матричной структурой?
    Показать ответ Полупроводниковый диод, включенный последовательно с каждой кнопкой (схемотехника NKRO). Он препятствует обратному перетеканию тока через замкнутые соседние клавиши.
  2. В чем принципиальная разница между понятиями DPI и CPI применительно к мыши?
    Показать ответ DPI (Dots Per Inch) — полиграфический термин числа точек печати. CPI (Counts Per Inch) — аппаратное число электрических отсчетов (импульсов), генерируемых сенсором при физическом перемещении мыши ровно на 1 дюйм.
  3. Чему равен период опроса мыши при частоте опроса USB 500 Гц?
    Показать ответ $T = 1 / 500 = 0.002$ с = 2.0 миллисекунды.
  4. Почему оптические переключатели имеют меньшую задержку ввода, чем классические механические переключатели?
    Показать ответ У оптических переключателей отсутствует металлический контакт и физический дребезг контактов (Contact Bounce), поэтому контроллеру не требуется выжидать время дебаунсинга (Debounce time 5–15 мс), сигнал генерируется мгновенно при прерывании светового луча.