Scroll to navigation

MOUSE(4) Pliki specjalne MOUSE(4)

NAZWA

mouse - interfejs myszy szeregowej

KONFIGURACJA

Myszy szeregowe podłączane są do linii szeregowej RS232/V24, której opis można znaleźć w ttys(4).

OPIS

Wstęp

Połączenia zwykłej wtyczki 9-pinowej stosowanej w myszach to:

pin nazwa zastosowanie
2 RX Dane
3 TX -12 V, Imax = 10 mA
4 DTR +12 V, Imax = 10 mA
7 RTS +12 V, Imax = 10 mA
5 GND Masa

Taka jest specyfikacja, ale w praktyce dla większości myszy wystarcza 9 V.

Sterownik może rozpoznawać mysz poprzez ustawienie niskiego poziomu linii RTS, a naztępnie przywrócenie jej poziomu wysokiego. Po około 14 ms mysz odeśle 0x4D ('M') linią danych. Po kolejnych 63 ms 3-przyciskowa mysz zgodna z Microsoft prześle 0x33 ('3').

Względne przemieszczenie myszy wysyłane jest jako dx (wartość dodatnia oznacza w prawo) i dy (wartość dodatnia oznacza w dół). Myszy mogą pracować z różnymi prędkościami. Wybór prędkości odbywa się poprzez cykliczne przejście przez prędkości 9600, 4800, 2400 i 1200 bitów/s, za każdym razem zapisując dwa znaki z poniższej tabeli i czekając 0,1 sekundy. Następująca tabela pokazuje dostępne prędkości i sekwencje znaków, służące do ich wyboru:

bitów/s sekwencja
9600 *q
4800 *p
2400 *o
1200 *n

Pierwszy bajt pakietu danych może być używany do celów synchronizacji.

Protokół Microsoft

Protokół Microsoft używa 1 bitu startu, 7 bitów danych, bez parzystości i z jednym bitem stopu przy prędkości 1200 bitów/sekundę. Dane są przesyłane do RxD w 3-bajtowych pakietach. Przesunięcia dx i dy są przesyłane jako uzupełnienie do dwóch, lb (rb) są ustawiane gdy wciśnięty jest lewy (prawy) przycisk myszy:

bajt d6 d5 d4 d3 d2 d1 d0
1 1 lb rb dy7 dy6 dx7 dx6
2 0 dx5 dx4 dx3 dx2 dx1 dx0
3 0 dy5 dy4 dy3 dy2 dy1 dy0

3-przyciskowy protokół Microsoft

Oryginalne myszy Microsoft posiadają jedynie dwa przyciski. Istnieją jednak myszy trójprzyciskowe, które również korzystają z protokołu Microsoft. Wciśnięcie trzeciego przycisku zgłaszane jest poprzez wysłanie pakietu z zerowym przesunięciem i bez wciśniętych przycisków. (Zatem, w odróżnieniu od pozostałych dwu przycisków, stan przycisku środkowego nie jest zgłaszany w każdym pakiecie.)

Protokół Logitech

Szeregowa 3-przyciskowa mysz Logitech korzysta z innego rozszerzenia protokołu Microsoft: gdy środkowy przycisk jest zwalniany, wysyłany jest 3-bajtowy pakiet opisany powyżej. Gdy środkowy przycisk jest naciskany, wysyłany jest 4-bajtowy pakiet, w którym czwarty bajt ma wartość 0x20 (lub ma ustawiony przynajmniej bit 0x20). W szczególności, naciśnięcie środkowego przycisku jest sygnalizowane jako 0,0,0,0x20, gdy żadan inny przycisk nie jest wciśnięty.

Protokół Mousesystems

Protokół Mousesystems korzysta z 1 bitu startu, 8 bitów danych, bez parzystości i dwu bitów stopu przy prędkości 1200 bitów/s. Dane są wysyłane do RxD w 5-bajtowych pakietach. dx jest przesyłany jako suma dwóch wartości uzupełnionych do dwóch, dy jest przesyłane jako zanegowana suma dwóch wartości uzupełnionych do dwóch. lb (mb, rb) są zerowane, gdy wciśnięty jest lewy (środkowy, prawy) przycisk myszy:

bajt d7 d6 d5 d4 d3 d2 d1 d0
1 1 0 0 0 0 lb mb rb
2 0 dxa6 dxa5 dxa4 dxa3 dxa2 dxa1 dxa0
3 0 dya6 dya5 dya4 dya3 dya2 dya1 dya0
4 0 dxb6 dxb5 dxb4 dxb3 dxb2 dxb1 dxb0
5 0 dyb6 dyb5 dyb4 dyb3 dyb2 dyb1 dyb0
Bajty 4 i 5 opisują zmianę, która nastąpiła od chwili wysłania bajtów 2 i 3.

Protokół Sun

Protokół Sun jest 3-bajtową wersją opisanego powyżej protokołuMousesystems: ostatnie dwa bajty nie są wysyłane.

Protokół MM

Protokół MM używa 1 bitu startu, 8 bitów danych, nieparzystości i jednego bitu stopu przy prędkości 1200 bitów/s. Dane są wysyłane do RxD w 3-bajtowych pakietach. dx i dy są wysyłane jako pojedyncze wartości ze znakiem, bit znaku oznacza wartość ujemną. lb (mb, rb) są ustawiane, gdy wciśnięty jest lewy (środkowy, prawy) przycisk myszy:

bajt d7 d6 d5 d4 d3 d2 d1 d0
1 1 0 0 dxs dys lb mb rb
2 0 dx6 dx5 dx4 dx3 dx2 dx1 dx0
3 0 dy6 dy5 dy4 dy3 dy2 dy1 dy0

PLIKI

/dev/mouse Powszechnie używane dowiązanie symboliczne wskazujące na urządzenie myszy.

ZOBACZ TAKŻE

ttys(4), gpm(8)

1996-02-10 Linux