21.09.2001
Der Strom wurde bei zwei Logitech Mäusen gemessen:
Wheel Mouse
(optical): ca. 55 mA
Dreitastenmaus: ca. 11,3 mA
|
|
kitCON-541 |
Programm |
|||||
|
|
Pin |
Bezeichnung |
Technische Daten |
Beschreibung |
Variable |
Register |
Bit |
|
Clock |
98 |
P3.3,
/INT1 |
MOUSE_CLOCK Eingang für Clock der PS/2-Maus |
mouse_clock |
P3 |
3 |
|
|
Data |
93 |
P3.0, LED
2 |
10,0mA[iii] |
MOUSE_DATA Eingang für
Data der PS/2-Maus |
mouse_data |
P3 |
0 |
|
|
P 2.8 |
Pin 93 |
P 2.10 |
Pin 94 |
|
Clock |
mouse_
clock_0 |
(LED
13) |
mouse_
clock_1 |
(LED
11) |
|
|
P 2.9 |
Pin 97 |
P 2.11 |
Pin 98 |
|
Data |
mouse_
data_0 |
(LED
12) |
mouse_
data_1 |
(LED
10) |
· Die Pull-Ups (KitCON-541: 1,7MW...4,7MW[1], KitCON-167: nicht gemessen) und die Pull-Ups der Maus (30KW...700KW) sind parallel geschalten. Da die der Maus viel kleiner sind, sind die Pull-Ups des KitCOM vernachlässigbar.
· Versuche zeigen, dass die Pull-Ups ausreichend klein sind (Empfehlung ist 10KW[iv])
· Wegen Open-Collector kann Maus nur senden (= Datenleitung auf 0 ziehen), wenn Clock = Data = 1. Dies ist deshalb der Standartzustand.
· Es kann immer nur einer Senden. Wenn der Computer senden möchte (siehe unten), hat die Maus sofort mit dem Senden aufzuhören um dem Computer das Senden ermöglichen. Das macht sie indem sie Clock = Data = 1 setzt. Nur zum Takten bzw. Bestätigen setzt die Maus dann noch für 40ms/50ms dann noch Clock = 0.
·
Die Maus startet nur mit dem Senden, falls Clock = Data
= 1 ist, indem sie Data auf 0 setzt (=Bit 0) und nach 12ms[2]
Clock = 0 setzt (= 0. High-Low-Flanke).
· Dieser Vorgang wird 11 mal durchgeführt. Die Daten werden immer bei der High-Low-Flanke vom Computer gelesen und gespeichert.
· Direkt nach der 11. High-Low-Flanke der Maus setzt der Computer Clock = 0. Das bestätigt den Empfang und verhindert weiteres Senden der Maus. Wegen dem Stopbit ist schon Data = 1. Das bleibt auch so.
· Auswerten der Daten durch den Computer:
|
Bit |
Bezeichnung |
Anmerkung |
|
0 |
Startbit |
muss 0 sein! |
|
1 |
Daten 0 (LSB) |
|
|
2 |
Daten 1 |
|
|
3 |
Daten 2 |
|
|
4 |
Daten 3 |
|
|
5 |
Daten 4 |
|
|
6 |
Daten 5 |
|
|
7 |
Daten 6 |
|
|
8 |
Daten 7 (MSB) |
|
|
9 |
Parität |
0-ungerade Anzahl von Daten = 1, 1-gerade Anzahl |
|
10 |
Stopbit |
muss 1 sein! |
· Wieder Clock = 1. Das erlaubt der Maus weitere Daten zu senden.
· Computer setzt Clock = 0. Das ist das Zeichen für die Maus, dass sie keine Daten mehr senden darf. Dann wartet er 125ms.
· Computer setzt Data = 0. Das ist das Zeichen für die Maus, dass der Computer jetzt Daten senden möchte. Dann wartet er 250ms.
· Computer setzt Clock = 1. Der Computer erwartet von der Maus, dass sie zur Datenübertragung über Clock taktet.
· Mit der High-Low-Flanke auf Clock nach 180ms, welche durch die Maus erzeugt wird, liest die Maus das Startbit (= Bit 0, siehe Tabelle weiter oben).
· Der Computer setzt dann Daten = Daten 0 (= Bit 1, siehe Tabelle weiter oben). Nach 40ms wird durch die Maus wieder Clock = 1 und nach weiteren 40ms kommt die nächste High-Low-Flanke. Jetzt setzt der Computer das nächste Datenbit.
· Das wiederholt sich solange, bis so auch das Stopbit (=Bit 10, siehe Tabelle weiter oben) gesendet wurde. Bei diesem Zustand (Data = 1) bleibt es dann auch.
· Die Maus sorgt dafür, dass nach den 40ms Clock = 0 für 80ms Clock = 1 und dann wieder für 50ms Clock = 0 gesetzt wird. Dann wird und bleibt Clock = 1.
· Nach dem Anlegen der Versorgungsspannung
700ms nachdem die Maus mit Strom versorgt wird, sendet sie den Code $AA und kurz danach $00.
· Nach „Reset“ durch den Computer
Nachdem der Computer $FF (=Reset) gesendet hat, antwortet die Maus sofort mit $FA (=Acknowledge). Nach 500ms sendet sie $AA und $00.
· Nach einem Befehl durch Computer
Nachdem der Computer etwas gesendet hat, wird meist mit $FA (Acknowledge) geantwortet. Je nachdem was der Computer gesendet hat, können noch weiter Daten als Antwort erfolgen.
· Nachdem der Computer den Status und Bewegung abfragt
Auf das Senden von $EB des Computers antwortet die Maus mit $FA (Acknowledge) und weiteren 3 Daten, welche den Status der Maustasten und die relative Bewegung seit der letzen Abfrage beschreiben.
· Nachdem der Computer die Maus in den „Stream-Mode“ geschalten hat
Auf das Senden von $F4 des Computers, antwortet die Maus mit $FA (Acknowledge). Ab jetzt sendet die Maus immer, wenn es eine Änderung der Maustasten oder eine Bewegung gibt, ohne weitere Aufforderung 3 Daten, welche den Status der Maustasten und die relative Bewegung seit dem letzen Senden beschreibt.
[1] Mit Ohmmeter gemessen
[2] Alle Zeitangaben sind nur grobe Richtwerte. Das Protokoll ist sehr unempfindlich gegen Abweichungen.
[i] SIEMENS C540U / CC541U 8-Bit CMOS Microcontroller, User’s Manual 11.97, 6-20
[ii] SIEMENS C540U / CC541U 8-Bit CMOS Microcontroller, User’s Manual 11.97, 11-2
[iii] SIEMENS C540U / CC541U 8-Bit CMOS Microcontroller, User’s Manual 11.97, 11-2
[iv] Synaptics TouchPad Interfacing
Guide, Second Edition, Page 28