USB Host Controller †USB Host Controller は、USB の制御を行うコントローラーです。 USB では USB Host Controller が USB 機器の管理を一手に仕切るのが特徴です。この仕様により USB 機器の制御には必ず 1 つの Host Controller が必要となります。USB 機器は、Host Controller に USB 制御を委ねる事で複雑な制御を取り込む必要性が無く、コストを抑えて開発することが出来ます。 USB Host Controller の種類 †UHCI (Universal Host Controller Interface) †UHCI は Intel の主導で開発された Interface です。 主に Intel/VIA 等の Chipset に使用されています。Full Speed(FS)/Low Speed(LS) での制御に用いられています。 OHCI (Open Host Controller Interface) †OHCI は Microsoft、Compaq、NS 等の主導で開発された Interface です。 NEC、SiS、Opti 等の Chip に使用されています。FS/LS での制御に用いられています。 EHCI (Enhanced Host Controller Interface) †EHCI は Hi-Speed USB(HS) 専用の Interface です。 FS/LS で接続する場合には UHCI/OHCI が使用されます。Hi-Speed USB をサポートする OS の場合、通常「EHCI+UHCI」若しくは「EHCI+OHCI」の組み合わせで動作します。 USB On-The-Go (OTG) †USB On-The-Go は、USB 機器同士(Peer-to-Peer) で通信を行うための仕組みを組み込んだ Interface です。 SL-811HS 等のチップがこれに当たります。組み込み用 OS (Windows CE, Linux 等)でサポートされています。 Appendix †UHCI と OHCI の仕様の分断について †当初、Intel は UHCI の仕様を外部に公開しない方針だったことより、他社は OHCI を独自に開発する道を選ぶことになり、結果的に仕様が 2 分化することになった経緯がありました。 EHCI はその失敗を踏まえ、開発当初から仕様を公開することで Hi-Speed USB の Interface として統一することに成功しています。 UHCI と OHCI の違いについて †UHCI と OHCI の違いについて書籍「USB コンプリート(ISBN4-434-02165-6)」に以下の記載がありました。 UHCI はソフトウェア上の通信の負担に関心を置き、ハードウェアをより簡単で安価にすることを狙っている。 OHCI はハードウェアの負担に関心を置き、ソフトウェア制御を容易にすることを狙っている。 (中略)2種類のホストコントローラはパフォーマンスでも多少の違いがある。 USB 機器を作成する開発者は、初期化のタイミング辺りで違いが見られるようですので、UHCI と OHCI との違いについては気をつけたほうが良いかもしれません。OS (Driver) からすれば通常、真下の Driver が違いを吸収してくれるので区別をする必要は無いでしょう。 関連情報 †仕様書 †
用語 †
|