PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : USB Schnittstelle programmieren



Schnitzelmaster
15.02.2005, 09:40
Hallo Leute,
ich habe folgendes Problem:
ich möchte über USB Daten in den PC lesen (USB ist dem COM PORT vorzuziehen, da die Datenmengen zu groß sind). Dies möchte ich über ein Standard C/C++ Programm realisieren, wobei ich C vorziehen würde. Mein Problem ist, dass ich keine Ahnung habe wie ich aus einem C/C++ Programm heraus auf den USB Port zugreifen kann.
Was benötige hierzu alles, d.h. kann man den USB Port direkt übers Programm ansprechen oder muss man noch irgendwelche DLL oder sonstiges im Hintergrund installieren.
Wer hat Informationen?
Vielen Dank schon im Voraus für euer Bemühen.

MfG Christian

cht
15.02.2005, 22:02
Für ein USB-Gerät musst du wahrscheinlich sogar einen Treiber programmieren, wenn du da kein Experte bist, kannst du ne ganze Menge kaputt machen.
Ein wohl noch größeres Problem stellt sich aber hardwareseitig: USB mit sowas wie einem AVR hab ich noch nirgendwo gesehen, deshalb habe ich den Verdacht, dass es ohne die relativ schwer zu bekommenden USB-Controller nicht gehen wird.
Eine Alternative ist der Parallelport, der ist um einiges schneller und einfacher anzusteuern als der USB. Notfalls kannst du parallele und serielle Schnittstelle kombinieren, die Datenrate dürfte auch schon das Maximum sein, was die meisten einfachen Controller so an Daten produzieren können.
mfG

cht

16.02.2005, 09:09
@cht
ich kann es ja mal vorerst mit dem parallel port versuchen; mein Anliegen ist auch hier wie programmiere bzw. spreche ich den port an.
MfG Christian

Freiheitspirat
16.02.2005, 16:52
Für USB gibt es hier http://libusb-win32.sourceforge.net/
eine gute LIB

cht
16.02.2005, 18:44
Hi Christian, auf http://batronix.com/elektronik/know-how/parallelport-programmierung.shtml
findest du ne Menge Infos über den Parallelport und nen Link zu einer DLL, die das Hardware-I/O übernimmt. Entgegen vieler Behauptungen funktioniert die bei mir auch unter XP...
mfG

Christian ^^

NumberFive
17.02.2005, 11:33
hallo cht,

das geht aber nur aus einem Grund:

"a kernel mode device driver is embedded in the DLL in binary form"

das ist das was jeder sagt du brauchst einen einen Treiber um direckt auf die ports schreiben zu können.

Gruß

Joerg
17.02.2005, 15:41
Hallo,


Ein wohl noch größeres Problem stellt sich aber hardwareseitig: USB mit sowas wie einem AVR hab ich noch nirgendwo gesehen, deshalb habe ich den Verdacht, dass es ohne die relativ schwer zu bekommenden USB-Controller nicht gehen wird.

Naja so schwer zu bekommen sind die nun auch wieder nicht. Seit kurzem gibt es bei mir im Shop ein AVR-Mega128 Modul (30x40mm) was mit einem USB2.0-Controller bestückt ist. Auf dem PC installiert man einen Treiber und kann das Teil über einen virtuellen COMPort ansprechen (also zu Testzwecken auch über ein Terminal). Näheres gibts hier: http://roboter-teile.de/Shop/pd1108571573.htm?categoryId=5

Viele Grüße
Jörg

slaud
18.10.2005, 14:10
hab mal ne frage wie kann ich ne c++ dll in c# einbindenn kennt sich jemand damit aus hab mal was von pinvoke gelesen komm da nicht mit
hat vieleicht jemand ein beispiel oder so