chakokuのブログ(rev4)

日々のごった煮ブログです

USB ホストコントローラを勉強する。。か。。

前回、AndroidADKを試しに動かして見るべく、ADKコンパチボードを作ったりしていたが、コンパチとかちょっと違う実装をするとなると、やはりUSBホストコントローラの事がよく分かっていないといけない。これまでUSBって仕様が複雑でどうも分からんとずっと思っていた(今もそれは変わらないのだが。。)
少し調べると、USBホスト側のチップ仕様として、compaqやMS,NSが決めたOHCI(Open Host Controller Interface)仕様と、Interlが決めたUHCI(Universal Host Controller Interface)、EHCI(Enhanced Host Controller Interface)があるらしい。SHやNXP(ARM)に搭載されているUSBホストコントローラはOHCIに準拠しているそうで、OHCIのドライバをどこかから手に入れればUSBホストを実装することが可能。
というわけで、、勉強の順番として、まずは、OHCIの仕様を理解して、次に、OHCIのドライバを入手して、ドライバのAPIを叩きながら、USBデバイスとどう通信できるか?を理解することになる。。
OHCIの仕様書のDLと、OHCIの仕様をかなり解説してくれている、「CQ出版の組み込み機器へのUSBホスト実装技法」を入手したので、ボチボチとOHCIの理解を進める予定。
"USBホスト実装技法"によると、、OHCIのドライバとして、WASABIやmini-USBHostSTR等があるようだ。NXPでも汎用ドライバがあるような。。

■参考URL

USB仕様書DLページ(OHCI)
http://h18000.www1.hp.com/productinfo/development/openhci.html

ARM用の汎用ライブラリ? CMSIS
http://www.onarm.com/

CMSIS説明ページ
http://www.arm.com/ja/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php