16.6 主机操作主机模式下的 USB 模块的通用操作模型是在增强主机控制器接口(EHCI)规范中定义的。EHCI 规范描述了支持 USB 2.0 版本的主机控制器的寄存器级接口。这一规范详细描述了系统软件与主机控制器硬件之间的软硬件接口。如果你需要了解 EHCI 规范的完整详细描述,请参阅usb ehci接口规范EHCI spec for USBUSB EHCI1.0

16.6.1 主机控制器初始化在初始上电或 HCReset(硬件或通过 USBCMD 寄存器中 HCReset 位)之后,所有操作寄存器都将具有缺省值,如表 25 所示。在硬件复位之后,只有没有包含在辅助电源井中的操作寄存器才会具有缺省值。

表16-69 操作寄存器空间的缺省值

操作寄存器缺省值(复位后)

  • USBCMD 0x0008_0000(如果异步调度驻停功能置位,则为 0x0008_0B00)

  • USBSTS 0x0000_1000

  • USBINTR 0x0000_0000

  • FRINDEX 0x0000_0000

  • CTRLDSSEGMENT 0x0000_0000

  • PERIODICLISTBASE 未定义

  • ASYNCLISTADDR 未定义

  • CONFIGFLAG 0x0000_0000

  • PORTSC 0x0000_2000(w/PPC 置位);0x0000_3000(w/PPC 清除)

为了初始化主机控制器,软件应该执行以下步骤:

  1. 可选,置位 USBMODE 寄存器中的流禁止(Streaming Disable)。更多详细的操作步骤和说明,你可以参考INTEL USB EHCI DATA SHEETUSB2.0EHCI controller specification