USBプロトコル・アナライザ選択のガイドライン

tag:

2011年6月21日

USBモニタ・ソフトとUSBプロトコル・アナライザの違いはパケットの観測

 USBは,RS232などのシリアル通信と比べると,格段に複雑です.
 USBデバイスは,ホストに認識されるためには,標準リクエストを正しく実装し,ホストからの要求に対して,正しい応答を返す必要があります.また,USBバスは,フレーム毎にいくつものパケットが送受信されます.通常は,これらの処理のほとんどは,ホスト側のコントローラとデバイス側のコントローラで行われているため,この通信中に何らかの障害が起こっている場合,アプリケーション・レベルでの解析は困難です.
 ホストがWindowsPCの場合,安価なUSBモニタ・ソフトを使うと,USBプロトコル・アナライザを使用しなくても,ある程度のUSBのパケットの様子を見る事ができます.ただし,このようなソフトウェアは,アプリケーションとUSBドライバ間の通信を見ているだけですので,USBパケット上での問題が出た場合は,USBモニタ・ソフトだけでは問題の解決が難しいことがよくあります(図1).



図1 USBモニタ・ソフト
 


 このような場合,USBプロトコル・アナライザがあれば,ホストから送られる要求パケットと,デバイスからの応答パケットをすべて見る事ができますので,どのパケットでの応答に失敗しているかを,見つけるとこができる非常に便利な装置です(図2).



図2 USBプロトコル・アナライザ

 

USBアナライザの種類

 USB規格で大きく分けるとUSB 1.1用,USB 2.0用,USB 3.0用の物があります.高速なものほど高価になりますが,用途によって選択するのがよいでしょう.以下では三つの視点からアナライザを分類してみます.


1.USB規格による分類
 

  USBの規格は基本的には上位互換ですので,上位の規格に対応するアナライザであれば,下位の規格の信号も見る事ができます.

USB 2.0用
 現在最も種類が多いのが,USB 2.0対応のアナライザでしょう.ただし注意が必要なのは,ハイ・スピードとOTG(USB On-The-Go)の対応です.USB 2.0対応と言っても,全てのモードに対応しているとは限りませんので,ハイ・スピードやOTGを使用する場合は,これらのモードに対応しているのか,確認をしておく必要があります.

USB 1.1(USB 1.0)用
USB 1.1のアナライザでも,USB 1.1のハブを使用すると,USB 2.0のロースピードとフルスピードには使用することが可能です.
 

 

2.用途による分類
 

USB製品(ファームウェア)を開発する立場の場合
 USBファームウェアの開発では,エニュメレーション処理などのデータの確認や,ACK,NAK,STALLなどの状況,応答時間などの確認が必要になってきます.
 このような用途には,パケットの流れが見やすい製品があると便利です.製品によっては,標準リクエストなど仕様の決まったパケットに対しては,パケット内容を解析して表示できる機能があるものもあり,リクエストの応答を1つ1つチェックする場合などに,威力を発揮します.
 また開発途中の不具合のあるデバイスを何度もPCに接続していると,Windows自体が誤動作して起動しなくなることもよくあります.その場合にジェネレータ機能があれば,特定のパケットをジェネレータから発行する事ができるので,非常に便利です(図3).



図3 ジェネレータの接続例


USBドライバを開発する立場の場合
 エニュメレーションはOSの仕事となるため,パケットの解析機能はさほど重要ではないかもしれません.もちろん汎用性が求められるマス・ストレージ・ドライバなどの場合には,パケット解析があると便利です.多くの場合は,独自デバイス開発が多いと思いますので,アプリケーションソフトの操作性やデータの見易さなどで,使いやすい製品を選択すると良いでしょう.

アプリケーションを開発する立場の場合
 多くの場合は,すでに動作しているデバイスに対して,アプリケーションを作成します.アプリケーションが正しく動作しない場合,思った通りのデータが本当にUSBデバイスに正しく送られているか否を確認する必要がある場合は,やはりUSBプロトコル・アナライザの出番となります.
 アプリケーション開発の場合は,ファームウェアやドライバの開発と比較して,大量のデータを扱う場合が多く,できる限りバッファ・メモリの多い製品もしくは読み取り可能データ・サイズが大きい製品が便利でしょう.製品によっては,バッファ・メモリを少なくしてコストを下げる一方で,読み出し側のアプリケーションで大量のデータ処理が可能になっていることもあります.また,特定の条件でエラーが発生する場合等には,トリガ機能が充実した製品が便利でしょう.
 

 

3.製品による分類
 

 USBアナライザは,高性能で多機能な製品を持っているに越したことはありませんが,高性能で多機能な製品ほど高価な製品となり,性能とコストのトレードオフが発生します.1つの解決策として,高性能で多機能な製品を1台用意して,安価なアナライザを複数台用意するといった方法が考えられますが,それが難しい場合は,コストと性能を天秤にかけて,最適な製品を選ぶことになります.
 最後に解析ソフトウェアについて少し触れます.解析ソフトウェアは製品毎に個性があり,実際に使ってみるのが一番です.多くの製品では,アナライザのソフトウェアを無償で提供したり,評価版として一定期間証できるようになっています.これらのソフトは,アナライザ本体が無いとデータの取り込みはできませんが,サンプル・データを読み込んで,画面表示や操作性を実際に動かしてみる事ができます.このような製品の場合は,一旦ログデータを取ってしまえば,アナライザの実機がない環境でも,ログデータの解析ができるので,便利です.

(株)ソリトンウェーブ
代表取締役 芹井 滋喜

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日