(57)【要約】【課題】現用の制御プログラムが破損した場合でも、速やかに更新された最新の制御プログラムでの動作が行えるソフトウエア更新方法を提供する。【解決手段】更新有無を認識するステップ（Ｓ１）と、ソフトウエア更新プログラムをＲＡＭへ転送し起動させるステップ（Ｓ２）と、ＲＯＭに記憶された現用の制御ソフトウエアおよび、ＲＡＭに記憶された差分ファイルをＲＡＭのソフトウエア更新プログラムワークメモリに読み出しするステップ（Ｓ３，Ｓ４）と、これらを実行するステップ（Ｓ５）と、制御ソフトウエアに異常を検知するステップ（Ｓ６Ｘ）と、リカバリー用ソフトウエアに上書されるステップ（Ｓ１０）と、新たな差分ファイルを取得するステップ（Ｓ１１）と、Ｓ１からＳ５を再度進め、新制御ソフトウエアを生成し、新制御ソフトウエアに書き換えするステップ（Ｓ６）と、を順次行う。【選択図】図５
2010079382.tif 000002
【特許請求の範囲】
【請求項１】
更新前後の制御ソフトウエアを基にして生成された差分ファイルが無線回線を経て受信される無線端末において、該無線端末の記憶部に保持された前記制御ソフトウエアを更新する方法であって、
前記制御ソフトウエアの更新有無を認識するステップと、前記記憶部のＲＯＭに記憶されたソフトウエア更新プログラムをＲＡＭへ転送し起動させるステップと、前記ソフトウエア更新プログラムの動作により、ＲＯＭに記憶された現用の制御ソフトウエアおよび、ＲＡＭに記憶された前記差分ファイルをＲＡＭのソフトウエア更新プログラムワークメモリに読み出しするステップと、前記ＲＡＭに転送されたソフトウエア更新プログラムを前記ソフトウエア更新プログラムワークメモリ上で実行するステップと、前記実行の過程で、前記制御ソフトウエアに異常を検知するステップと、前記異常検知により前記ＲＯＭに記憶された前記制御ソフトウエアが前記ＲＯＭに記憶されたリカバリー用ソフトウエアに上書されるステップと、前記無線回線を経て、前記リカバリー用ソフトウエアに整合する新たな前記差分ファイルを前記ＲＡＭ上に取得するステップと、前記更新有無を認識するステップから前記実行するステップまでを再度進め、前記新たな差分ファイルに基づく新制御ソフトウエアを生成し、前記制御ソフトウエアを前記新制御ソフトウエアに書き換えするステップと、を順次行うことを特徴とするソフトウエア更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気的デジタルデータ処理に関し、特に無線端末に内蔵した動作プログラムの更新処理に供して好適なソフトウエア更新方法に関する。
【背景技術】
【０００２】
近年、携帯電話機などの通信端末は、従来の音声による通話機能に加え、メール機能、インターネットアクセス機能、音楽再生機能、カメラ機能、デジタルＴＶ（ワンセグ）機能など、多くの機能が搭載されており、それらの機能が互いに連携して動作するようになっている。また、携帯電話機の情報伝送機能をユニット化した通信端末が自動販売機などに組み込まれ、商品在庫の遠隔管理、認証データの伝送などにも応用されている。
【０００３】
機器は、通信端末の内部に保持された動作プログラムとなる制御ソフトウエアによって動作して機能を発揮しており、機器の動作に関連するソフトウエアは、書き換え可能なフラッシュＲＯＭ（Ｆｌａｓｈ  ＲＯＭ  ；Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）と呼ばれる不揮発性メモリに格納されていることが多い。
【０００４】
従来、通信端末などの機器に内蔵された制御ソフトウエアに不具合が発生し、制御ソフトウエアを交換する場合、当該通信端末にシリアルデータ伝送を行うケーブルを外部から接続して、ケーブルデータ伝送によってＦｌａｓｈ  ＲＯＭに格納されている制御ソフトウエアを新たなものに書き換えていた。
【０００５】
近年に至っては、ＦＯＴＡ（Ｆｉｒｍｗａｒｅ  Ｏｖｅｒ  Ｔｈｅ  Ａｉｒ）と呼ばれる無線回線を伝送媒体として、不具合を修正、あるいは、機能が増強されたバージョンアップの制御ソフトウエアを取得し、書き換える機能が提供されている。
【０００６】
このＦＯＴＡの方法によれば、書き換えの手間が省けるので大変便利であるが、一方で、多量の制御ソフトウエアが無線回線を占有して伝送されると、通信コストが嵩むのみならず、回線混雑の一因ともなる。
【０００７】
通信コストの軽減および、回線混雑回避のため、送信側において、変更前の制御ソフトウエアと変更後の制御ソフトウエアの差分データを生成して、短縮された差分ファイルとする差分データを伝送すれば、伝送データ量が少なくて済むので、この方法がプログラム更新の主流となってきた。
【０００８】
通信端末側では、変更前である現用のソフトウエアと受信した差分ファイルとから、演算処理によって、変更後の新ソフトウエアを生成する。
【０００９】
なお、伝送されてくる差分ファイルは、通信端末側で現用のソフトウエアを更新できるバージョンのものでなければならない。
【００１０】
通常、通信端末内の制御ソフトウエアは、書き換えることがなく用いられる。
サービス中に、発見された不具合を正すために、あるいは、新機能を追加するために、制御ソフトウエアの更新を行う場合がある。
【００１１】
更新処理を実行する際、更新前の制御ソフトウエアに一部の誤りが発生していた場合、あるいは、更新処理中の生成される制御ソフトウエアに誤りが発生した場合などにより、更新手続きが進められなくなるだけでなく、現用のソフトウエアに戻すこともできなくなるケースがある。
【００１２】
これによって、機器が正しく起動しない、又は、再更新が進められなくなるケースが生じる。
【００１３】
これらの問題を改善しようとする提案として、１つのメモリ内に２つの同じ制御プログラムを蓄積して、一方の制御プログラムを用いてのソフトウエア更新に失敗しても、他方に蓄積された制御プログラムを用いてソフトウエア更新を完了させる技術が提案されている。（例えば、特許文献１  参照）。
【００１４】
又は、制御プログラム内の特定のセクタの書き換えに失敗した場合、代替のセクタを割り当ててソフトウエア更新を完了させる技術が提案されている。（例えば、特許文献２  参照）。
【特許文献１】特開２００７−１８９３３２号公報
【特許文献２】特開２００７−２１９８８３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
前記特許文献１に示されるような従来技術では、１回目の更新失敗に対しては他方の制御プログラムが起動して更新動作が進められるものの、２回目以降の更新処理失敗に対しては、正常に起動できる制御プログラムが存在しなくなるので、無線回線のように、比較的、失敗を許容するようなシステムへの適応には不向きである。
【００１６】
また、２回目以降の更新動作のためには、制御プログラムのアドレス変更処理が伴い、これを行うためには、通常の通信端末では備えられていないメモリ管理ユニット（ＭＭＵ：Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）の備えが必要となる。更に、その場合の制御プログラムは現用・予備のパララン方式が前提なのでＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）とも２倍のデータ蓄積容量が必要となる。
【００１７】
前記特許文献２に示されるような従来技術では、差分ファイルを用いて現用の制御プログラムから新しい制御プログラムを生成しようとしているものの、現用の制御プログラムが壊れていないことが前提なので、壊れてしまった場合には、更新処理を完結することができなくなる。
【００１８】
本発明の目的は、上記従来技術の問題点を解決し、制御プログラムの更新前または、更新中において、現用の制御プログラムが破損した場合でも、最新の制御プログラムに更新が可能であり、該更新された最新のプログラムにより機器の動作が行われるソフトウエア更新方法を提供することにある。
【課題を解決するための手段】
【００１９】
この目的を達成するために、本発明のソフトウエア更新方法は、更新前後の制御ソフトウエアを基にして生成された差分ファイルが無線回線を経て受信される無線端末において、該無線端末の記憶部に保持された前記制御ソフトウエアを更新する方法であって、
前記制御ソフトウエアの更新有無を認識するステップと、前記記憶部のＲＯＭに記憶されたソフトウエア更新プログラムをＲＡＭへ転送し起動させるステップと、前記ソフトウエア更新プログラムの動作により、ＲＯＭに記憶された現用の制御ソフトウエアおよび、ＲＡＭに記憶された前記差分ファイルをＲＡＭのソフトウエア更新プログラムワークメモリに読み出しするステップと、前記ＲＡＭに転送されたソフトウエア更新プログラムを前記ソフトウエア更新プログラムワークメモリ上で実行するステップと、前記実行の過程で、前記制御ソフトウエアに異常を検知するステップと、前記異常検知により前記ＲＯＭに記憶された前記制御ソフトウエアが前記ＲＯＭに記憶されたリカバリー用ソフトウエアに上書されるステップと、前記無線回線を経て、前記リカバリー用ソフトウエアに整合する新たな前記差分ファイルを前記ＲＡＭ上に取得するステップと、前記更新有無を認識するステップから前記実行するステップまでを再度進め、前記新たな差分ファイルに基づく新制御ソフトウエアを生成し、前記制御ソフトウエアを前記新制御ソフトウエアに書き換えするステップと、を順次行うことを特徴とする。
【発明の効果】
【００２０】
差分ファイルを用いたソフトウエア更新処理において、通信端末（無線端末）のソフトウエア更新対象の制御ソフトウエアが一部破損していることがあり、そのような場合でも、本発明によれば、ソフトウエア更新を正しく行うことができる。
【００２１】
更新対象とする既存のソフトウエアの破損回数に制限がなく、また、ソフトウエア更新処理中に、エラーが検出されて、ソフトウエア更新対象のソフトウエアが一部消去や破損した場合にもリカバリー処理が自動で行われるので復旧が格段に早い。
【００２２】
更に、リカバリー処理で用いるソフトウエアは、実行可能形式によって、そのデータをメモリに記憶させておく必要がなく、データ圧縮状態で記憶させればよいので、少ないメモリ容量の備えで済まされる。
【００２３】
以上、本発明によれば、無線端末のダウンタイムを極力少なくし、速やかに最新の動作状態に更新することができる。
【発明を実施するための最良の形態】
【００２４】
以下に、図面を参照して、本発明の一実施の形態を詳細に説明する。
図１は、本発明のソフトウエア更新方法を適用した無線通信端末（以下、無線端末）のブロック図であり、該無線端末の概略ハードウエア構成を示している。
【００２５】
無線端末１００は、制御部１０１、Ｆｌａｓｈ  ＲＯＭ１０３および，ＲＡＭ１０４からなる記憶部１０２，通信部１０５，表示処理部１０６，操作処理部１０７，入力処理部１０８，マイク１０９，スピーカ１１０，アンテナ１１１，表示部１１２，キーボード１１３および、データ入出力端子１１４から構成されている。
【００２６】
前記制御部１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）やＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）などの信号処理の演算装置を有しており、本無線端末の各部の制御を担う。
【００２７】
前記Ｆｌａｓｈ  ＲＯＭ１０３は，制御ソフトウエアとしての現用およびリカバリー本体プログラム、ソフトウエア更新プログラムおよび、起動時に必要なＢｏｏｔプログラムを格納している書き換え可能な不揮発性メモリであり、前記制御部１０１からアクセスされる。なお、前記Ｆｌａｓｈ  ＲＯＭ１０３は，電気的な書き換え可能な不揮発性メモリであれば、他の半導体プロセスによるＲＯＭであってもよい。
【００２８】
前記ＲＡＭ１０４は，ソフトウエア更新プログラムおよび、ソフトウエア更新プログラムのワークメモリおよび、差分ファイルなどの実行のための記憶用途として用いられる揮発性メモリであり、前記制御部１０１からアクセスされる。
【００２９】
なお、ソフトウエア更新プログラムが実行される際は、前記Ｆｌａｓｈ  ＲＯＭ１０３上に有するソフトウエア更新プログラムがＲＡＭ１０４に転送（コピー）されて実行に移される。これは、Ｆｌａｓｈ  ＲＯＭの性質である消去／書き込み回数の制約によるためであり、この制約が無くなれば、必ずしもＲＡＭによる実行としなくてもよい。
【００３０】
前記ＲＡＭ１０４には、差分データが差分ファイルとして記憶されているが、必ずしもＲＡＭ１０４に記憶しておく必要はなく、Ｆｌａｓｈ  ＲＯＭ１０３に記憶させて実行するようにしてもよい。なお、差分ファイルの詳細は、後述する。
【００３１】
前記通信部１０５は，前記アンテナ１１０を介して、図示していない基地局との無線通信を行う。
【００３２】
前記表示処理部１０６は，制御部１０１からの指示により表示データを作成し、前記表示部１１２に表示させる。
【００３３】
前記表示部１１２は、液晶表示器あるいは、発光ダイオード表示器などの表示装置を用いて、無線端末の使用者に対し、機器の状態や制御部１０１により処理された送受信の情報データなどを表示する。
【００３４】
なお、表示処理部１０６および、表示部１１２は、無線端末の種類によっては、構成として備えないこともある。
【００３５】
前記操作処理部１０７は，前記キーボード１１３によってキー入力された入力信号に対し符号処理などを行い、符号データを制御部１０１へ転送する。
【００３６】
なお、操作処理部１０７および、キーボード１１３は、無線端末の種類によっては、構成として備えないこともある。
【００３７】
前記入力処理部１０８は，制御部１０１にて信号処理されて再生された音声データを前記スピーカ１１０に出力し、前記マイク１０９で受けた音声を入力処理し、制御部１０１へ入力させ、更に、前記データ入出力端子１１４に対し、外部データの授受の制御を行い、制御部１０１とのデータ転送を機能とする。
【００３８】
なお、スピーカ１１０および、マイク１０９は、無線端末の種類によっては、構成として備えないこともある。
【００３９】
次に、本発明のソフトウエア更新方法の一実施形態について、メモリマップを用いた状態遷移図を順次引用して説明する。
【００４０】
図２は、本発明のソフトウエア更新方法の実施に使用される記憶部１０２における状態遷移図である。図示されているように、Ｆｌａｓｈ  ＲＯＭ１０３のメモリ領域には、制御ソフトウエアとして現用とする本体プログラムが割付けされ、当初は、その下方の記録エリアは、空き領域となっている。この空き領域には、図３以降の説明で用いられるリカバリー用本体プログラムが割り付けられることとなるが、その詳細は後述する。
【００４１】
図２は、Ｆｌａｓｈ  ＲＯＭ１０３のメモリ領域に、本体プログラムの現用制御ソフトウエアの更新管理（レビジョン管理番号；Ｖ１．０）とした状態のプログラムが予め格納され、ＲＡＭ１０４のメモリ領域に、現用制御ソフトウエア（Ｖ１．０）と更新後の新制御ソフトウエア（レビジョン管理番号；Ｖ１．１）とより生成された差分データを基地局から予め取得し、これによる差分ファイル（Ｖ１．０→Ｖ１．１）のプログラムデータが格納されている状態を示している。
【００４２】
通常動作の開始として、無線端末の電源が入ると、最初に、Ｆｌａｓｈ  ＲＯＭ１０３のメモリ領域に格納されているＢｏｏｔプログラムが起動する。
【００４３】
Ｂｏｏｔプログラムは、基地局からのソフトウエア更新要求の有無を検出し、更新「有」の検出（Ｓ１．更新有無認識）時のみ、次に、ソフトウエア更新プログラムをＲＡＭ１０４へ転送し起動させる。（Ｓ２．転送・起動）。
【００４４】
なお、ソフトウエア更新要求の有無の検出は、無線端末から基地局を介してソフトウエアのバージョンを管理するサーバに最新バージョンの問い合わせを行い、サーバから取得した最新バージョンと現在の無線端末のソフトウエアのバージョンとを比較することでソフトウエア更新要求の有無を検出している。また、ソフトウエア管理サーバから基地局を介してソフトウエア更新対象の無線端末に対しソフトウエアの更新要求を行い、無線端末ではこのサーバからの指示を検出し、ソフトウエアの更新要求の有無を検出するようにしてもよい。後述する図面中で記載するソフトウエアの更新要求の有無の検出も上述した検出手段を用いて実現されるものである。
【００４５】
ソフトウエア更新要求の有無を検出し、更新「有」の検出が行われなければ、機器は、通常運用の動作として、本体プログラムが起動する。
【００４６】
Ｆｌａｓｈ  ＲＯＭ１０３のメモリ領域に有する現用の制御ソフトウエアである本体プログラム（Ｖ１．０）は、ソフトウエア更新プログラムにより、ＲＡＭ１０４のソフトウエア更新プログラムワークメモリに読み出される。（Ｓ３．読み出し）。
【００４７】
ＲＡＭ１０４のメモリ領域に有する差分ファイル（Ｖ１．０→Ｖ１．１）は、以前の本体プログラム動作時に無線回線から取得し、予め記憶されている。この差分ファイル（Ｖ１．０→Ｖ１．１）がソフトウエア更新プログラムワークメモリに読み出されて、更新処理の実行へと進む。（Ｓ４．読み出し）。
【００４８】
ＲＡＭ１０４に転送されたソフトウエア更新プログラムは、ソフトウエア更新プログラムワークメモリを用いて、ＲＡＭ１０４メモリ領域での更新処理プログラムの実行を開始する。（Ｓ５．実行）。
【００４９】
そこで、差分ファイル（Ｖ１．０→Ｖ１．１）と現用制御ソフトウエアである本体プログラム（Ｖ１．０）の間の演算処理を実行することによって、ソフトウエア更新プログラムワークメモリ内に新制御ソフトウエア（Ｖ１．１）が生成される。
【００５０】
次いで、Ｆｌａｓｈ  ＲＯＭ１０３に有する現用の本体プログラムのメモリ領域に対して、ＲＡＭ１０４に生成された新制御ソフトウエア（Ｖ１．１）への書き換えを実行する。（Ｓ６．プログラム書き換え）。
【００５１】
Ｆｌａｓｈ  ＲＯＭ１０３のメモリ領域において、現用の本体プログラム領域に対して、全部の書き換えが成功すれば、新制御プログラム（Ｖ１．１）が現用の本体プログラムとなり、無線端末の動作制御を担うこととなる。（Ｓ７．更新完了）。
【００５２】
図３は、本発明のソフトウエア更新方法の一実施例のリカバリープログラムを備えた記憶部の状態遷移図である。これは、Ｆｌａｓｈ  ＲＯＭ１０３のメモリ領域に、制御ソフトウエアとして現用とする本体プログラムの割付に加え、制御ソフトウエアとしてリカバリー用とする本体プログラムが割り付けられた場合のソフトウエア更新のメモリマップを用いて表した状態遷移図である。
【００５３】
Ｆｌａｓｈ  ＲＯＭ１０３のメモリ領域には、本体プログラムの現用制御ソフトウエア（Ｖ１．０）および、本体プログラムのリカバリー用制御ソフトウエア（Ｖ１．０）とした各プログラムが格納され、ＲＡＭ１０４のメモリ領域には、現用制御ソフトウエア（Ｖ１．０）と更新後の新制御ソフトウエア（Ｖ１．１）とより生成された差分データを基地局から取得し、これによる差分ファイル（Ｖ１．０→Ｖ１．１）のプログラムが格納されている状態を示している。
【００５４】
図３は、リカバリー用本体プログラムがリカバリー用として用いられることがなく、差分ファイルによる更新動作が、起動から完了まで通して１回で正常に行われて、成功した実施例であり、その動作は、図２の説明と同様である。
【００５５】
即ち、電源投入し、Ｂｏｏｔプログラムにより、ステップＳ１で更新有無を「有」と認識し、ソフトウエア更新プログラムをステップＳ２で転送・起動し、本体プログラム（Ｖ１．０）がソフトウエア更新プログラムワークメモリにステップＳ３で読み出され、更に、差分ファイル（Ｖ１．０→Ｖ１．１）がソフトウエア更新プログラムワークメモリにステップＳ４で読み出され、差分ファイル（Ｖ１．０→Ｖ１．１）と現用制御ソフトウエアである本体プログラム（Ｖ１．０）の演算処理を実行することによって、ソフトウエア更新プログラムワークメモリ内に新制御ソフトウエア（Ｖ１．１）が生成され、Ｆｌａｓｈ  ＲＯＭ１０３に有する現用の本体プログラムの領域に対して、新制御ソフトウエア（Ｖ１．１）への書き換えを実行するステップＳ６でプログラム書き換えが完了し、新制御プログラム（Ｖ１．１）が現用の本体プログラムとなり、ステップＳ７で更新完了となる。新制御プログラム（Ｖ１．１）が無線端末の動作制御を担う。
【００５６】
図４は、現用の本体プログラムに異常を検知した場合の本発明のソフトウエア更新方法の一実施例を示し、記憶部１０２の状態遷移図を示す。これは、Ｆｌａｓｈ  ＲＯＭ１０３のメモリ領域の前記空き領域に、制御ソフトウエアとして現用とする本体プログラムの割付に対し、そのリカバリー用本体プログラムを割り付けた場合のソフトウエア更新のメモリマップを用いて表した状態遷移図である。
【００５７】
ここで、Ｆｌａｓｈ  ＲＯＭ１０３のメモリ領域には、本体プログラムの現用制御ソフトウエア（Ｖ１．０）および、本体プログラムのリカバリー用制御ソフトウエア（Ｖ１．０）とした各プログラムが予め格納され、ＲＡＭ１０４のメモリ領域には、現用制御ソフトウエア（Ｖ１．０）と更新後の新制御ソフトウエア（Ｖ１．１）とより生成された差分データを基地局から取得し、これによる差分ファイル（Ｖ１．０→Ｖ１．１）のプログラムが予め格納されている状態を示している。
【００５８】
通常動作の開始として、無線端末の電源が入ると、最初に、Ｆｌａｓｈ  ＲＯＭ１０３のメモリ領域に有するＢｏｏｔプログラムが起動する。
【００５９】
Ｂｏｏｔプログラムは、基地局からのソフトウエア更新要求の有無を検出し、更新「有」の検出（Ｓ１．更新有無認識）時のみ、次のソフトウエア更新プログラムをＲＡＭ１０４へ転送し起動させる。（Ｓ２．転送・起動）。
【００６０】
Ｆｌａｓｈ  ＲＯＭ１０３のメモリ領域に有する現用の制御ソフトウエアである本体プログラム（Ｖ１．０）は、ソフトウエア更新プログラムにより、ソフトウエア更新プログラムワークメモリに読み出される。（Ｓ３．読み出し）。
【００６１】
ＲＡＭ１０４のメモリ領域に有する差分ファイル（Ｖ１．０→Ｖ１．１）は、以前の現用本体プログラムの動作時に無線回線から取得し、予め記憶されている。この差分ファイル（Ｖ１．０→Ｖ１．１）がソフトウエア更新プログラムワークメモリに読み出されて、更新処理へと進む。（Ｓ４．読み出し）。
【００６２】
ＲＡＭ１０４に転送されたソフトウエア更新プログラムは、ソフトウエア更新プログラムワークメモリを用いて、ＲＡＭ１０４メモリ領域上でのプログラム実行を開始する。（Ｓ５．実行）。
【００６３】
そこで、差分ファイル（Ｖ１．０→Ｖ１．１）と現用制御ソフトウエアである本体プログラム（Ｖ１．０）の演算処理を実行することによって、ソフトウエア更新プログラムワークメモリ内に新制御ソフトウエア（Ｖ１．１）が生成される。
【００６４】
Ｆｌａｓｈ  ＲＯＭ１０３に有する現用の本体プログラムの領域に対して、新制御ソフトウエア（Ｖ１．１）への書き換えを実行するが、書き換え中にエラーが検出され、更新処理を継続できなくなる場合がある。（Ｓ６（Ｘ）．本体プログラムに異常を検知）。
【００６５】
そこで、ソフトウエア更新プログラムは、更新処理の継続を一旦中止し、本体プログラムとするリカバリー用制御ソフトウエア（Ｖ１．０）を現用の本体プログラム領域に上書する動作に切替える。（Ｓ１０．本体プログラム「リカバリー用」を本体プログラム「現用」に上書）。
【００６６】
なお、後述するが、その後において、再度のソフトウエア更新処理の動作を行うことで、現用の本体プログラム領域の新制御プログラムへの書き換えが成功し、新制御プログラム（Ｖ１．１）が現用の本体プログラムとなり、無線端末の動作制御を担う。
【００６７】
なお、前記成功が得られなければ、前記の動作は、成功するまで継続される。
【００６８】
図５は、異常検知から更新完了までの本発明の全貌を示すソフトウエア更新方法の一実施例を示し、記憶部１０２の状態遷移図を示す。これは、Ｆｌａｓｈ  ＲＯＭ１０３のメモリ領域の前記空き領域に、制御ソフトウエアとして現用とする本体プログラムの割付に対し、そのリカバリー用本体プログラムを割り付けられた場合のソフトウエア更新のメモリマップを用いて表した状態遷移図である。
【００６９】
ここで、Ｆｌａｓｈ  ＲＯＭ１０３のメモリ領域には、Ｂｏｏｔプログラム、ソフトウエア更新プログラム、現用の本体プログラムとしての制御ソフトウエア（Ｖ１．１）および、リカバリー用の本体プログラムとしての制御ソフトウエア（Ｖ１．０）とした各プログラムが格納されている。
【００７０】
一方、ＲＡＭ１０４のメモリ領域には、現用制御ソフトウエア（Ｖ１．１）と更新後の新制御ソフトウエア（Ｖ１．２）との対比により生成された差分データを基地局側より取得し、この差分データ即ち、差分ファイル（Ｖ１．１→Ｖ１．２）のプログラムが予め格納されている状態を示している。
【００７１】
無線端末の電源が入ると、最初に、Ｆｌａｓｈ  ＲＯＭ１０３のメモリ領域に有するＢｏｏｔプログラムが起動する。
【００７２】
Ｂｏｏｔプログラムは、基地局からのソフトウエア更新要求の有無を検出し、更新「有」の検出（Ｓ１．更新有無認識）時のみ、次に、ソフトウエア更新プログラムをＲＡＭ１０４へ転送し起動させる。（Ｓ２．転送・起動）。
【００７３】
なお、基地局からのソフトウエア更新要求の有無の検出動作において、更新「有」の検出が行われなければ、機器は、通常の動作として、現用である本体プログラム（Ｖ１．１）での機器動作が行われる。
【００７４】
更新動作の続きとして、Ｆｌａｓｈ  ＲＯＭ１０３のメモリ領域に有する現用の制御ソフトウエアである本体プログラム（Ｖ１．１）が、ＲＡＭ１０４に記憶されたソフトウエア更新プログラムの動作により、ソフトウエア更新プログラムワークメモリに読み出される。（Ｓ３．読み出し）。
【００７５】
更に、これ以前の本体プログラム動作時に無線回線から取得し、ＲＡＭのメモリ領域に記憶されている差分ファイル（Ｖ１．１→Ｖ１．２）がソフトウエア更新プログラムワークメモリに読み出されて、更新処理の実行へと進む。（Ｓ４．読み出し）。
【００７６】
ＲＡＭ１０４に転送されたソフトウエア更新プログラムは、ソフトウエア更新プログラムワークメモリを用いて、ＲＡＭ１０４のメモリ領域上での更新プログラムの実行を開始する。（Ｓ５．実行）。
【００７７】
そこで、差分ファイル（Ｖ１．１→Ｖ１．２）と現用制御ソフトウエアである本体プログラム（Ｖ１．１）との間の演算処理を実行することによって、ソフトウエア更新プログラムワークメモリ内に新制御ソフトウエア（Ｖ１．２）が生成される。
【００７８】
ところが、現用の本体プログラムの領域に対して、新制御ソフトウエア（Ｖ１．２）への書き換えを実行している過程で、書き換え中にエラーが検出され、更新処理を継続できなくなる場合がある。（Ｓ６（Ｘ）．本体プログラムに異常を検知）。（第１の更新処理→失敗）。
【００７９】
このとき、ソフトウエア更新プログラムは、更新処理の継続を一旦中止し、リカバリー処置として、本体プログラムとするリカバリー用制御ソフトウエア（Ｖ１．０）を現用の本体プログラム領域にＦｌａｓｈ  ＲＯＭ１０３上で上書する動作に切替え、上書を完了させる。（Ｓ１０．本体プログラム「リカバリー用」を本体プログラム「現用」に上書）。
【００８０】
従って、現用の本体プログラム領域には、基本的動作として運用に供し得る旧バージョン（Ｖ１．０）に一旦、戻されたプログラムが格納される。
【００８１】
このため、現在の差分ファイル（Ｖ１．１→Ｖ１．２）を用いた更新処理は継続できなくなるので、新たな差分ファイル（Ｖ１．０→Ｖ１．２）の取得を待つことになる。
【００８２】
この新たな差分ファイル（Ｖ１．０→Ｖ１．２）が基地局から取得されれば、ＲＡＭ１０４上の差分ファイルは、（Ｖ１．０→Ｖ１．２）に書き換えられる。（Ｓ１１．Ｖ１．０の本体プログラムで起動し、差分ファイル（Ｖ１．０→Ｖ１．２）を取得）。（図５上段図、参照）。
【００８３】
次に、図５中段図に示されるように、Ｆｌａｓｈ  ＲＯＭ１０３のメモリ領域には、本体プログラムの現用制御ソフトウエアＶ１．０および、本体プログラムのリカバリー用制御ソフトウエアＶ１．０とした各プログラムが格納され、ＲＡＭ１０４のメモリ領域には、現用制御ソフトウエアＶ１．０と更新後の新制御ソフトウエアＶ１．２）とより生成された差分データを取得し、これによる差分ファイル（Ｖ１．０→Ｖ１．２のプログラムが格納された状態となったことを示している。
【００８４】
この段階での機器動作は、リカバリー用本体プログラム（Ｖ１．０）が現用として用いられて、更新動作が再開されて、起動から完了まで通して２回目に成功した実施例となる。
【００８５】
２回目の一連の動作について、次に順次、説明する。
【００８６】
Ｂｏｏｔプログラムにより、ステップＳ１（再）で更新有無を「有」と再認識し、ソフトウエア更新プログラムをステップＳ２（再）で再転送・再起動し、ソフトウエア更新プログラムがソフトウエア更新プログラムワークメモリにステップＳ３（再）で再読み出され、リカバリー用ソフトウエアに整合した差分ファイル（Ｖ１．０→Ｖ１．２）がソフトウエア更新プログラムワークメモリにステップＳ４（再）で再読み出され、差分ファイル（Ｖ１．０→Ｖ１．２）と現用制御ソフトウエアである本体プログラム（Ｖ１．０）の間の演算処理を再実行することによって、ソフトウエア更新プログラムワークメモリ内に、改めて、新制御ソフトウエア（Ｖ１．２）が生成され、現用の本体プログラムの領域に対して、新制御ソフトウエア（Ｖ１．２）への書き換えを実行するステップＳ６でプログラム再書き換えを行い、新制御プログラム（Ｖ１．２）が現用の本体プログラムとなり、ステップＳ７で更新完了となる。（図５下段図、参照）。（第２の更新処理→成功）。
【００８７】
以上によって、新制御プログラム（Ｖ１．２）による無線端末の機器動作が速やかに行われるようになる。
【００８８】
次に、本発明のソフトウエア更新方法の実施形態について、異常処理のフローチャート図を引用して説明する。
【００８９】
図６は、本発明のソフトウエア更新方法の一実施例である、更新処理開始時に発生した異常処理のフローチャート図である。これは、ソフトウエア更新の書き換え開始時に更新前の本体プログラムに破損が発生していた場合の処理フローチャート図である。
【００９０】
なお、図６は、図５に示されるステップＳ６（Ｘ）「本体プログラムに異常を検知」に関する第１の詳細な実施例となる。なお、第２の実施例は、後述する。
【００９１】
ステップＳ６０において、ソフトウエア更新処理開始を実行したのち、現用の本体ソフトウエアにデータ破壊を起こしていないか、その正当性をチェック処理（符号列のサム値演算）するステップＳ６１へ進む。
【００９２】
このチェック処理では、チェックサム方式、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）方式または、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ  ５）方式などの符号チェック方式を用いて、プログラムの正当性を確認するための符号列のサム値演算を実行する。このチェック処理は、ソフトウエア更新処理実行時に、無線回線を介して取得している差分ファイルに対しても実行されるようにしてもよい。
【００９３】
そこで、ステップＳ６２に進み、前記演算結果のチェック値が、予め保持しておいた現用の本体プログラムの正当なチェック値と比較し、エラー検出により、現在、現用の本体ソフトウエアに破損「あり？」かの判定処理が行われる。
【００９４】
ステップＳ６２の比較判定の結果、一致する場合（エラー検出なし）は、正当であるとし、現用の本体ソフトウエアに破損がないと判定しＮ側へと進み、次に、用いた差分ファイルが合致するかを確かめるステップＳ６４へ進む。
【００９５】
一方、ステップＳ６２の比較判定の結果、一致しない場合は、現用の本体ソフトウエアに破損がある（エラー検出あり）と判定しＹ側へ進み、リカバリー処理のステップＳ６３へ進む。
【００９６】
ステップＳ６３では、現用の本体ソフトウエアをリカバリー用の本体ソフトウエアで上書しておいて、機器動作に供し、次の更新処理の再開を待つことになる。
【００９７】
ステップＳ６２Ｎ側又は、ステップＳ６３の処理後は、次に、更新処理を続行させるために、又は、更新処理を再開させるために、差分ファイルの照合を行う処理として、現在の差分ファイルが現在の現用本体ソフトウエアに対応できるかを確かめる判定を行うステップＳ６４へ進む。
【００９８】
その結果、合致、即ち、Ｙであれば、更新処理を継続してソフトウエア更新書き換えへのステップＳ６５へ進む。
【００９９】
ステップＳ６４の判定の結果、合致せず、即ち、Ｎであれば、更新処理を中断して、再度、差分ファイル取得処理のステップＳ６６へ戻り、更新再開待ちとなる。
【０１００】
なお、リカバリー用の本体ソフトウエアは、メモリ容量を省力化させるため、データ圧縮して格納されることがある。この場合は、ステップＳ６３の上書の実行に先立ち、圧縮データの伸張処理を行う。
【０１０１】
図７は、本発明のソフトウエア更新方法の他の一実施例である、更新処理中に発生した異常処理のフローチャート図である。これは、現用の本体プログラム領域を生成された新本体プログラムにソフトウエア更新中（書き換え中）に異常が発生した場合の処理フローチャート図である。
【０１０２】
なお、図７は、図５に示されるステップＳ６（Ｘ）「本体プログラムに異常を検知」に関する第２の詳細な実施例となる。
【０１０３】
更新中（書き換え中）には、生成中の新本体プログラムデータのエラー監視を行っている。
【０１０４】
ステップＳ７０は、現用の本体プログラムを書き換え中であって、このとき、書き換え中のデータにエラーが検出されていないかの監視を行っている。この監視の結果、ステップＳ７１では、発生したエラーが回復できないエラー（エラー訂正が行えない）であるか否かの判定処理を行っている。
【０１０５】
回復できるエラーとして検出されれば、ＮとしてステップＳ７４へ進み、図示はしていないが、エラー訂正などによる回復処理を行ったのち、ソフトウエア更新処理を継続させる。
【０１０６】
一方、回復できないエラーとして検出されれば、ＹとしてステップＳ７２へ進み、ソフトウエア更新処理を中断し、リカバリー処理に入る。ここでは、現用の本体ソフトウエア領域にリカバリーソフトウエアを上書する処理である。ここで一旦、ステップＳ７３のソフトウエア更新処理を終了させておく。
【０１０７】
無線端末の動作制御は、上書されたリカバリーソフトウエアによって行われる。このように、回復できないエラーが何度検出されても、所定のリカバリーソフトウエアで動かすようにできるので、その間に、所望の最新現用の本体プログラムに書き換えが自動で完了するようになる。
【産業上の利用可能性】
【０１０８】
本発明は、移動通信に用いられる無線通信システムに適用されて、一例として、携帯電話方式を用いた無線端末に利用することができる。
【図面の簡単な説明】
【０１０９】
【図１】本発明のソフトウエア更新方法を適用した無線端末のブロック図である。
【図２】本発明のソフトウエア更新方法とする記憶部の状態遷移図である。
【図３】本発明のソフトウエア更新方法とするリカバリープログラムを備えた記憶部の状態遷移図である。
【図４】本発明のソフトウエア更新方法とする本体プログラムに異常を検知した場合の記憶部の状態遷移図である。
【図５】本発明のソフトウエア更新方法とする、異常検知から更新完了までの記憶部の状態遷移図である。
【図６】本発明のソフトウエア更新方法とする更新処理開始時の異常処理のフローチャート図である。
【図７】本発明のソフトウエア更新方法とする更新処理中の異常処理のフローチャート図である。
【符号の説明】
【０１１０】
１００・・・無線端末
１０１・・・制御部
１０２・・・記憶部
１０３・・・Ｆｌａｓｈ  ＲＯＭ（記憶部）
１０４・・・ＲＡＭ（記憶部）
１０５・・・通信部
１０６・・・表示処理部
１０７・・・操作処理部
１０８・・・入力処理部
１０９・・・マイク
１１０・・・スピーカ
１１１・・・アンテナ
１１２・・・表示部
１１３・・・キーボード
１１４・・・データ入出力端子
【図１】
2010079382.tif 000003
【図２】
2010079382.tif 000004
【図３】
2010079382.tif 000005
【図４】
2010079382.tif 000006
【図５】
2010079382.tif 000007
【図６】
2010079382.tif 000008
【図７】
2010079382.tif 000009