¿Qué es un ID de producto en USB y necesito comprarlo para mi proyecto?

11

Estoy tratando de desarrollar un dispositivo portátil que me permita transferir datos de un dispositivo de almacenamiento USB a otro sin usar una PC / computadora portátil. Estaba leyendo la guía de desarrolladores de Jan Axelson donde encontré una sección que decía que uno debe comprar una identificación de proveedor / identificación de producto USB para hacer cualquier dispositivo USB. Leí lo mismo en el Foro de implementadores USB. No estoy seguro de la importancia de esta identificación de producto en mi proyecto.

  • ¿Es algo así como una dirección MAC para computadoras / laptops y la necesitaré?

  • ¿Es algo necesario solo para desarrollar dispositivos periféricos y no dispositivos como lo que deseo implementar (que supongo que es más como un host)?

Infusión de Ajenjo n Asfodel
fuente
Parece que actuará como anfitrión en ese caso, por lo que no necesitará uno según la respuesta de Wouter.
PeterJ
@ Peter J. Lamento haberlo traído tarde, pero también planeo desarrollar una interfaz de pantalla táctil para pasar por alto y administrar la transferencia de dispositivos. ¿Todavía estoy listo para ir sin una identificación de proveedor / identificación de producto?
Infusión de Ajenjo n Asfodel
Si se conecta por USB al mismo dispositivo host, sería un dispositivo y necesitaría uno. Consulte aquí los precios: usb.org/developers/vendor . Realmente solo necesita uno para usar el logotipo y para la producción, si solo está en una etapa de concepto / prueba, puede inventar uno. No se ha asignado ningún ID de proveedor oficial 666, por ejemplo, lo noté hace un tiempo. Además, no estoy 100% seguro de que necesite uno de todos modos, los conflictos no serían un problema si no está destinado a conectarse a una PC y probablemente no necesite un logotipo USB, aunque no estoy seguro lado legal de las cosas.
PeterJ
Planeo incorporarlo en el mismo dispositivo como una pantalla táctil en un teléfono inteligente. ¿Eso lo hará responsable de dicha tarifa?
Infusión de Ajenjo n Asfodel
No, eso estará bien. En realidad, solo se trata de la compatibilidad relacionada con los productos de usuario final cuando se conectan directamente a una PC.
PeterJ

Respuestas:

12

No estoy seguro de qué es exactamente lo que quiere hacer, pero si se trata de un dispositivo host, de hecho no necesita un VID / PID USB.

El host usa el VID / PID USB de un dispositivo esclavo para identificar los controladores que se utilizarán para el dispositivo esclavo. Un dispositivo host no necesita identificarse con el esclavo, por lo tanto, no necesita un VID / PID.

Wouter van Ooijen
fuente
Un dispositivo que se puede usar para transferir datos de un dispositivo de almacenamiento USB (pen drive) a otro, eliminando así una computadora portátil / pc que se usa principalmente para lograr esto.
Infusión de Ajenjo n Asfodel
Reescribí la primera oración en caso de que pareciera ambigua.
Infusión de Ajenjo n Asfodel
Esto ignora los dispositivos OTG, que pueden ser tanto host como esclavos.
Passerby
@Passerby: cuando un dispositivo OTG es un dispositivo, necesita un VID y un PID, cuando es un host no lo necesita. Por lo tanto, debe comprar un VID para las veces que es un dispositivo.
Warren Hill
5

Solo los dispositivos necesitan un VID y un PID, no hosts.

El ID de proveedor o VID es un número de 16 bits que debe comprar en USB Foundation. Si desea crear un dispositivo USB (y cumplir plenamente con las reglas), el VID identifica su organización.

La identificación del producto o PID también es un número de 16 bits pero está bajo su control. Cuando compra un VID, tiene derecho a usarlo con cada PID posible, por lo que le ofrece 65536 combinaciones posibles de VID: PID. La intención es que una combinación VID: PID identifique de manera única un producto en particular a nivel mundial.

Esto garantiza que ninguna PC pueda ver dos dispositivos diferentes con el mismo VID y PID ya que la PC los utiliza para identificar el dispositivo; de lo contrario, podría producirse un conflicto.

Nota: a diferencia de un MAC-ID, el propósito de una combinación VID: PID es identificar de forma única un tipo de dispositivo en la medida en que el sistema operativo sepa qué controladores usar, no siempre es necesario poder distinguir entre dos dispositivos idénticos. Por ejemplo, dos memorias USB tienen la computadora no solo sabe qué dispositivo es, sino a qué puerto está conectado.

Cuando conecta un dispositivo USB en el sistema operativo, le pide al dispositivo su VID y PID y le da al dispositivo una dirección que continuará usando hasta que se retire el dispositivo (o la computadora se apague).

Una vez que la PC conoce el VID y el PID, verifica si ya los conoce. Si lo hace, carga los controladores correctos para ello; si no, se le da la oportunidad de instalar cualquier controlador relevante. Este proceso se llama enumeración.

Por otro lado, un MAC-ID no proporciona por sí mismo ninguna información sobre qué es un dispositivo (computadora, impresora, enrutador, etc.), pero identifica de forma exclusiva un dispositivo: dos PC idénticas tendrán diferentes MAC-ID como si ambos se conectan a la misma red Ethernet que no funcionará correctamente. Sin embargo, dos memorias USB idénticas tendrán VID y PID idénticos.

Si quiero fabricar y vender 1 millón de dispositivos USB idénticos, solo necesito comprar un VID. Si quiero fabricar y vender 1 millón de dispositivos Ethernet, tengo que comprar 1 millón de MAC-ID

Warren Hill
fuente
¿Por qué simplemente no emitieron una identificación de dispositivo USB reconocible como la dirección de Bluetooth en dispositivos Bluetooth o incluso direcciones MAC en computadoras portátiles?
Infusión de Ajenjo n Asfodel
@StaceyMyers He extendido mi respuesta para explicar la diferencia en lo que está tratando de lograr una combinación USB VID: PID en lugar de una MAC-ID. Nunca he diseñado un dispositivo Bluetooth, así que no lo entiendo lo suficientemente bien como para comentar.
Warren Hill
Esta es información muy útil para el conocimiento general de USB (por lo tanto, voté también), pero no creo que responda la pregunta del OP (como lo hace la respuesta aceptada), ya que lo que el OP quiere diseñar sería un host USB. Sin embargo, no estoy sugiriendo ninguna edición en este momento, solo para su información.
cp.engr
2

Tenga en cuenta que algunos proveedores de hardware, como Microchip , están dispuestos a sublicenciar su propia ID de proveedor a sus clientes, de forma gratuita.

martinm
fuente
Por lo general, estará limitado a producir 10,000 unidades de su dispositivo como máximo si está sublicenciando el VID de un proveedor de microcontroladores de esta manera.
cp.engr