Мышь PS/2 — специализированный интерфейс для подключения указывающего устройства (мыши, трекбола и т.д.) с использованием разъёма mini-DIN-6. Впервые был представлен в компьютере IBM PS/2, благодаря чему и получил своё название.

Мышь Logitech с колесом прокрутки

История править

Изначально для PC-совместимых компьютеров использовались мыши двух типов: PC-Mouse от Mouse Systems[en] и Microsoft Mouse[en]. Оба этих типа мыши подключались по протоколу RS-232 и были несовместимы друг с другом. Из этого следовали серьёзные недостатки: 1) мышь занимала Com-порт, количество которых было ограничено — обычно только два; 2) драйвер мыши монопольно использовал линии прерывания IRQ3 или IRQ4; 3) не существовало способа автоматического распознавания и конфигурации подключенной мыши, поэтому пользователю предстояло самостоятельно указывать, какого типа мышь подключена и в какой порт[1].

В 1987 году компания IBM выпустила компьютер PS/2, в котором для клавиатуры и мыши были зарезервированы специальные разъёмы. Изначально новый стандарт не пользовался популярностью. Массово новые разъёмы для мыши стали устанавливаться только в конце 1990-х, с распространением стандарта ATX, который предусматривал специальное окно для размещения разъёмов разных типов. Однако в тот же период появился стандарт USB HID, позволявший подключать мышь в новый универсальный разъём USB. Долгое время два этих стандарта сосуществовали вместе, многие мыши могли работать через оба протокола[2]. Однако постепенно стандарт USB HID вытеснил PS/2.

Принцип работы править

Так же как и в клавиатуре, в мыши используется четырёхпроводное подключение: по двум проводам подаётся питание, один провод синхронизации и один — данных. На физическом уровне протокол аналогичен протоколу клавиатуры: он полудуплексный, включает стартовый бит, 8 бит данных и бит чётности, переключение направления реализуется специальной посылкой в синхросигнале.

Мышь может работать в трёх режимах: потоковом, режиме опроса и диагностическом[3]. В диагностическом режиме мышь сигнализирует о своей исправности, возвращая поступившие на вход данные. Основной режим работы — потоковый, в нём мышь передаёт посылку о любом изменении своего состояния: перемещении, нажатии любой кнопки, повороте колеса, но не чаще, чем задано установкой частоты опроса. Ранние мыши, в частности оригинальная мышь IBM посылали на компьютер 3 байта данных. Позже компания Microsoft в своей мыши IntelliMouse[en] расширила формат посылки до четырёх байт, и он принял следующий вид:

Бит 7 Бит 6 Бит5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
Переполнение Y Переполнение X Направление Y Направление X Не используется Средняя кнопка Правая кнопка Левая кнопка
Перемещение X
Перемещение Y
Не используется Не используется 5-я кнопка 4-я кнопка Направление
колеса
Вращение колеса

С появлением тачпадов, последние также часто подключают по протоколу PS/2, но для реализации мультитача используются собственные расширения протокола.

Работа на уровне материнской платы править

Для подключения мыши типа PS/2 используется разъём Mini-DIN-6, аналогичный разъёму для клавиатуры, с таким же назначением контактов[3]. Автоматического определения, в какой из разъёмов подключена мышь, а в какой — клавиатура как правило не предусмотрено, один из разъёмов позволяет подключить только клавиатуру, а другой — только мышь, чтобы их различать, они окрашиваются в разный цвет и маркируются пиктограммой. Подключение и отключение предполагается только при отключенном питании, защита от возможных бросков тока при коммутации — на усмотрение изготовителей контроллеров. Многие версии материнских плат определяют наличие мыши только в момент включения питания. Сам контроллер как правило совмещён с контроллером клавиатуры, хотя до широкого распространения стандарта ATX существовали контроллеры мыши, выполненные в виде платы расширения[3].

Со стороны процессора используются те же самые порты 60h и 64h, что и для клавиатуры, однако движение мыши вызывает аппаратное прерывание IRQ12. Также в отличие от клавиатуры, посылки от мыши передаются в буфер напрямую, без преобразований. На уровне BIOS поддержка мыши заключается только в её инициализации при включении питания, непосредственно работа с мышью должна быть реализована в виде драйвера на уровне операционной системы[3].

Альтернативы PS/2 для тачпадов править

На замену устаревшего протокола PS/2, который не поддерживает более двух синхронных прикосновений (мультитач) и ограничен в разрешении устройств, в ряде встроенных применений (преимущественно с тачпадами) предложены более современные альтернативы. В частности для взаимодействия с устройствами synaptics и libinput применяются протоколы RMI (от англ. Register Mapped Interface). Данные протоколы работают поверх встроенных шин I²C, SMBus или SPI и реализованы в нескольких версиях: RMI3 (с 2007 года)[4] и RMI4 (2010-е)[5][6][7].

Примечания править

  1. Гук, 2006, с. 655.
  2. Гук, 2006, с. 654.
  3. 1 2 3 4 Гук, 2006, с. 656.
  4. Synaptics RMI3 Specification Архивная копия от 3 марта 2022 на Wayback Machine, 2007—2008 (англ.)
  5. Linux 4.6 Adding Synaptics RMI4 To Better Handle Touchscreens, Touchpads - Phoronix (англ.). phoronix.com (19 марта 2016). Дата обращения: 1 августа 2019. Архивировано 13 августа 2020 года.
  6. Synaptics RMI4 Specification PN: 511-000136-01 Rev. E, Synaptics Incorporated 2007—2011, proprietary information (англ.)
  7. Jake Edge. An update on input (LWN.net, X.Org Developers Conference) (англ.). lwn.net (11 октября 2016). Дата обращения: 1 августа 2019. Архивировано 1 августа 2019 года.

Литература править

  • Михаил Гук. Глава 11. Устройства ввода-вывода и их интерфейсы. 11.2 Манипуляторы-указатели — мышь, трекбол. Мышь PS/2 // Аппаратные средства IBM PC. — 3-е. — СПб.: Питер, 2006. — 1072 с. — 5000 экз. — ISBN 5-469-01182-8.
  • В.А. Павлов. Система ввода-вывода ПК. Подсистемы клавиатуры и манипуляторов типа мышь и джойстик. — Саров: Кафедра вычислительной и информационной техники Саровского государственного физико-технического института, 2008.
  • N. Mathivanan. Microprocessors, PC Hardware and Interfacing (англ.). — New Delhi: PHI Learning, 2006. — P. 316−317.
  • Keyboard and Auxillary Device Controller // IBM Personal System/2 Hardware Interface Technical Reference. — International Business Machines Corporation, 1988. — (IBM Personal Computer Hardware Reference Library).

Ссылки править