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)?
quelle
Antworten:
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.
quelle
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
quelle
Beachten Sie, dass einige Hardwareanbieter wie Microchip bereit sind, ihre eigene Lieferanten- ID kostenlos an ihre Kunden zu unterlizenzieren.
quelle