Предыдущий урок: Как работает компьютер? Часть 47. Клавиатура: скан-коды, контроллер клавиатуры.
Мышь — это второе важнейшее устройство ввода после клавиатуры, и без неё современный компьютер трудно себе представить. Если клавиатура отвечает в первую очередь за ввод символов и текста, то мышь выполняет другую задачу — она позволяет нам указывать, выбирать и перемещать объекты на экране. В предыдущем уроке мы подробно разбирали, как нажатая клавиша превращается в скан-код и как этот код попадает в процессор. Теперь мы увидим, что у мыши принцип работы похожий, хотя устройство и задачи у неё совершенно другие.
Основная идея работы мыши в том, что она не сообщает компьютеру абсолютное положение курсора на экране. Она передаёт лишь изменения своего движения по поверхности: насколько и в какую сторону она сдвинулась за очень короткий промежуток времени. Эти изменения называют ΔX (дельта икс) и ΔY (дельта игрек). Когда операционная система получает такие данные, она складывает их с предыдущими координатами курсора и вычисляет новые. Поэтому когда мы двигаем мышь вправо, курсор на экране смещается вправо на несколько пикселей, а если двигаем мышь по диагонали, то курсор движется по диагонали.
Чтобы выполнять такую задачу, мышь состоит из нескольких частей. Снаружи мы видим корпус и кнопки, но внутри находятся более важные элементы: сенсор (обычно оптический или лазерный), подсветка, колесо прокрутки, микропереключатели для кнопок и, главное, микроконтроллер — маленький встроенный процессор, который собирает все сигналы. Данные от сенсора и кнопок по кабелю USB или по радиоканалу передаются в компьютер.
Ранние мыши были шариковыми: внизу вращался шарик, который крутил ролики, а ролики передавали информацию о движении. Сегодня почти все мыши оптические. Под корпусом расположен светодиод или лазер, который освещает поверхность. Сенсор делает сотни маленьких снимков текстуры поверхности (например коврика) в секунду и сравнивает их. Если рисунок сместился, алгоритм вычисляет, насколько именно, и превращает это в смещения по осям X и Y (те самые ΔX и ΔY).
Кнопки мыши устроены проще. Под каждой из них установлен микропереключатель. Когда мы нажимаем на кнопку, контакты замыкаются, и микроконтроллер фиксирует это как «кнопка нажата». Колесо прокрутки работает иначе: оно вращает диск с маленькими прорезями, и датчик считает, сколько прорезей прошло, превращая это в шаги прокрутки.
Все эти данные — смещения ΔX и ΔY, состояния кнопок и колеса — собираются микроконтроллером внутри мыши. Он формирует специальный пакет данных, который называется HID-отчёт (Human Interface Device report). В этом отчёте записано, какие кнопки нажаты, на сколько изменилось положение по осям и сколько шагов прокрутки сделано. После этого отчёт отправляется в компьютер.
Дальше вступает в работу материнская плата. Отчёт сначала попадает в USB-контроллер, который встроен в чипсет. Контроллер сообщает процессору, что появились новые данные от мыши, и вызывает прерывание. Процессор временно откладывает свою текущую работу и вызывает драйвер мыши.
Драйвер читает отчёт, складывает дельты с текущими координатами курсора и сообщает операционной системе новое положение. ОС обновляет изображение курсора, а видеокарта показывает его в новом месте на экране. Если была нажата кнопка, операционная система создаёт событие «нажата левая кнопка мыши» и передаёт его той программе, которая сейчас находится под курсором.
Чтобы лучше понять цепочку, разберём простой пример — щелчок по кнопке «Сохранить» в текстовом редакторе.
- Когда палец нажимает левую кнопку, переключатель замыкается, микроконтроллер фиксирует «левая кнопка = нажата» и формирует HID-отчёт.
- Отчёт по USB отправляется в компьютер.
- USB-контроллер вызывает прерывание, процессор запускает драйвер мыши, операционная система получает событие «нажата левая кнопка» и проверяет, какой элемент интерфейса находится под курсором.
- Оказывается, это кнопка «Сохранить» в окне редактора.
- ОС передаёт событие в программу, программа выполняет команду «сохранить» и записывает файл на диск.
Другой пример: мышь сдвигается вправо.
- Сенсор фиксирует смещение узора поверхности, алгоритм вычисляет ΔX= +10, ΔY=0, микроконтроллер формирует HID-отчёт с этими значениями и отправляет его.
- Компьютер получает пакет, драйвер складывает смещения с текущими координатами курсора, ОС обновляет положение курсора, и видеокарта показывает его на экране.
Для пользователя это выглядит очень просто: курсор плавно перемещается, а по щелчку выполняется действие. Но на самом деле за этим стоит длинная цепочка сигналов, кодов и вычислений.
Современные мыши бывают не только проводными, но и беспроводными. В беспроводных моделях принцип работы тот же, только вместо кабеля USB используется радиоканал. Чаще всего мышь связывается с маленьким USB-приёмником (донглом), который вставляется в компьютер. Для операционной системы этот донгл выглядит так же, как обычная проводная мышь. Другой вариант — подключение через Bluetooth.
Таким образом, мышь — это устройство, которое превращает движение руки и нажатия кнопок в цифровые сигналы. Внутри неё есть сенсор, микроконтроллер и переключатели, которые преобразуют всё происходящее в отчёты HID. Компьютер получает эти отчёты, операционная система их интерпретирует, а мы видим результат в виде перемещения курсора и реакции программ на щелчки.
Спасибо за внимание!
Следующий урок: Как работает компьютер? Часть 49. Микрофон и Камера.
Если вам интересно копать глубже, разбирать реальные кейсы и получать знания, которых нет в открытом доступе — вам в IT Extra Premium.
Что внутри?
✅ Закрытые публикации: Детальные руководства, разборы сложных тем (например, архитектура высоконагруженных систем, глубокий анализ уязвимостей, оптимизация кода, полезные инструменты и объяснения сложных тем простым и понятным языком).
✅ Конкретные инструкции: Пошаговые мануалы, которые вы сможете применить на практике уже сегодня.
✅ Без рекламы и воды: Только суть, только концентрат полезной информации.
✅ Ранний доступ: Читайте новые материалы первыми.
Это — ваш личный доступ к экспертизе, упакованной в понятный формат. Не просто теория, а инструменты для роста.
👉 Переходите на Premium и начните читать то, о чем другие только догадываются.
👍 Ставьте лайки если хотите разбор других интересных тем.
👉 Подписывайся на IT Extra на Дзен чтобы не пропустить следующие статьи
________________________________________________________________________👇
Понравилась статья? В нашем Telegram-канале ITextra мы каждый день делимся такими же понятными объяснениями, а также свежими новостями и полезными инструментами. Подписывайтесь, чтобы прокачивать свои IT-знания всего за 2 минуты в день!