Ich bin im Bereich Hardware im Allgemeinen neu. Für ein Projekt versuche ich, eine benutzerdefinierte Tastatur zu erstellen, die einige zusätzliche Tasten enthält, beispielsweise 20 bis 25 mehr als eine Standardtastatur. Ich habe über Scan-Codes und Scan-Code-Sets gelesen. Ich habe auch über Tastaturcodierer, Controller usw. auf Seiten wie diesen gelesen:
http://retired.beyondlogic.org/keyboard/keybrd.htm
http://www.computer-engineering.org/ps2keyboard
Trotzdem ist mir nicht klar, mit welchem Encoder ich einen benutzerdefinierten Scan-Code generieren kann, der in keinem Standard-Scan-Code-Set definiert ist. Verarbeitet der Standard-Tastaturcontroller (8042-kompatibel) in einem PC auch diese nicht standardmäßigen Scan-Codes?
Antworten:
Atmel (und auch Microchip, glaube ich) verfügt über einen generischen HID-Treiber für ihre MCUs, an dessen Ende der vollständige Quellcode verfügbar ist (Client-Testsoftware und eingebetteter HID-Stack).
Beim Durchsuchen des Angebots von Atmel gibt es sogar eine vollständige Tastatur-Demo-Karte , ebenfalls mit Quellcode.
Es ist nicht das einfachste Beispiel (sie haben ihren eigenen Taskplaner geschrieben!), Aber ich denke, es sollte ziemlich einfach sein, zu modifizieren, um das zu tun, was Sie wollen.
Schauen Sie sich
keyboard_task.c
die Tastatur-Demo der obigen Links an ( oder hier ). Es scheint genau das zu sein, was Sie wollen. Eine große Anzahl von Scancodes, mit denen eine Nachricht an den Computer geschrieben wird, indem eine Tastatur in einen beliebigen Texteditor emuliert wird.Die tatsächlichen HID-Tastenanschlagwerte werden mit #define in eine aufgerufene Datei abstrahiert
usb_commun_hid.h
, die im obigen Download nicht (!) Enthalten zu sein scheint (ich denke, sie wird mit dem Compiler geliefert?), Aber sie werden nur einfachen Einzelbyte-Werten zugeordnet Sie sollten also in der Lage sein, mehr hinzuzufügen, als Sie möchten. (Siehe diea00102.html
Datei im obigen Link.)Ich würde mir vorstellen, dass Microchip etwas Ähnliches hat, aber ich habe momentan nicht allzu viel Lust, ihre Implementierung durchzuarbeiten. Wenn Sie möchten, kann ich dies möglicherweise später tun.
Natürlich hat dies keinen wirklichen Einfluss darauf, wie Sie diese Scancodes am Computerende dekodieren , aber auch hier hat Atmel .Net-Beispiele für die Kommunikation mit ihren HID-Geräten, sodass etwas Hackbares verfügbar sein sollte.
quelle
Ich wurde kürzlich in dieser Frage über zwei Optionen für die USB-Entwicklung aufgeklärt:
Würde einer von diesen für Sie arbeiten? In jedem Fall müssen Sie Ihren eigenen Treiber dafür schreiben, da Ihr Betriebssystem das Senden von nicht standardmäßigen Scancodes nicht mag.
Der Vorteil von Standard-Scancodes besteht darin, dass jede Tastatur, die Sie anschließen, "nur funktioniert" (theoretisch). Wenn Ihnen eine Konfiguration nichts ausmacht, warum sollten Sie dann versuchen, die Scancodes zu emulieren?
quelle
Es sollte gut funktionieren, funktionieren diese "Multimedia" -Tastaturen nicht so? Mit den Tasten Play / Pause / Volume / etc?
quelle