2012年5月16日水曜日

USBカメラをmbedに繋げてみた(3)

USBバブに繋いだUSBカメラも認識するようにした。

プログラム動作中にハブやデバイスが接続されたり切り離される事はないとして、ハブからのイベントをインタラプト転送で受け取らずに、初期設定時に各ポートをGET_STATUSでポーリングして確認するようにした。

他の多くのUSBデバイスがSET_CONFIGURATIONを送らなくてもだいたい動くが、ハブの場合はSET_CONFIGURATIONを送らないといけないようです。

ポートリセット後に直ちに接続したデバイスにリクエストを送っても返答が無かったが、400msくらい待つようにしたら応答するようになった。

5月17日追加
USBメモリーも使えるようにmass storage classを追加する。
ブロック数(セクター数)を取得するためにReadCapacityくらいだけを実装すればいいかと思っていたがときどき受信エラーになる。
USBHostLiteを参考にして初期化時にTestUnitReadyのステータスをリトライで確認するようにする。

5月21日追加
ITDを拡張して複数のアイソクロナス転送ができるように改良した。
同時に複数のWebカメラを扱えるようになります。

5月23日追加
qcam orbit afのモーションJPEGがパソコンで表示できない理由が少しずつわかってきました。
モーションJPEGの形式がJFIFではなくAVI1になってます。APP0セグメントで確認できます。
DHTセグメントがありません。

6月13日追加
DHTセグメントが無いJPEGはgoogle chromeなら表示できます。

LifeCam UVC(USB Video Class) host alpha version

参考文献
組み込み機器へのUSBホスト実装技法―パソコン用USB周辺機器を組み込みマイコンから自在に使いこなす (TECH I BUS Interface)
第12章 USB ハブ・クラス・ドライバの実装と制御手順
第14章 USBメモリやHDDを制御するための実装と制御手順
---

0 件のコメント: