Che cos'è un ID prodotto in USB e devo acquistarlo per il mio progetto?


11

Sto cercando di sviluppare un dispositivo portatile che mi consentirà di trasferire i dati da un dispositivo di archiviazione USB a un altro senza utilizzare un PC / laptop. Stavo leggendo la guida per sviluppatori di Jan Axelson in cui mi sono imbattuto in una sezione in cui si diceva che per acquistare un dispositivo USB si doveva acquistare un ID fornitore / ID prodotto USB. Ho letto lo stesso sul forum degli implementatori USB. Non sono sicuro dell'importanza di questo ID prodotto nel mio progetto.

  • È qualcosa di simile a un indirizzo MAC per computer / laptop e ne avrò bisogno?

  • È necessario solo per lo sviluppo di dispositivi periferici e non dispositivi come quello che desidero implementare (che immagino sia più simile a un host)?


Sembra che ti comporterai come host in quel caso, quindi non ne avrai bisogno secondo la risposta di Wouter.
PeterJ

@PeterJ Mi dispiace per averlo portato in ritardo, ma ho anche intenzione di sviluppare un'interfaccia touch screen per trascurare e gestire il trasferimento del dispositivo. Posso ancora andare senza un ID fornitore / ID prodotto?
Infusione di Wormwood n Asfodel

Se quello collegato tramite USB allo stesso dispositivo host sarebbe un dispositivo e ne avrebbe bisogno. Vedi qui per i prezzi: usb.org/developers/vendor . Ne hai davvero bisogno solo per usare il logo e per la produzione, se sei solo in una fase di concept / testing puoi crearne uno. Nessun ID fornitore ufficiale 666 come assegnato ad esempio ho notato qualche tempo fa. Inoltre non sono sicuro al 100% che ne avresti bisogno comunque, i conflitti non sarebbero un problema se non fosse pensato per connettersi a un PC e probabilmente non avresti bisogno di un logo USB, anche se non sono sicuro sul lato legale delle cose.
PeterJ

Ho intenzione di incorporarlo nello stesso dispositivo come un touch screen su uno smartphone. Lo renderà responsabile per la suddetta tassa?
Infuso di Wormwood n Asfodel

No, andrà bene. In realtà si tratta solo di compatibilità relativa ai prodotti degli utenti finali quando vengono collegati direttamente a un PC.
PeterJ

Risposte:


12

Non sono sicuro di cosa esattamente vuoi fare, ma se si tratta di un dispositivo host non hai davvero bisogno di un VID / PID USB.

Il VID / PID USB di un dispositivo slave viene utilizzato dall'host per identificare i driver da utilizzare per il dispositivo slave. Un dispositivo host non ha bisogno di identificarsi con lo slave, quindi non ha bisogno di un VID / PID.


Un dispositivo che può essere utilizzato per trasferire dati da un dispositivo di archiviazione USB (pen drive) a un altro eliminando così un laptop / PC che viene utilizzato principalmente per raggiungere questo obiettivo.
Infusione di Wormwood n Asfodel

Ho riformulato la prima frase nel caso fosse ambigua.
Infuso di Wormwood n Asfodel

Ciò ignora i dispositivi OTG, che possono essere sia host che slave.
Passante dal

@Passerby: quando un dispositivo OTG è un dispositivo ha bisogno di un VID e PID, quando è un host non lo fa. Quindi è necessario acquistare un VID per le volte che è un dispositivo.
Warren Hill,

5

Solo i dispositivi richiedono un VID e PID non host.

L'ID fornitore o VID è un numero a 16 bit che è necessario acquistare dalla USB Foundation. Se vuoi creare un dispositivo USB (e giocare pienamente secondo le regole) il VID identifica la tua organizzazione.

L'ID prodotto o PID è anche un numero a 16 bit ma è sotto il tuo controllo. Quando acquisti un VID hai il diritto di usarlo con ogni possibile PID, in modo da ottenere 65536 combinazioni possibili di VID: PID. L'intenzione è che una combinazione VID: PID identifichi in modo univoco un determinato poduct a livello globale.

Ciò garantisce che nessun PC possa mai vedere due dispositivi diversi con lo stesso VID e PID come il PC li utilizza per identificare il dispositivo, altrimenti potrebbe verificarsi un conflitto.

Nota: a differenza di un ID MAC, lo scopo di una combinazione VID: PID è identificare in modo univoco un tipo di dispositivo nella misura in cui il sistema operativo sa quali driver utilizzare non è sempre necessario essere in grado di distinguere tra due dispositivi identici. Ad esempio, due chiavette USB hanno che il computer non solo sa quale sia il dispositivo, ma sa a quale porta è collegata.

Quando si collega un dispositivo USB nel sistema operativo, il dispositivo richiede il VID e il PID e fornisce al dispositivo un indirizzo che continuerà a utilizzare fino alla rimozione del dispositivo (o allo spegnimento del computer).

Una volta che il PC conosce il VID e il PID, controlla se li conosce già. In tal caso carica i driver corretti per esso; in caso contrario ti viene data la possibilità di installare i driver pertinenti. Questo processo si chiama enumerazione.

D'altra parte un ID MAC non fornisce di per sé alcuna informazione su cosa sia un dispositivo (computer, stampante, router, ecc.) Ma identifica in modo univoco un dispositivo: due PC identici avranno ID MAC diversi come se entrambi vengono collegati alla stessa rete Ethernet che non funzionerà correttamente. Due chiavette USB identiche avranno tuttavia VID e PID identici.

Se voglio realizzare e vendere 1 milione di dispositivi USB identici, devo solo acquistare un VID. Se voglio realizzare e vendere 1 milione di dispositivi Ethernet, devo acquistare 1 milione di ID MAC


Perché non hanno semplicemente emesso un ID dispositivo USB rilevabile come l'indirizzo Bluetooth nei dispositivi Bluetooth o persino gli indirizzi MAC nei computer portatili?
Infusione di Wormwood n Asfodel

@StaceyMyers Ho esteso la mia risposta per spiegare la differenza in ciò che una combinazione USB VID: PID sta cercando di ottenere rispetto a un MAC-ID. Non ho mai progettato un dispositivo Bluetooth, quindi non lo capisco abbastanza bene da commentare.
Warren Hill,

Si tratta di informazioni molto utili per la conoscenza generale dell'USB (quindi anch'io ho effettuato l'upgrade), ma non credo che risponda alla domanda dell'OP (come fa la risposta accettata), poiché la cosa che l'OP vuole progettare sarebbe un host USB. Non sto suggerendo modifiche a questo punto, però - solo FYI.
cp.engr,

2

Nota che alcuni fornitori di hardware, come Microchip , sono disposti a concedere in licenza il proprio ID fornitore ai propri clienti gratuitamente.


In genere, ti limiterai a produrre fino a 10.000 unità del tuo dispositivo se stai concedendo in sub-licenza il VID di un fornitore di microcontrollori in questo modo.
cp.engr,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.