説明

ソフトウェア無線装置

【課題】OSの違いを考慮することなく複数のソフトウェアを動作させることができるインタフェースを有し、低負荷で動作させるプラットフォームを備える無線装置を提供する。
【解決手段】本発明に係る無線装置は、オペレーティングシステムと、複数のソフトウェアコンポーネントと、前記オペレーティングシステムと前記複数のソフトウェアコンポーネントとの間に備えられたミドルウェアとを有し、前記複数のソフトウェアコンポーネントの1つ以上を実行して、全体として無線通信処理を行う無線装置であって、前記ミドルウェアに含まれ、この無線装置が起動されるときに、予め定められた条件に基づいて、前記複数のソフトウェアコンポーネントの1つ以上を起動させる第1の起動手段と、前記ミドルウェアに含まれ、前記複数のソフトウェアコンポーネントのうち、外部から指定されたソフトウェアコンポーネントを起動させる第2の起動手段とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェア無線装置に関する。
【背景技術】
【0002】
例えば、引用文献1は、複数のモジュールから成るドメイン内で動作するソフトウェアプログラムの動作状況を管理するドメイン管理インタフェースを提供する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−148844号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、上述のような背景からなされたものであり、OSの違いを考慮することなく複数のソフトウェアを動作させることができるインタフェースを備え、低負荷で動作するプラットフォームを備えるよう改良された無線装置を提供することを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するために、本発明に係る無線装置(1)は、オペレーティングシステム(208)と、複数のソフトウェアコンポーネント(200,202)と、前記オペレーティングシステムと前記複数のソフトウェアコンポーネントとの間に備えられたミドルウェア(30)とを有し、前記複数のソフトウェアコンポーネントの1つ以上を実行して、全体として無線通信処理を行う無線装置であって、前記ミドルウェアに含まれ、この無線装置が起動されるときに、予め定められた条件に基づいて、前記複数のソフトウェアコンポーネントの1つ以上を起動させる第1の起動手段(308)と、前記ミドルウェアに含まれ、前記複数のソフトウェアコンポーネントのうち、外部から指定されたソフトウェアコンポーネントを起動させる第2の起動手段(310)とを有する。
なお、ここで付された符号は、本願発明の理解を助けることを意図するものであり、本願発明の技術的範囲を限定することを意図するものではない。
【発明の効果】
【0006】
本発明に係る無線装置によれば、OSの違いを考慮することなく複数のソフトウェアを動作させることができるインタフェースを備え、低負荷で動作するプラットフォームを実現することができる。
【図面の簡単な説明】
【0007】
【図1】(A)は、本発明に係るソフトウェア無線装置の構成を例示する図であり、(B)は、(A)に示したソフトウェア無線装置のプラットフォームレイヤの構成を例示する図である。
【図2】図1(B)に示したプラットフォームレイヤにおいて、ソフトウェアを実行させるサービスインタフェースの構成を例示する図である。
【図3】(A)は、図2に示したAutoFactoryインタフェースのクラス図を例示する図であり、(B)は、AutoFactoryインタフェースに定義されるメソッド名または属性名、および、これらの説明を例示する図である。
【図4】(A)は、図2に示したMicroManagerインタフェースのクラス図を例示する図であり、(B)は、MicroManagerインタフェースに定義されるメソッド名または属性名、および、これらの説明を例示する図である。
【図5】図1(A)に示したソフトウェア無線装置の起動処理を例示するシーケンス図である。
【図6】図1(A)に示したソフトウェア無線装置におけるソフトウェアの交換処理を例示するシーケンス図である。
【発明を実施するための形態】
【0008】
[本発明の背景]
本発明の理解を助けるために、まず、本発明がなされるに至った背景を説明する。
例えば、無線装置は、ソフトウェア実行環境を備えた複数の演算処理装置と、CORBA(Common Object Request Broker Architecture)対応の複数のソフトウェアとを有し、無線通信処理の内容に応じて、複数のソフトウェアコンポーネントの中から必要なソフトウェアを、演算処理装置上の適切なソフトウェア実行環境に配置して実行するように構成される。
また、上述の無線装置には、複数のハードウェアデバイスの追加、削除などの操作を動的に管理するために、SCA(Software Communication Architecture)という標準化技術を利用するプラットフォームが構築される。
【0009】
例えば、SCAを利用するプラットフォームは、登録または削除されるハードウェアデバイスを動的に管理したり、ハードウェアデバイスの登録情報に基づいて、複数のソフトウェアから、無線通信処理に必要なソフトウェアを選択し、動的に配置したりするミドルウェアを備える。
上述のミドルウェアにより、複数のハードウェアデバイスや、複数のソフトウェアコンポーネントを動的に管理することができる一方で、このミドルウェアを動作させるためには、高性能のプロセッサを必要とする場合がある。
したがって、ハードウェアデバイスの追加などを行わない携帯電話などのプロセッサの性能では、上述のミドルウェアを備えるプラットフォームを動作させる負荷が高くなる場合がある。
【0010】
また、上述の複数のソフトウェアコンポーネントは、同一のOS(Operating System)上でしか動作しないので、異なるOS上で、同一のソフトウェアを動作させることができない。
したがって、OSの種類ごとに、同一の動作を行うソフトウェアを実装する必要があり、非効率的になる場合がある。
本発明に係る無線装置は、このような背景からなされたものであり、本発明に係る無線装置のプラットフォームは、OSの違いを考慮することなく複数のソフトウェアを動作させることができるインタフェースを備え、SCAを利用するプラットフォームよりも低負荷で動作するよう工夫されている。
【0011】
[無線装置1]
図1(A)は、本発明に係る無線装置1の構成を例示する図である。
図1(A)に示すように、無線装置1は、RF部102と、RF部102に接続されたアンテナ100と、CompactPCI(Peripheral Component Interconnect)などのバス110を介して接続されたモデム部12、コーデック部14および制御部16から構成される。
また、図1(A)に示すように、モデム部12は、CPU104およびメモリ106を含み、コーデック部14および制御部16は、CPU104、メモリ106およびネットワーク接続を行うためのLANインタフェース(IF)108を含む。
なお、これらの構成部分においては、CPU104とともに、あるいは、CPU104の代わりに、DSP(Digital Signal Processor)が用いられてもよい。
無線装置1は、制御部16により、モデム部12およびコーデック部14を制御して、必要な処理を行い、RF部102およびアンテナ100を介して、予め定められた無線方式の信号を送受信して、無線通信処理を行う。
なお、 以下の各図において、実質的に同じ構成部分には、同じ符号が付される。
【0012】
[プラットフォームレイヤ20]
図1(B)は、無線装置1(図1(A))のプラットフォームレイヤ20の構成を例示する図である。
図1(B)に示すように、無線装置1が備えるプラットフォームレイヤ20は、DSPソフトウェア200、GPP(General Purpose Processor)ソフトウェア202、および、入出力ライブラリ204、DSPのハードウェア206、ミドルウェア30、OS208、および、GPPのハードウェア210からなるプラットフォームから構成される。
なお、以下、DSPソフトウェア200およびGPPソフトウェア202を区別せず、単に「ソフトウェア」と記述することがある。
【0013】
なお、以下、本実施形態におけるプラットフォームレイヤ20のプラットフォームは、下記のポリシー(1)〜(5)に従って実現される場合を具体例とする。
(1)1つのGPPボード上で実現する。
(2)GPPボードには、DSPやFPGA(Field Programmable Gate Array)を搭載することができる。
(3)ソフトウェアは、予め定められた実行環境で実行される。つまり、複数の実行環境への動的なソフトウェア配置は行わない。
(4)DSPやFPGAと通信するソフトウェアが常駐しているか否かに関わらず、プラットフォームのソフトウェア実行環境は利用可能である。
(5)セキュリティプロキシを備えない。
【0014】
DSPソフトウェア200は、無線通信処理を実現するDSP用のソフトウェアコンポーネントである。
GPPソフトウェア202は、無線通信処理を実現するGPP用のソフトウェアコンポーネントである。
入出力ライブラリ204は、DSPソフトウェア200とDSPのハードウェア206とを仲介するインタフェースであり、このインタフェースに定義されたメソッドがコールされることにより、双方に対するデータの入出力を実現する。
また、入出力ライブラリ204は、通信バスを介して、ミドルウェア30と通信を行い、各種処理を行う。
【0015】
通信バスは、例えば、バス110(図1(A))内のソフトウェアバスであるORB(Object Request Broker)である。
ミドルウェア30は、OS208上で動作し、GPPソフトウェア202とOS208とを仲介する複数のインタフェース(図2を参照して後述)から構成される。
GPPソフトウェア202は、これらの複数のインタフェースに定義されたメソッドをコールすることにより、OS208の違いを考慮することなく、OS208上で、GPPのハードウェア210の資源を具体的に利用して実行するよう処理される。
また、ミドルウェア30は、通信バスを介して、入出力ライブラリ204と通信を行い、各種処理を行う。
【0016】
[サービスインタフェース3]
図2は、プラットフォームレイヤ20(図1(B))において、OS208の違いを考慮することなく、ソフトウェアを実行させるサービスインタフェース3の構成を例示する図である。
図2に示すように、サービスインタフェース3は、1つのGPPボード上に搭載されたDSP用の入出力ライブラリ204、および、CPU用のミドルウェア30から構成される。
また、ミドルウェア30は、HCI(Host Controller Interface)300、NamingService302、Log304、GPP_Device306、AutoFactory308、MicroManager310、および、DownLoader312などのCORBA対応の複数のインタフェースを備える。
【0017】
HCI300は、無線装置1(図1(B))の起動時に、必要なソフトウェアを起動させるための処理を行うインタフェースである。
例えば、HCI300は、NamingService302に起動させるソフトウェアのIPアドレスを要求して取得し、DownLoader312に対して、取得したIPアドレスを設定する。
また、HCI300は、予め定められたハードウェアデバイスに対応するソフトウェアを起動させるための処理を行う。
NamingService302は、各種インタフェース名と、インタフェーのIPアドレスを登録し、要求に応じて、登録されたアドレスを要求元に対して出力するインタフェースである。
【0018】
GPP_Device306は、DSP、シリアルデバイス、オーディオデバイスなどのCORBA非対応のハードウェアデバイスにアクセス可能とする論理デバイスインタフェースである。
AutoFactory308は、無線装置1(図1(A))の次回起動時に、今回最後に実行されているソフトウェアを自動的に起動させるよう設定するインタフェースである(図3を参照して後述)。
MicroManager310は、ソフトウェアの起動および終了を指示し、ソフトウェアのリストを管理するインタフェースである(図4を参照して後述)。
DownLoader312は、HCI300から設定されたIPアドレスに基づいて、IPアドレスに対応するソフトウェアをダウンロードするインタフェースである。
【0019】
[AutoFactory308]
図3(A)は、サービスインタフェース3(図2)に含まれるAutoFactoryインタフェース308のクラス図を例示する図であり、図3(B)は、AutoFactoryインタフェース308に定義されるメソッド名または属性名、および、これらの説明を例示する図である。
図3(A)に示すように、AutoFactoryインタフェース308は、ApplicationFactoryインタフェースを継承する。
ApplicationFactoryインタフェースは、SCAを利用するプラットフォームが備えるミドルウェアであり、例えば、無線通信処理の内容に応じて、必要なソフトウェアを選択して、選択したソフトウェアを、複数の実行環境のいずれかに配置したり、起動したりする。
【0020】
AutoFactoryインタフェース308は、上述のポリシー(3)に従って、複数の実行環境への動的なソフトウェア配置を行わず、無線装置1(図1(A))の次回起動時に、今回最後に実行されているソフトウェアを自動的に起動させるよう設定する。
図3(B)に示すように、AutoFactoryインタフェース308には、例えば、ソフトウェアの自動起動の設定がオンであるかオフであるかを示す属性AutoOn_OFFを定義する。
また、属性AutoOn_OFFが、オンを示す場合は、次回起動時に、今回最後に実行されているソフトウェアを自動的に起動させるよう設定するAuto_create_at_startメソッドを定義する。
【0021】
[MicroManager310]
図4(A)は、サービスインタフェース3(図2)に含まれるMicroManagerインタフェース310のクラス図を例示する図であり、図4(B)は、MicroManager310に定義されるメソッド名または属性名、および、これらの説明を例示する図である。
図4(A)に示すように、MicroManagerインタフェース310は、DomainManagerインタフェースと集約関係にある。
DoaminManagerインタフェースは、SCAを利用するプラットフォームが備えるミドルウェアであり、例えば、GPP_Device306(図2)などの各種インタフェースを管理し、管理されたインタフェースのメソッドのコールに応じて、ソフトウェアに対する処理や管理を行う。
【0022】
MicroManagerインタフェース310は、DomainManagerインタフェースに定義された各種処理のうち、ソフトウェアの起動および終了を指示する処理と、ソフトウェアのリスト管理とを行う。
図4(B)に示すように、MicroManagerインタフェース310には、例えば、指定したソフトウェアを起動させるlaunchApplicationメソッドや、指定したソフトウェアを終了させるcleanApplicationメソッドを定義する。
【0023】
[無線装置1の第1の動作例]
図5は、無線装置1(図1(A))の起動処理を例示するシーケンス図である。
以下、図5を参照して、無線装置1の起動処理を、第1の動作例として説明する。
図5に示すように、ステップ400(S400)において、HCI300は、無線装置1において、無線通信処理の内容に関わらず、共通して使用される共通インタフェースを起動し、初期化する。
【0024】
ステップ402(S402)において、HCI300(図2)は、S400において起動・初期化された共通インタフェース名と、IPアドレスとを、NamingService302に対して登録処理する。
ステップ404(S404)において、3つのインタフェースMicroManager310、Log304およびGPP_Device306は、それぞれ起動処理を行い、インタフェース名と、IPアドレスとを、NamingService302に対して登録処理する。
ステップ406(S406)において、DownLoader312は、起動処理を行い、インタフェース名と、IPアドレスとを、NamingService302に対して登録処理する。
【0025】
ステップ408(S408)において、HCI300は、NamingService302に対して、MicroManager310、Log304およびGPP_Device306のIPアドレスを要求して、取得する。
ステップ410(S410)において、HCI300は、S408において取得した各インタフェースのIPアドレスを、DownLoader312に対して設定する。
ステップ412(S412)において、DownLoader312は、S410においてHCI300から設定されたIPアドレスに基づいて、IPアドレスに対応するソフトウェアをダウンロードする。
ステップ414(S414)において、HCI300は、起動完了処理を行う。
【0026】
[無線装置1の第2の動作例]
図6は、無線装置1(図1(A))におけるソフトウェアの交換処理を例示するシーケンス図である。
ソフトウェアの交換処理は、GPP_Device306(図2)が別のハードウェアデバイスまたは最新のハードウェアデバイスにアクセス可能になるようにすることである。
以下、図6を参照して、無線装置1におけるソフトウェアの交換処理を、第2の動作例として説明する。
【0027】
ステップ500(S500)において、HCI300(図2)は、MicroManager310のlaunchApplicationメソッドをコールして、予め定められたハードウェアデバイスに対応するソフトウェアを指定して、指定したソフトウェアの起動処理を指示する。
ステップ502(S502)において、MicroManager310は、AutoFactory308のcreateメソッドをコールして、S500において指定されたソフトウェアの起動処理を行う。
ステップ504(S504)において、AutoFactory308は、プロファイルを解析する。
【0028】
ステップ506(S506)において、AutoFactory308は、GPP_Device306のメソッドをコールして、DSPレジスタのソフトウェアの書き込み領域の割り当て処理を指示する。
ステップ508(S508)において、AutoFactory308は、GPP_Device306のメソッドをコールして、ソフトウェアの書き込み処理を指示する。
ステップ510(S510)において、GPP_Device306は、S506において割り当てたDSPレジスタの領域へ、S508において指示されたソフトウェアの書き込み処理を行う。
【0029】
ステップ512(S512)において、AutoFactory308は、GPP_Device306のメソッドをコールして、DSPのリセット処理を指示する。
ステップ514(S514)において、GPP_Device306は、S512におけるAutoFactory308からの指示を受けて、DSPのリセット処理を行う。
ステップ516(S516)において、HCI300は、ソフトウェア交換処理の完了通知を行う。
【0030】
[無線装置1の特徴]
以下、無線装置1(図1(A))の特徴を説明する。
以上説明したように、無線装置1のプラットフォームは、ソフトウェアを自動的に起動するインタフェース、および、指定したソフトウェアの起動処理を指示するインタフェースなどから構成されるミドルウェアを備える。
このようなインタフェースにより、SCAを利用するプラットフォームが有するインタフェースのように、複数のソフトウェアから動的に適切なソフトウェアを選択して、配置する必要がないので、低負荷でプラットフォームを動作させることができる。
また、無線装置1のプラットフォームは、OSとソフトウェアの間に、このようなインタフェースから構成されるミドルウェアを備えることにより、OSの違いを考慮することなく、複数のソフトウェアを動作させることができる。
したがって、本発明に係る無線装置1によれば、OSの違いを考慮することなく複数のソフトウェアを動作させることができるインタフェースを有し、SCAを利用するプラットフォームよりも低負荷で動作するプラットフォームを実現することができる。
【符号の説明】
【0031】
1・・・無線装置,12・・・モデム部,14・・・コーデック部,16・・・制御部,100・・・アンテナ,102・・・RF部,104・・・CPU,106・・・メモリ,108・・・LAN−IF,110・・・バス,20・・・プラットフォームレイヤ,200・・・DSPソフトウェア,202・・・GPPソフトウェア,204・・・入出力ライブラリ,206・・・DSPハードウェア,208・・・OS,210・・・GPPハードウェア,3・・・サービスインタフェース,30・・・ミドルウェア,300・・・HCI,302・・・NamigService,304・・・Log,306・・・GPP_Device,308・・・AutoFactory,310・・・MicroManager,312・・・DownLoader

【特許請求の範囲】
【請求項1】
オペレーティングシステムと、複数のソフトウェアコンポーネントと、前記オペレーティングシステムと前記複数のソフトウェアコンポーネントとの間に備えられたミドルウェアとを有し、前記複数のソフトウェアコンポーネントの1つ以上を実行して、全体として無線通信処理を行う無線装置であって、
前記ミドルウェアに含まれ、この無線装置が起動されるときに、予め定められた条件に基づいて、前記複数のソフトウェアコンポーネントの1つ以上を起動させる第1の起動手段と、
前記ミドルウェアに含まれ、前記複数のソフトウェアコンポーネントのうち、外部から指定されたソフトウェアコンポーネントを起動させる第2の起動手段と
を有する無線装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate