レーダ装置などに用いられる信号処理装置には、複数個のDSPを設けたDSPカードが実装されている。それぞれのDSPは様々な信号処理に特化した機能を有する。1つの信号処理は、入力されたデータに対して各DSPが順番にパラメータを付加し、所定の計算式にしたがった演算を行うことによって実行される。近年、DSPの高集積化や高速化に伴って、従来ハードウェアを用いて行われていた多くの信号処理機能がソフトウェアにより処理されるようになってきている。DSPを用いて特定の機能を実現することはDSPソフトウェアとも呼ばれており、このDSPソフトウェアは複数個のDSPによって行われる。例えばノイズの除去や目標の存在方向の計算といった信号処理機能がこれらのDSPによって実現される。DSPの使用可能なメモリ資源はCPU(中央演算装置)のそれと比べて乏しいため、DSPはCPUのように基本ソフトウェア(以下、OSと呼ぶ)を利用し、このOSを用いて複雑な処理を行うことができない。
図14は2枚のDSPカードを使用した場合のDSP構成の一例を示す図である。DSPカード50は、それぞれが内部メモリを有する2つのDSP51−1、51−2と、これらのDSP51−1、51−2にデータバス52を介して接続されて、計算命令を記述したプログラムを記憶するフラッシュROM53と、このデータバス52に接続されて、2つのDSP51−1、51−2における各命令の実行結果を一時的に記憶する外部メモリ54とを備えている。DSPカード55もDSPカード50の構成と同じ構成を有する。DSPカード50の2つのDSP51−1、51−2の間と、DSPカード50及びDSPカード55の間と、DSPカード55の2つのDSP51−1、51−2の間とはいずれもデータが高速に伝送可能なデータバス56を介して接続されている。
このような構成のDSPカード50、55がレーダ装置の信号処理に用いられる場合、ある時点における受信電波についてA/D変換されたデータが、1基本処理時間帯分のデータとして入力装置57よりデータバス58を介してDSPカード50へ入力される。この基本処理時間帯では、最初の1/4時間において第1のDSP51−1が演算を行い、次の1/4時間においては第2のDSP51−2がデータバス56を介して演算結果を読み込み、この演算結果を用いた演算を行う。DSPカード55では第1のDSP51−1がその次の1/4時間の演算を行い、この演算結果を第2のDSP51−2が次の1/4時間演算する。この第2のDSP51−2にて得られた最終的な計算の結果はデータバス58を介して出力装置59へ出力される。レーダ装置のアンテナが水平面内で回転すると、DSPカード50には所定角度ずれた方位からの電波についてのデータが入力装置57より入力される。次の基本処理時間帯では、このデータについての計算結果が出力装置59に出力される。このように、DSPカード50、55が行う信号処理は、ディジタルフィルタ処理やFFT処理などの固定した信号処理を各DSP51−1、51−2に割り付け、これらのDSP51−1、51−2の間は高速通信可能な専用のデータバス56によって接続されている。図14のDSP構成は分散処理方式を取っている。この信号処理は別のDSP構成によっても実現可能である。
図15は1枚のDSPカードを使用した場合のDSP構成の一例を示す図である。DSPカード60は、N個のDSP61、フラッシュROM62、外部メモリ63、出力インターフェース部64を備えている。これらのDSP61の間はデータバス65により接続されている。各DSP61が時分割で外部メモリ63のデータを参照することにより、外部メモリ63のデータはこれらのDSP61によって共有される。図14では、データがDSP51−1に直接入力されるが、図15では、外部メモリ63の容量がDSP55−1の内部メモリの容量よりも格段に大きいため、図14のDSP構成において入力されるデータよりも長い時間分のデータが外部メモリ63に一旦蓄積される。
DSPカード60では、図14の例と同様にディジタルフィルタ処理やFFT処理などの固定した信号処理が各DSP61に割り付けられている。図15のDSP構成では、各DSP61が互いに外部メモリ63へアクセスする時間をずらすことにより、データバス65におけるデータの衝突が回避されている。図15のDSP構成は、巡回的並列処理又はラウンドロビン方式を取っている。
DSPカードを用いたDSPソフトウェアを開発する場合には、DSPカードにおける信号処理の結果得られたデータを開発者がモニタする。DSPソフトウェアを開発する場合には、例えばprintf文の出力文字列や出力結果などのメッセージを表示装置あるいはコンソールに出力する必要がある。OSが実装されたパソコンではディスプレイがこの文字列を表示することが可能であるが、DSP51−1、51−2及びDSP61自体はメッセージの表示機能を持っていない。DSPカード50、55やDSPカード60が実機に組み込まれて、実機が運用されている場合には、演算結果のモニタは不要であるため、いずれのDSPカード50、55及び60にも表示装置が設けられていない。
図16は従来のDSPソフトウェアの開発環境の一例を示す図である。この開発環境では、DSPカード66が、DSP開発環境用PC(Personal Computer)67と、JTAG(IEEE Std. 1149.1-1990 IEEE Standard Test Access Port and Boundary-Scan Architecture)ケーブル68により、デイジーチェーン接続されている。UART(Universal Asynchronous Receiver Transmitter)70は、データバス71を介して複数のDSP69−1、69−2からのパラレルデータをシリアルデータに変換して出力する。プログラムの編集や実行ファイルの作成は、DSP開発環境用PC67において行われる。この実行ファイルのDSPカード66へのダウンロード、この実行ファイルの実行指令、及び実行ファイルを用いたデバッグは、DSP開発環境用PC67からDSPカード66に対してJTAGケーブル68経由で行われる。DSPソフトウェアの開発におけるデバッグや、DSPソフトウェアを実装した製品においては、CPU等を用いてデバッグを行うときに広く使われているプログラムからメッセージを出力する方法が非常に有効である。しかし、DSP69−1、69−2は使用可能な内部メモリのメモリ容量が少ないため、OSを使用しない場合があり得る。メッセージの出力のためにはDSPソフトウェアの開発は特別なハードウェアによる支援を必要とする。具体的には、DSP開発環境用PC67及びDSPカード66の間がJTAG接続された開発環境下である場合においてのみ、メッセージ出力が可能となる。
一方、開発された製品はDSP開発環境用PC67を含まないため、製品が運用されているときは、DSP内部の動作や状態を示すメッセージを利用者が見ることができない。従って、製品の動作状況を利用者が把握する際に支障が出ないように、UART70と端末72とをEIA-232-D/E準拠のケーブル(以下、シリアルケーブルと呼ぶ)73を用いて接続することにより、端末72上にメッセージを出力する方法がよく用いられる。各DSP69−1、69−2が正常に動作するものであるかどうかについての製造試験の結果として、UART70は、OK又はNGといった情報を表すメッセージデータを端末72へ出力する。多数枚のDSPカードの製造試験を行う場合、これらのDSPカードは、予め決められた試験項目にしたがって試験される。
図17は複数枚のDSPカードの試験環境の一例を示す図である。この試験環境では、試験可能な最大枚数のDSPカード66が図示しないシャーシの背面側に設けられたバックプレーン(又はバックプレーンボード)上に設けられたコネクタに差し込まれている。DSPカード66には、DSPソフトウェアによるメッセージ出力に用いられるシリアルケーブル73を接続するための挿抜口75が設けられている。試験用のプログラムはフラッシュROM74(図16)に書き込まれる。それぞれのDSPカード66についての試験結果を、これらのDSPカード66に接続された端末76は、”OK”や”NG”により表示する。DSPカード66はUART70を用いてメッセージを出力するため、この試験環境では、DSPカード66の枚数とシリアルケーブル73の本数とが1対1である。複数枚のDSPカード66の試験のためには、DSPカード66の枚数と同じ台数の端末76が備え付けられる。
これによって、試験員は、複数枚のDSPカード66について数十分間試験用のプログラムを実行する。いずれかのDSPカード66に設けられた部品が異常である場合には、故障が生じた部品名などの故障情報が、そのDSPカード66に接続された端末76に表示される。製造試験の段階では、DSPソフトウェアの開発時に用いられるUART70を取り付けた状態でそれぞれのDSPカード66が試験される。DSPカード66について動作試験が行われて、試験に合格した複数枚のDSPカード66を用いてDSPソフトウェアが開発される。
内部メモリに記憶可能なプログラムコードの数が少ないので、信号処理の規模が小さく、従来、高度な信号処理機能は実現されていなかった。使用されるDSPカードの数も少なかったことから、DSPソフトウェアの開発段階と、DSPカードの製造試験の段階とのそれぞれにおいて、DSPカードは1枚単位で取り扱われていた。製造された数枚のDSPカードを試験する場合には、1枚のDSPカードに端末76をシリアルに接続した試験環境下において、1枚ずつDSPカードを試験員が試験していた。
OSの利用を前提としたデバッグ技術に関しては、ソフトウェアの開発効率の向上と品質の向上がみこまれるデバック支援環境付オペレーティング・システムの実装されたコンピュータ・システムが提案されている(特許文献1参照)。また、文字列出力時に機能の高い複数のレコード出力関数を呼び出して文字列をバッファ管理に出力し、高速出力を可能にする出力関数方式が提案されている(特許文献2参照)。
特開2000−259446号公報
特開平5−53885号公報
以下、本発明の実施の形態に係るDSPカード試験装置について、図面を参照しながら説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
(1)試験環境
本発明の実施の形態に係るDSPカード試験装置は、前面が開口した箱形を有するシャーシの内部に収納される。このシャーシの背面側にはVMEバスを面上に布線したバックプレーンが設けられている。このバックプレーン上には、DIN41612/IEC603−2などの規格を有する複数個のコネクタが取り付けられており、これらのコネクタはバックプレーン上に等間隔に配置されている。複数個のコネクタのうちの最端側にある1個のコネクタにはCPUボードが差し込まれており、他のコネクタにはそれぞれ試験対象である複数枚のDSPカードが差し込まれている。シャーシの内側には、複数本のガイドが設けられている。1つのコネクタ部と、天井面に取り付けられた隣接する2本のガイドと、底面に取り付けられた隣接する2本のガイドとによってスロットと呼ばれる空間が形成されている。CPUボード及び各DSPカードの外縁部には電極端子が形成されており、シャーシには給電回路が設けられている。CPUボードと各DSPカードとがそれぞれのスロットに装着されることによって、給電回路からこれらのボード及びカードに対して電源が供給されて、DSPカード試験装置は、複数枚のDSPカードを試験可能になっている。
図1は本発明の実施の形態に係るDSPカード試験装置の構成図である。DSPカード試験装置1は、それぞれが試験対象であるM枚のDSPカード2と、これらのDSPカード2にコネクタ3を介して接続されたVMEバス4と、このVMEバス4にコネクタ3を介して接続されたCPUボード5とを備えている。このCPUボード5は、LAN6を介して、遠隔端末7に接続されている。遠隔端末7はメッセージを表示する表示装置であり、例えばパソコンが用いられる。CPUボード5は、遠隔装置7に接続されてアプリケーションを制御するホストCPU8と、LAN6のインターフェースを行ってこのホストCPU8の制御によって遠隔装置7との間でデータを送受信するインターフェース回路9とを備えている。ホストCPU8は、遠隔装置7がM枚のDSPカード2に設けられる複数個のすべてのDSPから出力されるそれぞれのメッセージを表示するためのデータを生成する。操作者が遠隔端末7を操作することによって、処理の指令が遠隔端末7からホストCPU8へ通知される。このホストCPU8は、すべてのDSPから出力されるメッセージをこれらのDSP毎に記憶するメモリ10を有する。このメモリ10にOSが保持されており、このOSはホストCPU8によって実行される。メッセージとは、各DSPカード2のすべてのDSPから出力されるこれらのDSPの動作や状態を示すデータである。このデータは、各DSPカード2に設けられる試験対象である部品の番号とこれらの部品のOK又はNGを表す情報とからなる試験結果、あるいは、文字列及び試験結果を組み合わせた内容などを指す。遠隔端末7を用いた操作によってホストCPU8においてアプリケーションが実行されると、ホストCPU8からVMEバス4を介してすべてのDSPに対して、出力関数printfを用いたメッセージの出力の要求が通知される。
1枚目のDSPカード2は、N個のDSP11と、内部バスであるデータバス12と、VMEバス4及びデータバス12に接続されたバスプロトコル変換部13と、計算命令が記述されたプログラムを保持するフラッシュROM14と、ページメモリのような大容量の記憶領域を有する揮発性の外部記憶装置(外部メモリ)15と、メッセージ出力デバイスであるUART16とを備えている。バスプロトコル変換部13はバスブリッジであり、このバスプロトコル変換部13はVMEバス4とデータバス12との間のバス幅の整合や転送単位の整合などの処理を行う。UART16は、各DSP11から出力されるパラレルのメッセージをデータバス12を介して受信してそれぞれのメッセージのシリアルデータを出力する。本実施形態に係るDSPカード試験装置1では、ホストCPU8が、これらのDSPカード2の各DSP11から出力されるメッセージを、UART16に出力させるか、又はVMEバス4経由で遠隔端末7へ転送するかのいずれかに切り替え可能である。
N個のDSP11は、いずれも、小容量の記憶領域を有する内部メモリ17と、データバス12に接続されてDMA(ダイレクトメモリアクセス)転送を行うDMAコントローラ18とを有する。このDSPカード2は、N個のDSP11から構成されていることから、ブート対象のDSP11は1個又は複数個存在する。フラッシュROM14に保持されるプログラムはN個のDSP11用のプログラムであり、これらのプログラムはDSPカード試験装置1の起動後に、それぞれのDMAコントローラ18によってそれぞれの内部メモリ17に転送される。起動後、N個のDSP11は、内部メモリ17に記憶されたプログラムの計算命令にしたがって計算処理を行う。また、DSPカード2がコネクタ3を介してDSPカード試験装置1に接続されることによって、VMEバス4は、DSPカード2とホストCPU8とに共有される。2〜M枚目のDSPカード2も1枚目のDSPカード2と同じ構成を有する。従って、すべてのDSPカード2は同一のVMEバックプレーンを共有する。
(2)メモリ領域の割り当て、及びメモリ領域へのアクセス
図2(a)はメモリ10のアドレス空間の一例を示す図である。メモリ10のアドレスバスのバス幅が32である場合には、図2(a)に示すように、メモリ10は4Gバイトのアドレス空間を有する。メモリ10の領域のうちのOSが管理する領域とは別の領域にはDSP用メッセージバッファとして使用される領域がOSによってVMEメモリ領域19として割り当てられる。このVMEメモリ領域19には、M枚のDSPカード2に設けられるN個のすべてのDSP11毎に例えば80文字分のメッセージがDSP11によって書き込まれる。OSがDSP用メッセージバッファを割り当てる旨の宣言を行うと、この宣言は各DSPカード2のすべてのDSP11へ通知される。この宣言が通知された後は、これらのDSP11とホストCPU8との双方向からのメモリ10のデータへのアクセスが可能にされる。VMEメモリ領域19はM×N個のすべてのDSP11によって共用される。
図2(b)はVMEメモリ領域19を詳細に示す図である。VMEメモリ領域19は更にメモリ領域20〜23に分割されている。メモリ領域20はメッセージ制御バッファとしての領域である。図2(c)はこのメッセージ制御バッファを詳細に示す図である。メッセージ制御バッファには各DSPカード2のすべてのDSP11によってメモリ領域21〜23に書き込まれたメッセージデータのバイト数が書き込まれる。メモリ領域21〜23はそれぞれ1〜M枚目のDSPカード2に設けられた各DSP11用のメッセージバッファとしての領域である。例えば1つのDSP11は、VMEバス4を介して10文字の文字データをメッセージバッファに書き込み、続いて、文字数「10」をメッセージ制御バッファに書き込む。ホストCPU8は、メッセージ制御バッファを周期的に調べ、0以外のデータを検出した場合、該当するメッセージバッファを用いてprintf文の実行により、メッセージを出力する。ホストCPU8はメッセージ出力が完了した後、メッセージ制御バッファを0にクリアする。すなわち、ホストCPU8は、M枚のDSPカード2の各DSP11から出力されるメッセージを、これらのDSPカード2のDSP11毎に記憶するバッファとしてのメモリ10を有し、遠隔端末7に対して、メモリ10のデータから、各DSP11の動作又は状態を表す情報を含むメッセージを表示する。従って、メッセージを出力する為に、コンソール種別に依存しない。
割り付けられるアドレスの範囲の一例を述べる。VMEメモリ領域19のベースアドレスはアドレスcontrol baseに割り付けられる。1枚目のDSPカード2(第1のDSPカード)用のメッセージバッファとして割り付けられるベースアドレスbuffer base 1は、buffer base 1=control base+バッファサイズ×[(DSPカード番号−1)+(DSPID−1)]によって計算される。2枚目のDSPカード2(第2のDSPカード)用のメッセージバッファとして割り付けられるベースアドレスbuffer base 2は、buffer base 2=control base+バッファサイズ×[(DSPカード番号−1)+(DSPID−1)]によって計算される。DSPカード番号は、DSPカード2がバックプレーンのどのスロットに装着されているかを表す番号であり、VMEバス4の規格に基づいて、ホストCPU8及び各DSPカード2によって取得される。DSPIDはDSP11が有するハードウェアIDであり、各DSP11によって取得される。
すべてのDSP11からのアクセスの順番の制御を行うために、ホストCPU8は、OSによる読み書きのためのデータの転送単位を例えば4バイトに決めている。アクセス制御を4バイトずつ行う場合、80バイトのデータを書き込むためには20回のアクセスが行われる。本実施形態に係るDSPカード試験装置1では、M枚のDSPカード2のうちのいずれかのDSPカード2のいずれかのDSP11がVMEメモリ領域19にアクセスしているときは、そのDSPカード2とは別の他のDSPカード2に設けられたDSP11がVMEメモリ領域19にアクセスすることをVMEバス4の規格及びホストCPU8は禁止している。これにより、他のDSPカード2は同時にはVMEメモリ領域19へアクセスできないようにされている。
M×N個のすべてのDSP11についてのメッセージは、ホストCPU8によって表示用のデータなどに変換されて、変換されたすべてのメッセージの表示データがまとめて遠隔端末7へ送られる。DSPカード試験装置1は、遠隔端末7が、試験対象のDSPカード2に設けられるすべてのDSP11についての動作試験の結果情報が、試験終了と同じ時間に表示可能にされている。
(3)1個のDSP11が行うメッセージ出力制御処理の説明
本実施形態に係るDSPカード試験装置1では、起動時において、DSP11からのメッセージをUART16から出力させること、及びDSP11からのメッセージをVMEバス4に出力させることのどちらか一方を選択する処理をホストCPU8がそれぞれのDSP11に対して行う。DSP11がメッセージをUART16又はVMEバス4に出力する場合、メッセージを出力するための処理の手順がこれらのメッセージの出力先のデバイスの間で異なるため、DSPカード試験装置1はこれらのデバイスに適合したメッセージの出力処理をDSP11に試験の開始前に登録しておく。DSPカード試験装置1の起動後においては、これらのメッセージ出力用デバイスのうちの一方を選択して切り替えるデバイス切り替えを、ホストCPU8がそれぞれのDSP11に対して行う。
図3は、1個のDSP11内部におけるメッセージ出力用のデバイスの登録機能と、メッセージの出力先のデバイスの切り替え機能とを説明するための図である。24〜29及び35〜38を付した丸形が処理を表す。これらの処理24〜29は、DSP11が内部メモリ17の命令コードを実行することによって実現する。処理35〜38は、DSP11が内部メモリ17の命令コードを実行すること、及びDMAコントローラ18が内部メモリ17のデータをデータバス12に出力することによって実現する。30〜34を付した四角形はテーブルやバッファを表し、テーブルにデータが記憶され、又はバッファに実行先のアドレスが記憶される。具体的には、1個のDSP11は、WriteBuffer、AddStartup、AddHandler、SelectDevice及びReadBufferの5つの処理24〜28のうちのいずれかを行う。WriteBufferはメッセージ出力バッファ30へprintf処理が作成したメッセージのデータを書き込む処理である。AddStartupはUART16及びVMEバス4のそれぞれに対してメッセージの出力を開始するスタートアップ処理のプログラムの先頭アドレスをスタートアップ管理テーブル33に登録する処理である。AddHandlerはUART16及びVMEバス4のそれぞれに対してデバイス完了割り込みを受けた後、メッセージを出力する割り込みハンドラの先頭アドレスをハンドラ管理テーブル34に登録する処理である。SelectDeviceはUART16及びVMEバス4のいずれかを出力スタートバッファ31及び出力ハンドラバッファ32に登録する処理である。ReadBufferはメッセージ出力バッファ30からメッセージのデータを読み出す処理である。
本実施形態に係るDSPカード試験装置1では、ホストCPU8が、1個のDSP11に対して、処理27を行うように依頼する。換言すれば、DSP11に対してDSP11の外部から依頼可能な処理は1種類だけである。処理24〜28に対応するそれぞれの命令コードを、DSP11が内部メモリ17から読み出してそれぞれの命令コードを実行することによって5つの処理24〜28は行われる。これらの処理24〜28のうちの1つ以上の処理が協働することによって、いずれかの出力デバイスを用いてメッセージの出力を制御する処理であるメッセージ出力制御処理29が実行される。この依頼をDSP11が実行することによって、フラッシュROM14に保持されるソフトウェアを更新することなく、あるいは、DSP11の動作状態に依存せず、ホストCPU8によって、DSP11からメッセージ出力先のデバイスを動的に変更可能になる。
また、内部メモリ17には、printfの80文字分の文字列といったメッセージを記憶するメッセージ出力バッファ30と、このメッセージ出力バッファ30からメッセージを読み出して、対象デバイスに対してメッセージの出力を開始するスタートアップ処理のプログラムの先頭アドレスを記憶する出力スタートアップバッファ31と、メッセージの出力が終了したときに生成される送信完了割り込み信号を受けて、メッセージ出力バッファ30からデータを読み出し、対象デバイスに対してメッセージを出力する処理プログラムである割り込みハンドラの先頭アドレスを記憶する出力ハンドラバッファ32とが確保されている。内部メモリ17には、デバイス別のスタートアップ処理のプログラムの先頭アドレスを記憶するスタートアップ管理テーブル33、及びデバイス別の割り込みハンドラのプログラムの先頭アドレスを記憶するハンドラ管理テーブル34も確保されている。
また、処理35はUART用の送信完了割り込みハンドラによる処理であり、UART16に対してメッセージを出力する。処理36はVMEバス用の送信完了割り込みハンドラによる処理であり、VMEバス4に対してメッセージを出力する。処理37はUART用のスタートアップ処理であり、UART16に対してメッセージの出力を開始する。処理38はVMEバス用のスタートアップ処理であり、VMEバス4に対してメッセージの出力を開始する。内部メモリ17には、これらの割り込みハンドラの先頭アドレスを記憶するテーブルである割り込みベクタも確保されている。
従って、各DSP11は、DSPカード試験装置1の試験の開始前においてはUART16によるメッセージの出力処理と、VMEバス4を介した遠隔端末7によるメッセージの出力処理とをメッセージ出力制御処理29に登録する処理を行う。又、ホストCPU8は、DSPカード試験装置1の起動後においてはUART16によるメッセージの出力処理と遠隔端末7によるメッセージの出力処理との切り替えをすべてのDSP11毎に行う。
(4)動作の説明
(4−1)各DSP11の初期設定方法
図4はN個のDSP11のうちの第1のDSP11の初期設定手順を説明するためのフローチャートである。ステップA1において、第1のDSP11は、図1のaに示すように、フラッシュROM14から試験用のプログラムを内部メモリ17にロードしてこのプログラムを起動する。ステップA2において、メッセージ出力制御処理29を含むアプリケーションは、デバイス別のスタートアップ処理の登録処理を行う。アプリケーションは、図3のaに示すように、UART16用スタートアップ処理の先頭アドレスをスタートアップ管理テーブル33に登録する。ステップA3において、アプリケーションは、このスタートアップ管理テーブル33にVMEバス用スタートアップ処理の先頭アドレスをも登録する。引き続き、アプリケーションはデバイス別の割り込みハンドラの登録処理を行う。ステップA4において、アプリケーションは、図3のbに示すように、UART16用の送信完了割り込みハンドラの先頭アドレスをハンドラ管理テーブル34に登録する。ステップA5において、アプリケーションは、このハンドラ管理テーブル34に、VMEバス4用の送信完了割り込みハンドラの先頭アドレスをも登録する。
ステップA6において、アプリケーションはデフォルトのメッセージ出力デバイスの選択処理を行う。アプリケーションは、図3のcに示すように、そのデフォルトのメッセージ出力デバイスを指定する。具体的には、アプリケーションは、初期設定において、UART16及びVMEバス4のうちUART16の指定デバイスに対応するスタートアップ処理の先頭アドレスを、スタートアップ管理テーブル33から読み出して、この先頭アドレスを、出力スタートアップバッファ31に設定する。アプリケーションは、UART16の送信完了割り込みハンドラの先頭アドレスを、ハンドラ管理テーブル34から読み出して、この読み出した先頭アドレスを、出力ハンドラバッファ32に設定する。
また、割り込みベクタには、それぞれがデバイス毎に異なるベクタ値を与えられた割り込みハンドラのアドレスが記憶されている。ステップA7において、最後に、アプリケーションは、後述する図12のaの処理に使用されるデバイス変更(又はデバイス切り替え)処理用の割り込みベクタへデバイス変更処理のアドレスを登録する。ホストCPU8により、割り込みによるデバイス変更処理の要求が出されたときに、DSP11は割り込みベクタを参照し、メッセージを出力するデバイスを変更する。このため、DSP11が複数のメッセージ出力デバイスを登録した場合でも、DSP11はこれらのデバイスのうち、1つを用いてメッセージを出力できる。
DSPカード2上の他のDSP11(第2のDSP11〜第NのDSP11)の初期設定手順も、第1のDSP11の初期設定手順と同じである。2〜M枚目の他のDSPカード2上のN個のDSP11についての初期設定手順も1枚目のDSPカード2上のN個のDSP11についての初期設定手順と同じである。
(4−2)各DSP11のUART16へのメッセージの出力方法
図5から図9を参照してDSPカード2上の各DSP11のUART16へのメッセージ出力手順について述べる。図5は第1のDSP11のメッセージ出力を実行するメインプログラムの手順を説明するためのフローチャートである。このDSP11は、フラッシュROM14から試験用のプログラムを読み込み、決められた試験項目に沿った処理を行う(ステップB1)。DSP11がこのプログラムを実行することによってメッセージ出力制御処理29を含むアプリケーションが起動する。このアプリケーションはprintf処理を実行する(ステップB2)。1つの試験項目についてのステップB2の処理が行われた後、別の試験項目についての試験とその結果出力とが行われる。
図6はprintf処理を実行するサブプログラムの手順を説明するためのフローチャートである。図7は第1のDSP11内部におけるメッセージの出力機能を説明するための図である。アプリケーションがprintf処理を用いたメッセージの出力要求を実行すると、ステップC1において、このprintf処理を実行するプログラムは出力対象のメッセージを作成する。このメッセージの作成後、ステップC2において、図7のaに示すように、アプリケーションは処理24であるWrite Bufferを呼び出す。
図8はWrite Bufferの処理プログラムの手順を説明するためのフローチャートである。ステップD1において、Write Bufferは、図7のbに示すように、出力対象のメッセージをメッセージ出力バッファ30に書き込む。ステップD2において、図7のcに示すように、Write Bufferは出力スタートアップバッファ31にその先頭アドレスが書き込まれたスタートアップ処理を実行する。これにより、UART用スタートアッププログラムが起動する。
図9はUART用のスタートアップ処理のプログラムの手順を説明するためのフローチャートである。このUART用スタートアッププログラムは、ステップE1において、処理28であるRead Bufferを呼び出す。このRead Bufferは、図7のdに示すように、メッセージ出力バッファ30から、UART16の出力処理の容量に応じたサイズのメッセージを読み出す。ステップE2において、Read Bufferは、UART16にメッセージを出力する(図7のe及び図1のb参照)。
この出力以降は、UART16が送信完了割り込みを発生させるたびに、出力ハンドラバッファ32に設定された割り込みハンドラ(ここではUART handler)が起動して、メッセージ出力バッファ30のデータが空になるまでUART用スタートアップと同じ処理であるRead Buffer、及び読み出したメッセージをUART16に出力する処理を繰り返す(図7のf及びg参照)。一例として、信号処理の過程において、5文字や10文字など最大80文字までのメッセージがメッセージ出力バッファ30に溜められる。メッセージ出力の処理のときに、このメッセージ出力バッファ30にあるデータをDSP11は取得して、文字データをUART16へ出力する。一文字ずつのデータをDSP11は取得してメッセージ出力バッファ30のデータが空になると処理を終える。
全ての試験処理が終了すると、DSP11は、終了処理を行い(図5のステップB3)、プログラムの処理を完了する。また、DSPカード2上の他のDSP11(第2のDSP11〜第NのDSP11)のメッセージ出力手順も、第1のDSP11のメッセージ出力手順と同じである。2〜M枚目のDSPカード2上のN個のDSP11についてのメッセージ出力手順も1枚目のDSPカード2上のN個のDSP11についてのメッセージ出力手順と同じである。
(4−3)ホストCPU8による各DSP11の出力デバイス変更方法
ホストCPU8は、各DSPカード2のすべてのDSP11に対して、メッセージを出力するデバイスをUART16からVMEバス4、すなわち遠隔端末7側に切り替えるように変更指令することもできる。試験を行う者が、遠隔端末7を操作することによって、遠隔端末7は、メッセージの出力先のデバイスを含む指令を、ホストCPU8に対して通知する。ホストCPU8はDSP11に対して、個別にメッセージの出力デバイスを切り替えるように指令する。
図10はホストCPU8によるメッセージ出力先の変更手順を説明するためのフローチャートである。ステップF1において、ホストCPU8は、メッセージを出力するデバイスがVMEバス4であるかどうかを遠隔端末7からの指令に基づいて判定する。ホストCPU8が遠隔端末7によってVMEバス4へメッセージを出力するように指令された場合には、YESルートを通り、ステップF2において、ホストCPU8は割り込みベクタをMに設定する。ステップF3において、ホストCPU8はこの計算した指定ベクタ(割り込みベクタM)と、変更対象のDSPカードのスロット位置とに基づいて、図1のcに示すように、VMEバス4を経由した割り込みを出力する。
変更対象のDSPカードは、受けた割り込みベクタがデバイス種別に対応しているため、この割り込みベクタに応じた割り込みハンドラを起動する。ここではVMEバス4を例として説明する。図11(a)はDSPカード2の第1のDSP11によるメッセージ出力デバイスの変更手順を説明するためのフローチャートである。図12はこのDSP11内部におけるデバイス切り替え機能を説明するための図である。起動した割り込みハンドラは、ステップF6において、図12のaに示すように、処理27であるSelect Deviceを呼び出す。図11(b)はこのSelect Device処理を実行するサブプログラムの手順を説明するためのフローチャートである。ステップF7において、Select Deviceは指定デバイスを選択する。具体的には、Select Deviceは図12のbに示すように、指定されたデバイスとして例えばVMEバス4に対応したスタートアップ処理の先頭アドレスを、スタートアップ管理テーブル33から読み出し、この読み出した先頭アドレスを図12のcに示すように、出力スタートアップバッファ31に設定する。続いて、Select Deviceは、図12のdに示すように、指定されたデバイスに対応した送信完了割り込みハンドラの先頭アドレスを、ハンドラ管理テーブル34から読み出し、この読み出した先頭アドレスを、図12のeに示すように、出力ハンドラバッファ32に設定する。このように、ホストCPU8は、UART16及びVMEバス4のいずれかを選択する処理を各DSP11について個別に行う。
また、DSPカード2の他のDSP11(第2のDSP11〜第NのDSP11)によるメッセージ出力デバイスの変更手順も第1のDSP11によるメッセージ出力デバイスの変更手順と同じである。2〜M枚目のDSPカード2のすべてのDSP11によるメッセージ出力デバイスの変更手順も1枚目のDSPカード2の各DSP11によるメッセージ出力デバイスの変更手順と同じである。
なお、図10のステップF1において、メッセージをVMEバス4とは別のデバイスに出力する場合には、NOルートを通り、ステップF4において、ホストCPU8は遠隔端末7からの指令に基づいて、メッセージを出力するデバイスを、UART16にするかどうかを判定し、メッセージをUART16に出力する場合には、YESルートを通り、ステップF5において、ホストCPU8は、割り込みベクタをNに設定する。ホストCPU8はこの割り込みベクタNを用いて、VMEバス4を経由した割り込みを出力する。ステップF4において、ホストCPU8がメッセージ出力デバイスをUART16にしない場合には、NOルートを通り変更処理を終える。ホストCPU8が他のDSP11(第2のDSP11〜第NのDSP11)に対して出力デバイスを変更するときの変更手順も、ホストCPU8が第1のDSP11に対して出力デバイスを変更するときの変更手順と同じである。
(4−4)各DSP11のVMEバスメッセージ出力方法
図13は第1のDSP11のVMEバス4へのメッセージ出力の手順を説明するためのフローチャートである。メッセージ出力制御処理29を含むアプリケーションがprintf処理を用いたメッセージの出力要求を実行すると、このprintf処理を実行するプログラムは出力対象のメッセージを作成する。printf処理は、図7のbに示したUARTスタートアップが起動される直前までの処理と同一である。
このメッセージを作成した後、図7のaに示すように、アプリケーションはWrite Bufferを呼び出す。このWrite Bufferは、図7のbに示すように、メッセージをメッセージ出力バッファ30に書き込み、図7のcに示すように、出力スタートアップバッファ31にその先頭アドレスが書き込まれたスタートアップ処理を実行する。これにより、VMEバス用スタートアップが起動する。VMEバス用スタートアッププログラムは、処理28であるRead Bufferを呼び出す。Read Bufferは、メッセージ出力バッファ30からVMEアドレス空間の21や22の容量に応じたサイズのメッセージを読み出し、この読み出したメッセージを、VMEメモリ領域19に割り当てられたVMEアドレス空間の21や22によって表されるメモリ領域のアドレスへ宛てて出力する。この宛先となるVMEアドレスは、DSPID、自DSPカードのスロット位置、及びcontrol Baseアドレスを用いてDSP11によって算出される。
なお、VMEアドレス空間のメモリ領域21や22は、メッセージ出力バッファ30のサイズと等しいか、それ以上の容量とするため、VMEバス用スタートアッププログラム内にて全メッセージを一度にVMEバス4へ出力する。このため、UART16の例と異なり、VMEバス用の送信完了割込みは不要となる。
そして、DSP11は、VMEアドレス空間の20によって表されるメモリ領域のVMEアドレスへ宛てて、出力メッセージのバイトサイズを出力する。この宛先となるVMEアドレスは、DSPID、自DSPカードのスロット位置、及びcontrol baseアドレスを用いてDSP11が算出する。ホストCPU8は、定期的にメモリ領域20を検索して、0以外の数値がメモリ領域20に存在する場合は、その数値が記憶されている領域に対応するメモリ領域21〜23に記憶されているメッセージを出力する。このメッセージの出力が完了した後、ホストCPU8は、メッセージサイズが記憶された当該領域を0クリアする。UART16の処理速度はLAN6の通信速度に比べて遅いため、ホストCPU8は、これらのDSPカード2から出力されるシリアルのメッセージデータをまとめてLAN6に出力することができる。LAN6は高速のデータを伝送可能であるため、各DSPカード2のUART16から出力される低速のシリアルデータはまとめてLAN6を伝送可能である。
以上説明したように、本発明によれば、M枚のDSPカード2との間で同一のVMEバックプレーンを共有するホストCPU8により、対象となるDSPカード2のメッセージを出力するデバイスに対して、動的な切り替えを任意のタイミングで実現することができる。
また、DSPカード2のメッセージ出力先のデバイスをホストCPU8が切り替えることにより、従来のDSPカード66の試験環境において必要とされた2台以上の端末76が不要となる。さらに遠隔端末7はLAN6といった汎用的なネットワークインターフェースを用いる事により、統一的にすべてのDSPカード2上の出力メッセージを集中的に管理できるようになる。これにより、DSPカード2の製造試験時において、DSP開発環境用PC67とJTAGケーブル68とからなる高額な試験装置を準備する必要がなくなる。換言すれば、メッセージの表示機能であるコンソール機能をホストCPU8が持つことができ、ホストCPU8はこのコンソール機能を一元管理することができる。このようにして、本発明によれば、コスト低減や作業効率の向上に寄与することができる。
UART16がデータバス12に接続されたままの状態で、遠隔端末7からホストCPU8に対して、メッセージの出力先のデバイスが切り替えられるように指令されるので、それぞれのDSPカード2の試験結果がUART16とVMEバス4とに切り替え出力されるようになる。
また、本実施形態に係るDSPカード試験装置1は、ホストCPU8によって実行されるプログラムやDSPカード2に設けられるDSP11のプログラムを改修することなく、メッセージをUART16及びVMEバス4に出力することもできる。従って、このDSPカード試験装置1によれば、試験用のソフトウェアと、出荷用のソフトウェアとを分けずに、複数枚の同じDSPカード2を試験することが可能になる。DSPカード試験装置1の起動後においても、printf文の実行によって出力されるメッセージをVMEバス4に出力するようにホストCPU8を介して操作者が指示できるようになる。
例えば20枚のDSPカード2をシャーシに装着した状態で試験を行う場合において、試験対象の20枚のDSPカード2のうちの1枚のDSPカード2において、外部記憶装置15が壊れているものとする。試験員は、遠隔端末7を介して20枚のDSPカード2から出力されるメッセージを確認することによって、正常動作している19枚のDSPカード2の試験を完了させる。異常のある1枚のDSPカード2を試験員は知ることができる。技術者は遠隔端末7のみ注目すれば良いため、20台の端末76を操作する場合に比べて、業務効率の大幅な改善が図れる。
尚、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。上記の実施形態では、各DSP11はprintf文の実行による文字列をメッセージとして出力していたが、本発明のDSPカード試験装置1はこれらのDSP11からprintf以外の出力関数を用いてメッセージを出力してもよい。
また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
1…DSPカード試験装置、2…DSPカード、3…コネクタ、4…VMEバス、5…CPUボード、6…LAN、7…遠隔端末(表示装置)、8…ホストCPU、9…インターフェース回路、10…メモリ(バッファ)、11…DSP(ディジタルシグナルプロセッサ)、12…データバス、13…バスプロトコル変換部、14…フラッシュROM、15…外部記憶装置、16…UART(メッセージ出力デバイス)、17…内部メモリ、18…DMAコントローラ、19…VMEメモリ領域、20〜23…メモリ領域、24〜29,35〜38…処理、30…メッセージ出力バッファ、31…出力スタートアップバッファ、32…出力ハンドラバッファ、33…スタートアップ管理テーブル、34…ハンドラ管理テーブル。