(57)【要約】【課題】ソフトウェアを切り替えることによって無線通信機能を変更することができるソフトウェア無線機において、使用するソフトウェアを保存するためのメモリ容量を確保する。【解決手段】使用するソフトウェア（ライブラリ）を切り替えることにより無線通信機能を変更することができる無線通信を実現するソフトウェア無線機において、外部からダウンロードするソフトウェア（ライブラリ）をフラッシュメモリ１８に保存するとき、フラッシュメモリの空き状況、履歴管理部４が有するライブラリ管理情報、およびユーザの選択に基づいて、フラッシュメモリ中のソフトウェアの一部を削除する。【選択図】　　　　図１
2004023753.tif 000002
【特許請求の範囲】
【請求項１】
使用するソフトウェアを切り替えることにより無線通信機能を変更することができる無線通信を実現するソフトウェア無線機であって、
前記使用するソフトウェアを保存するためのメモリと、
前記使用するためのソフトウェアを外部から取得する外部取得手段と、
前記外部取得手段が取得したソフトウェアを前記メモリに保存するとき、前記メモリの空き状況を調べ、この空き状況に基づいて、前記メモリ中のソフトウェアの一部を前記メモリから削除する削除手段と、を備えたことを特徴とするソフトウェア無線機。
【請求項２】
前記メモリに保存されているソフトウェアの使用履歴を記録する履歴記録手段を備え、
前記削除手段は、前記外部取得手段が取得したソフトウェアを前記メモリに保存するとき、前記メモリの空き状況と、前記履歴記録手段の記録しているソフトウェアの使用履歴に基づいて、前記メモリ中のソフトウェアの一部を前記メモリから削除することを特徴とする請求項１に記載のソフトウェア無線機。
【請求項３】
前記削除手段は、前記外部取得手段が取得したソフトウェアを前記メモリに保存するとき、前記メモリの空き状況と、前記履歴記録手段の記録しているソフトウェアの使用履歴に基づいて、前記メモリ中のソフトウェアのうち、前記メモリから削除する候補となるものを当該ソフトウェア無線機のユーザに表示し、前記ユーザが前記候補から選択したものを前記メモリから削除することを特徴とする請求項２に記載のソフトウェア無線機。
【請求項４】
前記履歴記録手段の記録しているソフトウェアの使用履歴は、前記メモリに保存されているソフトウェアの過去の使用頻度と最近の使用実績のうち少なくとも１つを含み、
前記削除手段は、前記外部取得手段が取得したソフトウェアを前記メモリに保存するとき、前記メモリの空き状況と、前記過去の使用頻度と最近の使用実績のうち少なくとも１つとに基づき、前記メモリ中のソフトウェアの一部を前記メモリから削除することを特徴とする請求項２ないし３のいずれか１つソフトウェア無線機。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、使用するソフトウェアを切り替えることにより無線通信機能を変更することができるソフトウェア無線機に関するもので、移動無線端末に用いて好適である。
【０００２】
【従来の技術】
近年、使用するソフトウェアを切り替えることによって無線通信機能を変更することができるソフトウェア無線機の開発が進められている。ソフトウェア無線機は、利用場面によっては頻繁にソフトウェアの切り替えを行うことが想定される。このような場面に対応するために、いくつかの技術が提案されている。
【０００３】
特開２０００−２４４３５８号公報に記載の技術は、この様な場面等のために、ソフトウェア無線機側で無線機能を制御するソフトウェアとしてのライブラリをソフトウェア無線機に保存して、複数の通信システムに対応しようとするものである。
【０００４】
また、特開２００１ー１６０７６５号公報に記載の技術は、ライブラリ管理機能を有し、ソフトウェア無線機が対応する無線通信システムの機能を実現するためのライブラリを保存していない場合に、このライブラリ管理機能が不足するライブラリを特定し、必要なライブラリを取得するものである。
【０００５】
また、特開２００１−４３０７３号公報および特開２００１−４３０８７号公報に記載の技術は、ソフトウェア無線機が互いのソフトウェアの保存状況を通信によって検索し、不足分を相互補完するものである。
【０００６】
また特開２００１−４５５６号公報に記載の技術は、現在利用可能なサービスの種別を識別し、そのサービスの中から通信品質に基づいて選んだサービスに必要なソフトウェアを入手・実行することができるものである。
【０００７】
【発明が解決しようとする課題】
しかし、上記のようなソフトウェア（ライブラリ）の切り替えを頻繁に行って無線通信機能を変更すると、各無線通信機能を実現するためのソフトウェアが数多く必要となる。それら全てのソフトウェアを保存しようとすると、保存のためのメモリ容量が不足してしまい、使用するソフトウェアを取得・保存できなくなってしまうという問題がある。
【０００８】
本発明は上記点に鑑みて、ソフトウェアを切り替えることによって無線通信機能を変更することができるソフトウェア無線機において、使用するソフトウェアを保存するためのメモリ容量を確保することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するための請求項１に記載の発明は、使用するソフトウェアを切り替えることにより無線通信機能を変更することができる無線通信を実現するソフトウェア無線機であって、使用するソフトウェアを保存するためのメモリと、使用するためのソフトウェアを外部から取得する外部取得手段と、外部取得手段が取得したソフトウェアをメモリに保存するとき、メモリの空き状況を調べ、この空き状況に基づいて、メモリ中のソフトウェアの一部をメモリから削除する削除手段と、を備えたことを特徴とするソフトウェア無線機である。
【００１０】
これによって、削除手段が、外部取得手段が取得するソフトウェアをメモリに保存するとき、メモリの空き状況に基づいて、メモリ中のソフトウェアの一部をメモリから削除するので、使用するソフトウェアを保存するためのメモリが不足することがなくなる。すなわち、ソフトウェアを切り替えることによって無線通信機能を変更することができるソフトウェア無線機において、使用するソフトウェアを保存するためのメモリ容量の確保ができるようになる。
【００１１】
なお、この請求項１における削除手段は、外部取得手段が取得したソフトウェアをメモリに保存するときには必ずメモリ中のソフトウェアの一部を削除するわけではない。すなわち、メモリの空き状況によっては、削除しない場合もあり得る。
【００１２】
また、請求項２に記載の発明は、請求項１に記載のソフトウェア無線機において、メモリに保存されているソフトウェアの使用履歴を記録する履歴記録手段を備え、削除手段は、外部取得手段が取得したソフトウェアをメモリに保存するとき、メモリの空き状況と、履歴記録手段の記録しているソフトウェアの使用履歴に基づいて、メモリ中のソフトウェアの一部をメモリから削除することを特徴とする。
【００１３】
これによって、請求項１の発明に加え、削除手段は履歴記録手段の記録しているソフトウェアの使用履歴に基づいてメモリ中のソフトウェアの一部を削除するので、より効率的なソフトウェアの管理ができるようになる。
【００１４】
また、請求項３に記載の発明は、請求項２に記載のソフトウェア無線機において、削除手段は、外部取得手段が取得したソフトウェアをメモリに保存するとき、メモリの空き状況と、履歴記録手段の記録しているソフトウェアの使用履歴に基づいて、メモリ中のソフトウェアのうち、メモリから削除する候補となるものを当該ソフトウェア無線機のユーザに表示し、ユーザが候補から選択したものをメモリから削除することを特徴とする。
【００１５】
これによって、ユーザが選択したものが削除されるので、削除するソフトウェアの確認をユーザが行うことができ、削除の安全性が高まる。
【００１６】
また、請求項４に記載の発明は、請求項２ないし３のいずれか１つソフトウェア無線機において、履歴記録手段の記録しているソフトウェアの使用履歴は、メモリに保存されているソフトウェアの過去の使用頻度と最近の使用実績のうち少なくとも１つを含み、削除手段は、外部取得手段が取得したソフトウェアをメモリに保存するとき、メモリの空き状況と、上記した過去の使用頻度と最近の使用実績のうち少なくとも１つとに基づき、メモリ中のソフトウェアの一部をメモリから削除することを特徴とする。
【００１７】
【発明の実施の形態】
図２は、本発明の一実施形態に係るソフトウェア無線機のハードウェア構成図である。このソフトウェア無線機は、ＣＰＵ７、アンプ８ａ、アンプ８ｂ、ミキサ９、局部周波数発振器であるシンセサイザ１０、Ｄ／Ａ変換器１１、Ａ／Ｄ変換器１２、ＦＰＧＡ（Ｆｉｅｌｄ　Ｐｒｏｇｒａｍａｂｌｅ　Ｇａｔｅ　Ａｒｒａｙ）１３、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ　Ｓｐｅｃｉｆｉｃ　Ｉｎｔｅｇｒａｔｅｄ　Ｃｉｒｃｕｉｔ）１４、ＤＳＰ１５、Ｉ／Ｏ１６、ＲＡＭ１７、フラッシュメモリ１８、アンテナ１９、入力装置２０、表示装置２１を有している。
【００１８】
ＦＰＧＡ１３は、外部からの制御によって回路構成を変えるデジタル処理回路である。
【００１９】
ＡＳＩＣ１４は、特定処理用のデジタル回路である。
【００２０】
ＤＳＰ１５は、プログラムによって作動するデジタル処理回路で、ＣＰＵ７から命令を受信することによって作動する。
【００２１】
Ｉ／Ｏ１６は、ＡＳＩＣ１４およびＣＰＵ７とデータのやりとりを行い、外部の装置とデータの交換を行うためのインターフェースである。外部とのデータ交換の規格としては、例えばＵＳＢまたはＩＥＥＥ１３９４等を用いる。
【００２２】
ＲＡＭ１７は揮発性のメモリであり、フラッシュメモリ１８は不揮発性のメモリである。
【００２３】
入力装置２０は、ソフトウェア無線機のユーザによって操作されることによって、その操作に基づいた信号をＣＰＵ７に出力する装置である。
【００２４】
ＣＰＵ７は、ソフトウェアをフラッシュメモリ１８から読み出してＲＡＭ１７に書き込み、このＲＡＭ１７からそのソフトウェアの命令を逐次読み込んで実行することで作動するものである。その作動においては、ＤＳＰ１５およびＩ／Ｏ１６とデータのやりとりを行い、ＲＡＭ１７およびフラッシュメモリ１８に対してデータの書き込み／読み出しを行い、アンプ８ａ、アンプ８ｂ、ミキサ９、シンセサイザ１０、Ｄ／Ａ変換器１１、Ａ／Ｄ変換器１２、ＦＰＧＡ１３、ＡＳＩＣ１４、ＤＳＰ１５、Ｉ／Ｏ１６の作動を制御する。また、必要があれば表示装置２１に信号を出力して情報を表示させることで、ユーザに情報を通知する。
【００２５】
このようなソフトウェア無線機による通信においては、アンテナ１９によって受信された無線信号が、アンプ８ａによって増幅され、さらにミキサ９によってシンセサイザ１０の出力とかけ合わされることで復調され、Ａ／Ｄ変換器１２によってデジタル信号に変換される。このデジタル信号は、ＦＰＧＡ１３によって受信され、必要に応じてこのＦＰＧＡ１３、ＤＳＰ１５、およびＡＳＩＣ１４のデジタル処理回路によってデコード、並び替え等の処理を施され、その後ＤＳＰ１５からＣＰＵ７に渡される。またＣＰＵ７によって生成された無線送信用のデータは、ＤＳＰ１５によって受信され、必要に応じてこのＤＳＰ１５、ＡＳＩＣ１４、およびＦＰＧＡ１３によってエンコード、並び替え等の処理を施され、その後ＦＰＧＡ１３からＤ／Ａ変換器１１に送信され、このＤ／Ａ変換器１１によってアナログ信号に変換される。このアナログ信号は、ミキサ９によってシンセサイザ１０の出力とかけ合わされることで変調され、そしてアンプ８ｂによって増幅され、アンテナ１９から無線電波として出力される。
【００２６】
また、このソフトウェア無線機は、ＣＰＵ７がアンプ８ａ、アンプ８ｂ、ミキサ９、シンセサイザ１０、Ｄ／Ａ変換器１１、Ａ／Ｄ変換器１２、ＦＰＧＡ１３、ＡＳＩＣ１４、ＤＳＰ１５、Ｉ／Ｏ１６の作動を制御し、これらの機能を切り替えることで、対応無線通信システム等の無線通信機能を変更することができるようになっている。
【００２７】
図１に、ソフトウェア無線機のソフトウェア／ハードウェア構成図を示す。ＣＰＵ７が実行するソフトウェアは、アプリケーション１、ライブラリ管理部２、ライブラリ３、履歴管理部４、Ｏ／Ｓ５、デバイスドライバ６に大別される。
【００２８】
なお、本実施形態においては、アプリケーション１、ライブラリ管理部２、ライブラリ３、履歴管理部４、Ｏ／Ｓ５、デバイスドライバ６等のソフトウェアは、ＣＰＵ７によって実行されるようになっているが、以降は簡単のため、これらのソフトウェアによるＣＰＵ７の作動を、単にこれらのソフトウェアの作動として記す。
【００２９】
アプリケーション１は、ソフトウェア無線機のユーザが直接利用する、最も上位の層のソフトウェアである。アプリケーション１の例としては、Ｗｅｂブラウザ、メーラ等の他、ユーザの操作によって使用する通信システムを切り替えるための通信システムスイッチャがある。このアプリケーション１は、無線通信機能を実現するための専用言語によって記述されたソフトウェアである。この専用言語を用いることによって、このソフトウェア無線機が有する個々のハードウェアに依存せずにプログラムを記述することができる。すなわち、ソフトウェア無線機のハードウェア構成が変化しても、同じアプリケーション１のソフトウェアを利用することができる。この専用言語において呼び出すことができる関数としては、例えば通信相手に発呼するｃａｌｌ関数、通信相手からの着呼に応答するｒｅｓｐｏｎｄ関数、特定のＵＲＬにアクセスするｇｅｔｕｒｌ関数、メールを送信するｓｅｎｄｍａｉｌ関数、通信システムを切り替えるｕｓｅｎｅｗｓｙｓｔｅｍ関数等がある。以下、ｕｓｅｎｅｗｓｙｓｔｅｍ関数を代表例として、ソフトウェア無線機の作動について説明する。
【００３０】
ｕｓｅｎｅｗｓｙｓｔｅｍ関数は、使用するシステム名を文字列引数として受け取る。例えば、アプリケーション１のソースにおいて以下のような記述で用いられる。
【００３１】
＄ｎｅｗｓｙｓｔｅｍ　＝　”ＰＤＣ（１．５ＧＨｚ）”；
ｕｓｅｎｅｗｓｙｓｔｅｍ（＄ｎｅｗｓｙｓｔｅｍ）；
この記述は、新たにＰＤＣ（１．５ＧＨｚ）の通信システムの使用を開始するための命令である。
【００３２】
この専用言語で記述されたプログラムは、コンパイルされることにより、Ｏ／Ｓ５において解釈、実行可能なバイナリコードに変換される。
【００３３】
Ｏ／Ｓ５は、ソフトウェア無線機の各種動作のための基本的なハードウェア制御機能、処理機能、および管理機能を実現するため、ソフトウェア無線機上で常時実行されているソフトウェアである。Ｏ／Ｓ５において、上記したバイナリコードが解釈されると、Ｏ／Ｓ５はバイナリコードが呼び出している関数のうち、ライブラリ３にその本体があるものをリンクすることによって、このバイナリを実行する。
【００３４】
ライブラリ３は、アプリケーション１によって呼び出される関数のうち、ハードウェアの具体的な制御を行う必要があるものの本体部分となるソフトウェアである。
【００３５】
ｕｓｅｎｅｗｓｙｓｔｅｍ関数の本体部分もここにあり、シンセサイザ１０、ＦＰＧＡ１３、ＤＳＰ１５等のハードウェアに特化した命令のセットの記述を含んでいる。例えば、ｕｓｅｎｅｗｓｙｓｔｅｍ関数の場合は、以下のような命令を含んでいる。
【００３６】
2004023753.tif 000003
この命令によって、使用開始する通信システムがＰＤＣ（１．５ＧＨｚ）なら、ｕｓｅｎｅｗｓｙｓｔｅｍ関数は、ｐｄｃ１５ｓｔａｒｔ関数を呼び出す。このｐｄｃ１５ｓｔａｒｔもライブラリ３に属するソフトウェアであり、以下のような命令を含んでいる。
【００３７】
2004023753.tif 000004
これらの命令は、周波数が１．５ＧＨｚとなるようシンセサイザ１０を制御し、ＦＰＧＡの構成をＰＤＣ（１．５ＧＨｚ）用として登録されたものに変更し、ＤＳＰにＰＤＣ（１．５ＧＨｚ）用の命令を読み込ませて実行させる。すなわち、これらの命令はＰＤＣ（１．５ＧＨｚ）による通信が行えるように、ソフトウェア無線機のハードウェアを再構成するためのものである。上記したｕｓｅｎｅｗｓｙｓｔｅｍ関数は、使用する通信システム毎にそれぞれに特化したライブラリ３の関数を呼び出すことで、通信システムや無線通信機能を切り替える。
【００３８】
Ｏ／Ｓ５は、これらのアプリケーション１のバイナリとライブラリ３とをリンクしたものを実行する。その実行において、上記したようなハードウェアの再構成等のハードウェア制御を行うときには、ハードウェア制御のための命令をデバイスドライバ６に渡すことで実現する。
【００３９】
デバイスドライバ６は、Ｏ／Ｓ５から渡されたハードウェア制御のための命令を、それぞれのハードウェアが実行可能な形式の命令に変換し、その変換した命令をＣＰＵ７から実際のハードウェアに電気信号として出力させるための処理を行うソフトウェアである。すなわちデバイスドライバ６は、ハードウェアの個々の仕様、バージョン等の違いによる命令の違いを吸収する役目を果たすようになっている。したがって、デバイスドライバ６は個々のハードウェアと密接に関連しており、ハードウェアを交換すればデバイスドライバ６もそれに合ったものに交換する必要がある。
【００４０】
この様な、アプリケーション１、ライブラリ３、Ｏ／Ｓ５、デバイスドライバ６の関係は、例えばＵＮＩＸ系のシステムにおけるアプリケーション、シェアードライブラリ、カーネル、デバイスドライバの関係と類似している。
【００４１】
以上のようなソフトウェア構成によって、アプリケーション１は個々のハードウェアの制御についてはライブラリ３以下に任せることで、ハードウェアに依存しないプログラミングが可能となる。そして、ソフトウェア無線機は使用するソフトウェア（ライブラリ）を切り替えることにより無線通信機能を変更することができる。ただし、使用しようとする通信システムに対応するライブラリが存在しない場合は、後述するように必要なライブラリをフラッシュメモリ１８へダウンロードする必要がある。
【００４２】
履歴管理部４は、Ｏ／Ｓ５上で実行され、フラッシュメモリ１８に格納されているライブラリ管理情報にアクセスすることで、このライブラリ管理情報の読み出し、書き換えを行うソフトウェアである。ライブラリ管理情報へのアクセスは、ライブラリ管理部２等からの要求によって行われる。
【００４３】
図３に、この履歴管理部４がアクセスするライブラリ管理情報の構成を表として示す。ライブラリ管理情報は、現在ソフトウェア無線機が有しているライブラリのそれぞれについての、ライブラリ識別情報、容量、入手日、最終使用日、過去３ヶ月間の使用頻度、過去１年間の使用回数を有している。
【００４４】
ライブラリ識別情報は、個々のライブラリの名称である。例えばＧＰＳは、ＧＰＳ（Ｇｌｏｂａｌ　Ｐｏｓｉｔｉｏｎｉｎｇ　Ｓｙｓｔｅｍ）のための位置情報取得等の関数の実体を有し、Ｏ／Ｓ５、デバイスドライバ６を介してＧＰＳ関連のハードウェアを作動させるためのプログラムを有するライブラリである。またＧＳＭ、ＰＣＳ（Ｓｉｎｇｌｅ）、およびＡＭＰＳ＋ＰＣＳは、ＧＳＭ（Ｇｌｏｂａｌ　Ｓｙｓｔｅｍ　ｆｏｒ　Ｍｏｂｉｌｅ　Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）、ＰＣＳ（Ｐｅｒｓｏｎａｌ　Ｃｏｍｍｕｎｉｃａｔｉｏｎ　ｓｙｓｔｅｍｓ）、ＡＭＰＳ（Ａｄｖａｎｃｅｄ　ｍｏｂｉｌｅ　ｐｈｏｎｅ　ｓｅｒｖｉｃｅ）に対応する通信を行う関数の実体を有するライブラリである。
【００４５】
容量は、当該ライブラリをフラッシュメモリ１８へ格納したときの、フラッシュメモリ１８内における占有バイト数である。
【００４６】
入手日は、当該ライブラリをフラッシュメモリ１８へ格納したときの日付である。この日付が過去のものであればあるほど、当該ライブラリは古いバージョンのものであるということができる。
【００４７】
最終使用日は、当該ライブラリが最後に使用された日付である。当該ライブラリが現在使用中の場合は、この項目は「現在使用中」となる。
【００４８】
過去３ヶ月間の使用頻度は、当該ライブラリが３ヶ月前から現在までに使用された日数である。なお、当該ライブラリが同日中に複数回使用された場合であっても、この項目の日数は１日分しか増えないようになっている。
【００４９】
過去１年間の使用回数は、当該ライブラリがフラッシュメモリ１８へ格納されてから現在までに使用された回数である。
【００５０】
この最終使用日、過去３ヶ月間の使用頻度、使用回数は、使用履歴情報と総称される。
【００５１】
また、図３中には示していないが、ライブラリ管理情報は、各ライブラリ毎の過去１年間における毎日の使用回数、すなわち毎日の使用実績を有している。この毎日の使用実績を使用して再計算することで、履歴管理部４はライブラリ管理情報の使用履歴情報を常時更新するようになっている。
【００５２】
ライブラリ管理部２は、Ｏ／Ｓ５上でアプリケーション１と並行して実行されるプログラムである。ライブラリ管理部２は、通信システム変更のための関数呼び出しを、Ｏ／Ｓ５に問い合わせることで常時監視している。この関数呼び出しを検知すると、ライブラリ管理部２は呼び出された関数を含むライブラリ、すなわち通信システム切り替えのために必要なライブラリが揃っているか否かを調べ、不足するライブラリがあれば、Ｉ／Ｏ１６から有線によって、または無線によって当該ライブラリを図示しない外部のサーバ等からダウンロードする。また、ライブラリのダウンロード時に、フラッシュメモリ１８中にこのライブラリを格納するための空き領域がなければ、フラッシュメモリ１８内のライブラリ中から選択したものをユーザに問い合わせた上で削除する。
【００５３】
なお、サーバは、ソフトウェア無線機が必要とするライブラリを有しており、ソフトウェア無線機からの要求によってライブラリ本体、あるいはライブラリのバージョン、動作可能条件、ファイルサイズ等の情報を、ソフトウェア無線機に返信するようになっている。
【００５４】
上記のようなライブラリ管理部２の関数呼び出し検知後の作動の詳細を、フローチャートとして図４および図５に示して説明する。
【００５５】
ライブラリ管理部２は、アプリケーション１からの通信システム変更の関数呼び出しを検知すると（ステップ４０５）、変更後の通信システムにとって必要なライブラリを特定する。これは、ライブラリ管理部２が、ライブラリ３における各関数の依存関係をチェックすることによって特定することができる。そして、この特定したライブラリをフラッシュメモリ１８内で参照し、存在しているか否かをチェックする（ステップ４１０）。そして、特定したライブラリ中で、フラッシュメモリ１８内に存在しない、すなわち不足するものがあるか否かを判定する（ステップ４１５）。
【００５６】
不足プログラムが無ければ、すなわち必要なライブラリが全て揃っていれば、ライブラリ管理部２は先に検知した関数呼び出しをライブラリ３に渡すことで、無線機能の再構成および動作テストを経た後システム切り替えを行わせる（ステップ４２０）。
【００５７】
そして、ライブラリ管理情報中の当該ライブラリの使用履歴情報を書き換えるよう履歴管理部４に要求する（ステップ４２５）。書き換えの具体的内容は以下の（１）〜（４）の通りである。
（１）新たに使用するライブラリの毎日の使用実績の今日の使用回数を１つ増やす
（２）新たに使用するライブラリの最終使用日の項目を「使用する」にする
（３）使用を終了するライブラリの最終使用日の項目を今日の日付にする
（４）履歴管理部４にライブラリ管理情報の再計算をさせる
ステップ４１５で不足プログラムがあると判定すると、ライブラリ管理部２は必要なライブラリの情報を、有線または無線でサーバに要求する。そしてサーバから、ライブラリのバージョン、動作可能条件、ファイルサイズ等を受信する。そして、Ｏ／Ｓ５を介してデバイスドライバ６からハードウェアの性能に関する諸元を取得し、ライブラリの動作可能条件に合致するか等の整合性の確認を行う（ステップ４３５）。
【００５８】
そして、受信したファイルサイズから当該ライブラリがフラッシュメモリ１８に記録されるときの占有バイト数を取得する（ステップ４４０）。そして、フラッシュメモリ１８のライブラリを記録するための空き領域の大きさを確認する（ステップ４４５）。そして、この占有バイト数と空き領域との比較を行い、フラッシュメモリ１８内に当該ライブラリが格納できる空き領域があるか否かを判定する（ステップ４５０）。
【００５９】
空き領域があると判定すれば、ライブラリ管理部２はＯ／Ｓ５およびデバイスドライバ６を介してプログラムをＲＡＭ１７内にダウンロードし（ステップ４５５）、ステップ４２０と同様、無線機能の再構成および動作テストを経た後システム切り替えをライブラリ３に行わせる（ステップ４６０）。
【００６０】
そして、ステップ４２５と同様に、ライブラリ管理情報中の当該ライブラリの使用履歴情報を書き換えるよう履歴管理部４に要求し、更にＲＡＭ１７上の当該ライブラリをフラッシュメモリ１８に記録する（ステップ４６５）。
【００６１】
ステップ４５０でフラッシュメモリ１８の空き容量が十分でないでないと判定すると、ライブラリ管理部２は当該ライブラリを記録するために、他のライブラリを削除するための処理を開始する。まず、削除可能性検索条件の設定を行う。すなわち、現在フラッシュメモリ１８に記録されているライブラリのうち、どのライブラリを先に削除するかの条件を１つ決める（ステップ５２０）。この条件は、後述するステップ５９０においてソフトウェア無線機を使用するユーザが選択を行っていれば、その選択による設定に決まり、そうでなければデフォルトの設定に決まる。デフォルトの設定は以下のような条件式となっている。
【００６２】
＜必要空き容量以上の容量を有する＞ＡＮＤ＜過去３ヶ月間に１日も使用していない＞ＡＮＤ＜２年以上前に入手している＞ＡＮＤ＜過去１年間の使用回数が３回以下である＞ＡＮＤ＜最終使用日が１年以上前である＞
ＡＮＤは論理積演算子である。すなわち、＜＞内の項目が全て真となって初めて全体が真となる。また、ユーザが選択できるオプションとして、
＜最終使用日が３ヶ月以上前である＞、
＜最終使用日が１ヶ月以上前である＞、
＜過去３ヶ月の使用日数が５日以下である＞
＜過去３ヶ月の使用日数が１０日以下である＞
＜１年以上前に入手している＞
＜半年以上前に入手している＞
＜過去１年間の使用回数が１０回以下である＞
＜過去１年間の使用回数が２０回以下である＞
等、条件式の個々の要素の条件を段階的にゆるめたものを組み合わせることができるようにあらかじめ設定されている。
【００６３】
そして、決まった削除可能性検索条件に合致するライブラリを検索するために、履歴管理部４にライブラリ管理情報を要求して受け取り、このライブラリ管理情報に記載の内容と削除可能性検索条件とを比較し、条件が合致するライブラリのリストを作成する（ステップ５２０）。
【００６４】
そして、このようにして作成したリスト中に、ライブラリが１つも記載されていない、すなわちリストが空であるか否かを判定する（ステップ５３０）。
【００６５】
空でない、すなわち削除候補となるライブラリが存在していると判定すると、ライブラリ管理部２はこのリストをＯ／Ｓ５とデバイスドライバ６を介して表示装置２１に表示させることにより、ユーザに通知し、そしてリスト中の個々のライブラリについて、削除可能か否かを指定するよう促すメッセージを表示させる（ステップ５４０）。
【００６６】
また、このメッセージに応じて入力装置２０からユーザが行った削除の可否の指定をデバイスドライバ６とＯ／Ｓ５を介して受信すると、この指定で削除ＯＫのものがあるか否かを判定する（ステップ５５０）。そしてあると判定すると、そのライブラリの削除を行い（ステップ５６０）、その後ステップ４４５、４５０、４５５、４６０、および４６５を経て当該ライブラリのダウンロードを行う。
【００６７】
なお、ステップ５３０でリストが空であると判定した場合、あるいはステップ５５０で削除ＯＫのライブラリが無いと判定した場合、現在の削除可能性検索条件では、削除することのできるライブラリがないことになる。そこで、ライブラリ管理部２は削除可能性条件をゆるめることが可能か否かを判定する（ステップ５７０）。すなわち、現在よりゆるい検索のオプションがまだ存在するか否かを判定する。ゆるめることができないと判定すれば、削除できるライブラリが見つかる可能性はないとして、ライブラリ管理部２は表示装置に当該ライブラリのダウンロードは不可であると表示し（ステップ５６０）、ダウンロードのための処理を終了する。
【００６８】
条件をゆるめることができると判定すれば、ライブラリ管理部２は１つまたは複数のオプションを表示装置にリスト表示し（ステップ５９０）、入力装置からユーザによる指定を待つ。この指定を受信すると、処理はステップ５１０に戻り、この指定された検索条件で再度削除を試みる。
【００６９】
この様なライブラリ管理部２の処理によるソフトウェア無線機の作動により、外部からダウンロードするソフトウェア（ライブラリ）をフラッシュメモリ１８に保存するとき、フラッシュメモリ１８の空き状況、ライブラリ管理情報、およびユーザの選択に基づいて、フラッシュメモリ１８中のソフトウェアの一部を削除するので、使用するソフトウェアを保存するためのメモリが不足することがなくなる。すなわち、ソフトウェアを切り替えることによって無線通信機能を変更することができるソフトウェア無線機において、使用するソフトウェアを保存するためのメモリ容量の確保ができるようになる。
【００７０】
なお、本実施形態においては、ライブラリ管理部２がライブラリをダウンロードするときにフラッシュメモリ１８から他のライブラリを削除するようになっているが、ダウンロードするものはライブラリである必要はなく、また削除するのもライブラリである必要はない。これらはソフトウェア無線機が使用するソフトウェアであればよい。例えば、アプリケーションをダウンロードするときにフラッシュメモリ１８から他のアプリケーションを削除するようになっていてもよいし、あるいはアプリケーションをダウンロードするときに他のライブラリを削除するようになっていてもよい。
【００７１】
また、本実施形態においては、フラッシュメモリ１８が使用するソフトウェアを保存するためのメモリを構成する。ただし、このメモリはフラッシュメモリ１８である必要は必ずしもなく、ハードディスクのような記憶装置であってもよい。
【００７２】
また、履歴管理部４がメモリに保存されているソフトウェアの使用履歴記録手段を構成する。
【００７３】
また、ライブラリ管理情報がメモリに保存されているソフトウェアの使用履歴に対応する。
【００７４】
また、ライブラリ管理部２のステップ４５５のダウンロード処理が、使用するためのソフトウェアを外部から取得する外部取得手段を構成する。
【００７５】
また、ライブラリ管理部２のステップ４３５、４４０、４４５、４５０、およびステップ５１０〜５８０の処理が、外部取得手段が取得したソフトウェアをメモリに保存するとき、メモリの空き状況に基づいて、メモリ中のソフトウェアの一部をメモリから削除する削除手段を構成する。
【図面の簡単な説明】
【図１】本発明の実施形態に係るソフトウェア無線機のソフトウェア／ハードウェア構成図である。
【図２】ソフトウェア無線機のハードウェアの構成図である。
【図３】履歴管理部４がアクセスするライブラリ管理情報の構成を示す図表である。
【図４】ライブラリ管理部２の関数呼び出し検知後の作動のフローチャートである。
【図５】ライブラリ管理部２の関数呼び出し検知後の作動のフローチャートである。
【符号の説明】
１…アプリケーション、２…ライブラリ管理部、３…ライブラリ、
４…履歴管理部、５…Ｏ／Ｓ、６…デバイスドライバ、７…ＣＰＵ、
８ａ、８ｂ…アンプ、９…ミキサ、１０…シンセサイザ、
１１…Ｄ／Ａ変換器、１２…Ａ／Ｄ変換器、１３…ＦＰＧＡ、
１４…ＡＳＩＣ、１５…ＤＳＰ、１６…Ｉ／Ｏ、１７…ＲＡＭ、
１８…フラッシュメモリ、１９…アンテナ、２０…入力装置、
２１…表示装置。
【図１】
2004023753.tif 000005
【図２】
2004023753.tif 000006
【図３】
2004023753.tif 000007
【図４】
2004023753.tif 000008
【図５】
2004023753.tif 000009