table of contents
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¶
1996-02-10 | Linux |