*Host Controller Interface (HCI) [#title]
//#amazon()
//#amazon(,clear)
*USB Host Controller [#title]
USB Host Controller は、USB の制御を行うコントローラーです。

#contents

USB では USB Host Controller が USB 機器の管理を一手に仕切るのが特徴です。この仕様により USB 機器の制御には必ず 1 つの Host Controller が必要となります。USB 機器は、Host Controller に USB 制御を委ねる事で複雑な制御を取り込む必要性が無く、コストを抑えて開発することが出来ます。

*USB Host Controller の種類 [#a6733d03]

**UHCI (Universal Host Controller Interface) [#uhci]
UHCI は Intel の主導で開発された Interface です。

主に Intel/VIA 等の Chipset に使用されています。Full Speed(FS)/Low Speed(LS) での制御に用いられています。

**OHCI (Open Host Controller Interface) [#ohci]
OHCI は Microsoft、Compaq、NS 等の主導で開発された Interface です。

NEC、SiS、Opti 等の Chip に使用されています。FS/LS での制御に用いられています。

**EHCI (Enhanced Host Controller Interface) [#ehci]
EHCI は Hi-Speed USB(HS) 専用の Interface です。

FS/LS で接続する場合には UHCI/OHCI が使用されます。Hi-Speed USB をサポートする OS の場合、通常「EHCI+UHCI」若しくは「EHCI+OHCI」の組み合わせで動作します。

**USB On-The-Go (OTG) [#otg]
USB On-The-Go は、USB 機器同士(Peer-to-Peer) で通信を行うための仕組みを組み込んだ Interface です。

SL-811HS 等のチップがこれに当たります。組み込み用 OS (Windows CE, Linux 等)でサポートされています。

-[[USB/OTG]]

**Appendix [#appendix]
***UHCI と OHCI の仕様の分断について [#uscivsohci]
当初、Intel は UHCI の仕様を外部に公開しない方針だったことより、他社は OHCI を独自に開発する道を選ぶことになり、結果的に仕様が 2 分化することになった経緯がありました。

EHCI はその失敗を踏まえ、開発当初から仕様を公開することで Hi-Speed USB の Interface として統一することに成功しています。

***UHCI と OHCI の違いについて [#uhciorohci]
UHCI と OHCI の違いについて書籍「USB コンプリート(ISBN4-434-02165-6)」に以下の記載がありました。

 UHCI はソフトウェア上の通信の負担に関心を置き、ハードウェアをより簡単で安価にすることを狙っている。
 OHCI はハードウェアの負担に関心を置き、ソフトウェア制御を容易にすることを狙っている。
 (中略)2種類のホストコントローラはパフォーマンスでも多少の違いがある。

USB 機器を作成する開発者は、初期化のタイミング辺りで違いが見られるようですので、UHCI と OHCI との違いについては気をつけたほうが良いかもしれません。OS (Driver) からすれば通常、真下の Driver が違いを吸収してくれるので区別をする必要は無いでしょう。

-[[USB/関連書籍]]


//
// 関連情報
//
//*関連情報 [#infor]
*関連情報 [#infor]

//**用語 [#words]
**仕様書 [#spec]
-[[White Paper: OpenHCI -- Open Host Controller Interface Specification for USB:http://h18000.www1.hp.com/productinfo/development/openhci.html]] (HP)~
OHCI 仕様書。
-[[Universal Host Controller Interface (UHCI) Design Guide:http://developer.intel.com/technology/usb/uhci11d.htm]] (Intel)~
UHCI 仕様書。
-[[Universal Serial Bus (USB*) EHCI Specification:http://www.intel.com/technology/usb/ehcispec.htm]] (Intel)~
EHCI 仕様書。
-[[USB On-The-Go:http://www.usb.org/developers/onthego/]] (USB.org)~
OTG 本拠地。仕様書も置いてあります。

**用語 [#words]

-[[e-Words:USBコントローラ]]

-[[e-Words:UHCI]]
-[[e-Words:OHCI]]
-[[e-Words:OTG]]

-[[e-Words:EHCI]]
-[[EHCI(Enhanced Host Controller Interface):http://www.watch.impress.co.jp/pc/docs/article/20010412/key161.htm#EHCI]] (鈴木直美の「PC Watch先週のキーワード」)


//**特集記事 [#special]
//**インタビュー記事 [#interview]
//**記事リンク集 [#links]
//**Tips [#tips]

//
// News
//
//*News [#news]







// EOF

// [[&ref(vmplayer-s.jpg,nolink,VMware Player で起動した Knoppix 4.0.2);>http://mcn.oops.jp/wiki/index.php?plugin=attach&pcmd=open&file=vmplayer.jpg&refer=VM%2FVMware%2FVMware%20Player]]
// [[&ref(codezine_l.gif,nolink,CodeZine);>http://codezine.jp/]]
// [ [[edit>Edit:Windows Vista/News]] ]