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)修改。

7.1.2 HcControl Register - 图1

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

技术要点

  1. 权限分离:HCD可配置比率,HC仅可读取当前设置
  2. 动态调度:HC根据实时处理状态自动在控制/批量端点间切换
  3. 状态保持:内部计数器跨帧持续维护,确保比例精确执行

PLE (PeriodicListEnable)

HcControl 寄存器 - PLE (PeriodicListEnable) 字段定义

字段名 位位置 访问权限 复位值 功能说明
PLE (PeriodicListEnable) 0b R/W R 周期列表使能
置位:启用下一帧的周期列表处理
清零:在下一帧SOF后停止周期列表处理(由HCD操作)
硬件约束:HC开始处理列表前必须检查此位状态

技术细节

  1. 帧同步机制:使能状态与帧开始(SOF)信号同步切换
  2. 操作权限:HCD配置使能位,HC执行状态检查
  3. 实时控制:提供动态启停周期列表处理的硬件接口

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挂起状态)

状态转换规则

  1. USBOPERATIONAL状态进入

    • 从其他状态转换至USBOPERATIONAL时,SOF(帧起始)生成将在1ms后启动
    • HCD可通过读取HcInterruptStatus的StartofFrame字段确认HC是否开始发送SOF
  2. 状态修改权限

    • HC仅可在USBSUSPEND状态下修改此字段
    • 检测到下游端口的恢复信号后,HC可从USBSUSPEND状态转换至USBRESUME状态
  3. 复位类型区分

    • 软件复位后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在硬件复位时自动清除该位,但软件复位不会改变其状态。主机系统的远程唤醒信号机制与具体主机总线相关,本规范不作具体定义。

技术特性

  1. 权限配置:主机控制器驱动程序(HCD)与HC均具有读写权限
  2. 复位逻辑
    • 硬件复位:自动归零
    • 软件复位:保持原值不变
  3. 系统实现:远程唤醒功能的具体实现依赖主机总线架构

RWE (RemoteWakeupEnable)

HcControl 寄存器 - RWE (RemoteWakeupEnable) 字段定义

字段名 位位置 HCD访问权限 HC访问权限 功能说明
RWE (RemoteWakeupEnable) 0b R/W R 远程唤醒使能

功能描述
该位由主机控制器驱动程序(HCD)用于在检测到上游恢复信号时启用或禁用远程唤醒功能。当此位置位且HcInterruptStatus寄存器中的ResumeDetected位被置位时,将向主机系统发出远程唤醒信号。此位的设置对硬件中断的产生没有影响。

技术特性

  1. 控制逻辑:HCD通过此位控制远程唤醒功能的使能状态
  2. 触发条件:需同时满足RWE=1和ResumeDetected=1才能产生远程唤醒信号
  3. 中断隔离:该功能的使能不会影响硬件中断生成机制