This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

In USB why VID(vendor id) , PID(Product id ) are required??

Greetings,

               i am just beginner of USB as initial steps i read USB 2.0 Specification document, one thing i don't understand that why the VID(vendor id), PID(product id) is needed?? as in enumaration after connecting the USB device to the host, the host will send the reset signal then the device will repond to that reset signal. after that the usb will send unique id/address to the device and  that address the device should have to store in corresponding appropriate field. after that the host will request to the  device about descriptor like(device,configuration,string,endpoint....etc), as a response for that the device will transmit the descriptor filled structure. In device descriptor i observed that there will be a vid and pid field which will be assigned by USB-IF and product manufacturer my doubt was already the host send unique address/id to the device through which it will respond but why this VID and PID?? hope you clear about my question.

Thanks and Regards.

  • VID and PID are required to distinguish different devices from one to other. VID is allocated by the USB organization at some fees. I think they also allocate a PID range so the manufacturer can design those many unique devices.

    Many MCU vendors also have sub-licensing of PIDs. They will allow you to use their VID for free and allocate you a PID. Of course, provided you use their micro-controllers to implement the USB solution.

    For development of a prototype you need not have a unique VID/PID though.

  • Thanks for reply,

                             Then what will be  the use of unique id/address which will sent by the host to device after the host sent reset signal??

  • I am not sure but trying to guess - the unique address could be a per piece serial number kind of thing while the PID is same throughout for that product.

    For e.g. USB mouse model X manufactured by ABC will have the same PID for all production quantity of model X but for each manufactured model X, the serial number will be different.

    Sorry this is a wild guess at the moment.

    VID is the vendor ID, so it will be same for all products made by ABC.

  • Greetings,,

    I don't have that much experiance with USB but what gopal.amlekar says is true (VID refers to Vendor ID and PID refer to Product id) now back to your question

    Thanks for reply,

                             Then what will be  the use of unique id/address which will sent by the host to device after the host sent reset signal??

    I'm not sure about my answer but let's just imagine you bought the same product from the same compay (they will have the same PID and VID) how would the host distingush them now..?

    like what you said and gopal.amlekar said I guess that is the use of (unique id/address)

    Regards,,

    Mustafa S.

  • You could also think that the IDs form a HW ID in an organized way. They all together are used to find out the right driver for that particular kind of HW. Allocating certain number range (VID-part) for a certain manufacturer (or vendor) and a certain product ID (PID) for a product helps keeping the ID(s) unique so a driver can trust that if the chip responds with certain numbers, the driver is right for it.

    I'm not sure what unique ID/address you are referring to, but I wonder if you mean Microsoft's way of identifying drivers and the unique address that USB host allocates to a device.

    This is about Microsoft's "Device Unique Identifier"

    https://msdn.microsoft.com/en-us/library/windows/hardware/ff552563%28v=vs.85%29.aspx

    This is what the USB descriptor looks like through Microsoft's eyes:

    https://msdn.microsoft.com/en-us/library/windows/hardware/ff539280%28v=vs.85%29.aspx

    This might cast some light on the uniquely identifying devices:

    http://www.osronline.com/showthread.cfm?link=256146

    This is a list of vendor IDs/product IDs. It shows how they are used:

    http://www.linux-usb.org/usb.ids