mikrocontroller.net

Forum: PC-Programmierung Virtueller COM Port


Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Möchte gern Daten über USB von meinem Controller an den PC senden. Der
Controller ist ein Atmel AT90USB1287. Suche jetzt einen Treiber der es
mir ermöglicht einen virtuellen Com Port zu erstellen, damit ich die
Daten über das Terminal ausgeben, oder mit einer MVC C++ Anwendung
auslesenund Verarbeiten kann.
Die MVC Anwendung funktionier schon per serieller Schnittelle. Jetzt
möchte ich die Daten von meinem ersten Controller (Mega128) zum STK525
mit At90USB1287 schicken, der die dann per USB an den PC sendet.

Sagt mir bitte auch falls das so gar nicht geht...
Vielen Dank
Gruß Jan

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Such mal bei Constellation Data System. Da ist ein Programm zu finden,
welches einen virtuellen Com Port emuliert.

MfG Paul

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

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du auf Deinem USB-Controller die Standardgeräteklasse für serielle
Schnittstellen (CDC) emulierst, benötigst Du nur eine *.inf-Datei, und
der mit Windows mitgelieferte Standardtreiber wird verwendet.

Ein Beispiel dafür liefert LPCUSB*, das ist ein USB-Stack für einen
LPC2148.

Zitat:

   On Windows XP, the device uses the built-in usbser.sys
   driver and just needs an .inf file.
   The extra COM port simply shows up as a COMx device.

   On Linux, the USB serial port is handled by the
   cdc_acm module, which causes the serial port to
   show up as /dev/ttyACMx.


Im Zusammenhang mit einem PIC wird das ganze auch erwähnt**:

   Es gibt bei Microchip mehrere Code-Beispiele wie
   man Programme für den PIC schreibt.
   Als HID (Human Interface Device), über eine spezielle
   DLL von Microchip

*  oder als CDC-Device (Communication Device Class).
*  Letzteres habe ich hier benutzt. CDC arbeitet über
*  einen virtuellen COM-Port. Man schreibt seine Programme
*  so als würde man eine serielle Schnittstelle ansprechen.
*  Für CDC ist kein spezieller Treiber erforderlich. Alles
*  läuft über die USBSER.SYS. Die ist bei W98 und höher dabei.
*  Das CDC-Demo von Microchip läuft nur mit W2000/XP.
*  Für W98 gibt es leider keine INF-Datei zum installieren
*  des Treibers bei Microchip.


Dasselbe wird recht ausführlich auch für AT91SAM7X beschrieben***, auch
dort sollte sich eine passende INF-Datei finden lassen.


Also: Implementiere auf dem AT90USB1287 ein CDC-Device, dann benötigst
Du nur noch 'ne *.inf-Datei.


Viel Erfolg!



*) http://wiki.sikken.nl/index.php?title=LPCUSB#USB_serial_port
**) http://www.holger-klabunde.de/usb/18f2550.htm
***)http://www.freertos.org/portsam7xlwIP.html

Autor: Moritz (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
und wie kann ich in der .inf-Datei dem Gerät einen Virtuellen
(existierenden) COM-Port zuweisen?

Hier mal die .inf-Datei im Anhang

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

Bewertung
0 lesenswert
nicht lesenswert
Was jetzt, virtuell oder existierend?

Die Einstellung, welche Schnittstellennummer die virtuelle
Schnittstelle verpasst bekommt, die wird im Gerätemanager vorgenommen;
sie fest in die *.inf-Datei zu schreiben wäre kontraproduktiv - was
passiert auf einem PC, auf dem die betreffende Nummer bereits durch
irgendwas anderes belegt ist?

Autor: Moritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, ich habe mittels IrCOmm2k einen virtuellen COM-Port installiert.
Nun möchte ich dem USB-IrDA Dongle diesen Port zuweisen.
Wie geht das?

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

Bewertung
0 lesenswert
nicht lesenswert
So gar nicht.

Der USB-IrDA-Dongle ist keine serielle Schnittstelle und auch kein
CDC-Device.

Worauf greift denn IrComm2k zu? Verwendet das nicht die vorhandene
Ir-Schnittstelle?

Autor: Moritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hat mir einfach einen Port installiert. Ich wüsste nicht worauf es
zufreifen sollte.
Dachte ich könnte das mit der VID_xxxx in der .inf-Datei einstellen

Autor: Moritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ginge es denn auch ohne das IrCOMM2k Teil?

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

Bewertung
0 lesenswert
nicht lesenswert
Moment mal.

  "Das hat mir einfach einen Port installiert.
  Ich wüsste nicht worauf es zufreifen sollte."

IrComm2k ist ein Treiber, der virtuelle serielle Schnittstellen zur
Verfügung stellt. Der Treiber setzt auf der der IrDA-Hardware und dem
IrDA-Stack des Rechners auf.

Was solltest Du da noch einstellen wollen?

Ob "es" auch ohne IrComm2k ginge, hängt davon ab, was "es" ist und
was Du überhaupt erreichen willst.

Was für ein Gerät möchtest Du mit was für einer Software ansprechen?

Autor: Moritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es handelt sich um einen USB-Infrarot Stick.
Ich möchte per PocketPC etwas auf den Rechner schicken.
Ich hab also auf dem PC eine Server-Software und auf dem PocketPC eine
Client Software die mir etwas schickt.

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

Bewertung
0 lesenswert
nicht lesenswert
Das reicht nicht als Beschreibung aus.

Der auf beiden Geräten vorhandene IrDA-Stack ermöglicht eine
Kommunikation des PCs mit dem PDA und umgekehrt, ohne daß IrComm oder
virtuelle serielle Schnittstellen benutzt werden müssten.

Autor: Moritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha, und wie nutzt man den IrDA-Stack.
Meines Wissens ist das das Betriebsgeheimnis von M$

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

Bewertung
0 lesenswert
nicht lesenswert
Wer schreibt denn die Software, bzw. wer hat denn die Software
geschrieben, die Du da nutzen willst?

Autor: Moritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

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

Bewertung
0 lesenswert
nicht lesenswert
Dein erster Link (http://www.hh-system.com/danielstrigl/irda.shtml)
beschreibt doch ganz gut, wie vorzugehen ist; was aber lässt Dich zu
IrComm2k greifen?

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.