www.mikrocontroller.net

Forum: PC Hard- und Software Wieso braucht man überhaupt einen Treiber für einen Virtual Com port?


Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

versuche gerade bei meinem STM32 den USB zum Laufen zu bringen. Stellt 
sich bei mir die Frage, wieso braucht man auf dem PC dafür eigentlich 
einen speziellen Treiber? Sollte nicht ein OHCI-Treiber im OS verfügbar 
sein?

Gruß
Tom

: Verschoben durch Moderator
Autor: adfix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Braucht man nicht.

Man braucht nur das richtige OS.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Auch Windows wird mit einem generischen Treiber für CDCs geliefert, 
allerdings aus irgendeiner grenzwertigen Debilität heraus ohne eine 
passende *.inf-Datei, die zur Nutzung erforderlich ist.

USB-Seriell-Bridges wie die von FTDI, Prolific etc. aber sind keine 
CDCs, sondern nutzen proprietäre Protokolle und benötigen also 
individuelle Treiber. Bei manchen Linux-Distributionen sind auch solche 
Treiber im Lieferumfang enthalten, ob deswegen das OS "richtiger" ist?

Wie dem auch sei, für eigene Versuche mit USB ist es ratsam, eine der 
Standardgeräteklassen wie eben CDC zu verwenden.
Im Anhang ist ein Beispiel für eine *.inf-Datei nebst *.cat für eine 
USB-VID von Microchip. Wird auf die *.cat-Funktionalität (Signierung) 
verzichtet, kann die Datei leicht durch Ändern von VID und PID an eigene 
Controller angepasst werden.

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dank Dir!

Verstehe trotzdem nicht, wieso Windows einen CDC beim einstecken nicht 
automatisch Erkennt soe wie ein Mass Storage Device ja auch.

Gruß
Tom

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat Rufus doch gesagt. Wenn sich das Device nicht als CDC anmeldet, 
gibts auch keinen CDC-Treiberaufruf...
Oder meldet sich dein Device wirklich als CDC an?

Ralf

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

Bewertung
0 lesenswert
nicht lesenswert
Auch wenn sich das Device als CDC meldet, ist, um es unter Windows 
nutzen zu können, eine passende *.inf-Datei erforderlich. Das ist eines 
der Defizite von Windows, warum auch immer. Vermutlich haben die, die 
dahinterstecken, niemals die Möglichkeit vorhergesehen, CDC-Devices 
außerhalb von USB-Modems zu begegnen (die sowieso mit Treibern 
ausgeliefert werden).

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht sollte man das mal jemand denen in Redmond sagen...

Weiß einer von euch wie es beim Mac aussieht?

Gruß
Tom

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

Bewertung
0 lesenswert
nicht lesenswert
Zwar habe ich einen und nutze den auch, aber ein CDC habe ich da noch 
nicht drangehängt. Ich vermute aber stark, daß das "out-of-the-box" 
funktionieren wird.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Burkhart schrieb:
> Sollte nicht ein OHCI-Treiber im OS verfügbar
> sein?

Das ist doch nur die unterste Schicht, der Zugriff auf den
angeschlossenen Bus.  Mit dem OHCI- oder EHCI-Treiber kannst du
erst einmal nur Pakete auf dem USB senden und empfangen.  Darüber
sitzen dann im Betriebssystem die Treiber, die geräteabhängig
die Einbindung ins System vornehmen, wobei diese wiederum unabhängig
vom zu Grunde liegenden USB-Controller sind.

Allerdings bietet Windows von Haus aus verdammt wenig in dieser
Richtung, man verlässt sich dort voll und ganz auf die Hersteller
der jeweiligen am USB angeschlossenen Geräte.  Insbesondere bietet
Windows keinen generischen USB-Treiber, über den man einfach nur an
die rohen Datenpakete der USB-Controller-Hardware herankommt (die
gängigen Unixe und Mac OS haben sowas).  Der einzige Treiber, der
bei Windows offensichtlich standardmäßig dabei ist und sich wirklich
jede Instanz der entsprechenden Geräteklasse krallt, ist ein HID-
Treiber (human interface device), eigentlich für Keyboard und Maus
gedacht.  Das führt dann zur absurden Situation, dass jeder, der
irgendein USB-Gerät baut und selbst keine Treiberinstallation
machen möchte, sein Gerät als HID auslegt -- egal, was das Gerät
tut.  Mit "human interface" hat das oft dann nichts zu tun, da
hängen dann Programmiergeräte für Microcontroller dran und sonstwas.

Autor: \0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Burkhart schrieb:
> Weiß einer von euch wie es beim Mac aussieht?

Die hier sagen, dass man plötzlich ein Modem da hat, das sich mit einem 
Terminalprogramm bedienen lässt. Also funzt wohl.
http://www.recursion.jp/avrcdc/driver.html#protocol
(fast ganz unten auf der Seite)

\0

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg Wunsch schrieb:
> Allerdings bietet Windows von Haus aus verdammt wenig in dieser
> Richtung, man verlässt sich dort voll und ganz auf die Hersteller
> der jeweiligen am USB angeschlossenen Geräte.  Insbesondere bietet
> Windows keinen generischen USB-Treiber, über den man einfach nur an
> die rohen Datenpakete der USB-Controller-Hardware herankommt (die
> gängigen Unixe und Mac OS haben sowas).

Jein, mit WinUSB http://msdn.microsoft.com/en-us/library/ff540207.aspx 
geht sowas mittlerweile recht gut (unterstützt nur keine isochronen 
Transfers).

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.