(57)【要約】【課題】ソフトウェアを外部に待避することなく比較的少ないメモリ容量で更新処理を行うことができ、更新処理の失敗時にも、端末の使用が長時間制限されることのないようにする。【解決手段】不揮発性メモリに、ソフトウェア更新のための更新エンジンを含む本体プログラムを格納するメモリ領域およびこのメモリ領域内の単位領域に対する代替単位領域を設ける。ソフトウェア更新時には、本体プログラムの新旧バージョンの差分データをダウンロードし、前記メモリ領域内の更新エンジンを作業用メモリ領域に展開し、この作業用メモリ領域内の更新エンジンを実行して、前記差分データにより単位領域毎に本体プログラムを更新する。更新時に単位領域の不良を検出したとき、代替単位領域に対して当該単位領域の更新を行い、不良の単位領域を代替の単位領域に置き換える。【選択図】図３
2007219883.tif 000002
【特許請求の範囲】
【請求項１】
通信機能を有する移動端末装置であって、
ソフトウェア更新のための更新エンジンを含む本体プログラムを格納するメモリ領域およびこのメモリ領域内の単位領域に対する代替単位領域を有する不揮発性メモリと、
作業用メモリと、
前記不揮発性メモリおよび作業用メモリにアクセスする制御手段とを備え、
前記制御手段は、ソフトウェア更新時に、本体プログラムのバージョンと新たな本体プログラムのバージョンとの差分データをダウンロードし、前記メモリ領域内の更新エンジンを作業用メモリ領域に展開し、前記作業用メモリ領域内の更新エンジンを実行して、前記差分データにより単位領域毎に当該本体プログラムを更新し、更新が成功したとき更新処理を終了し、更新時に単位領域の不良を検出したとき、前記代替単位領域に対して当該単位領域の更新を行い、不良の単位領域を代替の単位領域に置き換える
ことを特徴とする移動端末装置。
【請求項２】
不良が検出された単位領域のアドレスを前記代替の単位領域のアドレスに変換するアドレス変換手段を備えたことを特徴とする請求項１に記載の移動端末装置。
【請求項３】
前記更新エンジンに発信・着信を含む基本電話機能を含めたことを特徴とする請求項１または２に記載の移動端末装置。
【請求項４】
通信機能を有する移動端末装置のソフトウェア更新方法であって、
不揮発性メモリ内に、ソフトウェア更新のための更新エンジンを含む本体プログラムを格納するメモリ領域およびこのメモリ領域内の単位領域に対する代替単位領域を設け、
ソフトウェア更新時に、一方の本体プログラムのバージョンと新たな本体プログラムのバージョンとの差分データをダウンロードし、
前記メモリ領域内の更新エンジンを作業用メモリ領域に展開し、
前記作業用メモリ領域内の更新エンジンを実行することによって前記差分データにより単位領域毎に当該本体プログラムを更新し、
更新が成功したとき更新処理を終了し、
更新時に単位領域の不良を検出したとき、前記代替単位領域に対して当該単位領域の更新を行い、不良の単位領域を代替の単位領域に置き換える
ことを特徴とするソフトウェア更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信機能を有する移動端末装置およびそのソフトウェア更新方法に関するものである。
【背景技術】
【０００２】
現在、移動端末装置の一種である携帯電話機は、通話、電子メール、ウェブ閲覧、個人情報管理、メモ、カメラ撮影、等種々の機能を有し、多くのユーザにより携帯されている。また、最近ではラジオやテレビの放送受信、音楽再生等の機能を搭載した機種まで現れている。
【０００３】
このような機能の多寡によらず、すべての携帯電話機はコンピュータプログラム（広義にはソフトウェア）により制御されている。そのようなコンピュータプログラムは、携帯電話機に内蔵されたメモリ内に不揮発的に格納されている。
【０００４】
ソフトウェア（以下、単にソフトともいう）は、バグと呼ばれる不具合を修正したり、機能の追加や改善を行ったりするためにバージョンアップが行われるのが一般的である。
【０００５】
通常、電子機器のソフトウェアの更新は、新しいバージョンのソフトウェアを記録した媒体から当該ソフトウェアを電子機器内にインストールしたり、内蔵ＲＯＭを交換したりすることにより行われるが、コンピュータの知識のないユーザも多い携帯電話機では、ユーザにそのような作業を行わせることができない。
【０００６】
そのため最近では、携帯電話機のソフトウエアをＯＴＡ（Ｏｖｅｒ  Ｔｈｅ  Ａｉｒ）で書き換える機能が搭載された機種が販売されている。「ＯＴＡで」とは、携帯電話機の通信機能を利用して、無線でという意味である。これにより、ユーザや販売店等に特別の負担を掛けることなく、ソフトウェアの更新を行うことができる。具体的には、ソフトウェアの書き換えは、バージョンアップソフトと携帯電話機の本体プログラムの差分ファイルをダウンロードし、その差分のみ携帯電話機本体のソフトを更新する方法で実現されている。
【０００７】
従来、ソフト更新機能の実装にあたり種々の問題点が存在した。例えば、ソフト更新実行開始後は、本体プログラムの書き換えが実施されるので、更新が成功した場合は新しいバージョンとして携帯電話機は機能する。しかし、更新に失敗した場合携帯電話機は電源ＯＮすることもできなくなる。すなわち、メモリデバイス不良や書き込み失敗によりソフト更新が失敗すると、復旧できなくなる。復旧する為には従来のシリアルケーブル経由でのソフトロードを実行する必要があり、一般ユーザでは実行が困難となる。
【０００８】
ファームウェアにより動作を制御する電子機器においては、外部接続インタフェースを介して受信したファームウェアの更新データによりプログラムを更新する際、更新処理失敗時に破壊や消失したプログラムを即時に元の機能が利用できる状態に復旧させるために、更新対象プログラムオブジェクトを外部サーバへ待避させ、更新処理後に、処理に失敗した場合に、待避させておいた更新前オブジェクトを外部サーバから受信し、ＲＯＭに書き戻す技術が提案されている（特許文献１参照）。
【特許文献１】特開２００５−２３５１１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記特許文献１に記載の技術では、更新が失敗したときに、先に待避されたプログラムが外部のサーバから書き戻されるまでは、一時的に端末内に正常なプログラムが存在しない状態となり、携帯電話機のような端末装置においては好ましくない。
【００１０】
このような問題に鑑みて、本願出願人は先の出願（特願2006-3873）において、ソフト更新に失敗した場合の復旧策としてプログラム格納メモリエリアを２面用意し、一方がソフト更新に失敗して使用不可になった場合でも、もう一面のプログラムを起動させることで復旧する方法を提案している。しかしながら、この方式では、メモリ容量が２倍となり、装置のコストアップとなる。
【００１１】
本発明はこのような背景において、ソフトウェアを外部に待避することなく比較的少ないメモリ容量で更新処理を行うことができ、更新処理の失敗時にも、端末の使用が長時間制限されることのない移動端末装置およびソフトウェア更新方法を提供しようとするものである。
【課題を解決するための手段】
【００１２】
本発明による移動端末装置は、通信機能を有する移動端末装置であって、ソフトウェア更新のための更新エンジンを含む本体プログラムを格納するメモリ領域およびこのメモリ領域内の単位領域に対する代替単位領域を有する不揮発性メモリと、作業用メモリと、前記不揮発性メモリおよび作業用メモリにアクセスする制御手段とを備える。前記制御手段は、ソフトウェア更新時に、本体プログラムのバージョンと新たな本体プログラムのバージョンとの差分データをダウンロードし、前記メモリ領域内の更新エンジンを作業用メモリ領域に展開し、前記作業用メモリ領域内の更新エンジンを実行して、前記差分データにより単位領域毎に当該本体プログラムを更新し、更新が成功したとき更新処理を終了し、更新時に単位領域の不良を検出したとき、前記代替単位領域に対して当該単位領域の更新を行い、不良の単位領域を代替の単位領域に置き換える。
【００１３】
これにより、ソフトウェア更新時に不揮発性メモリの更新対象領域に不良が検出されても、代替単位領域を利用することにより正常に更新処理が完了される。
【００１４】
また、不良が検出された単位領域のアドレスを前記代替の単位領域のアドレスに変換するアドレス変換手段を用いることにより、特定の単位領域の物理アドレスが変わっても、更新後の移動端末装置の動作が正常に行われる。
【００１５】
本発明によるソフトウェア更新方法は、通信機能を有する移動端末装置のソフトウェア更新方法であって、不揮発性メモリ内に、ソフトウェア更新のための更新エンジンを含む本体プログラムを格納するメモリ領域およびこのメモリ領域内の単位領域に対する代替単位領域を設け、ソフトウェア更新時に、一方の本体プログラムのバージョンと新たな本体プログラムのバージョンとの差分データをダウンロードし、前記メモリ領域内の更新エンジンを作業用メモリ領域に展開し、前記作業用メモリ領域内の更新エンジンを実行することによって前記差分データにより単位領域毎に当該本体プログラムを更新し、更新が成功したとき更新処理を終了し、更新時に単位領域の不良を検出したとき、前記代替単位領域に対して当該単位領域の更新を行い、不良の単位領域を代替の単位領域に置き換える。
【発明の効果】
【００１６】
本発明によれば、ソフトウェア更新対象の本体プログラムを格納するメモリ領域の単位領域に対する代替単位領域を用意しておき、ソフトウェア更新時の不良検出時に当該代替単位領域を利用する構成とすることにより、必要なメモリ容量を最小限に抑えつつ、ソフトウエア更新失敗時の復旧機能が実現される。このことは、差分データのダウンロードと相俟って、ソフトウェア更新時に端末の使用が長時間制限されることを防止する効果を奏する。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の好適な実施の形態について図面を参照しながら詳細に説明する。ここでは、移動端末装置の一例として携帯電話機を例とする。
【００１８】
図１は、本発明による実施の形態に係る携帯電話機の概略のハードウェア構成を示している。携帯電話機１０は、制御部１１、音声処理部１２、マイク１３、スピーカ１４、記憶部１５、通信部１６、アンテナ１７、操作部１８、表示部１９を備える。
【００１９】
制御部１１は、ＣＰＵ(Central Processing Unit)やＤＳＰ(Digital Signal Processor)などのプロセッサを有し、携帯電話機１０の各部の制御を司る。音声処理部１２は制御部１１の制御下で通話や音楽再生等の音声処理を行い、マイク１３からの音声入力、スピーカ１４への音声出力を行う。記憶部１５は、プログラムやデータを記憶する部位であり、本実施の形態では第１フラッシュ（Ｆｌａｓｈ）メモリ１５ａ、ＲＡＭ１５ｂ、第２フラッシュメモリ１５ｃを有する。第１フラッシュメモリ１５ａは、制御部１１が実行するプログラムを格納する再書き込み可能な不揮発性メモリである。ここでは第１フラッシュメモリ１５ａとしてＮＯＲ型フラッシュメモリを用いている。ＲＡＭ１５ｂはプログラムやデータを一時的に格納し、制御部１１により利用されるメモリである。本実施の形態ではＲＡＭ１５ｂは、後述するように第１フラッシュメモリ１５ａ内のプログラムの更新時に、第１フラッシュメモリ１５ａ内の更新プログラムをＲＡＭ１５ｂ内にコピーしてこれを実行するために利用される。第２フラッシュメモリ１５ｃは、電話帳、電子メール、ウェブコンテンツ、音楽、画像、等の各種のデータを格納する再書き込み可能な不揮発性メモリである。ここでは第２フラッシュメモリ１５ｃとしてＮＡＮＤ型フラッシュメモリを用いている。本実施の形態では、更新用ファイルはこの第２のフラッシュメモリ１５ｃにダウンロードされる。
【００２０】
通信部１６は、制御部１１の制御下で、アンテナ１７を介して基地局（図示せず）と無線による送受信を行う部位である。操作部１８は、テンキーや各種の制御キー、ジョグダイヤル等を有し、ユーザによる指示や情報を制御部１１に入力する機能を有する。表示部１９は、例えばＬＣＤ、有機ＥＬ等の表示デバイスを有し、ユーザに対してテキスト、画像（静止画、動画）等の可視情報を表示する機能を有する。
【００２１】
図２に、第１フラッシュメモリ１５ａのメモリ構成を示す。携帯電話機に実装されるプログラムはこの第１フラッシュメモリ１５ａに格納される。この第１フラッシュメモリ１５ａが割り当てられたメモリ空間２１内のメモリアドレスの先頭のブート領域（Boot Area)２１ａにはブート（Ｂｏｏｔ）と呼ばれる電源投入時（起動時）に処理されるコードが格納される。また、ブート領域２１ａに続く領域２１ｂには本体プログラムが格納される。フラッシュメモリ１５ａには、領域２１ｂに続く予備の領域２１ｃがあってもよい（但し、以降の図では特に図示しないが、同様である）。通常、Ｂｏｏｔ処理から本体プログラムに処理が分岐され、携帯電話機の動作が開始される。ソフト更新では本体プログラムの部分が更新(書き換え)対象となる。「本体プログラム」とは、本実施の形態では、携帯電話機の出荷時に内蔵メモリ内に予め格納してあるプログラムである。
【００２２】
また、ソフト更新における、本体プログラムの書き換えはブロック単位で行う。その際、あるブロックでデバイス不良や、書き込み失敗といった現象が発生した場合、本体プログラム自体が更新途中であるブロックが存在し、実行不能といった状態に陥る。例えば、図２の例では、ブロック１、ブロック２は正常に更新が完了したが、ブロック３で書き換えが失敗した場合を示している。このとき、本体プログラムはブロック３の実行中に暴走することになる。
【００２３】
以下、本実施の形態における更新失敗時の復旧動作について説明する。上述した２面のメモリを確保するには、大容量のメモリが必要となり、コスト的に不利である。そこで、プログラムエリアを２面持つことなく、最小限のメモリ構成して、更新失敗時の復旧動作を実現する方法を提案する。そのためのメモリ構成を図３のメモリ空間２１により説明する。図３では復旧領域のメモリエリアを、更新対象のメモリエリアとは別に確保している。このメモリエリアは非更新対象領域であり、更新失敗等が無ければ、ソフト更新には利用されない。
【００２４】
図４に示すように、ソフト更新エンジン２５は本体プログラムの一部として実装されている。すなわち、ソフト更新に先だって、フラッシュメモリ内の本体プログラムの一部である更新ソフトとしての更新エンジン２５を、一旦、ＲＡＭ内１５ｂに展開（コピー）し、このＲＡＭ内の領域内の更新エンジン２５を実行することによりソフト更新を実現する。例えば、バージョンＶ１．０からＶ１．２への更新を実行する場合は、Ｖ１．０→Ｖ１．２への差分ファイルを第２フラッシュメモリ１５ｃにダウンロードし、更新エンジン２５をＲＡＭ１５ｂ上に展開して、この更新エンジンを起動することによりソフト更新を実行する。なお、メモリ上のどの領域を更新対象とするかに関しては、更新用エンジン２５で定義することができる。
【００２５】
更新対象領域内のＳｅｃｔｏｒＮにてメモリ不良等により更新が失敗した場合、更新対象を復旧領域のセクタＢのアドレス（物理アドレスＡ’）に移行して更新を継続する。
【００２６】
本実施の形態において第１のフラッシュメモリとして用いているＮＯＲ型フラッシュメモリでは、ソフト更新（メモリ書き込み）は単位領域としてのセクタ単位で実施されるので、セクタ領域（たとえば６４Ｋｂｙｔｅ）を復旧領域としていくつか用意することで更新失敗時の対策が可能となる。
【００２７】
図３に示した例では復旧領域を４つ（４セクタ）確保してある。この状態では破壊されたセクタの個数が４つまでであれば更新が正常に完了することになる。ただし、復旧領域のセクタは４つに限るものではなく、少なくとも１つあれば本発明を実施可能である。
【００２８】
図３の構成において、本体ソフトのメモリ領域に不良があったとしても復旧領域により正常なソフト更新が可能となる。しかし、実際のプログラムはプログラム開始アドレスから実行される為、物理アドレスが異なるソフトは正常に起動させることができない。これを可能にする為に、制御部１１の内部に備えられた物理アドレスから論理アドレスヘの変換機能を用いる。すなわち、セクタ更新の失敗により使用不可となった物理アドレスＡを論理アドレスとして用い、これを物理アドレスＡ’に割り当てなおす。この操作は、図５に示すように制御部１１内のメモリ管理ユニット（ＭＭＵ）１１ｂの設定により、可能である。その結果、本体プログラムが不連続な物理アドレスにまたがって格納されていても、プロセッサには連続アドレスに見えることになる。
【００２９】
図６に、本実施の形態におけるソフト更新時の概略の処理手順を表したフローチャートを示す。
【００３０】
ソフト更新を開始して（Ｓ１１）、更新対象領域のセクタＮ（物理アドレスＡ）にてメモリ不良等により更新が失敗した場合（Ｓ１２）、セクタＮ不良情報を記録する（Ｓ１３）。ついで、セクタＮに対しての更新をセクタＢ（物理アドレスＡ’）に対して実行する（Ｓ１４）。更新完了後に、リブート（ＲｅＢｏｏｔ）処理を実行する（Ｓ１５）。このリブート処理において、前記記録された不良情報に基づいてセクタＮの不良を認識すると、アドレスＡをアドレスＡ’に変換するように論理・物理アドレス変換の設定を行う（Ｓ１６）。そこで、更新後のソフト起動を行う（Ｓ１７）。
【００３１】
なお、ソフト更新の契機は、通信事業者等から携帯電話機へのソフト更新の通知またはユーザ操作による携帯電話機から通信事業者等への問合せによりソフト更新有りの返答があった場合である。前者の場合、自動的にまたはユーザの確認を条件として、ソフト更新処理が起動される。また、後者の場合には、ユーザの指示に従ってソフト更新処理が起動される。
【００３２】
図７に、図６内のステップＳ１４で実行されるような、本実施の形態におけるソフト更新時の処理手順を示す。
【００３３】
まず、通信部１６により所定のネットワーク上のサーバに接続する（Ｓ２１）。次にこのサーバから更新用差分データをダウンロードする（Ｓ２２）。この場合、携帯電話機に現在格納されている本体プログラムのバージョン情報をサーバへ送り、このバージョンから更新先のバージョンへの差分データを特定する。
【００３４】
このダウンロードが終わったら、携帯電話機を一旦リセットし、ついでブート処理にて更新用ファイル（上記差分データ）が存在するかを確認する（Ｓ２３）。これは、更新ファイルそのものの存在のチェック、フラグの設定およびチェック、等によって行うことができる。
【００３５】
更新用ファイルが存在する場合には、第１フラッシュメモリ１５ａ内の本体プログラム内の更新処理エンジン２５をＲＡＭ１５ｂ上に展開する（Ｓ２４）。そこで、制御を本体プログラムからＲＡＭ１５ｂ上の更新処理エンジンに移し、ＲＡＭ上で更新処理を起動し（Ｓ２５）、ソフト更新処理を実行する（Ｓ２６）。
【００３６】
携帯電話機の本体プログラムは、不具合等の修正が必要となる毎にバージョンアップされていく。本実施の形態では、サーバにはソフト更新用に差分ファイルのみが置かれる。このように差分ファイルの更新を実行することでダウンロードするファイルサイズが小さくなり、その結果、ダウンロード時間およびソフト更新時間が短くて済む。例えば、ファイルサイズの目安としては本体プログラム３２Ｍバイトに対して、差分ファイル５１２Ｋバイト程度で本体プログラムの更新が可能となる。
【００３７】
ここで、例えば本体プログラムがＶ１．０から、Ｖ１．１へ、さらにＶ１．２へとバージョンアップされていると仮定する。この場合、サーバには下記３つのファイルが置かれる。
Ｖ１．０→Ｖ１．１への差分ファイル（１）
Ｖ１．０→Ｖ１．２への差分ファイル（２）
Ｖ１．１→Ｖ１．２への差分ファイル（３）
【００３８】
携帯電話機の出荷ソフトバージョンがＶ１．０であり、携帯電話機に保持されている本体プログラムのバージョンもＶ１．０であった場合、携帯電話機は最新ソフトであるＶ１．２への差分ファイル（３）をダウンロードしてソフト更新を実行する。
【００３９】
次にソフトウェアＶ１．３がリリースされた場合を考える。この場合、サーバには以下のファイルが置かれることになる。
Ｖ１．０→Ｖ１．１への差分ファイル（１）
Ｖ１．０→Ｖ１．２への差分ファイル（２）
Ｖ１．１→Ｖ１．２への差分ファイル（３）
Ｖ１．０→Ｖ１．３への差分ファイル（４）
Ｖ１．１→Ｖ１．３への差分ファイル（５）
Ｖ１．２→Ｖ１．３への差分ファイル（６）
【００４０】
このとき、携帯電話機はソフト更新の際には、現在保持している本体プログラムのバージョンから最新バージョンへの差分ファイル（例えばＶ１．２からＶ１．３への差分ファイル（６））をダウンロードしてソフト更新を実行する。
【００４１】
なお、書き換え実行中はソフト更新処理のみが実行される為、ソフト更新が完了するまでは一切電話機能は使用不可となる。更新時間は差分データがどの程度あるかに依存するが、通常２〜５分は必要であり、その時間での着信や発信が一切不可となるため、ユーザは機会損失の可能性を有する。
【００４２】
しかし、携帯電話機の本体メモリは比較的大容量が必要とされるが、電話機能のみならばさほど大きくはない。携帯電話機の本体プログラムは現状３２Ｍバイト程度となっているが、電話機としての基本機能実現のためであれば１Ｍバイト程度の容量にて実現が可能である。そこで、更新エンジン２５に発信・着信を含む基本電話機能を含めることで、ソフト更新中であっても基本電話機能が動作可能となり、ユーザは更新時間を意識する必要がなくなる。ソフト更新中の電話基本機能の実行は、ソフト更新処理を一時的に停止させるか、または時分割で両処理を並列に実行する。
【００４３】
このため、図８に示すように、更新エンジン２５に電話機の基本機能を実装することにより、ソフト書き換え中でも基本的機能動作が実現できる。ソフト更新のメイン処理はフラッシュメモリヘの書き込みであり、電話機基本機能と共存して実行される。
【００４４】
本実施の形態によれば、次のような効果が得られる。
１）差分データによるソフト更新を行うので、ダウンロードのための通信時間および更新処理時間が短くて済む。
２）ソフトウェア更新のための更新エンジンを含む本体プログラムを格納するメモリ領域内の単位領域に対する代替単位領域を利用することにより、比較的小容量の不揮発性メモリで、端末においてソフト更新失敗時の復旧を行うことができる。
３）更新エンジンに基本電話機能を含めることで、ソフト更新中であっても、電話機の基本機能が使用できる。
【００４５】
以上、本発明の好適な実施の形態について説明したが、上記で言及した以外にも種々の変形、変更を行うことが可能である。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施の形態に係る携帯電話機の概略のハードウェア構成を示す図である。
【図２】図１内に示した第１フラッシュメモリのメモリ構成を示す図である。
【図３】本発明の実施の形態における更新失敗時の復旧動作を実現するためのメモリ構成を示す図である。
【図４】本発明の実施の形態におけるソフト更新エンジン部分の説明図である。
【図５】本発明の実施の形態において利用するメモリ管理ユニット（ＭＭＵ）の説明図である。
【図６】本発明の実施の形態におけるソフト更新時の概略の処理手順を表したフローチャートである。
【図７】図６内のステップＳ１４で実行されるような、本実施の形態におけるソフト更新時の処理手順を示すフローチャートである。
【図８】本発明の実施の形態において更新エンジンに電話機の基本機能を実装した構成を示す図である。
【符号の説明】
【００４７】
１０…携帯電話機、１１…制御部、１２…音声処理部、１３…マイク、１４…スピーカ、１５…記憶部、１５ａ…第１フラッシュメモリ、１５ｂ…ＲＡＭ、１５ｃ…第２フラッシュメモリ、１６…通信部、１７…アンテナ、１８…操作部、１９…表示部、２１…メモリ空間、２１ａ…ブート領域、２１ｂ…領域、２１ｃ…領域、２５…更新エンジン
【図１】
2007219883.tif 000003
【図２】
2007219883.tif 000004
【図３】
2007219883.tif 000005
【図４】
2007219883.tif 000006
【図５】
2007219883.tif 000007
【図６】
2007219883.tif 000008
【図７】
2007219883.tif 000009
【図８】
2007219883.tif 000010