(57)【特許請求の範囲】
【請求項１】
データ取出部と、主処理装置と、メモリ装置と、データ有無判別部と、複数のデータを記憶可能である第１記憶エリアと、読取り手段と、要求信号発生手段と、表示方法決定手段と、ディスプレイとを備え、
該データ取出部は、高速シリアル通信バスに接続可能であり、かつ、該高速シリアル通信バス上を伝送するシリアルデータを取出し可能であり、
該高速シリアル通信バス上を伝送する該シリアルデータは所定変換手順によって変換されたシリアルデータであり、
主処理装置は、該データ取出部が該高速シリアル通信バスから取出したシリアルデータを、該所定変換手順によって変換される前のシリアルデータに戻し、かつ、シリアル−パラレル変換によってパラレルデータを作成し、
該主処理装置は、該パラレルデータを作成する度に記憶指令信号を発し、
該メモリ装置は、複数のパラレルデータを記憶可能な、リングバッファ構造の第２記憶エリアを有し、
該メモリ装置は、該主処理装置から該記憶指令信号を受ける度に、該主処理装置が作成したパラレルデータを該第２記憶エリアに記憶し、
該データ有無判別部は、該第２記憶エリアに、まだ取り出されていないデータがあるか否かを判別して、該第２記憶エリアにまだ取り出されていないデータがあると判断したときに、第１の状態信号を発生し、
該読取り手段は、該データ有無判別部からの状態信号を繰り返し読取り、
該要求信号発生手段は、該読取り手段が読取った該データ有無判別部からの状態信号が第１の状態信号であるとき、要求信号を発生し、
該メモリ装置は、該要求信号発生手段が要求信号を発生するたびに、該第２記憶エリアに記憶されているパラレルデータを、記憶された順に該第１記憶エリアに送出し、
該第１記憶エリアは該メモリ装置から送出されたパラレルデータを記憶し、
該表示方法決定手段は、該第１記憶エリアに記憶されたパラレルデータの全体または一部を対象データとして、所定表示規則に従って該対象データに対応する表示方法を決定し、
該表示規則において、複数種類の対象データと、該対象データのそれぞれの種類に対応した表示方法が関係付けられており、
該表示方法決定手段が決定した表示方法に従って、該対象データを該ディスプレイに表示する、データ取出および分別表示装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この出願に係る発明は、データを取り出して記憶エリアに記憶するデータ取出記憶装置およびデータを予め定められた表示規則に従って分別表示するデータ分別表示装置に関する。
【０００２】
【従来の技術】
ＲＳ２３２Ｃなど従来のシリアル通信ではデータ伝送が低速であったし、単一のデータが伝送されるのみであればそのシリアル通信の内容を安価なマイクロコンピュータによって読取・解釈・表示することも比較的容易であった。このような技術は、プロトコルアナライザや通信モニタと称される装置に適用され、低速シリアル通信機器の開発に利用されている。
【０００３】
【発明が解決しようとする課題】
近年、ＵＳＢやＩＥＥＥ１３９４などの高速シリアル通信バスが、パーソナルコンピュータの標準的インターフェースとして普及しつつある。このような高速シリアル通信バスは従来の低速シリアル通信バスとは異なり、そこを伝送されるシリアル通信の内容を読取・解釈・表示しようとすると安価なマイクロコンピュータでは処理速度が間に合わない。
【０００４】
特に、高速シリアル通信バスでは、複数のホストコントローラと複数の周辺装置との間で伝送されるデータが、単一の伝送路に重畳する。よって、通信の内容が輻輳し、単にこの通信内容を読み込んだだけでは、通信内容を理解することが困難である。
【０００５】
本願の発明は、高速シリアル通信バスにおいて、高速で伝送されるデータを容易に読み取ることができるようにする装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
この出願に係るデータ取出および分別表示装置は、データ取出部と、主処理装置と、メモリ装置と、データ有無判別部と、複数のデータを記憶可能である第１記憶エリアと、読取り手段と、要求信号発生手段と、表示方法決定手段と、ディスプレイとを備え、該データ取出部は、高速シリアル通信バスに接続可能であり、かつ、該高速シリアル通信バス上を伝送するシリアルデータを取出し可能であり、該高速シリアル通信バス上を伝送する該シリアルデータは所定変換手順によって変換されたシリアルデータであり、主処理装置は、該データ取出部が該高速シリアル通信バスから取出したシリアルデータを、該所定変換手順によって変換される前のシリアルデータに戻し、かつ、シリアル−パラレル変換によってパラレルデータを作成し、該主処理装置は、該パラレルデータを作成する度に記憶指令信号を発し、該メモリ装置は、複数のパラレルデータを記憶可能な、リングバッファ構造の第２記憶エリアを有し、該メモリ装置は、該主処理装置から該記憶指令信号を受ける度に、該主処理装置が作成したパラレルデータを該第２記憶エリアに記憶し、該データ有無判別部は、該第２記憶エリアに、まだ取り出されていないデータがあるか否かを判別して、該第２記憶エリアにまだ取り出されていないデータがあると判断したときに、第１の状態信号を発生し、該読取り手段は、該データ有無判別部からの状態信号を繰り返し読取り、該要求信号発生手段は、該読取り手段が読取った該データ有無判別部からの状態信号が第１の状態信号であるとき、要求信号を発生し、該メモリ装置は、該要求信号発生手段が要求信号を発生するたびに、該第２記憶エリアに記憶されているパラレルデータを、記憶された順に該第１記憶エリアに送出し、該第１記憶エリアは該メモリ装置から送出されたパラレルデータを記憶し、該表示方法決定手段は、該第１記憶エリアに記憶されたパラレルデータの全体または一部を対象データとして、所定表示規則に従って該対象データに対応する表示方法を決定し、該表示規則において、複数種類の対象データと、該対象データのそれぞれの種類に対応した表示方法が関係付けられており、該表示方法決定手段が決定した表示方法に従って、該対象データを該ディスプレイに表示する。
【０００７】
このように構成されているので、パラレルデータをメモリ装置に蓄積しておくことができる。よって、高速シリアル通信バス上を伝送するデータを蓄積しつつ、蓄積されたデータを取り出して、比較的時間をかけて処理することが可能となる。
また、データが次々と第１記憶エリアに蓄積されてゆく。この蓄積されたデータを必要とする表示方法決定手段は、比較的時間をかけてこのデータを処理することが可能となる。
そして、データの種類に対応した表示方法によってディスプレイにデータが表示される。よって、データの意味内容を理解しやすくなる。
【００１２】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づいて説明する。なお以下では、高速シリアル通信バスの一つであるＵＳＢ（Universal Serial Bus：汎用シリアルバス）規格の通信バスを用いたシステムを例に挙げて説明がされている。
【００１３】
図１は、本願発明の一実施形態たる通信バス監視装置２０が、通信バス１に接続された状態を示すブロック図である。図１には、ホストコントローラたるパーソナルコンピュータ５２によって第１の周辺装置５３と第２の周辺装置５４とが制御されるシステムが示されている。第１の周辺装置５３や第２の周辺装置５４は、例えば、ＣＤ−Ｒドライブや、半導体メモリ装置であってもよい。
【００１４】
パーソナルコンピュータ５２とハブ５５との間、ハブ５５と第１の周辺装置５３との間、ハブ５５と第２の周辺装置５４との間は、それぞれ通信バス１によって接続されている。通信バス１上では、パケット通信が行われており、通信バス１上をスタートオブフレイムパケット、トークンパケット、データパケットおよびハンドシェイクパケットが伝送されている。なお、スタートオブフレイムパケット、トークンパケット、データパケットおよびハンドシェイクパケットは、いずれも、８の倍数ビットのバイナリデータによって構成されている。
【００１５】
通信バス１は、高速シリアル通信バスの一つであるＵＳＢ（Universal Serial Bus：汎用シリアルバス）規格の通信バスである。よって、この通信バス１には、ＵＳＢ規格で定められたＮＲＺＩ（Non Return to Zero Invert）という変調方式によって変調された通信信号が伝送される。
【００１６】
ＮＲＺＩ方式による変調では、「０」と「１」との羅列である元のシリアルデータに対して、「１」が来たときに信号の極性を反転させず、「０」が来たときに信号の極性を反転させる。さらに、ＵＳＢ規格では、シリアルデータに同じ値が６ビット連続する部分があると、その直後に値を変化させるようなビットを追加する。この操作は「ビット追加」もしくは「ビットスタッフ」と呼ばれる。
【００１７】
ＵＳＢ規格では、このＮＲＺＩ方式で変調した信号を、２本のデータ線をペアで使って送受信する。片方の信号線には変調信号をそのまま流し、もう片方の信号線には変調信号の極性を反転させた信号を流す。
【００１８】
第１の周辺装置５３と第２の周辺装置５４とは、ともにＵＳＢ機器である。すなわち、第１の周辺装置５３と第２の周辺装置５４とは、ＵＳＢ規格のインターフェースを有している。また、パーソナルコンピュータ５２も、その内部にＵＳＢ規格のインターフェースを有している。
【００１９】
このようなシステムにおいては、パーソナルコンピュータ５２とハブ５５との間に配された通信バス１を、パーソナルコンピュータ５２と第１の周辺装置５３との間で送受されるシリアルデータと、パーソナルコンピュータ５２と第２の周辺装置５４との間で送受されるシリアルデータとが、輻輳して伝送されることになる。
【００２０】
通信バス監視装置２０は、パーソナルコンピュータ５２とハブ５５との間に配された通信バス１に接続されている。
【００２１】
図２は、通信バス１と通信バス監視装置２０との間の接続状態を示す接続図である。この通信バス１は電源線、グランド線、２本のデータ線を有しているが、図２ではデータ線のみを示し、他の線は省略している。この図に示されるように、通信バス監視装置２０は、２のバッファ５１を有するバッファ部５０を介して通信バス１のデータ線に接続されている。よって、通信バス１上で伝送されるデータを傍受することができ、かつ、通信バス１上で伝送されるデータに一切影響を与えることがない。
【００２２】
図３は、通信バス監視装置２０の機能ブロック図である。通信バス監視装置２０は、主に、データ取出記憶部１１と、データ取出記憶装置と、データ分別表示装置とで構成されている。本実施形態では、データ取出記憶装置の機能とデータ分別表示装置の機能とは、パーソナルコンピュータ３０によって実行されている。すなわち、パーソナルコンピュータ３０は、データ取出記憶装置として、また、データ分別表示装置として機能する。データ取出記憶部１１とパーソナルコンピュータ３０は、それぞれパラレルポート１３、１４を有しており、パラレルポート１３とパラレルポート１４との間はケーブル１５によって接続されている。
【００２３】
データ取出記憶部１１は、データ取出部２と、データ処理部３と、一時記憶部５と、記録順序発生部４と、出力順序発生部６と、データ有無判別部１６とを有している。データ処理部３は、請求項１にいう主処理装置として機能する。また、一時記憶部５、記録順序発生部４、出力順序発生部６、データ有無判別部１６が、請求項１にいうメモリ装置として機能する。
【００２４】
データ取出部２は、通信バス１を伝送するシリアルデータを１ビットづつ読み取り、その読み取り速さと等速で、読み取ったシリアルデータをデータ処理部３へ送出する。
【００２５】
データ処理部３は、復調部３ａ、８ビットシフトレジスタ３ｂ、８ビットパラレルレジスタ３ｃ、３ビットカウンタ３ｄなどを有している。復調部３ａは、データ取出部２から送られてくるデータをＮＲＺＩ復調する。すなわち、前のビットの値と極性が同じであるデータを「１」として復号し、前のビットの値と極性が反転しているデータを「０」として復号する。さらにＵＳＢ規格に対応して、データ取出部２から送られてくるデータ列から「ビット追加（ビットスタッフ）」によって追加されたビットのデータは、有意なデータではないものとして取り除く。こうして復号されたデータを８ビットシフトレジスタ３ｂに次々と送出する。そして、８ビットシフトレジスタ３ｂにおいて８ビットのシフトが行われる度に、８ビットシフトレジスタ３ｂに記憶されているデータ列を８ビットのパラレルデータとして８ビットパラレルレジスタ３ｃに送出する。
【００２６】
データ処理部３は、８ビットシフトレジスタ３ｂにおいて８ビットのシフトが行われたことを、３ビットカウンタ３ｄを用いて判定している。３ビットカウンタ３ｄは、データ処理部３がデータ取出部２から１ビットのシリアルデータを受け取る度に同期信号（クロック信号）を受ける。そして３ビットカウンタ３ｄは、この同期信号（クロック信号）を受け取る度に、カウンタ値を１つ増加させる。なお、データ取出部２から送られてくるデータが「ビット追加（ビットスタッフ）」によって追加されたビットのデータであるとデータ処理部３が判断した時には、データ処理部３は３ビットカウンタ３ｄのカウンタ値を増加させないようにする。３ビットカウンタ３ｄは８回のカウント値増加を１周期として、カウンタ値が「０００」にもどる。カウンタ値が「０００」に戻る度に、３ビットカウンタ３ｄからロードパルスが発せられる。このロードパルス発生によって、８ビットシフトレジスタ３ｂにおいて８ビットのシフトが行われたと判定することができる。このロードパルスは、請求項１にいう記憶指令信号として機能する。
【００２７】
データ処理部３は、８ビットパラレルレジスタ３ｃに記憶されている８ビットパラレルデータを一時記憶部５に送出するとともに、３ビットカウンタ３ｄから発せられるロードパルスを記録順序発生部４に送出する。
【００２８】
記録順序発生部４は、１９ビットバイナリカウンタ４ａを有している。記録順序発生部４は、３ビットカウンタ３ｄからのロードパルスを受け取ると、１９ビットバイナリカウンタ４ａに記憶している数値を１だけ増加させ、その数値を一時記憶部５に送出する。なお、１９ビットバイナリカウンタ４ａに記憶している数値が最大値”１１１１１１１１１１１１１１１１１１１”である場合に「その数値を１だけ増加させる」とは、１９ビットバイナリカウンタ４ａに記憶する数値を”０００００００００００００００００００”にすることを意味する。
【００２９】
一時記憶部５は内部にＲＡＭ５ａを有しており、記録順序発生部４から入力した数値に対応したアドレス（ＲＡＭ５ａのアドレス）に、データ処理部３から入力した８ビットパラレルデータを記憶する。
【００３０】
このように、記録順序発生部４がロードパルスを受け取ることによって、新たに、一時記憶部５にデータ処理部３からの８ビットパラレルデータが記憶される。つまり、ロードパルスは一時記憶部５に対する記憶指令信号の役割をなす。
【００３１】
出力順序発生部６は、１９ビットバイナリカウンタ６ａを有している。このように、出力順序発生部６のカウンタのビット数は１９であり、記録順序発生部４のカウンタのビット数と一致している。出力順序発生部６は、パラレルポート１３を介して要求信号を受けると、１９ビットバイナリカウンタ６ａに記憶している数値を１だけ増加させ、その数値を一時記憶部５に送出する。なお、１９ビットバイナリカウンタ６ａの数値が最大値”１１１１１１１１１１１１１１１１１１１”である場合、「その数値を１だけ増加させる」とは、１９ビットバイナリカウンタ６ａに記憶する数値を”０００００００００００００００００００”にすることを意味する。
【００３２】
一時記憶部５は、出力順序発生部６から入力した数値に対応するアドレスに記憶している８ビットパラレルデータを、パラレルポート１３に出力する。
【００３３】
また、データ取出記憶部１１は、データ有無判別部１６を有している。データ有無判別部１６は記録順序発生部４に接続されており、１９ビットバイナリカウンタ４ａに記憶されている数値を読み込むことができるようになっている。また、データ有無判別部１６は出力順序発生部６に接続されており、１９ビットバイナリカウンタ６ａに記憶されている数値を読み込むことができるようになっている。さらにデータ有無判別部１６はパラレルポート１３に接続されている。このデータ有無判別部１６は、一時記憶部５に、まだ外部に取り出されていないパラレルデータ（復調されたパラレルデータ）があるか否かを判別して、その判別結果に応じた状態信号を発生するものである。この判別は、記録順序発生部４の１９ビットバイナリカウンタ４ａに記憶されている数値と出力順序発生部６の１９ビットバイナリカウンタ６ａに記憶されている数値とを比較することによってなされる。すなわち、出力順序発生部６の１９ビットバイナリカウンタ６ａに記憶されている数値が記録順序発生部４の１９ビットバイナリカウンタ４ａに記憶されている数値に追いついていない場合は第１の状態信号を発生し、追いついている場合は第２の状態信号を発生するのである。
【００３４】
このように、データ取出記憶部１１は、通信バス１を伝送する変調されたシリアルデータを取り出して、そのなかからビット追加によって追加されたデータを除いた有意なデータのみを所定手続きに従って復調し、復調されたデータ（ＮＲＺＩ変調前のデータ）を、パラレルデータとして一時記憶部５に記憶する。この一時記憶部５は、リングバッファの構造を有している。そして、外部機器からパラレルポート１３を介して送られてくる要求信号に応じて、一時記憶部５に記憶した順番に、一時記憶部５の８ビットパラレルデータを出力する。このように、データ取出記憶部１１は、復調されたパラレルデータを、次々と一時記憶部５に記憶し、外部機器からの要求信号に応じて、記憶した順にパラレルデータを出力するのである。また、外部機器は、一時記憶部５にまだ出力されていないパラレルデータが残っているか否かを、データ有無判別部１６からの状態信号によって知ることができるのである。
【００３５】
本実施形態のデータ取出記憶部１１では、一時記憶部５と、記録順序発生部４と、出力順序発生部６と、データ有無判別部１６とによって、次のような機能を有するメモリ装置が構成されていた。すなわち、複数のパラレルデータを記憶できるリングバッファ構造の記憶エリアを有し、記憶指令信号たるロードパルス（３ビットカウンタ３ｄからのロードパルス）を受ける度に外部からのパラレルデータを該記憶エリアに記憶し、要求信号を受ける度に該記憶エリアに記憶しているパラレルデータを記憶した順に出力し、出力したことがないパラレルデータが該記憶エリアに残っているか否かを示す状態信号を出力するようなメモリ装置である。
【００３６】
このようなメモリ装置を、本実施形態のデータ取出記憶部１１では、一時記憶部５と、記録順序発生部４と、出力順序発生部６と、データ有無判別部１６とによって構成したが、ＦＩＦＯ（ファーストインファーストアウト）メモリを使って構成してもよい。ＦＩＦＯメモリは、複数のパラレルデータを記憶しうる記憶エリア、ライトイネーブル端子、パラレル入力ポート、リードイネーブル端子、パラレル出力ポート、フラグ端子を有している。そして、ライトイネーブル端子に起動信号が与えられる度に、パラレル入力ポート上のパラレルデータを記憶エリアに記憶する。また、リードイネーブル端子に起動信号が与えられる度に、記憶エリアに記憶しているパラレルデータを、記憶した順にパラレル出力ポート上に出力する。さらに、パラレル出力ポートに出力したことがないパラレルデータが該記憶エリアに残っているか否かを示すフラグをフラグ端子に出力するのである。
【００３７】
以上で説明したように、データ取出記憶部１１によれば、所定の規格に従ってコードの体系が変換され（変調され）、高速通信バス上を輻輳して通信するシリアルデータを、データの体系を元に戻して（復調して）、パラレルデータとして一時記憶部５に記憶する。そして、外部機器からの要求に応じて外部機器にパラレルデータを送出する。有る程度の数のパラレルデータであれば、外部に取り出すことなく、データ取出記憶部１１内に蓄積させておくこともできる。よって、取得したパラレルデータに何らかの処理（例えばディスプレイでの表示）を施そうとする外部機器は、通信バスの通信速度に合わせてパラレルデータの処理を行う必要がなくなる。よって、高速通信バス上を伝送する輻輳されたデータを、データ取出記憶部１１に蓄積しつつ、比較的時間をかけて処理することも可能となる。
【００３８】
図３にはパーソナルコンピュータ３０が示されているが、このパーソナルコンピュータ３０は、外部から取り込んだデータを記憶手段に記憶するデータ取出記憶装置として機能し、また、データを分別して表示するデータ分別表示装置としても機能する。
【００３９】
パーソナルコンピュータ３０にはＯＳ（オペレーティングシステム）３１が組み込まれている。このＯＳ３１はウィンドウシステムである。また、パーソナルコンピュータ３０はハードディスク３２やパラレルポート１４を有している。さらにパーソナルコンピュータ３０にはディスプレイ３３や、ポインティングデバイスたるマウス３４等が接続されている。マウス３４はボタン３４ａを有している。ＯＳ３１とパラレルポート１４の間にはパラレルポートドライバ３５が、ＯＳ３１とマウスと３４の間にはマウスドライバ３６が、ＯＳ３１とディスプレイ３３との間にはディスプレイドライバ３７が介在している。また、パーソナルコンピュータ３０には解釈プログラム３８がロードされている。この解釈プログラム３８はＯＳ３１や各種ドライバを介してパラレルポート１４、マウス３４、ディスプレイ３３、ハードディスク３２との間でデータの授受をすることができるようになっている。パラレルポートドライバ３５は、請求項１にいう読取り手段および要求信号発生手段として機能する。また、解釈プログラム３８は、請求項１にいう表示方法決定手段として機能する。
【００４０】
このようにして構成されたパーソナルコンピュータ３０が、データ取出記憶装置として、また、データ分別表示装置として機能する。
【００４１】
まず、パーソナルコンピュータ３０における、データ取出記憶装置として機能する部分について説明する。パーソナルコンピュータ３０においてデータ取出記憶装置として機能するのは、主に、パラレルポート１４と、パラレルポートドライバ３５と、解釈プログラム３８と、記憶媒体たるハードディスク３２である。パーソナルコンピュータ３０は、一時記憶部５にまだ取り出していないパラレルデータがあるか否かを、常に監視している。
【００４２】
この監視は、パラレルポートドライバ３５がパラレルポート１３、１４を介してデータ有無判別部１６から状態信号を読み込むことによってなされる。つまり、パラレルポートドライバ３５はデータ有無判別部１６から状態信号を繰り返し読み込んでいる。
【００４３】
これにより、まだ取り出していないパラレルデータが一時記憶部５に残っていないことがわかった場合、すなわち、データ有無判別部１６からの信号が第２の状態信号であることを確認した場合は、パラレルポートドライバ３５は解釈プログラム３８に対して何らの信号も送出しない。
【００４４】
まだ取り出していないパラレルデータが一時記憶部５に残っていることがわかった場合、すなわち、データ有無判別部１６からの信号が第１の状態信号であることを確認した場合は、パラレルポートドライバ３５は解釈プログラム３８に対して、要求指令信号を発する。
【００４５】
この要求指令信号を受けて解釈プログラム３８は、パラレルポート１４から要求信号を送出させるように、パラレルポートドライバ３５に対して指令を発する。この要求信号はパラレルポート１３を介してデータ取出記憶部１１に送出される。そして、この要求信号に応答して一時記憶部５からパラレルポート１４に送出されてきたパラレルデータを、パラレルポートドライバ３５を介して解釈プログラム３８が読み込む。そして、読み込んだパラレルデータを、ハードディスク３２に次々と記憶させる。解釈プログラム３８が取り込んだパラレルデータを記憶するためのハードディスク３２上に用意した記憶エリア４１の記憶容量は、２ギガバイトである。このようにして、ハードディスク３２には、一時記憶部５に記憶されていたパラレルデータが次々と移されてくる。
【００４６】
パーソナルコンピュータ内で扱うデータには、通常、「パラレル」と言う概念は除外して取り扱われるが、以降の説明の理解を容易とするために、「パラレルデータ」として説明する。
【００４７】
図４は、パーソナルコンピュータにおいて、パラレルポートドライバ３５、解釈プログラム３８、ＯＳ３１によって構成される、パーソナルコンピュータ３０の全体を支配するプログラムのうちの、データ取出記憶装置として機能する部分の処理手順を示すフローチャートである。このフローチャートに従って説明すると、まず、外部の記憶媒体（一時記憶部５）にまだ読み込んでいないパラレルデータが残っているか否かを示す状態信号を読み込む（Ｓ１）。そして状態信号が第１の状態信号であるか否かを判定し（Ｓ２）、第１の状態信号であった場合は、外部に要求信号を出力する（Ｓ３）。そして、所定時間後（Ｓ４）に、要求信号に応じて送出されてきたパラレルデータを読み込む（Ｓ５）。そして、読み込んだパラレルデータを、記憶媒体たるハードディスク３２に記憶する（Ｓ６）。
【００４８】
次に、パーソナルコンピュータにおいて、データ分別表示装置として機能する部分について説明する。パーソナルコンピュータ３０においてデータ分別表示装置として機能するのは、主に、解釈プログラム３８と、マウス３４と、マウスドライバ３６と、ディスプレイ３３と、ディスプレイドライバ３７である。つまり、解釈プログラム３８は、ハードディスク３２の記憶エリア４１に蓄積したパラレルデータを、そこに蓄積した順番に、換言すれば、一時記憶部５に記憶された順番に取り出す。
【００４９】
図５は、ハードディスク３２の記憶エリア４１に記憶された複数のパラレルデータを概念的に示すものである。各パラレルデータはすべて８ビットのパラレルデータである。一つのパケットは、複数のパラレルデータによって構成されている。各パケットは各種のフィールドに分けられているが、パケットの先頭にあるパラレルデータにはＳＹＮＣフィールドがあり、パケットの最後にあるパラレルデータにはＣＲＣフィールドがある。なお、この図における各種パケットのフィールド構成は、ＵＳＢ規格に従ったものである。
【００５０】
そして解釈プログラム３８は、ハードディスク３２の記憶エリア４１から一連のパラレルデータをパケット単位で切り出す。パケットの切り出しは、ハードディスク３２の記憶エリア４１に記憶された連続するパラレルデータから、パケットの先頭のパラレルデータのＳＹＮＣフィールドと最後のパラレルデータのＣＲＣフィールドとを見つけだすことによってなされる。
【００５１】
そして解釈プログラム３８は、その切り出されたパケットのパラレルデータをいかなる表示方法で表示するべきかを決定する。この決定は、そのパラレルデータがいかなる種類のパケットに属するものであるか、また、そのパラレルデータがいかなるフィールドに関するものであるかなどによってなされる。
【００５２】
例えば、その切り出されたパケットの２番目のパラレルデータのＰＩＤフィールドを読むことによって、そのパケットがいずれの種類のパケットのデータであるかを判断することができる。またパケットの種類がわかれば、そのパケットにおいてそのパラレルデータが何番目のパラレルデータであるかなどを知ることによって、そのパラレルデータがいかなるフィールドに関するものであるかがわかる。
【００５３】
このような情報（パケットの種類やフィールドの種類に関する情報）に基づいて、そのパラレルデータがいかなる表示カテゴリーに属するものであるかを判断するのである。以下、このことをＰＩＤフィールドを例にして詳述する。
【００５４】
ハードディスク３２には、複数のパラレルコードとそれぞれのパラレルコードに対応しての表示カテゴリーや文字列を記述した、図６のようなテーブル４４が記憶されている。これらの文字列は、対応するパラレルデータの意味を表す文字列である。
【００５５】
また図７は、ＵＳＢ規格に基づく、各ＰＩＤフィールドのパラレルコードとその内容等を示した表である。
【００５６】
図７を参照してわかるとおり、ＵＳＢ規格では、”００１０１１０１”というパラレルデータはトークンパケットのセットアップを意味する。これに対応して図６のテーブル４４では、”００１０１１０１”というパラレルデータに対応して”０１”という表示カテゴリーと、これに対応する文字列として”ＳＥＴＵＰ”という文字列が記述されている。また、図７を参照してわかるとおり、ＵＳＢ規格では、”１１００００１１”というパラレルデータはデータパケットを意味する。これに対応して図６のテーブル４４では、”１１００００１１”というパラレルデータに対応して”０５”という表示カテゴリーと、これに対応する文字列として”ＤＡＴＡ０”という文字列が記述されている。
【００５７】
解釈プログラム３８はハードディスク３２（図３参照）に格納されているテーブル４４（図６のテーブル４４）を参照しながら、各パラレルデータがいかなる表示カテゴリーに属するものかを決定する。
【００５８】
この決定は、解釈プログラム３８がハードディスク３２の記憶エリア４１からパラレルデータを読み込んで、そのパラレルデータに一致するパラレルデータをテーブル４４から検索し、検索されたパラレルコードに対応する表示カテゴリーを知ることによってなされる。例えば”００１０１１０１”というパラレルデータをハードディスク３２の記憶エリア４１から読み込むと、解釈プログラムはデーブル４４を検索することによって、”０１”という表示カテゴリーを得ることができ、さらに「ＳＥＴＵＰ」という文字列を得ることができる。従って、このテーブル４４には、対象データと、そのデータをどのように表示するのかという表示方法とを関係付けた表示規則が記述されているということができる。
【００５９】
このテーブル４４に従えば、例えば、ＰＩＤフィールドのパラレルデータが”００１０１１０１”というパラレルデータであった場合は、そのパラレルデータは第１の表示カテゴリーに属するものであり、”０１１０１００１”というパラレルデータであった場合は第２の表示カテゴリーに属するものであることがわかる。また、”１１００００１１”というパラレルデータであった場合は、第５の表示カテゴリーに属するものであり、”０１００１０１１”というパラレルデータであった場合も、第５の表示カテゴリーに属するものであることがわかる。このように異なるパラレルコードに対して同一の表示カテゴリーが与えられることもある。
【００６０】
図６と図７とを対照すると、パラレルデータが第１の表示カテゴリーに分類された場合は、そのパラレルデータは、トークンパケットに属するフィールドのものであり、ホストコントローラ（パーソナルコンピュータ５２）から周辺機器への何らかのセットアップ命令のためのものであることを意味するものであることがわかる。この場合（パラレルデータが第１の表示カテゴリーに分類された場合）は、解釈プログラム３８は、ディスプレイ３３の画面上にピンクの背景部分を作成し、その上に「ＳＥＴＵＰ」という文字列を表示させる。
【００６１】
またパラレルデータが第２の表示カテゴリーに分類された場合は、そのパラレルデータは、トークンパケットに属するフィールドのものであり、周辺機器からホストコントローラ（パーソナルコンピュータ５２）へ何らかのデータ群を送出するためのものであることを意味する。この場合は、解釈プログラム３８は、ディスプレイ３３の画面上にブルーの背景部分を作成し、その上に「ＩＮ」という文字列が表示させる。
【００６２】
またパラレルデータが第５の表示カテゴリーに分類された場合は、そのパラレルデータは、データパケットに属するフィールドであることを意味する。この場合は、解釈プログラム３８は、ディスプレイ３３の画面上にグリ−ンの背景部分を作成し、その上に「ＤＡＴＡ０」という文字列を表す。さらにグリーンの背景部分上に、ＰＩＤフィールドに続くＤＡＴＡフィールドのパラレルデータを１６進数の数字コードとして表す。
【００６３】
このように解釈プログラム３８は、ハードディスク３２から読み込んだパラレルデータを、数字コードのままで、もしくはそのパラレルデータの意味を示す文字列としてディスプレイに表示する。また、解釈プログラム３８が、送られてきたパラレルデータをディスプレイ３３に表示するときには、表示カテゴリーに応じて異なる表示方法によって表示する。
【００６４】
ここで、解釈プログラム３８がパラレルデータを数字コードのままでディスプレイ３３に表示するとは、例えば、送られてきたパラレルデータが”００１１０１００”というバイナリコードであった場合、それを数字コードとして、例えば１６進数の数字コード”３４(H)”として表示するという意味である。
【００６５】
また、解釈プログラム３８がパラレルデータをそのコードが意味する文字列としてディスプレイに表示するとは、例えば、そのパラレルデータが”００１０１１０１”というバイナリコードであった場合、そのコードが意味する”ＳＥＴＵＰ”という文字列として表示するという意味である。
【００６６】
解釈プログラム３８が、パラレルデータを、表示カテゴリーに応じて異なる表示方法によって表示するとは、例えば、表示カテゴリーに応じてディスプレイ３３の背景色が異なるようにしてもよい。つまり、表示カテゴリーが”０１”である場合は、ディスプレイ３３上のパラレルコードの表示部分の背景色をピンクにし、表示カテゴリーが”０２”である場合は、ディスプレイ３３上のパラレルコードの表示部分の背景色をブルーにする、というような色分けをするのである。
【００６７】
解釈プログラム３８が、パラレルデータを、表示カテゴリーに応じて異なる表示方法によって表示するとは、例えば、表示カテゴリーに応じて、ディスプレイ３３上のいかなる位置にパラレルデータを表示させるかを区別してもよい。つまり、表示カテゴリーが”０１”である場合は、ディスプレイ３３上の左よりの部分にパラレルコードが意味する文字列（例えば「ＳＥＴＵＰ」という文字列）を表示し、表示カテゴリーが”０５”である場合は、ディスプレイ３３上の左右方向における中央部分にパラレルコードが意味する文字列や数字コードを表示するという具合に、表示位置を変えるのである。
【００６８】
なお、解釈プログラム３８が、パラレルデータを、表示カテゴリーに応じて異なる表示方法によって表示する例としては、背景色を変えたりディスプレイ３３上の表示位置を変えたりする他に、表示カテゴリーによって異なる色で文字やコードを表示することや、フォントを変更することや、文字の大きさに変化を付けることなどを含む。
【００６９】
なお、表示カテゴリーが特定のものである場合には、送られてきたパラレルコードが、数字コードとしても文字列としてもディスプレイ３３には表示されないようにしてもよい。このように、表示カテゴリーに応じた取捨選択を行うことによってディスプレイ３３に表示しないことも、表示カテゴリーに応じた表示方法の一種である。
【００７０】
図８は、ディスプレイ３３の画面表示の例を示す図である。ディスプレイ３３の画面はデータモニターエリア６１を有している。この例では、データモニターエリア６１の第一行には、「ＳＥＴＵＰ」「ＤＡＴＡ０  ８０  ０６  ００  ０１  ００  ００  ４０  ００」などの表示がある。「ＳＥＴＵＰ」と表示された部分６２の背景色はピンクであり、「ＤＡＴＡ０  ８０  ０６  ００  ０１  ００  ００  ４０  ００」と表示された部分６３の背景色はグリーンである。つまり、パラレルデータの意味を示す文字列「ＳＥＴＵＰ」をディスプレイ３３に表示するとともに、その文字列の表示エリアの背景が表示カテゴリー”０１”に応じた色であるピンクに着色されている。また、データパケットによって伝送されたデータが、「ＤＡＴＡ０」という文字列とともに１６進数表記の数字コードのままでディスプレイ３３に表示され、さらにこのデータパケットによって伝送されたデータの表示エリアの背景が表示カテゴリー”０５”に応じてグリーンに着色されている。
【００７１】
なお、データモニターエリア６１の第一行における、「ＡＤＲ＝０」「ＥＮＰ＝０」という表示は、トークンパケットのＡＤＤＲフィールドやＥＮＤＰフィールドに基づくものであり（図５参照）、「ＡＣＫ」という表示はハンドシェイクパケットのＰＩＤフィールドに基づくものである。
【００７２】
図８を参照すると、ディスプレイ３３の画面には、ポインタ４５が表れている。解釈プログラム３８は、マウスドライバ３６を介して、ポインティングデバイスの一種であるマウス３４に接続されている。ポインタ４５は、マウス３４操作によってディスプレイ３３の画面上を自由に移動させることができる。このポインタ４５を、データパケットによって伝送されたデータの表示エリア６３の右にある「＋」のボタン４６内に移動させて、設定操作部であるマウス３４のボタン３４ａを操作（クリック）すると、データモニタエリア６１の「＋」のボタン４６の右下にパケット詳細表示部４７が表れると同時に、ボタン４６上の表示が「＋」から「−」に変わる。
【００７３】
図９は、このパケット詳細表示部４７が表れたときのディスプレイの画面表示の図である。このパケット詳細表示部４７には、データパケットによって伝送されたデータ群の論理的な意味を示す文字列が表れる。
【００７４】
つまり、ＵＳＢ規格では、セットアップパケットから始まるいくつかのパケット群を「デバイスリクエスト」と称し、パケット内に含まれる各データに論理的な意味が与えられている。パケット詳細表示部４７には、単に数値コードを羅列するのではなく、ＵＳＢ規格に基づいた論理的な意味を示す文字列や数値によって、分かりやすい表示がなされる。このような文字列や数値を表示するには、例えば、データパケットによって伝送されるデータについても、ＵＳＢ規格に基づき、図７で示したテーブルのようなテーブルを別個に作成しておいてハードディスク３２に格納しておけば可能である。図７には、８ビットのパラレルデータ単位で検索することができるようなテーブル４４を示しているが、検索の単位は８ビットパラレルデータに限らず、例えば、１ビット毎に行うことができるようにしてもよい。すなわち、データを１ビット毎に検索して、そのデータの意味内容を解釈できるようなテーブルを作成してもよいのである。
【００７５】
図９を参照すると、ディスプレイ３３にはパケット詳細表示部４７が表れており、そこには「リクエストの方向  デバイスからホスト」という表示や、「リクエストタイプ  標準リクエスト」という表示がある。これは、ディスプレイ３３のデータモニターエリア６１の第一行の「ＤＡＴＡ０  ８０  ０６  ００  ０１００  ００  ４０  ００」という表示内容に対応したものである。すなわち、データモニターエリア６１の第一行の「ＤＡＴＡ０  ８０  ０６  ００  ０１  ００  ００  ４０  ００」には「８０」という１６進数の数字コードが含まれている。この「８０」という数字コードを、バイナリコードで表すと「１０００００００」となる。
【００７６】
ＵＳＢ規格では、前述の「デバイスリクエスト」と称するパケット群を用いてホストコントローラから周辺装置（デバイス）へデータ群を送ろうするとき、データパケットのＤＡＴＡフィールドの第１バイトの最上位ビットを「０」とすることが定められている。また、ホストコントローラが、周辺装置（デバイス）に対して、周辺装置（デバイス）からホストコントローラへデータ群を送るように要求（デバイスリクエスト）するとき、データパケットのＤＡＴＡフィールドの第１バイトの最上位ビットを「１」とすることが定められている。
【００７７】
「８０」という数字コードを、バイナリコードで表したときの「１０００００００」というコードのうちの最上位ビットのデータが「１」であるので、解釈プログラム３８は、ホストコントローラが周辺装置（デバイス）に対して、周辺装置（デバイス）からホストコントローラへデータ群を送出するように要求しているということを知ることができる。これに基づき、パケット詳細表示部４７に「リクエストの方向  デバイスからホスト」という表示がされているのである。
【００７８】
またＵＳＢ規格では、デバイスリクエストのリクエストタイプが「標準リクエスト」であるときには、データパケットのＤＡＴＡフィールドの２番目のビットを「０」に、３番目のビットを「０」にすることが定められている。また、デバイスリクエストのリクエストタイプが「ベンダリクエスト」であるときには、データパケットのＤＡＴＡフィールドの２番目のビットを「１」に、３番目のビットを「０」にすることが定められている。
【００７９】
「８０」という数字コードを、バイナリコードで表したときの「１０００００００」というコードのうちの２番目のビットのデータが「０」であり、３番目のビットのデータが「０」であるので、解釈プログラム３８は、リクエストタイプが「標準リクエスト」であることを知ることができる。これに基づき、パケット詳細表示部４７に「リクエストタイプ  標準リクエスト」という表示がされているのである。
【００８０】
図９において、ディスプレイ３３の画面には「−」のボタン４６が表示されている。ポインタ４５をこのボタン４６上に移動させて、マウス３４のボタン３４ａを操作（クリック）すると、パケット詳細表示部４７がディスプレイ３３の画面から消去されるとともに、ボタン４６の表示が「−」から「＋」に戻る。
【００８１】
データモニタエリア６１の第二行には「ＩＮ」などの表示がされ、第三行には「ＯＵＴ」などの表示がされている。「ＩＮ」と表示された表示エリア６４の背景色はブルーであり、「ＯＵＴ」と表示された表示エリア６５の背景色は黄色である。これらの着色はいずれも、表示カテゴリーに応じて色で分別表示されたものである。データモニタエリア６１の最終行には、「ＩＮ」などの表示がされている。
【００８２】
解釈プログラム３８は、ハードディスク３２からのパラレルデータを、パケット単位で次々とディスプレイ３３に表示する。新たにハードディスク３２から送られてきたパラレルデータを、ディスプレイ３３の画面の表示を上方にスクロールしつつ、一連のパケットを一単位としてディスプレイ３３の最終行に追加してゆく。つまり、最終行の表示は、ハードディスク３２から送られてきた最も新しいデータに基づくものである。
【００８３】
このようにして、新しく取り込んだパラレルデータをディスプレイ３３に新しく表示させてゆく一方、パラレルポートドライバ３５は、一時記憶部５にまだ取り出していないパラレルデータが残っているか否かを判定し、まだ取り出していないパラレルデータが一時記憶部５に残っていると判断された場合は、解釈プログラム３８がパラレルポート１４に対して要求信号を送出する。そして、この要求信号に応答してデータ取出記憶部１１からパラレルポート１４に送出されてきたパラレルデータを取り込んで、ハードディスク３２に記憶させる。このようにして、次々と、一時記憶装置５に記憶されたパラレルデータについての分別表示がなされてゆく。
【００８４】
図１０は、解釈プログラム３８の有する、データ分別表示のための部分（プログラムモジュール）の処理手順を示すフローチャートである。図１０のフローチャートに従って説明すると、まず、切り出されたパケットからパラレルデータを取得する（Ｓ１１）。次に、そのパラレルデータに一致するパラレルデータをテーブルから検索する（Ｓ１２）。次に、検索したパラレルデータに対応する表示カテゴリーを取得する（Ｓ１３）。そして、取得した表示カテゴリーに応じた表示方法によって、パラレルデータを表示する（Ｓ１４）。
【００８５】
図１１は、解釈プログラム３８の有する、データ詳細表示部４７の表示のための部分（プログラムモジュール）の処理手順を示すフローチャートである。図１１のフローチャートに従って説明すると、取得したパラレルデータ（Ｓ２１）を数字コードでディスプレイに表示させる（Ｓ２２）。次に、ディスプレイ上の所定のエリアに、該数字コードに対応したボタンを設定する（Ｓ２３）。
【００８６】
そして、マウス３４のボタン３４ａがクリックされたことを検出すると（Ｓ２４）、ポインタ４５がボタン４６上にあるか否かを判定する（Ｓ２５）。ボタン４６上にある場合は、表示した数字コードの論理的意味を示す文字列を所定のテーブルから検索し（Ｓ２６）、これら文字列などを含むデータ詳細表示部４７をディスプレイ３３上に表示させる（Ｓ２７）。このとき参照するテーブルとは、数字コードと、その数字コードに対応してその論理的意味を示す文字列とを関係づけたテーブルである。
【００８７】
さらに、マウス３４のボタン３４ａがクリックされたことを検出する（Ｓ２８）と、ポインタ４５がボタン４６上にあるか否かを判定する（Ｓ２９）。ボタン４６上にある場合は、ディスプレイ３３の画面からデータ詳細表示部４７を消去する（Ｓ３０）。
【００８８】
上述したとおり、データ分別表示装置は、テーブル４４を参照しつつ特定のパラレルデータを検索したり、ディスプレイ３３に数字コードや文字列を表示させたりする処理を実行しているのであるが、このような処理には比較的時間がかかる。これに対してデータ取出記憶装置は、外部機器（データ取出記憶部１１）からパラレルデータを取り込んでハードディスク３２に記憶しているだけなので、１つのパラレルデータに対する処理時間はデータ分別表示装置よりも少なくて済む。従って、例えば、データ取出記憶装置が、必要なパラレルデータの全てをデータ取出記憶部１１からハードディスク３２に移した後に、データ取出記憶装置やデータ取出記憶部１１を停止させて、データ分別表示装置によってディスプレイ３３に数字コードや文字列を分別表示させるようにしてもよい。このようにすると、データ分別表示装置は、かなり時間的な余裕を持って、分別表示の処理をすることができる。もちろん、データ取出記憶装置やデータ取出記憶部１１を稼動させつつ、データ分別表示装置を稼動させるようにしてもよい。
【００８９】
上述したように、本実施形態ではパーソナルコンピュータ３０によって、データ取出記憶装置とデータ分別表示装置とが構成されている。しかしこれらの装置は、必ずしもパーソナルコンピュータによって構成する必要はない。
【００９０】
また本実施形態では、一時記憶部５に記憶されたパラレルデータを、パラレルポート１３とパラレルポート１４とを介して、パーソナルコンピュータ３０に送出するようにした。つまり、データ取出記憶部１１とパーソナルコンピュータ３０との間で、パラレルデータの送受が行われた。しかし、両者間で必ずしもパラレルデータの送受をする必要はない。例えば、一時記憶部５に記憶されているパラレルデータをパラレル−シリアル変換し、データ取出記憶部１１からパーソナルコンピュータ３０へシリアルデータを送出するようにしてもよい。
【００９１】
また本実施形態では、ディスプレイ３３への表示方法を決定するために、テーブル４４を用いた。つまり、テーブル４４によって対象データとその対象データに対応した表示方法との関係付けがされていたので、表示方法を決定するためにそのテーブル４４を検索した。しかし、対象データとその対象データに対応した表示方法との関係付けは、テーブル以外の手段によってなされてもよい。例えばイフ文やスイッチ文のような逐次比較・判定方法を適用した解釈プログラムを構成し、パラレルコードからその逐次比較・判定方法によって表示方法が決定されるようにしてもよい。
【００９２】
また本実施形態では、データ分別表示装置はパラレルデータを分別表示したが、分別表示の対象となるデータはパラレルデータだけでなく、例えばシリアルデータであってもよい。
【００９３】
また本実施形態では、図１に示すように、通信バス監視装置２０を、ホストコントローラ（パーソナルコンピュータ５２）とハブ５５との間に配された通信バス１に接続して、輻輳するデータを監視する例を示した。しかし、通信バス監視装置２０は、ハブ５５と第１の周辺装置５３との間に配された通信バス１や、ハブ５５と第２の周辺装置５４との間に配された通信バス１に接続することもできる。
【００９４】
また本実施形態では、ホストコントローラとしてのパーソナルコンピュータ５２とは別個に、データ取出記憶装置およびデータ分別表示装置としてのパーソナルコンピュータ３０が設けられている。しかし、１台のパーソナルコンピュータが、ホストコントローラとして、かつ、データ取出記憶装置およびデータ分別表示装置として機能するように構成してもよい。
【００９５】
【発明の効果】
本発明は以上説明したような形態で実施され、以下に記載されるような効果を奏する。
（１）パラレルデータをメモリ装置に蓄積しておくことができる。よって、高速シリアル通信バス上を伝送するデータを蓄積しつつ、蓄積されたデータを取り出して、比較的時間をかけて処理することが可能となる。
（２）データが次々と第１記憶エリアに蓄積されてゆく。この蓄積されたデータを必要とする表示方法決定手段は、比較的時間をかけてこのデータを処理することが可能となる。
（３）データの種類に対応した表示方法によってディスプレイにデータが表示される。よって、データの意味内容を理解しやすくなる。
【図面の簡単な説明】
【図１】本願発明の一実施形態たる通信バス監視装置が、通信バスに接続された状態を示すブロック図である。
【図２】通信バスと通信バス監視装置との間の接続状態を示す接続図である。
【図３】通信バス監視装置の機能ブロック図である。
【図４】データ取出記憶装置として機能する部分の処理手順を示すフローチャートである。
【図５】ハードディスクの記憶エリアに記憶された複数のパラレルデータを概念的に示す図である。
【図６】ハードディスクに記憶されたテーブルの図である。
【図７】ＵＳＢ規格に基づく、各ＰＩＤフィールドのパラレルコードとその内容等を示した表である。
【図８】ディスプレイの画面表示の例を示す図である。
【図９】パケット詳細表示部が表れたときのディスプレイの画面表示の図である。
【図１０】データ分別表示のための部分（プログラムモジュール）の処理手順を示すフローチャートである。
【図１１】データ詳細表示部４７の表示のための部分（プログラムモジュール）の処理手順を示すフローチャートである。
【符号の説明】
１  通信バス
２  データ取出部
３  データ処理部
４  記録順序発生部
５  一時記憶部
６  出力順序発生部
１１  データ取出記憶部
１３,１４  パラレルポート
１６  データ有無判別部
２０  通信バス監視装置
３０  パーソナルコンピュータ
３１  オペレーティングシステム
３２  ハードディスク
３３  ディスプレイ
３４  マウス
３５  パラレルポートドライバ
３８  解釈プログラム
【図１】
0003662512.tif 000002
【図２】
0003662512.tif 000003
【図３】
0003662512.tif 000004
【図４】
0003662512.tif 000005
【図５】
0003662512.tif 000006
【図６】
0003662512.tif 000007
【図７】
0003662512.tif 000008
【図８】
0003662512.tif 000009
【図９】
0003662512.tif 000010
【図１０】
0003662512.tif 000011
【図１１】
0003662512.tif 000012