USB 中的产品 ID 是什么,我需要为我的项目购买它吗?

电器工程 USB USB设备 USB主机
2022-01-31 11:50:57

我正在尝试开发一种便携式设备,它允许我在不使用 PC/笔记本电脑的情况下将数据从一个 USB 存储设备传输到另一个。我在阅读 Jan Axelson 的开发人员指南时遇到了一个部分,其中说必须购买 USB 供应商 ID/产品 ID 才能制造任何 USB 设备。我在 USB 实施者论坛上读到了同样的内容。我不确定这个产品 ID 在我的项目中的重要性。

  • 它是否类似于计算机/笔记本电脑的 MAC 地址,我需要它吗?

  • 它是否仅用于开发外围设备而不是我希望实现的设备(我猜它更像是主机)?

3个回答

我不确定你到底想做什么,但如果它是一个主机设备,你确实不需要 USB VID/PID。

主机使用从设备的 USB VID/PID 来识别要用于从设备的驱动程序。主机设备不需要向从设备标识自己,因此它不需要 VID/PID。

只有设备需要 VID 和 PID 而不是主机。

供应商 ID 或 VID 是一个 16 位数字,您必须从 USB 基金会购买。如果您想制作 USB 设备(并完全遵守规则),则 VID 可以识别您的组织。

产品 ID 或 PID 也是一个 16 位数字,但在您的控制之下。当您购买 VID 时,您有权将其与每个可能的 PID 一起使用,因此这为您提供了 65536 种可能的 VID:PID 组合。目的是 VID:PID 组合应该在全球范围内唯一地标识特定产品。

这保证了任何 PC 都无法看到具有相同 VID 和 PID 的两个不同设备,因为 PC 使用它们来识别设备,否则可能会发生冲突。

注意:与 MAC-ID 不同,VID:PID 组合的目的是在操作系统知道要使用哪些驱动程序的范围内唯一标识设备类型,并不总是需要能够区分两个相同的设备。例如,两个 USB 记忆棒让计算机不仅知道设备是什么,还知道它插入了哪个端口。

当您将 USB 设备插入操作系统时,系统会向设备询问其 VID 和 PID,并为设备提供一个地址,该地址将继续使用,直到设备被移除(或计算机关闭)。

一旦 PC 知道 VID 和 PID,它就会检查它是否已经知道这些。如果是这样,它会为它加载正确的驱动程序;如果没有,您将有机会安装任何相关的驱动程序。这个过程称为枚举。

另一方面,MAC-ID 本身并不提供有关设备是什么(计算机、打印机、路由器等)的任何信息,但确实唯一地标识了一个设备:两台相同的 PC 将具有不同的 MAC-ID,就好像它们两者都插入同一个以太网,因此无法正常工作。然而,两个相同的 USB 记忆棒将具有相同的 VID 和 PID。

如果我想制造和销售 100 万个相同的 USB 设备,我只需要购买一个 VID。如果我想制造和销售 100 万个以太网设备,我必须购买 100 万个 MAC-ID

请注意,一些硬件供应商,例如 Microchip,愿意免费将他们自己的供应商 ID 再许可给他们的客户。