Открыть сервис

Протокол PS/2

Протокол PS/2 — это последовательный синхронный интерфейс для подключения клавиатур и мышей к персональному компьютеру, разработанный компанией IBM в 1987 году для линейки компьютеров IBM PS/2. Протокол определяет электрические характеристики, формат передачи данных и логику взаимодействия между хост-контроллером (обычно встроенным в материнскую плату) и периферийным устройством. Несмотря на появление более современных интерфейсов, таких как USB, протокол PS/2 оставался широко распространённым до середины 2000-х годов и продолжает использоваться в некоторых специализированных и промышленных системах благодаря низкой задержке и полной аппаратной поддержке прерываний.

История

Протокол PS/2 был представлен вместе с компьютерами IBM Personal System/2 (PS/2) в апреле 1987 года. До этого для подключения клавиатур использовался более крупный 5-контактный разъём DIN (протокол AT), а мыши подключались через последовательные порты (RS-232) или специальные платы расширения. IBM унифицировала разъёмы для клавиатуры и мыши, используя 6-контактный мини-разъём DIN (Mini-DIN), и разработала единый двунаправленный протокол для обоих типов устройств.

В 1990-х годах протокол PS/2 стал стандартом де-факто для подключения клавиатур и мышей к IBM PC-совместимым компьютерам. Встроенные контроллеры, обычно реализованные на базе микросхемы Intel 8042 или её аналогов, обеспечивали поддержку протокола на аппаратном уровне. С появлением спецификации Plug and Play (PnP) в середине 1990-х годов протокол PS/2 был расширен для поддержки автоматического определения устройств, хотя реализация этой функции была необязательной и часто неполной.

С конца 1990-х годов началось вытеснение PS/2 интерфейсом USB, который предлагал горячее подключение, единый разъём для разных типов устройств и большую пропускную способность. Тем не менее, производители материнских плат продолжали включать порты PS/2 вплоть до середины 2010-х годов, особенно в моделях для оверклокинга и промышленного применения, где важна была низкая задержка ввода. В современных материнских платах порты PS/2 часто отсутствуют или реализуются через отдельный контроллер, подключаемый по шине USB.

Технические характеристики

Электрический интерфейс

Протокол PS/2 использует двунаправленную синхронную последовательную шину, состоящую из двух сигнальных линий — Data (данные) и Clock (тактовый сигнал), а также линий питания (+5 В) и земли. Обе сигнальные линии являются линиями с открытым коллектором (или открытым стоком) и подтянуты к напряжению +5 В через резисторы (обычно 4,7 кОм или 10 кОм). Это позволяет как устройству, так и хосту управлять линиями, переводя их в низкий логический уровень (0). Устройство является ведущим по тактовому сигналу при передаче данных от устройства к хосту, а хост — при передаче данных к устройству.

Формат передачи данных

Данные передаются 11-битными кадрами. Кадр состоит из:

  1. Стартового бита (логический 0).
  2. 8 бит данных (младший бит передаётся первым).
  3. Бита чётности (нечётная чётность — количество единиц в битах данных и бите чётности должно быть нечётным).
  4. Стопового бита (логическая 1).

Тактовая частота сигнала Clock обычно составляет от 10 до 16,7 кГц. Устройство генерирует тактовые импульсы для передачи данных, но хост может заблокировать передачу, удерживая линию Clock на низком уровне (функция Inhibit). Также хост может инициировать передачу данных, удерживая линию Clock низким уровнем не менее 100 мкс, а затем переводя её в высокое состояние и генерируя тактовые импульсы.

Команды и скан-коды

Взаимодействие между хостом и устройством строится на обмене командами и данными. Для клавиатур и мышей используются различные наборы скан-кодов (scancodes) — цифровых кодов, соответствующих нажатию или отпусканию клавиши, либо перемещению мыши. Существует три основных набора скан-кодов (Set 1, Set 2, Set 3), причём Set 2 является стандартным для большинства PS/2-клавиатур. Хост может отправить команду для смены набора.

Основные команды хоста к устройству включают:

  • FFh (Reset) — сброс устройства.
  • FEh (Resend) — повторная отправка последнего байта.
  • F6h (Set Default) — установка параметров по умолчанию.
  • F5h (Disable) — отключение сканирования.
  • F4h (Enable) — включение сканирования.
  • EDh (Set LEDs) — управление светодиодами клавиатуры (Num Lock, Caps Lock, Scroll Lock).
  • F0h (Set Scancode Set) — выбор набора скан-кодов.

Устройство может отправлять хосту не только данные о нажатиях, но и коды подтверждения (обычно FAh — Acknowledge) и коды ошибок (FEh — Resend, FCh — General Error, FDh — Self-Test Failed).

Разъёмы и цветовая маркировка

Стандартным разъёмом для протокола PS/2 является 6-контактный мини-разъём DIN (Mini-DIN-6). В IBM PC-совместимых компьютерах для клавиатуры и мыши используются физически одинаковые разъёмы, но с разной распайкой контактов (клавиатура и мышь не взаимозаменяемы без переходника или адаптера). Для различия портов была введена цветовая маркировка:

  • Фиолетовый — порт для клавиатуры.
  • Зелёный — порт для мыши.

Также существуют разъёмы Mini-DIN-6 с плоским ключом (для ноутбуков и некоторых материнских плат) и переходники с разъёма AT (5-контактный DIN) на PS/2.

Применение

Клавиатуры

PS/2-клавиатуры передают скан-коды, которые интерпретируются драйвером операционной системы или BIOS. Благодаря аппаратной поддержке прерываний (IRQ1 для клавиатуры), протокол PS/2 обеспечивает очень низкую задержку ввода (менее 1 мс), что критически важно для игр и профессиональных приложений. Многие механические клавиатуры и клавиатуры для киберспорта до сих пор выпускаются с интерфейсом PS/2 или поддерживают его через переходник.

Мыши

PS/2-мыши передают данные о перемещении и нажатии кнопок. Стандартный протокол мыши (Microsoft Mouse Protocol) использует 3-байтовые пакеты, содержащие информацию о перемещении по осям X и Y (до ±127 единиц) и состоянии трёх кнопок. Существуют расширенные протоколы (например, для мышей с колёсиком прокрутки или с дополнительными кнопками), которые передают пакеты большей длины (4 байта и более). Для мыши используется прерывание IRQ12.

Промышленные и встраиваемые системы

Благодаря простоте, надёжности и низкой стоимости реализации, протокол PS/2 продолжает применяться в промышленных контроллерах, POS-терминалах, банкоматах и других специализированных устройствах, где не требуется горячее подключение и высокая пропускная способность.

Сравнение с USB

ХарактеристикаPS/2USB
Горячее подключениеНет (требуется перезагрузка)Да
Задержка вводаОчень низкая (аппаратная)Низкая, но может варьироваться
Количество подключаемых устройств на порт1До 127 (через хабы)
Питание+5 В, до 500 мА+5 В, до 500 мА (USB 2.0)
Поддержка прерыванийАппаратная (IRQ)Программная (через драйвер)
Максимальная длина кабеляОколо 5 мДо 5 м (USB 2.0)
Сложность реализацииНизкаяВысокая

Недостатки

Основные недостатки протокола PS/2:

  • Отсутствие горячего подключения. Подключение или отключение устройства во время работы компьютера может привести к сбою или повреждению контроллера (хотя современные реализации часто имеют защиту).
  • Ограниченная функциональность. Протокол не поддерживает передачу аудио, видео или других данных, кроме ввода с клавиатуры и мыши.
  • Необходимость отдельных разъёмов. Для клавиатуры и мыши требуются разные порты, что увеличивает количество проводов и занимает место на задней панели.
  • Чувствительность к помехам. Сигнальные линии с открытым коллектором подвержены электромагнитным помехам, особенно на длинных кабелях.

Интересные факты

  • В некоторых материнских платах порт PS/2 для клавиатуры и мыши реализован на одном разъёме (комбинированный порт), но для одновременной работы обоих устройств требуется Y-образный переходник.
  • Протокол PS/2 изначально не был рассчитан на мыши — поддержка мыши была добавлена позже, и её контроллер часто реализовывался отдельно от контроллера клавиатуры.
  • В BIOS многих компьютеров можно отключить поддержку USB-клавиатуры и мыши, но PS/2-устройства работают всегда, что позволяет использовать их для настройки системы или восстановления после сбоя.
  • Существуют адаптеры, позволяющие подключать PS/2-клавиатуры и мыши к порту USB, но они не всегда корректно эмулируют все функции протокола (например, поддержку нескольких одновременных нажатий клавиш — N-key rollover).
  • В операционных системах семейства Windows драйвер i8042prt.sys отвечает за работу PS/2-контроллера, и его настройки (например, задержка автоповтора) могут быть изменены через реестр.

Источники

  • IBM Personal System/2 Hardware Interface Technical Reference (1988)
  • Adam Chapweske, "The PS/2 Mouse/Keyboard Protocol" (2001)
  • Intel 8042 Keyboard Controller Datasheet
  • Microsoft Windows Driver Kit (WDK) — документация по i8042prt.sys
  • "Beyond the Mouse: The PS/2 Protocol" — специализированные технические форумы и статьи

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →