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


von Josef K. (josefk)


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.

von Christian R. (supachris)


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.

von Εrnst B. (ernst)


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.

von Josef K. (josefk)


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.

von Olaf (Gast)


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

von niemand (Gast)


Lesenswert?


von PillePalle (Gast)


Lesenswert?

Moin

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

mfg

von Guido Körber (Gast)


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.

von Josef K. (josefk)


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 :(

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Josef K. (josefk)


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.

von Frank N. (arm-fan)


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.

von Matthias N. (vbchaos)


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?

von Christian R. (supachris)


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...

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Matthias N. (vbchaos)


Lesenswert?

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

von Guido Körber (Gast)


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.

von Josef K. (josefk)


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.

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.