PS/2 ...

Donnerstag, 30. April 2009
 / von huha
 

Die PS/2-Schnittstelle entstand als Weiterentwicklung der 1984 von IBM entwickelten AT-Schnittstelle. Sie wurde von IBM 1987 für das "Personal System 2" entwickelt und erfreut sich seitdem großer Beliebtheit. Auch auf modernen Computern ist sie noch anzutreffen; sie ist bewährt und einfach zu implementieren. Allerdings wurde PS/2 nicht dafür entworfen, Tastaturen im Betrieb aus- oder einzustecken. Schon aufgrund des Steckerdesigns ist dies nicht zu empfehlen: Im schlimmsten Fall können Tastatur und Mainboard beschädigt werden.

Make or break

Wird eine Taste gedrückt, sendet der Tastaturcontroller einen "make"-Code an den Computer. Wird sie losgelassen, wird ein "break"-Code geschickt. Das ermöglicht es, eine Taste anzutippen, während eine andere gedrückt gehalten wird. Was beim Schreiben (von Großbuchstaben abgesehen) kaum einen Nutzen hat, wird spätestens in Spielen wichtig. Da nicht immer garantiert werden kann, daß der Computer einen Tastendruck sofort erkennt, besitzt jede Tastatur einen kleinen Speicher, der für diesen Fall einige Tastendrücke puffert. Wird eine Taste über längere Zeit gedrückt gehalten, sendet der Tastaturcontroller mit der Tastenwiederholungsrate periodisch einen Make-Code.

Um N-Key Rollover zu realisieren, muß der Microcontroller lediglich den Status aller Tasten speichern können, um beim Loslassen einen entsprechenden Break-Code auszugeben.

Lange Leitung

Zur Verdeutlichung der Kommunikation über PS/2 hier einige Beispiele, was über die Leitung gesendet wird. Wir verwenden die gebräuchliche Schreibweise, in der wir ein Byte (2^8 Zustände) in der hexadezimalen Notation angeben. 00 ist binär also 00000000, 79 entspricht 01111001, und so weiter.

Die meisten Tasten haben Make-Codes, die ein Byte lang sind. Der Break-Code ist ein Byte länger: Das erste Byte ist dabei üblicherweise F0 und der Rest der Make-Code der Taste. Aus historischen Gründen hat die SysRq/Break (Pause/Untbr)-Taste keinen Break-Code, der Rechner behandelt einen Druck auf diese Taste daher als Druck mit sofortigem Loslassen.

Beispielhaft wird die Taste "a" gedrückt und danach wieder losgelassen:

Um einen Großbuchstaben zu schreiben, muß die Shift-Taste gedrückt und gehalten werden (für "A" wäre dies die rechte), dann der Buchstabe angeschlagen und danach die Shift-Taste wieder losgelassen. Ein großes "A" schickt folgendes über die Leitung:

Ganze Wörter funktionieren im Prinzip genauso, wie wir bei "Hallo" sehen: