(57)【要約】【課題】  ＣＯＲＢＡを利用してのＴＴＹ通信機能を利用可能にし、Ｅメール通信を実現することができるソフトウェアを搭載したソフトウェア無線機を提供する。【解決手段】  モデム部１ｂは、一定周期のタイミングで信号処理部１ｃのＴＴＹソフトウェア２１に対してデータ要求を行う。すると、ＴＴＹソフトウェア２１は、ＴＴＹソフトウェア２１内のバッファに蓄積されたデータがモデム部１ｂへ送信すべきデータの閾値以下になっている場合はデータ制御部１ｄに対して同様のデータの要求を行う。これにより、データ制御部１ｄは、受信した要求に対応するデータをＴＴＹソフトウェア２１へ送信する。そして、ＴＴＹソフトウェア２１はモデム部１ｂに対して要求通りのデータを送信する。このとき、ＴＴＹソフトウェア２１はテレタイプ／データ伝送用モジュール（図示せず）によりＤＳＰ２３，２４を実行させてＴＴＹ通信機能を実現させる。【選択図】  図１
2005124009.tif 000002
【特許請求の範囲】
【請求項１】
ミドルウェアとしてＣＯＲＢＡを使用し、ソフトウェアの分散処理環境で動作するアプリケーションによって無線機能を実現させるソフトウェア無線機であって、
分散オブジェクト相互間で通信を行うためのインタフェースと、
前記分散オブジェクトの何れかからのデータ要求を受け取って一時的に保管するバッファと、
前記分散オブジェクト相互間で通信されるアナログデータとデジタルデータの無線信号をデジタル信号として処理するデジタル信号処理手段と、
前記分散オブジェクトの何れかからデータ要求を受け付けたとき、前記バッファに所定の閾値以上のデータが保存されているときは、前記データ要求を満たすデータ量を引数として前記分散オブジェクトに対応する前記インタフェースを呼び出し、前記バッファに所定の閾値以下のデータが保存されているときは、他の分散オブジェクトから所望のデータを取得した後に、前記データ要求を満たすデータ量を引数として前記分散オブジェクトに対応する前記インタフェースを呼び出すソフトウェアとを備え、
前記ソフトウェアが、前記インタフェースによる前記分散オブジェクト相互間の通信と前記デジタル信号処理手段によるデジタル信号処理とに基づいてテレタイプ／データ通信機能を実現させることを特徴とするソフトウェア無線機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＯＲＢＡ（Common Object Request Broken Architecture）対応のソフトウェア分散処理構造を備えたソフトウェア無線機に関し、特に、テレタイプ／データ通信機能を追加するためのソフトウェアを付加したソフトウェア無線機に関する。
【背景技術】
【０００２】
従来より、ソフトウェアによって無線機の実行プログラムを切り替えることにより、無線機における同一のハードウェアリソースで複数の無線通信方式に対応できるソフトウェア無線機が広く知られている。このように、ソフトウェアの変更により無線機の構成を変更することができるソフトウェア無線機においては、ネットワークから所望の機能を定義したファイルをダウンロードすることによって、ソフトウェア無線機内のモジュールの構成を変更することにより複数の無線通信方式を実現することが可能となる。
【０００３】
ところで、ソフトウェアを異なるＯＳ（Operation System）やマシンで動作させるような移植性に富んだＰｏｓｉｘ（Portable Operating System Interface）系のＯＳ上で動作するソフトウェア無線機のアプリケーションソフトウェアは、ＣＯＲＢＡとアプリケーションの配置や利用を支援する共通のアプリケーションサービスを利用したソフトウェア実行環境を持つ複数の演算処理装置を備えている。そして、ソフトウェア無線機は、これらの複数の演算処理装置を用いてソフトウェアの分散処理を行うことによって、移植性、保守性、及び拡張性の向上を図っている。尚、ＣＯＲＢＡとは、分散環境でクライアントがサーバのオブジェクトにアクセスするためのソフトウェアバスを提供する標準技術であり、ＯＭＧ（0bject Management Group）という標準化団体が策定した仕様であって、ネットワーク上で異なるアプリケーションソフトウェアで作成されたデータ同士でメッセージ交換を行う機能を備えている。つまり、ミドルウェアとしてＣＯＲＢＡを用いることによって、プラットフォームやプログラム言語の壁を越えてオブジェクト同士の通信が可能となる。
【０００４】
また、ミドルウェアを使用してソフトウェアの分散処理構造を実現するソフトウェア無線機においては、ＣＯＲＢＡのようなミドルウェアとのインタフェースを持たないアプリケーションや、ＯＳの乗らない演算処理装置、ハードウェアデバイスなどは利用できなかったが、これら演算処理装置やハードウェアデバイスとの橋渡し的なアプリケーションやデバイスドライバを作成することによって、演算処理装置やハードウェアデバイスなどの相互利用を可能にした。さらに、現在は、このようなアプリケーションを利用することによって、ソフトウェア無線機において音声通信などのアナログ信号の伝送を可能にしている。このとき、ソフトウェア無線機での音声通信において、アナログ信号の処理や伝送方法は、１つのＤＳＰ（Digital Signal Processor）を相手にしてのデータの送受信を行う処理のみで実現が可能である。
【０００５】
また、下記の特許文献１には、分散オブジェクト環境においてクライアントからサーバへの処理依頼を非同期通信で行う技術が開示されている。この技術によれば、クライアント分散オブジェクトからサーバ分散オブジェクトへの処理依頼を非同期で行うことにより、サーバ分散オブジェクトが処理を行っている最中にクライアント分散オブジェクトが他の所望の処理を行ったり、クライアント分散オブジェクトで何ら操作を行わなくてもサーバ分散オブジェクトの例外処理を行うことができる。さらに、下記の特許文献２には、個別に開発されたプログラム間を容易に連携させることができるプログラム間バインド方法の技術が開示されている。この技術によれば、個々のプログラムを開発した後に所望のプログラム同士を連携させて新たなプログラムとして実行させることができる。
【特許文献１】特開平１１−１１０２１６号公報（段落番号００１３〜００４８、及び図１〜図３参照）
【特許文献２】特開２００１−５６５２号公報（２〜５ページ、及び図１〜図１０参照）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来のソフトウェア無線機においてＢＢ（Base Band）多値変調モデム変復調処理を行うには、ＤＳＰのもつバッファ量や演算処理等の制約があるため、１つのＤＳＰのみでのデータの送受を行うだけではなく、複数のＤＳＰを用いたデータの授受アルゴリズムが必要となってくる。ところが、従来のソフトウェア無線機に搭載されたソフトウェアは、１つのＤＳＰを処理するようなアルゴリズムになっているので、ＣＯＲＢＡとアプリケーションの配置や利用を支援する共通のアプリケーションサービスを利用したソフトウェア実行環境を持つ複数の演算処理装置を用いて、ソフトウェア分散処理を行う環境上で動作するアプリケーション、演算処理装置、ハードウェアデバイスなどによってテレタイプ（ＴＴＹ：Tele Type）／データ通信機能（以下、ＴＴＹ通信機能という）を実現することは不可能である。また、上記の特許文献１や特許文献２に開示されている技術においても、複数のＤＳＰを用いたデータの授受アルゴリズムを持っていないので、そのままの技術を応用してもＴＴＹ通信機能を実現することはできない。尚、ＴＴＹ通信とは、非同期通信を行う際に伝送単位を決めずに１文字ずつ独立して送る伝送方式であり、キーボードなどによって入力した文字情報をそのまま表示したい場合には有効な伝送方式である。
【０００７】
本発明は、以上のような問題点に鑑みてなされたものであり、ＣＯＲＢＡを利用してのＴＴＹ通信機能を利用可能にし、Ｅメール通信を実現することができるソフトウェアを搭載したソフトウェア無線機を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上記の目的を達成するために創案されたものであり、ミドルウェアとしてＣＯＲＢＡを使用し、ソフトウェアの分散処理環境で動作するアプリケーションによって無線機能を実現させるソフトウェア無線機であって、分散オブジェクト相互間で通信を行うためのインタフェースと、分散オブジェクトの何れかからデータ要求を受け取って一時的に保管するバッファと、分散オブジェクト相互間で通信されるアナログデータとデジタルデータの無線信号をデジタル信号として処理するデジタル信号処理手段と、分散オブジェクトの何れかからデータ要求を受け付けたとき、バッファに所定の閾値以上のデータが保存されているときは、そのデータ要求を満たすデータ量を引数としてその分散オブジェクトに対応するインタフェースを呼び出し、バッファに所定の閾値以下のデータが保存されているときは、他の分散オブジェクトから所望のデータを取得した後に、データ要求を満たすデータ量を引数として分散オブジェクトに対応するインタフェースを呼び出すソフトウェアとを備え、そのソフトウェアが、インタフェースによる分散オブジェクト相互間の通信とデジタル信号処理手段によるデジタル信号処理とに基づいてテレタイプ／データ通信機能を実現させることを特徴とする。
【０００９】
本発明のソフトウェア無線機は、ＣＯＲＢＡによるソフトウェア分散処理構造のソフトウェア無線機のアプリケーションソフトにおいて、テレタイプ／データ通信（ＴＴＹ通信）を利用可能にするソフトウェアを搭載したものである。さらに詳細に述べれば、本発明のソフトウェア無線機は、分散オブジェクト相互間で通信を行うためのＩＤＬ(Interface Definition Language)インタフェースと、分散オブジェクトであるモデム部のからデータ要求を受け取って一時的に保管したり分散オブジェクトであるデータ制御部から取得したデータを一時的に保管したりする複数のリングバッファと、データ制御部から取得したデータをデジタル処理してモデム部へ渡すためのデジタル信号処理手段である複数のＤＳＰと、ＴＴＹ通信機能を実現させるＴＴＹソフトウェアとを備えた構成となっている。そして、ＴＴＹソフトウェアは、モデム部からデータ要求を受けたとき、そのデータ要求に対して、所定のリングバッファに予め定めた量に達するデータが記憶されているときは、予め定めた量のデータを引数としてモデム部のインタフェースを呼び出し、所定のリングバッファに予め定めた量に達しないデータが記憶されているときは、データ制御部に対してデータ要求を行うことによって所望のデータ量を満たし、そのデータ量を引数としてモデム部のインタフェースを呼び出す。これによって、ＴＴＹソフトウェアは、ＩＤＬインタフェースによって分散オブジェクト相互間の通信を実現させ、複数のＤＳＰによるデジタル信号処理によってテレタイプ／データ通信機能を実現させることができる。このような構成のソフトウェア無線機によれば、ＣＯＲＢＡとアプリケーションの配置や利用を支援する共通のアプリケーションサービスを利用したソフトウェア実行環境をもつ複数の演算処理装置を用いてソフトウェア分散処理を行うことで、無線機の移植性、保守性、及び拡張性が向上させると共に、ＴＴＹ通信機能を実行させてＥメール通信を行うことができる。
【発明の効果】
【００１０】
本発明のソフトウェア無線機によれば、ＣＯＲＢＡ未対応のハードウェアをＣＯＲＢＡに接続するためのソフトウェア及びハードウェアを備えた構成であって、モデムアプリケーション、データ制御部アプリケーション、及びＤＳＰのそれぞれとデータの送受信を行うための３つのリングバッファを備えると共に、それらのリングバッファに対応する３つのスレッド（プロセス）とＤＳＰとの間でタイミングを吸収するためのＤＰ-ＲＡＭとを備える構成とした。そして、ＣＯＲＢＡによるソフトウェア分散処理構造のソフトウェア無線機のアプリケーションソフトにおいて、さらに、ＴＴＹ通信機能を利用可能にするためのＴＴＹソフトウェアを付加した。これによって、本発明のソフトウェア無線機は、ＣＯＲＢＡによるソフトウェア分散処理構造を持つソフトウェア無線機のアプリケーションにおいて、Ｅメール通信（つまり、ＴＴＹ通信）を行うことができる。さらに、上記の構造によるＴＴＹソフトウェアは既存のソフトウェア無線機への流用が可能であるので、このＴＴＹソフトウェアを既存のソフトウェア無線機に付加することによって、既存機能である音声通信と付加機能であるＴＴＹ通信とを共に動作させることができる。
【発明を実施するための最良の形態】
【００１１】
≪ソフトウェア無線機の概要≫
本発明のソフトウェア無線機は、ミドルウェアＣＯＲＢＡ（以下、単にＣＯＲＢＡという）とアプリケーションの配置や利用を支援する共通のアプリケーションサービスを利用したソフトウェア実行環境を持つ複数の演算処理装置を用いて、ソフトウェア分散処理を行う環境上でソフトウェア無線機において使用するＥメール送受信端末を使用したＴＴＹ通信を可能にするための無線機能を実現するためのソフトウェアを搭載したことを特徴とする。つまり、本発明のソフトウェア無線機は、ＣＯＲＢＡによるソフトウェア分散処理構造のソフトウェア無線機のアプリケーションソフトにおいて、ＴＴＹ通信を利用可能にするソフトウェアを搭載したものであり、以下、このようにＴＴＹ通信機能を実現するソフトウェアをＴＴＹソフトウェアと称することにする。本発明のソフトウェア無線機によれば、ＣＯＲＢＡとアプリケーションの配置や利用を支援する共通のアプリケーションサービスを利用したソフトウェア実行環境をもつ複数の演算処理装置を用いてソフトウェア分散処理を行うことで、無線機の移植性、保守性、及び拡張性が向上させると共に、ＴＴＹ通信機能を実行させてＥメール通信を可能にしている。
【００１２】
また、本発明のソフトウェア無線機において配置されるアプリケーションソフトウェア（つまり、ＴＴＹソフトウェア）は、それぞれ、モデム部、信号処理部、データ制御部など、その他の演算処理装置上で様々な機能を有して処理の分散化を行っている。さらに、信号処理部での機能拡張として、ＤＳＰに対してＴＴＹ処理機能とＢＢ多値変調モデム変復調処理機能とを追加している。ＢＢ多値変調モデム変復調処理におけるデジタル信号処理種別としては、情報量の多いデータを狭帯域によって高速通信することができる多値伝送変調方式である１６ＱＡＭ（１６Quadrature Amplitude Modulation）、エラー耐性は高いがオーバーヘッドの大きい４位相変調方式であるＱＰＳＫ（Quadrature Phase Shift Keying）、及び位相変調を利用したデジタル変調方式であるＢＰＳＫ（Binary Phase Shift Keying）の３つの処理方式を使用している。以下に各デジタル信号処理方式についてさらに詳しく説明する。
【００１３】
１６ＱＡＭとはデジタル信号をアナログ信号に変換する変調方式の一つであり、１シンボルで４ビットのデータを送るデジタル変調方式の一種である。位相と振幅をそれぞれ４種類ずつ持ち、それらを組み合わせることで１６種類の値を作ってデータ送信に用いている。このような１６ＱＡＭ変調方式は他のデジタル変調方式に比べて１シンボル当りのデータ量が多い。
ＱＰＳＫとはデジタル信号をアナログ信号に変換する変調方式の一つであり、変換された後の波における４つの異なる位相にそれぞれ１つの値を割り当てることにより、１回の変調で４値（２ビット）のデータを送受信することが可能であり、デジタル衛星放送やケーブルモデムなどに用いられる変調方式である。
【００１４】
ＢＰＳＫとは位相変調を利用したデジタル変調方式の１つであり、最も単純な位相変調方式で、キャリアの位相を“０”、キャリアとは逆の位相（１８０度ずれた位相）を“１”に割り当て、受信側ではこのキャリアからの位相のずれを検出することで送られた信号が“０”なのか“１”なのかを識別する。尚、ＢＰＳＫは、変調出力の振幅が一定なため、電力効率の高い増幅器を利用することができて消費電力面では有利であること、及び変調方式として単純で効率はあまりよくないが、その分通信エラーに比較的強いという特徴がある。
以上のデジタル信号処理機能を持つＤＳＰを使用することによりＴＴＹ通信を実現しＥメール機能を可能とする。
【００１５】
≪ソフトウェア無線機の構成≫
図１は、本発明のソフトウェア無線機におけるＴＴＹソフトウェアと、ミドルウェアとしてのＣＯＲＢＡと、ＣＯＲＢＡ未対応ハードウェアデバイスとの関係を示す図であり、（ａ）はＣＯＲＢＡを用いて分散処理を実現するソフトウェア無線機のハードウェア構成図、（ｂ）は（ａ）のモデム部、信号処理部、及びデータ制御部の詳細な構成図である。
【００１６】
図１（ａ）において、ソフトウェア無線機１のハードウェア構成は、無線通信を実行するＲＦ部１ａと、ＲＦ部１ａに対して通信制御を行うモデム部１ｂと、ＴＴＹ通信機能とＢＢ多値変調モデム変復調処理機能とを追加してデジタル信号処理を行う信号処理部１ｃと、１６ＱＡＭ、ＱＰＳＫ、及びＢＰＳＫの３つの処理方式でデータ制御を行うデータ制御部１ｄと、無線通信の回線をネットワーク上に接続するネットワーク部１ｅと、ＬＡＮ等に接続された無線通信回線のセキュリティを確保するセキュリティ部１ｆとが、バス規格の一つであるCompactＰＣＩ（Peripheral Component Interconnect）１ｊに接続された構成となっている。
【００１７】
また、図１（ｂ）において、モデム部１ｂは、モデム部１ｂのＣＯＲＢＡを実行させるモデム部ＣＯＲＢＡアプリケーション１１と、入出力ポートを持つ読み書き可能なメモリであるＤＰ-ＲＡＭ（Dual Port−Random Access Memory）１２と、書き換え可能な大規模集積回路であるＦＰＧＡ（Field Programble Gate Arrey）１３とを含んだ構成となっている。
信号処理回路１ｃは、ＴＴＹ通信機能を実現させるＴＴＹソフトウェア２１と、ＴＴＹソフトウェア２１を制御するデバイスドライバ２２と、音声信号を処理してＴＴＹ通信機能を実現させるアナログ処理用ＤＳＰ２３と、ＢＢ多値変調モデム変復調処理機能を実現させるＢＢ多値変調処理用ＤＳＰ２４と、ＴＴＹソフトウェア２１とアナログ処理用ＤＳＰ２３との入出力ポートを持つＤＰ-ＲＡＭ２５と、ＴＴＹソフトウェア２１とＢＢ多値変調処理用ＤＳＰ２４との入出力ポートを持つＤＰ-ＲＡＭ２６とを備えた構成となっている。
データ制御部１ｄは、データ制御部１ｄのＣＯＲＢＡを実行させるデータ制御部ＣＯＲＢＡアプリケーション３１を備えた構成となっている。
【００１８】
そして、モデム部１ｂのモデム部ＣＯＲＢＡアプリケーション１１と信号処理部１ｃのＴＴＹソフトウェア２１とデータ制御部１ｄのデータ制御部ＣＯＲＢＡアプリケーション３１は、それぞれのスケルトン１ｇ及びスタブ１ｈを介して、CompactＰＣＩ内のソフトウェアバスであるＯＲＢ１ｉに接続された構成となっている。尚、データの流れは、データ制御部１ｄのデータ制御部ＣＯＲＢＡアプリケーション３１→信号処理部１ｃのＴＴＹソフトウェア２１→モデム部１ｂのモデム部ＣＯＲＢＡアプリケーション１１という流れになっている。
【００１９】
≪ソフトウェア無線機の動作≫
図２は、図１に示すソフトウェア無線機の構成においてアナログ（音声）データ伝送時におけるアプリケーション間の関係を示す図であり、図３は、図１に示すソフトウェア無線機の構成においてテレタイプ／データ伝送時におけるアプリケーション間の関係を示す図である。したがって、図２、図３を用いて図１における本発明のソフトウェア無線機の動作を説明する。
【００２０】
実際のハードウェアヘのアクセスは、信号処理部１ｃのデバイスドライバ２２を使用することによってモデム部１ｂ、信号処理部１ｃ、及びデータ制御部１ｄの間のデータ授受や、各ハードウェアの起動及び制御などのハードウェアデバイス制御を行うことができる。尚、信号処理部１ｃのＴＴＹソフトウェア２１は、ＣＯＲＢＡ未対応である演算処理装置（図示せず）やハードウェアデバイスデバイス（図示せず）を、他のＣＯＲＢＡ対応アプリケーションから見て、あたかもＣＯＲＢＡ上に存在しているかのようにする機能を有するソフトウェアである。また、実際にソフトウェア無線機１に使用する信号処理部１ｃのＴＴＹソフトウェア２１は、デジタル信号処理に特化したシグナルプロセッサであるアナログ処理用ＤＳＰ２３とＢＢ多値変調処理用ＤＳＰ２４を起動したり、制御したり、あるいは、アナログ処理用ＤＳＰ２３とＢＢ多値変調処理用ＤＳＰ２４の相互のデータ授受を実現させたりするものである。
【００２１】
信号処理部１ｃのＴＴＹソフトウェア２１において、アナログデータを伝送する場合とテレタイプデータ（ＴＴＹデータ）を伝送する場合とではアプリケーションの動作（処理モジュール）が異なるので、アナログ処理用ＤＳＰ２３の系統とＢＢ多値変調処理用ＤＳＰ２４の系統が個別に設けられている。アナログデータ伝送時においては、音声データのリアルタイム性を重視するために図２に示すようなデータの流れになっている。すなわち図２に示すように、データ制御部１ｄのデータ制御部ＣＯＲＢＡアプリケーション（例えば、Ｖｏｉｃｅサーバ）３１からのデータ処理要求をＴＴＹソフトウェア２１のアナログ（音声）用モジュールが受信する（ステップＳ１）。そして、ＴＴＹソフトウェア２１がアナログ処理用ＤＳＰ２３に対して処理要求を行い、処理済のデータをモデム部１ｂのモデム部ＣＯＲＢＡアプリケーション１１へ送信する（ステップＳ２）。
【００２２】
一方、テレタイプ／データ伝送においては図３に示すようなデータの流れになる。つまり、テレタイプ／データ伝送においては、リアルタイム性よりもデータ抜けの無い、正確なデータ伝送が必須であるために、モデム部１ｂにおいてＲＦ部１ａヘデータを伝送するタイミングを作る必要がある。
【００２３】
図３に示すように、モデム部１ｂのモデム部ＣＯＲＢＡアプリケーション１１は、一定周期（例えば２０ｍｓｅｃ）のタイミングで信号処理部１ｃのＴＴＹソフトウェア２１のテレタイプ／データ伝送用モジュールに対してデータ要求を行う（ステップＳ１１）。すると、ＴＴＹソフトウェア２１のテレタイプ／データ伝送用モジュールは、ＴＴＹソフトウェア２１内のバッファに蓄積されたデータがモデム部１ｂへ送信すべきデータの閾値以下になっている場合は、データ制御部１ｄに対して同様のデータの要求を行う（ステップＳ１２）。これによって、データ制御部１ｄのデータ制御部ＣＯＲＢＡアプリケーション（例えば、ＴＴＹサーバ）３１は受信した要求に対応するデータをＴＴＹソフトウェア２１へ送信する（ステップＳ１３）。そして、ＴＴＹソフトウェア２１のテレタイプ／データ伝送用モジュールは、モデム部１ｂのモデム部ＣＯＲＢＡアプリケーション１１に対して要求通りのデータを送信する（ステップＳ１４）。
【００２４】
次に、変調方式に応じてＢＢ多値変調処理用ＤＳＰ２４が処理を行うデータ制御部１ｄからのデータ形式、及びデータフレーム構成について概要を説明する。図４は、図１に示すデータ制御部から送信されるデータフレーム構成図である。図４に示すように、データ制御部１ｄからＴＴＹソフトウェア２１のアプリケーションヘ送信されるデータはフレーム単位とし、１送信フレームのシンボル数は、ＵＷ（ユニークワード）の２８シンボルとＤＡＴＡ（実データ）の１１２シンボルの合計１４０シンボルである。また、各変調方式（１６ＱＡＭ、ＱＰＳＫ、ＢＰＳＫ）毎にパターンの異なるＵＷを使用している。例えば、１６ＱＡＭは“１００１”，“０１１０”…“１０１０”というパターン、ＱＰＳＫは“１０１１”，“０１０１”…“０１１０”というパターン、ＢＰＳＫは“１１００”，“１０１０”…“００１０”というパターンでＵＷを送信している。
【００２５】
ＴＴＹソフトウェア２１のアプリケーションは、データ制御部１ｄより受け取った上記１１２シンボルのデータをＢＢ多値変調モデムであるＢＢ多値変調処理用ＤＳＰ２４へ渡す。このときのデータサイズは、図５に示すようなデータ制御部１ｄから送信されるバイトデータ数とデータシンボル数の関係を示す図のようなデータサイズになる。すなわち、変調方式（１６ＱＡＭ、ＱＰＳＫ、ＢＰＳＫ）によってデータ制御部１ｄからのバイトデータ数とデータシンボル数が異なり、バイトデータ数は、１６ＱＡＭの場合は５６バイト、ＱＰＳＫの場合は２８バイト、ＢＰＳＫの場合は１４バイトとなる。また、データシンボル数は何れの変調方式の場合も１１２となる。
【００２６】
次に、図１の信号処理部１ｃにおけるデータのレート変換処理、及びＴＴＹソフトウェアにおけるデータ処理の動作について説明する。図６は、図１に示す信号処理部１ｃにおけるＢＢ多値変調処理用ＤＳＰ２４からアナログ処理用ＤＳＰ２３へデータを伝送するときのレート変換とデータサイズの概要を示す図である。図６において、データ制御部１ｄのデータ制御部ＣＯＲＢＡアプリケーション３１から、１６ＱＡＭは５６バイト、ＱＰＳＫは２８バイト、及びＢＰＳＫは１４バイトのデータが信号処理部１ｃのＴＴＹソフトウェア２１へ送信されると（ステップＳ２１）、ＴＴＹソフトウェア２１は、ＤＰ-ＲＡＭ２６を介して（ステップＳ２２）、これらのデータをＢＢ多値変調処理用ＤＳＰ２４へ渡す。すると、ＢＢ多値変調処理用ＤＳＰ２４は、これらのデータについて多値変調を行うが、このとき、ＢＢ多値変調処理では全ての信号について８倍のオーバーサンプリングを行う。例えば、１４０シンボル×８倍＝１１２０ワード（２２４０バイト）となるようなオーバーサンプリングを行う（ステップＳ２３）。
【００２７】
さらに、信号処理部１ｃのＤＰ-ＲＡＭ２６は、オーバーサンプリングされたｆｓ＝１２ｋＨｚ，２２４０バイトのデータをＢＢ多値変調処理用ＤＳＰ２４から受け取ってＴＴＹソフトウェア２１に渡す（ステップＳ２４）。すると、ＴＴＹソフトウェア２１は、これらのデータをｆｓ＝１２ｋＨｚ，４８０バイトずつ小分けしてＤＰ-ＲＡＭ２５へ渡す（ステップＳ２５）。そして、ＤＰＲＡＭ２５は、小分けされたデータをアナログ処理用ＤＳＰ２３へ渡す（ステップＳ２６）。
【００２８】
アナログ処理用ＤＳＰ２３は、ＤＰ-ＲＡＭ２５から受信したデータについて、ｆｓ＝１２ｋＨｚからｆｓ＝７２ｋＨｚへのレート変換を行う。このとき、変換レートは７２ｋＨｚ/１２ｋＨｚ＝６であるから、アナログ変調の結果を６倍アップサンプリングすることによって４８０バイトは２８８０バイトとなる（ステップＳ２７）。これによって、ＤＰ-ＲＡＭ２５は、ｆｓ＝７ｋＨｚ，２８８０バイトのデータを受けて（ステップＳ２８）、このデータをＴＴＹソフトウェア２１へ渡す（ステップＳ２９）。さらに、レート変換されたデータをＴＴＹソフトウェア２１からモデム部１ｂのモデム部ＣＯＲＢＡアプリケーション１１へ渡す（ステップＳ３０）。
【００２９】
≪ソフトウェア無線機におけるＴＴＹソフトウェアの動作≫
次に、実際のソフトウェア無線機に使用する具体的なＴＴＹソフトウェアの動作の流れについて詳細に説明する。図７は、本発明のソフトウェア無線機に使用されるＴＴＹソフトウェアにおけるデータ処理の流れを示す概念図である。したがって、図７を用いて、実際のソフトウェア無線機に使用されるＴＴＹソフトウェアの具体的はデータ処理の流れを説明する。図７において、ＴＴＹソフトウェア２１に構成されているＩＤＬインタフェース２１ａは、ＯＳに依存されないインタフェースを定義するＩＤＬ(Interface Definition Language)によって記述されているので、分散環境のＯＳに共通なインタフェースとして用いることができる。したがって、ＣＯＲＢＡ対応ソフトウェアはどのようなＯＳ上でも適用することができる。
【００３０】
モデム部１ｂで動作するモデム部ＣＯＲＢＡ対応アプリケーション１１と、データ制御部１で動作するデータ制御部ＣＯＲＢＡ対応アプリケーション３１と、ＴＴＹソフトウェア２１とは、バス規格の一つであるＣ-ＰＣＩ（Compact-Peripheral Component Interconnect）１ｊに接続された構成となっている。
【００３１】
まず、ステップＳ４１において、モデム部１ｂ上で動作するモデム部ＣＯＲＢＡ対応アプリケーション１１は、ＣＯＲＢＡを通じて、ＴＴＹソフトウェア２１が実装しているＩＤＬインタフェース２１ａ（つまり、ＴＴＹソフトウェア２１で実装している関数）の呼び出しを行い、アナログ信号処理とアップサンプリングの済んだデータの要求を行う。ここで、リングバッファ２１ｂにアナログ信号処理とアップサンプリングの済んだデータが所定のデータ量以上ある場合は、ＴＴＹソフトウェア２１は、モデム部ＣＯＲＢＡ対応アプリケーション１１が実装するＩＤＬインタフェース２１ａの呼び出しを行う。そして、引数として、リングバッファ２１ｂから取り出したデータをＣＯＲＢＡ経由でモデム部ＣＯＲＢＡ対応アプリケーション１１にデータを流すことが出来るＣＯＲＢＡデータ型ヘデータの加工を行う。さらに、ＴＴＹソフトウェア２１は、モデム部ＣＯＲＢＡ対応アプリケーション１１が実装するＩＤＬインタフェース（つまり、モデム部ＣＯＲＢＡ対応アプリケーション１１が実装している関数）を呼び出し、これを引数としてデータを渡す。このとき、ＴＴＹソフトウェア２１からモデム部ＣＯＲＢＡ対応アプリケーション１１への送信データ量は通常は２８８０バイトとなるが、モデム部ＣＯＲＢＡ対応アプリケーション１１からの要求データ量により送信データ量を可変とすることも可能である。尚、リングバッファ２１ｂの処理はＦＩＦＯ（First in First Out：先入れ先出し処理）によって行われる。
【００３２】
次に、ステップＳ４２において、リングバッファ２１ｂに信号処理済のデータが無い場合、又はリングバッファ２１ｂに保存されているデータ量が所定の閥値以下のデータ量である場合は、データ制御部１ｄ上で動作するデータ制御部ＣＯＲＢＡ対応アプリケーション３１に対して信号処理を行うためのデータを要求する。
【００３３】
すると、ステップＳ４３において、データ要求を受けたデータ制御部ＣＯＲＢＡ対応アプリケーション３１は、信号処理を行うデータをＴＴＹソフトウェア２１のＣＯＲＢＡアプリケーションが実装する関数の引数として１フレーム単位でリングバッファ２１ｄへ渡す。このときのリングバッファ２１ｄの処理はＦＩＦＯによって行われる。尚、１フレームのデータ量は、１６ＱＡＭの場合は５６バイト、ＱＰＳＫの場合は２８バイト、ＢＰＳＫの場合は１４バイトである。次に、リングバッファ２１ｄは、引数によって受け取ったデータを、例えば、ＣＯＲＢＡデータ型からＣ/Ｃ++データ型に加工し、デバイスドライバ２２、アナログ処理用ＤＳＰ２３、あるいはＢＢ多値変調処理用ＤＳＰ２４が使用できるデータ型（例えば、Ｃ言語のデータ）に変換してからリングバッファ２１ｄへバッファリングを行う。但し、ＣＯＲＢＡを介してのデータ送受信を行っているのでＣＯＲＢＡのデータ型との変換が必要となる。
【００３４】
つまり、このＴＴＹソフトウェア２１のアプリケーションが実装するリングバッファは、ＴＴＹソフトウェア上で実現されるＣｈａｒ型の配列であるので、ＣＯＲＢＡを介して受け取ったデータをリングバッファに格納するには、ＣＯＲＢＡデータ型（例えば、ＣＯＲＢＡ：：Ｃｈａｒ型）からＣ言語のＣｈａｒ型を取り出す必要があり、直接Ｃ言語のＣｈａｒ型配列にＣＯＲＢＡ：：Ｃｈａｒ型を代入してもエラーとなる。具体的には、ＣＯＲＢＡが持つＣＯＲＢＡ：：Ｃｈａｒ型からＣ言語のＣｈａｒ型を取り出す関数を使って相互変換を実現している。よって、リングバッファのバッファリングの前にＤＳＰ（アナログ処理用ＤＳＰ２３、あるいはＢＢ多値変調処理用ＤＳＰ２４）が使用できるデータ型（Ｃ言語）に変換する必要がある。もちろん、ここで云うリングバッファとは、図７におけるリングバッファ２１ｂ、リングバッファ２１ｃ、及びリングバッファ２１ｄの全てについて適用されるものである。
また、引数として受け取るデータには、制御情報として速度情報が付加されている。例えば、０ｘ０１→１６ＱＡＭ，０ｘ０２→ＱＰＳＫ，０ｘ０３→ＢＰＳＫと云うように速度情報が付加されている。
【００３５】
次に、ステップＳ４４において、ＴＴＹソフトウェア２１は、リングバッファ２１ｄにバッファリングされたデータを取得した速度情報にしたがって取り出し、さらに、デバイスドライバ２２の処理関数を呼び出し、このデータを引数としてデバイスドライバ２２ヘ渡す。すると、デバイスドライバ２２は、デジタルデータ／アナログデータ変換用のＤＳＰであるＢＢ多値変調処理用ＤＳＰ２４側のＤＰ-ＲＡＭ２６のデータ領域ヘデータを書き込む。その後、ＴＴＹソフトウェア２１は、デバイスドライバ２２を通じてＢＢ多値変調処理用ＤＳＰ２４のＤＰ-ＲＡＭ２６ヘデータ書き込みを行ったことを伝える割込みをかける。
【００３６】
ステップＳ４５において、ＢＢ多値変調処理用ＤＳＰ２４は割り込みを受け取ることにより、ＤＰ-ＲＡＭ２６からデータを読み出してＢＢ多値変調信号処理を行う。さらに、ＢＢ多値変調処理用ＤＳＰ２４は信号処理の終了後、信号処理済データをＤＰ-ＲＡＭ２６のデータ領域へ書き込む。これによって、ＢＢ多値変調されたデータは、速度情報に関わらず一定値の２２４０バイトとなる。
【００３７】
次に、ステップＳ４６において、ＴＴＹソフトウェア２１はデバイスドライバ２２の処理関数を呼び出し、ＢＢ多値変調処理用ＤＳＰ２４側のＤＰ-ＲＡＭ２６に書き込まれたデータの読み出しを行い、リングバッファ２１ｃへのバッファリングを行う。このときのリングバッファ２１ｃの処理はＦＩＦＯによって行われる。
【００３８】
さらに、ステップＳ４７において、ＴＴＹソフトウェア２１は、リングバッファ２１ｃでバッファリングされたＢＢ多値変調処理済みデータを４８０バイトづつ取り出し、デバイスドライバ２２の処理関数を呼び出し、これを引数としてデバイスドライバ２２ヘデータを渡す。デバイスドライバ２２は、アナログ処理用ＤＳＰ２３側のＤＰ-ＲＡＭ２５のデータ領域へデータを書き込む。その後、ＴＴＹソフトウェアは、デバイスドライバ２２を通じてアナログ処理用ＤＳＰ２３ヘデータ書き込みを行ったことを伝える割込みをかける。
【００３９】
次に、ステップＳ４８において、アナログ処理用ＤＳＰ２３は割り込みを受け取ることにより、ＤＰ-ＲＡＭ２５からデータを読み出してアナログ信号処理を行う。さらに、アナログ処理用ＤＳＰ２３は信号処理の終了後、信号処理済データをＤＰ-ＲＡＭ２５のデータ領域へ書き込む。このとき、アナログ処理用ＤＳＰ２３は、１２ｋＨｚから７２ｋＨｚへのレート変換を行い、ＢＢ多値変調処理用ＤＳＰ２４においてデジタルからアナログ処理されたデータを７２ｋＨｚ／１６ｋＨｚ＝６倍のアップサンプリングを施すことにより、４８０バイトから２８８０バイトのデータ量となる。
【００４０】
さらに、ステップＳ４９において、ＴＴＹソフトウェア２１は、デバイスドライバ２２の処理関数を呼び出し、アナログ処理用ＤＳＰ２３側のＤＰ-ＲＡＭ２５に書き込まれたデータ（つまり、２８８０バイト）の読み出しを行い、リングバッファ２１ｂへのバッファリングを行う。このときのリングバッファ２１ｃの処理はＦＩＦＯによって行われる。これによって、リングバッファ２１ｂに信号処理済のデータが無い場合や、リングバッファ２１ｂに保存されているデータ量が所定の閥値以下のデータ量である場合でも、前述のステップＳ４１と同様に、ＴＴＹソフトウェア２１は、モデム部ＣＯＲＢＡ対応アプリケーション１１が実装するＩＤＬインターフェース（つまり、モデム部ＣＯＲＢＡ対応アプリケーション１１が実装している関数）を呼び出し、これを引数としてモデム部ＣＯＲＢＡ対応アプリケーション１１へデータを渡すことができる。
【００４１】
以上のような処理フローを行うことによって、ＴＴＹソフトウェア２１は、ＣＯＲＢＡとＣＯＲＢＡ未対応のハードウェアデバイスデバイスであるＤＳＰとの間を仲介することにより、信号処理されたテレタイプデータの伝送を行うことができる。
【００４２】
図８は、本発明のソフトウェア無線機におけるＴＴＹソフトウェア内に生成される各処理スロット（プロセス）間の関係と、それぞれの処理シーケンスを示すフローチャートである。図８に示すように、ＴＴＹソフトウェア２１のプロセス構成として３つの処理スレッド（プロセス）に分けることができる。すなわち、上記のステップＳ４１の処理においてはモデム部１ｂからのデータ要求取得スレッド（Ｐ１）が生成される。また、上記ステップＳ４３での処理においてはデータ制御部１ｄからのデータ取得スレッド（Ｐ２）が生成される。さらに、上記のステップＳ４４、Ｓ４６、Ｓ４７、Ｓ４９の処理においては、ＢＢ多値変調処理用ＤＳＰ２４及びアナログ処理用ＤＳＰ２３との間のデータＲｅａｄ／Ｗｒｉｔｅ用スレッド（Ｐ３）が生成される。
【００４３】
このとき、ＢＢ多値変調処理用ＤＳＰ２４及びアナログ処理用ＤＳＰ２３との間のデータのＲｅａｄ／Ｗｒｉｔｅ用スレッド（Ｐ３）は、ＴＴＹソフトウェア２１が処理動作を開始し始めてからＴＴＹソフトウェア２１が停止するまで永続的に動作するスレッドである。一方、モデム部１ｂからのデータ要求取得スレッド（Ｐ１）やデータ制御部１ｄからのデータ取得スレッド（Ｐ２）は、ＴＴＹソフトウェア２１が実装する処理関数が呼ばれる毎に生成されるスレッドである。以下、各スレッド間の関係とそれぞれの処理シーケンスの流れを図８のフローチャートの流れに従って説明する。
【００４４】
図８において、まず、モデム部１ｂからのデータ要求取得スレッド（Ｐ１）において、モデム部１ｂからＴＴＹソフトウェア２１へ一定周期（例えば、２０ｍｓ）でデータ要求を行うと（ステップＳ５１）、ＴＴＹソフトウェア２１はリングバッファ２１ｂに対してデータ量のチェックを行う（ステップＳ５２）。そして、ＴＴＹソフトウェア２１はリングバッファ２１ｂに閾値以上のデータ量があるか否かを判断し（ステップＳ５３）、閾値以上のデータ量がない場合は（ステップＳ５３でＮｏの場合）、データ制御部１へデータ要求を行ってデータ制御部１ｄからのデータ取得スレッド（Ｐ２）に移行する。一方、閾値以上のデータ量がある場合は（ステップＳ５３でＹｅｓの場合）、２８８０バイト以上のデータがあるか否かを判断し（ステップＳ５４）、２８８０バイト以上のデータがある場合は（ステップＳ５４でＹｅｓの場合）、リングバッファ２１ｂから２８８０バイトのデータを取り出し（ステップＳ５５）、このデータをモデム部１ｂへ送信する（ステップＳ５６）。尚、ステップＳ５４で２８８０バイト以上のデータがない場合は（ステップＳ５４でＮｏの場合）、この処理におけるスレッドを抜ける。
【００４５】
次に、データ制御部１ｄからのデータ取得スレッド（Ｐ２）において、データ制御部１ｄから、１６ＱＡＭで５６バイト、ＱＰＳＫで２８バイト、及びＢＰＳＫで１４バイトのデータ送信があると（ステップＳ５７）、ＴＴＹソフトウェア２１はこのデータをリングバッファ２１ｄへ入力する（ステップＳ５８）。尚、ステップＳ５７におけるスレッドＰ２は、ＴＴＹソフトウェア２１がデータ制御部１ｄからデータを受信するごとに生じる。
【００４６】
次に、ＢＢ多値変調処理用ＤＳＰ２４及びアナログ処理用ＤＳＰ２３（以下、両者を含めてＤＳＰと略す）との間のデータのＲｅａｄ／Ｗｒｉｔｅ用スレッド（Ｐ３）に移行して、ＴＴＹソフトウェア２１は、リングバッファ２１ｄのデータ量をチェックし（ステップＳ５９）、データ制御部１ｄからの制御情報にしたがってデータの取り出しを行う（ステップＳ６０）。そして、ＴＴＹソフトウェア２１は、取り出したデータをＢＢ多値変調処理用のＤＰ-ＲＡＭ２６に書き込む（ステップＳ６１）。さらに、ＴＴＹソフトウェア２１は、ＢＢ多値変調処理用のＤＰ-ＲＡＭ２６から２２４０バイトのデータを読み出し（ステップＳ６２）、読み出したデータをリングバッファ２１ｃへ入力する（ステップＳ６３）。
【００４７】
ＴＴＹソフトウェア２１は、このようにしてＢＢ多値変調処理用のＤＰ-ＲＡＭ２６から読み出してリングバッファ２１ｃへ入力したデータが４８０バイト以上になったか否かを判断し（ステップＳ６４）、４８０バイト以上になっていなければ（ステップＳ６４でＮｏの場合）、Ｐ３のスレッドの最初に戻って（符号Ａに戻って）ステップＳ５９からの処理を繰り返し、ＤＰ-ＲＡＭ２６からＢＢ多値変調処理済みのデータが４８０バイトになった時点でデータを取り出す。つまり、ＤＰ-ＲＡＭ２６からＢＢ多値変調処理済みのデータを４８０バイトずつ取り出してリングバッファ２１ｃへ入力するプロセスを繰り返す。
【００４８】
ステップＳ６４でリングバッファ２１ｃへ入力したデータが４８０バイト以上になったら（ステップＳ６４でＹｅｓの場合）、リングバッファ２１ｃから４８０バイトのデータを取り出し（ステップＳ６５）、このデータをアナログ処理用のＤＰ-ＲＡＭ２５に書き込む（ステップＳ６６）。さらに、ＴＴＹソフトウェア２１は、アナログ処理用のＤＰ-ＲＡＭ２５から２８８０バイトのデータを読み出し（ステップＳ６７）、読み出したデータをリングバッファ２１ｄへ入力する（ステップＳ６８）。これによって、ＴＴＹソフトウェア２１は、リングバッファ２１ｂから２８８０バイトのデータを取り出し（ステップＳ５５）、このデータをモデム部１ｂへ送信する（ステップＳ５６）。
【図面の簡単な説明】
【００４９】
【図１】本発明のソフトウェア無線機におけるＴＴＹソフトウェアと、ミドルウェアとしてのＣＯＲＢＡと、ＣＯＲＢＡ未対応ハードウェアデバイスとの関係を示す図であり、（ａ）はＣＯＲＢＡを用いて分散処理を実現するソフトウェア無線機のハードウェア構成図、（ｂ）は（ａ）のモデム部、信号処理部、及びデータ制御部の詳細な構成図である。
【図２】図１に示すソフトウェア無線機の構成においてアナログ（音声）データ伝送時におけるアプリケーション間の関係を示す図である。
【図３】図１に示すソフトウェア無線機の構成においてテレタイプ／データ伝送時におけるアプリケーション間の関係を示す図である。
【図４】図１に示すデータ制御部から送信されるデータフレーム構成図である。
【図５】図１に示すデータ制御部から送信されるバイトデータ数とデータシンボル数の関係を示す図である。
【図６】図１に示す信号処理部におけるＢＢ多値変調処理用ＤＳＰ２４からアナログ処理用ＤＳＰ２３へデータを伝送するときのレート変換とデータサイズの概要を示す図である。
【図７】本発明のソフトウェア無線機に使用されるＴＴＹソフトウェアにおけるデータ処理の流れを示す概念図である。
【図８】本発明のソフトウェア無線機におけるＴＴＹソフトウェア内に生成される各処理スロット（プロセス）間の関係と、それぞれの処理シーケンスを示すフローチャートである。
【符号の説明】
【００５０】
１  ソフトウェア無線機、１ａ  ＲＦ部、１ｂ  モデム部、１ｃ  信号処理部、１ｄ    データ制御部、１ｅ  ネットワーク部、１ｆ  セキュリティ部、１ｇ  スケルトン、１ｈ    スタブ、１ｉ  ＯＲＢ、１ｊ  Ｃ−ＰＣＩ、１１  モデム部ＣＯＲＢＡアプリケーション、１２，２５，２６  ＤＰ-ＲＡＭ、１３  ＦＰＧＡ、２１  ＴＴＹソフトウェア、２１ａ  ＩＤＬインタフェース、２１ｂ，２１ｃ，２１ｄ  リングバッファ、２２  デバイスドライバ、２３  アナログ処理用ＤＳＰ、２４  ＢＢ多値変調処理用ＤＳＰ、３１  データ制御部ＣＯＲＢＡアプリケーション。
【図１】
2005124009.tif 000003
【図２】
2005124009.tif 000004
【図３】
2005124009.tif 000005
【図４】
2005124009.tif 000006
【図５】
2005124009.tif 000007
【図６】
2005124009.tif 000008
【図７】
2005124009.tif 000009
【図８】
2005124009.tif 000010