(57)【要約】【課題】ボード間通信を同期化すると共にデータを多重化し、バスの待ち時間を減らして通信を高速化することができるソフトウェア無線機を提供する。【解決手段】複数のボード１２〜１４のミドルウェアとＴＣＰソケット又はバスドライバとの間にカーネル領域の同期多重化ドライバ３１〜３３を設け、同期多重化ドライバ３２をマネージャとして動作させる。マネージャは、一定時間毎に同期信号を発生し、同期多重化ドライバ３１〜３３を所定の順番で通信動作させる。変復調ボード１２からデータを送信する場合、ユーザアプリケーション１２１がミドルウェア１２２を介して同期多重化ドライバ３１へデータ及び識別情報を送る。同期多重化ドライバ３１は、識別情報から通信相手を識別して待ち時間中にバッファにデータを蓄積し、同期信号により、多重化データをＴＣＰソケット１２３又はバスドライバ１２４に渡し、バス１７を介して相手ボードに送信する。【選択図】      図１
2006065776.tif 000002
【特許請求の範囲】
【請求項１】
複数のボードを有し、各ボード間の通信にミドルウェアを使用するソフトウェア無線機において、
前記各ボードのユーザ領域に設けられるユーザアプリケーション及びミドルウェアと、
前記各ボードのカーネル領域に設けられる同期多重化ドライバ及びＴＣＰソケット又はバスドライバと、
前記各ボード間を接続するバスとを具備し、
前記同期多重化ドライバは、
各ボードに対するバスの使用権を時分割し、待ち時間中に前記アプリケーションからミドルウェアを介して非同期に出力されるデータ及び識別情報を多重化して蓄積し、該蓄積した多重化データを同期信号により指示されるバスの占有時間中に一括して前記ＴＣＰソケット又はバスドライバに出力して相手ボードに前記バスを介して送信する手段と、
相手ボードから前記バスを介して前記ＴＣＰソケット又はバスドライバに送られてくる多重化データを分解し、対応するミドルウェアにデータを引渡す手段とを備えたことを特徴とするソフトウェア無線機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のボードを有するソフトウェア無線機に係り、特にボード間通信を同期させて行なうソフトウェア無線機に関する。
【背景技術】
【０００２】
従来、リアルタイムＯＳ（Operating Systems）とそのＯＳ上で動作するミドルウェアをプラットフォームとし、このプラットフォーム上で動作するアプリケーションによって、無線機に必要な動作を行なうソフトウェア無線機は、図１２及び図１３に示すように構成されている。図１２（ａ）はソフトウェア無線機１０の外観構成図、同図（ｂ）は同ソフトウェア無線機１０に用いられる各ボードの構成例を示す図である。図１３は、従来のソフトウェア無線機のソフトウェアの構成例を示す図である。
【０００３】
上記ソフトウェア無線機１０は、通信方式として例えば半二重通信方式を用いたもので、図１２（ａ）に示すように筐体１１内に複数のボード例えば変復調ボード１２、制御ボード１３及びインタフェース（ＩＦ）ボード１４が収納される。上記変復調ボード１２は、アンテナ及び高周波部（ＲＦ部）（図示せず）に接続される。インタフェースボード１４は、例えばアナログＩＦ、デジタルＩＦ、例えばＲＳ２３２Ｃ等のシリアルポート、ＬＡＮポート等のインタフェースを備えている。
【０００４】
上記変復調ボード１２、制御ボード１３及びインタフェースボード１４は、それぞれ図１２（ｂ）に示すように基板１５にＣＰＵ１６が装着され、各基板１５間が例えばｃ-ＰＣＩ（Peripheral Component Interconnect Bus）等のバス１７により接続される。
【０００５】
そして、上記変復調ボード１２、制御ボード１３及びインタフェースボード１４のソフトウェアは、図１３に示すように、ＯＳ（Operating Systems）としてLinux（登録商標）が用いられ、ユーザ領域２１とカーネル領域２２からなっている。上記図１３において、実線の矢印は受信時のデータの流れを示し、破線の矢印は制御データ（コマンド）の流れを示している。
【０００６】
上記変復調ボード１２のソフトウェアでは、ユーザ領域２１にユーザアプリケーション１２１及びミドルウェア１２２が設けられ、カーネル領域２２にＴＣＰ（Transmission Control Protocol）ソケット又はバスドライバ１２４が設けられる。このＴＣＰソケット１２３又はバスドライバ１２４は、上記ｃ-ＰＣＩ等のバス１７に接続される。上記ユーザアプリケーション１２１は、制御ボード１３からの指示に基づいて信号の変復調を行なう。
【０００７】
上記制御ボード１３のソフトウェアでは、ユーザ領域２１にユーザアプリケーション１３１及びミドルウェア１３２が設けられ、カーネル領域２２にＴＣＰソケット１３３又はバスドライバ１３４が設けられる。このＴＣＰソケット１３３又はバスドライバ１３４は、バス１７に接続される。上記ユーザアプリケーション１３１は、例えば変復調、プロトコルの切替指示、ＰＴＴ（press to talk）の指示等の制御指示を行なう。
【０００８】
上記インタフェースボード１４のソフトウェアでは、ユーザ領域２１にユーザアプリケーション１４１及びミドルウェア１４２が設けられ、カーネル領域２２にＴＣＰソケット１４３又はバスドライバ１４４が設けられる。このＴＣＰソケット１４３又はバスドライバ１４４は、バス１７に接続される。上記ユーザアプリケーション１４１は、各ＩＦに対するプロトコル（Protocol）であり、制御ボード１３からの制御指示によりプロトコルを切替えてインタフェース処理を実行する。
【０００９】
上記の構成において、制御ボード１３のユーザアプリケーション１３１は、図１３に破線の矢印で示すように変復調ボード１２に対して例えば変復調、ＰＴＴ（press to talk）の指示を行なうと共に、インタフェースボード１４に対してプロトコルの切替え指示を行なう。上記ユーザアプリケーション１３１から出力される変復調、ＰＴＴの指示は、ミドルウェア１３２、ＴＣＰソケット１３３又はバスドライバ１３４、及びバス１７を介して変復調ボード１２へ送られる。また、ユーザアプリケーション１３１から出力されるプロトコルの切替え指示は、ミドルウェア１３２、ＴＣＰソケット１３３又はバスドライバ１３４、及びバス１７を介してインタフェースボード１４へ送られる。
【００１０】
以下、他局から無線で送られてくる信号を受信処理する場合の動作について説明する。変復調ボード１２は、制御ボード１３から与えられる制御指示に基づいて動作し、高周波（ＲＦ）部で受信された信号を復調し、ミドルウェア１２２、ＴＣＰソケット１２３又はバスドライバ１２４及びバス１７を介してインタフェースボード１４へ出力する。
【００１１】
インタフェースボード１４は、制御ボード１３からの制御指示によりユーザアプリケーション１４１のＩＦプロトコルが切替えられる。そして、上記ユーザアプリケーション１４１は、上記変復調ボード１２からバス１７を介して送られてくる復調されたデータを所定のプロトコルに従って処理し、例えばＬＡＮ等の回線を介して他の処理機器に送信する。
【００１２】
また、上記他の処理機器から送られてくるデータを他局に送信する場合においても、上記データ受信時と同様に制御ボード１３に制御に従ってインタフェースボード１４及び変復調ボード１２が動作し、上記他の処理機器から送られてくるデータをインタフェースボード１４を経由して変復調ボード１２に伝送し、変復調ボード１２のユーザアプリケーション１２１で変調し、高周波（ＲＦ）部よりアンテナを介して他局へ送信する。
【００１３】
上記ソフトウェア無線機では、リアルタイムＯＳとそのＯＳ上で動作するミドルウェアをプラットフォームとし、このプラットフォーム上で動作するアプリケーション、即ち、リアルタイムＯＳ上で動作し、ミドルウェアを活用するアプリケーションによって、無線機に必要な動作を行なっている。このアプリケーションが行なう無線機に必要な動作とは、アナログ信号を送受する高周波（ＲＦ）部分を除いた部分であり、信号の変復調（アナログ、デジタル）、コーデック、音声やデータの入出力、その他にネットワークのための機能、例えばルータ機能である。これらの機能を持つアプリケーションは、整備性や運用性の向上のために、幾つかのプロセッサのＯＳ上に配置される。このプロセッサ同士の接続には、ｃ-ＰＣＩバスやIEEE802.3規格によるバス等が使用される。
【００１４】
複数のＯＳ上に配置されたアプリケーションは、図１３に示したようにバスを使用するミドルウェアを利用して、お互いにデータを送受信する。この一連の動作で一番時間を消費するのは、バスとミドルウェアを使用したデータの送受信に掛かる時間である。そして、この消費時間の大小が無線機としての機能、性能を決定する。
【００１５】
上記ソフトウェア無線機のようにカーネルとミドルウェアを使用してデータを処理する装置としては、従来、カーネルが管理するタスク生成／削除を監視し、ミドルウェアに通知するようにした情報処理装置が知られている（例えば、特許文献１参照。）。  
また、本発明に関連する従来の公知技術として、多数のデバイスをＰＣＩバスに接続した場合でも遅延を回避し、システム性能を向上できるようにしたＰＣＩバス処理装置（例えば、特許文献２参照。）、更には、情報処理装置において、プロセッサ、メモリ、Ｉ／Ｏデバイス等の接続に用いられ、装置内部で閉じたバスに接続されるバスマスタ装置（例えば、特許文献３参照。）が知られている。
【特許文献１】特開２００２−１６３１１８号公報
【特許文献２】特開平１１−１９１０７３号公報
【特許文献３】特開平１１−１８４８０９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
上記のように複数のボードを備え、各ボード間のデータの送受信をバスとミドルウェアを使用して行なう従来のソフトウェア無線機では、データに優先順位を付け、優先順位の高いデータをリアルタイムＯＳの機能を使用して、優先して送受信処理を行なっている。
【００１７】
しかし、送受信処理の時間の中には、バスのデータ送受に必要な時間のほかに、ミドルウェアやＯＳによる処理に消費する時間もある。また、バスの利用が非同期であるので、他のプロセッサがバスを使用しているときに順番待ちが発生し、予想外の時間を消費する場合がある。例えば図１４に示すように変復調ボード１２がバス１７を使用している状態では、変復調ボード１２のソフトウェアがバス１７を独占することになり、制御ボード１３は、変復調ボード１２によるバス１７の使用が終了するまで待ち状態となり、制御ボード１３のＴＣＰソケット１３３又はバスドライバ１３４及びミドルウェア１３２において遅延が発生する。
【００１８】
上記ミドルウェアやＯＳによる処理に消費する時間は、２割程もあるので、このミドルウェアやＯＳによる処理の回数を減らすことが通信時間の短縮に繋がる。このため従来では、通信の回数をなるべく減らすことで、時間の短縮を図っている。また、非同期の対策は、順番待ちが発生しても良いようにマージンを考えることであった。
【００１９】
しかし、上記従来のように通信の回数をなるべく減らすようにするだけでは十分な時間短縮を図ることが困難であり、また、バスの利用が非同期であるので、バスの使用効率が悪いという問題があった。
【００２０】
本発明は上記の課題を解決するためになされたもので、ボード間通信を同期化すると共にデータを多重化し、バスの待ち時間を減らして通信を高速化することができるソフトウェア無線機を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明は、複数のボードを有し、各ボード間の通信にミドルウェアを使用するソフトウェア無線機において、
前記各ボードのユーザ領域に設けられるユーザアプリケーション及びミドルウェアと、
前記各ボードのカーネル領域に設けられる同期多重化ドライバ及びＴＣＰソケット又はバスドライバと、前記各ボード間を接続するバスとを具備し、
前記同期多重化ドライバは、
各ボードに対するバスの使用権を時分割し、待ち時間中に前記アプリケーションからミドルウェアを介して非同期に出力されるデータ及び識別情報を多重化して蓄積し、該蓄積した多重化データを同期信号により指示されるバスの占有時間中に一括して前記ＴＣＰソケット又はバスドライバに出力して相手ボードに前記バスを介して送信する手段と、  相手ボードから前記バスを介して前記ＴＣＰソケット又はバスドライバに送られてくる多重化データを分解し、対応するミドルウェアにデータを引渡す手段とを備えたことを特徴とする。
【発明の効果】
【００２２】
本発明によれば、複数のボード間の通信にミドルウェアを使用するソフトウェア無線機において、待ち時間中にアプリケーションからミドルウェアを介して非同期に出力されるデータ及び識別情報を多重化して蓄積し、その蓄積した多重化データをバスの占有時間中に一括してＴＣＰソケット又はバスドライバに出力して相手ボードにバスを介して送信することにより、アプリケーションに制約を与えることなく、通信に必要な時間を減らすことが可能となり、バスを効率的に使用することができる。また、通信を同期化することにより、バスを選ばずに最適な遅延時間とすることができる。
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照して本発明の一実施形態を説明する。  
この実施形態に係るソフトウェア無線機は、上記図１３に示した従来のソフトウェア無線機において、図１に示すように変復調ボード１２、制御ボード１３、インタフェースボード１４のミドルウェア１２２、１３２、１４２とＴＣＰソケット１２３又はバスドライバ１２４との間に、カーネル領域２２の同期多重化ドライバ３１、３２、３３を設けたものである。その他の構成は、図１３に示した従来のソフトウェア無線機と同様であるので、同一部分には同一符号を付して詳細な説明は省略する。
【００２４】
上記同期多重化ドライバ３１〜３３は、その１つ例えば制御ボード１３に設けられる同期多重化ドライバ３２をマネージャとして動作させる。このマネージャとなる同期多重化ドライバ３２は、同期信号発生用のタイマを備え、一定時間例えば２０msec毎に同期信号を発生し、この同期信号により各同期多重化ドライバ３１〜３３を所定の順番で通信動作させる。即ち、マネージャとなる同期多重化ドライバ３２は、同期多重化ドライバ３１〜３３によるバス１７の使用権を時分割し、同期信号によって各同期多重化ドライバ３１〜３３にバス占有時間を所定の順番で順次切替えている。また、送受の際には、通信の順番を反転させる。
【００２５】
また、上記マネージャの同期多重化ドライバ３２によって制御される同期多重化ドライバ３１、３３は、起動引数によって、上記マネージャのＩＰ（Internet Protocol）アドレスとポートナンバ又はバスアドレスが知らされている。また、同期多重化ドライバ３１、３３は、予めＩＤ（Identification）が割り当てられている。例えば同期多重化ドライバ３１には「ＩＤ＝１」、同期多重化ドライバ３３には「ＩＤ＝２」が割り当てられる。上記同期多重化ドライバ３１、３３は、起動時にＩＤとＩＰアドレスとポートナンバ又はバスアドレスをマネージャである同期多重化ドライバ３２に送出する。
【００２６】
また、上記同期多重化ドライバ３１〜３３は、それぞれバッファを備え、待ち時間中に上位層から送られてくる複数のデータを多重化して蓄積する機能を備えている。
【００２７】
次に、上記実施形態における各ボード１２、１３、１４間の通信動作について説明する。  
先ず、同期多重化ドライバ３１〜３３を使用したデータの多重化及び送信処理について説明する。データの多重化及び送信処理は、変復調ボード１２、制御ボード１３及びインタフェースボード１４において同様にして行なわれるので、変復調ボード１２について説明する。
【００２８】
図２は、変復調ボード１２のユーザ領域２１に複数例えば２つのユーザアプリケーション１２１ａ、１２１ｂ及びミドルウェア１２２ａ、１２２ｂが設けられ、このミドルウェア１２２ａ、１２２ｂが同期多重化ドライバ３１に接続されている構成において、同期多重化ドライバ３１が２つのＴＣＰソケット１２３ａ、１２３ｂ及びバス１７を介して他のボードに多重化データを送信する場合の例を示したものである。また、図３は、上記変復調ボード１２のデータ送信時の処理動作を示すフローチャートである。
【００２９】
上記の構成において、変復調ボード１２のユーザアプリケーション１２１ａ、１２１ｂがデータを他のボードに出力する場合、ユーザアプリケーション１２１ａ、１２１ｂは、非同期にミドルウェア１２２ａ、１２２ｂを呼出してデータを引渡す（ステップＡ１）。ユーザアプリケーション１２１ａ、１２１ｂからデータを受け取ったミドルウェア１２２ａ、１２２ｂは、非同期に同期多重化ドライバ３１を呼出し、上記データに識別情報としてＩＰアドレスとポートナンバを付加して引渡す（ステップＡ２）。
【００３０】
上記同期多重化ドライバ３１は、上位層からのデータを受け取ると、データに付加されているＩＰアドレスにより相手ボードを識別し、その相手ボードに対して用意したバッファにポートナンバとデータを格納する（ステップＡ３）。
【００３１】
次いで同期多重化ドライバ３１は、制御ボード１３に設けられているマネージャの同期多重化ドライバ３２から同期信号が送られてきているかどうかをチェックし（ステップＡ４）、同期信号が送られてきていなければ、ステップＡ１に戻り、上記した処理を繰り返して実行する。
【００３２】
同期多重化ドライバ３１は、上記のように待ち時間中にミドルウェア１２２ａ、１２２ｂから受け取ったデータをバッファに蓄積する。
【００３３】
その後、同期多重化ドライバ３１は、マネージャの同期多重化ドライバ３２から同期信号が送られてくると、上記ステップＡ３で識別した相手ボードを代表するＴＣＰソケット１２３ａ、１２３ｂに、上記バッファに蓄積したデータを渡して送信を指示する（ステップＡ５）。このとき同期多重化ドライバ３１は、同じプロセッサ上のアプリケーションに対しては、データと識別情報をフォーマットに連結し、多重化したデータを一度でＴＣＰソケット１２３ａ、１２３ｂに引渡す。
【００３４】
同期多重化ドライバ３１から多重化データを受け取ったＴＣＰソケット１２３ａ、１２３ｂは、バス１７を通じてインタフェースボード１４等の相手先のＴＣＰソケットにデータを送信する（ステップＡ６）。  
以上で、変復調ボード１２から他のボードへのＴＣＰソケットによるデータ送信処理を終了する。
【００３５】
図４は、変復調ボード１２のユーザ領域２１に複数例えば２つのユーザアプリケーション１２１ａ、１２１ｂ及びミドルウェア１２２ａ、１２２ｂが設けられ、このミドルウェア１２２ａ、１２２ｂが同期多重化ドライバ３１に接続されている構成において、同期多重化ドライバ３１がバスドライバ１２４及びバス１７を介して他のボードへ多重化データを送信する場合の例を示したものである。また、図５は、上記変復調ボード１２のデータ送信時の処理動作を示すフローチャートである。
【００３６】
上記の構成において、変復調ボード１２のユーザアプリケーション１２１ａ、１２１ｂが他のボードにデータを出力する場合、ユーザアプリケーション１２１ａ、１２１ｂは、非同期にミドルウェア１２２ａ、１２２ｂを呼出してデータを引渡す（ステップＢ１）。ユーザアプリケーション１２１ａ、１２１ｂからのデータを受け取ったミドルウェア１２２ａ、１２２ｂは、非同期に同期多重化ドライバ３１を呼出し、上記データにスロットナンバ（バスアドレス）とアプリケーションＩＤを付加して引渡す（ステップＢ２）。
【００３７】
上記同期多重化ドライバ３１は、スロットナンバ（バスアドレス）より相手ボードを識別し、その相手ボードに対して用意したバッファにアプリケーションＩＤとデータを格納する（ステップＢ３）。
【００３８】
次いで、同期多重化ドライバ３１は、マネージャの同期多重化ドライバ３２から同期信号が送られてきているかどうかをチェックし（ステップＢ４）、同期信号が送られてきていなければ、ステップＢ１に戻り、上記した処理を繰り返して実行する。  
同期多重化ドライバ３１は、上記のように待ち時間中にミドルウェア１２２ａ、１２２ｂから受け取ったデータをバッファに蓄積する。
【００３９】
その後、同期多重化ドライバ３１は、マネージャである同期多重化ドライバ３２から同期信号が送られてくると、バスドライバ１２４に対して相手ボードを示すコンフィグレーションを行ない、バッファに蓄積されているデータを渡して送信を指示する（ステップＢ５）。このとき同期多重化ドライバ３１は、同じプロセッサ上のアプリケーションに対しては、データと識別情報をフォーマットに連結し、多重化したデータを一度でＴＣＰソケット１２３ａ、１２３ｂに引渡す。この処理は、バッファにデータのある、相手ボードの分だけ繰り返して行なう。
【００４０】
上記コンフィグレーションされたバスドライバ１２４は、それに従ってバス通信を行ない、相手ボードにバス１７を介して多重化データを送信する（ステップＢ６）。
【００４１】
以上で、変復調ボード１２から他のボードへのバス通信によるデータ送信処理を終了する。
【００４２】
図６は、上記図２に示したように２つのＴＣＰソケット１２３ａ、１２３ｂにより他のボードと通信する場合において、他のボードからバス１７を介して送られてくる多重化データを受信する場合の例を示したものである。また、図７は、上記変復調ボード１２のデータ受信時の処理動作を示すフローチャートである。
【００４３】
変復調ボード１２は、接続先の他のボードから多重化データが非同期でバス１７を介して送られてくると、この多重化データをＴＣＰソケット１２３ａ、１２３ｂにて受信する（ステップＣ１）。多重化データを受信したＴＣＰソケット１２３ａ、１２３ｂは、直ちに、即ち非同期に同期多重化ドライバ３１を呼出して多重化データを引渡す（ステップＣ２）。
【００４４】
多重化データが渡された同期多重化ドライバ３１は、データの連結を解除すると共に、呼出されたＴＣＰソケット１２３ａ、１２３ｂとデータのポートナンバから対応するミドルウェア１２２ａ、１２２ｂを識別する（ステップＣ３）。そして、同期多重化ドライバ３１は、上記識別結果に従ってミドルウェア１２２ａ、１２２ｂを非同期に呼出し、ポートナンバを除いたデータを引渡す（ステップＣ４）。上記同期多重化ドライバ３１からのデータを受け取ったミドルウェア１２２ａ、１２２ｂは、対応するユーザアプリケーション１２１ａ、１２１ｂにデータを引渡す（ステップＣ５）。  
以上で、他のボードから変復調ボード１２へ送られてくるＴＣＰソケットによるデータ受信処理を終了する。
【００４５】
図８は、上記図４に示したようにバスドライバ１２４により他のボードと通信する場合において、他のボードからバス１７を介して送られてくる多重化データを受信する場合の例を示したものである。また、図９は、上記変復調ボード１２のデータ受信時の処理動作を示すフローチャートである。
【００４６】
変復調ボード１２は、接続先の他のボードから多重化データが非同期でバス１７を介して送られてくると、この多重化データをバスドライバ１２４にて受信する（ステップＤ１）。多重化データを受信したバスドライバ１２４は、非同期に同期多重化ドライバ３１を呼出して多重化データを引渡す（ステップＤ２）。
【００４７】
多重化データが渡された同期多重化ドライバ３１は、データの連結を解除すると共に、データに付加されているアプリケーションＩＤから対応するミドルウェア１２２ａ、１２２ｂを識別する（ステップＤ３）。そして、同期多重化ドライバ３１は、上記識別結果に従ってミドルウェア１２２ａ、１２２ｂを非同期に呼出し、アプリケーションＩＤを除いたデータを引渡す（ステップＤ４）。上記同期多重化ドライバ３１からのデータを受け取ったミドルウェア１２２ａ、１２２ｂは、対応するユーザアプリケーション１２１ａ、１２１ｂにデータを引渡す（ステップＤ５）。  
以上で、他のボードから変復調ボード１２へ送られてくるバスドライバ１２４によるデータ受信処理を終了する。
【００４８】
次に、変復調ボード１２、制御ボード１３、インタフェースボード１４に設けられた同期多重化ドライバ３１、３２、３３のデータ送信の同期処理について、図１０、図１１を参照して説明する。
【００４９】
図１０は、変復調ボード１２、制御ボード１３、インタフェースボード１４に設けられた同期多重化ドライバ３１、３２、３３部分の概略構成を示したものである。また、図１１は、上記同期多重化ドライバ３１、３２、３３の処理動作を示すフローチャートである。
【００５０】
変復調ボード１２の同期多重化ドライバ３１及びインタフェースボード１４の同期多重化ドライバ３３は、起動時に自己のＩＤ、ＩＰアドレスとポートナンバ又はバスアドレスをマネージャである制御ボード１３の同期多重化ドライバ３２に出力する（ステップＥ１）。この制御ボード１３の同期多重化ドライバ３２は、起動時にタイマを同期信号を発生する時間例えば２０msec にセットすると共に、バッファに蓄えられている多重化データの送信処理を実行する（ステップＥ２）。
【００５１】
上記タイマは、セットされた２０msec の計時を終了すると、割り込みを発生する。マネージャの同期多重化ドライバ３２は、タイマからの割り込みの有無をチェックし（ステップＥ３）、タイマからの割り込みが発生すると、タイマを２０msec にセットし、「ＩＤ＝１」のＩＤ番号を持つ変復調ボード１２の同期多重化ドライバ３１に同期信号を送信する（ステップＥ４）。この同期多重化ドライバ３１は、同期信号を受信すると、上記したようにバッファに蓄積されている多重化データの送信処理を実行する。
【００５２】
マネージャの同期多重化ドライバ３２は、上記同期信号を送信した後、タイマからの割り込みの有無をチェックし（ステップＥ５）、割り込みがなければそのまま待機する。タイマからの割り込みが発生すると、同期多重化ドライバ３２は、タイマを２０msec にセットし、「ＩＤ＝２」のＩＤ番号を持つインタフェースボード１４の同期多重化ドライバ３３に同期信号を送信する（ステップＥ６）。この同期多重化ドライバ３３は、同期信号を受信すると、バッファに蓄積されている多重化データの送信処理を実行する。
【００５３】
マネージャの同期多重化ドライバ３２は、上記同期信号を送信した後、タイマからの割り込みの有無をチェックし（ステップＥ７）、割り込みが発生すると、タイマを同期信号を２０msec にセットすると共に、バッファに蓄えられている多重化データの送信処理を実行する（ステップＥ８）。その後、ステップＥ３に戻り、上記した処理を繰り返して実行する。
【００５４】
上記のようにマネージャの同期多重化ドライバ３２は、２０msec 毎に同期信号を発生し、同期多重化ドライバ３２→同期多重化ドライバ３１→同期多重化ドライバ３３→同期多重化ドライバ３２→……の順に多重化データの送信処理を実行させる。
【００５５】
上記実施形態によれば、ＯＳとしてLinux（登録商標）を搭載した複数のボードを有するソフトウェア無線機において、ボード間通信にミドルウェアを使用する場合に、ミドルウェアとＴＣＰソケット又はバスドライバとの間にカーネル領域の同期多重化ドライバを設け、バスを時分割し、待ち時間中に上位層からの複数の通信データを１つに連結し、バスの占有時間中に一括して送信することにより、アプリケーションに制約を与えることなく、通信に必要な時間を減らすことが可能となり、バスを効率的に使用することができる。また、通信を同期化することにより、バスを選ばずに最適な遅延時間とすることができる。
【００５６】
なお、上記実施形態では、同期信号の発生周期を２０msec に設定した場合について示したが、２０msec に限定されるものではなく、任意に設定することが可能である。  
また、同期多重化ドライバ３１〜３３の通信の順番についても、任意に設定し得るものである。
【００５７】
また、上記実施形態では、制御ボード１３の同期多重化ドライバ３２をマネージャとして設定した場合について示したが、変復調ボード１２の同期多重化ドライバ３１あるいはインタフェースボード１４の同期多重化ドライバ３３をマネージャとして設定することも可能である。
【図面の簡単な説明】
【００５８】
【図１】本発明の一実施形態に係るソフトウェア無線機を示すブロック図である。
【図２】同実施形態において、ＴＣＰソケットを使用してデータを送信する場合の動作説明図である。
【図３】図２におけるデータ送信時の処理動作を示すフローチャートである。
【図４】同実施形態において、バスドライバを使用してデータを送信する場合の動作説明図である。
【図５】図４におけるデータ送信時の処理動作を示すフローチャートである。
【図６】同実施形態において、ＴＣＰソケットを使用してデータを受信する場合の動作説明図である。
【図７】図６におけるデータ受信時の処理動作を示すフローチャートである。
【図８】同実施形態において、バスドライバを使用してデータを受信する場合の動作説明図である。
【図９】図８におけるデータ受信時の処理動作を示すフローチャートである。
【図１０】同実施形態において、同期多重化ドライバのデータ送信における同期処理の動作を説明するための図である。
【図１１】図１０における同期多重化ドライバのデータ送信時の同期処理動作を説明するための図である。
【図１２】（ａ）はソフトウェア無線機の外観構成図、（ｂ）はソフトウェア無線機に用いられる各ボードの構成例を示す図である。
【図１３】従来のソフトウェア無線機のソフトウェアの構成例を示す図である。
【図１４】従来のソフトウェア無線機における送信動作の遅延を説明するための図である。
【符号の説明】
【００５９】
１０…ソフトウェア無線機、１１…筐体、１２…変復調ボード、１３…制御ボード、１４…インタフェースボード、１５…基板、１６…ＣＰＵ、１７…バス、２１…ユーザ領域、２２…カーネル領域、３１〜３３…同期多重化ドライバ、１２１、１２１ａ、１２１ｂ…ユーザアプリケーション、１２２、１２２ａ、１２２ｂ…ミドルウェア、１２３、１２３ａ、１２３ｂ…ＴＣＰソケット、１２４…バスドライバ、１３１…ユーザアプリケーション、１３２…ミドルウェア、１３３…ＴＣＰソケット、１４１…ユーザアプリケーション、１４２…ミドルウェア、１４３…ＴＣＰソケット、１４４…バスドライバ。
【図１】
2006065776.tif 000003
【図２】
2006065776.tif 000004
【図３】
2006065776.tif 000005
【図４】
2006065776.tif 000006
【図５】
2006065776.tif 000007
【図６】
2006065776.tif 000008
【図７】
2006065776.tif 000009
【図８】
2006065776.tif 000010
【図９】
2006065776.tif 000011
【図１０】
2006065776.tif 000012
【図１１】
2006065776.tif 000013
【図１２】
2006065776.tif 000014
【図１３】
2006065776.tif 000015
【図１４】
2006065776.tif 000016