Порт PS/2 (мышь и клавиатура)
Прислано Pretich August 14 2016 06:50:13

Порт PS/2 (мышь и клавиатура)

 

Схема цоколевки

 

Вилка (устанавливается на кабеле)

Розетка (устанавливается на корпусе компьютера)

 

PS/2 цоколевка разъема

 

 

PS/2 разводка протокол разъема

 

 

Названия и функциональные назначения выводов

 

№ вывода

Обозначение

Описание

1

Data

Data (передача данных)

2

n/c

Not Connected (не используется)

3

GND

Ground (корпус)

4

+5VDC

Питание, +5 В

5

Clock

Тактовая частота передачи данных

6

n/c

Not Connected (не используется)

 

Где посмотреть протокол мыши и клавиатуры?

 

Обработчик аппаратного прерывания обязан, помимо обработки приходящих от мыши данных, также восстанавливать в порту биты питания. Эти биты устанавливаются в порту базовый_адрес+4, который называется Modem Control Register. Известны мыши, для питания которых нужно выдавать в этот порт число 8, число 0Bh, а также мышь, которая в зависимости от этого числа меняет свой режим работы (0B-MS, 08-PC). Драйвер TRUEDOX обеспечивает это переключение по функциям A0 (PC mouse) и A1 (MS mouse).

Есть три распространенных протокола обмена.

 

Microsoft Mouse

 

Протокол обмена следующий: 1200,N71. Обеспечивает информацию о 2 клавишах. По каждому событию выдается пачка из 3 байт:

 

1

--

1

LB

RB

Y7

Y6

X7

X6

2

--

0

X5

X4

X3

X2

X1

X0

3

--

0

Y5

Y4

Y3

Y2

Y1

Y0

 

LB, RB - состояние клавиш, нажатая клавиша = 1. Остальные значащие биты- относительное пеpемещение в дополнительном коде со времени последней посылки.

Определить наличие мыши можно следующим образом: в порт xFC записать число 8, подождать, а потом опять 0Bh. Hа запись числа 0Bh мышь реагирует посылкой одного или нескольких байтов, среди которых обязательно должен быть байт 4Dh (буква 'M' в таблице ASCII)

 

PC Mouse System

 

Протокол обмена следующий: 1200,N81 Обеспечивает информацию о 3 клавишах. По каждому событию выдается пачка из 5 байт:

 

1

1

0

0

0

0

LB

MB

RB

2

X7

X6

X5

X4

X3

X2

X1

X0

3

Y7

Y6

Y5

Y4

Y3

Y2

Y1

Y0

4

X7

X6

X5

X4

X3

X2

X1

X0

5

Y7

Y6

Y5

Y4

Y3

Y2

Y1

Y0

 

LB, MB, RB - состояние клавиш, нажатая клавиша = 0. Остальные значащие биты- относительное пеpемещение со времени последней посылки в дополнительном коде в двух частях, которые надо суммировать. Видимо, это связано с тем, чтобы не использовать X7 и Y7, чтобы не пересекаться с первым ключевым байтом. Способ определения наличия мыши в этом режиме мне неизвестен.

PS/2 Mouse


Подобен клавиатурному.

 

***