文章目录
-
HCI:Host Controller Interface 主机控制器接口
-
OHCI、UHCI都是USB1.1的接口标准
-
EHCI是对应USB2.0的接口标准
-
xHCI是USB3.0的接口标准
OHCI
全称为 Open Host Controller Interface,这是一种 USB 控制器标准,厂商在设计 USB 控制器的时候需要遵循此标准,用于 USB1.1 标准。OHCI 不仅仅用于 USB,也支持一些其他的接口,比如苹果的 Firewire 等,OHCI 由于硬件比较难,所以软件要求就降低了,软件相对来说比较简单。OHCI 主要用于非 X86 的 USB,比如扩展卡、嵌入式 USB 控制器。
UHCI
全称是 Universal Host Controller Interface,UHCI 是 Inter 主导的一个用于 USB1.0/1.1 的标准,与 OHCI 不兼容。与 OHCI 相比 UHCI 硬件要求低,但是软件要求相应就高了,因此硬件成本上就比较低。
EHCI
全称是 Enhanced Host Controller Interface,是 Inter 主导的一个用于 USB2.0 的 USB
控制器标准。EHCI 仅提供 USB2.0 的高速功能,至于全速和低速功能就由 OHCI 或 UHCI 来提供
EHCI 规范只定义了 USB 主机控制器接口部分并没有定义 USB 设备的控制器接口规范,所以对于 USB 设备的接口,不同厂家实现的接口和方式都可能不同。
xHCI
全称是 eXtensible Host Controller Interface,是目前最流行的 USB3.0 控制器标准,在速度、能效和虚拟化等方面比前三个都有较大的提高。xHCI 支持所有速度种类的 USB 设备,xHCI 出现的目的就是为了替换前面三个。
KHCI
全称是 Kinetis Host Controller Interface,因在 NXP Kinetis 系列微控制器中被大量使用而得名,是一个设计简单但功能完整的 USB 控制器,可以工作在 单一的主机和设备模式下,配合一些其他的芯片也可以支持 OTG 工作模式,具有占用内存小并且驱动程序易于开发的特性。
KHCI 控制器完全兼容 USB1.1 和 USB2.0 协议具有如下特点:
- 支持 16 个双向的端点;
- 支持内部 DMA 接口;
- 支持低功耗;
- 支持待时钟恢复的 IRC48M,但是只工作在设备模式,有利于减小板级晶振使用。