WinDriver v14.21 USB 3.0 対応テストレポート

お待たせしました USB 3.x 対応

WinDriver v14.20 より、USB 3.0/3.1 がサポートされました。これまでに多くの問い合わせをいただいていておりましたが、やっと対応可能となりましました。これで高速/広帯域のデータ転送が求められるハイエンドな機器の開発へも適用可能です。

WinDriver API はこれまで通りの仕様

USB デバイス制御用の WinDriver API には変更はありません。これまで通りの使い方です。

上記では、ターゲットの USB デバイスに対し、ツールキットの DriverWizard で INF ファイルを生成 ([Generate INF file] ボタン操作)、そしてインストールに成功した場面です。このデバイスに対し、WinDriver1421 が登録されている状況です。

そして、

ターゲットデバイスにアクセスが可能になり、デバイスが持つコントロール用パイプの 0x0 (コントロールコマンド通信用)、0x1 (OUT 方向、デバイスへ書き込み)、0x81 (IN 方向、デバイスから読み込み) についての情報が取得出来ている状況が上記画面で確認できます。ここでは、簡単にデバイスの動作テストを行うことができます。[Listen to Pipe] のボタン操作でそのパイプからデータを読み出すことができます。0x81 のパイプから 0xAA の連続が転送 (リード、読み込み) された場面が上記の Output タブ内の領域に表示されています。

ここからがお楽しみ。自動生成したプログラムソースをビルドし、実際に通信テストしてみる、デバッガーで動作を追って確認してみる、という操作です。簡単に、Visual Studio の MS-C コンパイラーでビルドできるように、自動生成が可能です。設定の選択肢は下記画面をご参照ください。ホスト PC が Intel CPU の環境であっても 64-Bit ビルド設定は for AMD64 を選択します。

下記は、お馴染みの Visual Studio 画面。上記設定から生成されたプログラムソース/プロジェクトでビルド完了しました。ソースコードは合計 2000 ステップもないくらいなので、半日ほど眺めていれば理解できる程度かと思います。

実行 (run) すれば、下記のようなアプリ実行画面が表示されます。

上記のメインメニューの選択肢から、1 を選択すると、下記のようにデバイスが持っているインターフェイスやパイプの情報が見えます。ここからテストレポートです。

再び上記のメインメニューへ戻り、 4 を選択すると、下記のようなサブメニューが表示されます。性能計測のようなデータ転送テストができそうです。いくつか試してみます。

サブメニューより 3 を選択し、0x81 (リード (IN) 用のパイプ) を指定すると下記の画面が現れます。

ここで Enter を打鍵すると、再度 Enter が打鍵されるまで、下記のように読み出したデータが表示されます。これと似たようなことは、DriverWizard の機能にもありましたが、ここでは C 言語のプログラムでその動作を確認することが出来ました。デバッガーを使用して解析してみると、プログラムのロジックを短期間で理解できるかと思います。

再び、サブメニューから 4 を選択し、0x81 (リード IN のパイプ) を指定してみます。Start と Stop 時に Enter 打鍵で操作します。すると、下記のように実際の転送レートが得られます。USB 3.0 の理論値は 5 Gbit/sec と言われています。bit 数と Byte (バイト) の換算をすると、そこそこの値が得られているのが確認できます。

下記 2つは、ある決めたサイズの転送時間からその転送レートを求めるテストです。5 を選択し、0x81 (IN のパイプ) を指定すると、リードの転送レートが得られます。

6 を選択し、0x1 (書き込み OUT のパイプ) を指定すると、ライトの転送レートが得られます。

今回のテストで使用したターゲットのデバイスボードは、Cypress 社の CYUSB3KIT-003、通称 EZ-USB FX3 というものです。数千円で入手できますので、テスト、または開発ベースとして使ってみるのもよいかと思います。loopback のファームが初期設定されていますので、上記のような送受信テストが、買ってきたまま、ホスト PC に接続するだけで可能です。

Jungo 社製品 WinDriver の詳細は今すぐこちらからチェック!

セミナーについての詳細は、こちらからご確認いただけます。

開催日以外でも随時セミナーを受け付けておりますので、 弊社問合せフォームからお気軽にご連絡ください。