(57)【特許請求の範囲】
【請求項１】
外部装置からのダウンロードによって不揮発性メモリ内のファームウェアを更新するファームウェア組込機器におけるファームウェアのダウンロード方法であって、
前記不揮発性メモリは、前記ファームウェアのうちのアプリケーションシステムを格納するアプリケーションシステム格納領域と前記ファームウェアのうちのダウンロードシステムを格納するダウンロードシステム格納領域とシステムブート機能を格納するシステムブート機能格納領域とに分割され、
前記外部装置からダウンロードされる更新ダウンロードシステムの内部には、前記アプリケーションシステム格納領域の更新処理を行うアプリケーションシステム格納領域更新機能と前記ダウンロードシステム格納領域の更新処理を行うダウンロードシステム格納領域更新機能とが含まれ、
前記ダウンロードシステム自身を更新する場合、前記システムブート機能は現アプリケーションシステムのリセットによって現ダウンロードシステム内のアプリケーションシステム格納領域更新機能を起動し、起動された現ダウンロードシステムのアプリケーションシステム格納領域更新機能は、更新ダウンロードシステムを前記アプリケーションシステム格納領域に書き込み、その後、前記アプリケーションシステム格納領域に書き込まれた前記更新ダウンロードシステムのうち、前記ダウンロードシステム格納領域更新機能を含めず前記アプリケーションシステム格納領域更新機能が含まれた更新ダウンロードシステムを前記ダウンロードシステム格納領域に書き込むことを特徴とするファームウェアのダウンロード方法。
【請求項２】
前記システムブート機能は、システム起動時に、前記アプリケーションシステム格納領域と前記ダウンロードシステム格納領域とのファームウェアのダウンロード書き込み状態、及び更新ダウンロードシステムのダウンロード開始要求の有無をチェックし、前記ダウンロードシステムのダウンロード開始要求が有った場合、前記ダウンロードシステム格納領域に格納されたダウンロードシステムを起動することを特徴とする請求項１に記載のファームウェアのダウンロード方法。
【請求項３】
前記システムブート機能は、システム起動時に、前記アプリケーションシステム格納領域と前記ダウンロードシステム格納領域とのファームウェアのダウンロード書き込み状態、及び更新ダウンロードシステムのダウンロード開始要求の有無をチェックし、前記ダウンロードシステムのダウンロード開始要求が無かった場合、かつ、前記アプリケーションシステム格納領域及び前記ダウンロードシステム格納領域のダウンロードが正常である場合、直前にダウンロードがされた格納領域のシステムを起動することを特徴とする請求項１又は２に記載のファームウェアのダウンロード方法。
【請求項４】
前記システムブート機能は、システム起動時に、前記アプリケーションシステム格納領域と前記ダウンロードシステム格納領域とのファームウェアのダウンロード書き込み状態、及び更新ダウンロードシステムのダウンロード開始要求の有無をチェックし、前記ダウンロードシステムのダウンロード開始要求が無かった場合、かつ、前記アプリケーションシステム格納領域または前記ダウンロードシステム格納領域のダウンロードが正常である場合、正常なダウンロードがされた格納領域のシステムを起動することを特徴とする請求項１〜３のいずれか一つに記載のファームウェアのダウンロード方法。
【請求項５】
外部装置からのダウンロードによって不揮発性メモリ内のファームウェアを更新するファームウェア組込機器であって、
前記不揮発性メモリは、前記ファームウェアのうちのアプリケーションシステムを格納するアプリケーションシステム格納領域と前記ファームウェアのうちのダウンロードシステムを格納するダウンロードシステム格納領域とシステムブート機能を格納するシステムブート機能格納領域とに分割され、
前記外部装置からダウンロードされる更新ダウンロードシステムの内部には、前記アプリケーションシステム格納領域の更新処理を行うアプリケーションシステム格納領域更新機能と前記ダウンロードシステム格納領域の更新処理を行うダウンロードシステム格納領域更新機能とが含まれ、
前記システムブート機能は、前記ダウンロードシステム自身を更新する場合、前記システムブート機能は現アプリケーションシステムのリセットによって現ダウンロードシステム内のアプリケーションシステム格納領域更新機能を起動し、起動された現ダウンロードシステムのアプリケーションシステム格納領域更新機能は、更新ダウンロードシステムを前記アプリケーションシステム格納領域に書き込み、その後、前記アプリケーションシステム格納領域に書き込まれた前記更新ダウンロードシステムのうち、前記ダウンロードシステム格納領域更新機能を含めず前記アプリケーションシステム格納領域更新機能が含まれた更新ダウンロードシステムを前記ダウンロードシステム格納領域に書き込むことを特徴とするファームウェア組込機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダウンロードシステム自身のダウンロードが可能であり、不揮発性メモリの容量が少なく、ダウンロードシステム自身のダウンロード途中に電源断などのトラブルが発生した場合であってもダウンロードシステム自身のダウンロードのやり直しを行うことができるファームウェアのダウンロード方法及びファームウェア組込機器に関する。
【背景技術】
【０００２】
組込機器では、不揮発性メモリに書き込まれているファームウェアが動作する。このファームウェアのダウンロードを行う場合には、ダウンロードの対象となるファームウェア（アプリケーションシステム）と、ダウンロードを実行するファームウェア（ダウンロードシステム）とがある。
【０００３】
機能追加などでファームウェアを更新する場合、不揮発性メモリに書き込まれている現状のファームウェアを一旦、消去（イレーズ）し、新しいファームウェアを不揮発性メモリに書き込む。不揮発性メモリのイレーズや書き込みの更新動作は、不揮発性メモリ上では動作できない。このため、不揮発性メモリに書き込まれているダウンロードシステムは、ダウンロードシステム自身を揮発性メモリに複写し、揮発性メモリ上で、不揮発性メモリの更新動作を行う。
【０００４】
この場合、ファームウェアのダウンロードによって、ダウンロードシステム自身を更新する場合、電源断などのトラブルによって、ファームウェアのダウンロードに失敗すると、以降のダウンロードができなくなるという問題がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１２２５７５号公報
【特許文献２】特開２０００−１８１７１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
すなわち、アプリケーションシステムのダウンロード途中で、電源断などのトラブルが発生した場合、再度、ダウンロードをやり直せばよいが、ダウンロードシステム自身のファームウェアを更新する場合、現状のダウンロードシステムをイレーズして、新しいダウンロードシステムを書き込んでいる途中で電源断などのトラブルが発生すると、不揮発性メモリ上のダウンロードシステムはイレーズ済みで存在せず、揮発性メモリ上のダウンロードシステムも消えてしまうため、ダウンロードのやり直しもできなくなってしまう。
【０００７】
この問題を解決するために、不揮発性メモリの空き領域に、現状のダウンロードシステムのバックアップ用のダウンロードシステムをもたせることも考えられる（特許文献１参照）が、不揮発性メモリの容量に余裕がない組込機器ではこの問題を解決できない。
【０００８】
また、新しいアプリケーションシステムとともに新しいダウンロードシステムを受信した直後に、新しいダウンロードシステムに書き換えることも考えられる（特許文献２参照）が、外部機器との通信機能を別機能として備えていることが前提であり、ダウンロードシステム内に外部機器との通信機能をもつ組込機器では、この問題を解決できない。
【０００９】
本発明は、上記に鑑みてなされたものであって、ダウンロードシステム自身のダウンロードが可能であり、不揮発性メモリの容量が少なく、ダウンロードシステム自身のダウンロード途中に電源断などのトラブルが発生した場合であってもダウンロードシステム自身のダウンロードのやり直しを行うことができるファームウェアのダウンロード方法及びファームウェア組込機器を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明にかかるファームウェアのダウンロード方法は、外部装置からのダウンロードによって不揮発性メモリ内のファームウェアを更新するファームウェア組込機器におけるファームウェアのダウンロード方法であって、前記不揮発性メモリは、前記ファームウェアのうちのアプリケーションシステムを格納するアプリケーションシステム格納領域と前記ファームウェアのうちのダウンロードシステムを格納するダウンロードシステム格納領域とシステムブート機能を格納するシステムブート機能格納領域とに分割され、前記ダウンロードシステム自身を更新する場合、前記システムブート機能は現アプリケーションシステムのリセットによって現ダウンロードシステムを起動し、起動された現ダウンロードシステムは、更新ダウンロードシステムを前記アプリケーションシステム格納領域に書き込み、その後、前記アプリケーションシステム格納領域に書き込まれた更新ダウンロードシステムを前記ダウンロードシステム格納領域に書き込むことを特徴とする。
【００１１】
また、本発明にかかるファームウェアのダウンロード方法は、外部装置からのダウンロードによって不揮発性メモリ内のファームウェアを更新するファームウェア組込機器におけるファームウェアのダウンロード方法であって、前記不揮発性メモリは、前記ファームウェアのうちのアプリケーションシステムを格納するアプリケーションシステム格納領域と前記ファームウェアのうちのダウンロードシステムを格納するダウンロードシステム格納領域とシステムブート機能を格納するシステムブート機能格納領域とに分割され、前記外部装置からダウンロードされる更新ダウンロードシステムの内部には、前記アプリケーションシステム格納領域の更新処理を行うアプリケーションシステム格納領域更新機能と前記ダウンロードシステム格納領域の更新処理を行うダウンロードシステム格納領域更新機能とが含まれ、前記ダウンロードシステム自身を更新する場合、前記システムブート機能は現アプリケーションシステムのリセットによって現ダウンロードシステム内のアプリケーションシステム格納領域更新機能を起動し、起動された現ダウンロードシステムのアプリケーションシステム格納領域更新機能は、更新ダウンロードシステムを前記アプリケーションシステム格納領域に書き込み、その後、前記アプリケーションシステム格納領域に書き込まれたアプリケーションシステム格納領域更新機能を含む更新ダウンロードシステムを前記ダウンロードシステム格納領域に書き込むことを特徴とする。
【００１２】
また、本発明にかかるファームウェアのダウンロード方法は、上記の発明において、前記システムブート機能は、システム起動時に、前記アプリケーションシステム格納領域と前記ダウンロードシステム格納領域とのファームウェアのダウンロード書き込み状態、及び更新ダウンロードシステムのダウンロード開始要求の有無をチェックし、前記ダウンロードシステムのダウンロード開始要求が有った場合、前記ダウンロードシステム格納領域に格納されたダウンロードシステムを起動することを特徴とする。
【００１３】
また、本発明にかかるファームウェアのダウンロード方法は、上記の発明において、前記システムブート機能は、システム起動時に、前記アプリケーションシステム格納領域と前記ダウンロードシステム格納領域とのファームウェアのダウンロード書き込み状態、及び更新ダウンロードシステムのダウンロード開始要求の有無をチェックし、前記ダウンロードシステムのダウンロード開始要求が無かった場合、かつ、前記アプリケーションシステム格納領域及び前記ダウンロードシステム格納領域のダウンロードが正常である場合、直前にダウンロードがされた格納領域のシステムを起動することを特徴とする。
【００１４】
また、本発明にかかるファームウェアのダウンロード方法は、上記の発明において、前記システムブート機能は、システム起動時に、前記アプリケーションシステム格納領域と前記ダウンロードシステム格納領域とのファームウェアのダウンロード書き込み状態、及び更新ダウンロードシステムのダウンロード開始要求の有無をチェックし、前記ダウンロードシステムのダウンロード開始要求が無かった場合、かつ、前記アプリケーションシステム格納領域または前記ダウンロードシステム格納領域のダウンロードが正常である場合、正常なダウンロードがされた格納領域のシステムを起動することを特徴とする。
【００１５】
また、本発明にかかるファームウェア組込機器は、外部装置からのダウンロードによって不揮発性メモリ内のファームウェアを更新するファームウェア組込機器であって、前記不揮発性メモリは、前記ファームウェアのうちのアプリケーションシステムを格納するアプリケーションシステム格納領域と前記ファームウェアのうちのダウンロードシステムを格納するダウンロードシステム格納領域とシステムブート機能を格納するシステムブート機能格納領域とに分割され、前記システムブート機能は、前記ダウンロードシステム自身を更新する場合、現アプリケーションシステムのリセットによって現ダウンロードシステムを起動し、起動された現ダウンロードシステムは、更新ダウンロードシステムを前記アプリケーションシステム格納領域に書き込み、その後、前記アプリケーションシステム格納領域に書き込まれた更新ダウンロードシステムを前記ダウンロードシステム格納領域に書き込むことを特徴とする。
【００１６】
また、本発明にかかるファームウェア組込機器は、外部装置からのダウンロードによって不揮発性メモリ内のファームウェアを更新するファームウェア組込機器であって、前記不揮発性メモリは、前記ファームウェアのうちのアプリケーションシステムを格納するアプリケーションシステム格納領域と前記ファームウェアのうちのダウンロードシステムを格納するダウンロードシステム格納領域とシステムブート機能を格納するシステムブート機能格納領域とに分割され、前記外部装置からダウンロードされる更新ダウンロードシステムの内部には、前記アプリケーションシステム格納領域の更新処理を行うアプリケーションシステム格納領域更新機能と前記ダウンロードシステム格納領域の更新処理を行うダウンロードシステム格納領域更新機能とが含まれ、前記システムブート機能は、前記ダウンロードシステム自身を更新する場合、前記システムブート機能は現アプリケーションシステムのリセットによって現ダウンロードシステム内のアプリケーションシステム格納領域更新機能を起動し、起動された現ダウンロードシステムのアプリケーションシステム格納領域更新機能は、更新ダウンロードシステムを前記アプリケーションシステム格納領域に書き込み、その後、前記アプリケーションシステム格納領域に書き込まれたアプリケーションシステム格納領域更新機能を含む更新ダウンロードシステムを前記ダウンロードシステム格納領域に書き込むことを特徴とする。
【発明の効果】
【００１７】
本発明によれば、不揮発性メモリが、ファームウェアのうちのアプリケーションシステムを格納するアプリケーションシステム格納領域と前記ファームウェアのうちのダウンロードシステムを格納するダウンロードシステム格納領域とシステムブート機能を格納するシステムブート機能格納領域とに分割され、前記ダウンロードシステム自身を更新する場合、前記システムブート機能は現アプリケーションシステムのリセットによって現ダウンロードシステムを起動し、起動された現ダウンロードシステムは、更新ダウンロードシステムを前記アプリケーションシステム格納領域に書き込み、その後、前記アプリケーションシステム格納領域に書き込まれた更新ダウンロードシステムを前記ダウンロードシステム格納領域に書き込むようにしている。これにより、ダウンロードシステム自身のダウンロードが可能であり、ダウンロードシステムをバックアップしておかなくても、アプリケーションシステム格納領域とダウンロードシステム格納領域とのいずれかには、常に正常なダウンロードシステムが存在するため、不揮発性メモリの容量が少なく、ダウンロードシステム自身のダウンロード途中に電源断などのトラブルが発生した場合であってもダウンロードシステム自身のダウンロードのやり直しを行うことができる。
【００１８】
また、本発明によれば、不揮発性メモリが、ファームウェアのうちのアプリケーションシステムを格納するアプリケーションシステム格納領域と前記ファームウェアのうちのダウンロードシステムを格納するダウンロードシステム格納領域とシステムブート機能を格納するシステムブート機能格納領域とに分割され、外部装置からダウンロードされる更新ダウンロードシステムの内部には、前記アプリケーションシステム格納領域の更新処理を行うアプリケーションシステム格納領域更新機能と前記ダウンロードシステム格納領域の更新処理を行うダウンロードシステム格納領域更新機能とが含まれ、前記ダウンロードシステム自身を更新する場合、前記システムブート機能は現アプリケーションシステムのリセットによって現ダウンロードシステム内のアプリケーションシステム格納領域更新機能を起動し、起動された現ダウンロードシステムのアプリケーションシステム格納領域更新機能は、更新ダウンロードシステムを前記アプリケーションシステム格納領域に書き込み、その後、前記アプリケーションシステム格納領域に書き込まれたアプリケーションシステム格納領域更新機能を含む更新ダウンロードシステムを前記ダウンロードシステム格納領域に書き込むようにしている。これにより、ダウンロードシステム自身のダウンロードが可能であり、ダウンロードシステムをバックアップしておかなくても、アプリケーションシステム格納領域とダウンロードシステム格納領域とのいずれかには、常に正常なダウンロードシステムが存在し、ダウンロードシステムは、ダウンロードシステム格納領域更新機能を不揮発性メモリに格納しておく必要がないため、不揮発性メモリの容量が少なく、ダウンロードシステム自身のダウンロード途中に電源断などのトラブルが発生した場合であってもダウンロードシステム自身のダウンロードのやり直しを行うことができる。
【図面の簡単な説明】
【００１９】
【図１】図１は、本発明の実施の形態であるファームウェア組込機器の構成を示すブロック図である。
【図２】図２は、ファームウェアのダウンロード処理手順を示す図である（その１）。
【図３】図３は、ファームウェアのダウンロード処理手順を示す図である（その２）。
【図４】図４は、ファームウェアのダウンロード処理手順を示す図である（その３）。
【図５】図５は、システムブート機能によるシステムブート処理手順を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、添付図面を参照してこの発明を実施するための形態について説明する。
【００２１】
（ファームウェア組込機器の構成）
まず、図１を参照して本発明の実施の形態であるファームウェア組込機器の構成について説明する。ファームウェア組込機器１０は、バス１１を介して、ＣＰＵ１、揮発性メモリ２、不揮発性メモリ３、通信制御部４が接続される。ＣＰＵ１は、揮発性メモリ２および不揮発性メモリ３に読み込まれた各種ソフトウェア及びデータをもとに各種制御を行う。不揮発性メモリ３は、ファームウェアのうちのアプリケーションシステムＡＰを格納するアプリケーションシステム格納領域Ｅ１、ファームウェアのうちのダウンロードシステムＤＬを格納するダウンロードシステム格納領域Ｅ２、及びシステムブート機能（リセットスタートプログラム）ＳＢを格納するシステムブート機能格納領域Ｅ３に３分割されている。通信制御部４は、外部装置５との通信接続を制御し、外部装置５からのファームウェアのダウンロード時の通信接続を行う。
【００２２】
（ファームウェアのダウンロード処理手順）
つぎに、図２〜図４を参照して、不揮発性メモリ３のファームウェアを更新するダウンロード処理手順について説明する。なお、このファームウェアの更新では、アプリケーションシステムＡＰの機能追加によって、アプリケーションシステムのファームウェアサイズが増大し、それに伴ってダウンロードシステムＤＬ自身のダウンロードも必要となった場合について説明する。
【００２３】
まず、不揮発性メモリ３のアプリケーションシステム格納領域Ｅ１には、更新前の現アプリケーション（ＡＰ）システムＡＰ１が格納されている。また、不揮発性メモリ３のダウンロードシステム格納領域Ｅ２には、更新前の現ダウンロード（ＤＬ）システムＤＬ１が格納されている。また、更新前の現ダウンロードシステムＤＬ１には、アプリケーションシステム格納領域Ｅ１の更新処理を行うアプリケーションシステム格納領域（Ｅ１）更新機能ＤＬ１＿Ｅ１が格納されている。そして、現ＡＰシステムＡＰ１は、不揮発性メモリ３で起動状態となっている。この状態で、現ＡＰシステムＡＰ１が新ＤＬシステムＤＬ２のダウンロード（ＤＬ）開始要求を受けると、新ＤＬシステムＤＬ２のＤＬ開始要求情報ＤＬＤを揮発性メモリ２内に保持し、現ＡＰシステムＡＰ１を停止（リセット）する（図２（ａ））。
【００２４】
図２（ａ）に示したリセットによって、システムブート機能ＳＢが動作する。システムブート機能ＳＢによるシステムブート処理の詳細については後述するが、システムブート機能ＳＢは、アプリケーションシステム格納領域Ｅ１とダウンロードシステム格納領域Ｅ２とのダウンロード書き込み状態、及び更新ダウンロードシステムのダウンロード開始要求の有無をチェックし、このチェック結果をもとに、アプリケーションシステム格納領域Ｅ１とダウンロードシステム格納領域Ｅ２とのいずれの格納領域のシステムを起動すべきかを選択する。
【００２５】
具体的には、まず、システムブート機能格納領域Ｅ３内に、図示しないシステム起動アドレスの設定領域（ベクタテーブル）が設けられている。そして、ダウンロードシステムＤＬ（ＤＬ１，ＤＬ２）は、ダウンロードが正常に完了した場合、ダウンロード先アドレスをベクタテーブルに設定する。システムブート機能ＳＢによるリセット時のシステム起動選択は、更新ダウンロードシステムのダウンロード開始要求がある場合には、ダウンロードシステム格納領域Ｅ２内に書き込まれたシステムを起動選択し、更新ダウンロードシステムのダウンロード開始要求がない場合には、ベクタテーブルに設定されたダウンロード先アドレスが示すシステム、すなわち直前にダウンロードされたシステムを起動選択する。
【００２６】
図２（ｂ）では、新ＤＬシステムのＤＬ開始要求情報ＤＬＤが「有り」と保持されているため、システムブート機能ＳＢは、ダウンロードシステム格納領域Ｅ２内の現ＤＬシステムＤＬ１を選択して起動させる。すなわち、現ＤＬシステムＤＬ１は、現ＤＬシステムＤＬ１自身を不揮発性メモリ３から揮発性メモリ２に複写し、揮発性メモリ２上で動作する。
【００２７】
その後、揮発性メモリ２上の現ＤＬシステムＤＬ１は、アプリケーションシステム格納領域Ｅ１内に存在する現ＡＰシステムＡＰ１を消去（イレーズ）する（図２（ｃ））。
【００２８】
その後、現ＤＬシステムＤＬ１は、外部装置５から受け取った、アプリケーションシステム格納領域Ｅ１の更新処理を行うアプリケーションシステム格納領域（Ｅ１）更新機能ＤＬ２＿Ｅ１とダウンロードシステム格納領域Ｅ２の更新処理を行うダウンロードシステム格納領域（Ｅ２）更新機能ＤＬ２＿Ｅ２とを含む新ＤＬシステムＤＬ２を、アプリケーションシステム格納領域Ｅ１に書き込む（図２（ｄ））。そして、現ＤＬシステムＤＬ１は、新ＤＬシステムＤＬ２の書き込みが正常に完了すると、ダウンロード先アドレスをベクタテーブルに設定し、現ＤＬシステムＤＬ１自身を停止（リセット）する（図３（ｅ））。
【００２９】
図３（ｅ）に示したリセットによって、システムブート機能ＳＢが動作する。この場合、システムブート機能ＳＢは、正常にダウンロードされたシステムであって、直前にダウンロードされたシステムを選択する。すなわち、システムブート機能ＳＢは、ベクタテーブルを参照してアプリケーションシステム格納領域Ｅ１に格納された新ＤＬシステムＤＬ２を選択して起動させる。新ＤＬシステムＤＬ２は、新ＤＬシステムＤＬ２自身を不揮発性メモリ３から揮発性メモリ２に複写し、揮発性メモリ２上で、Ｅ２更新機能ＤＬ２＿Ｅ２が動作する（図３（ｆ））。
【００３０】
その後、揮発性メモリ２上の新ＤＬシステムＤＬ２のＥ２更新機能ＤＬ２＿Ｅ２は、ダウンロードシステム格納領域Ｅ２の現ＤＬシステムＤＬ１を消去する（図３（ｇ））。
【００３１】
その後、新ＤＬシステムＤＬ２のＥ２更新機能ＤＬ２＿Ｅ２は、アプリケーションシステム格納領域Ｅ１の新ＤＬシステムＤＬ２をダウンロードシステム格納領域Ｅ２に複写する（図３（ｈ））。この際、Ｅ１更新機能ＤＬ２＿Ｅ１もダウンロードシステム格納領域Ｅ２に複写される。そして、新ＤＬシステムＤＬ２のＥ２更新機能ＤＬ２＿Ｅ２は、新ＤＬシステムＤＬ２のダウンロードシステム格納領域Ｅ２への書き込みが完了すると、ダウンロード先アドレスをベクタテーブルに設定し、新ＤＬシステムＤＬ２自身を停止（リセット）する（図４（ｉ））。
【００３２】
図４（ｉ）に示したリセットによって、システムブート機能ＳＢが動作する。この場合、システムブート機能ＳＢは、正常にダウンロードされたシステムであって、直前にダウンロードされたシステムを選択する。すなわち、システムブート機能ＳＢは、ベクタテーブルを参照してダウンロードシステム格納領域Ｅ２に格納された新ＤＬシステムＤＬ２を選択して起動させる。新ＤＬシステムＤＬ２は、新ＤＬシステムＤＬ２自身を不揮発性メモリ３から揮発性メモリ２に複写し、揮発性メモリ２上で動作する（図４（ｊ））。
【００３３】
その後、揮発性メモリ２上の新ＤＬシステムＤＬ２のＥ１更新機能ＤＬ２＿Ｅ１は、外部装置５から新アプリケーション（ＡＰ）システムＡＰ２のダウンロード（ＤＬ）開始要求を受け取ると、アプリケーションシステム格納領域Ｅ１の新ＤＬシステムＤＬ２を消去する（図４（ｋ））。そして、新ＤＬシステムＤＬ２のＥ１更新機能ＤＬ２＿Ｅ１は、新ＡＰシステムＡＰ２をアプリケーションシステム格納領域Ｅ１に書き込む（図４（ｌ））。
【００３４】
新ＤＬシステムＤＬ２のＥ１更新機能ＤＬ２＿Ｅ１は、新ＡＰシステムＡＰ２のアプリケーションシステム格納領域Ｅ１への書き込みが完了すると、ダウンロード先アドレスをベクタテーブルに設定し、新ＤＬシステムＤＬ２自身を停止（リセット）する（図４（ｍ））。
【００３５】
図４（ｍ）に示したリセットによって、システムブート機能ＳＢが動作する。この場合、システムブート機能ＳＢは、正常にダウンロードされたシステムであって、直前にダウンロードされたシステムを選択する。すなわち、システムブート機能ＳＢは、ベクタテーブルを参照してアプリケーションシステム格納領域Ｅ１に格納された新ＡＰシステムＡＰ２を選択して起動させる。新ＡＰシステムＡＰ２は、不揮発性メモリ３上で動作する（図４（ｎ））。
【００３６】
本実施の形態では、新ＤＬシステムＤＬ２をダウンロードする場合、現ＤＬシステムＤＬ１をバックアップしなくても、常に、正常な現ＤＬシステムＤＬ１あるいは新ＤＬシステムＤＬ２が不揮発性メモリ３上に存在するので、新ＤＬシステムＤＬ２のダウンロード途中に電源断などのトラブルが発生した場合であっても、現ＤＬシステムＤＬ１あるいは新ＤＬシステムＤＬ２を起動することによってダウンロードのやり直しを行うことができる。
【００３７】
例えば、図２（ｄ）において、新ＤＬシステムＤＬ２のダウンロード途中に電源断などのトラブルが発生した場合、この状態では、ダウンロードシステム格納領域Ｅ２に、正常な現ＤＬシステムＤＬ１が存在するため、電源投入と同時にシステムブート機能ＳＢが動作する。システムブート機能ＳＢは、アプリケーションシステム格納領域Ｅ１のシステムは正常なダウンロード状態でないため、現在、正常にダウンロードされたシステムである、ダウンロードシステム格納領域Ｅ２の現ＤＬシステムＤＬ１が選択される。すなわち、図２（ｂ）の段階に戻って、ダウンロード処理がやり直される。
【００３８】
（システムブート機能によるシステムブート処理）
ここで、図５を参照して、システムブート機能ＳＢによるシステムブート処理手順について説明する。図５に示すように、システムブート機能ＳＢは、リセットあるいは電源投入があると、まず、アプリケーションシステム格納領域Ｅ１に格納されたシステムの状態がチェックサムやＣＲＣチェックなどによって正常なダウンロード状態であるか否かをチェックする（ステップＳ１０１）。その後、システムブート機能ＳＢは、ダウンロードシステム格納領域Ｅ２に格納されたシステムの状態がチェックサムやＣＲＣチェックなどによって正常なダウンロード状態であるか否かをチェックする（ステップＳ１０２）。その後、システムブート機能ＳＢは、ダウンロードシステムのダウンロード開始要求があるか否かを判断する（ステップＳ１０３）。
【００３９】
ダウンロードシステムのダウンロード開始要求があった場合（ステップＳ１０３，Ｙｅｓ）、ダウンロードシステム格納領域Ｅ２内のダウンロードシステムを起動し（ステップＳ１０４）、本処理を終了する。
【００４０】
一方、ダウンロードシステムのダウンロード開始要求がない場合（ステップＳ１０３，Ｎｏ）、さらに、アプリケーションシステム格納領域Ｅ１及びダウンロードシステム格納領域Ｅ２のダウンロード状態がともに正常であるか否かを判断する（ステップＳ１０５）。
【００４１】
アプリケーションシステム格納領域Ｅ１及びダウンロードシステム格納領域Ｅ２のダウンロード状態がともに正常である場合（ステップＳ１０５，Ｙｅｓ）、直前にダウンロードされた格納領域のシステムを、ベクタテーブルを参照して起動し（ステップＳ１０６）、本処理を終了する。
【００４２】
一方、アプリケーションシステム格納領域Ｅ１及びダウンロードシステム格納領域Ｅ２のダウンロード状態がともに正常でない場合（ステップＳ１０５，Ｎｏ）、いずれかの格納領域のシステムは正常状態であるため、正常にダウンロードされた格納領域のシステムを起動し（ステップＳ１０７）、本処理を終了する。
【符号の説明】
【００４３】
１  ＣＰＵ
２  揮発性メモリ
３  不揮発性メモリ
４  通信制御部
５  外部装置
１０  ファームウェア組込機器
１１  バス
ＡＰ  アプリケーションシステム
ＡＰ１  現アプリケーションシステム
ＡＰ２  新アプリケーションシステム
ＤＬ  ダウンロードシステム
ＤＬ１  現ダウンロードシステム
ＤＬ１＿Ｅ１  現ダウンロードシステムのアプリケーションシステム格納領域（Ｅ１）更新機能
ＤＬ２  新ダウンロードシステム
ＤＬ２＿Ｅ１  新ダウンロードシステムのアプリケーションシステム格納領域（Ｅ１）更新機能
ＤＬ２＿Ｅ２  新ダウンロードシステムのダウンロードシステム格納領域（Ｅ２）更新機能
ＤＬＤ  新ダウンロードシステムのダウンロード開始要求情報
Ｅ１  アプリケーションシステム格納領域
Ｅ２  ダウンロードシステム格納領域
Ｅ３  システムブート機能格納領域
ＳＢ  システムブート機能
【図１】
0006575157.tif 000002
【図２】
0006575157.tif 000003
【図３】
0006575157.tif 000004
【図４】
0006575157.tif 000005
【図５】
0006575157.tif 000006