The HcControl register defines the operating modes for the Host Controller. Most of the fields in this register are modified only by the Host Controller Driver, except HostControllerFunctionalState and RemoteWakeupConnected.
HcControl寄存器功能说明
该寄存器定义主机控制器(HC)的工作模式。除HostControllerFunctionalState和RemoteWakeupConnected字段外,其余字段仅可由主机控制器驱动程序(HCD)修改。

CBSR 控制/批量服务比率(CBSR)寄存器
表:控制/批量服务比率(CBSR)寄存器定义
| 字段 | 复位值 | 读/写权限(HCD) | 读/写权限(HC) | 说明 |
|---|---|---|---|---|
| CBSR | 00b | 读/写(R/W) | 只读(R) | 控制/批量服务比率 • 功能:指定控制端点描述符(ED)与批量端点描述符(ED)之间的服务比例 • 处理规则:在处理任何非周期列表前,主机控制器(HC)需比较此比率与已处理的非空控制ED内部计数,以决定继续服务控制ED或切换至批量ED • 特性:内部计数值在帧边界切换时保留 • 复位处理:发生复位时,主机控制器驱动程序(HCD)负责恢复此值 |
CBSR比率对照表:
| CBSR值 | 控制ED与批量ED服务数量比 |
|---|---|
| 0 | 1:1 |
| 1 | 2:1 |
| 2 | 3:1 |
| 3 | 4:1 |
技术要点:
- 权限分离:HCD可配置比率,HC仅可读取当前设置
- 动态调度:HC根据实时处理状态自动在控制/批量端点间切换
- 状态保持:内部计数器跨帧持续维护,确保比例精确执行
PLE (PeriodicListEnable)
HcControl 寄存器 - PLE (PeriodicListEnable) 字段定义
| 字段名 | 位位置 | 访问权限 | 复位值 | 功能说明 |
|---|---|---|---|---|
| PLE (PeriodicListEnable) | 0b | R/W | R | 周期列表使能 • 置位:启用下一帧的周期列表处理 • 清零:在下一帧SOF后停止周期列表处理(由HCD操作) • 硬件约束:HC开始处理列表前必须检查此位状态 |
技术细节:
- 帧同步机制:使能状态与帧开始(SOF)信号同步切换
- 操作权限:HCD配置使能位,HC执行状态检查
- 实时控制:提供动态启停周期列表处理的硬件接口
IE (IsochronousEnable)
HcControl 寄存器 - IE (IsochronousEnable) 字段定义
| 字段名 | 位位置 | 访问权限 | 复位值 | 功能说明 |
|---|---|---|---|---|
| IE (IsochronousEnable) | 0b | R/W | R | 等时传输使能 |
功能描述:
该位由主机控制器驱动程序(HCD)用于启用或禁用等时端点描述符(ED)的处理。当主机控制器(HC)在帧内处理周期列表时发现等时ED(F=1),将检查此位状态:
- 置位(启用):HC继续处理ED
- 清零(禁用):HC停止处理周期列表(此时列表仅含等时ED),并开始处理批量/控制列表
生效时机:
此位的设置保证在下一帧(非当前帧)生效
CLE (ControlListEnable)
HcControl 寄存器 - CLE (ControlListEnable) 字段定义
| 字段名 | 位位置 | 访问权限 | 复位值 | 功能说明 |
|---|---|---|---|---|
| CLE (ControlListEnable) | 0b | R/W | R | 控制列表使能 |
功能描述:
该位由主机控制器驱动程序(HCD)设置,用于在下一帧启用控制列表处理。若HCD清除该位,控制列表处理将在下一帧SOF(帧起始)后停止。主机控制器(HC)在决定处理列表前必须检查此位状态。当控制列表处理被禁用时,HCD可修改列表内容。若HcControlCurrentED指针指向待移除的ED,HCD在重新启用列表处理前必须通过更新HcControlCurrentED来移动该指针。
BLE (BulkListEnable)
HcControl 寄存器 - BLE (BulkListEnable) 字段定义
| 字段名 | 位位置 | 访问权限 | 复位值 | 功能说明 |
|---|---|---|---|---|
| BLE (BulkListEnable) | 0b | R/W | R | 批量列表使能 |
功能描述:
该位由主机控制器驱动程序(HCD)设置,用于在下一帧启用批量列表处理。若HCD清除该位,批量列表处理将在下一帧SOF(帧起始)后停止。主机控制器(HC)在决定处理列表前必须检查此位状态。当批量列表处理被禁用时,HCD可修改列表内容。若HcBulkCurrentED指针指向待移除的ED,HCD在重新启用列表处理前必须通过更新HcBulkCurrentED来移动该指针。
HCFS (HostControllerFunctionalState)
HcControl 寄存器 - HCFS (HostControllerFunctionalState) 字段定义
| 字段名 | 位值 | HCD访问权限 | HC访问权限 | 功能说明 |
|---|---|---|---|---|
| HCFS | 00b | R/W | R/W | 主机控制器USB功能状态 • 00b: USBRESET(USB复位状态) • 01b: USBRESUME(USB恢复状态) • 10b: USBOPERATIONAL(USB可操作状态) • 11b: USBSUSPEND(USB挂起状态) |
状态转换规则:
USBOPERATIONAL状态进入:
- 从其他状态转换至USBOPERATIONAL时,SOF(帧起始)生成将在1ms后启动
- HCD可通过读取HcInterruptStatus的StartofFrame字段确认HC是否开始发送SOF
状态修改权限:
- HC仅可在USBSUSPEND状态下修改此字段
- 检测到下游端口的恢复信号后,HC可从USBSUSPEND状态转换至USBRESUME状态
复位类型区分:
- 软件复位后HC进入USBSUSPEND状态
- 硬件复位后HC进入USBRESET状态(同时复位根集线器并向下游端口发送复位信号)
bit[8] IR (InterruptRouting) ★★★
HcControl 寄存器 - IR (InterruptRouting) 字段定义
| 字段名 | 位位置 | HCD访问权限 | HC访问权限 | 功能说明 |
|---|---|---|---|---|
| IR (InterruptRouting) | 0b | R/W | R | 中断路由控制 |
功能描述:
该位决定HcInterruptStatus寄存器中事件所产生中断的路由方式:
- 清零(0):所有中断路由至正常主机总线中断机制
- 置位(1):所有中断路由至系统管理中断(SMI)
复位特性:
- 硬件复位:HCD自动清除该位
- 软件复位:HCD保持该位不变
扩展功能:
HCD将此位用作标识位,用于标记主机控制器(HC)的所有权状态。
RWC (RemoteWakeupConnected)
HcControl 寄存器 - RWC (RemoteWakeupConnected) 字段定义
| 字段属性 | 位属性 | HCD权限 | HC权限 | 字段名称 |
|---|---|---|---|---|
| RWC | 0b | R/W | R/W | RemoteWakeupConnected |
功能说明:
该位指示主机控制器(HC)是否支持远程唤醒信号功能。若系统支持并使用远程唤醒功能,系统固件需在开机自检(POST)期间设置此位。HC在硬件复位时自动清除该位,但软件复位不会改变其状态。主机系统的远程唤醒信号机制与具体主机总线相关,本规范不作具体定义。
技术特性:
- 权限配置:主机控制器驱动程序(HCD)与HC均具有读写权限
- 复位逻辑:
- 硬件复位:自动归零
- 软件复位:保持原值不变
- 系统实现:远程唤醒功能的具体实现依赖主机总线架构
RWE (RemoteWakeupEnable)
HcControl 寄存器 - RWE (RemoteWakeupEnable) 字段定义
| 字段名 | 位位置 | HCD访问权限 | HC访问权限 | 功能说明 |
|---|---|---|---|---|
| RWE (RemoteWakeupEnable) | 0b | R/W | R | 远程唤醒使能 |
功能描述:
该位由主机控制器驱动程序(HCD)用于在检测到上游恢复信号时启用或禁用远程唤醒功能。当此位置位且HcInterruptStatus寄存器中的ResumeDetected位被置位时,将向主机系统发出远程唤醒信号。此位的设置对硬件中断的产生没有影响。
技术特性:
- 控制逻辑:HCD通过此位控制远程唤醒功能的使能状态
- 触发条件:需同时满足RWE=1和ResumeDetected=1才能产生远程唤醒信号
- 中断隔离:该功能的使能不会影响硬件中断生成机制
