Wer diese Tastatur erkennt, ist vermutlich entweder enthusiastischer für eher mechanischer
Tastenschalter oder hat bereits Ohrenschäden hinter sich, weil er mit einer eben solchen
Person den Raum teilen musste.
Dies ist das IBM Model M mit charakteristischen Knickfederschaltern, in Produktion ab 1984
für immerhin 15 Jahre.
Um Kosten zu sparen, wird dabei für andere Tastatur-Leoids nur der Aufdruck der 102
Tasten angepasst.
Die Elektronik ist identisch.
Seit damals haben sich die Tastaturen natürlich weiterentwickelt.
Es gibt sie nun auch deutlich geräuschärmer.
Aber sie sind am PC weiterhin das primäre Eingabegerät und wie so oft, beeinflussen
uns damals getroffene Design-Entscheidungen auch heute noch.
Dazu schauen wir uns den konzeptionellen Aufbau des Ziffern-Blocks rechts genauer an.
Die Tasten sind über eine Matrix-Schaltung mit einem in der Tastatur verbauten Prozessor
verbunden.
Ein Tastendruck kann dieser nun durch Prüfen aller verbundenen Leitungen erkennen.
Welche Beschriftung die Taste hat, spielt für ihn keine Rolle, er ordnet ihm einen eigenen
Wert, einen sogenannten Scan-Code, zu.
Natürlich hat jede Taste einen genau definierten Scan-Code, welcher über eine serielle Schnittstelle,
an dem auf dem Mainboard verbauten PS2-Controller gesendet wird.
In der Literatur wird man hierfür übrigens häufig den Begriff Tastatur-Controller antreffen,
von dem wir aber absehen wollen, da er zum einen leicht zu Verwechselungen mit dem Tastaturprozessor
führt und zum anderen schon lange nicht mehr nur für die Tastatur zuständig ist.
Eine PS2-kompatible Maus kann ebenfalls mit dem Controller verbunden werden, wobei auch
die PS2-Schnittstelle selbst heute nicht mehr viel Verwendung findet, sondern weitgehend
durch Eingabe-Geräte mit USB-Anschluss abgelöst wurde.
Glücklicherweise bieten die meisten Systeme in BIOS eine Option wie USB-Legacy Support
an, wodurch wir Tastatur und Maus wie PS2-Geräte verwenden können und uns das Implementieren
der deutlich umfangreicheren USB-Schnittstelle, zumindest vorerst, sparen.
Aber wie funktioniert nun eigentlich die Kommunikation auf Betriebssystemebene mit den angeschlossenen
PS2-Geräten und dem Controller?
Über zwei IOPorts haben wir Zugriff auf den PS2-Controller.
Mittels lesenden Zugriff auf den IOPort 0x60 kann ich auf den Ausgabepuffer des gewählten
PS2-Gerätes zugreifen und beispielsweise die gesendeten Codes der Tastatur lesen.
Ein schreibender Zugriff landet entsprechend im Eingabepuffer des Gerätes, damit kann ich
unter anderem die LEDs auf der Tastatur oben rechts ansteuern.
Bitte beachten, die Begriffe Ein- und Ausgabe können hier kontraintuitiv wirken.
Es wird aber meist die Sicht von den PS2-Geräten in der Literatur verwendet, was daher rührt,
dass diese von den Geräteentwicklern und nicht von Betriebssystemprogrammierern verfasst
wurden.
Ein lesender Zugriff auf IOPort 0x64 gibt uns den Inhalt des Statusregisters wieder,
in welchem zum Beispiel darauf hingewiesen wird, dass der Ausgabepuffer belegt ist.
Kommandos an den PS2-Controller werden durch Schreiben auf diesen Port mitgeteilt.
Ein typischer Befehl ist zum Beispiel das Aktivieren der Maus.
Können wir nun einfach die gedrückten Tasten aus dem Ausgabepuffer lesen?
Wir wissen, dass die Tastatur uns Scan-Codes schickt.
Aber das reicht nicht ganz für Tastenkombinationen.
Wie erkennt man ein längeres Drücken der Umschalltaste, wenn man zum Beispiel mehrere
Buchstaben großschreiben will?
Nun, die am Anfang gezeigte Tastatur Modell M hat 102 Tasten.
Presenters
Zugänglich über
Offener Zugang
Dauer
00:04:48 Min
Aufnahmedatum
2020-07-24
Hochgeladen am
2021-09-20 18:36:20
Sprache
de-DE
Tastatureingabe für Aufgabe 1 der Lehrveranstaltung Betriebssysteme.
Folien und Transkript zum Video.