7.4 根集线器(Root Hub)寄存器分区
- 早期网络设备翻译:
以太网(Ethernet)中的 ”Hub” 最早译为“集线器”,因其功能与 USB Hub 高度相似(多端口信号中继),这一译名被直接沿用至 USB 领域。 - 行业标准一致性:
IEEE、USB-IF 等组织的官方中文文档均采用“集线器”,如:
USB 根集线器(Root Hub)
USB 扩展集线器(External Hub)
功能概述
本分区所有寄存器专用于 USB 根集线器(Root Hub)。根集线器是主机控制器(HC)的组成部分,但在功能上独立存在。主机控制器驱动(HCD)通过寄存器接口模拟 USB 设备驱动(USBD) 对根集线器的访问,并维护以下软件实现的 USB 集线器特性(硬件无需支持):
描述符
管理- 设备 描述符(Device Descriptor)
- 配置 描述符(Configuration Descriptor)
- 接口 描述符(Interface Descriptor)
- 端点 描述符(Endpoint Descriptor)
- 部分 类描述符(Class Descriptor) 的静态字段
- 地址解码
- 根集线器的设备地址由 HCD 维护和解码。
- 简单操作
- 其他更适合软件(而非硬件)处理的轻量级操作。
寄存器设计原则
根集线器寄存器的 位域组织 和 操作方式 与系统中常见的 USB 集线器保持一致,包含以下 4 类寄存器(均以 双字(Dword) 为单位读写):
寄存器名称 | 功能 | 写入时机 |
---|---|---|
HcRhDescriptorA | 描述根集线器的基本特性(如端口数量、电源模式)。 | 初始化时配置,且 不受 HC USB 状态影响(始终可写)。 |
HcRhDescriptorB | 扩展描述符(如端口电流限制、设备类型)。 | 同上。 |
HcRhStatus | 根集线器全局状态(如过流保护、本地电源状态)。 | 仅在 USBOPERATIONAL 状态(正常运行)下可写。 |
HcRhPortStatus[1:NDP] | 每个端口的独立状态(如连接状态、使能/禁用、复位控制)。NDP = 端口数量。 |
同上。 |
关键术语说明
- 根集线器(Root Hub):主机控制器内置的 USB 顶层集线器,负责连接下游设备。
- 双字(Dword):32 位数据块,OHCI 寄存器的标准访问单位。
- USBOPERATIONAL 状态:主机控制器处于正常运行模式(
HcControl.HCFS=10b
)。
注意事项
- 初始化依赖性
HcRhDescriptorA/B
必须在 HC 初始化阶段 配置,以匹配硬件设计(如端口数量)。
- 状态机约束
- 修改
HcRhStatus
或端口状态寄存器时,需确保 HC 处于 USBOPERATIONAL 状态,否则写入无效。
- 修改
- 保留位处理
- 所有寄存器修改需遵循 Read-Modify-Write 规则,保留未使用的位。