我正在尝试开发一种便携式设备,使我无需使用PC /笔记本电脑即可将数据从一个USB存储设备传输到另一个USB存储设备。我在阅读Jan Axelson的开发人员指南时,碰到一节说,必须制造一个USB供应商ID /产品ID才能制造任何USB设备。我在USB实施者论坛上也读过同样的文章。我不确定此产品ID在我的项目中的重要性。
它是否类似于计算机/笔记本电脑的MAC地址,我需要吗?
是否仅开发外围设备而不是我希望实现的设备(我想它更像是主机)才需要它?
我正在尝试开发一种便携式设备,使我无需使用PC /笔记本电脑即可将数据从一个USB存储设备传输到另一个USB存储设备。我在阅读Jan Axelson的开发人员指南时,碰到一节说,必须制造一个USB供应商ID /产品ID才能制造任何USB设备。我在USB实施者论坛上也读过同样的文章。我不确定此产品ID在我的项目中的重要性。
它是否类似于计算机/笔记本电脑的MAC地址,我需要吗?
是否仅开发外围设备而不是我希望实现的设备(我想它更像是主机)才需要它?
Answers:
我不确定您要做什么,但是如果它是主机设备,则确实不需要USB VID / PID。
主机使用从设备的USB VID / PID标识要用于从设备的驱动程序。主机设备不需要向从设备标识自己,因此不需要VID / PID。
只有设备需要VID,而PID不需要主机。
供应商ID或VID是一个16位数字,您必须从USB Foundation购买。如果您要制作USB设备(并完全遵守规则),则VID可标识您的组织。
产品ID或PID也是一个16位数字,但在您的控制之下。购买VID时,您有权将其与每个可能的PID一起使用,这样可以为您提供65536个可能的VID:PID组合。目的是VID:PID组合应该在全局范围内唯一地标识特定的产品。
这样可以保证没有PC可以看到两个具有相同VID和PID的不同设备,因为PC使用这些ID来标识该设备,否则可能会发生冲突。
注意:与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