Мышь PS/2
Мышь PS/2 — специализированный интерфейс для подключения указывающего устройства (мыши, трекбола и т.д.) с использованием разъёма mini-DIN-6. Впервые был представлен в компьютере IBM PS/2, благодаря чему и получил своё название.
История
[править | править код]Изначально для PC-совместимых компьютеров использовались мыши двух типов: PC-Mouse от Mouse Systems[англ.] и Microsoft Mouse[англ.]. Оба этих типа мыши подключались по протоколу 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[англ.] расширила формат посылки до четырёх байт, и он принял следующий вид:
Бит 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].
Примечания
[править | править код]- ↑ Гук, 2006, с. 655.
- ↑ Гук, 2006, с. 654.
- ↑ 1 2 3 4 Гук, 2006, с. 656.
- ↑ Synaptics RMI3 Specification Архивная копия от 3 марта 2022 на Wayback Machine, 2007—2008 (англ.)
- ↑ Linux 4.6 Adding Synaptics RMI4 To Better Handle Touchscreens, Touchpads - Phoronix (англ.). phoronix.com (19 марта 2016). Дата обращения: 1 августа 2019. Архивировано 13 августа 2020 года.
- ↑ Synaptics RMI4 Specification PN: 511-000136-01 Rev. E, Synaptics Incorporated 2007—2011, proprietary information (англ.)
- ↑ 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).
Ссылки
[править | править код]- Adam Chapweske. The PS/2 Mouse Interface (англ.) (1 апреля 2003). Архивировано 16 сентября 2008 года.
- Brouwer, Andries Keyboard scancodes: The PS/2 Mouse (англ.). Stanford Secure Computer Systems group (20 мая 2004). Дата обращения: 20 сентября 2023.