JP2006185309A - 電子機器およびファームウェアの更新方法 - Google Patents

電子機器およびファームウェアの更新方法 Download PDF

Info

Publication number
JP2006185309A
JP2006185309A JP2004379979A JP2004379979A JP2006185309A JP 2006185309 A JP2006185309 A JP 2006185309A JP 2004379979 A JP2004379979 A JP 2004379979A JP 2004379979 A JP2004379979 A JP 2004379979A JP 2006185309 A JP2006185309 A JP 2006185309A
Authority
JP
Japan
Prior art keywords
firmware
receiving
main firmware
main
activation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004379979A
Other languages
English (en)
Inventor
Hiroyasu Kitawaki
裕康 北脇
Haruo Takagi
治夫 高木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NET IN KYOTO KK
Original Assignee
NET IN KYOTO KK
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NET IN KYOTO KK filed Critical NET IN KYOTO KK
Priority to JP2004379979A priority Critical patent/JP2006185309A/ja
Publication of JP2006185309A publication Critical patent/JP2006185309A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】ファームウェアの書き換えが失敗した場合、ファームウェアを適切に更新できないという課題があった。
【解決手段】新しい主ファームウェアの全部または一部を受信する第一受信手段22と、電子機器1の再起動指示に応じて、新しい主ファームウェアの正当性について判断する起動判断手段32と、起動判断手段32が新しい主ファームウェアの正当性がないと判断した場合、従ファームウェア40に主ファームウェアを受信する指示である受信指示をする従起動手段33と、受信指示に応じて、サーバ装置2から、新しい主ファームウェアの全部または一部を受信する第二受信手段41と、電子機器1を再起動するように起動部30に指示をする第二再起動指示手段42とを備えた。
【選択図】図2

Description

本発明は、ネットワーク等を介してファームウェアの更新が可能な電子機器およびファームウェアの更新方法等に関する。
従来、ファームウェアが組み込まれた電子機器としては、例えば、携帯端末やネットワーク機器等がある。このような電子機器におけるファームウェアの更新は、ユーザがWebサイト上等に公開されたファームウェアを取得し、このファームウェアにより、ファームウェアが組み込まれたFlashROM等を書き換えることで行われる(例えば、特許文献1参照)。
特開2002−324320号公報(第1頁、第1図等)
しかし、このようなファームウェアの書き換えによる更新は、更新中に不測の事態が発生、例えば、電子機器の電源が切れてしまったり、ネットワークとの接続が切れてしまったりすることにより、書き換えの失敗が発生した場合、ファームウェアが破損してしまい、電子機器が動作しなくなる可能性があるという課題があった。
本発明に係る電子機器は、機器ハードと、起動部と、主ファームウェアと、従ファームウェアを具備する電子機器であって、前記機器ハードは、前記電子機器の所定の機能を実現するハードウェアであり、電源投入の指示である起動指示を受け付け、前記主ファームウェアは、主ファームウェアを格納しているサーバ装置から、新しい主ファームウェアの全部または一部を受信する第一受信手段と、前記第一受信手段が主ファームウェアを受信した後、前記電子機器を再起動するように前記起動部に指示する再起動指示手段を具備し、前記起動部は、前記起動指示または/および前記再起動の指示に応じて、前記主ファームウェアを起動する主起動手段と、前記受信手段が受信した新しい主ファームウェアの正当性について判断する起動判断手段と、前記起動判断手段が新しい主ファームウェアが正当性がないと判断した場合、前記従ファームウェアに主ファームウェアを受信する指示である受信指示をする従起動手段を具備し、前記従ファームウェアは、前記受信指示に応じて、主ファームウェアを格納しているサーバ装置から、新しい主ファームウェアの全部または一部を受信する第二受信手段と、前記第二受信手段が主ファームウェアを受信した後、前記電子機器を再起動するように前記起動部に指示をする第二再起動指示手段を具備する。
かかる構成により、主ファームウェアによる新しい主ファームウェアへの更新が、正常に行われなかったとしても、従ファームウェアが、新しい主ファームウェアを受信して、主ファームウェアを更新する。この結果、主ファームウェアを、適切に更新することができる。
また、前記従ファームウェアは、正常に前記主ファームウェアを更新できるまで、前記第二受信手段の処理、および前記第二再起動指示手段の処理を繰り返すようにした。
かかる構成により、主ファームウェアの更新をより確実に行うことができる。
本発明による電子機器およびファームウェアの更新方法等によれば、ファームウェアを適切に更新することができる。
以下、電子機器等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
図1は本発明の実施の形態に係る電子機器を備えた情報処理システムの概略図である。情報処理システムは、ネットワーク3を介して接続された電子機器1と、サーバ装置2とを備えている。
図2は本発明の実施の形態に係る電子機器を備えた情報処理システムの構成を示すブロック図である。情報処理システムは、ネットワーク3を介して接続された電子機器1と、サーバ装置2とを備えている。
電子機器1は、機器ハード10と、主ファームウェア20と、起動部30と、従ファームウェア40とを具備している。
主ファームウェア20は、判断手段21と、第一受信手段22と、再起動指示手段23と、蓄積手段24とを備えている。
起動部30は、主起動手段31と、起動判断手段32と、従起動手段33とを備えている。
従ファームウェア40は、第二受信手段41と、第二再起動指示手段42とを備えている。
サーバ装置2は、格納部201と、送信部202とを備えている。
電子機器1は、所定の機能を有する機器であり、ネットワーク3に接続可能な構成を有している。電子機器1は、具体的には、内部にプロセッサ等を有している、いわゆる組み込み機器であり、例えば、携帯電話やPDA等の携帯端末や、ルーターやハブ、モデム等のネットワーク機器や、通信機能を有するテレビやDVDレコーダ、ハードディスクレコーダ等の家電機器等である。
機器ハード10は、電子機器1の所定の機能を実現するためのハードウェアであり、電源投入の指示である起動指示を受け付ける。この起動指示を受け付けた場合に電源が投入されて起動する。起動指示のデータ構造は問わない。また、起動指示をどのように受け付けるかは問わない。例えば、スイッチ等の入力手段を介して起動指示を受け付けても良いし、他の機器等からネットワーク等を介して指示を受け付けても良い。機器ハード10は、具体的には、内部にプロセッサ等を有しており、主としてこのプロセッサを用いて処理を行うことにより、所定の機能を実現する。所定の機能とは、例えば、携帯電話等においては、テンキーの操作による入力の受付も含めた通話等を実現するための機能である。
主ファームウェア20は、電子機器1の基本的な制御、特に、機器ハード10の基本的な制御を行う。例えば、主ファームウェア20は、所定の機能を実現するための、機器ハード10の一連の動作を制御する。主ファームウェア20は、通常、ソフトウェアにより実現される。ただし、その一部を専用回路等のハードウェアにより構成するようにしてもよい。主ファームウェアのソフトウェア部分のデータ構造は問わない。主ファームウェア20のソフトウェア部分は、例えばFlashROM等の不揮発性の書き換え可能な記憶媒体に記憶されている。
判断手段21は、サーバ装置2が格納している新しい主ファームウェアのバージョンが、所定の条件を満たすか否かを判断する。新しい主ファームウェアとは、現在の主ファームウェア20の更新の対象となるファームウェアであり、通常、現在の主ファームウェア20よりもバージョンの新しい主ファームウェアである。ただし、場合によっては、バージョンの古い主ファームウェアであってもよい。判断手段21の判断する所定の条件とは、現在の主ファームウェア20から、新しい主ファームウェアにアップグレードすべきであると判断するための条件であれば、どのような条件でも良い。例えば、サーバ装置2が格納している主ファームウェアのバージョンが、現在の主ファームウェア20のバージョンよりも新しいか等の条件である。この場合、バージョンが少しでも異なるか否かを判断するようにしてもよいし、バージョン番号に一定以上の差があるか否かを判断するようにしてもよい。例えば、バージョン番号の整数部分が1以上増加した場合にのみ所定の条件を満たすと判定するように設定しておき、現在の主ファームウェア20のバージョンが4.0の場合に、新しい主ファームウェアのバージョンが4.5であれば、条件を満たさないと判定し、新しい主ファームウェアのバージョンが5.2であれば、条件を満たすと判定してもよい。なお、判断手段21は、新しい主ファームウェアのバージョン以外の他の情報について、所定の条件を満たすか否かを判断するようにしても良い。例えば、新しい主ファームウェアと現在の主ファームウェア20とについて、作成日や、更新日、サーバ装置2に格納された日等を比較して、その日付が所定の条件を満たすか否かを判断するようにしてもよい。判断手段21は、通常ソフトウェアで実現される。但し、専用回路等のハードウェアで実現しても良い。
判断手段21の処理の具体例は、以下である。判断手段21は、サーバ装置2が格納している新しい主ファームウェアのバージョンに関する情報(以下、バージョン情報と称す)の取得要求をサーバ装置2に送信する。そして、この取得要求の送信に対応して新しい主ファームウェアのバージョン情報を受信する。バージョン情報のデータ構造は問わない。また、判断手段21は主ファームウェア20のバージョン情報を取得する。そして、これらのバージョン情報から、新しい主ファームウェアのバージョンと現在の主ファームウェア20のバージョンとが所定の条件を満たすか否か判断する。そして、判断の結果を第一受信手段22に出力する。
第一受信手段22は、主ファームウェアを格納しているサーバ装置2から、新しい主ファームウェアを受信する。具体的には、判断手段21から、新しい主ファームウェアのバージョンと現在の主ファームウェア20のバージョンとが所定の条件を満たすという判断結果を受け付けた場合に、この新しい主ファームウェアの取得要求をサーバ装置2に対して出力する。そして、この取得要求の送信に対応して新しい主ファームウェアを受信する。なお、判断手段21の判断する所定の条件を、現在の主ファームウェア20から、新しい主ファームウェアにアップグレードすべきではないと判断するための条件とし、判断手段21から、新しい主ファームウェアと現在の主ファームウェア20とが所定の条件を満たさない、という判断結果を受けた場合に、第一受信手段22が、新しい主ファームウェアを受信するようにしてもよい。また、第一受信手段22が受信するこの新しい主ファームウェアは、主ファームウェア20全体を置き換えるものでなくても良く、主ファームウェア20の一部を置き換えるものであっても良い。例えば、主ファームウェア20が複数のプログラムからなり、その一部のみを更新する場合には、その更新する部分のみを置き換えるようにしてもよい。第一受信手段22は、モデムやネットワークカード等のハードウェアにより構成される受信デバイスを含むと考えても含まないと考えてもよい。第一受信手段22は、受信デバイスのドライバーソフトまたは、受信デバイスのドライバーソフトと受信デバイス等で実現され得る。
なお、判断手段21が行う判断処理と同様の処理をサーバ装置2が行う場合、判断手段21を省略するようにしてもよい。例えば、電子機器1が電源時投入時や、ユーザからの指示を受けた時に、主ファームウェア20のバージョン情報等をサーバ装置2に出力することで、サーバ装置2が、電子機器1の主ファームウェア20のバージョン情報等を取得できるようにする。そして、このバージョン情報等を用いることで、サーバ装置2が、格納している新しい主ファームウェアと、電子機器1の主ファームウェア20とが所定の関係にあるか判断し、所定の関係にあると判断した場合に、新しい主ファームウェアを第一受信手段22に対して送信する。そして、この新しい主ファームウェアを第一受信手段22が受信するようにしてもよい。
また、第一受信手段22が、定期的、あるいは不定期にサーバ装置2から送信される主ファームウェアを取得するようにした場合などには、判断手段21は省略してもよい。
再起動指示手段23は、第一受信手段22が新しい主ファームウェアを受信した後、電子機器1を再起動するように起動部30に指示する。この再起動するようにする指示は、どのような構造であってもよい。再起動指示手段23は、通常ソフトウェアで実現される。但し、専用回路等のハードウェアで実現しても良い。
蓄積手段24は、第一受信手段22が受信した新しい主ファームウェアを、所定の記憶媒体に蓄積する。所定の記憶媒体は、例えば、主ファームウェア20が記憶されていた記憶媒体である。例えば、蓄積手段24が、主ファームウェア20を上書きすることで、新しい主ファームウェアは、主ファームウェア20を置き換えるよう蓄積される。ただし、必要に応じて置き換えないように蓄積しても良い。このようにして新しい主ファームウェアを蓄積することで、主ファームウェア20が更新されることとなる。なお、第一受信手段22が受信した新しい主ファームウェアがデータ圧縮や分割されたものである場合、蓄積手段24は、この新しい主ファームウェアを、圧縮、あるいは分割された状態で記憶媒体に蓄積するようにしてもよい。この場合、例えば、起動部30が、主ファームウェア20を再起動する際に、新しい主ファームウェアが圧縮されている場合は伸張、また、分割されている場合は結合することによって、新しい主ファームウェアを展開し、この展開した新しいファームウェアを記憶媒体に蓄積することで、主ファームウェア20を置き換えるようにしてもよい。なお、このような圧縮や分割された新しい主ファームウェアを記憶する記憶媒体は、主ファームウェア20が記憶されている記憶媒体であってもよいし、他の不揮発性の記憶媒体等であってもよい。蓄積手段24は、通常ソフトウェアで実現される。但し、専用回路等のハードウェアで実現しても良い。
起動部30は、主ファームウェア20の起動と、従ファームウェア40の起動とを行う。例えば、主ファームウェアや従ファームウェア40のソフトウェア部分をそれらが蓄積されている記憶媒体から読み出して実行する。起動部30は、例えばブートローダ等である。起動部30は、通常はソフトウェアにより実現される。ただし、その一部を専用回路等のハードウェアにより構成するようにしてもよい。
主起動手段31は、機器ハード10に対する起動指示および再起動の指示に応じて、主ファームウェア20を起動させる。なお、蓄積手段24が記憶媒体に、データ圧縮や、分割された新しい主ファームウェアを蓄積している場合、主起動手段31は、主ファームウェア20を更新するために、必要に応じて、受信した新しい主ファームウェアを伸張したり、結合したりして、記憶媒体に蓄積された新しい主ファームウェアを展開する。そして、この展開した新しい主ファームウェアを、主ファームウェア20が記憶されている記憶媒体に記憶し、この新しい主ファームウェアを起動する。主起動手段31は、通常、ソフトウェアにより実現される。ただし、その一部を専用回路等のハードウェアにより構成するようにしてもよい。なお、主起動手段31を、起動指示に応じて主ファームウェア20を起動させるソフトウェア等と、再起動指示に応じて主ファームウェア20を起動させるソフトウェア等とにより構成してもよい。
起動判断手段32は、第一受信手段22が受信した新しい主ファームウェアの正当性について判断する。正当性がない、とは、主ファームウェアが正常な状態で起動できるものでないということである。例えば、新しい主ファームウェアに異常があって起動できない、あるいは、新しい主ファームウェアに異常があり、起動はできるが、サーバ装置2からこの異常のある新しい主ファームウェアを置き換えるための新しい主ファームウェアを受信することができるものでない等の場合を正当性がないとする。起動判断手段32が、どのように新しい主ファームウェアの正当性を判断するかは問わない。例えば、第一受信手段22が受信した新しい主ファームウェアがデータ圧縮されている場合に、第一受信手段22がこの新しい主ファームウェアを正常に展開できなければ、新しい主ファームファイルの正当性がないと判断するようにしてもよい。また、新しい主ファームウェアを起動する際に、実際に起動できたか否かを起動部30等で判定するようにしても良い。また、正当性の判断は、新しい主ファームウェアが正常に起動できるか否かの二段階にかぎらない。例えば、新しい主ファームウェアが、起動可能な状態ではあるが、サーバ装置2から新しい主ファームウェアは受信できない状態などを、制限のある状態と判断するなどにより、正当性を三段階以上の段階で判断し、起動が可能ではない状態のもののみの正当性がないと判断するようにしても良い。また、例えば、第一受信手段22の受信した新しい主ファームウェアが、3つのデータ圧縮されたファイルにより構成されている場合に、第一受信手段22により、3つのファイルのそれぞれが展開できるか否かを、段階的に判定し、そのうちの所定数以上、例えば2つ以上のファイルが展開できた場合に正当性があると判断するようにし、その他の場合については正当性がないと判断するようにしてもよい。なお、正常に起動できるか否かを判断するのではなく、新しい主ファームウェアのバージョンを確認して、元の主ファームウェア20よりもバージョンの高いものであるか否か等を判断するようにしてもよい。起動判断手段32は、通常、ソフトウェアにより実現される。ただし、その一部を専用回路等のハードウェアにより構成するようにしてもよい。
従起動手段33は、起動判断手段32が新しい主ファームウェアの正当性がないと判断した場合、従ファームウェア40を起動させる。そして、従ファームウェア40に主ファームウェアを受信する指示である受信指示を出力する。受信指示の構造は問わない。受信指示には、例えば、新しい主ファームウェアを識別できる情報、例えば主ファームウェアの名前や、バージョン番号等を含めるようにしてもよい。これらの情報は、起動判断手段32等から取得可能である。従起動手段33は、通常、ソフトウェアにより実現される。ただし、その一部を専用回路等のハードウェアにより構成するようにしてもよい。
従ファームウェア40は、サーバ装置2から新しい主ファームウェアを受信するために必要な電子機器1の制御、および電子機器1を再起動するために必要な電子機器1の制御を行う。従ファームウェア40は、通常、ソフトウェアにより実現される。ただし、その一部あるいは全体を専用回路等のハードウェアにより構成するようにしてもよい。従ファームウェア40のソフトウェア部分は、例えばROMや、FlashROM等の不揮発性の記憶媒体に記憶されている。なお、記憶媒体のサイズの小型化や、ハードウェアの小型化を実現するためには、従ファームウェア40は、サーバ装置2から新しい主ファームウェアを受信するために必要な電子機器1の制御、および電子機器1を再起動するために必要な電子機器1の制御を行うために必要最低限のソフトウェアやハードウェアのみにより構成することが好ましい。
第二受信手段41は、従起動手段33からの受信指示に応じて、主ファームウェアを格納しているサーバ装置2から、新しい主ファームウェアを受信する。具体的には、第一受信手段22と同様に、新しい主ファームウェアの取得要求をサーバ装置2に対して出力する。そして、この取得要求の送信に対応して新しい主ファームウェアを受信する。例えば、従起動手段33からの受信指示に、新しい主ファームウェアを識別できる情報が含まれている場合、この情報により決定される主ファームウェアの取得要求を出力する。この取得要求のデータ構造は問わない。第二受信手段41は、モデムやネットワークカード等のハードウェアにより構成される受信デバイスを含むと考えても含まないと考えてもよい。第二受信手段41は、受信デバイスのドライバーソフトまたは、受信デバイスのドライバーソフトと受信デバイス等で実現され得る。第二受信手段41が受信した新しい主ファームウェアは、例えば、図示しない蓄積手段等により、主ファームウェア20が記憶されている記憶媒体に蓄積され、主ファームウェア20が、第二受信手段41の受信した新しい主ファームウェアにより更新される。
第二再起動指示手段42は、第二受信手段41が主ファームウェアを受信した後、電子機器1を再起動するように起動部30に指示をする。この再起動するようにする指示は、どのようなデータ構造であってもよい。第二再起動指示手段42は、通常ソフトウェアで実現される。但し、専用回路等のハードウェアで実現しても良い。
サーバ装置2は、1以上の主ファームウェアを格納しており、電子機器1からの取得要求に応じて、この主ファームウェアのうち、電子機器1から取得要求のあった主ファームウェアを、新しい主ファームウェアとして、電子機器1に対して送信する。
格納部201は、主ファームウェアを格納している。格納部201は、具体的には、電子機器1に送信される新しい主ファームウェアを格納している。新しい主ファームウェアのデータ構造は問わない。例えば、新しい主ファームウェアは、イメージファイルとして、サーバ装置2に格納されている。イメージファイルとは、例えばメモリ等に記憶されているデータをそのままのデータ構造が再現できる形式でファイル化したものであり、新しい主ファームウェアは、主ファームウェア20が記憶されている記憶媒体に記憶するための所望のデータ構造でイメージファイル化されている。このイメージファイルはデータ圧縮されていてもよいし、ファイルが複数に分割されていても良い。なお、主ファームウェア20がソフトウェアとハードウェアとにより構成される場合、格納部201には、主ファームウェアのソフトウェア部分に相当する部分のみが格納される。したがって、この場合、サーバ装置2から送信される新しい主ファームウェアとしては、実際には、新しい主ファームウェアのソフトウェア部分が送信されることとなる。格納部201は、不揮発または揮発性の記憶媒体により実現され得る。
送信部202は、電子機器1に、格納部201に格納している主ファームウェアを送信する。具体的には、新しい主ファームウェアを、格納部201から取得し、電子機器1に対して出力する。送信する新しい主ファームウェアは、例えば、電子機器1からの取得要求に含まれる新しい主ファームウェアを識別するための情報よって決定される新しい主ファームウェアである。なお、このような識別情報が取得要求に含まれない場合、例えば、格納部201に格納されている中で最もバージョン番号の高い主ファームウェアや、もっとも作成日の新しい主ファームウェア等を新しい主ファームウェアとして送信するようにしてもよい。送信部202は、有線または無線の通信手段、あるいは有線または無線の放送手段により構成される。
ネットワーク3は、電子機器1とサーバ装置2との間での、データの送受信を可能とするものであれば、どのようなネットワークであっても良い。ネットワーク3は、例えば、IPプロトコル等を用いた無線または有線のネットワークであってもよい。また、このネットワークにおける通信を、地上波放送、ケーブルテレビ放送、衛星放送等により実現しても良い。
以下、本実施の形態に係る電子機器の、主ファームウェアを更新する動作について、図3のフローチャートを用いて説明する。
(ステップS301)主起動手段31は、機器ハード10が起動指示を受け付けたか否かを判定する。受け付けた場合、ステップS302へ進み、受け付けていない場合、ステップS302へ戻る。
(ステップS302)主起動手段31は、機器ハード10が受け付けた起動指示に応じて主ファームウェア20を起動させる。
(ステップS303)判断手段21がサーバ装置2から、サーバ装置2が格納している新しい主ファームウェアのバージョン情報を取得する。
(ステップS304)判断手段21が、サーバ装置2が格納している新しい主ファームウェアのバージョンと、主ファームウェア20のバージョンとを比較して、新しい主ファームウェアが所定の条件を満たすか否か判断する。そして、所定の条件を満たすと判断した場合、ステップS305に進む。所定の条件を満たさないと判断した場合、主ファームウェア20の更新は不要であるとして、処理が終了する。
ここで、「新しい主ファームウェアが所定の条件を満たすか否か判断する」および「所定の条件を満たすと判断した場合」とは、所定の条件が主ファームウェアの更新が必要であることを判断するための条件である場合には、新しい主ファームウェアがこの所定の条件を満たすか否かを判断すること、および新しい主ファームウェアがこの所定の条件を満たすと判断した場合のことである。また、所定の条件が主ファームウェアの更新が不要であることを判断するための条件である場合には、新しい主ファームウェアがこの所定の条件を満たさないか否かの判断をすること、および新しい主ファームウェアが所定の条件を満たさないと判断した場合のことである。
したがって、例えば、上記の所定の条件が、主ファームウェアの更新が必要であると判断するための条件、例えば、新しい主ファームウェアのバージョンが、現在の主ファームウェア20のバージョンよりも高いことを判断するための条件等である場合には、新しい主ファームウェアが所定の条件を満たすか否か判断する。そして、新しい主ファームウェアのバージョンが所定の条件を満たすと判断した場合、ステップS305に進む。所定の条件を満たさないと判断した場合、主ファームウェア20の更新は不要であるとして、処理が終了する。
また、判断手段21の判断する所定の条件が、主ファームウェアの更新が不要であると判断するための条件である場合、例えば、新しい主ファームウェアのバージョンが、現在の主ファームウェア20のバージョンよりも低いことを判断するための条件等である場合には、新しい主ファームウェアが所定の条件を満たすか否か判断する。そして、新しい主ファームウェアのバージョンが所定の条件を満たさないと判断した場合、ステップS305に進む。所定の条件を満たすと判断した場合、主ファームウェア20の更新は不要であるとして、処理が終了する。
(ステップS305)第一受信手段22が、サーバ装置2に対して、新しい主ファームウェアの取得要求を出力する。
(ステップS306)第一受信手段22が、サーバ装置2から新しい主ファームウェアを受信したか否かを判定する。受信した場合、ステップS307へ進み、受信していない場合、ステップS306へ戻る。
(ステップS307)蓄積手段24が、第一受信手段22の受信した新しい主ファームウェアを記憶媒体等に蓄積する。
(ステップS308)再起動指示手段23が、主ファームウェア20を再起動させる指示を、主起動手段31に出力する。
(ステップS309)主起動手段31は、主ファームウェア20を再起動させる指示に応じて主ファームウェア20を再起動させる。
(ステップS310)起動判断手段32は、新しい主ファームウェアについて、正当性があるか否かを判断する。正当性がある場合、新しい主ファームウェアへの更新が正常に行われたとして、処理を終了する。正当性がない場合、ステップS311へ進む。
(ステップS311)従起動手段33が、従ファームウェア40を起動させる。
(ステップS312)従起動手段33が、主ファームウェアを受信する指示である受信指示を、従ファームウェア40に出力する。従ファームウェア40の第二受信手段41は、この受信指示に応じて、サーバ装置2に対して、新しい主ファームウェアの取得要求を出力する。
(ステップS313)第二受信手段22が、サーバ装置2から新しい主ファームウェアを受信したか否かを判定する。受信した場合、ステップS314へ進み、受信していない場合、ステップS313へ戻る。
(ステップS314)第二受信手段41が、受信した新しい主ファームウェアを、主ファームウェア20の記憶されている記憶媒体に蓄積する。
(ステップS315)第二再起動指示手段42が、主ファームウェア20を再起動させる指示を出力する。そしてステップS309へ戻る。
次に具体例について説明する。ここでは、電子機器1が携帯電話である場合を例として説明する。
電子機器1に電源を投入すると、主起動手段31は、機器ハード10が起動指示を受け付けたと判定して、主ファームウェア20を起動させる。
図4は、サーバ装置2の格納部201に格納されている主ファームウェアのバージョン情報管理表の一例を示す図である。バージョン情報管理表は、ファームウェア名、バージョン、更新日等のデータ項目を有している。ファームウェア名は、主ファームウェアを識別するための名前である。バージョンは、主ファームウェアのバージョン番号を示している。主ファームウェアの更新が行われるごとにバージョン番号は増加する。更新日は、主ファームウェアに対して更新が行われた最後の日付を示している。なお、各データ項目のデータ構造は問わない。
主ファームウェア20が起動すると、判断手段21は、サーバ装置2に対して、サーバ装置2が格納している主ファームウェアのうちの、最もバージョン番号の高いファームウェアに関するバージョン情報の送信を要求する指示を送信する。この指示を受けて、サーバ装置2が、図4に示すバージョン情報管理表を参照して、最も新しいバージョンのファームウェアについて、そのファームウェア名とバージョン番号とを含むバージョン情報を送信される。ここでは、図4に示すバージョン情報管理表において、バージョン番号のもっとも高いファームウェアが、バージョン番号が5.2のファームウェアAAAであったとすると、ファームウェアAAAに関する、ファームウェア名とバージョン番号とを含むバージョン情報が、サーバ装置2から送信される。
判断手段21が、サーバ装置2から送信されるファームウェアAAAのバージョン情報を取得する。判断手段21は、この取得したバージョン情報から得られるファームウェアAAAのバージョン番号5.2と、主ファームウェア20のバージョン番号とを比較して、サーバ装置2内の最もバージョンの高い主ファームウェアが、電子機器1の主ファームウェア20よりも、バージョンが高いか否か判定する。ここでは、電子機器1の主ファームウェア20が図4に示したバージョン4.8のファームウェアABCであったとすると、ファームウェアAAAのバージョン番号5.2は、主ファームウェア20よりもバージョンが高いため、ファームウェアAAAの取得を要求する指示である取得指示を、サーバ装置2に対して送信する。サーバ装置2はこの取得指示を受信して、この取得指示に含まれるファームウェアAAAを格納部201から取得して送信する。サーバ装置2から送信されるバージョン情報から、サーバ装置2内で、最もバージョンの高い主ファームウェアのバージョンが、ファームウェアABCのバージョンより高くない場合、つまりバージョンが同じか、低いかのいずれかである場合には、主ファームウェア20の更新は不要であるとして、主ファームウェア20の更新は行われない。
なお、取得指示をサーバ装置2に対して送信する前に、図5に示すように、ファームウェアの更新をしてよいか、電子機器1のディスプレイ等に、ユーザに尋ねるダイアログ等を表示するようにしても良い。そして、ユーザが、テンキー等を利用して更新を許可する指示を入力した場合には取得指示を送信するようにし、許可しない指示を入力した場合には、取得指示を送信しないようにしても良い。
ここで、ファームウェアAAAは、イメージファイルとして格納部201に格納されているものとし、さらに、gzip形式で圧縮されているものとする。gzip形式は、ファイル圧縮形式の一つで、これにより圧縮されたファームウェアAAAのイメージファイルは、32bitCRC付きの、Lempel−ZiVコーディングによりコーディングされたファイルとなる。なお、CRCとは、Cyclic Redundancy Check(巡回冗長検査)の略で、連続して出現する誤りの検出が可能な誤り検出方式である。
第一受信手段22が、サーバ装置2から新しい主ファームウェアであるファームウェアAAAを受信する。そして、蓄積手段24が、第一受信手段22の受信した、圧縮されたイメージファイルであるファームウェアAAAを、主ファームウェアのソフトウェア部分が記憶されている記憶媒体に記憶する。記憶媒体の容量を小さくするためには、圧縮されたイメージファイルであるファームウェアAAAを、主ファームウェア20のソフトウェア部分を上書きするよう記憶することが好ましい。
そして、再起動指示手段23が、主ファームウェア20を再起動させる指示を、主起動手段31に出力する。主起動手段31は、主ファームウェア20を再起動させる指示に応じて主ファームウェア20を再起動させる。このとき、ファームウェアAAAのイメージファイルは、gzip形式で圧縮されているため、主起動手段31が、これを展開して、主ファームウェア20が記憶されている記憶媒体にファームウェアAAAのイメージファイルを上書きするよう記憶し、このファームウェアAAAを主ファームウェア20として起動する。
起動判断手段32は、新しい主ファームウェアについて、正当性があるか否かを判断する。ここで、上述したように、ファームウェアAAAのイメージファイルは、gzip形式で圧縮されており、32bitCRC付きの、Lempel−ZiVコーディングによりコーディングされたファイルとなっている。このため、このgzip形式で圧縮されたファームウェアAAAのイメージファイルが正常に展開できれば、CRCチェックを行ったことと同じこととなり、正常なイメージファイルのファームウェアAAAによって、主ファームウェア20に対する上書きによる更新が正常に終了したと判断できる。一方、gzip形式で圧縮されたファームウェアAAAのイメージファイルが正常に展開できなかった場合、CRCチェックによりエラー等の異常があると判断されたこととなり、ファームウェアAAAで上書きした更新が正常に終了しなかったと判断できる。
したがって、この実施の形態においては、圧縮されたファームウェアAAAのイメージファイルが正常に展開できたか否かにより新しい主ファームウェア、ここではファームウェアAAAの正当性を判断し、ファームウェアAAAのイメージファイルが正常に展開できた場合、ファームウェアAAAの正当性があると判断し、ファームウェアAAAによる更新が正常に行われたとみなして、主ファームウェアの更新処理を終了する。
一方、ファームウェアAAAのイメージファイルが正常に展開できなかった場合には、ファームウェアAAAの正当性がないと判断し、ファームウェアAAAへの更新が正常に行われていないとみなす。そして、従起動手段33が従ファームウェア40を起動させる。
そして、従起動手段33が、ファームウェアAAAの受信指示を出力する。第二受信手段41は、この受信指示に応じて、ファームウェアAAAの送信を要求する指示を、サーバ装置2に対して送信し、これに応じて、サーバ装置2から、圧縮されたファームウェアAAAのイメージファイルを受信する。
第二受信手段41が受信したファームウェアAAAのイメージファイルを、従ファームウェア40の図示しない蓄積手段が、上記の第一受信手段22と同様に、主ファームウェアのソフトウェア部分が記憶されている記憶媒体に記憶する。そして、第二再起動指示手段42が、主ファームウェア20を再起動させる指示を出力する。その後は、主ファームウェアが正常に更新されるまで、上述した主ファームウェアの再起動以降の処理が繰り返される。
以上、本実施の形態によれば、第一受信手段22が、新しい主ファームウェアを受信後、主ファームウェアを再起動する際に、起動判断手段32が、新しい主ファームウェアの正当性を判断して、正当性がないと判断すると、従起動手段33が、従ファームウェア40を起動させ、従ファームウェア40の第二受信手段41が、新しい主ファームウェアを受信して、主ファームウェアを再起動させるようにした。これにより、主ファームウェア20による新しい主ファームウェアへの更新が、例えば、電子機器の電源が切れてしまったり、ネットワーク接続が切れてしまったりする等の何らかの理由により、正常に行われなかったとしても、従ファームウェア40が、新しい主ファームウェアを受信して、主ファームウェア20を更新する。この結果、主ファームウェア20を、適切に更新することができる。
また、正常に主ファームウェアを更新できるまで、従ファームウェア40の第二受信手段41の処理、および第二再起動指示手段42の処理を繰り返すようにしたことにより、主ファームウェアの更新を、より確実に行うことができる。
なお、上記各実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記憶媒体に記憶されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記各実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、ファームウェアの全部または一部を受信する第一受信ステップと、前記第一受信ステップで、ファームウェアを受信した後、前記ファームウェアを再起動する起動ステップと、前記ファームウェアの正当性について判断する起動判断ステップと、前記ファームウェアの正当性がないと判断した場合、前記ファームウェアの全部または一部を受信する第二受信ステップと、前記第二受信ステップによりファームウェアを受信した後、前記ファームウェアを再起動する第二の起動ステップとを実行させるためのプログラムである。
また、このプログラムは、コンピュータに、前記第二受信ステップおよび前記第二の起動ステップを、前記起動判断ステップにおいて、前記ファームウェアの正当性があると判断されるまで繰り返し実行させるためのプログラムである。
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアでしか行われない処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理は、少なくとも含まれない。
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記憶媒体、例えば、CD−ROMなどの光ディスクや磁気ディスク、半導体メモリなど、に記憶されたプログラムが読み出されることによって実行されてもよい。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
本発明は、ネットワーク等を介してファームウェアの更新が可能な電子機器およびそのファームウェアの更新方法等に有用であり、特に、ネットワーク接続が可能な、プロセッサが組み込まれた、いわゆる組み込み機器等の電子機器およびそのファームウェアの更新方法等への利用に適している。
本発明の実施の形態による電子機器を備えた情報処理システムの概略図。 同電子機器を備えた情報処理システムの構成を示すブロック図。 同電子機器の動作を説明するフローチャート。 同電子機器を備えた情報処理システムにおけるサーバ装置に格納されているデータの構成を示す図。 同電子機器の表示例。
符号の説明
1 電子機器
2 サーバ装置
3 ネットワーク
10 機器ハード
20 主ファームウェア
21 判断手段
22 第一受信手段
23 再起動指示手段
24 蓄積手段
30 起動部
31 主起動手段
32 起動判断手段
33 従起動手段
40 従ファームウェア
41 第二受信手段
42 第二再起動指示手段
201 格納部
202 送信部

Claims (10)

  1. 機器ハードと、起動部と、主ファームウェアと、従ファームウェアを具備する電子機器であって、
    前記機器ハードは、
    前記電子機器の所定の機能を実現するハードウェアであり、電源投入の指示である起動指示を受け付け、
    前記主ファームウェアは、
    主ファームウェアを格納しているサーバ装置から、新しい主ファームウェアの全部または一部を受信する第一受信手段と、
    前記第一受信手段が主ファームウェアを受信した後、前記電子機器を再起動するように前記起動部に指示する再起動指示手段を具備し、
    前記起動部は、
    前記起動指示または/および前記再起動の指示に応じて、前記主ファームウェアを起動する主起動手段と、
    前記受信手段が受信した新しい主ファームウェアの正当性について判断する起動判断手段と、
    前記起動判断手段が新しい主ファームウェアが正当性がないと判断した場合、前記従ファームウェアに主ファームウェアを受信する指示である受信指示をする従起動手段を具備し、
    前記従ファームウェアは、
    前記受信指示に応じて、主ファームウェアを格納しているサーバ装置から、新しい主ファームウェアの全部または一部を受信する第二受信手段と、
    前記第二受信手段が主ファームウェアを受信した後、前記電子機器を再起動するように前記起動部に指示をする第二再起動指示手段を具備する電子機器。
  2. 前記主ファームウェアは、
    前記サーバ装置が格納している新しい主ファームウェアのバージョンが所定の条件を満たすか否かを判断する判断手段をさらに具備し、
    前記第一受信手段は、
    前記判断手段が所定の条件を満たすと判断した場合のみ、前記新しい主ファームウェアを受信する請求項1記載の電子機器。
  3. 前記判断手段は、
    前記サーバ装置が格納している新しい主ファームウェアのバージョンが現在の主ファームウェアのバージョンより新しいバージョンであるか否かを判断する請求項2記載の電子機器。
  4. 前記第一受信手段は、
    圧縮された形式である新しい主ファームウェアの全部または一部を受信し、
    前記主ファームウェアは、
    前記第一受信手段が受信した新しい主ファームウェアを所定の記憶媒体に蓄積する蓄積手段をさらに具備し、
    前記主起動手段は、
    前記蓄積手段が蓄積した新しい主ファームウェアを展開した後、当該展開した主ファームウェアをも起動し、
    前記起動判断手段は、
    前記主ファームウェアを展開できるか否かに基づいて、新しい主ファームウェアの正当性について判断する請求項1から請求項3いずれか記載の電子機器。
  5. 前記従ファームウェアは、
    正常に前記主ファームウェアを更新できるまで、前記第二受信手段の処理、および前記第二再起動指示手段の処理を繰り返す請求項1から請求項4いずれか記載の電子機器。
  6. 請求項1から請求項6いずれか記載の電子機器と、サーバ装置を具備する情報処理システムであって、
    前記サーバ装置は、
    主ファームウェアを格納している格納部と、
    前記電子機器に前記格納部に格納している主ファームウェアを送信する送信部を具備する情報処理システム。
  7. ファームウェアの全部または一部を受信する第一受信ステップと、
    前記第一受信ステップで、ファームウェアを受信した後、前記ファームウェアを再起動する起動ステップと、
    前記ファームウェアの正当性について判断する起動判断ステップと、
    前記ファームウェアの正当性がないと判断した場合、前記ファームウェアの全部または一部を受信する第二受信ステップと、
    前記第二受信ステップによりファームウェアを受信した後、前記ファームウェアを再起動する第二の起動ステップとを具備するファームウェアの更新方法。
  8. 前記第二受信ステップおよび前記第二の起動ステップを、前記起動判断ステップにおいて、前記ファームウェアの正当性があると判断されるまで繰り返す請求項7記載のファームウェアの更新方法。
  9. コンピュータに、
    ファームウェアの全部または一部を受信する第一受信ステップと、
    前記第一受信ステップで、ファームウェアを受信した後、前記ファームウェアを再起動する起動ステップと、
    前記ファームウェアの正当性について判断する起動判断ステップと、
    前記ファームウェアの正当性がないと判断した場合、前記ファームウェアの全部または一部を受信する第二受信ステップと、
    前記第二受信ステップによりファームウェアを受信した後、前記ファームウェアを再起動する第二の起動ステップとを実行させるためのプログラム。
  10. コンピュータに、
    前記第二受信ステップおよび前記第二の起動ステップを、前記起動判断ステップにおいて、前記ファームウェアの正当性があると判断されるまで繰り返し実行させるための、請求項9記載のプログラム。
JP2004379979A 2004-12-28 2004-12-28 電子機器およびファームウェアの更新方法 Pending JP2006185309A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004379979A JP2006185309A (ja) 2004-12-28 2004-12-28 電子機器およびファームウェアの更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004379979A JP2006185309A (ja) 2004-12-28 2004-12-28 電子機器およびファームウェアの更新方法

Publications (1)

Publication Number Publication Date
JP2006185309A true JP2006185309A (ja) 2006-07-13

Family

ID=36738365

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004379979A Pending JP2006185309A (ja) 2004-12-28 2004-12-28 電子機器およびファームウェアの更新方法

Country Status (1)

Country Link
JP (1) JP2006185309A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009163532A (ja) * 2008-01-08 2009-07-23 Funai Electric Co Ltd 電子機器
JP2010259120A (ja) * 2010-08-19 2010-11-11 Buffalo Inc ルータ装置
JP2017138917A (ja) * 2016-02-05 2017-08-10 富士通株式会社 プログラム、情報処理方法および情報処理装置
JP2017228077A (ja) * 2016-06-22 2017-12-28 富士通株式会社 電子機器、ファームウェアアップデート方法およびコンピュータプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009163532A (ja) * 2008-01-08 2009-07-23 Funai Electric Co Ltd 電子機器
JP2010259120A (ja) * 2010-08-19 2010-11-11 Buffalo Inc ルータ装置
JP2017138917A (ja) * 2016-02-05 2017-08-10 富士通株式会社 プログラム、情報処理方法および情報処理装置
JP2017228077A (ja) * 2016-06-22 2017-12-28 富士通株式会社 電子機器、ファームウェアアップデート方法およびコンピュータプログラム

Similar Documents

Publication Publication Date Title
US8719810B2 (en) Program upgrade system and method for over the air-capable mobile terminal
US7080245B2 (en) Method and system of switching between two or more images of firmware on a host device
EP1152338A2 (en) Method and apparatus for downloading firmware
CN106020875B (zh) 嵌入式终端的固件更新管理方法和装置
JP2009536395A (ja) Otaが可能な端末の情報アップグレードシステム及び方法{informationupgradesystemandmethodforota−capabledevice}
JP2008084304A (ja) 画像形成装置、プログラム更新方法及びプログラム
KR20060129312A (ko) 시스템 소프트웨어 업데이트 서비스를 신호화하기 위한사용 로더
JP6156512B2 (ja) 通信装置、通信システム、通信方法および通信プログラム
CN101904105A (zh) 在更新期间使用高效的块备份和块恢复的移动手持送受话器
GB2532299A (en) Over-the-air updates for BLE devices
KR101541112B1 (ko) Fota 시스템 및 그 실행 방법
JPWO2009078285A1 (ja) 無線端末、無線端末の不揮発性メモリ、および診断情報のフェイルセーフ保存方法
CN111698558A (zh) 电视软件升级方法、电视终端及计算机可读存储介质
KR100873327B1 (ko) 이동통신 단말기의 펌웨어 업데이트 방법 및 장치
JP2006185309A (ja) 電子機器およびファームウェアの更新方法
JP2006235992A (ja) プリンタのファームウェア書き替えシステムおよびファームウェア書き替え方法並びにプリンタ
KR100832269B1 (ko) 무선 통신 단말의 프로그램 갱신 방법 및 시스템
JP6163802B2 (ja) サーバ装置、アップデートシステム、アップデート方法およびプログラム
CN113064611B (zh) 针对无线设备实现数据分析软件升级的方法及其更新方法
KR20070063654A (ko) SyncML을 이용하여 펌웨어를 업데이트하기 위한휴대단말장치 및 방법.
CN101854442B (zh) 网络设备及其固件更新方法
CN113721959A (zh) 一种信息处理方法、装置及电子设备
JP2003228490A (ja) ネットワークに接続される端末装置およびこれを用いたネットワークシステム
CN112166411A (zh) 设备控制方法、系统及控制终端
JP2010140220A (ja) ソフトウェア更新方法