mikrocontroller.net

Forum: PC-Programmierung C/C++ : USB Daten lesen und senden


Autor: neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,

ich bin gerade dabei eine USB Verbindung zwischen einem Mikrocontroller 
und dem PC herzustellen. Der Mikrocontroller besitzt intern einen USB 
Controller.
Nun, wie kann ich auf der Windowsseite auf diesen USB Port zugreifen?
Gibt es unter Microsoft Visual Studio C++ 6.0 eine Möglichkeit den USB 
Port anzusprechen? Geht dies vielleicht mit "CreateFile" zum öffnen der 
Schnittstelle?

Besten Dank im voraus.

Autor: neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist ein 32bit Microcontroller von der Firma NEC.
Typ: μPD70F3783

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

Bewertung
0 lesenswert
nicht lesenswert
USB ist keine Schnittstelle, mit der auf diese Art und Weise 
kommuniziert wird. Nicht ohne Grund steht da ein "B" im Namen, was für 
Bus steht, also die Möglichkeit, mehrere Geräte anzuschließen. Wie auch 
beim PCI-Bus.

Und also muss Dein Programm nicht mit der USB-Schnittstelle, sondern 
einem am USB angeschlossenen Gerät kommunizieren. Das geht auf zwei 
Arten und Weisen: Die Firmware Deines Gerätes implementiert eine 
USB-Standard-Geräteklasse wie HID oder CDC, und Dein Programm nutzt die 
vom Betriebssystem vorgesehene Unterstützung von Geräten dieser 
Geräteklassen, oder Dein Gerät verwendet ein eigenes Protokoll, für das 
Du einen Devicetreiber als Gegenstück entwickelst, damit Dein 
Betriebssystem und schlussendlich Dein Programm etwas mit Deinem Gerät 
anfangen können.

Letzteres ist auch ohne Devicetreiberentwicklung über eine Library 
namens libusb möglich, was die Komplexität des Unterfangens etwas 
reduziert.

Deutlich sinnvoller aber ist die Nutzung einer der 
Standardgeräteklassen; welche zu verwenden ist, hängt davon ab, was Dein 
Gerät machen soll und welcher Art die zu übertragenen Daten sind.

Autor: neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine Antwort.
Ich denke die erste Variante trifft bei mir zu, denn
ich hab im Datenblatt was von CDC Kommunikation gelesen.

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus t. Firefly schrieb:
> USB ist keine Schnittstelle, mit der auf diese Art und Weise
> kommuniziert wird. Nicht ohne Grund steht da ein "B" im Namen, was für
> Bus steht, also die Möglichkeit, mehrere Geräte anzuschließen. Wie auch
> beim PCI-Bus.
>
> Und also muss Dein Programm nicht mit der USB-Schnittstelle, sondern
> einem am USB angeschlossenen Gerät kommunizieren. Das geht auf zwei
> Arten und Weisen: Die Firmware Deines Gerätes implementiert eine
> USB-Standard-Geräteklasse wie HID oder CDC, und Dein Programm nutzt die
> vom Betriebssystem vorgesehene Unterstützung von Geräten dieser
> Geräteklassen, oder Dein Gerät verwendet ein eigenes Protokoll, für das
> Du einen Devicetreiber als Gegenstück entwickelst, damit Dein
> Betriebssystem und schlussendlich Dein Programm etwas mit Deinem Gerät
> anfangen können.
>
> Letzteres ist auch ohne Devicetreiberentwicklung über eine Library
> namens libusb möglich, was die Komplexität des Unterfangens etwas
> reduziert.

Oder man nutzt WinUSB
http://msdn.microsoft.com/en-us/library/aa476426.aspx
http://www.microsoft.com/whdc/connect/usb/winusb_howto.mspx
http://www.lvr.com/winusb.htm

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.