OHCI、UHCI都是USB1.1的接口标准,而EHCI是对应USB2.0的接口标准,最新的xHCI是USB3.x的接口标准。
OHCI(Open Host Controller Interface)是Compaq,Microsoft和National Semiconductor主导的支持USB1.1的接口标准,但它不仅仅是针对USB,还支持其他的一些接口,比如它还支持Apple的火线(Firewire,IEEE 1394)接口。与UHCI相比,OHCI的硬件复杂,硬件做的事情更多,所以实现对应的软件驱动的任务,就相对较简单。主要用于非x86的USB,如扩展卡、嵌入式开发板的USB主控。
UHCI(Universal Host Controller Interface),是Intel主导的对USB1.0、1.1的接口标准,与OHCI不兼容。UHCI的软件驱动的任务重,需要做得比较复杂,但可以使用较便宜、较简单的硬件的USB控制器。Intel和VIA使用UHCI,而其余的硬件提供商使用OHCI。
EHCI(Enhanced HostController Interface),是Intel主导的USB2.0的接口标准。EHCI仅提供USB2.0的高速功能,而依靠UHCI或OHCI来提供对全速(full-speed)或低速(low-speed)设备的支持。
xHCI(eXtensible Host Controller Interface),是最新最火的USB3.0的接口标准,它在速度、节能、虚拟化等方面都比前面3种有了较大的提高。xHCI支持所有种类速度的USB设备(USB 3.0 SuperSpeed, USB 2.0 Low, Full, and High-speed, USB 1.1 Lowand Full-speed)。xHCI的目的是为了替换前面3种(UHCI/OHCI/EHCI)。
USB主机控制器类型 | 共同点 | 区别 | |||
对应的USB的协议和支持的速率 | 创立者 | 功能划分 | 常用于 | ||
OHCI | 都实现了对应的USB的规范所要求的功能 | USB 1.1 Low Speed和Full Speed | Compaq,Microsoft和National Semiconductor | 硬件功能>软件功能=>硬件做的事情更多,所以实现对应的软件驱动的任务,就相对较简单 | 扩展卡,嵌入式开发板的USB主控 |
UHCI | Intel | 软件功能>硬件功能=>软件的任务重,可以使用较便宜的硬件的USB控制器 | PC端的主板上的USB主控 | ||
EHCI | USB 2.0 High Speed | Intel | 定义了USB 2.0主控所要实现何种功能,以及如何实现 | 各种USB 2.0主控 | |
xHCI | USB 3.0 SuperSpeed | Intel | 定义了USB 3.x主控所要实现何种功能,以及如何实现 | 各种USB 3.x主控 | |