Forum: Mikrocontroller und Digitale Elektronik PS/2 Tastatur Scancodes - Immer alles US-amerikanisch?


von Detlev S. (drahtbruecke)


Lesenswert?

Hallo zusammen!
Ein altes Laptop soll ein neues selbstgebasteltes Innenleben bekommen. 
Die Tastaturmatrix bekomme ich per Arduino Mega2560 inzwischen abgefragt 
(24 Pins für 89 Tasten...). Per "seriellem Debug" sehe ich welche Taste 
ich gedrückt habe. Verkabelung passt also.
Das ganze soll wie eine PS/2 Tastatur funktionieren, womit wir bei der 
eigentlichen Frage wären:
Sehe ich das richtig das die Scancodes (Scan Code Set 2, 
https://www.marjorie.de/ps2/start.htm) zwar auf konkrete Zeichen 
verweisen aber damit eigentlich nur die Tastaturkappenbeschriftung einer 
US-Standard-Tastatur meinen?

Ich müsste also schauen wo meine Laptop-Taste auf einer 
DE-Standard-Tastatur auftaucht, die Position dieser Taste auf einer 
US-Standard-Tastatur wiederfinden und das was dort auf der Tastaturkappe 
steht wäre dann der Buchstabe der zu meinem gewüschten Scancode passt. 
Bisschen Gefummel, aber kein unlösbares Problem....

Danke für eure Antworten
drahtbruecke

von Klaus W. (mfgkw)


Lesenswert?

Da ist ein Bild mit deutschen Tasten und den Scancodes:
https://de.wikipedia.org/wiki/PS/2-Schnittstelle

von Detlev S. (drahtbruecke)


Lesenswert?

Super, das ist ja schon die halbe Arbeit.
Danke!

von Achim H. (anymouse)


Lesenswert?

Oder Du stellst Dein Tastaturlayout auf "English (USA?)" um und nimmst 
dadurch die Tasten auf -- es gibt einige Tasten, die an andere Stellen 
gerutscht sind.

Man könnte auch nach einer entsprechenden Tabelle im Internet suchen ... 
http://www.winfaq.de/faq_html/Content/tip1500/onlinefaq.php?h=tip1576.htm

von Detlev S. (drahtbruecke)


Lesenswert?

Mit US-Layout tippen, ja das kann man machen, muß man aber nicht.
Ich habe erst 2% des Speichers belegt, beim RAM sind es noch weniger.
Ich glaube das krieg ich da noch rein. ;-)

Edith:
Jetzt funzt der Link. Ah, da sind die Code gleich aufgeführt. Dann ist 
der Rest ja reine Fleißarbeit.

Wenn man nur eine schräge Idee dazu hat, erwartet man nicht, diese 
schräge Idee komplett ausmultipliziert im Netz zu finden...

Danke fürs finden!

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Detlev S. schrieb:
> Sehe ich das richtig das die Scancodes (Scan Code Set 2,
> https://www.marjorie.de/ps2/start.htm) zwar auf konkrete Zeichen
> verweisen aber damit eigentlich nur die Tastaturkappenbeschriftung
> einer US-Standard-Tastatur meinen?

Scancodes sind unabhängig vom Tastaturlayout. Der Scancode identifiziert 
die Position der Taste. Die Scancodes sind dabei von der Matrix einer 
historischen IBM-Tastatur abgeleitet.

Die Zuordnung von Zeichen oder Sonderfunktionen (Shift oder auch 
Numlock) macht dann der Keyboard-Treiber. So ist es problemlos möglich, 
die Shift- Funktion z.B. auf die "Q" Taste zu legen. Elektrisch ist kein 
Unterschied zwischen beiden Tasten. Jede sendet ihren Make-Scancode beim 
Runterdrücken und den Break-Scancode beim loslassen.

Auch die LEDs einer Tastatur werden vom Treiber gesteuert. Daß die 
"Shift-Lock" LED den Status der Shift-Lock Funktion zeigt, ist reine 
Übereinkunft. Genausogut könnte der Keyboard-Treiber mit der LED die 
Uhrzeit im Morsecode schicken.

von Detlev S. (drahtbruecke)


Lesenswert?

Aha, das bestätigt alle meine Verdachtsmomente.

Der Fall ist gelöst, wir können zu Tisch gehen!

von foobar (Gast)


Lesenswert?

> Elektrisch ist kein Unterschied zwischen beiden Tasten [Q und Shift].

Nicht ganz.  Da die Qualifier-Tasten in Kombination mit anderen Tasten 
gedrückt werden (z.B. Alt-Shift-Control-F1) sind die (um beliebig viele 
gleichzeitige Betätigungen erkennen zu können und um Ghosting zu 
vermeiden) oft nicht Teil der Scan-Matrix sondern separat an den 
Controller geführt.

> Genausogut könnte der Keyboard-Treiber mit der LED die Uhrzeit im
> Morsecode schicken.

Bei mir zeigen die den Status der DSL-Leitung an, wie früher die Modems: 
CD/RX/TX ;-)

von Josef (Gast)


Lesenswert?

Die deutsche '<'-Taste und ihr Scan-Code fehlen
übrigens auf der US-Tastatur, wenn ich das richtig sehe.

von Asdf Q. (Gast)


Lesenswert?

Josef schrieb:
> Die deutsche '<'-Taste und ihr Scan-Code fehlen
> übrigens auf der US-Tastatur, wenn ich das richtig sehe.

Richtig. Die non-US-Varianten haben 102 statt 101 Tasten und die 
Enter-Taste hat eine andere Form.


Wer gerne klassische Tastaturen nutzt, wie Cherry G80 oder IBM MF/2 
("Model M"), der legt sich mit passendem Tastaturtreiber die Windows- 
bzw SU-Taste auf die meist unnütze Caps Lock.

von Stefan F. (Gast)


Lesenswert?

Soul E. schrieb:
> unnütze Caps Lock

Wofür ist eigentlich die "rollen" Taste?

von Hmmm (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wofür ist eigentlich die "rollen" Taste?

https://de.wikipedia.org/wiki/Rollen-Taste

von Detlev S. (drahtbruecke)


Lesenswert?

Achim H. schrieb:
> Oder Du stellst Dein Tastaturlayout auf "English (USA?)" um und nimmst
> dadurch die Tasten auf -- es gibt einige Tasten, die an andere Stellen
> gerutscht sind.
>
> Man könnte auch nach einer entsprechenden Tabelle im Internet suchen ...
> http://www.winfaq.de/faq_html/Content/tip1500/onlinefaq.php?h=tip1576.htm

Hallo Achim. Ich such mir gerade ein wenig mein Zeug zusammen, und die 
Codes auf der von dir verlinkten Seite passen irgendwie nicht zu den 
anderen Quellen.

Z.B. "Escape" soll dort "01 00" sein, überall sonst wo es um PS/2 
Hardware geht finde ich 0x76. Und das loslassen ("break") der Taste ist 
gar nicht erwähnt.
Das sind Scan Codes, aber nicht für das PS/2 Tastaturprotokoll.
Das macht aber gar nichts, ich hab's ja sofort gemerkt. Ich glaube damit 
könnte eine "falsch belegte Tastatur" mit Windows-Mitteln "repariert" 
werden, oder? (Sorry, brüte gerade Corona aus, bin nicht so fit im 
Kopf.)

Wenn man die Idee mit dem Mapping einmal verstanden hat kann man die 
Codes einfach vom dem Tastaturbild in Wikipedia abtippen und braucht gar 
nicht den Umweg über die US-Tastatur zu nehmen.
Die Laptop-Tastatur hat zwar ein gequetschtes Layout ohne separaten 
Zehnerblock, aber jede Taste ist irgendwo vorhanden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.