MOUSE(4) | Linux-Programmierhandbuch | MOUSE(4) |
mouse - Schnittstelle für serielle Mäuse
Serielle Mäuse sind mit einer seriellen RS232/V24-Modemleitung verbunden; siehe ttyS(4) für eine Beschreibung.
Die Belegung der üblichen, für serielle Mäuse verwendeten 9-poligen Stecker ist:
Kontakt | Name | Verwendung |
2 | RX | Data |
3 | TX | -12 V, Imax = 10 mA |
4 | DTR | +12 V, Imax = 10 mA |
7 | RTS | +12 V, Imax = 10 mA |
5 | GND | Signalmasse |
Das ist die Spezifikation, praktisch reichen bei den meisten Mäusen 9 V.
Der Maus-Treiber kann die Maus erkennen, indem er RTS auf LOW fallen lässt und dann wieder auf HIGH setzt. Ungefähr 14 ms später sendet die Maus 0x4D ('M') auf der Datenleitung. Nach weiteren 63 ms sendet eine Microsoft -kompatible 3-Tasten-Maus 0x33 ('3').
Die relative Mausbewegung wird als dx (positiv bedeutet rechts) und dy (positiv bedeutet nach unten) gesendet. Verschiedene Mäuse können mit unterschiedlichen Geschwindigkeiten betrieben werden. Um Geschwindigkeiten auszuwählen, durchlaufen Sie die Geschwindigkeiten 9600, 4800, 2400 und 1200 Bit/s, schreiben jeweils die beiden Zeichen aus der nachstehenden Tabelle und warten 0,1 Sekunden. Die folgende Tabelle zeigt die verfügbaren Geschwindigkeiten und die Zeichen, die sie auswählen:
Bit/s | Zeichen |
9600 | *q |
4800 | *p |
2400 | *o |
1200 | *n |
Das erste Byte eines Datenpakets kann zur Synchronisation verwendet werden.
Das Microsoft-Protokoll verwendet 1 Start-Bit, 7-Daten-Bits, kein Paritäts- und ein Stopp-Bit bei einer Geschwindigkeit von 1200 Bit/s. Daten werden in Paketen von 3 Byte nach RxD gesendet. Die dx- und dy-Bewegungen werden im Zweierkomplement übertragen, lb (rb) werden gesetzt, wenn die linke (rechte) Taste betätigt wird:
Byte | 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 |
Die originalen Microsoft-Mäuse haben nur zwei Tasten. Es gibt aber auch einige 3-Tasten-Mäuse, die ebenfalls das Microsoft-Protokoll verwenden. Das Drücken und Loslassen der mittleren Maustaste wird berichtet, indem ein Paket ohne Bewegungsdaten und gedrückte Taste gesendet wird. (Damit wird im Gegensatz zu den beiden anderen Tasten der Status der mittleren Taste in keinem Paket übertragen.)
Serielle 3-Tasten-Mäuse von Logitech verwenden eine andere Erweiterung des Microsoft-Protokolls: Wenn die mittlere Taste oben ist, wird das eben erwähnte 3-Byte-Datenpaket gesendet. Wenn die mittlere Taste gedrückt ist, wird ein 4-Byte-Datenpaket gesendet, in dem das vierte Byte den Wert 0x20 hat (oder zumindest das Bit 0x20 gesetzt ist). Insbesondere wird das Drücken der mittleren Taste als 0,0,0,0x20 gemeldet, wenn keine anderen Tasten gedrückt sind.
Das Mousesystems-Protokoll verwendet 1 Start-Bit, 8-Daten-Bits, kein Paritäts- und zwei Stopp-Bit bei einer Geschwindigkeit von 1200 Bit/s. Daten werden in 5-Byte-Paketen zu RxD gesendet. dx wird als die Summe der beiden Zweierkomplement-Werte, dy als negierte Summe der Zweierkomplement-Werte gesendet. lb (mb, rb) werden gelöscht, wenn die linke (mittlere, rechte) Taste gedrückt wird:
Byte | 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 |
Die Bytes 4 und beschreiben die Änderungen seit dem Versand der Bytes 2 und 3.
Das Sun-Protokoll ist die 3-Byte-Version des obigen 5-Byte-Protokolls von Mousesystems: die letzten beiden Byte werden nicht gesendet.
Das MM-Protokoll verwendet 1 Start-Bit, 8-Daten-Bits, ungerade Parität und ein Stopp-Bit bei einer Geschwindigkeit von 1200 Bit/s. Die Daten werden in 3-Byte-Paketen an RxD gesendet. dx und dy werden als einzelne vorzeichenbehaftete Werte gesendet, das Vorzeichenbit kennzeichnet einen negativen Wert. lb (mb, rb) werden gesetzt, wenn die linke (mittlere, rechte) Taste gedrückt wird:
Byte | 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 |
Diese Seite ist Teil der Veröffentlichung 5.10 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> und Dr. Tobias Quathamer <toddy@debian.org> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
13. August 2020 | Linux |