(57)【要約】【課題】大容量の記憶装置を用いることなく、コンピュータ装置のバスの作動状態を表す複数組のデータ順次記憶して順次外部に送信するバス監視装置を提供すること。【解決手段】バス監視装置１０は、ＵＳＢターゲットインターフェース１１を介して、ターゲットコンピュータＴおよびプリンタＰとＵＳＢを用いて接続している。そして、ＵＳＢターゲットインターフェース１１にて取得されたＵＳＢデータストリーム、ＵＳＢバス電圧値およびＵＳＢバス電流値を含む所定のパケットを作成する。同作成されたパケットは、調停器１６ｅにより書き込みおよび読み出しのタイミングが調整されて、データメモリ１７に順次書き込まれるとともに、同記憶したパケットを順次読み出される。読み出されたパケットは、ＵＳＢホストインターフェース１２を介して、ホストコンピュータＨに送信される。【選択図】　図２
2004110409.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ装置のバスを流れる信号によって表されるデータおよび同信号の特性を表すデータを一時的に記憶するためのメモリと、
前記バスに接続されて、前記バスに流れる信号に基づいて、信号によって表されるデータと、信号の特性を表すデータとをそれぞれ独立して取得するデータ取得手段と、
前記データ取得手段によって取得された複数組のデータを前記メモリに順次書き込むとともに、前記メモリに記憶されている複数組のデータを順次読み出す書込み・読出し手段と、
前記書込み・読出し手段によって読み出された複数組のデータを送信するデータ送信手段とを備えたバス監視装置。
【請求項２】
前記データ取得手段は、
前記信号によって表されるデータを一時的に記憶する第１バッファーメモリと、
前記信号の特性を表すデータを一時的に記憶する第２バッファーメモリとを備えた前記請求項１に記載したバス監視装置。
【請求項３】
前記書込み・読出し手段により前記メモリに書き込まれる複数組のデータは、
時間軸で同期化させるためのタイムスタンプが付加されたパケットである前記請求項１に記載したバス監視装置。
【請求項４】
前記データ取得手段により取得される信号によって表されるデータは、前記バス上を流れるデータストリームであり、
前記信号の特性を表すデータは、前記バス上を流れる信号の電圧値または電流値である前記請求項１に記載したバス監視装置。
【請求項５】
前記書込み・読出し手段は、
前記データ取得手段により取得された複数組のデータの書き込みタイミングと、読み出しタイミングとを調整する調整手段を有しており、前記複数組のデータの書き込みタイミングに比して、読み出しタイミングを優先する前記請求項１に記載したバス監視装置。
【請求項６】
前記データ取得手段および前記データ送信手段のデータ送信方式に、シリアルデータ送信規格であるＵＳＢ２．０規格に基づいたデータ送信方式が採用した前記請求項１に記載したバス監視装置。
【請求項７】
前記請求項６に記載したバス監視装置において、
前記データ取得手段および前記データ送信手段は、
ＵＳＢ２．０規格に基づいたＵＳＢ−Ａに対応するＵＳＢ−Ａ対応ポートまたはＵＳＢ−Ｂに対応するＵＳＢ−Ｂ対応ポートのうちの少なくとも一方を備えることを特徴とするバス監視装置。
【請求項８】
前記請求項１ないし前記請求項７のうちのいずれか一つに記載したバス監視装置において、
前記書込み・読出し手段が、
前記メモリ、前記データ取得手段および前記データ送信手段と接続されて、チップ上に予め配列された素子を選択的に配線して、所定の回路を形成可能な論理ＬＳＩ上に形成された回路であることを特徴とするバス監視装置。
【請求項９】
前記請求項８に記載したバス監視装置において、
さらに、前記論理ＬＳＩ上に形成される回路を作製するための回路データを外部から取得する回路データ取得手段を備えることを特徴とするバス監視装置。
【請求項１０】
前記請求項１ないし前記請求項９のうちのいずれか一つに記載したバス監視装置において、
さらに、外部から入力されるトリガーデータを取得するトリガーデータ取得手段を備え、
前記トリガーデータ取得手段が取得したトリガーデータを、前記書込み・読出し手段が前記メモリに書き込むとともに、前記メモリに記憶されたトリガーデータを読み出すことを特徴とするバス監視装置。
【請求項１１】
前記トリガーデータ取得手段のデータ送信方式に、パラレルデータ送信方式を採用した前記請求項１０に記載したバス監視装置。
【請求項１２】
前記コンピュータ装置を第１のコンピュータおよびコンピュータ周辺機器によって構成し、
前記第１のコンピュータのバスと、前記コンピュータ周辺機器のバスとが前記データ取得手段を介して互いに接続されるとともに、前記データ送信手段に、前記送信される複数組のデータを取得する第２のコンピュータが接続される前記請求項１ないし前記請求項１１のうちのいずれか一つに記載したバス監視装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ装置のバスに接続して、同バス上を流れる信号によって表されるデータおよび信号の特性を表すデータを監視するバス監視装置に関する。
【０００２】
【従来の技術】
従来から、コンピュータシステムのバス上を流れる信号やデータを監視する機器として、バス解析装置が知られている。このバス解析装置は、コンピュータシステムのバスに接続して使用し、所定のトリガーデータに基づいて、バス上を伝送する転送データや複数の信号を取得する。そして、取得した転送データの転送数や信号の値を取得し、取得した結果を外部（例えば、コンピュータ）に出力する（例えば、特許文献１参照）。
【０００３】
【特許文献１】
特開２０００−１１２８３９号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、従来のバス解析装置においては、データや信号の波形を表す波形データを連続して長時間記憶するためには、別途大容量の記憶容量を備えた記憶装置が必要であり、バス解析装置が高価になる。また、別途記憶した波形データは、同波形データを解析して処理するコンピュータに転送する必要があり、記憶したデータが大きければ、転送に時間がかかる場合がある。また、転送データや複数の信号を取得するための回路を書き換えることが難しく、このため、所定のトリガーを取得するには、別途複雑なトリガー回路が必要となる場合がある。
【０００５】
【発明の概略】
本発明は、上記した問題に対処するためになされたものであり、その目的は、大容量の記憶装置を用いることなく、コンピュータ装置のバスを流れる信号によって表されるデータおよび信号の特性を表す複数組のデータを取得し、同取得した複数組のデータを順次外部に送信するバス監視装置を提供することにある。
【０００６】
本発明の特徴は、コンピュータ装置のバスを流れる信号によって表されるデータおよび同信号の特性を表すデータを一時的に記憶するためのメモリと、前記バスに接続されて、前記バスに流れる信号に基づいて、信号によって表されるデータと、信号の特性を表すデータとをそれぞれ独立して取得するデータ取得手段と、前記データ取得手段によって取得された複数組のデータを前記メモリに順次書き込むとともに、前記メモリに記憶されている複数組のデータを順次読み出す書込み・読出し手段と、前記書込み・読出し手段によって読み出された複数組のデータを送信するデータ送信手段とを備えたことにある。
【０００７】
この場合、前記データ取得手段は、前記信号によって表されるデータを一時的に記憶する第１バッファーメモリと、前記信号の特性を表すデータを一時的に記憶する第２バッファーメモリとを備えるとよい。前記書込み・読出し手段により前記メモリに書き込まれる複数組のデータは、時間軸で同期化させるためのタイムスタンプが付加されたパケットであるとよい。前記データ取得手段により取得される信号によって表されるデータは、前記バス上を流れるデータストリームであり、前記信号の特性を表すデータは、前記バス上を流れる信号の電圧値または電流値であるとよい。前記書込み・読出し手段は、前記データ取得手段により取得された複数組のデータの書き込みタイミングと、読み出しタイミングとを調整する調整手段を有しており、前記複数組のデータの書き込みタイミングに比して、読み出しタイミングを優先するようにするとよい。前記データ取得手段および前記データ送信手段のデータ送信方式に、シリアルデータ送信規格であるＵＳＢ２．０規格に基づいたデータ送信方式が採用されるとよい。この場合、前記データ取得手段および前記データ送信手段は、ＵＳＢ２．０規格に基づいたＵＳＢ−Ａに対応するＵＳＢ−Ａ対応ポートまたはＵＳＢ−Ｂに対応するＵＳＢ−Ｂ対応ポートのうちの少なくとも一方を備えるとよい。
【０００８】
また、前記書込み・読出し手段が、前記メモリ、前記データ取得手段および前記データ送信手段と接続されて、チップ上に予め配列された素子を選択的に配線して、所定の回路を形成可能な論理ＬＳＩ上に形成された回路であるとよい。この場合、さらに、前記論理ＬＳＩ上に形成される回路を作製するための回路データを外部から取得する回路データ取得手段を備えるとよい。さらに、外部から入力されるトリガーデータを取得するトリガーデータ取得手段を備え、前記トリガーデータ取得手段が取得したトリガーデータを、前記書込み・読出し手段が前記メモリに書き込むとともに、前記メモリに記憶されたトリガーデータを読み出すようにするとよい。この場合、前記トリガーデータ取得手段のデータ送信方式に、パラレルデータ送信方式が採用されるとよい。さらに、前記コンピュータ装置を第１のコンピュータおよびコンピュータ周辺機器によって構成し、前記第１のコンピュータのバスと、前記コンピュータ周辺機器のバスとが前記データ取得手段を介して互いに接続されるとともに、前記データ送信手段に、前記送信される複数組のデータを取得する第２のコンピュータが接続されるとよい。
【０００９】
これらの特徴によれば、データ取得手段により、コンピュータのバス上を流れる信号に基づいて、同信号によって表されるデータおよび同信号の特性を表すデータをそれぞれ独立して取得することができる。また、書込み・読出し手段により、前記データ取得手段が取得した複数組のデータをメモリに順次書き込むとともに、記憶された複数組のデータを順次読み出すことができる。また、データ送信手段により、前記書込み・読出し手段が読み出した複数組のデータを送信することができる。これにより、バス監視装置は、取得した複数組のデータをメモリに順次書き込みながら順次読み出すことができる。このため、バス監視装置に大容量の記憶装置を設ける必要がない。したがって、バス監視装置を安価とすることができる。
【００１０】
また、データ取得手段は、バスから取得するデータごとにバッファーメモリを備えており、取得したデータを一時的に記憶しておくことができる。これにより、取得したデータを複数組のデータとして多重化することができる。また、書込み・読出し手段は、書き込みタイミングと読み出しタイミングとを調整する調整手段を備えており、読み出しタイミングが優先される。これにより、メモリに記憶されたデータが優先的に送出されるため、メモリに記憶されるデータ量を小さくすることができる。したがって、これによっても、メモリの記憶容量を小さくすることができて、安価とすることができる。
【００１１】
また、書込み・読出し手段によりメモリに書き込まれる複数組のデータをタイムスタンプが付加されたパケットとすることができる。これにより、例えば、外部に設けたコンピュータ装置がパケットを取得して処理する際に、時間軸上で同期化して処理することができるため、バスの使用状態を経時的に観察することができる。また、データ取得手段により取得されるデータを、データストリーム、電圧値および電流値として取得することができる。また、データ取得手段に第１のコンピュータと周辺機器を接続することができ、データ送信手段に第２のコンピュータを接続することができる。これにより、第１のコンピュータのバスと周辺機器のバスとの間で送受信される信号を取得することができる。また、データ送信手段は第２のコンピュータに複数組のデータを送信することができる。このため、例えば、第２のコンピュータにより、データストリームから周辺機器の動作実行状態を確認し、電圧値または電流値から周辺機器の作動状態を確認することができる。したがって、例えば、周辺機器の開発段階において、有効なデータを取得することができる。
【００１２】
また、データ取得手段およびデータ送信手段のデータ送信方式にＵＳＢ２．０規格が採用することができるため、データの取得およびデータの送信を高速で行うことができる。このため、取得したデータを送信するまでの遅延時間を最小限に抑えることができて、連続的にデータを取得することができるとともに、取得したデータをほぼリアルタイムにて送信することができる。したがって、取得して記憶したデータを改めて送信する必要がなく、記憶したデータを送信するための送信時間も無くすことができる。
【００１３】
また、書込み・読出し手段を回路として、所定の回路の形成が可能な論理ＬＳＩ上に形成することができる。さらに、バス監視装置に設けた回路データ取得手段により、外部から書込み・読出し手段の回路データを供給することができる。これにより、書込み・読出し手段の回路を自由に書き換えることができて、必要な回路を安価にかつ容易に作製することができる。さらに、トリガーデータ取得手段により、外部から入力されるトリガーデータを連続的に取得することができる。また、トリガー条件を予め設定することにより、例えば、ソフトウェアーを利用して検出することができる。さらに、トリガーデータ取得手段は、パラレルデータ送信方式を採用することができる。このため、外部で作成したトリガーデータを容易にバス監視装置に供給することができる。
【００１４】
【発明の実施の形態】
以下に、本発明の一実施形態を図面を用いて説明する。図１は、ターゲットコンピュータＴ、プリンタＰおよびホストコンピュータＨが、本発明に係るバス監視装置１０とＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）を用いて接続された状態をブロック図により示している。
【００１５】
ターゲットコンピュータＴは、図示しないＵＳＢバスに接続されたＵＳＢケーブルを介して、周辺機器の一つであるプリンタＰに各種制御信号および印字データを送信する。また、ターゲットコンピュータＴは、プリンタＰから、印字実行状態データなどのＵＳＢデータストリーム、作動電圧値信号によって表されるＵＳＢバス電圧値、作動電流値信号によって表されるＵＳＢバス電流値を受信する。なお、以下の説明のおいて、これらＵＳＢデータストリーム、ＵＳＢバス電圧値およびＵＳＢバス電流値をまとめて作動データと記載する。プリンタＰは、図示しないＵＳＢバスに接続されたＵＳＢケーブルを介して、ターゲットコンピュータＴから送信された印字データを受信するとともに、受信した印字データに基づいて印字する。また、プリンタＰは、印字の実行に伴う作動データをターゲットコンピュータＴに対して送信する。
【００１６】
ホストコンピュータＨは、図示しないＵＳＢバスに接続されたＵＳＢケーブルを介して、バス監視装置１０から供給される作動データをパケットとして受信する。そして、ホストコンピュータＨは、受信したパケットに基づいて、ターゲットコンピュータＴおよびプリンタＰの作動状態を把握する。
【００１７】
バス監視装置１０は、図２に示すように、ターゲットコンピュータＴおよびプリンタＰと接続するためのＵＳＢターゲットインターフェース１１、ホストコンピュータＨと接続するためのＵＳＢホストインターフェース１２および外部から入力される外部トリガーデータを取得するためのパラレルインターフェース１３を備えている。ＵＳＢターゲットインターフェース１１は、ターゲットコンピュータＴのＵＳＢバスとプリンタＰのＵＳＢバスとをＵＳＢケーブルにより連結して接続し、これらのＵＳＢバス上を伝送する作動データをそれぞれ独立して取得する。
【００１８】
ＵＳＢホストインターフェース１２は、ホストコンピュータＨのＵＳＢバスにＵＳＢケーブルにより接続されて、作動データを含むパケットを供給するとともに、ホストコンピュータＨから供給された制御用プログラムおよび内部回路データを取得する。このため、ＵＳＢホストインターフェース１２は、図３に示すように、伝送するデータに応じて、エンドポイント１２ａ、エンドポイント１２ｂおよびエンドポイント１２ｃの３つのエンドポイント（終端点）が設けられている。エンドポイント１２ａは、ホストコンピュータＨから制御用プログラムおよび内部回路データを取得するためのエンドポイントである。エンドポイント１２ｂは、ＵＳＢバス上を転送するＵＳＢデータストリームを含むパケットをホストコンピュータＨに伝送するためのエンドポイントである。エンドポイント１２ｃは、ＵＳＢバス上を伝送するＵＳＢ電圧値信号、ＵＳＢ電流値信号または外部トリガーデータを含むパケットを伝送するエンドポイントである。
【００１９】
また、ＵＳＢターゲットインターフェース１１およびＵＳＢホストインターフェース１２は、データのシリアル伝送規格であるＵＳＢ２．０規格を採用している。このＵＳＢ２．０規格は、ＵＳＢ１．１規格に比してデータの高速伝送が可能とされている。そして、その形態には、ホスト（ＵＳＢ−Ａ）と、ターゲット（ＵＳＢ−Ｂ）がある。これにより、本実施形態のＵＳＢターゲットインターフェース１１は、ＵＳＢ−Ａに対応するＵＳＢ−Ａ対応ポートとＵＳＢ−Ｂに対応するＵＳＢ−Ｂ対応ポートを備える構造とされている。そして、ＵＳＢ−Ａ対応ポートにはプリンタＰが接続され、ＵＳＢ−Ｂ対応ポートにはターゲットコンピュータＴが接続されている。また、ＵＳＢホストインターフェース１２は、ＵＳＢ―Ｂ対応ポートを備える構造とされており、ホストコンピュータＨが接続されている。パラレルインターフェース１３は、外部装置（例えば、パーソナルコンピュータ）にて作成された外部トリガーデータを入力するためのインターフェースである。
【００２０】
また、バス監視装置１０は、ＣＰＵ１４、プログラムメモリ１５、ＦＰＧＡ１６およびデータメモリ１７を備えている。ＣＰＵ１４は、プログラムメモリ１５にホストコンピュータＨから供給されて記憶された制御用プログラムを実行して、バス監視装置１０の動作を統括的に制御する。プログラムメモリ１５は、ホストコンピュータＨから供給された制御用プログラムを記憶する。
【００２１】
ＦＰＧＡ１６は、論理ＬＳＩであり、チップ上に予め配列された複数の素子（ゲート）を、ホストコンピュータＨから供給される内部回路データに基づいて、それぞれ配線することにより、さまざまな機能を実現するものである。そして、ＦＰＧＡ１６には、さまざまな機能を実現するために、図４に実線により概略的に示すように、ＣＰＵ１４のＣＰＵバスと接続して、内部回路データを取得するためのＣＰＵバスインターフェース１６ａが予め実装されている。
【００２２】
また、ＦＰＧＡ１６には、ＵＳＢバス上を伝送している作動データおよびパラレルインターフェース１３から入力された外部トリガーデータを含むパケットを記憶処理するために、クロックジェネレータ１６ｂ、信号用バッファーメモリ１６ｃおよびデータ用バッファーメモリ１６ｄが予め実装されている。クロックジェネレータ１６ｂは、クロックパルスを発生するものである。信号用バッファーメモリ１６ｃは、ターゲットコンピュータＴおよびプリンタＰのＵＳＢバスから取得されたＵＳＢバス電圧値およびＵＳＢバス電流値、または入力された外部トリガーデータを順次一時的に記憶する。データ用バッファーメモリ１６ｄは、ターゲットコンピュータＴおよびプリンタＰのＵＳＢバス上を伝送しているＵＳＢデータストリームを順次一時的に記憶する。
【００２３】
また、ＦＰＧＡ１６には、ＦＰＧＡ１６内を伝送するパケットの経路を制御するために、調停器（Ａｒｂｉｔｒａｔｏｒ）１６ｅとデータマルチプレクサー１６ｆとが予め実装されている。調停器１６ｅは、パケットの送信または供給すべき優先順位に基づいて伝送されるパケットを特定し、パケットの送信タイミングまたは供給タイミングを調整する。データマルチプレクサー１６ｆは、調停器１６ｅにより調整された送信タイミングまたは供給タイミングに基づいて、パケットの送信および供給を選択する回路である。
【００２４】
さらに、ＦＰＧＡ１６には、データメモリ１７に記憶されたパケットをホストコンピュータＨに送信するために、データ用エンドポイントバッファーメモリ１６ｇと信号用エンドポイントバッファーメモリ１６ｈとが予め実装されている。データ用エンドポイントバッファーメモリ１６ｇは、エンドポイント１２ｂに接続されており、データマルチプレクサー１６ｆを介して供給されたＵＳＢデータストリームを含むパケットを一時的に記憶する。信号用エンドポイントバッファーメモリ１６ｈは、エンドポイント１２ｃに接続されており、データマルチプレクサー１６ｆを介して供給されたＵＳＢバス電圧値、ＵＳＢバス電流値または外部入力されたトリガー信号を含むパケットを一時的に記憶する。
【００２５】
ふたたび図２に戻り、データメモリ１７は、ＦＰＧＡ１６から供給されたＵＳＢデータストリーム、ＵＳＢバス電圧値、ＵＳＢバス電流値および外部トリガーデータを含むパケットを、供給された順に記憶する。また、データメモリ１７は、記憶したパケットの供給要求に基づいて、ＦＰＧＡ１６を介して、記憶したパケットを記憶した順にＵＳＢホストインターフェース１２に供給する。
【００２６】
次に、上記のように構成したバス監視装置１０が、ホストコンピュータＨから制御用プログラムおよび内部回路データを取得し、ＦＰＧＡ１６に所定の回路を形成する動作について、以下に詳細に説明する。
【００２７】
ホストコンピュータＨは、制御用プログラムおよび内部回路データをバス監視装置１０に供給する。この動作を図５に基づいて説明する。まず、ホストコンピュータＨは、ＵＳＢホストインターフェース１２のエンドポイント１２ａを利用して、バス監視装置１０に対して、制御用プログラムを供給する。バス監視装置１０においては、ＣＰＵ１４が、供給された制御用プログラムを取得するとともに、取得した制御用プログラムをプログラムメモリ１５に記憶する。次に、ＣＰＵ１４は、プログラムメモリ１５に記憶した制御用プログラムを実行し、内部回路データの供給をホストコンピュータＨに対して要求する。
【００２８】
ホストコンピュータＨは、ＣＰＵ１４からの要求に基づいて、ＦＰＧＡ１６に形成すべき回路の内部回路データをＣＰＵ１４に供給する。ＣＰＵ１４は、ホストコンピュータＨから内部回路データが供給されると、ＦＰＧＡ１６をコンフィグレーションモードとし、ＣＰＵバスインターフェース１６ａを介して、内部回路データを供給する。ＦＰＧＡ１６は、供給された内部回路データに基づいてチップ上に配列された素子（ゲート）を配線し、図４に破線によって示すように、Ａ／Ｄ波形取り込み処理機能部１６ｉ、ＵＳＢストリーム取り込み処理機能部１６ｊ、メモリ制御機能部１６ｋおよびパケット取り出し処理機能部１６ｍを形成する。
【００２９】
Ａ／Ｄ波形取り込み処理機能部１６ｉは、ＵＳＢターゲットインターフェース１１を介して、ターゲットコンピュータＴのＵＳＢバスとプリンタＰのＵＳＢバス間を伝送する所定の信号波形に基づいて、信号用バッファーメモリ１６ｃの記憶動作を制御する。
【００３０】
すなわち、Ａ／Ｄ波形取り込み処理機能部１６ｉは、ＵＳＢバス電圧値またはＵＳＢバス電流値の伝送に伴う所定の信号波形（例えば、立ち上がり波形など）を監視する。Ａ／Ｄ波形取り込み処理機能部１６ｉは、所定の信号波形を検知すると、ＵＳＢバス電圧値またはＵＳＢバス電流値を一旦取得する。そして、Ａ／Ｄ波形取り込み処理機能部１６ｉは、取得したＵＳＢバス電圧値またはＵＳＢバス電流値を所定のパケットとして、信号用バッファーメモリ１６ｃに順次記憶する。
【００３１】
さらに、Ａ／Ｄ波形取り込み処理機能部１６ｉは、信号用バッファーメモリ１６ｃに順次記憶したパケットの送信動作を制御する。すなわち、Ａ／Ｄ波形取り込み処理機能部１６ｉは、信号用バッファーメモリ１６ｃに一時的に記憶したパケットをデータメモリ１７に送信するパケット送信要求を、調停器１６ｅに対して送信する。そして、調停器１６ｅによりパケットの送信要求が許可されると、信号用バッファーメモリ１６ｃに記憶したパケットのうち、最先に記憶されたパケットから順に、データマルチプレクサー１６ｆを介してデータメモリ１７に対して送信する。
【００３２】
ＵＳＢストリーム取り込み処理機能部１６ｊは、ＵＳＢターゲットインターフェース１１を介して、ターゲットコンピュータＴのＵＳＢバスとプリンタＰのＵＳＢバス間を伝送する所定の信号波形に基づいて、データ用バッファーメモリ１６ｄの記憶動作を制御する。
【００３３】
すなわち、ＵＳＢストリーム取り込み処理機能部１６ｊは、ＵＳＢデータストリームの伝送に伴う所定の信号波形（例えば、同期パターンなど）を監視する。ＵＳＢストリーム取り込み処理機能部１６ｊは、所定の信号波形を検知すると、ＵＳＢデータストリームを一旦取得する。そして、ＵＳＢストリーム取り込み処理機能部１６ｊは、取得したＵＳＢデータストリームを所定のパケットとして、データ用バッファーメモリ１６ｄに順次記憶する。
【００３４】
さらに、ＵＳＢストリーム取り込み処理機能部１６ｊは、データ用バッファーメモリ１６ｄに順次記憶したパケットの送信動作を制御する。すなわち、ＵＳＢストリーム取り込み処理機能部１６ｊは、データ用バッファーメモリ１６ｄに記憶したパケットをデータメモリ１７に送信するパケット送信要求を、調停器１６ｅに対して送信する。そして、調停器１６ｅによりパケットの送信要求が許可されると、データ用バッファーメモリ１６ｄに記憶したパケットのうち、最先に記憶されたパケットから順に、データマルチプレクサー１６ｆを介してデータメモリ１７に対して送信する。
【００３５】
メモリ制御機能部１６ｋは、データメモリ１７のパケット記憶動作およびパケット供給動作を制御する。すなわち、メモリ制御機能部１６ｋは、データマルチプレクサー１６ｆを介して、Ａ／Ｄ波形取り込み処理機能部１６ｉまたはＵＳＢストリーム取り込み処理機能部１６ｊから伝送されたパケットを伝送された順にデータメモリ１７に記憶する。また、メモリ制御機能部１６ｋは、後述するようにパケット取り出し処理機能部１６ｍからのパケット供給要求が調停器１６ｅにより許可されると、データメモリ１７に記憶したパケットのうち、最先に記憶されたパケットから順に供給する。
【００３６】
パケット取り出し処理機能部１６ｍは、データメモリ１７から供給されたパケットを取得し、取得したパケットをデータ用エンドポイントバッファーメモリ１６ｇまたは信号用エンドポイントバッファーメモリ１６ｈに一時的に記憶する。すなわち、パケット取り出し処理機能部１６ｍは、調停器１６ｅに対して、データメモリ１７に記憶されたパケットの供給要求を送信する。そして、調停器１６ｅにより、供給要求が許可されると、パケット取り出し処理機能部１６ｍは、データマルチプレクサー１６ｆを介してデータメモリ１７からパケットを一旦取得する。そして、取得したパケットがＵＳＢデータストリームのパケットであれば、データ用エンドポイントバッファーメモリ１６ｇに供給する。また、取得したパケットがＵＳＢバス電圧値、ＵＳＢバス電流値または外部入力されたトリガー信号のパケットであれば、信号用エンドポイントバッファーメモリ１６ｈに供給する。
【００３７】
次に、上記のようにＦＰＧＡ１６に内部回路を形成したバス監視装置１０が、ターゲットコンピュータＴとプリンタＰとの間で伝送される作動データすなわちＵＳＢバス電圧値、ＵＳＢバス電流値およびＵＳＢデータストリームを取得し、ホストコンピュータＨに対して取得したデータを含むパケットを供給する動作を、図６に基づいて説明する。
【００３８】
バス監視装置１０は、ＵＳＢターゲットインターフェース１１に接続されたターゲットコンピュータＴのＵＳＢバスおよびプリンタＰのＵＳＢバス間を伝送する作動電圧値信号、作動電流値信号およびＵＳＢデータストリームの伝送に伴う伝送信号を所定のサンプリングレート（例えば、１００ｋＨｚ）にて監視する。ここで、監視される作動電圧値信号および作動電流値信号は、周知の方法により、アナログからデジタルの波形に変換されて監視される。また、ＵＳＢデータストリームは、ＵＳＢデータストリームが伝送することを表す伝送信号を伴って、さまざまなサイズのパケットとして、ＵＳＢバス上を伝送している。そして、ＵＳＢターゲットインターフェース１１は、所定の信号波形の通過を検知すると、所定の信号の通過をＡ／Ｄ波形取り込み処理機能部１６ｉまたはＵＳＢストリーム取り込み処理機能部１６ｊに通知する。
【００３９】
Ａ／Ｄ波形取り込み処理機能部１６ｉは、ＵＳＢターゲットインターフェース１１からの通知を受けると、動作を開始する。Ａ／Ｄ波形取り込み処理機能部１６ｉは、作動電圧値信号または作動電流値信号を取得するとともに、取得した作動電圧値信号が表すＵＳＢバス電圧値または作動電流値信号が表すＵＳＢバス電流値を検出する。そして、Ａ／Ｄ波形取り込み処理機能部１６ｉは、取得したＵＳＢバス電圧値またはＵＳＢバス電流値を含む所定形式のパケットを作成し、作成したパケットを信号用バッファーメモリ１６ｃに記憶する。
【００４０】
すなわち、Ａ／Ｄ波形取り込み処理機能部１６ｉは、図７（ａ）に示すように、同期ヘッダー、タイムスタンプ、パケットサイズおよび取得したＵＳＢバス電圧値またはＵＳＢ電流値からなるパケットを作成する。ここで、同期ヘッダ−は、ホストコンピュータＨが取得する複数のパケットの先頭場所の確認と連続格納を識別する情報を含んでいる。タイムスタンプは、クロックジェネレータ１６ｂから供給されたクロックを利用した時間情報である。パケットサイズは、パケットの大きさ（情報量）を表す情報である。
【００４１】
また、Ａ／Ｄ波形取り込み処理機能部１６ｉは、信号用バッファーメモリ１６ｃに対して、作成したパケットを順次供給するとともに、供給したパケットを供給順に記憶するように指示する。信号用バッファーメモリ１６ｃは、前記指示に従って、供給順にパケットを一時的に記憶する。そして、この動作は、Ａ／Ｄ波形取り込み処理機能部１６ｉが、ＵＳＢターゲットインターフェース１１から通知を受けるたびに、繰り返し行われる。
【００４２】
さらに、Ａ／Ｄ波形取り込み処理機能部１６ｉは、パラレルインターフェース１３から外部トリガーデータが入力されると、入力された外部トリガーデータを含むパケットを作成する。この作成されるパケットにも、同様に同期ヘッダー、タイムスタンプ、パケットサイズが付加される。
【００４３】
ＵＳＢストリーム取り込み処理機能部１６ｊは、ＵＳＢターゲットインターフェース１１からの通知を受けると、動作を開始する。ＵＳＢストリーム取り込み処理機能部１６ｊは、ＵＳＢデータストリームのパケットを取得して所定形式のパケットを作成し、作成したパケットをデータ用バッファーメモリ１６ｄに記憶する。
【００４４】
すなわち、ＵＳＢストリーム取り込み処理機能部１６ｊは、図７（ｂ）に示すように、同期ヘッダー、タイムスタンプ、パケットサイズおよび取得したＵＳＢデータストリームからなるパケットを作成する。ここで、バス上を伝送するＵＳＢデータストリームは、パケットとして伝送しているが、そのパケットサイズはさまざまである。このため、ＵＳＢストリーム取り込み処理機能部１６ｊは、大きなパケットサイズ（例えば、２５６バイト以上）のパケットを取得すると、このパケットを２５６バイトよりも小さく分割して、複数のパケットを作成する。このとき、ＵＳＢストリーム取り込み処理機能部１６ｊは、作成したパケットを構成する同期ヘッダーとして、例えば、４７，４８といった２種類のヘッダーを用意する。そして、例えば、ヘッダー４７を最初のパケットに付与し、ヘッダー４８をそれに続く連続したパケットに付与する。これにより、ホストコンピュータＨがパケットを取得したとき、一つのＵＳＢデータストリームとして認識することができる。なお、タイムスタンプおよびパケットサイズは、Ａ／Ｄ波形取り込み処理機能部１６ｉが作成する方法と同様に付与される。
【００４５】
また、ＵＳＢストリーム取り込み処理機能部１６ｊは、データ用バッファーメモリ１６ｄに対して、作成したパケットを順次供給するとともに、供給したパケットを供給順に記憶するように指示する。データ用バッファーメモリ１６ｄは、前記指示に従って、供給順にパケットを一時的に記憶する。そして、この動作は、ＵＳＢストリーム取り込み処理機能部１６ｊが、ＵＳＢターゲットインターフェース１１から通知を受けるたびに、繰り返し行われる。
【００４６】
このように、信号用バッファーメモリ１６ｃまたはデータ用バッファーメモリ１６ｄにパケットが一時的に記憶されると、Ａ／Ｄ波形取り込み処理機能部１６ｉまたはＵＳＢストリーム取り込み処理機能部１６ｊが、調停器１６ｅに対して、一時的に記憶したパケットの送信要求を送信する。調停器１６ｅは、送信要求を受信すると、受信すべきパケットを優先順位に基づいて決定し、Ａ／Ｄ波形取り込み処理機能部１６ｉまたはＵＳＢストリーム取り込み処理機能部１６ｊのいずれか一方に対して、パケットの送信を許可する。この優先順位としては、例えば、信号用バッファーメモリ１６ｃまたはデータ用バッファーメモリ１６ｄの記憶可能容量に対して、記憶されたパケットの記憶量が所定の記憶量を超えている場合には、優先して送信を許可するなどである。そして、調停器１６ｅは、パケットの送信を許可すると、許可した送信要求をメモリ制御機能部１６ｋに送信する。
【００４７】
メモリ制御機能部１６ｋは、調停器１６ｅから許可された送信要求を受信すると、データマルチプレクサー１６ｆに対して、許可された送信要求を送信したＡ／Ｄ波形取り込み処理機能部１６ｉまたはＵＳＢストリーム取り込み処理機能部１６ｊからのパケットを選択して伝送するように指示する。データマルチプレクサー１６ｆは、同指示に従い、Ａ／Ｄ波形取り込み処理機能部１６ｉまたはＵＳＢストリーム取り込み処理機能部１６ｊから送信されたパケットを選択してメモリ制御機能部１６ｋに供給する。メモリ制御機能部１６ｋは、供給されたパケットをデータメモリ１７に書き込む。
【００４８】
このとき、メモリ制御機能部１６ｋは、データメモリ１７に供給されたパケットの供給順に書き込む。このメモリ制御機能部１６ｋの書き込み動作を、図８を用いて、概略的に説明すると、データメモリ１７は、例えば、４つのパケットを記憶する構成とされている。そして、メモリ制御機能部１６ｋは供給されたパケットを、一つずつパケット１、パケット２、…、パケット４のように供給された順に書き込む。
【００４９】
パケット取り出し処理機能部１６ｍは、所定の周期（例えば、６０ＭＨｚに対応した周期）にて、調停器１６ｅに対して、パケットの供給要求を送信する。ここで、所定の周期は、１つのパケットがデータメモリ１７に書き込まれる処理周期よりも早くされている。これにより、例えば、データメモリ１７の記憶容量が一杯となる前に、パケット取り出し処理機能部１６ｍは、パケット１の取り出しが可能となる。これにより、データメモリ１７の記憶容量を小さくすることができる。
【００５０】
調停器１６ｅは、パケット取り出し処理機能部１６ｍからのパケットの供給要求を受信すると、同供給要求を、メモリ制御機能部１６ｋに供給する。メモリ制御機能部１６ｋは、供給されたパケットの供給要求に基づいて、図８に示すように、データメモリ１７に記憶されたパケットのうち、最も早く記憶されたパケットすなわちパケット１をデータマルチプレクサー１６ｆに供給する。データマルチプレクサー１６ｆは、供給されたパケット１をＵＳＢホストインターフェース１２のエンドポイント１２ｂまたはエンドポイント１２ｃに供給する。
【００５１】
すなわち、供給されたパケット１が、ＵＳＢデータストリームを含むパケットであればエンドポイント１２ｂに供給し、ＵＳＢバス電圧値、ＵＳＢバス電流値または外部トリガーデータを含むパケットであればエンドポイント１２ｃに供給する。このようにパケット１が、ＵＳＢホストインターフェース１２に供給されることにより、ホストコンピュータＨは、パケット１を取得することができる。そして、ホストコンピュータＨは、同取得したパケット１の同期ヘッダーおよびタイムスタンプを解読して処理することにより、バスの動作状態を確認することができる。
【００５２】
以上の説明から理解できるように、バス監視装置１０によれば、ターゲットコンピュータＴのＵＳＢバスとプリンタＰのＵＳＢバス上を伝送する作動データを取得することができる。また、取得した作動データをパケットとして、データメモリ１７に記憶することができる。このとき、データメモリ１７は、供給されたパケットを取得した順に書き込むとともに、記憶したパケットを記憶した順に読み出すことができる。この書き込みと読み出しのタイミングは、調停器１６ｅにより調整されており、読み出しの頻度が多くなるように調整されている。そして、バス監視装置１０は、パケットをホストコンピュータＨに供給することができる。これにより、ホストコンピュータＨは、ＵＳＢバス電圧値やＵＳＢバス電流値を解析することができるとともに、ＵＳＢデータストリームを解析することにより、例えば、プリンタＰの作動状態を把握することができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係るバス監視装置がターゲットコンピュータ、プリンタＰおよびホストコンピュータとＵＳＢ接続された状態を示す概略ブロック図である。
【図２】図１のバス監視装置の概略的な構成を示す概略ブロック図である。
【図３】図１のバス監視装置のエンドポイントの構成を説明するための概略図である。
【図４】図１のバス監視装置のＦＰＧＡの構成を説明するための概略図である。
【図５】図１のホストコンピュータから制御プログラムおよびＦＰＧＡの内部回路データが供給される動作示す機能ブロック図である。
【図６】図１のバス監視装置がターゲットコンピュータとプリンタＰとの間を流れる作動データを取得して、ホストコンピュータにパケットを供給する動作を示す機能ブロック図である。
【図７】（ａ）（ｂ）は、図１のバス監視装置にて作成されるパケットを説明するための説明図である。
【図８】図１のバス監視装置のデータメモリにパケットが書き込まれる状態および読み出される状態を説明するための説明図である。
【符号の説明】
１０…バス監視装置、１１…ＵＳＢターゲットインターフェース、１２…ＵＳＢホストインターフェース、１３…パラレルインターフェース、１４…ＣＰＵ、１５…プログラムメモリ、１６…ＦＰＧＡ、１６ｃ…信号用バッファーメモリ、１６ｄ…データ用バッファーメモリ、１６ｅ…調停器、１６ｉ…Ａ／Ｄ波形取り込み処理機能部、１６ｊ…ＵＳＢストリーム取り込み処理機能部、１６ｋ…メモリ制御機能部、１７…データメモリ、Ｈ…ホストコンピュータ、Ｐ…プリンタ、Ｔ…ターゲットコンピュータ。
【図１】
2004110409.tif 000003
【図２】
2004110409.tif 000004
【図３】
2004110409.tif 000005
【図４】
2004110409.tif 000006
【図５】
2004110409.tif 000007
【図６】
2004110409.tif 000008
【図７】
2004110409.tif 000009
【図８】
2004110409.tif 000010