mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Grundverständniss USB-HID bzw. USB-Tastatur


Autor: Josef Kaeufl (josefk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen


ich habe mal eine eher generell Frage zu USB-Tastaturen. Wenn ich meine 
USB-Tastatur an meinen PC anschließe, dann erkennt er diese als Tastatur 
und bindet die mittels der HID-Klasse ein.
Was aber, wenn ich das Ding an einen µC anschließen will. Brauche ich 
dazu wirklich einen USB-Host Controller bzw. einen USB-Stack um die 
Tastatur zu betreiben/lesen, oder geht das auch anders?
Solche USB-Host ICs sind ja recht teuer und ein USB-Stack nicht immer 
frei.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, du brauchst auf jeden Fall einen USB Host incl. Stack und HID 
Treiber. Das kann aber auch ein Vinculum von FTDI sein, ich glaube, die 
können HID.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wobei man das bei Tastaturen/Mäusen etwas relativieren kann, die 
sprechen üblicherweise neben HID auch noch ein einfacheres Protokoll 
(HIDBP).
Dieses ist bewusst simpel gehalten, damit es im Rechner-Bios 
implementiert werden kann.
Ist vielleicht einen Blick wert, vielleicht kann man so Teile des Stacks 
einsparen.

Autor: Josef Kaeufl (josefk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok. Der Vinculum fällt für mich dann schon mal weg. Das ist genau der 
teure USB-Host IC, den ich gefunden hab :) 14 Euro sind einfach zu teuer 
für das was ich machen will.
Gibts denn irgendwelche guten und freien USB-Stacks für Atmel µC? Der 
von Atmel selbst ist ja mit derben Auflagen verbunden.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt einen Japaner der hat wirklich alles in Software auf
seinem AVR implementiert und liesst so eine Maus und IMHO auch eine 
Tastatur aus.
Er hat uebrigens auf seiner Homepage auch noch einen netten 
Hardwaredebugger der USB in LowSpeed ebenfalls mit einem AVR mitloggt!

Allerdings weiss ich die Adresse nicht auswendig. Aber es reicht
ja zu wissen das es moeglich ist und man kann es dann schnell
selber schreiben. :-)

Nebenbei gesagt, wenn das ganze ein rein privates Bastelprojekt ist dann 
sind 14euro eigentlich ein Witz. Wenn es dagegen um Stueckzahlen geht 
dann wird das ganze RICHTIG interessant, weil man man dann ja nicht nur 
eine Hardware/Software braucht die eine Tastatur lesen kann. Man braucht 
dann ja etwas das mit JEDER Tastatur klarkommt die irgendein Kunde 
irgendwo ansteckt. Mein Gefuehl sagt mir das da jede Menge Stress drin 
steckt.

Olaf

Autor: niemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: PillePalle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin

wie wäre es mit KeyWarrior von Code Mercenaries
www.codemercs.com

mfg

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Werbung, aber der KeyWarrior ist die Tastaturseite, hier 
wurde aber nach dem Host gefragt um genau so eine Tastatur anschließen 
zu können.

Autor: Josef Kaeufl (josefk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK überredet. Der Vinculum hat das Rennen gewonnen.
Aber wenn ich mir schon teure Hardware leiste, dann würd ich mir am 
liebsten ein fertiges Modul mit nem Atmel µC und einem Vinculum leisten. 
Gibts da eigentlich jemaden, der sowas anbietet?
Bisher habe ich immer bei chip45.de bestellt, aber sowas gibts da auch 
nicht :(

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz erheblichen Bastelaufwand spart man sich, wenn man für /diese 
Anwendung/ darauf verzichtet, eine USB-Tastatur zu verwenden, und 
stattdessen eine Tastatur mit PS/2-Anschluss verwendet. So etwas wird 
nach wie vor hergestellt.

Autor: Josef Kaeufl (josefk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das stimmt. Aber Ziel des Projekts ist es nun mal eine USB-Tastatur zu 
nutzen :)
Soll sozusagen auch gleichzeitig als Einstieg in die USB-Welt dienen, 
damit ich da mal ein bisschen Fuß fassen kann.

Autor: Frank N. (arm-fan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Soll sozusagen auch gleichzeitig als Einstieg in die USB-Welt dienen,
>damit ich da mal ein bisschen Fuß fassen kann.

Was ist das denn für ein "Einstieg"?
Einen Vinculum zu benutzen ist genauso gut wie die Tastatur
in einen PC zu stecken.

Autor: Matthias Nix (vbchaos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wir haben im Studium mal einen PS2 to USB Tastatur Konverter gebaut, auf 
Basis eines PIC18. Der PIC meldet sich am PC mittels HID klasse  als 
Tastatur und liest andererseits von der PS2 Schnittstelle. Hat alles 
sehr toll funktioniert. Witzigerweise kann man statt der PS2 
Schnittstelle auch eine USB Schnittstelle nutzen, und somit statt einer 
PS2 Tastatur eine USB Tastatur. Es macht am PIC einfach keinen 
Unterschied, das USB Tastaturen scheinbar erkennen koennen, ob sie ueber 
PS2 oder USB angeschlossen sind und dann sich entsprechend verhalten.
Hilft das weiter?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, ein USB Device ist ja auch um Größenordnungen weniger aufwendig 
als ein USB Host. Das ist übrigens eines der Hauptkonzepte an USB. 
Devices sollen so günstig wie möglich machbar sein. Die meiste 
Intelligenz steckt dann im Host.

Wobei ein Vinculum weder teuer ist (für das was er kann), noch irgendwie 
einen Lerneffekt bietet. Dann lieber einen Hostcontroller ohne Stack und 
den Stack portieren. Gibts ja mittlerweile genügend Ansätze. Oder halt 
aus dem Linux Kernel raus nehmen...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Witzigerweise kann man statt der PS2 Schnittstelle auch eine
> USB Schnittstelle nutzen, und somit statt einer PS2 Tastatur
> eine USB Tastatur. Es macht am PIC einfach keinen Unterschied,
> das USB Tastaturen scheinbar erkennen koennen, ob sie ueber
> PS2 oder USB angeschlossen sind und dann sich entsprechend verhalten.

Nein, das ist ein Missverständnis. Die von Dir verwendete Tastatur war 
eine bilinguale, die beide Protokolle unterstützte. So etwas gibt es 
auch bei Mäusen, genauso, wie es früher auch serielle Mäuse gab, die 
auch das PS/2-Protokoll unterstützten.

Autor: Matthias Nix (vbchaos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mag auch sein, habe es nur mit 2 USB Tastaturen ausprobiert. Würde 
das ganze aber erklären

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mag nicht sein, sondern ist so. Es waren keine USB Tastaturen, 
sondern solche die PS/2 und USB über die gleichen Leitungen können.

Autor: Josef Kaeufl (josefk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur zur Verteidigung: Einen Vinculum zu nutzen ist wohl die einfachste 
Möglichkeit sowas zu realisieren, aber für den einen oder anderen schon 
ein Einstieg in die USB-Welt. Ich muss doch nicht immer einen Stack in 
meinen Controller reinbauen um diverse Schaltungen "USB-fähig" zu 
machen, oder? Für mich bedeutet einfach auch irgendwie besser. Das passt 
zwar nicht immer, aber doch oft.
Würde z.B. der ENC28J60 nicht nur die ersten zwei Schichten des 
Osi-Modells abbilden, sondern auch die nächsten zwei, dann wär ich super 
beeindruckt und würde ihn noch lieber benutzen. Mit nem Stack gehts 
natürlich auch, und man lernt auch was dabei, aber ich muss und kann ja 
nicht alles wissen.

Alles in Allem bin ich froh wenn mir Hardware Arbeit abnimmt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.