2016年6月8日 星期三

幾種USB控制器類型:OHCI,UHCI,EHCI,xHCI

幾種USB控制器類型:OHCI,UHCI,EHCI,xHCI

1. 曾經遇到一些Linux系統對USB3.0的支援不完善,從而導致在有USB3.0設備的PC上啟動失敗(kernel panic)。

2. 也曾在BIOS中設置為“開啟EHCI,關閉XHCI”等來堅持使用USB2.0

3. 在QEMU代碼中看到它支援的各種配置:“CONFIG_USB_OHCI=y”、“CONFIG_USB_UHCI=y”、“CONFIG_USB_EHCI=y”、“CONFIG_USB_XHCI=y”等。

4. 看到Kernel的config文件中的“CONFIG_USB_OHCI_HCD=m”、“CONFIG_USB_UHCI_HCD=m”、“CONFIG_USB_EHCI_HCD=m”、“CONFIG_USB_XHCI_HCD=m”等。




所以,這裡就簡單列一下各種xHCI(也包括真正的xHCI)的基本含義吧。
簡單地講,OHCI、UHCI都是USB1.1的介面標準,而EHCI是對應USB2.0的介面標準,最新的xHCI是USB3.0的介面標準。

1. OHCI(Open Host Controller Interface)是支援USB1.1的標準,但它不僅僅是針對USB,還支援其他的一些介面,比如它還支援Apple的火線(Firewire,IEEE 1394)介面。與UHCI相比,OHCI的硬體複雜,硬體做的事情更多,所以實現對應的軟體驅動的任務,就相對較簡單。主要用於非x86的USB,如擴展卡、嵌入式開發板的USB主控。

2. UHCI(Universal Host Controller Interface),是Intel主導的對USB1.0、1.1的介面標準,與OHCI不相容。UHCI的軟體驅動的任務重,需要做得比較複雜,但可以使用較便宜、較簡單的硬體的USB控制器。Intel和VIA使用UHCI,而其餘的硬體提供商使用OHCI。

3. EHCI(Enhanced Host Controller Interface),是Intel主導的USB2.0的介面標準。EHCI僅提供USB2.0的高速功能,而依靠UHCI或OHCI來提供對全速(full-speed)或低速(low-speed)設備的支援。

4. 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 Low- and Full-speed)。xHCI的目的是為了替換前面3中(UHCI/OHCI/EHCI)。

參考資料:
http://en.wikipedia.org/wiki/Host_controller_interface_(USB,_Firewire)#USB
如下連結對USB相關的基礎知識進行了較好的總結:
http://www.crifan.com/files/doc/docbook/usb_basic/release/webhelp/content/ch02_sw_hw.xml.html

原文
http://smilejay.com/2012/10/usb_controller_xhci/


沒有留言:

張貼留言

一個健康中年基督徒的描繪

一個健康中年基督徒的描繪﹝ 35~60 歲﹞                        基督徒的全人生活                 以便以謝 一個健康的基督徒,可以從內在跟外顯去分析所具備的特質。基督徒自信主以後,是 全然聖別 ﹝彼前二: 9 ﹞與過著與過...