Was ist eine Produkt-ID in USB und muss ich sie für mein Projekt kaufen?

10

Ich versuche, ein tragbares Gerät zu entwickeln, mit dem ich Daten von einem USB-Speichergerät auf ein anderes übertragen kann, ohne einen PC / Laptop zu verwenden. Ich habe den Entwicklerleitfaden von Jan Axelson gelesen, in dem ich auf einen Abschnitt gestoßen bin, in dem es heißt, dass man eine USB-Hersteller- / Produkt-ID kaufen muss, um ein USB-Gerät herzustellen. Ich habe dasselbe im USB Implementers Forum gelesen. Ich bin mir nicht sicher, wie wichtig diese Produkt-ID für mein Projekt ist.

  • Ist es so etwas wie eine MAC-Adresse für Computer / Laptops und brauche ich sie?

  • Ist es nur für die Entwicklung von Peripheriegeräten erforderlich und nicht für Geräte wie das, was ich implementieren möchte (was meiner Meinung nach eher ein Host ist)?

Infusion von Wermut n Asfodel
quelle
Es hört sich so an, als würden Sie in diesem Fall als Host fungieren, sodass Sie keinen gemäß Wouters Antwort benötigen.
PeterJ
@PeterJ Es tut mir leid, dass ich dies zu spät gebracht habe, aber ich plane auch, eine Touchscreen-Oberfläche zu entwickeln, um die Geräteübertragung zu übersehen und zu verwalten. Kann ich immer noch ohne Lieferanten- / Produkt-ID auskommen?
Infusion von Wermut n Asfodel
Wenn das über USB mit demselben Host-Gerät verbunden wäre, wäre es ein Gerät und würde eines benötigen. Die Preise finden Sie hier: usb.org/developers/vendor . Sie brauchen wirklich nur einen, um das Logo zu verwenden, und für die Produktion können Sie sich nur einen ausdenken, wenn Sie sich gerade in einer Konzept- / Testphase befinden. Ich habe vor einiger Zeit keine offizielle Lieferanten-ID 666 zugewiesen bekommen. Außerdem bin ich mir nicht hundertprozentig sicher, ob Sie einen benötigen. Konflikte wären kein Problem, wenn keine Verbindung zu einem PC hergestellt werden soll, und Sie würden wahrscheinlich kein USB-Logo benötigen, obwohl ich mir auf der Website nicht sicher bin rechtliche Seite der Dinge.
PeterJ
Ich habe vor, es in dasselbe Gerät wie einen Touchscreen auf einem Smartphone zu integrieren. Wird es dadurch der genannten Gebühr unterliegen?
Infusion von Wermut n Asfodel
Nein, das wird gut. Es geht wirklich nur um Kompatibilität mit Endbenutzerprodukten, wenn diese direkt an einen PC angeschlossen werden.
PeterJ

Antworten:

12

Ich bin nicht sicher, was genau Sie machen möchten, aber wenn es sich um ein Host-Gerät handelt, benötigen Sie in der Tat keine USB-VID / PID.

Die USB-VID / PID eines Slave-Geräts wird vom Host verwendet, um die Treiber zu identifizieren, die für das Slave-Gerät verwendet werden sollen. Ein Host-Gerät muss sich nicht gegenüber dem Slave identifizieren, daher benötigt es keine VID / PID.

Wouter van Ooijen
quelle
Ein Gerät, mit dem Daten von einem USB-Speichergerät (USB-Stick) auf ein anderes übertragen werden können, wodurch ein Laptop / PC entfällt, der meistens dazu verwendet wird.
Infusion von Wermut n Asfodel
Ich habe den ersten Satz umformuliert, falls er sich mehrdeutig anfühlte.
Infusion von Wermut n Asfodel
Dies ignoriert OTG-Geräte, die sowohl Host als auch Slave sein können.
Passant
@Passerby: Wenn ein OTG-Gerät ein Gerät ist, benötigt es eine VID und eine PID. Wenn es ein Host ist, ist dies nicht der Fall. Sie müssen also eine VID für die Zeit kaufen, in der es sich um ein Gerät handelt.
Warren Hill
5

Nur Geräte benötigen eine VID und eine PID, keine Hosts.

Die Vendor ID oder VID ist eine 16-Bit-Nummer, die Sie bei der USB Foundation kaufen müssen. Wenn Sie ein USB-Gerät herstellen möchten (und die Regeln vollständig einhalten möchten), identifiziert die VID Ihre Organisation.

Die Produkt-ID oder PID ist ebenfalls eine 16-Bit-Nummer, unterliegt jedoch Ihrer Kontrolle. Wenn Sie eine VID kaufen, haben Sie das Recht, diese mit jeder möglichen PID zu verwenden, sodass Sie 65536 mögliche VID: PID-Kombinationen erhalten. Die Absicht ist, dass eine VID: PID-Kombination ein bestimmtes Produkt global eindeutig identifiziert.

Dies garantiert, dass kein PC jemals zwei verschiedene Geräte mit derselben VID und PID sehen kann, wie der PC diese verwendet, um das Gerät zu identifizieren, da sonst ein Konflikt auftreten könnte.

Hinweis: Im Gegensatz zu einer MAC-ID besteht der Zweck einer VID: PID-Kombination darin, einen Gerätetyp eindeutig zu identifizieren, sofern das Betriebssystem weiß, welche Treiber zu verwenden sind. Es ist nicht immer erforderlich, zwischen zwei identischen Geräten unterscheiden zu können. Bei zwei USB-Speichersticks weiß der Computer beispielsweise nicht nur, um welches Gerät es sich handelt, sondern auch, an welchen Anschluss er angeschlossen ist.

Wenn Sie ein USB-Gerät an das Betriebssystem anschließen, fragt das Gerät nach seiner VID und PID und gibt dem Gerät eine Adresse, die es weiter verwendet, bis das Gerät entfernt (oder der Computer ausgeschaltet) wird.

Sobald der PC die VID und PID kennt, prüft er, ob er diese bereits kennt. Wenn dies der Fall ist, werden die richtigen Treiber dafür geladen. Andernfalls haben Sie die Möglichkeit, relevante Treiber zu installieren. Dieser Vorgang wird als Aufzählung bezeichnet.

Andererseits liefert eine MAC-ID selbst keine Informationen darüber, was ein Gerät ist (Computer, Drucker, Router usw.), sondern identifiziert ein Gerät eindeutig: Zwei identische PCs haben unterschiedliche MAC-IDs, als ob sie es wären Beide werden an dasselbe Ethernet-Netzwerk angeschlossen, das nicht richtig funktioniert. Zwei identische USB-Speichersticks haben jedoch identische VID und PID.

Wenn ich 1 Million identische USB-Geräte herstellen und verkaufen möchte, muss ich nur eine VID kaufen. Wenn ich 1 Million Ethernet-Geräte herstellen und verkaufen möchte, muss ich 1 Million MAC-IDs kaufen

Warren Hill
quelle
Warum haben sie nicht einfach eine erkennbare USB-Geräte-ID wie die Bluetooth-Adresse in Bluetooth-Geräten oder sogar MAC-Adressen in Laptops ausgegeben?
Infusion von Wermut n Asfodel
@StaceyMyers Ich habe meine Antwort erweitert, um den Unterschied zu erklären, den eine USB-VID: PID-Kombination im Gegensatz zu einer MAC-ID erreichen soll. Ich habe noch nie ein Bluetooth-Gerät entworfen, daher verstehe ich es nicht gut genug, um Kommentare abzugeben.
Warren Hill
Dies sind sehr nützliche Informationen für allgemeines USB-Wissen (daher habe ich auch positiv bewertet), aber ich glaube nicht, dass sie die Frage des OP beantworten (wie die akzeptierte Antwort), da das OP einen USB-Host entwerfen möchte. Ich schlage derzeit jedoch keine Änderungen vor - nur zu Ihrer Information.
cp.engr
2

Beachten Sie, dass einige Hardwareanbieter wie Microchip bereit sind, ihre eigene Lieferanten- ID kostenlos an ihre Kunden zu unterlizenzieren.

Martinm
quelle
Wenn Sie die VID eines Mikrocontroller-Anbieters auf diese Weise unterlizenzieren, können Sie in der Regel maximal 10.000 Einheiten Ihres Geräts produzieren.
cp.engr