(57)【特許請求の範囲】
【請求項１】
書込みアドレスに応じて第１ポートを介してリアルタイムでデータが書き込まれ、読出しアドレスに応じて第２ポートを介してデータが読み出されるデュアル・ポート・メモリと、
書込みクロックを中断することなく計数し、上記書込みアドレスを発生する入力アドレス・カウンタと、
上記書込みアドレスのカレント値がロードされる出力アドレス・カウンタと、
上記書込みアドレスの値が選択可能な更新データ長に対応する設定値に一致した時に上記出力アドレス・カウンタが読出しクロックの計数を開始して上記読出しアドレスを発生し、上記更新データ長より長い所定のフレーム・データ長のデータを読み出しする制御を行う制御手段とを具え、
上記フレーム・データ長のデータの内、上記更新データ長のデータが更新されたデータであることを特徴とするリアルタイム・データ・バッファ装置。
【請求項２】
上記入力アドレス・カウンタの出力の選択された上位ビット数だけマスクして所望ビット数の上記書込みアドレスを発生する書込みアドレス・デコーダを具えることを特徴とする請求項１記載のリアルタイム・データ・バッファ装置。
【請求項３】
上記出力アドレス・カウンタの出力の選択された上位ビット数だけマスクして所望ビット数の上記読出しアドレスを発生する読出しアドレス・デコーダを具えることを特徴とする請求項１又は２記載のリアルタイム・データ・バッファ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、リアルタイムに信号を処理する場合に好適なリアルタイム・データ・バッファ装置に関する。
【０００２】
【従来の技術】
被測定信号を時間的な切れ目（デッドタイム）を生じないように、実時間（リアルタイム）で連続的にＦＦＴ演算処理し、その被測定信号の周波数領域成分（スペクトル）を抽出し、解析する測定器として、リアルタイムＦＦＴアナライザがある。このようなリアルタイム処理が可能な従来のＦＦＴアナライザの主要部の構成を図４に示す。被測定信号は、ＡＤＣ（アナログ・デジタル変換器）１０により、デジタル信号に変換され、次に、ＤＤＣ（デジタル・ダウン・コンバータ）１２により、間引き処理が実行され、実質的な周波数変換処理が行われる。この結果得られた時間領域のデジタル・データは、順次時間的切れ目無くリアルタイム（実時間）でデータ・バッファ・メモリ１３に記憶される。このデータ・バッファ・メモリ１３は、例えば１０２４ポイントの時間領域データを１フレームとして記憶する。この１フレームの時間領域データは、ＦＦＴ処理回路１４により、ＦＦＴ演算処理がされ、周波数領域のデジタル・データが生成される。データ・バッファ・メモリ１３への新たなデータの書込み時間内にＦＦＴ処理回路１４が前の１フレームのデータのＦＦＴ演算を完了することにより、リアルタイムにデータをＦＦＴ解析することができる。ＦＦＴ処理回路１４の出力データはメモリ１６に順次記憶される。トリガ回路１８は、メモリ１６の中のデータに対して任意のトリガ条件が設定可能であり、この設定されたトリガ条件が満たされるとトリガ信号を出力し、そのトリガ条件に合ったデータをメモリ１６から読み出すことができる。ＣＰＵ２０は、リアルタイムＦＦＴアナライザの全体を制御する。メモリ１６から読み出されたデータは、表示回路（図示せず）に送られ、表示スクリーン（図示せず）上に表示される。このリアルタイムＦＦＴアナライザは、リアルタイムで時間的な切れ目（デッドタイム）を生じることなくスペクトル（周波数成分）の抽出が可能であり、周波数領域データの任意のトリガ条件に一致したイベント（事象）の発生を捕らえることができる。
【０００３】
このようなリアルタイム信号処理を実行するために、データ・バッファ・メモリ１３には、以下のような機能が要求される。
（１）データの入力（書込み）は、常に連続して行われ、中断（ウエイト）は許されない。
（２）書込みクロックの周波数は、アナログ・デジタル変換器のサンプリング周波数とデジタル・ダウン・コンバータの間引き率によって決まる。この間引き率は、アナライザの解析範囲（スパン）の設定に応じて大幅に変化するので、データの書込みクロックの周波数も極めて広い範囲で変化する（例えば、１２８ＨＺ〜１２．８ＭＨｚ）。したがって、この書込み周波数の大幅な変化に対応した動作が要求される。
（３）データ出力（データ読出し）は、所定のフレーム幅（例えば１０２４ポイント）を単位として行われる。このデータの読出しクロック周波数は、後段のＦＦＴプロセッサへの書込みクロック周波数により決まるので、この読出しクロック周波数に対応した動作が要求される。
（４）ＦＦＴ演算処理の際に窓関数を乗算する関係で、「窓」の両端付近のデータ値が抑圧され、情報の漏れ（スペクトル漏れ）を発生させることがあるので、時間軸領域のデータを読み出す際に、「オーバーラッピング」と呼ばれる動作を行う。すなわち、フレーム幅Ｎ（例えば１０２４ポイント）のデータの一部分Ｋ（例えば５１２ポイント）が更新された時点で、更新されていないデータ（Ｎ−Ｋ）と更新されたデータＫの両方を読み出すのがオーバーラッピング機能であり、この際のＮ及びＫの値を外部からプログラマブルで自在に設定可能にしたいという要求がある。
【０００４】
【発明が解決しようとする課題】
従来、上述のような高度の機能を実現するためには、専用の集積回路が用いられていたが、かかる専用ＩＣは、高価であり、入手困難である上に、オーバーラッピング動作の際の設定値Ｎ及びＫの範囲及びデータの入出力の周波数範囲に制限があり、アナライザの機能を向上させるためには、専用ＩＣを新たに設計し、製造しなければならず、膨大な費用がかかるという問題がある。
【０００５】
そこで、本発明の目的は、高価で機能の変更が困難な専用ＩＣを必要とせず、一般に入手容易なＲＡＭ及びロジックＩＣ等のみで所望の機能を実現できる新規なアーキテクチャを有するリアルタイム・データ・バッファ装置を実現することである。
【０００６】
【課題を解決する為の手段】
本発明のリアルタイム・データ・バッファ装置は、書込みアドレスに応じて第１ポートを介してリアルタイムでデータが書き込まれ、読出しアドレスに応じて第２ポートを介してデータが読み出されるデュアル・ポート・メモリと、書込みクロックを中断することなく計数し、上記書込みアドレスを発生する入力アドレス・カウンタと、上記書込みアドレスのカレント値がロードされる出力アドレス・カウンタと、上記書込みアドレスの値が選択可能な更新データ長に対応する設定値に一致した時に上記出力アドレス・カウンタが読出しクロックの計数を開始し、上記更新データ長より長い所定のフレーム・データ長を単位としてデータを読み出しする制御を行う制御手段とを具え、上記フレーム・データ長のデータの内、上記更新データ長のデータが更新されたデータであることを特徴とする。
【０００７】
このような構成により、安価でかつ入手容易な部品を用いて所望の拡張性、汎用性の高いリアルタイム・データ・バッファ装置を実現できる。
【０００８】
【発明の実施の形態】
図１は、本発明に係るリアルタイム・データ・バッファ装置の実施の形態の一例の概要を示すブロック図である。入力データは、デュアル・ポート・メモリ２２の第１ポートに供給され、制御回路２４からの書込みアドレスに対応したアドレスに順次記憶される。デュアル・ポート・メモリ２２に記憶されたデータは、制御回路２４からの読出しアドレスに従って、第２ポートを介して出力データとして読み出される。書込みクロックの周波数は、図４のリアルタイムＦＦＴアナライザの場合、データの解析範囲（スパン）の設定に応じてデジタル・ダウン・コンバータの間引き率が大幅に変化するので、例えば、本例の場合、１２．８ＭＨｚから１２８Ｈｚの範囲のように極めて大幅に変化する。それに対して、読出しクロックの周波数は、後段のＦＦＴ処理回路のデータ処理速度に応じて、例えば、４０ＭＨｚのような所定の周波数に設定される。制御回路２４は、デュアル・ポート・メモリ２２の読出し動作を実行してデータを出力する際に、ＤＡＶ信号（データ・アベイラブル信号）を出力する。このＤＡＶ信号は、後段に供給され、データの転送及び処理が適正に実行される。
【０００９】
このように、本発明のリアルタイム・データ・バッファ装置では、入力データの書込み周波数は、極めて広範囲に変化しても、データの書込み動作の中断は許されず、書込み動作を実行中に所望の範囲のデータを読み出さなければならない。また、デュアル・ポート・メモリ２２を使用しているので、一般に書き込み動作と読出し動作を同時に実行できるが、書込み動作中のアドレスのデータを同時に読み出すことはできない。したがって、書込み動作と読出し動作とが、同一のアドレスのデータに対して競合した場合には、これらを無条件で同時に実行するわけにはいかない点に留意されたい。この点に関する解決方法についての詳細は、後述する。
【００１０】
図２は、図１の制御回路２４の構成の一例の詳細を示すブロック図である。入力アドレス・カウンタ２６は、書込みクロックを計数する。この入力アドレス・カウンタ２６の計数出力は、書込みアドレス・デコーダ２８に供給される。書込みアドレス・デコーダ２８は、入力アドレス・カウンタ２６の計数出力を書込みアドレスとして出力し、デュアル・ポート・メモリに供給すると共に、更新データ長Ｋの値と入力アドレス・カウンタ２６の計数出力値とが等しくなると、ＥＱＷフラグ信号（論理「１」）を発生する。例えば、フレーム・データ長Ｎが１０２４で、更新データ長Ｋの値が５１２である場合、書込みアドレスが５１２に達した時にＥＱＷフラグ信号（論理「１」）が発生する。すなわち、ＥＱＷフラグ信号（論理「１」）の発生は、更新データ長Ｋの設定に応じて、所定量のデータが更新されたことを意味する。この更新データ長Ｋの値は、フレーム・データ長Ｎ以下の任意の値に設定することができる。これにより、更新されたデータＫと更新されていない（Ｎ−Ｋ）のデータを読み出すことにより、オーバーラッピング動作の更新データの比率を任意に設定することができる。また、書込みアドレス・デコーダ２８は、フレーム・データ長Ｎの設定値に応じて、入力アドレス・カウンタ２６の上位ビットをマスクしてフレーム・データ長を所望値に設定することができる。例えば、１０ビットで１０２４ポイントのフレーム・データ長の上位１ビットをマスクすれば、９ビットで５１２ポイントを１フレームとして設定できる。上位２ビットをマスクすれば、１フレームを２５６ポイントのデータ長に設定できることは勿論である。
【００１１】
書込みアドレス・デコーダ２８からの書込みアドレスは、レジスタ３０にも供給され、読出しクロックに応じてラッチされる。このレジスタ３０にラッチされた書込みアドレス信号のカレント値は、出力アドレス・カウンタ３２に供給されており、出力アドレス・カウンタ３２は、ステート・マシン３４からのロード信号に応じてレジスタ３０のデータをロードする。出力アドレス・カウンタ３２は、ステート・マシン３４からのイネーブル信号に応じて、ロードした値を初期値として、読出しクロックを計数する。ステート・マシン３４は、出力アドレス・カウンタ３２の計数動作を開始するのと同時にＤＡＶ信号を後段（図示せず）に供給し、読み出されたデータが適正に処理されるようにする。読出しアドレス・デコーダ３６は、出力アドレス・カウンタ３２の計数出力を受け、この値が、フレーム・データ長Ｎの値と等しくなると、ＥＱＲフラグを論理「１」に設定する。すなわち、１フレームのデータ読出し動作が実行され、更新済みデータＫと更新前のデータ（Ｎ−Ｋ）がデュアル・ポート・メモリ２２から出力されたことになる。例えば、Ｋ＝２５６ポイント、Ｎ＝１０２４ポイントであれば、読み出されたデータ１０２４ポイントの中の２５６ポイントが更新データであり、残りの７６８ポイントは未更新のデータである。この場合、更新データのフレーム・データに対する比率は、２５％である。このように、Ｋの値を適宜調整することにより、容易にオーバーラッピング動作の更新データの比率を調整することができる。
【００１２】
読出しアドレス・デコーダ３６は、書込みアドレス・デコーダ２８と同様に、フレーム・データ長Ｎの設定値に応じて出力アドレス・カウンタ３２の出力データの上位ビットを適宜マスクすることにより読出しアドレス信号を生成し、図１のデュアル・ポート・メモリ２２に供給する。
【００１３】
書込み制御回路３８は、デュアル・ポート・メモリ２２へのデータの書込み制御信号を生成する回路である。図２の場合、書込みクロックの状態遷移に応じて書込み制御信号を書き込み状態（例えばローレベル）に設定し、読出しクロックの少なくとも１周期経過後に非書き込み状態（例えばハイレベル）に設定する。このような書込み制御回路３８を設けたのは、本発明のリアルタイム・データ・バッファ装置の場合、入力データの書込みクロックの周波数が極めて広い範囲で変化するからである。すなわち、書込みクロックの周波数が低周波数（例えば、１２８Ｈｚ）に設定された場合、もし、書込みクロックに応じてデュアル・ポート・メモリ２２の書込み状態を設定すると、書込み状態に留まる時間が長くなり、メモリ内のあるアドレスが書込み状態中の時に当該アドレスに対して読み出し動作が実行されるという不都合の生じる確率が高くなる。したがって、メモリの書込み動作は、書込みクロックの周波数に関係なく、適当な短時間中に完了するように制御することが望ましい。したがって、書込み制御回路３８は、書込み動作期間の開始時点は、書込みクロックの状態遷移時点に対応させるが、書込み動作期間の終了時点は、読出しクロックに従い、読出しクロックの１周期〜２周期程度の期間でデータの書込み動作を完了させるようにしている。もちろん、このデータの書込み動作期間は、読出しクロックの１周期分程度の時間があれば十分であるので、所定期間のパルスを発生する単安定マルチバイブレータを使用しても良い。この結果、書込みクロックの周期が長くなっても、データの書込み時間は短時間で完了し、同一のアドレスに対して書き込み動作と読出し動作が競合する不都合を防止することができる。このような動作が可能になるのは、読出しクロックの周波数が書込みクロックの周波数よりもかなり高いからである。本例の場合、書込みクロックの周波数の最大値は、１２．８ＭＨｚであるのに対して、読出しクロックの周波数は４０ＭＨｚである。この結果、例えば、アドレスＫまでの書込み動作に続いてアドレス（Ｋ＋１）のデータを読出す動作は、アドレス（Ｋ＋１）への書込み動作の開始時点より以前に完了させることが容易に可能となる。それ以後のアドレスに対しては読出しクロックの方がずっと高速なので、同じアドレスに対して読み出しと書込みの動作が同時に競合するようなことはない。
【００１４】
図３は、図２のステート・マシン３４の動作を表す流れ図である。まず、出力アドレス・カウンタ３２をリセットする(ステップ４０)。次に、ＤＡＶ(データ・アベイラブル)信号をディセーブル状態(論理「０」)に設定する(ステップ４２)。次に、書込みアドレス・デコーダ２８からのＥＱＷフラグ信号を監視し(ステップ４３)、このＥＱＷフラグが論理「０」となったとき、出力アドレス・カウンタ３２にロード信号を供給し、レジスタ３０から書込みアドレスのカレント値のデータを出力アドレス・カウンタ３２にロードする(ステップ４４)。この結果、出力アドレス・カウンタ３２にロードされる値は、常に、書込みアドレス信号のカレント値である。次のステップ４６で、ＥＱＷフラグ信号が論理「１」になったことを検出すると、ステップ４８に進み、出力アドレス・カウンタ３２の計数動作をスタートさせると共に、ＤＡＶ信号をアサート(論理「１」の状態に)する。すなわち、ＥＱＷフラグが論理「１」になると、更新データ長Ｋまでの書込み動作が完了したことになるので(なお、データの書込み動作自体はリアルタイム動作の故に中断することなく継続されている点に留意されたい。)、この更新データ長Ｋまでの書込み動作の完了時のアドレス値は、出力アドレス・カウンタ３２にロードされており、出力アドレス・カウンタ３２が読出しクロックの計数を開始すると、書込み動作により更新されたアドレスの次のアドレスのデータから読出し動作が開始されることになる。上述のように、読出しクロックの周波数は、書込みクロックの周波数より十分高く、書込み動作の完了後に読出し動作が開始されるように、書込み制御回路３８を設けたので、同一アドレスに対して読み出しと書込みの動作が同時に競合することはない。
【００１５】
このようにして、データの読出し動作が開始された後、ステート・マシン３４が読出しアドレス・デコーダ３６からのＥＱＲフラグ信号の論理「１」を検出すると、１フレームのデータの読出し動作が完了したので、処理は、ステップ４２へと戻され、以後同様の動作が繰り返し実行される。
【００１６】
以上、本発明の好適実施例を説明したが、本発明は、上述の実施例のみに限定されるものではなく、本発明の要旨から逸脱することなく、種々の変形及び修正を加え得ることは当業者には明らかである。本発明のリアルタイム・データ・バッファ装置は、一般に入手が容易な部品のみで構成が可能であり、リアルタイムにデータを書込みながら、所望のデータ長のフレーム・データを任意のデータ更新率に設定して読み出すという複雑な動作を実現できる。フレーム・データ長Ｎ及び更新データ長Ｋは任意に設定できるので、柔軟性、汎用性、拡張性に富んでいる。書込みアドレスのカレント値を出力アドレス・カウンタにロードする構成なので、読出し動作のために専用のアドレス演算器を設ける必要はない。アドレス・デコーダにより、アドレス・カウンタの出力データの上位ビットをマスクしてフレーム長を任意ビットに設定できるので、カウンタの高速性を損なうことがない。全体として構成が簡単なので、ステート・マシンの構成が容易であり、高速動作の維持、コストの低減等の大きな効果がある。
【図面の簡単な説明】
【図１】本発明の実施の形態の一例を示すブロック図である。
【図２】図１の制御回路の構成の一例を示すブロック図である。
【図３】図２のステート・マシンの動作の説明をするための流れ図である。
【図４】従来のリアルタイムＦＦＴアナライザの構成を示すブロック図である。
【符号の説明】
２２  デュアル・ポート・メモリ
２６  入力アドレス・カウンタ
２８  書込みアドレス・デコーダ
３０  レジスタ
３２  出力アドレス・カウンタ
３４  ステート・マシン（制御手段）
３６  読出しアドレス・デコーダ
３８  書込み制御回路
【図１】
0003621539.tif 000002
【図２】
0003621539.tif 000003
【図３】
0003621539.tif 000004
【図４】
0003621539.tif 000005