Heim

PS/2-Schnittstelle

Die PS/2-Schnittstelle (PS/2-Anschluss, PS/2-Port, ursprünglich Auxiliary Port) ist eine weit verbreitete serielle Schnittstelle für Eingabegeräte wie die Tastatur und Maus, seltener auch für andere Zeigegeräte wie Trackball oder Grafiktablett. Die PS/2-Schnittstelle wird beispielsweise bei Personal Computern eingesetzt, dort jedoch zunehmend durch USB verdrängt.

Inhaltsverzeichnis

Geschichte

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

Der PS/2- wird jedoch allmählich vom USB-Anschluss abgelöst; viele neue Hauptplatinen haben keine PS/2-Anschlüsse mehr oder nur einen für die Tastatur. Die vielen Mäusen und einigen Tastaturen beigelegte Adapter von oder auf USB sind rein elektrische Adapter, wobei die Geräte aufgrund unterschiedlicher Signalpegel unterscheiden, ob sie an eine USB- oder PS/2-Schnittstelle angeschlossen sind und sich dementsprechend verhalten. Ein nicht auf USB ausgelegter PS/2-Anschluss funktioniert mit diesen Adaptern genauso wenig wie ein nicht auf PS/2 ausgelegtes USB-Gerät. Typisches Kennzeichen für einen „echten“ PS/2-USB-Umwandler, an den auch reine PS/2-Geräte angeschlossen werden können, ist zum einen ein Gehäuse für die Elektronik (meistens mitten im Kabel), zum anderen bieten fast alle Umwandler zwei PS/2-Anschlüsse, je einen für Maus und Tastatur. Derartige Adapter sind jedoch oft teurer als billige Tastaturen und Mäuse und existieren praktisch nur in einer Richtung, nämlich zum Anschluss von PS/2-Peripheriegeräten an USB-Rechner. Adapter zum Anschluss von USB-Peripheriegeräten an PS/2-Rechner sind mangels Nachfrage nicht erhältlich.

Anschluss

Die PS/2-Schnittstelle verwendet einen sechspoligen Mini-DIN-Stecker, während die Schnittstelle 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 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. 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 anderes Zeigegerät wie z.B. Trackball) und Tastatur. Die Anschlüsse sind in der Regel farbkodiert, die Tastatur hat violette und die Maus grüne Stecker bzw. Buchsen. Die Farbtöne sind im PC 99 System Design Guide von Intel und Microsoft vorgeschrieben. 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 nicht vertauscht werden sollten.

An Notebooks und einigen kompakten Industrie-PC-Hauptplatinen ist 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. Maus und Tastatur unterscheiden sich in ihrem Verhalten beim Einschalten bzw. Reset, so dass das Notebook zwischen beiden unterscheiden kann, wenn sie direkt angeschlossen sind. Um beide gleichzeitig anschließen zu können, werden die beiden ansonsten ungenutzten Pins in der Buchse als zusätzliche Takt- und Datenleitungen benutzt. Ein Y-Kabel verbindet +5V 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, dabei würden sich Maus und Tastatur gegenseitig blockieren.

Einige Hersteller haben die freien Pins auch für andere Zwecke benutzt, z. B. um eine Maus für den kombinierten Betrieb an PS/2 und RS232 auszulegen, oder um mit einer zusätzlichen Taste auf der Tastatur den PC einzuschalten. Dies kann bei bestimmten Kombinationen von Computern und Mäusen bzw. Tastaturen zu Problemen führen.

Aktuelle Systeme haben die PS/2-Schnittstelle zugunsten des flexibleren und Hot-Plug-fähigen USB komplett 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 physikalische Interface der PS/2 Schnittstelle ist mit dem der AT-Tastatur und MF2-Tastatur identisch. Es hat ähnlich wie die I2C-Schnittstelle eine Datenleitung Data und eine Taktleitung Clock. Die Pegel auf diesen Leitungen sind ca. 5V. Wie man in den Diagrammen oder dem Schaltplan sehen kann, kann jeder Teilnehmer die Daten- oder Takt-Leitung aktiv auf Low ziehen. Der high Pegel geschieht passiv durch jeweils einen Pullup Widerstand an Clock und Data (hier im Beispiel 4,7k Ohm). Um Datenkollision zu vermeiden, muss jeder Teilnehmer prüfen, ob vielleicht während der Übertragung ein anderer Teilnehmer die selber deaktivierte Leitung = high, auf low = aktiv zieht. Der Pegel Low = aktiv ist also dominant gegenüber High = passiv, welcher rezessiv ist.

Die Schnittstelle ist nicht für Hot Plugging, also Stecken im laufenden Betrieb, geeignet, weder das Protokoll noch die Steckverbinder erlauben dies. In manchen Fällen funktioniert es zwar (eher bei Tastaturen als bei Mäusen), man sollte sich aber darüber im Klaren sein, dass Computer oder Tastatur beziehungsweise Maus dabei theoretisch zerstört werden könnten.

Protokoll

Wie die Kapitel Scancode oder Tastatur bereits beschrieben, 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 bzw. beschäftigt und kann zur Zeit 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 Microcontroller der Tastatur erzeugt wird. Die Kommunikation zwischen Tastatur und PC geschieht nur über zwei Leitungen (Data und Clock) bidirektional. Somit sind grundsätzlich nur 4 verschiedene 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 dies 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 Leitungskapazität und Pullup-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.

  1. Im Einschaltmoment des Computers werden Clock und Data vom PC auf Low gezogen. Die Tastatur erkennt dieses und macht einen Selbsttest (basic assurance test).
  2. 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 Pullupwiderstand auf high.
  3. Da nun Clock und Data high sind, kann die Tastatur Daten schicken. Die Pause dieses Zustandes ist hier aus Platzgründen verkürzt dargestellt.
  4. 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.
  5. 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.
  6. Am Ende des Stopbits sind Data und Clock wieder beide high.
  7. Zur Bestätigung der empfangenen Daten legt der PC Clock auf low, bis die interne Verarbeitung abgeschlossen ist.


  1. 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.
  2. Hat die Tastatur das Startbit erkannt, legt sie Clock auf low, um damit das nächste Bit anzufordern.
  3. Nun folgen die Daten-Bits D0...D7, Parity und Stopbit nach gleichem Schema. Hier im Beispiel wird 1110 1101 = $ED = Set LED gesendet.
  4. 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.
  5. Danach wird Data von der Tastatur wieder zurückgenommen, und sowohl Data als auch Clock sind high.
  6. 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 z.B. den Parameter $02 übertragen (NumLock LED an). Die Befehlsübersicht steht unter Scancode.