现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

USB的VID和PID

2020-05-15 06:59 工业·编程 ⁄ 共 1105字 ⁄ 字号 暂无评论

USB(Universal Serial BUS,通用串行总线);

VID(Vender ID供应商识别码)和PID(Product ID产品识别码);

每一个USB设备都有VID和PID,PID/VID唯一标识一个设备,HardwareID是为了给系统识别的 ,他是根据PID/VID而生成的。

VID是由供应商向USB-IF(Implementers Forum 应用者论坛)申请。每一个供应商的VID是唯一。

PID是由供应商自行决定;

主机通过VID和PID来识别不同的设备,根据他们(以及设备的版本号),可以给设备加载或安装相应的驱动程序。

这个与序列号没什么关系,序列号一般都是厂家固化到芯片中的信息而已。GUID只是为了标志你安装的设备是属于一个什么类当中,这个类可以显示再设备管理器中。

比如:你可以定义一个类,当然这个类有与系统中任何类都不同的GUID,然后选择一个图标和类名,就可以同网卡等其他设备一起显示在设备管理器下的根目录中了。

根据USB规范的规定,所有的USB设备都有供应商ID(VID)和产品识别码(PID),主机通过不同的VID和PID来区别不同的设备,VID和PID都是两个字节长,其中,供应商ID(VID)由供应商向USB执行论坛申请,每个供应商的VID是唯一的,PID由供应商自行决定,理论上来说,不同的产品、相同产品的不同型号、相同型号的不同设计的产品最好采用不同的PID,以便区别相同厂家的不同设备。

由于VID和PID重复并不会对产品的使用带来严重影响,很多USB设备生产商(山寨厂居多)为了方便,并不会向USB执行论坛申请自己的VID,而是依然沿用主控生产商的VID或随便向产品写入VID和PID;同时,正规厂家只需要申请VID,PID由厂家自行确定,所以存在相同型号的产品,可能采用了不同的主控(商业需要,很正常),而他们的PID是一样的,基于上述原因通过VID和PID就不能准确识别USB设备的主控型号,这个问题大家在使用USB设备的过程中需要注意。

VID和PID有两种存储方式

第一种是主控制生厂商的VID和PID,存储在主控的bootcode中;

第二种是设备生厂商的VID和PID,该VID和PID存储在主控外的非易失存储设备中(EEPROM或Flash)的设备固件中;

当USB设备连接主机时,如果固件中有设备生产商的VID和PID报告给主机,而是忽略主控生产商的VID和PID;

理论上一个USB存储设备的VID是设备生厂商的VID,而不是主控生厂商的VID,这两个VID应该是不同的(主控生厂商自己生产的设备除外);

image

列表仅仅列了一些比较常用的,如果找不到你想要的,可以参照链接进行查找。

给我留言

留言无头像?