Tastatur — Änderungen 5070 → 11266

Zeile 1: Zeile 1:
−
#REDIRECT [[Keyboard Controller]]
+
Die Tastatur ist das wichtigste Eingabegerät eines konsolenbasierten Computers, wird jedoch auch für die Bedienung einer [[GUI]] vielfach benutzt. Zur Ansteuerung der Tastatur verfügen x86-basierte Systeme seit jeher über einen [[Keyboard Controller|Keyboard-Controller (KBC)]]; Die elektrische Verbindung erfolgt dabei über einen DIN-Stecker oder den PS/2-Anschluss. Heutzutage werden Tastaturen jedoch häufig über [[USB]] angeschlossen.
 +
 
 +
== KBC ==
 +
Siehe Artikel [[Keyboard Controller]].
 +
 
 +
== USB ==
 +
Aus Kompatibilitätsgründen stellt das BIOS der meisten Computer einen sog. "Legacy USB Support" bereit, sodass sich auch Tastaturen, die mit einem USB-Kabel angeschlossen sind, wie eine PS/2-Tastatur über den KBC ansteuern lassen. Unterstützt das BIOS jedoch keinen "Legacy Support", oder übernimmt das Betriebssystem die Kontrolle über den USB Host-Controller, entfällt diese Möglichkeit, sodass ein Treiber für eine USB-Tastatur notwendig wird.
 +
 
 +
Die Spezifikation "Device Class Definition for Human Interface Devices (HID)" definiert in Version 1.11 neben zahlreichen flexiblen Konfigurationsmöglichkeiten ein sog. "Boot Interface" für Mäuse und Tastaturen, über das bereits das BIOS mit diesen kommunizieren kann, ohne dass ein umfangreicher Treiber notwendig wäre. Der Emfpang von Eingaben über diese Schnittstelle erfolgt an dem von der Tastatur bereitgestellten Interrupt-Endpoint (IN). Die Steuerung der LEDs erfolgt über EP0 oder optional einen Out-Interrupt-Endpoint.
 +
 
 +
Am Interrupt-Endpoint (IN) einer "Boot-Tastatur" werden Pakete von folgender Struktur empfangen:
 +
{| {{prettytable}}
 +
! Byte
 +
! Beschreibung
 +
|-
 +
| 0
 +
| Status der "Modifier-Keys".
 +
Bit 0: Strg (links), Bit 1: Umschalt (links), Bit 2: Alt (links), Bit 3: GUI (links)<br/>
 +
Bit 4: Strg (rechts), Bit 5: Umschalt (rechts), Bit 6: Alt (rechts), Bit 7: GUI (rechts)
 +
|-
 +
| 1
 +
| Reserviert (konstant).
 +
|-
 +
| 3-7
 +
| Gedrückte Tasten 1-6 (Usage-IDs)
 +
|}
 +
 
 +
Im Gegensatz zu PS/2-Tastaturen (N-Tasten-Rollover) sind USB-Boot-Tastaturen auf 6-Tasten-Rollover beschränkt (es können maximal 6 gleichzeitige Tastendrücke erfasst werden). Die von der Tastatur gesendeten Codes sind die "Usage ID"-Werte, die der "HID Usage Tables" (Version 1.12) entnommen werden können.
 +
 
 +
Die Kommunikation erfolgt - im Gegensatz zum PS/2-Port - in festen Intervallen (standardmäßig: alle 500ms), sowie zusätzlich beim Eintreten einer Änderung am Gerät (Tastendruck). Das Gerät meldet dabei nur, welche Tasten zum Abfragezeitpunkt gedrückt sind, sodass der Treiber das Loslassen von Tasten anhand einer ausbleibenden Tastendruck-Meldung erkennen muss.
 +
 
 +
== Weblinks ==
 +
* [http://www.usb.org/developers/hidpage/ http://www.usb.org/developers/hidpage/ (USB-HID-Spezifikation und HID-Usage-Tables)]