- 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 Tastatur und Maus, seltener auch für andere Zeigegeräte wie Trackball oder Grafiktablett. Sie 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 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 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 1990er 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.
Mittlerweile wird der PS/2- allmählich vom USB-Anschluss abgelöst; einige neue Hauptplatinen haben keine PS/2-Anschlüsse mehr oder nur einen für die Tastatur. Die vielen Mäusen und einigen Tastaturen beigelegten 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 integriert im Kabel), zum anderen bieten fast alle Umwandler 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, bieten aber aufgrund ihres immer noch geringen Anschaffungspreises eine lohnende Möglichkeit, hochwertige PS/2-Tastaturen an USB-Rechnern zu betreiben.
Adapter zum Anschluss von USB-Peripheriegeräten an PS/2-Rechner gibt es für den Ausnahmefall „Maus“. Mäuse, die beide Protokolle unterstützen, werden mit einem entsprechenden PS/2-Adapter geliefert, der auf den USB-Stecker der Maus gesteckt wird.
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 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 ein anderes Zeigegerät) und Tastatur. Die Anschlüsse sind 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 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 und beim 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 +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 einigen 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 physikalische Interface der PS/2-Schnittstelle ist mit dem der AT- und MF2-Tastatur identisch. Es hat ähnlich wie die I2C-Schnittstelle eine Datenleitung Data und eine Taktleitung Clock. Die Pegel auf diesen Leitungen sind zirka 5 V. 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 wird passiv realisiert durch jeweils einen Pullup-Widerstand an Clock und Data (hier im Beispiel 4,7 kOhm). 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, vorgesehen, weder das Protokoll noch die Steckverbinder erlauben das. In vielen Fällen funktioniert es zwar (eher bei Tastaturen als bei Mäusen), theoretisch könnten aber Computer oder Tastatur beziehungsweise Maus dabei zerstört werden.
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 (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 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 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.- 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 Pullupwiderstand 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.
Weblinks
Wikimedia Foundation.