USB设备的VID与PID

USB(Universal Serial BUS,通用串行总线)协议规定,所有的USB设备都有VID(Vendor ID,供应商识别码)和PID(Product ID,产品识别码)。VID由供应商向USB-IF(Implementers Forum,应用者论坛)申请。每个供应商的VID是唯一的,PID由供应商自行决定。主机通过VID和PID来识别不同设备,根据它们(以及设备的版本号),可以给设备加载或安装相应的驱动程序。VID和PID的长度都是两个字节的。
常见的各大供应商的VID和PID,可以在这里查询到:http://www.linux-usb.org/usb.ids

USB定义了种类代码信息,它被用来识别设备的功能,根据这些功能,以加载设备驱动。这种信息包含在名为基类,子类和协议的3个字节里(注意:“基类”在本文中,用来标识三个字节的种类代码的的首字节;在USB规范中没有使用这个术语)。设备中有两个地方可以存放种类代码信息,一个是设备描述符,另一个是接口描述符。已经定义的种类代码,有些只能用在设备描述符里,有些只能用在接口描述符里,有些两种描述符里都可用。下表给出现在已经定了的基类的值的集合,通常用法是什么,基类用在什么场合(设备描述符或接口描述符)。
其具体定义参见USB官方网址:http://www.usb.org/developers/defined_class
各种类的定义参见:http://www.usb.org/developers/devclass_docs

Base Class

Descriptor Usage

Description

00h

Device

Use class information in the Interface Descriptors 种类信息定义在接口描述符中

01h

Interface

Audio 音频设备

02h

Both

Communications & CDC 通信设备(手机,Class_02&SubClass_02&Prot_01

03h

Interface

HID (Human Interface Device) 人机接口设备

05h

Interface

Physical 物理设备

06h

Interface

Image 图像设备(可能是IPhone手机,Class_06&SubClass_01&Prot_01

07h

Interface

Printer 打印机

08h

Interface

Mass Storage 大容量存储(可能是,Class_08&SubClass_06&Prot_50

09h

Device

Hub 集线器

0Ah

Interface

CDC-Data 通信设备(手机,Class_0A&SubClass_00&Prot_00

0Bh

Interface

Smart Card 智能

0Dh

Interface

Content Security 内容安全设备

0Eh

Interface

Video 视频设备(摄像头,Class_0e&SubClass_03&Prot_00)

0Fh

Interface

Personal Healthcare 个人健康设备

10h

Interface

Audio/Video Devices 音频/视频设备

DCh

Both

Diagnostic Device 诊断设备(USB2兼容设备)

E0h

Interface

Wireless Controller 无线控制器(蓝牙设备等)

EFh

Both

Miscellaneous 杂项(ActiveSync,PalmSync,各种协会等)

FEh

Interface

Application Specific 应用专有规范(固件升级,红外,USB测试与测量等)

FFh

Both

Vendor Specific 供应商自定义规范(手机,Class_FF&SubClass_FF&Prot_FF




根据USB规范的规定,所有的USB设备都有供应商ID(VID)和产品识别码(PID),主机通过不同的VID和PID来区别不同的设备。
  VID和PID都是两个字节长,其中,供应商ID(VID)由供应商向USB执行论坛申请,每个供应商的VID是唯一的,PID由供应商自行决定,理论上来说,不同的产品、相同产品的不同型号、相同型号的不同设计的产品最好采用不同的PID,以便区别相同厂家的不同设备。
   了解到VID和PID在通常情况下有两种存储方式,第一种是主控生产商的VID和PID,存储在主控的bootcode中;第二种是设备生产商的VID和PID,该VID和PID存储在主控外部的非易失性存储设备中(EEPROM或Flash)的设备固件中。当USB设备连接主机时,如果固件中有设备生产商的VID和PID,会将该VID和PID报告给主机,而忽略主控生产商的VID和PID。所以理论上一个USB存储设备的VID应该是设备生产商的VID,而不是主控生产商的VID,这两个VID应该是不同的(主控生产商自己生产的设备除外)。
  由于VID和PID重复并不会对产品的使用带来严重影响,很多USB设备生产商(山寨厂居多)为了方便,并不会向USB执行论坛申请自己的VID,而是依然沿用主控生产商的VID或随便向产品写入VID和PID;同时,正规厂家只需要申请VID,PID由厂家自行确定,所以存在相同型号的产品,可能采用了不同的主控(商业需要,很正常),而他们的PID是一样的。基于上述原因,通过VID和PID就不能准确识别USB设备的主控型号,提醒大家在使用USB设备的过程中需要注意这个问题


一、VID和PID
  PID/VID唯一标识一个设备,HardwareID是为了给系统识别的 ,他是根据PID/VID而生成的。这个与序列号没什么关系,序列号一般都是厂家固化到芯片中的信息而已。GUID只是为了标志你安装的设备是属于一个什么类当中,这个类可以显示再设备管理器中。比如:你可以定义一个类,当然这个类有与系统中任何类都不同的GUID,然后选择一个图标和类名,就可以同网卡等其他设备一起显示在设备管理器下的根目录中了

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

   VID和PID通常情况下有两种存储方式,第一种是主控生产商的VID和PID,存储在主控的bootcode中;第二种是设备生产商的VID和PID,该VID和PID存储在主控外部的非易失性存储设备中(EEPROM或Flash)的设备固件中,当USB设备连接主机时,如果固件中有设备生产商的VID和PID,会将该VID和PID报告给主机,而忽略主控生产商的VID和PID。所以理论上一个USB存储设备的VID应该是设备生产商的VID,而不是主控生产商的VID,这两个VID应该是不同的(主控生产商自己生产的设备除外)。

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

二、常用设备VID和PID

1.摄像头VID和PID

[plain]  view plain  copy
  1. {USB_DEVICE (0x0733, 0x0430)}, /* Intel PC Camera Pro */   
  2. {USB_DEVICE (0x0733, 0x0401)}, /* Intel Create and Share */   
  3. {USB_DEVICE (0x99FA, 0x8988)}, /* Grandtec V.cap */   
  4. {USB_DEVICE (0x0733, 0x0402)}, /* ViewQuest M318B */   
  5. {USB_DEVICE (0x0733, 0x0110)}, /* ViewQuest VQ110 */   
  6. {USB_DEVICE (0x040A, 0x0002)}, /* Kodak DVC-325 */  
  7. {USB_DEVICE (0x055f, 0xc420)}, /* Mustek gSmart Mini 2 */   
  8. {USB_DEVICE (0x055f, 0xc520)}, /* Mustek gSmart Mini 3 */   
  9. {USB_DEVICE (0x041E, 0x400A)}, /* Creative PC-CAM 300 */   
  10. {USB_DEVICE (0x084D, 0x0003)}, /* D-Link DSC-350 */  
  11. {USB_DEVICE (0x041E, 0x400B)}, /* Creative PC-CAM 600 */  
  12. {USB_DEVICE (0x8086, 0x0630)}, /* Intel Pocket PC Camera */   
  13. {USB_DEVICE (0x8086, 0x0110)}, /* Intel Easy PC Camera */   
  14. {USB_DEVICE (0x0506, 0x00df)}, /* 3Com HomeConnect Lite */   
  15. {USB_DEVICE (0x040a, 0x0300)}, /* Kodak EZ200 */   
  16. {USB_DEVICE (0x04fc, 0x504b)}, /* Maxell MaxPocket LE 1.3 */  
  17. {USB_DEVICE (0x08ca, 0x2008)}, /* Aiptek Mini PenCam 2 M */   
  18. {USB_DEVICE (0x08ca, 0x0104)}, /* Aiptek PocketDVII 1.3 */   
  19. {USB_DEVICE (0x08ca, 0x2018)}, /* Aiptek Pencam SD 2M */   
  20. {USB_DEVICE (0x04fc, 0x504a)}, /* Aiptek Mini PenCam 1.3 */   
  21. {USB_DEVICE (0x055f, 0xc530)}, /* Mustek Gsmart LCD 3 */  
  22. {USB_DEVICE (0x055f, 0xc650)}, /* Mustek MDC5500Z */   
  23. {USB_DEVICE (0x052b, 0x1513)}, /* Megapix V4 */  
  24. {USB_DEVICE (0x08ca, 0x0103)}, /* Aiptek PocketDV */   
  25. {USB_DEVICE (0x0af9, 0x0010)}, /* Hama USB Sightcam 100 */  
  26. {USB_DEVICE (0x1776, 0x501c)}, /* Arowana 300K CMOS Camera */   
  27. {USB_DEVICE (0x08ca, 0x0106)}, /* Aiptek Pocket DV3100+ */   
  28. {USB_DEVICE (0x08ca, 0x2010)}, /* Aiptek PocketCam 3M */   
  29. {USB_DEVICE (0x0458, 0x7004)}, /* Genius VideoCAM Express V2 */   
  30. {USB_DEVICE (0x04fc, 0x0561)}, /* Flexcam 100 */  
  31. {USB_DEVICE (0x055f, 0xc430)}, /* Mustek Gsmart LCD 2 */   
  32. {USB_DEVICE (0x04fc, 0xffff)}, /* Pure DigitalDakota */   
  33. {USB_DEVICE (0xabcd, 0xcdee)}, /* Petcam */  
  34. {USB_DEVICE (0x04a5, 0x3008)}, /* Benq DC 1500 */   
  35. {USB_DEVICE (0x046d, 0x0960)}, /* Logitech Inc. ClickSmart 420 */   
  36. {USB_DEVICE (0x046d, 0x0901)}, /* Logitech Inc. ClickSmart 510 */   
  37. {USB_DEVICE (0x04a5, 0x3003)}, /* Benq DC 1300 */   
  38. {USB_DEVICE (0x0af9, 0x0011)}, /* Hama USB Sightcam 100 */   
  39. {USB_DEVICE (0x055f, 0xc440)}, /* Mustek DV 3000 */   
  40. {USB_DEVICE (0x041e, 0x4013)}, /* Creative Pccam750 */   
  41. {USB_DEVICE (0x060b, 0xa001)}, /* Maxell Compact Pc PM3 */   
  42. {USB_DEVICE (0x04a5, 0x300a)}, /* Benq DC3410 */   
  43. {USB_DEVICE (0x04a5, 0x300c)}, /* Benq DC1016 */   
  44. {USB_DEVICE (0x0461, 0x0815)}, /* Micro Innovation IC200 */  
  45. {USB_DEVICE (0x046d, 0x0890)}, /* Logitech QuickCam traveler */  
  46. {USB_DEVICE (0x10fd, 0x7e50)}, /* FlyCam Usb 100 */   
  47. {USB_DEVICE (0x06e1, 0xa190)}, /* ADS Instant VCD */   
  48. {USB_DEVICE (0x055f, 0xc220)}, /* Gsmart Mini */  
  49. {USB_DEVICE (0x0733, 0x2211)}, /* Jenoptik jdc 21 LCD */  
  50. {USB_DEVICE (0x046d, 0x0900)}, /* Logitech Inc. ClickSmart 310 */  
  51. {USB_DEVICE (0x055f, 0xc360)}, /* Mustek DV4000 Mpeg4 */   
  52. {USB_DEVICE (0x08ca, 0x2024)}, /* Aiptek DV3500 Mpeg4 */   
  53. {USB_DEVICE (0x046d, 0x0905)}, /* Logitech ClickSmart820 */   
  54. {USB_DEVICE (0x05da, 0x1018)}, /* Digital Dream Enigma 1.3 */  
  55. {USB_DEVICE (0x0c45, 0x6025)}, /* Xcam Shanga */  
  56. {USB_DEVICE (0x0733, 0x1311)}, /* Digital Dream Epsilon 1.3 */   
  57. {USB_DEVICE (0x041e, 0x401d)}, /* Creative Webcam NX ULTRA */   
  58. {USB_DEVICE (0x08ca, 0x2016)}, /* Aiptek PocketCam 2 Mega */   
  59. {USB_DEVICE (0x0734, 0x043b)}, /* 3DeMon USB Capture aka */  
  60. {USB_DEVICE (0x041E, 0x4018)}, /* Creative Webcam Vista (PD1100) */  
  61. {USB_DEVICE (0x0546, 0x3273)}, /* Polaroid PDC2030*/  
  62. {USB_DEVICE (0x041e, 0x401f)}, /* Creative Webcam Notebook PD1171*/   
  63. {USB_DEVICE (0x041e, 0x4017)}, /* Creative Webcam Mobile PD1090*/   
  64. {USB_DEVICE (0x046d, 0x08a2)}, /* Labtec Webcam Pro*/  
  65. {USB_DEVICE (0x055f, 0xd003)}, /* Mustek WCam300A*/   
  66. {USB_DEVICE (0x0458, 0x7007)}, /* Genius VideoCam V2*/  
  67. {USB_DEVICE (0x0458, 0x700c)}, /* Genius VideoCam V3*/   
  68. {USB_DEVICE (0x0458, 0x700f)}, /* Genius VideoCam Web V2*/   
  69. {USB_DEVICE (0x041e, 0x401e)}, /* Creative Nx Pro*/   
  70. {USB_DEVICE (0x0c45, 0x6029)}, /* spcaCam@150 */   
  71. {USB_DEVICE (0x0c45, 0x6009)}, /* spcaCam@120 */  
  72. {USB_DEVICE (0x0c45, 0x600d)}, /* spcaCam@120 */  
  73. {USB_DEVICE (0x04fc, 0x5330)}, /* Digitrex 2110*/   
  74. {USB_DEVICE (0x055f, 0xc540)}, /* Gsmart D30*/   
  75. {USB_DEVICE (0x0ac8, 0x301b)}, /* Asam Vimicro*/  
  76. {USB_DEVICE (0x041e, 0x403a)}, /* Creative Nx Pro 2*/  
  77. {USB_DEVICE (0x055f, 0xc211)}, /* Kowa Bs888e Microcamera*/   
  78. {USB_DEVICE (0x0ac8, 0x0302)}, /* Z-star Vimicro zc0302*/  
  79. {USB_DEVICE (0x0572, 0x0041)}, /* Creative Notebook cx11646*/  
  80. {USB_DEVICE (0x08ca, 0x2022)}, /* Aiptek Slim 3200*/   
  81. {USB_DEVICE (0x046d, 0x0921)}, /* Labtec Webcam */  
  82. {USB_DEVICE (0x046d, 0x0920)}, /* QC Express */  
  83. {USB_DEVICE (0x0923, 0x010f)}, /* ICM532 cams */   
  84. {USB_DEVICE (0x055f, 0xc200)}, /* Mustek Gsmart 300 */  
  85. {USB_DEVICE (0x0733, 0x2221)}, /* Mercury Digital Pro 3.1p*/   
  86. {USB_DEVICE (0x041e, 0x4036)}, /* Creative Live ! */   
  87. {USB_DEVICE (0x055f, 0xc005)}, /* Mustek Wcam300A */   
  88. {USB_DEVICE (0x041E, 0x403b)}, /* Creative Webcam Vista (VF0010) */   
  89. {USB_DEVICE (0x0545, 0x8333)}, /* Veo Stingray */   
  90. {USB_DEVICE (0x0545, 0x808b)}, /* Veo Stingray */   
  91. {USB_DEVICE (0x10fd, 0x8050)}, /* Typhoon Webshot II USB 300k */   
  92. {USB_DEVICE (0x0000, 0x0000)}, /* MystFromOri Unknow Camera */  
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值