So funktionieren Tastaturen

Willkommen in der Matrix

Die grünen Buchstaben, aus denen sich in der Hoolywood-Trilogie Matrix die virtuelle Welt formt, sind legendär geworden. Doch was hat die Matrix mit PC-Tastaturen zu tun, abgesehen davon, dass man ohne Tastatur nur schwerlich Programmcode schreiben kann, außer man ist eine KI.

Der Bezug zur Matrix erschließt sich, wenn man eine Tastatur auseinanderschraubt. Denn die einzelnen Tasten sind auf einer Matrix angeordnet, die aus horizontalen und vertikalen Leiterbahnen aufgebaut ist. Sobald eine Taste gedrückt wird, dann entsteht ein Kontakt zwischen einem horizontalen und einem vertikalen Leiter, ein Schaltkreis wird geschlossen. Das wird von einem Micro-Controller registriert, der dann den Scancode der gedrückten Taste an den Rechner schickt.

Besonders gut kann man den Matrix-Aufbau bei Tastaturen betrachten, die bedruckte Folien für das Registrieren der Tastenbetätigung nutzen. Hier sind die Reihen und Spalten jeweils auf einer bedruckten Polyesterfolie angeordnet, mit einer Isolierfolie dazwischen. Die Betätigung einer Taste, für Tastenwiderstand und Rückstellkraft sorgt hier meist eine Silikonmatte mit Noppen, sorgt für den Kontakt der beiden Leiterfolien unter der Taste, der Stromkreis wird an dieser Stelle geschlossen.

Eine ältere Cherry-Tastatur mit bedruckten Folien als Schaltelement. Die Silikonmatte dient als Federelement für die einzelnen Tasten.
Eine ältere Cherry-Tastatur mit bedruckten Folien als Schaltelement. Die Silikonmatte dient als Federelement für die einzelnen Tasten.

Bei Keyboards mit elektromechanischen Schaltern, etwa den schon legendären MX-Modulen von Cherry, sitzen die Schalter auf einer Leiterplatte mit Durchkontaktierungen, die Leiterbahnen auf der Platine sind aber ebenfalls in Form einer Matrix angeordnet.

Das Innere von CHERRY MX Board 3.0 Tastaturen
Die Rückseite eine Cherry MX-3.0-Tastatur. Die einzelnen Schalter sind auf einer Platine angebracht, an der oberen Kante ist der Micro-Controller zu sehen.  Er kommt mit 48 Pins aus.

Die  digitale Matrix wird verwendet, da sie mit wesentlich weniger Datenleitungen auskommt, als wenn jede einzelne Taste individuell angeschlossen wäre, was weit mehr als hundert Verbindungen und auch einen Digitalcontroller mit entsprechend vielen Pins erfordern würde. Beides wäre kompliziert und teuer. Mit dem Matrix-Verfahren reichen für die reine Tastenerkennung bei einer Matrix aus acht Reihen und 16 Spalten im Prinzip bereits 24 Pins aus – und das für maximal 128 Tasten aus. Weitere Pins werden für die Kommunikation mit dem Rechner und weitere Funktionen, etwa das Ansteuern der Status-LEDs benötigt.

Immer der Reihe nach

Um einen Tastendruck zu registrieren fragt der Controller in einem Keyboard immer erst die Spalten der Matrix ab. Dabei kann er entweder permanent immer alle Spalten der Reihe nach scannen (Polling), oder das Niederdrücken einer Taste weckt über einen Column-Interrupt den Controller auf, der dann seine Arbeit aufnimmt. Das Erkennen einer gedrückten Taste erfolgt in jedem Fall per Polling: Ist die betreffende Spalte identifiziert, dann geht es mit dem Scan der Reihen weiter, bis die betreffende Taste identifiziert ist.

Der schematische Aufbau einer Tastatur. Die Tasten sitzen über Kreuzungspunkten von horizontalen und vertikalen Leiterbahnen in einer Matrix. Ein Tastendruck schaltet zwei Leiterbahnen kurz, der Controller registriert die Taste über die horizontale und vertikale Koordinate.
Der schematische Aufbau einer Tastatur. Die Tasten sitzen über Kreuzungspunkten von horizontalen und vertikalen Leiterbahnen in einer Matrix. Ein Tastendruck schaltet zwei Leiterbahnen kurz, der Controller registriert die Taste über die horizontale und vertikale Koordinate.

Die Abfrage der Tasten per Polling oder Column-Interrupt hat nichts mit der Schnittstelle des Micro-Controllers zu tun sondern mit seiner internen Funktion. Auch bei Keyboards mit USB-Schnittstelle kann sie per Column-Interrupt erfolgen. Die Kommunikation des Keyboard-Controllers mit dem Rechner erfolgt bei  Tastaturen mit USB-Schnittstelle dagegen immer per Polling, bei PS/2-Eingabegeräten dagegen per Interrupt. Einen spürbaren Vorteil bei der Latenz haben aber PS/2-Keyboards in der Praxis nicht. Auch die Leistungsaufnahme von USB-Keyboards ist nicht höher, da die Schaltungen so gestaltet sind, dass der Controller in einen Suspend-Modus gehen kann, wenn keine Tasten betätigt werden.

Der Scancode der Tasten wird über das PS/2-Interface, via USB oder drahtlos an den Rechner übertragen und vom Betriebssystem ausgewertet. Dabei wird im Prinzip nur die Position der Tasten übertragen, PS/2- und USB-Tastaturen verwenden hier unterschiedliche Codesätze. Die Umsetzung der Scancodes in ein ANSI-Zeichen nimmt erst der Tastaturtreiber vor. So kann der Benutzer des Rechners schnell zwischen verschiedenen Zeichensätzen umschalten.

Geisterstunde der Tastaturen

Das Matrix-Verfahren zur Tastenerkennung arbeitet zwar sehr effektiv, aber nicht ohne Tücken. Ein Problem vor allem für Computerspieler ist das so genannte Ghosting. Dabei werden mehrere nebeneinanderliegende Tasten nicht mehr eindeutig erkannt, wenn sie gleichzeitig betätigt werden.

Zwei gleichzeitig gedrückte Tasten auf unterschiedlichen Reihen und Spalten sind generell unproblematisch. Auch bei zwei oder mehr Tasten hat der Keyboard-Controller noch keine Schwierigkeiten mit der Unterscheidung,  solange sie entweder in einer Reihe oder einer Spalte liegen.  Schwierigkeiten gibt es erst, wenn drei Tasten in einem Block gleichzeitig betätigt werden.  Dann nämlich registriert der Controller beim Scannen erst zwei Spalten und dann zwei Reihen. Das ergibt vier mögliche Tasten, deren Schalter den Stromkreis geschlossen haben könnten. Welche das sind, kann der Chip anhand des entstandenen Musters nicht mehr feststellen. In der Praxis könnte etwa bei den gleichzeitig gehaltenen Tasten S, D und C noch das X als „Geist“ mit erscheinen.

Zwei gleichzeitig gedrückteTasten kann der Controller ohne Probleme auseinanderhalten. Und das auch, wenn sie auf einer gemeinsamen Zeile oder Spalte sitzen (Bild rechts).

Bei drei gleichzeitig gedrückten Tasten in einem Viererblock tritt Ghosting auf. In unserem Beispiel registriert der Controller die Taste X als gedrückt, obwohl nur die Tasten S, D und C gehalten werden.
Bei drei gleichzeitig gedrückten Tasten in einem Viererblock tritt Ghosting auf. In unserem Beispiel registriert der Controller die Taste X als gedrückt, obwohl nur die Tasten S, D und C gehalten werden.

Bei einigen Tastaturen werden daher die Leiterbahnen bei üblicherweise in Spielen oft gemeinsam betätigten Tasten wie etwa W, S, D und A  so verlegt, dass sie nicht in einem Block angeordnet sind, bei kostspieligen Gaming-Keyboards, sie sind oft mit MX-Schaltern von Cherry ausgestattet,  wird das Ghosting  durch zusätzliche Leiterbahnen weitgehend verhindert. Komplett eleminieren lässt sich dieser Effekt aber nur durch eine komplett andere Erkennungstechnologie, die ohne digitale Matrix arbeitet.

Nichts mit Ghosting zu tun hat übrigens die Beschränkung auf maximal 10 gleichzeitig erkannte Tasten bei USB-Keyboards (sechs Buchstaben und vier Umschalt-Tasten). Diese Erkennung, auch als 6-Key-Rollover bezeichnet, wurde  für  den Legacy-Modus bei USB-Tastaturen definiert, er dient dazu, dem BIOS des Rechners beim Boot eine PS/2-Tastatur vorzuspiegeln. Bei PS/2-Keyboards mit  N-Key-Rollover (NKRO) existiert keine Beschränkung, in der Praxis limitiert bei den meisten Tastaturen der Keyboard-Controller die Zahl der gleichzeitig erkannten Tasten. Auf der anderen Seite gibt es inzwischen auch USB-Tastaturen, deren Controller NKRO unterstützt.