3

私は現在、大学のコースのプロジェクトに取り組んでいます。私は、コンピューターと USB フラッシュ ドライブの間の中間インターフェイスとなるデバイスを設計しています。つまり、データはコンピューター -> デバイス -> USB ドライブから移動します。

このデバイスに必要な機能の 1 つは、データ アクティビティが発生しているかどうかを検出し、この情報をマイクロコントローラーに送信できるようにすることです。転送中のデータがあるかどうかだけで、データ自体について何も知る必要はありません。

USB の仕組みについてオンラインで調査しましたが、これを行う良い方法が見つからないようです。大学の先生にお話を伺いました。どうやらこれは「非常に簡単」に行うことができますが、その方法はよくわかりません。誰でもいくつかのアイデアを提案できますか? どうもありがとう。

4

3 に答える 3

3

この場合、最も簡単な方法は、USBlyzer ( http://www.usblyzer.com/ ) や USB データ キャプチャ ( http://www.eltima.com ) など、USB プロトコルとマイクロコントローラーを記録できる追加のソフトウェアを使用することです。 /products/usb-capture/ )

コンピューターの USB ポートに接続されているデバイスにフラッシュ ドライブを挿入する必要があります。次に、USB データ アナライザー ソフトウェアを実行し、USB ポートを見つけます。それで全部です!その後、マイクロコントローラーとアプリの間のすべてのデータを監視および分析できます。さらに、キャプチャしたデータを保存およびエクスポートできます

于 2017-01-18T09:48:59.520 に答える
1

あなたの家庭教師は正しくありません。
データが転送されていなくても、USB バスは常に動作しています。

USB 仕様 ( http://www.usb.org/developers/docs/ )、特に「プロトコル層」セクションを注意深く読んでください。「USB の概要」の記事で読むことができるいくつかの基本事項。
オシロスコープでバスを探索。また、 http://desowin.org/usbpcap/http://freeusbanalyzer.com/
などのソフトウェア アナライザーを使用して、バス上のデータを調べることもできます。

外部マイクロコントローラでバス上のすべてのパケットをキャプチャし、それらの期間を測定し、無駄な SOF パケットと貴重なデータ パケットを分類するには十分だと思います。

確かに、USB 2.0 バスの速度に追いつくには、マイクロコントローラーが十分に高速である必要があります。キーボードなどの低速デバイスのアクティビティの検出は、はるかに簡単になり、arduino でも実行できる場合があります。

于 2015-10-16T07:40:30.223 に答える