USB.org Dokumente

Gast #5361763
Lesenswert?

Jens schrieb:
> Daher frage ich mich, welche ich zum einlesen verwenden soll?

Sammle, was du kriegen kannst. Es gibt da nicht nur ein paper, sondern 
einen ganzen Sack davon - und jedes baut im Grunde auf einem anderen 
auf. Aber normalerweise wollen die für's Papier richtig Geld haben.

W.S.
Gast #5361796
Lesenswert?

...und wenn du etwas lesen willst, wo du noch eine Chance hast, es 
nachzuvollziehen, dann fang mit USB1.1 an. Ja, das ist uralt. Aber um 
die Grundlagen nachzuvollziehen, reicht es - und du hast viel, viel, 
viel weniger textuelle kreuz-und-quer-Verweise im Dokument (nach dem 
Motto "this behaviour depends on the status of ABC and DEF, oft ohne 
Links)

Zumindest war das 2002 so, als ich mal damit gearbeitet habe...

MfG, Arno
Gast #5363065
Lesenswert?

Niklas G. schrieb:
> Und meinen supertollen Artikel

Ähemm..

"Anwendungen können anhand VID/PID direkt das korrekte Gerät finden, es 
muss nicht wie bei der seriellen Schnittstelle der richtige Port 
ausgewählt werden"

Das ist eine kühne Behauptung, die ich so nicht bestätigen kann. Bei 
USB-Geräten, die ein VCP darstellen, hat man in der Regel keine andere 
Chance, als der Reihe nach alle Ports von COM1..COMxyz durchzutesten, ob 
dieser Stream sich öffnen läßt oder nicht. Und wenn er sich öffnen läßt, 
dann ist noch immer nicht gesagt, daß es das richtige Gerät ist.

Also schreib mal, wie man es macht, daß man den richtigen COM-Port aus 
vorgegebener vid&pid  herausfindet.

W.S.
Persönliche Seite #5363077
Lesenswert?

W.S. schrieb:
> Das ist eine kühne Behauptung, die ich so nicht bestätigen kann. Bei
> USB-Geräten, die ein VCP darstellen, hat man in der Regel keine andere
> Chance, als der Reihe nach alle Ports von COM1..COMxyz durchzutesten, ob
> dieser Stream sich öffnen läßt oder nicht.

Ganz genau. Wenn man daher eben keinen VCP implementiert sondern ein 
"normales" USB-Gerät, auf welches man per Kernel-Treiber, libusb 
und/oder WinUSB zugreift, kann man darüber via VID&PID das Gerät finden. 
Ein Beispiel:

https://github.com/Erlkoenig90/usbclient/blob/master/src/main.cc#L101

Wenn man einen VCP implementiert, hat man aus Anwendungssicht einen 
Serial-Port mit genau den beschriebenen Nachteilen des Serial-Ports. Mit 
"Vorteile USB" ist natürlich nicht gemeint, dass man wieder auf Serial 
umadapterisiert (VCP)! Ein VCP vereint gewissermaßen die Nachteile von 
USB und Serial-Port, diesen Fall sollte man also nicht als Grundlage für 
die Suche nach USB-Vorteilen nehmen.
#5363087
Lesenswert?

W.S. schrieb:
> Also schreib mal, wie man es macht, daß man den richtigen COM-Port aus
> vorgegebener vid&pid  herausfindet.

Ich würd versuchen die Liste aller angeschlossenen USB-Geräte 
durchzugehen und schauen ob das gesuchte Gerät 
(VID/PID/Seriennummer/Geräteklasse) dabei ist und auf welchen COM-Port 
das gerade gemappt ist. Oder vielleicht kann man auch alle COM-Ports 
durchgehen und schauen welches Gerät das ist. Geht mit Sicherheit 
irgendwie.
#5363138
Lesenswert?

W.S. schrieb:
> Das ist eine kühne Behauptung, die ich so nicht bestätigen kann. Bei
> USB-Geräten, die ein VCP darstellen, hat man in der Regel keine andere
> Chance, als der Reihe nach alle Ports von COM1..COMxyz durchzutesten, ob
> dieser Stream sich öffnen läßt oder nicht. Und wenn er sich öffnen läßt,
> dann ist noch immer nicht gesagt, daß es das richtige Gerät ist.

Richtig, das ist übler Hack, der leider immer noch von vielen als 
"Lösung" angesehen wird.
Gerade bei USB-Serialports geht das auch sauber umzusetzen.

W.S. schrieb:
> Also schreib mal, wie man es macht, daß man den richtigen COM-Port aus
> vorgegebener vid&pid  herausfindet.

VID/PID allein reicht nicht, dafür hat man bei der USB-Org ja 
glücklicherweise vorgesorgt, und die Seriennummer in den Standard 
geschrieben. Wenn der Hersteller bzw. der Implementierer die 
eineindeutig programmiert hat, lässt sich jedes Gerät zuordnen. Dann 
muss man "nur" noch in der Registry schauen, welches USB Gerät momentan 
am Rechner steckt und an einer anderen Stelle schauen, welche 
VID/PID/SerialNumber Kombi da drauf gemapt ist. Und das geht dann ganz 
ohne wildes Öffnen oder gar schon irgendwas auf ein unbekanntes Gerät 
schreiben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren