(57)【要約】      （修正有）【課題】ソフトウェアを簡単かつ効率よくアップデートすることができるアップデート方法及び装置を提供する。【解決手段】ホストコンピュータから最新のファームウェアをダウンロードし、ＳＤＲＡＭに格納する（Ｓ１１）。フラッシュＥＥＰＲＯＭに格納されている現在のファームウェアと最新のファームウェアとをセクタ単位で比較し、両者の間でデータが異なるセクタを検出する（Ｓ１２）。データの異なるセクタがある場合、そのセクタのデータのみを書き換えて（Ｓ１５）、フラッシュＥＥＰＲＯＭに格納されている現在のファームウェアをアップデートする。【選択図】図３
2006154988.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体に記憶されているソフトウェアを最新のソフトウェアにアップデートするソフトウェアのアップデート方法において、
記憶媒体に記憶されているソフトウェアの全データと最新のソフトウェアの全データとをセクタ単位で比較し、両者の間でデータが異なるセクタを検出し、検出されたセクタのデータのみを書き換えて記憶媒体に記憶されているソフトウェアを最新のソフトウェアにアップデートすることを特徴とするソフトウェアのアップデート方法。
【請求項２】
記憶媒体に記憶されているソフトウェアを最新のソフトウェアにアップデートするソフトウェアのアップデート装置において、
最新のソフトウェアを格納する格納手段と、
前記記憶媒体に記憶されているソフトウェアの全データと前記格納手段に格納されている最新のソフトウェアの全データとをセクタ単位で比較し、両者の間でデータが異なるセクタを検出する検出手段と、
前記記憶媒体に記憶されているソフトウェアに対して前記検出手段で検出されたセクタのデータを最新のソフトウェアの対応するセクタのデータに書き換える書換手段と、
を備えたことを特徴とするソフトウェアのアップデート装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はアップデート方法及び装置に係り、特にファームウェアのアップデート方法及び装置に関する。
【背景技術】
【０００２】
一般にパソコンや周辺機器、家電製品などには、ハードウェアの基本的な制御を行うためにファームウェアが搭載されている。このファームウェは、機器に内蔵されたＲＯＭやフラッシュメモリに記憶されており、後から機能の追加や不具合を修正するために、アップデートできるようにされているものが多い。
【０００３】
特許文献１では、このファームウェアのアップデート方法として、ファームウェアを格納するメモリを複数の領域に分割し、各領域に複数のモジュール群に分割されたファームウェア本体を配置し、アップデート時には、変更のあるモジュール群が格納された領域のみを書き換えてアップデートすることが提案されている。
【特許文献１】特開２００２−３４２１００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の方法では、モジュール単位で書き換えを行わなければならず、モジュールの一部が異なる場合であってもモジュール全体を書き換えなければならないため、効率が悪いという欠点がある。
【０００５】
また、プログラムファイル等をモジュールが変更されたかどうかに合わせて作成する必要があり、その際、アップデート前のバージョンによって変更するモジュールも異なるため、前もってアップデート前のバージョンを知る必要があり、アップデートに手間がかかるという欠点もある。
【０００６】
本発明はこのような事情に鑑みてなされたもので、ソフトウェアを簡単かつ効率よくアップデートすることができるアップデート方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に係る発明は、前記目的を達成するために、記憶媒体に記憶されているソフトウェアを最新のソフトウェアにアップデートするソフトウェアのアップデート方法において、記憶媒体に記憶されているソフトウェアの全データと最新のソフトウェアの全データとをセクタ単位で比較し、両者の間でデータが異なるセクタを検出し、検出されたセクタのデータのみを書き換えて記憶媒体に記憶されているソフトウェアを最新のソフトウェアにアップデートすることを特徴とするソフトウェアのアップデート方法を提供する。
【０００８】
請求項１に係る発明では、記憶媒体に記憶されているソフトウェアと最新のソフトウェアとをセクタ単位で比較し、両者の間でデータが異なるセクタを検出する。そして、検出されたセクタのデータのみを書き換えて、記憶媒体に記憶されているソフトウェアを最新のものにアップデートする。これにより、データの書き換えが必要最小限で済み、短時間で効率よくアップデート作業を行うことができる。また、相互のバージョンを確認する必要がないので、簡単に最新のソフトウェアにアップデートすることができる。
【０００９】
請求項２に係る発明は、前記目的を達成するために、記憶媒体に記憶されているソフトウェアを最新のソフトウェアにアップデートするソフトウェアのアップデート装置において、最新のソフトウェアを格納する格納手段と、前記記憶媒体に記憶されているソフトウェアの全データと前記格納手段に格納されている最新のソフトウェアの全データとをセクタ単位で比較し、両者の間でデータが異なるセクタを検出する検出手段と、前記記憶媒体に記憶されているソフトウェアに対して前記検出手段で検出されたセクタのデータを最新のソフトウェアの対応するセクタのデータに書き換える書換手段と、を備えたことを特徴とするソフトウェアのアップデート装置を提供する。
【００１０】
請求項２に係る発明では、記憶媒体に記憶されているソフトウェアと最新のソフトウェアとをセクタ単位で比較し、両者の間でデータが異なるセクタを検出する。そして、検出されたセクタのデータのみを書き換えて、記憶媒体に記憶されているソフトウェアをアップデートする。これにより、データの書き換えが必要最小限で済み、短時間で効率よくアップデート作業を行うことができる。また、相互のバージョンを確認する必要がないので、簡単に最新のソフトウェアにアップデートすることができる。
【発明の効果】
【００１１】
本発明に係るアップデート方法及び装置によれば、簡単かつ効率よくソフトウェアをアップデートすることができる。
【発明を実施するための最良の形態】
【００１２】
以下、添付図面に従って本発明に係るアップデート方法及び装置の好ましい実施の形態について詳説する。なお、本実施の形態では、プリンタに搭載されたファームウェアをアップデートする場合を例に説明する。
【００１３】
図１は、プリンタ１０の電気的構成を示すブロック図である。同図に示すように、プリンタ１０は、主として中央処理装置（ＣＰＵ）１２、フラッシュＥＥＰＲＯＭ１４、ＳＤＲＡＭ１６、通信部１８、プリントエンジン２０で構成されている。
【００１４】
ＣＰＵ１２は、プリンタ１０の全体の動作を統括制御する制御部として機能し、所定のプログラムに従ってプリンタ１０の各部を制御する。
【００１５】
フラッシュＥＥＰＲＯＭ１４には、所定のセクタにファームウェアが格納されている。ファームウェアには、図２に示すように、プリンタ制御プログラムの他、ブートセレクタ、スタートプログラム（ファームウェアの書き換え、プログラムバージョン等）、印画パラメータテーブル等が含まれ、各種プログラムは、フラッシュＥＥＰＲＯＭ１４からＳＤＲＡＭ１６にロードされて、ＣＰＵ１２による実行制御がなされる。なお、このファームウェアのアップデート方法については、後に詳述する。
【００１６】
ＳＤＲＡＭ１６は、プログラムの展開領域として用いられる他、ＣＰＵ１２の作業領域として用いられる。
【００１７】
通信部１８は、ＣＰＵ１２の制御の下、プリンタ１０が接続されたホストコンピュータ３０との間でデータの送受信を行う。なお、ホストコンピュータ３０との接続は、たとえばＵＳＢケーブルを介して行われ、通信部１８はＵＳＢ規格に従ったデータの送受信を行う。
【００１８】
プリントエンジン２０は、ＣＰＵ１２の制御の下、ホストコンピュータ３０から送信されたプリントデータの印画処理を行う。
【００１９】
前記のごとく構成されたプリンタ１０は、ホストコンピュータ３０からのプリント指示に応じてホストコンピュータ３０から介してプリントデータを受信し、指定されたフォーマットでプリントデータを印画紙に印画する。
【００２０】
次に、前記のごとく構成されたプリンタ１０のファームウェアのアップデート方法について説明する。
【００２１】
図３は、本実施の形態のプリンタ１０におけるファームフェアのアップデートの手順を示すフローチャートである。
【００２２】
ファームウェアのアップデートは、ホストコンピュータ３０からの指示の下で行われる。プリンタ１０のＣＰＵ１２は、このホストコンピュータ３０からのアップデート実行の指示の有無を判定し（ステップＳ１０）、アップデート実行の指示アリと判定すると、以下のアップデート処理を開始する。
【００２３】
まず、最新のファームウェアをホストコンピュータ３０からダウンロードする（ステップＳ１１）。すなわち、通信部１８を介してホストコンピュータ３０から送られてくる最新のファームウェアを受信する。この際、最新のファームウェアは、全データがダウンロードされる。ダウンロードされた最新のファームウェアは、ＳＤＲＡＭ１６の所定領域に格納される。
【００２４】
次に、ＣＰＵ１２は、フラッシュＥＥＰＲＯＭ１４に格納されている現在のファームウェアとＳＤＲＡＭ１６に格納された最新のファームウェアとをセクタごとに比較し、互いにデータが異なるセクタを検出する（ステップＳ１２）。そして、その検出結果に基づいて、互いにデータが異なるセクタの有無を判定する（ステップＳ１３）。
【００２５】
この判定の結果、互いにデータが異なるセクタが無いと判定すると、ＣＰＵ１２は、フラッシュＥＥＰＲＯＭ１４に格納されている現在のファームウェアが最新のものと判断して、アップデートの処理を終了する。
【００２６】
一方、互いにデータが異なるセクタがあると判定すると、ＣＰＵ１２は、現在フラッシュＥＥＰＲＯＭ１４に格納されているファームウェアに対して該当するセクタ（最新のファームウェアとデータが異なるセクタ）のデータをクリアする（ステップＳ１４）。そして、データをクリアしたセクタに対して対応する最新のファームウェアのセクタのデータを書き込む（ステップＳ１５）。たとえば、図４に示すように、第１５セクタのデータが相互に異なる場合、現在フラッシュＥＥＰＲＯＭ１４に格納されているファームウェアの第１５セクタのデータをクリアし、クリアした第１５セクタに最新のファームウェアの第１５セクタのデータを書き込む。
【００２７】
この後、ＣＰＵ１２は、書き換えたファームウェア（フラッシュＥＥＰＲＯＭ１４に格納されているファームウェア）の全データと、最新のファームウェア（ＳＤＲＡＭ１６に格納されているファームウェア）の全データとを照合し、正しくアップデートされたか否か検証する（ベリファイ）する（ステップＳ１６）。
【００２８】
この検証の結果、書き換えたファームウェアと最新のファームウェアとが一致すると、ＣＰＵ１２は、プリンタ１０を再起動し（ステップＳ１７）、アップデート処理を終了する。
【００２９】
一方、書き換えたファームウェアと最新のファームウェアとが一致していない場合、ＣＰＵ１２は、ステップ１２の処理に戻り、再度、フラッシュＥＥＰＲＯＭ１４に格納されている現在のファームウェアとＳＤＲＡＭ１６に格納された最新のファームウェアとをセクタごとに比較し、互いにデータが異なるセクタを検出する（ステップＳ１２）。
【００３０】
このように、本実施の形態のファームウェアのアップデート方法によれば、現在のファームウェアと最新のファームウェアとをセクタ単位で比較し、異なるセクタのデータのみを書き換えるので、短時間で効率よくアップデート処理を行うことができる。
【００３１】
また、現在のファームウェアのバージョンを意識せずに処理できるため、アップデートの手順を簡便化することもできる。
【００３２】
また、異なるセクタのデータのみを書き換えるだけなので、現在のバージョンに合わせて差分プログラム等を作成する必要がなく、新しいバージョンを作成する場合であっても一つのファームウェアの作成で済む。
【００３３】
さらに、ホストコンピュータ側は、セクタごとの変更の有無を気にする必要もなく、アップデートの対象となる領域等を指定する必要もないので、簡単にアップデート処理を行うことができる。
【００３４】
なお、本実施の形態では、プリンタ１０のファームウェアをアップデートする場合を例に説明したが、本発明の適用は、これに限定されるものではなく、ＰＣや周辺機器（各種ドライブ、スキャナ、モデム、デジタルカメラ等）、家電製品（ゲーム機、ビデオ、ＤＶＤレコーダ等）等のファームウェアのアップデートを必要とする全ての機器に適用することができる。
【００３５】
また、本実施の形態では、最新のファームウェアをホストコンピュータ３０から通信部１８を介してダウンロードすることにより取得するようにしているが、最新のファームウェアの取得方法は、これに限定されるものではない。たとえば、プリンタにメモリカードを装填するためのカードスロットが備えられている場合には、メモリカードに最新のファームウェアを格納し、そのメモリカードをカードスロットに装填して、メモリーカードから最新のファームウェアを取得するようにしてもよい。
【００３６】
なお、最新のファームウェアをホストコンピュータ３０からプリンタ１０に送信する場合、ホストコンピュータ３０は、各プログラムと共に、各プログラム内のデータの合計（ＳＵＭ値）を送信することが好ましい（図２参照）。一方、プリンタ１０は、送られてきたプログラムについて、データの合計を計算し、プログラムと共に送られてきたＳＵＭ値と一致するか否か検査することが好ましい。これにより、ホストコンピュータ３０から最新のファームウェアを誤りなくダウンロードすることができる。
【００３７】
また、本実施の形態では、ファームウェアがフラッシュＥＥＰＲＯＭに格納されている場合を例に説明したが、ファームウェアの格納場所は、これに限定されるものではないく、他の記憶媒体に格納するようにしてもよい。
【００３８】
さらに、本実施の形態では、本発明をファームウェアのアップデートに適用した場合を例に説明したが、本発明の適用はこれに限定されるものではなく、種々のソフトウェアのアップデートに適用することができる。
【図面の簡単な説明】
【００３９】
【図１】プリンタの電気的構成を示すブロック図
【図２】プリンタのファームウェアの一例を構成図
【図３】ファームウェアのアップデートの手順を示すブロック図
【図４】セクタ単位でのデータ比較の概念図
【符号の説明】
【００４０】
１０…プリンタ、１２…中央処理装置（ＣＰＵ）、１４…フラッシュＥＥＰＲＯＭ、１６…ＳＤＲＡＭ、１８…通信部、２０…プリントエンジン、３０…ホストコンピュータ
【図１】
2006154988.tif 000003
【図２】
2006154988.tif 000004
【図３】
2006154988.tif 000005
【図４】
2006154988.tif 000006