# PS/2-Schnittstelle

Die PS/2-Schnittstelle (PS/2-Anschluss, PS/2-Port, ursprünglich Auxiliary Port, benannt nach Personal System/2) ist eine serielle Schnittstelle für Eingabegeräte, wie etwa Tastatur und Maus, seltener auch Trackball oder Grafiktablett. PS/2 definiert einen Stecker (Mini-DIN 6), einen elektrischen Standard, ein paketorientiertes Übertragungsprotokoll sowie Codes für die Kommunikation zwischen der Tastatur und dem Controller im PC. PS/2 war einst bei Personal Computern weit verbreitet. Auch wenn sie nahezu vollständig durch USB verdrängt worden ist, wird diese Schnittstelle immer noch in Hauptplatinen eingebaut, da sie sich einer gewissen Beliebtheit erfreut aufgrund bestimmter technischer Unterschiede. Diese sind im Einzelnen: direkter Zugriff über Interrupts statt über USB-Polling; keine Einschränkung, wie viele Tasten gleichzeitig gedrückt werden können dank n-key rollover, PS/2 ermöglicht rechnerweit gesperrte USB-Anschlüsse zum Schutz vor Datenabfluss, Verwendung eines Universaltreibers, relativ zu USB geringere Komplexität. Auch PCI-Erweiterungskarten zur Nachrüstung von PS/2-Anschlüssen sind erhältlich. Eingebaute Tastaturen mancher moderner Laptops sind auch heutzutage noch intern über PS/2 angeschlossen, da dies einen stromsparenderen Betrieb ermöglicht und das gegenüber USB fehlende Hot Swapping in diesem Fall ohnehin irrelevant ist.

## Geschichte

Zunächst war die PS/2-Schnittstelle nur an Computern der RS/6000- und PS/2-Reihe (daher der Name) von IBM zu finden und erlangte nur wenig Bedeutung. Nach dem Ende der Personal-System/2-Reihe führte die Firma jedoch die IBM-PC-Reihe wieder fort und verwendete dort nun ebenfalls PS/2-Anschlüsse für die Eingabegeräte. Damit konnte sich der PS/2-Anschluss auch auf dem Markt der PC-Nachbauten etablieren und tauchte in den späten 1990er Jahren mit Einführung des ATX-Standards für Hauptplatinen vermehrt auf. Spätere Versionen des ATX-Standard definierten die Farbe der Anschlüsse. Sogar Hewlett-Packard verwendete ihn für den HP 9000, ebenso die Digital Equipment Corporation für einige Terminals.

### Adapter

Die bei vielen Mäusen und einigen Tastaturen beigelegten Adapter von oder auf USB sind rein passive Adapter zur Anpassung der Steckernorm bzw. -form; angeschlossene Geräte müssen anhand der Signalpegel unterscheiden, ob sie an eine USB- oder PS/2-Schnittstelle angeschlossen sind, und sich dementsprechend verhalten. Ein nicht auf USB ausgelegtes PS/2-Gerät funktioniert mit diesen Adaptern genauso wenig wie ein nicht auf PS/2 ausgelegtes USB-Gerät.
Typisches Kennzeichen für einen aktiven PS/2-USB-Adapter, an den auch reine PS/2-Tastaturen angeschlossen werden können, welche den USB-Standard nicht beherrschen, ist eine in einem Gehäuse zusätzlich vorhandene Elektronik, welche eine aktive Umsetzung der Protokolle von PS/2 auf USB vornimmt. Die meisten aktiven Adapter bieten auch zwei PS/2-Anschlüsse, je einen für Maus und Tastatur. Derartige Adapter können etwas teurer sein als sehr billige Tastaturen und Mäuse, sind aber eine immer noch lohnende Möglichkeit, hochwertige PS/2-Tastaturen an Rechnern zu betreiben, die USB-, aber keine PS/2-Anschlüsse mehr haben.
Daneben existieren auch in umgekehrter Richtung aktive USB-PS/2-Adapter, ebenfalls mit einer zusätzlichen Elektronik, an die eine USB-Tastatur und eine USB-Maus angesteckt werden können, welche den PS/2-Standard nicht beherrschen. Damit ist es möglich, neuere USB-Tastaturen oder USB-Mäuse an älteren Rechnern mit PS/2-Schnittstelle zu betreiben.

## Anschluss

Die PS/2-Schnittstelle verwendet einen sechspoligen Mini-DIN-Stecker, während die Tastaturschnittstelle beim vorhergehenden AT-Format mit dem größeren fünfpoligen DIN-Stecker ausgestattet war. Beide Anschlüsse sind von den elektrischen Eigenschaften her identisch, so dass sich Tastaturen mit DIN-Stecker über ein einfaches Adapterkabel oder verdrahteten Adapter an die PS/2-Schnittstelle anschließen lassen und umgekehrt. Eine Ausnahme bildet lediglich die noch ältere XT-Tastatur (aus der Zeit des IBM PC XT), die zwar die gleiche Steckerform wie beim AT verwendet, aber elektrisch weder mit der PS/2- noch mit der AT-Schnittstelle kompatibel ist. Einige ältere Tastaturen haben deshalb Umschalter eingebaut. Mäuse wurden beim AT-Format normalerweise über die RS-232-Schnittstelle angeschlossen.
Bei Desktop-PCs sind üblicherweise zwei PS/2-Buchsen vorhanden, je eine für Maus (oder ein anderes Zeigegerät) und Tastatur. Obwohl sie die gleichen Steckverbinder und sogar die gleiche Pinbelegung haben, kommen für Maus und Tastatur unterschiedliche Protokolle zum Einsatz, so dass die Stecker für eine korrekte Funktion des jeweiligen Eingabegeräts nicht vertauscht werden dürfen. Durch die elektrisch identischen Anschlusseigenschaften besteht aber in der Regel keine Gefahr einer Hardwarebeschädigung beim versehentlichen Vertauschen. Die Anschlüsse sind ab Ende der 90er in der Regel farbkodiert; die Tastatur hat violette und die Maus grüne Stecker beziehungsweise Buchsen. Die Farbtöne sind im PC 99 System Design Guide von Intel und Microsoft festgelegt. In ihrem PC 2001 System Design Guide findet sich das bereits nicht mehr. Diese und andere führende Hersteller empfahlen bereits ab den späten 1990er Jahren die Alternative USB.
An Notebooks und einigen kompakten Industrie-PC-Hauptplatinen war dagegen nur eine PS/2-Buchse vorhanden, die fast immer für Maus und Tastatur geeignet ist und – außer bei sehr alten Modellen – auch für beides gleichzeitig mit einem speziellen Y-Kabel genutzt werden kann. Maus und Tastatur unterscheiden sich in ihrem Verhalten beim Einschalten und beim Reset, sodass das Notebook zwischen beiden unterscheiden kann, wenn sie direkt angeschlossen sind. Um sie gleichzeitig an eine PS/2-Buchse anschließen zu können, werden die beiden ansonsten ungenutzten Pins in der Buchse als zusätzliche Takt- und Datenleitungen benutzt. Das Y-Kabel verbindet +5 V und GND des Steckers (Notebook) mit beiden Kupplungen, und je ein Paar aus Takt- und Datenleitungen mit je einer Kupplung. Es werden also nicht einfach alle Kontakte parallel geschaltet, sonst würden sich Maus und Tastatur gegenseitig blockieren.
Einige Hersteller haben die freien Pins auch für andere Zwecke benutzt, beispielsweise um eine Maus für den kombinierten Betrieb an PS/2 und RS-232 auszulegen oder um mit einer zusätzlichen Taste auf der Tastatur den PC einzuschalten. Das kann bei bestimmten Kombinationen von Computern und Mäusen beziehungsweise Tastaturen zu Problemen führen.
Bei den meisten aktuellen PC-Systemen haben die Hersteller die PS/2-Schnittstelle zugunsten des hot-plug-fähigen USB ganz aufgegeben. Für alte Betriebssysteme emuliert das BIOS aber weiterhin mehr oder weniger gut die PS/2-Schnittstelle, auch wenn Maus und Tastatur tatsächlich über USB angeschlossen sind.

## Elektrische Schnittstelle

Das physische Interface der PS/2-Schnittstelle ist mit dem der AT- und MF2-Tastatur identisch. Es hat ähnlich wie die I$^2$C-Schnittstelle eine Datenleitung Data und eine Taktleitung Clock. Die Pegel auf diesen Leitungen sind circa 5 V. Wie man in den Diagrammen oder dem Schaltplan sehen kann, kann jeder Teilnehmer die Daten- oder Taktleitung aktiv auf Low ziehen. Der High-Pegel wird passiv, durch jeweils einen Pull-up-Widerstand an Clock und Data (hier im Beispiel 4,7 kOhm), realisiert. Um eine Datenkollision zu vermeiden, muss jeder Teilnehmer prüfen, ob vielleicht während der Übertragung ein anderer Teilnehmer dieselbe deaktivierte Leitung = high, auf low = aktiv zieht. Der Pegel low = aktiv ist also dominant gegenüber dem Pegel high = passiv.
Die Schnittstelle ist nicht für Hot Plugging, also Stecken im laufenden Betrieb, vorgesehen, weder das Protokoll noch die Steckverbinder erlauben das.

## Protokoll

Wie die Artikel Scancode oder Tastatur bereits beschreiben, ist das Protokoll bei einer PC/XT-Tastatur als geschichtlicher Vorgänger der übrigen Tastaturen anders. Hier wird lediglich das aktuell benutzte Protokoll einer MF2-Tastatur (AT-Tastatur) beschrieben.
| Clock | Data | Beschreibung |
| 1 | 1 | PC ist bereit, Daten von der Tastatur zu empfangen. |
| 1 | 0 | PC zeigt mit Startbit an, dass er Daten zur Tastatur schicken will. |
| 0 | 1 | PC ist busy (beschäftigt) und kann zurzeit nichts empfangen. |
| 0 | 0 | PC wird gerade zurückgesetzt. |
Grundsätzlich kommt der Takt von der Tastatur, sowohl zum Senden von Daten an den PC als auch zum Empfang von Daten vom PC. Die Frequenz kann beträchtlich schwanken, da der Takt per Software im Mikrocontroller der Tastatur erzeugt wird. Die Kommunikation zwischen Tastatur und PC geschieht nur über zwei Leitungen (Data und Clock) bidirektional. Somit sind grundsätzlich nur vier unterschiedliche Anfangszustände möglich.
Zieht der PC zu irgendeinem Zeitpunkt die Taktleitung auf low, muss die Tastatur eine eventuell laufende Übertragung sofort abbrechen und erst wieder beginnen, wenn die Taktleitung freigegeben ist. Leider beachten viele Tastaturen das nicht, was häufig zu Problemen mit Adaptern und KVM-Switches führt.
In den Diagrammen sind die Übergänge als Flanken gezeichnet, um den Verlauf leichter erkennbar zu machen. Nimmt man es ganz genau, geschieht der Übergang von high auf low nahezu abrupt (durch den niederohmigen Transistor). Der Übergang von low auf high ist dagegen eher langsam und folgt der Form einer e-Funktion (RC-Glied aus Bus-/Leitungskapazitäten und Pull-up-Widerstand).
Das erste Diagramm zeigt den Verlauf der Daten kurz nach dem Einschalten des Computers. In diesem Beispiel wird von der Tastatur ein BAT = $AA geschickt.
* Im Einschaltmoment des Computers werden Clock und Data vom PC auf low gezogen. Die Tastatur erkennt dieses und macht einen Selbsttest (basic assurance test).
* Nachdem die Software im PC eine Initialisierung (Grundeinstellung aller nötigen Peripherie-Bausteine) vorgenommen hat, wird zunächst Data nicht mehr vom PC auf low gezogen. Ist der PC nun bereit zum Empfang, wird auch Clock deaktiviert und geht durch den Pull-up-Widerstand auf high.
* Da nun Clock und Data high sind, kann die Tastatur Daten schicken. Die Pause dieses Zustandes ist hier aus Platzgründen verkürzt dargestellt.
* Zuerst zieht die Tastatur Data auf low (Startbit), um den Beginn eines zu übertragenden Bytes zu kennzeichnen. Danach wird von der Tastatur Clock für eine Weile auf low gezogen.
* Auf gleiche Art und Weise werden die folgenden Datenbits D0...D7, odd Parity und Stopbit (Data = 1) übertragen. In dem Beispiel ist D7...D0 = 1010 1010 welches $AA = BAT entspricht. Da die Anzahl der enthaltenen Einsen gerade ist, ist das Parity-Bit für odd Parity gesetzt.
* Am Ende des Stopbits sind Data und Clock wieder beide high.
* Zur Bestätigung der empfangenen Daten legt der PC Clock auf low, bis die interne Verarbeitung abgeschlossen ist.
* Zunächst muss der PC Clock wieder deaktivieren (negativ True logic), damit eine Übertragung ermöglicht wird. Knapp danach legt der PC Data auf low, um mit dem Startbit einen Übertragungswunsch zu signalisieren.
* Hat die Tastatur das Startbit erkannt, legt sie Clock auf low, um damit das nächste Bit anzufordern.
* Nun folgen die Daten-Bits D0...D7, Parity und Stopbit nach gleichem Schema. Hier im Beispiel wird 1110 1101 = $ED = Set LED gesendet.
* Während Clock im Stopbit noch high ist, legt die Tastatur zur Quittierung auf Bitebene Data auf low und dann Clock für eine Weile auf low.
* Danach wird Data von der Tastatur wieder zurückgenommen, und sowohl Data als auch Clock sind high.
* Schließlich setzt der PC Clock wieder auf low, um die Daten zu verarbeiten.
Nach diesem Befehl Set LED würde die Tastatur mit Ack auf Byte-Ebene den Befehl als ‚verstanden‘ quittieren. Als Nächstes kann dann der PC zum Beispiel den Parameter $02 übertragen (NumLock-LED an). Die Befehlsübersicht steht unter Scancode.

## Scancodes

Wie in der Abbildung zu erkennen ist, sind die Scancodes der Tastatur in verschlungenen Linien angeordnet, die von der internen Verdrahtung der Matrix in historischen IBM-Tastaturen abgeleitet ist. Beispiele: Y-S-A-W-2, N-B-H-G-Z-6 oder M-J-U-7-8.