USB百科
+ -

同样的soc板子用的同一个USB驱动设备名称,厂商和产品ID都一样,使用什么方法来区别?

2021-07-08 1527 0

今天在本站USB中文网 http://www.usbzh.com 的技术交流群中有位同学提问:

  • 各位老铁,我们自己的soc板子用的usb一个驱动,那么usb设备名称,厂商和产品ID就一样了,这个是没有方法来区别下
  • 比如一个PC同时插入我们的3块USB

厂商和产品ID都一样

对于这个问题,就是典型的多个相同的板板接入电脑中,并且由于硬件的设备信息一致,会导致在设备管理器中出现多个相同的设备。

对于与此相关联的问题记得自己当时写了一篇关于HID的相关文章,详见:
HID 枚举系统中所有HID设备信息代码示例:http://www.usbzh.com/article/detail-111.html

从文章至少是HID设备来看,这种情况至少在Windows下是存在的。通过HID的示例代码来看,对于同一种设备类型,系统会对这种设备类型注册相同的设备接口GUID,这个系统会根据这个接口GUID来创建一个设备链接名。

这里我们区分一下Windows USB设备ID或者说名称的几个概念:

  • 硬件ID:包括PID,VID,REV(bcdVersion)
  • 实例ID:相同的硬件ID的设备实例标识ID.

从上面来看,这里比较关键的就是实例ID,这个在Windows驱动中会通过IRP_MN_QUERY_ID的BusQueryInstanceID来获取。详见:windows加载即插即用PNP设备的过程 http://www.pnpon.com/article/detail-160.html

设备的链接名其实就是这些设备的相关信息的组合,成一个比较长的名字,具体可详见设备链接名:
本对于本人的计算机中关于USB鼠标的HID设备根设备:
鼠标HID设备

我们分别查看设备的属信息:
鼠标HID位置信息

我们再通过Winobj查看其对位的链接名:
链接名

再通过设备管理器查看设备的
位置路径

从上图可以看到,设备链接名包括:

  • 设备的总线类型:USB
  • 设备的硬件ID:VID,PID
  • 设备的类型 :GUID_DEVINTERFACE_USB_DEVICE {A5DCBF10-6530-11D2-901F-00C04FB951ED}
  • 设备的实例名:这部分与设备的位置和第几个同类型设备枚举有关。

以上的这些信息在Windows应用层都是可以通过SetupApi函数来获取,而在内核中是可以通过 Windows驱动中获取设备PDO的属性信息http://www.usbzh.com/article/detail-546.html 可以获得。


其实在早些的时候,记得大概第一次做windows驱动时,记得同事是在板卡上设备一个拨码开关,通过读取这个拨码开组合不同的值来确定是那个设备。但这是一个风险,就是如果相同的板卡拨码开关置相同的值时,又会有问题的。

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

为什么我的USB设备如U盘从一个端口换到另一个端口会重新安装驱动?
在 Windows 2000和更高版本的操作系统中,当 USB 设备从一个端口移到另一个端口时,将创建一个新的物理设备对象 (PDO)。 如果硬件报告了唯一的 USB 序列号,则不会创建新的 PDO。若要重复使用同一 PDO 并确保设备不会改变,无论设备是否已重新插入相同的端口或新端口,硬件供应商必......
USB设备和USB集线器HUB的数据传输
USB高速集线器与USB根集线器之间只通过USB使用USB高速通讯讯方式,而对于低速或全速的数据通讯的转换是由其挂接的最近的USB-HUB负责完成转换。如下图:对于USB高速设备和USB高速HUB,使用高速通讯。对于连接到高速HUB上的低速或全速USB-HUB,使用低速或全速通讯方式。对于连接到高速......
USB设备的枚举过程分析
USB协议定义了设备的6种状态,仅在枚举过程种,设备就经历了4个状态的迁移:上电状态(Powered),默认状态(Default),地址状态(Address)和配置状态(Configured)(其他两种是连接状态和挂起状态(Suspend))详情可见:http://www.usbzh.com/art......
USB设备类型定义
依附在总线上的设备可以是需要特定的驱动程序的完全定制的设备,也可能属于某个设备类别。这些类别定义设备的行为和接口描述符,这样一个驱动程序可能用于所有此种类别的设备。一般操作系统都为支持这些设备类别,为其提供通用驱动程序。设备分类由USB设计论坛设备工作组决定,并分配ID。一些已定义的类代码只允许......
USB设备类bDeviceClass、bDeviceSubClass、bDeviceProtocol
在USB的设备类信息在USB的设备描述符,接口描述符,甚至接口关联描述符中都有所描述,这些描述符的字段一般包括bDeviceClass、bDeviceSubClass、bDeviceProtocol。USB定义了类代码信息,用于识别设备的功能并基于该功能加载设备驱动程序。信息包含在三个字节中,分别......
详解电脑无法识别USB设备的原因和解决方法
当我们的在电脑中插入USB设备时(如USB鼠标,usb键盘,usb音箱,usbU盘),有时会提示“无法识别USB设备”问题,这个时候无论我们重启电脑,还是反复重新插拔USB设备,都无法解决这类问题。电脑无法识别USB设备原因分析电脑中插入USB设备时,提示无法USB设识别,出现这种问题肯定不是电脑......
USB设备低速,高速硬件检测机制及断开过程
没有设备连接到主机时:D+和D-数据线上的下拉电阻起作用,使得两者都在低电平;主机端看来就是个SE0状态,同样地,当数据线上的SE0状态持续一断时间后,就被主机认为是断开状态。设备连接到主机时:当主机检到某一个数据线电平拉高并保持了一段时间,就认为有设备连上来了。 主机必需在驱动SE0状态以复位设备......
Windows下USB设备的枚举过程分析
1.用户把USB设备插入USB端口或给系统启动时设备上电这里的USB端口指的是主机下的根hub或主机下行端口上的hub端口。Hub给端口供电,连接着的设备处于上电状态。2.Hub监测它各个端口数据线上(D+/D-)的电压在hub端,数据线D+和D-都有一个阻值在14.25k到24.8k的下拉电阻Rp......
Windows10设备管理器USB设备描述符请求失败(未知的usb设备)
在电脑中插入USB设备后,有时会报USB设备描述符请求失败,导致USB设备在设备管理器中枚举失败。一种专业的解决办法见:http://www.usbzh.com/article/detail-1059.htmlUSB设备描述符请求失败现象USB设备描述符请求失败在设备管理器中发现通用串行总线......
USB设备描述符布局
通用串行总线USB以其强大的功能,方便的连接广受用户使用,这些都得益于USB灵活多样的描述符。USB设备通过配置描述符,接口描述符,端点描述符等描述符实现设备功能。USB设备灵活多变的角色转换是通过USB的配置描述符来实现的,但一个USB设备有多个配置描述符时,就表明了这个USB设备支持多角的转换......
USB设备的电源供电
USB接头默认提供一组5伏特的电压,可作为相连接USB设备的电源。实际上,设备接收到的电源可能会低于5V,只略高于4V。通过USB PD3.0、QC4等快速充电协议,现有USB接口的最大的可以达到20V,最低3V。一个USB的HUB最多只能提供500 mA的电流。如此的电流已足以驱动许多电子设备,不......
USB设备描述符、配置描述符、接口描述符和端点描述符的拓扑关系
USB设备的逻辑组织中,包含设备、配置、接口和端点4个层次。每个USB设备都提供了不同级别的配置信息,可以包含一个或多个配置,不同的配置使设备表现出不同的功能组合(在探测/连接期间需从其中选定一个),配置由多个接口组成。一次只能有一个配置是活动的。大多数的设备只有一个配置和一个接口,当一个设备......
win7无法识别usb设备
电脑在使用一段时间后,由于各种原因或由于新购一台电脑,是需要进行操作系统的安装。安装操作系统一般我们使用PE工具进行安装,但在安装Windows7完成后,电脑重启后发现鼠标键盘有时会失灵。我时如果我们对失灵的鼠标键盘从USB接口中拨下来换一个黑色的USB口中,就又可以使用了。win7无法识别usb......
UVC 描述符分类
UVC设备使用通用的USB设备描述符来描述设备信息。根据UVC设备是否包含视频流接口,UVC设备的设备描述符分为两类:对于只包含视频控制接口的UVC设备,通常视频的功能常常在接口描述符中来定义,设备描述符的bDeviceClass字段,bdevices子类字段,和bDeviceProtocol字段必......
USB超高速 增强型超高速USB设备特性描述符
增加型超高速USB设备特性描述符适用于USB3.2 GEN2,用于描述符增强型超高速USB设备特性信息。增加型超高速USB设备特性描述符不能通过GET_DESCRIPTOR或SET_DESCRIPTOR访问。增加型超高速USB设备特性描述符定义如下:struct _SUPER_SPEED_PLUS_......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!