Forum: PC-Programmierung Mit welchem Prog HID Kommunikation realisieren


von Thorben (Gast)


Lesenswert?

Ich möchte das PC und uC per USB miteinander kommunizieren.
Da ich auch nur Win benutze scheint mir die HID Klasse geeignet und ich 
brauch keine eigenen Treiber.

Aber womit programmiert man HID-Kommunikation am sinnvollsten? Schön 
wäre natürlich auch eine grafische Oberfläche, ist aber kein muss.
Habe schon an Delphi gedacht, da braucht man aber wohl auch eine extra 
JVCL(library).
Programmiert habe ich schon etwas u.a mit C/C++, Delphi.

Vielleicht hat ja jemand einen Vorschlag, wäre sehr dankbar dafür.

MfG Thorben

von Gast (Gast)


Lesenswert?

Hallo Thorben,
ist eigentlich ziemlich egal, ob in C, Delphi, Visual Basic, usw.
Der Datenaustausch mit der USB-HID-Treiberschnittstelle gestaltet
sich ähnlich einfach wie mit einer COM-Schnittstelle. Einfach
die veröffentlichten HID-Enumerations-API-Aufrufe in das Programm
einbauen und danach geht es mit OpenFile und ReadFile, WriteFile,
usw. weiter. Allerdings HID-typisch immer in kleinen Päckchen.
Es ist einzig darauf zu achten, dass bei Windows dem HID-Paket
noch ein Byte (0x00) voran gestellt wird.
Nahezu jeder USB-Chip-Hersteller stellt Demo-Software für
Windows und HID-Device bereit.

von Andreas W. (Firma: andreas-weschenfelder.de.vu) (rupplyn) Benutzerseite


Lesenswert?

vielleicht hilft die das:

Beitrag "usbn2mc - HID-Kommunikation"

von Thorben (Gast)


Lesenswert?

@Andreas, danke..werd ich mir anschauen

@Gast
Ich benutze das STK525 von Atmel, es gibt zwar ein Bsp. für HID("HID 
generic"), aber die PC-Software gibt es nur als .exe mit extra .dll und 
.h!?.. der Code ist nicht einsehbar. Und in einem pdf dazu sind Init, 
Find, Read, Write, Close kurz beschrieben!

>die veröffentlichten HID-Enumerations-API-Aufrufe in das Programm
>einbauen

Meinst du damit PID, VID...?

MfG Thorben

von Gast (Gast)


Lesenswert?

Hallo Thorben,
>>die veröffentlichten HID-Enumerations-API-Aufrufe in das Programm
>>einbauen
>
>Meinst du damit PID, VID...?

Ja genau. Oben wurden ein paar Beispiele dazu schon angeführt.
Dass auch purebasic mittlerweile USB-API anbietet, wusste ich
gar nicht. :-)

Nicht auf Atmel alleine fixieren. Was die PC-Software betrifft,
passen mehr oder weniger alle Hersteller-Lösungen gleichermaßen.
Sei es von ST für die uPSD-CPUs oder von Silabs für die C8051-
CPUs. Oder obige Beispiele. Einfach auf die eigene PID/VID und
die HID-Paketgröße anpassen.

In der Regel wird man den Empfang von Daten des HID-Devices
in einem eigenen Thread abwickeln, um die Anwendung nicht zu
blockieren.

Stolperstein ist meistens das von Windows hinzugefügte Byte
vor jedem HID-Paket. Das muss beim Empfang heraus genommen
werden und bei Aussendung vorne dran gestellt werden.
Ein HID-recordsize von 8 Bytes wird in Windows als ein Record
von 1+8 Bytes verarbeitet.

von Ralf (Gast)


Lesenswert?

Dann bekomme ich bei Read 9Bytes und muss bei Write noch 1Byte an den 
Anfang setzen!?

Ralf

P.S. Danke für die schnelle Hilfe!

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.