DOKK / manpages / debian 11 / manpages-de / mouse.4.de
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

/dev/mouse
Ein häufig verwendeter symbolischer Link zu einem Maus-Gerät.

ttyS(4), gpm(8)

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/.

ÜBERSETZUNG

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