USBHUB2.0驱动实现
+ -

USB2.0集线器驱动功能说明

2026-05-08 本文链接为:http://www.usbzh.com/article/detail-1652.html ,欢迎转载,转载请附上本文链接。

USB2.0 集线器驱动是 Windows XP 操作系统中负责管理 USB 集线器设备的核心组件,基于 Windows Driver Model (WDM) 架构实现。该驱动为 USB 设备提供即插即用支持、电源管理、复合设备处理等关键功能,是 USB 子系统的重要组成部分。

一、多层次设备管理架构

驱动采用三层设备扩展结构实现精细化管理:

  1. Hub 级管理 (DEVICE_EXTENSION_HUB)

    • 维护 Hub 描述符信息
    • 管理所有端口的状态数组
    • 维护电源状态映射表(系统电源状态 → 设备电源状态)
  2. 端口级管理 (DEVICE_EXTENSION_PORT)

    • 追踪每个端口的连接状态
    • 管理端口电源状态(D0-D3)
    • 记录远程唤醒能力
  3. 复合设备管理 (DEVICE_EXTENSION_PARENT)

    • 支持多接口设备的分离管理
    • 为每个功能接口创建独立的物理设备对象(PDO)

二、USB 2.0 协议支持

Transaction Translator (TT) 管理

驱动实现了 USB 2.0 规范中的 Transaction Translator 机制:

  • 速度协调:支持高速 Hub 连接全速/低速设备
  • 带宽优化:通过 TT 机制提高数据传输效率
  • 兼容性保障:确保不同速度设备混合使用时的稳定性

三、即插即用(PnP)功能

动态设备枚举

  • 设备连接检测:实时监控端口状态变化
  • PDO 动态创建:为连接的设备自动创建物理设备对象
  • 总线关系查询:向操作系统报告 Hub 下的所有子设备

硬件 ID 动态生成

通过 USBH_BuildHardwareIDs 函数构建符合 USB 规范的设备标识:

USB\Vid_nnnn&Pid_nnnn&Rev_nnnn&Mi_nn
USB\Vid_nnnn&Pid_nnnn&Mi_nn

支持 Hub 类设备与普通 USB 设备的区分标识。

四、高级电源管理

选择性挂起(Selective Suspend)

  • 独立端口挂起:空闲端口可独立进入低功耗状态
  • 不影响其他端口:挂起一个端口不影响其他端口的正常工作
  • 智能唤醒:设备活动时自动唤醒对应端口

远程唤醒(Remote Wakeup)

  • 设备唤醒能力:支持具备唤醒功能的 USB 设备
  • 系统唤醒触发:允许设备从挂起状态唤醒系统
  • 电源状态映射:维护完整的电源状态转换表

五、复合设备支持

驱动支持 USB 复合设备的多接口管理:

  • 接口分离:将复合设备的每个接口独立为单独的逻辑设备
  • 独立驱动加载:不同接口可加载不同的功能驱动
  • 灵活配置:支持设备的多功能同时使用(如存储+通信复合设备)

六、USB 总线接口抽象

驱动实现了 USB_BUS_INTERFACE_HUB_GUID 标准接口:

  • 标准交互接口:提供与 USB 主机控制器的统一通信方式
  • URB 封装:封装 USB Request Block 操作,简化驱动开发
  • USB 2.0 栈集成:支持与高速 USB 2.0 栈的无缝协作

技术特性

特性 说明
协议兼容性 完全兼容 USB 2.0 规范
速度支持 支持高速(480Mbps)、全速(12Mbps)、低速(1.5Mbps)
电源状态 支持 D0(工作)、D1(轻度睡眠)、D2(深度睡眠)、D3(关闭)
设备数量 支持多端口 Hub 级联扩展
热插拔 完全支持 USB 热插拔功能
本文链接为:http://www.usbzh.com/article/detail-1652.html ,欢迎转载,转载请附上本文链接。

0 篇笔记 写笔记

USB设备和USB集线器HUB的数据传输
USB高速集线器与USB根集线器之间只通过USB使用USB高速通讯讯方式,而对于低速或全速的数据通讯的转换是由其挂接的最近的USB-HUB负责完成转换。如下图:对于USB高速设备和USB高速HUB,使用高速通讯。对于连接到高速HUB上的低速或全速USB-HUB,使用低速或全速通讯方式。对于连接到高速......
USB 集线器HUB
通过USB集线器,可以很简单的实现主机扩展USB设备的数量。在USB协议规范中,USB集线器作为了一种特殊的设备在存在,USB规范专门为其定义了一种设备类。基本定位USB 集线器:将1 个上行口扩展为多个下行口,工作在物理层,仅做信号转发,非交换机/路由器。USB3 集线器 = 盒内集成USB2......
USB主机端控制器集线器与USB设备类型分类
USB根据设备功能及类型,可以分USB主机端,USB设备端。USB主机端-USB hostUSB主机端也叫USB控制器,包括两大部分,分别为与系统总线进行数据交互的USB控制器和USB总线的根集线器。一个USB主机端就是一个独立的USB总线,其按USB版本可分为OHCI,UHCI,EHCI,xHC......
USB设备与集线器最大可以级联多少层
在USB2.0规范中,定义了USB设备与集线器最大可以级联7层(包括根集线器),即根集线器之设备之间最多有5个继集线器。注意:有一个USB复合(compound)设备,其本身是一个USB集线器并接连1个或多个USB功能设备,这里需要将这个USB集线器算在内。......
USB集线器HUB的枚举过程及集线器状态
USB集线器和其他USB设备一样,都需要在上电时进行配置。在USB协议中,使用默认的端0点。进行上电初期的通信。USB集线器除了配置其自身外,还需要对下行端口连接的其他USB设备进行识别。USB集线器HUB枚举过程USB集线器的上电配置过程如下:USB集线器连接到USB主机的根集线器上。USB......
USB HUB集线器芯片选型
型号TT模式过流检测工作温度封装 CH334GSTT--40~85℃SOP16 CH334RMTT--40~85℃QSOP16 CH334U/FMTTGANG模式-40~85℃QSOP28/QFN24_4x4 CH334S/Q......
USBIP虚拟控制器和根集线器HUB的设备信息分析
USBIP是一套可以实现USB远程设备的本机映射,这样就像在本地操作目标USB设备一样。其原理是在本地端通过安装一个虚拟的USB根控制器,根集线器,同时虚拟出4个USB端口,当远程USB设备连接到远程机器时,可以把远程设备的USB信息通过网络传输到本地,在本地的虚拟USB端口虚拟一个相同的设备,这样......
USBIP 设备树层次分析
通过前面知道,usbip_vhci工程实现的是pnp管理器虚拟出来的PDO的FDO,但同样也是这个FDO创建的PDO虚拟根USB控制器和其子设备HUB的驱动程序。USBIP设备硬件ID名称sys文件inf文件硬件IDusbip-win VHIC Rootusbip_vhic......
USBIP 集线器PDO(VDEV_HPDO)的初始化过程
USB集线器其实也是USB设备的一类,其设备分类分类为0x09。和USBIP虚拟的控制器(VDEV_CPDO)类似,USB控制器创建了其PDO之后,会通过IRP_MN_QUERY_DEVICE_RELATIONS返回USB集线器HUB的PDO设备列表。PNP管理器收到有新的设备之后,会开始收集这个P......
USBIP 虚拟集线器FDO子设备的管理
IRP_MN_QUERY_DEVICE_RELATIONS这得从IRP_MN_QUERY_DEVICE_RELATIONS来谈起,好像有点看的不是很明白。先把上一节的代码复制过来,看一下:static PAGEABLE NTSTATUSget_bus_relations_vhub(pvhub_d......
USBIP 虚拟集线器FDO(VDEV_VHUB )的初始化
AddDevice执行vhci_add_device,返回的设备类型为VDEV_VHUB,集线器HUB的FDO类型。然后初始化HUB的FDO,使用init_dev_vhub(vdev);函数实现static PAGEABLE voidinit_dev_vhub(pvdev_t vdev){ ......
一台电脑上最多可以连接多少台USB设备?
从理论上来讲,一个USB控制器下最多可以连接127个USB设备,不过这也只是理论。实际上由于INTER硬件设计上的缺陷,根本达不到这么多。每个USB设备最多可以定义32个端点(16个输入和16个输出,但必须是一对控制端点),但大多数设备只定义2或3个端点(例如数据输入、数据输出和一个控制端点)。集......
USB3.2集线器设备描述符
USB集线器设备描述符的定义和USB设备的描述符定义一致,详见:http://www.usbzh.com/article/detail-104.html =========================== USB Port20 ===========================......
USB2.0集线器功能模块及设备连接路由
USB集线器HUB用于在USB设备与主机之间建立起连接的桥梁。所以USB设备都是通过USB集线器连接到USB主机。为了让用户更加方便简洁地使用USB设备,USB集线器和USB主机实现了很多复杂的幕后工作,从而大大提高了USB设备的使用和开发的友好性。USB集线器必须支持的功能如下:连接行为C......
USB2.0集线器的连接行为
USB2.0集线器的连接行为Connectivity behavior表现出的各种不同的连接行为,决于它们是否在传输数据包、恢复信号或者空闲状态。一个USB集线器包含一个上游端口(用于连接上级HUB或USB控制器)和多个下游端口(用于连接下游设备)。上游连接定义为朝向主机,下游连接定义为朝向设备。......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • USB资源
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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