〜 ワンチップマイコン1個で USB バスのデータをキャプチャ 〜
Low Speed 専用 超簡易 USB バスモニタ IKusbmon
(トランジスタ技術ワンチップ・マイコン・デザイン・コンテスト応募作品)
2005.09.29
■ 概要
USB バス上を流れるデータをキャプチャし、PC に転送してデータを確認できる Low Speed 専用の USB バスモニタです。例えば PC と USB マウスとの間でやりとりされるデータを簡単に確認することが出来ます。
以下の3つのモードでキャプチャが可能です。
- 全てのデータをキャプチャするモード
- SETUP や IN など、ある特定の PID のパケットをトリガにそれ以降のデータを全てキャプチャするモード
- DATA1 など、ある特定の PID を持つパケットだけをキャプチャするモード

図1 システム全体図
■ ハードウェア

図2 回路図

写真1 作成した基板
■ ソフトウェア
AVR のソフトウェアのみで USB バスの生データをキャプチャし、内蔵 RAM に格納します。
RS-232C で基板と接続した PC で専用 Windows アプリを動かし、ここからキャプチャ条件の設定やキャプチャ開始を指示します。そして基板からキャプチャデータを受け取り、NRZI 変換や bitstuff 処理を行い、画面に表示します。
|
|
図3 キャプチャ条件設定ダイアログ
|
図4 USB マウスのキャプチャデータ
|
|
|
図5 ACK をトリガ条件にした場合
|
図6 DATA0 をフィルタ条件にした場合
|
■ おわりに
以前 AVR ソフトウェアで USB ホストを作った時には USB バスをロジアナで見て波形を追い、デバッグしました。高価な市販のバスモニタを使わなくても、今回作成したバスモニタを使うことで、安価にデバッグ効率を上げることが出来ると思います。
■ ダウンロード
kyosuke@da2.so-net.ne.jp