EHCI

增強型主機控制器介面

EHCI(Enhanced Host Controller Interface)增強型主機控制器介面規範描述了一個通用串列匯流排(USB)2.0版的主機控制器的寄存器級介面。該規範包括系統軟體和主機控制器硬體之間的硬體/軟體介面的描述。本規範的目的是為硬體組件設計,系統集成商和設備驅動程序(軟體)開發。

簡介


增強型主機控制器介面

增強主機控制器介面規範的實施,需要從英特爾授權。增強型主機控制器USB介面規範的採用已經簽署,以增強主機控制器介面規範USB採用協議的被許可使用和實施本規範。這採納者協議提供了一個互惠的方式,免版稅許可從英特爾和其他採用者和他們的產品,增強型主機控制器與USB介面規範標準提供一定的知識產權的採用。
EHCI規範1.0修訂牌照允許實施兩個分立和集成兼容EHCI主控制器的。被授權的規範修訂版1.0的水平(0.95和0.96)之前的所有版本兼容的,離散的EHCI主控制器只允許實施。
該規範的最新版本是1.0版本。這次修訂是從0.96社論更新。1.0版本可以從下面的鏈接下載。完整的修訂版1.0下載包括兩個文件:規範和修訂0.96和1.0之間的變化的總結。目前所有的發展應該是瞄準了這一規範的修訂。

1.1增編

定義基於EHCI規範,最顯著的USB主機控制器實現的幾種可選的能源效率擴展的EHCI1.1增編的目的是:
·連接電源管理- 軟體發現並使用USB 2.0連接電源管理(LPM),下一代主機控制器和設備提供支持的能力。
·每埠更改事件- 問題解決了系統軟體目前需要讀取和解析所有啟用后,每個埠變化事件的根埠(中斷),以簡化軟體的處理山泥傾瀉轉換埠狀態寄存器(PORTSC)
·較短的周期幀列表- 系統軟體能夠傳遞和使用更短的周期幀列表(32幀),以更好地促進硬體預取
·硬體預取- 允許主機控制器硬體安全預取從非同步和定期的時間表超越了在以前的EHCI實現定義,以提高系統內存的訪問行為信息。

詳細介紹


要理解"EHCI"及其同類是什麼,首先要知道每塊支持插入 USB 設備的主板或 PCI 卡都需要有 USB 主控制器晶元組。這個特別的晶元組與插入系統的 USB 設備進行相互操作,並負責處理允許 USB 設備與系統其它部分通信所必需的所有低層次細節。
Linux USB 驅動程序有三種不同的 USB 主控制器選項是因為在主板和 PCI 卡上有三種不同類型的 USB 晶元。"EHCI"驅動程序設計成為實現新的高速 USB 2.0 協議的晶元提供支持。"OHCI"驅動程序用來為非 PC 系統上的(以及帶有 SiS 和 ALi 晶元組的 PC 主板上的)USB 晶元提供支持。"UHCI"驅動程序用來為大多數其它 PC 主板(包括 Intel 和 Via)上的 USB 實現提供支持。只需選擇與希望啟用的 USB 支持的類型對應的"?HCI"驅動程序即可。如有疑惑,為保險起見,可以啟用"EHCI"、"UHCI" (兩者中任選一種,它們之間沒有明顯的區別)和"OHCI"。(趙明註:根據文檔,EHCI已經包含了UHCI和OHCI,但目前就我個人的測試,單獨加EHCI是不行的,通常我的做法是根據主板類型載入UHCI或OHCI后,再載入EHCI這樣才可以支持USB2.0設備)。 (ehci 只支持高速(hs)模式,uhci/ohci 都只支持全速或低速(fs/ls)設備,所以echi必選,uhci ohci一個就可以了,這樣高速、全速、低速設備才會都能枚舉到)
啟用了"USB support"和適當的"?HCI"USB 主控制器驅動程序后,使 USB 啟動並運行只需再進行幾個步驟。應該啟用"Preliminary USB device filesystem",然後確保啟用所有特定於將與 Linux 一起使用的實際 USB 外圍設備的驅動程序。例如,為了啟用對 USB 遊戲控制器的支持,我啟用了"USB Human Interface Device (full HID) support"。我還啟用了主"Input core support" 節下的"Input core support"和"Joystick support"。
了解EHCI之前,需首先了解HCI (Host Controller Interface) . 即主機控制介面。
HCI 是寄存器層級的界面介面,它允許一個主控制器(Host Controller 如 主板南橋southbridge of Motherboard)來實現與外設如(USB、火線以及藍牙)之間的通訊。
當外設與PC相連接后,系統先進行初始化,HCI 開始線程(threads)讀寫,建立與外設的連接。接下來,HCI會重置然後讀外設的緩存大小,建立與外設的通訊。
EHCI (Enhanced Host Controller Interface)是HCI增強的(Enhanced)版本。