(57)【特許請求の範囲】
【請求項１】
揮発性メモリと、
プログラムを格納する第一の領域、およびプログラムを格納する第二の領域を持つ不揮発性メモリと、
サーバと通信するためのネットワークインタフェースと、
ユーザに機器の状態を通知するための表示装置とを備え、
前記不揮発性メモリの前記第一の領域に格納されたプログラムが、サーバよりプログラムをダウンロードして、前記揮発性メモリに格納し、
前記ダウンロードしたプログラムが、サーバと通信し、前記不揮発性メモリの前記第二の領域のプログラムを書替え、
前記第一の領域に格納されたプログラムは、サーバからプログラムをダウンロードする際に、前記表示装置によって表示されるユーザインタフェースの表示状態を、前記揮発性メモリに退避し、
前記ダウンロードしたプログラムが起動時に、前記退避したユーザインタフェースの表示状態を読取り、ユーザインタフェースの表示状態を復帰する
ネットワーク対応の家電機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク接続された家電機器のソフトウェア更新方式に関する。
【背景技術】
【０００２】
ネットワーク接続したエアコンなどの家電機器の機能をインターネット経由で使うサービスが普及しつつある。また、同時にインターネット接続を利用し、商品出荷後にソフトウェアの機能強化や、ソフトウェアの障害を修正するため、インターネット経由での上記家電機器本体のプログラムを更新するような仕組みも使われ始めている。このような家電機器のソフトウェアに対する、ソフトウェア更新については、更新途中でのネットワーク途絶などのソフトウェア更新失敗時のサービス停止を回避するための方法が必要になる。このため、不揮発性メモリを２つの領域に分け、１つの領域を動作領域、もう１つの領域を待機領域とし、ソフトウェア更新においては待機領域のソフトウェアを書替え、書替え成功すれば動作領域と待機領域を入れ替えて動作させる方式がある（特許文献１参照）。
【０００３】
この方式ではソフトウェア更新がないときにも、通常動作に必要とする不揮発性メモリ領域の２倍の容量の不揮発性メモリが必要となる。ネットワーク接続されていることを前提として、書替え失敗時に再度ダウンロードし、バックアップ用の不揮発性メモリ領域を削減する方式がある（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４８５９４６５号
【特許文献２】特開２０１４−６８３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献２の方式においては、ソフトウェア更新するプログラム（以降アップデータプログラムと呼ぶ）を書替える方法がなく、例えば、書替え処理において、一部領域が書替えできないなどのソフトウェア障害が発生した場合においては、ネットワーク経由で更新することができなくなってしまう。
【０００６】
また、このような家電機器のソフトウェアをネットワーク経由でソフトウェア更新するような場合においては、更新対象となる家電機器のソフトウェアのバージョンが常に同じであるとは限らない。さまざまなバージョンのソフトウェアからソフトウェア更新を行う場合に、それぞれ書替え前のバージョンに対応した前処理あるいは後処理が必要になる。このようないろいろなバージョンのソフトウェアの家電機器から、ソフトウェア更新を実施することが困難な場合があった。
【０００７】
当発明は、かかる点に鑑みてなされたものであり、その目的とするところは、不揮発性メモリを有効に使いつつ、ネットワーク経由で、安全に、かつさまざまなバージョンのソフトウェアが動作している家電機器からのソフトウェア更新を可能にする方式を提供するものである。
【課題を解決するための手段】
【０００８】
本発明の一態様に係るネットワーク対応の家電機器は、揮発性メモリと、プログラムを格納する第一の領域、およびプログラムを格納する第二の領域を持つ不揮発性メモリと、サーバと通信するためのネットワークインタフェースと、ユーザに機器の状態を通知するための表示装置とを備え、前記不揮発性メモリの前記第一の領域に格納されたプログラムが、サーバよりプログラムをダウンロードして、前記揮発性メモリに格納し、前記ダウンロードしたプログラムが、サーバと通信し、前記不揮発性メモリの前記第二の領域のプログラムを書替える。
【発明の効果】
【０００９】
本発明の一態様に係るネットワーク対応の家電機器によれば、不揮発性メモリに通常動作に不必要な領域を確保する必要がなく、コストを削減できる。また、さまざまなバージョンのソフトウェアの家電機器のソフトウェア更新や、更新時のソフトウェア障害を回避することを可能とする。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の実施の形態であるネットワーク対応家電機器１００の主要なハードウェア構成を示すブロック図である。
【図２】図２は、ネットワーク対応家電機器１００における、ブートローダプログラム２０動作時の機能構成の一例を示すブロック図である。
【図３】図３は、起動情報保持部２２および起動情報保持部３３および起動情報保持部４５におけるデータ模式図である。
【図４】図４は、ＵＩ表示部２３およびＵＩ表示部３４およびＵＩ表示部４３におけるデータ模式図である。
【図５】図５は、ＵＩ表示モード３１０の設定値と、設定値に対するＵＩ表示動作の一例を表す図である。
【図６】図６は、ブートローダプログラム２０の起動処理から別プログラムを起動するまでの処理のフローチャートである。
【図７】図７は、ネットワーク対応家電機器１００における、メインプログラム３０動作時の機能構成の一例を示すブロック図である。
【図８】図８は、メインプログラムの処理のフローチャートである。
【図９】図９は、ネットワーク対応家電機器１００における、アップデータプログラム４０動作時の機能構成の一例を示すブロック図である。
【図１０】図１０は、アップデータプログラムの処理のフローチャートである。
【図１１】図１１は、実施の形態１および実施の形態２におけるソフトウェア更新処理のタイミングチャートである。
【図１２】図１２は、実施の形態２における、ネットワーク対応家電機器１００における、ブートローダプログラム５０動作時の機能構成の一例を示すブロック図である。
【図１３】図１３は、ＵＩ状態保存部２７およびＵＩ状態読取部４７におけるデータ模式図である。
【図１４】図１４は、表示タイマー値５１１を使わない場合のブートローダプログラム５０からアップデータプログラム６０が起動される際の、ＵＩ表示におけるタイミングチャートである。
【図１５】図１５は、表示タイマー値５１１を利用した場合のブートローダプログラム５０からアップデータプログラム６０が起動される際の、ＵＩ表示におけるタイミングチャートである。
【図１６】図１６は、実施の形態２における、ブートローダプログラム５０の起動処理から別プログラムを起動するまでの処理のフローチャートである。
【図１７】図１７は、実施の形態２における、ネットワーク対応家電機器１００における、アップデータプログラム６０動作時の機能構成の一例を示すブロック図である。
【図１８】図１８は、実施の形態２における、アップデータプログラム６０の起動処理から別プログラムを起動するまでの処理のフローチャートである。
【発明を実施するための形態】
【００１１】
（実施の形態１）
（概要）
以下、本発明に係るネットワーク対応の家電機器の一態様として、ネットワーク経由でのソフトウェア更新機能を持つ、ネットワーク対応家電機器１００について説明する。まず、図１〜図３を用いて、ネットワーク対応家電機器１００の概要を説明する。
【００１２】
ネットワーク対応家電機器１００は、ブートローダプログラム、メインプログラム、およびアップデータプログラムの３つの独立したプログラムによって制御される。それぞれのプログラムについては、ある１つのプログラムの動作が終了し、別のプログラムが開始するまで、別のプログラムは動作しない。
【００１３】
ブートローダプログラムは、ネットワーク対応家電機器１００が起動したときに最初に動くプログラムで、通常はメインプログラムへ処理を移行する。ソフトウェア更新が必要な場合には、ブートローダプログラムは、ネットワーク１４０経由で、アップデータプログラムをサーバ１０３よりダウンロードし、アップデータプログラムへ処理を移行する。
【００１４】
メインプログラムは、ネットワーク１４０経由での家電機器に対する命令の処理および、サーバ１０３にソフトウェア更新情報が登録された場合に、その情報を取得し、ソフトウェア更新を行うために起動モード２１０（図３を参照）を「更新起動」値に変更し、ブートローダプログラムへ移行する。なお、ブートローダプログラムへの移行は通常リセット動作により行う。
【００１５】
また、メインプログラムはバージョン情報を持ち、ソフトウェア更新の対象である。通常、ある時点で複数のバージョンのメインプログラムが存在している。バージョン情報は数値を用いて表す。例えばバージョン番号の一番大きいプログラムは最新のメインプログラムであることを表す。
【００１６】
アップデータプログラムは、ネットワーク１４０経由で、サーバ１０３より最新のメインプログラムをダウンロードし、不揮発性メモリ１２１に書かれているメインプログラムを更新する。
【００１７】
サーバ１０３は、ネットワーク１４０経由で、ネットワークＩ／Ｆ（インターフェース）１０がネットワーク対応家電機器１００からの要求を受け、通信処理部１１により、要求に応じた処理を行う。ネットワーク対応家電機器１００の現在動作しているメインプログラムのバージョンより、新しいメインプログラムの有無についての問合せについては、通信処理部１１は、データ管理部１２経由でデータ保存装置１３に問合せ、新しいバージョンのメインプログラムがあるかどうかを返答する。また、通信処理部１１は、ネットワーク１４０およびネットワークＩ／Ｆ１０経由で、ネットワーク対応家電機器１００から、新しいメインプログラムのバージョンに対応するアップデータプログラム及び新しいバージョンのメインプログラムの取得要求があったときには、データ管理部１２経由でデータ保存装置１３から情報を入手し、要求する情報を返す。
【００１８】
以下、本実施の形態１に係るネットワーク対応家電機器１００の構成について図面を参照しながら説明する。
【００１９】
（構成）
図１は、ネットワーク対応家電機器１００の主要なハードウェア構成を示すブロック図である。
【００２０】
同図に示されるように、ネットワーク対応家電機器１００は、ハードウェアとしてはコンピュータシステムであり、集積回路１１０と、入力装置１３０と、表示装置１３１と、ネットワークＩ／Ｆ１３２と、制御する家電１３３とから構成される。そして、集積回路１１０は、ＣＰＵ１２０と、不揮発性メモリ１２１と、メインメモリ１２２と、タイマー１２３と、クロックジェネレータ１２４と、バス１２５と入力Ｉ／Ｆ１２６と、出力Ｉ／Ｆ１２７と、ネットワークコントローラ１２８と、家電Ｉ／Ｆ１２９とから構成される。
【００２１】
不揮発性メモリ１２１は、通常フラッシュメモリから構成される。メインメモリ１２２は、揮発性メモリであって、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）から構成される。いずれもバス１２５に接続され、ＣＰＵ１２０の動作を規定するプログラムと、ＣＰＵ１２０が利用するデータとを記憶する。
【００２２】
バス１２５は、ＣＰＵ１２０と、不揮発性メモリ１２１と、メインメモリ１２２と、タイマー１２３と、クロックジェネレータ１２４と、入力Ｉ／Ｆ１２６と、出力Ｉ／Ｆ１２７と、ネットワークコントローラ１２８と、家電Ｉ／Ｆ１２９とに接続され、接続される回路間の信号を伝達する機能を有する。
【００２３】
入力Ｉ／Ｆ１２６と出力Ｉ／Ｆ１２７とは、それぞれ、バス１２５と入力装置１３０、バス１２５と表示装置１３１に接続され、それぞれ、接続される回路間の信号のやりとりを仲介する機能を有する。
【００２４】
ネットワークコントローラ１２８は、バス１２５とネットワークＩ／Ｆ１３２に接続され、接続される回路間の信号のやりとりを仲介する機能を有する。
【００２５】
家電Ｉ／Ｆ１２９は、バス１２５と家電１３３に接続され、接続される回路間の信号のやりとりを仲介する機能を有する。
【００２６】
入力装置１３０は、スイッチ装置等から構成され、入力Ｉ／Ｆ１２６に接続され、プログラムを実行するＣＰＵ１２０によって制御され、ネットワーク対応家電機器１００を利用するユーザからの起動処理の切替えなどを受付ける機能を有する。例えば、スイッチを押しながら電源を投入した場合には、ネットワーク対応家電機器１００が検査モードに入るなどの切替え処理をするために、入力装置１３０が用いられる。
【００２７】
表示装置１３１は、ＬＥＤ等から構成され、出力Ｉ／Ｆ１２７に接続され、プログラムを実行するＣＰＵ１２０によって制御され、ＣＰＵ１２０から送られる信号に基づいて、ユーザにネットワーク対応家電機器１００がどのような状態であるかを知らせる機能を持つ。例えば、表示装置１３１は、ＬＥＤが点滅しているときは、サーバ１０３との接続に問題があることを示したり、ＬＥＤが２回点滅する場合には、検査モードで起動していることを示したりすることで、エラー発生時の問題の切り分けなどに利用される。また企業がカスタマサポート等で、ネットワーク対応家電機器１００の状態を問合せする場合に、表示装置１３１は、遠隔で状態を知るための手段となる。このため、この表示装置１３１の表す内容は、簡潔でかつ問題把握などに必要な内容を網羅する必要がある。
【００２８】
ＣＰＵ１２０は、バス１２５に接続され、不揮発性メモリ１２１あるいはメインメモリ１２２に記憶されるプログラムを実行することで、入力装置１３０と、表示装置１３１と、ネットワークＩ／Ｆ１３２と、家電１３３とを制御して、ネットワーク対応家電機器１００を、プログラムを実行制御するコンピュータシステムとして機能させる機能を有する。
【００２９】
ネットワークＩ／Ｆ１３２は、イーサーネット（登録商標）などのネットワーク１４０と接続し、信号をやりとりする機能を持つ。ネットワークＩ／Ｆ１３２は、ネットワークコントローラ１２８が指示した手順に従って、ネットワーク１４０を経由し、サーバ１０３と通信を行う。
【００３０】
家電１３３は、ライトやエアコンなどの機能を実現する機器であり、家電Ｉ／Ｆ１２９からの指示を受け、電源を入れたり、切ったりする機能を持つ。また、家電Ｉ／Ｆ１２９からの状態の問合せに対して、現在電源が入っているのか、入っていないのかなどの状態を返す機能を持つ。
【００３１】
ここで、ＣＰＵ１２０は、不揮発性メモリ１２１およびメインメモリ１２２に記憶されるプログラムを実行することで、ネットワークコントローラ１２８や、家電Ｉ／Ｆ１２９を経由してデータをサーバ１０３および家電１３３とやり取りすることで、ネットワーク１４０経由での家電１３３の制御を実現する。
【００３２】
また、ネットワーク対応家電機器１００は、サーバ１０３より現在動作しているプログラムとは別のプログラムをダウンロードして、不揮発性メモリ１２１のプログラムを書替えすることで、新機能を追加し、あるいは、ソフトウェアの障害に対応することを可能にする。
【００３３】
このソフトウェア更新処理については、後程、図およびフローチャートを用いて詳細に説明する。
【００３４】
上記ハードウェア構成を備えるネットワーク対応家電機器１００について、以下、機能面から見た機能構成について図面を参照しながら説明する。
【００３５】
図２は、ブートローダプログラム２０が動作しているときの、ネットワーク対応家電機器１００の機能構成の一例を示すブロック図である。すでに説明した図１と同じ構成要素については同じ符号を用い、説明を省略する。
【００３６】
ブートローダプログラム２０は、機器が電源を投入して起動したとき、あるいはリセットして再起動したときに最初に動作するプログラムである。ブートローダプログラム２０は、起動判定部２１と、起動情報保持部２２と、ＵＩ表示部２３と、ダウンロード制御部２４と、通信処理部２５とから構成される。
【００３７】
起動判定部２１は、起動情報保持部２２経由で、不揮発性メモリ１２１に記録されている起動情報に基づいて、ブートローダプログラム２０によって起動されるプログラムを切替える。
【００３８】
起動情報保持部２２は、不揮発性メモリ１２１に記録されている、起動情報パラメタテーブル２００（図３参照）を管理し、起動判定部２１からの要求に対して、起動モード２１０の値を返答する。
【００３９】
起動情報パラメタテーブル２００は、起動モード２１０から構成される。
【００４０】
起動モード２１０は、「通常起動」と「更新起動」の２つの値を持ち、ブートローダプログラム２０が、通常起動を行うため、メインプログラムを起動するか、更新起動を行うため、アップデータプログラムをダウンロードして起動するかを判断するために用いる。
【００４１】
ＵＩ表示部２３は、出力Ｉ／Ｆ１２７を使って、表示装置１３１を制御する。ＵＩ表示部２３は、タイマー１２３を制御し、表示装置１３１の表示間隔を制御する。例えば表示装置１３１にＬＥＤを用いた場合に、ＵＩ表示部２３は、ＬＥＤの表示間隔が１秒おきの点滅表示を行うため、１秒を計測するためにタイマー１２３を用いる。
【００４２】
また、ＵＩ表示部２３は、ダウンロード制御部２４または通信処理部２５からのＵＩ表示モードの変更通知を受け、表示する内容を切り替える。
【００４３】
ＵＩ表示部２３は、ＵＩ表示モードの変更通知を受けると、ＵＩ表示部２３の内部にあるＵＩ表示パラメタテーブル３００（図４参照）のＵＩ表示モード３１０に変更内容を設定する。
【００４４】
ＵＩ表示モード３１０に設定される値と、設定される値に対応するＵＩ表示の一例を、ＵＩ表示モードの設定値とＬＥＤ表示４００（図５参照）に示す。この例における機器は、表示装置１３１として、緑と赤の２つのＬＥＤを持つ。
【００４５】
ＵＩ表示モード３１０は、通信未設定４１１、ネットワーク未接続４１２、アドレス未取得４１３、サーバ未接続４１４、ソフトウェア更新状態４１５、家電制御エラー４１６、不揮発性メモリ書込みエラー４１７、および正常起動４１８のうちのいずれかの設定値を取る。
【００４６】
ＵＩ表示モード３１０に通信未設定４１１が設定されているときのＬＥＤ表示動作（ＵＩ表示）は、緑と赤の両方のＬＥＤが常時点灯することである。この表示によりユーザは、機器が起動して初期設定中であることを認識できる。
【００４７】
ＵＩ表示モード３１０にネットワーク未接続４１２が設定されているときのＬＥＤ表示動作（ＵＩ表示）は、緑のＬＥＤが常時点灯し、赤のＬＥＤが０．５秒間隔で点滅することである。この表示によりユーザは、機器がネットワークに接続できていないエラーであることを認識できる。
【００４８】
ＵＩ表示モード３１０にアドレス未取得４１３が設定されているときのＬＥＤ表示動作（ＵＩ表示）は、緑のＬＥＤが常時点灯し、赤のＬＥＤが１秒間隔で点滅することである。この表示によりユーザは、機器がネットワークに接続できているが、アドレス取得中であることを認識できる。また、通常この状態が長く続けば、ユーザはネットワーク１４０からのアドレス取得において何らかの問題が生じていることを認識できる。
【００４９】
ＵＩ表示モード３１０にサーバ未接続４１４が設定されているときのＬＥＤ表示動作（ＵＩ表示）は、緑のＬＥＤが常時点灯し、赤ＬＥＤが０．２５秒間隔で点滅することである。この表示によりユーザは、機器がネットワーク１４０に接続できているが、サーバ１０３と接続中であることがわかる。この状態が長く場合、ユーザは、ネットワーク１４０のサーバ１０３への途中経路に問題があるか、サーバ１０３がダウンしている場合を想定して対応を取ることができる。
【００５０】
ＵＩ表示モード３１０にソフトウェア更新状態４１５が設定されているときのＬＥＤ表示動作（ＵＩ表示）は、緑のＬＥＤと赤のＬＥＤが０．５秒周期で交互に２回ずつ点滅することである。この表示によりユーザは、機器がサーバ１０３と接続でき、ソフトウェア更新処理を実行していることを認識できる。
【００５１】
ＵＩ表示モード３１０に家電制御エラー４１６が設定されているときのＬＥＤ表示動作（ＵＩ表示）は、緑のＬＥＤと赤のＬＥＤが同時に１秒間隔で点滅することである。この表示によりユーザは、機器がサーバ１０３からの指示を受けることはできるが、家電１３３の制御にエラーが発生していることを認識できる。
【００５２】
ＵＩ表示モード３１０に不揮発性メモリ書込みエラー４１７が設定されているときのＬＥＤ表示動作（ＵＩ表示）は、緑のＬＥＤと赤のＬＥＤが同時に０．５秒間隔で点滅することである。この表示によりユーザは、ソフトウェア更新処理において、不揮発性メモリで異常が発生していることを認識できる。
【００５３】
ＵＩ表示モード３１０に正常起動４１８が設定されているときのＬＥＤ表示動作（ＵＩ表示）は、緑のＬＥＤによる常時点灯と、赤のＬＥＤによる消灯である。この表示によりユーザは、ネットワーク対応家電機器１００が通常起動し、エラーなく動作していることを認識できる。
【００５４】
ダウンロード制御部２４は、起動判定部２１が更新起動を行う場合に起動判定部２１より呼び出される。
【００５５】
ダウンロード制御部２４は、通信処理部２５およびネットワークＩ／Ｆ１３２を通して、サーバ１０３と通信を行う。サーバ１０３には、通信を通して、新しいバージョンの更新ソフトウェアに対するアップデータプログラムを要求する。サーバ１０３は、アップデータプログラムの要求をネットワークＩ／Ｆ１０より受信すると、通信処理部１１がデータ管理部１２を通して、データ保存装置１３に保存されている指定されたバージョンのアップデータプログラムを入手し、通信処理部１１がネットワーク対応家電機器１００のブートローダプログラム２０に返答する。
【００５６】
ダウンロード制御部２４は、通信処理部２５経由でサーバ１０３よりアップデータプログラムを入手すると、それをメインメモリ１２２に保存する。
【００５７】
ダウンロード制御部２４は、アップデータプログラム４０のダウンロードが完了すると、アップデータプログラム４０を起動する。
【００５８】
ダウンロード制御部２４は、アップデータプログラムのダウンロードを開始すると、ＵＩ表示部２３に対して、ＵＩ表示モード３１０をソフトウェア更新状態４１５に設定することで、ソフトウェア更新が開始したことをユーザに知らせることができる。なお、さらにＵＩ表示部２３が高度な表示機能を有する場合には、ダウンロードの進捗状況を表示することも可能である。
【００５９】
通信処理部２５は、ダウンロード制御部２４の指示で、ネットワークＩ／Ｆ１３２を経由してサーバ１０３と通信を行う。
【００６０】
通信処理部２５は、ネットワークＩ／Ｆ１３２の状況およびサーバ１０３との通信の状況をＵＩ表示部２３に表示するように指示する。例えば、ネットワーク１４０と接続できない場合には、ネットワーク接続不可状態をＵＩ表示部２３に通知する。これにより、ＵＩ表示部２３は、ＬＥＤの早い点滅でユーザにネットワーク１４０あるいはネットワークＩ／Ｆ１３２に異常があることを通知する。
【００６１】
このようにブートローダプログラム２０は、ネットワーク対応家電機器１００の起動処理を行う。
【００６２】
ブートローダプログラム２０の処理について、フローチャートを用いて詳細に説明する。
【００６３】
図６は、ブートローダプログラム２０が起動して、メインプログラム３０あるいはアップデータプログラム４０を起動する処理のフローチャートである。
【００６４】
ブートローダプログラム２０が起動すると、起動判定部２１は、起動情報保持部２２に起動モードを問合せる（Ｓ１０１）。
【００６５】
起動判定部２１は、起動モード２１０が「通常起動」値か、「更新起動」値かを確認し（Ｓ１０２）、「通常起動」値であればステップＳ１０３を実行する。「更新起動」値であればステップＳ１０４を実行する。
【００６６】
起動判定部２１は、不揮発性メモリ１２１上にあるメインプログラム３０を実行する（Ｓ１０３）。
【００６７】
起動判定部２１は、ダウンロード制御部２４を実行する（Ｓ１０４）。
【００６８】
ダウンロード制御部２４は、ＵＩ表示部２３にあるＵＩ表示モード３１０を通信未設定４１１に変更する（Ｓ１０５）。
【００６９】
ダウンロード制御部２４は、サーバ１０３と接続したら、ＵＩ表示部２３にあるＵＩ表示モード３１０をソフトウェア更新状態４１５に変更する（Ｓ１０６）。
【００７０】
ダウンロード制御部２４は、アップデータプログラム４０を、サーバ１０３よりダウンロードする（Ｓ１０７）。
【００７１】
ダウンロード制御部２４は、アップデータプログラム４０を実行する（Ｓ１０８）。
【００７２】
図７は、メインプログラム３０が動作しているときの、ネットワーク対応家電機器１００の機能構成の一例を示すブロック図である。すでに説明した図１〜図５と同じ構成要素については同じ符号を用い、説明を省略する。
【００７３】
メインプログラム３０は、通常起動で動作するプログラムである。メインプログラム３０は、問合せ部３１と、通信処理部３２と、起動情報保持部３３と、ＵＩ表示部３４と、家電制御部３５とから構成される。
【００７４】
問合せ部３１は、例えば１日に１回などの一定時間間隔で、通信処理部３２経由でサーバ１０３に対して現在のバージョンより新しいメインプログラム３０が存在するかどうかを問合せする。サーバ１０３は、ネットワーク対応家電機器１００からの問合せを、ネットワークＩ／Ｆ１０で受信し通信処理部１１が処理する。通信処理部１１は、データ管理部１２に対して、データ保存装置１３に保存されている、指定されたバージョンより新しいメインプログラム３０の有無を問合せ、その結果をネットワークＩ／Ｆ１０経由でネットワーク対応家電機器１００に返答する。
【００７５】
問合せ部３１は、サーバ１０３からの返答を通信処理部３２経由で受信する。現在のバージョンより新しいメインプログラム３０が存在した場合には、起動情報保持部３３に対して起動情報パラメタテーブル２００の、起動モード２１０の値に、「更新起動」値をセットするように指示する。「更新起動」値をセットすると、問合せ部３１は再起動処理を行い、ブートローダプログラム２０を呼び出す。
【００７６】
通信処理部３２は、問合せ部３１より、サーバ１０３への現在のメインプログラム３０より新しいバージョンのメインプログラム３０の有無の問合せの要求を受け、ネットワークＩ／Ｆ１３２およびネットワーク１４０を経由してサーバ１０３に問合せを行う。
【００７７】
通信処理部３２はサーバ１０３からの要求を受けて、家電制御部３５に対して家電１３３の制御を指示する。例えば、通信処理部３２は、エアコンの冷房をＯＮにすることや、室温設定を２５℃に変更するなどの制御を指示する。
【００７８】
通信処理部３２は、ネットワーク１４０との接続状態や、サーバ１０３との接続状態について、ＵＩ表示部３４に対してＵＩ表示モード３１０を設定する。
【００７９】
起動情報保持部３３は、問合せ部３１よりサーバ１０３への新バージョンのメインプログラム３０の有無の問合せの結果を受けて、不揮発性メモリ１２１内の起動情報パラメタテーブル２００の、起動モード２１０の値を書替える。
【００８０】
ＵＩ表示部３４は、出力Ｉ／Ｆ１２７を使って、表示装置１３１を制御する。ＵＩ表示部３４は、タイマー１２３を制御し、表示装置１３１の表示間隔を制御する。例えば、ＵＩ表示部３４は、表示装置１３１にＬＥＤを用いた場合に、ＬＥＤの表示間隔が１秒おきの点滅表示を行うため、１秒を計測するためにタイマー１２３を用いる。
【００８１】
また、ＵＩ表示部３４は、通信処理部３２および家電制御部３５からのＵＩ表示モードの変更通知を受け、表示する内容を切り替える。
【００８２】
ＵＩ表示部３４は、ＵＩ表示モードの変更通知を受けると、ＵＩ表示部３４の内部にあるＵＩ表示パラメタテーブル３００（図４参照）のＵＩ表示モード３１０に変更内容を設定する。
【００８３】
ＵＩ表示モード３１０に設定される値と、設定される値に対応するＵＩ表示の一例については、前記のＵＩ表示モードの設定値とＬＥＤ表示４００（図５参照）に示した通りある。
【００８４】
家電制御部３５は、通信処理部３２経由でサーバ１０３からの指示を受信し、家電Ｉ／Ｆ１２９を用いて家電１３３を制御する。例えば、家電制御部３５は、サーバ１０３からの指示で、エアコンを冷房状態に変更するなど、家電１３３に対する処理を行う。
【００８５】
家電制御部３５は、家電１３３の状態やサーバ１０３からの要求の状態の表示を、ＵＩ表示部３４に指示することで、それらの状態をユーザに知らせることができる。例えば、家電１３３が異常な時には、家電制御部３５は、ＵＩ表示部３４のＵＩ表示モード３１０に家電制御エラー４１６を設定することで、ＵＩ表示部３４が図５に記載の該当する表示を行う。このＵＩ表示によりユーザに異常状態を知らせる。
【００８６】
このようにメインプログラム３０は、サーバ１０３からの家電１３３の制御要求処理を行うとともに、サーバ１０３に対して定期的に新しいバージョンのメインプログラム３０の有無を問合せ、新しいバージョンのメインプログラム３０があれば再起動し更新処理を開始する。
【００８７】
メインプログラム３０は、このように２つの機能を持つ。この２つの機能は通常別のタスクとして起動し、同時処理するようにするが、一つのタスクで２つの機能を実施することも可能である。
【００８８】
メインプログラム３０の処理について、フローチャートを用いて詳細に説明する。
【００８９】
図８は、ブートローダプログラム２０より、メインプログラム３０が起動した後の処理のフローチャートである。メインプログラム３０は家電制御タスクと、更新問合せタスクの２つのタスクを動作させて処理を行う。ここでタスクとはメインプログラム３０の中で同時に処理を実行できる処理の単位のことである。
【００９０】
メインプログラム３０が起動すると、家電制御タスクと、更新問合せタスクの２つのタスクを起動する（Ｓ１１１）。
【００９１】
家電制御タスクが起動すると、家電制御部３５を実行し、ＵＩ表示部３４のＵＩ表示モード３１０に通信未設定４１１を設定する（Ｓ１１２）。
【００９２】
通信処理部３２は、サーバ１０３と接続し、サーバ１０３からの制御要求を待つ。この時にサーバ接続が成功すれば、ＵＩ表示部３４のＵＩ表示モード３１０に正常起動４１８を設定する（Ｓ１１３）。
【００９３】
通信処理部３２は、サーバ１０３から通信があると、家電制御部３５に通知し、家電制御部３５が制御要求の有無を確認する（Ｓ１１４）。制御要求がなかった場合には、ステップＳ１１３を実行する。制御要求があった場合には、ステップＳ１１５を実行する。
【００９４】
ステップＳ１１５では、家電制御部３５は、家電Ｉ／Ｆ１２９経由で家電１３３を制御し、結果を通信処理部３２経由でサーバ１０３に返す（Ｓ１１５）。処理が完了すると、Ｓ１１３を実行する。
【００９５】
更新問合せタスクが起動すると、問合せ部３１を実行する（Ｓ１１６）。
【００９６】
問合せ部３１は、通信処理部３２経由でサーバ１０３に対して現在のメインプログラム３０より新しいバージョンのメインプログラム３０の有無を問合せる（Ｓ１１７）。
【００９７】
問合せ部３１は、問合せ結果を確認し、現在のメインプログラム３０より新しいバージョンのメインプログラム３０がない場合には、ステップＳ１１９を実行する。現在のメインプログラム３０より新しいバージョンのメインプログラム３０があった場合には、ステップＳ１２０を実行する（Ｓ１１８）。
【００９８】
問合せ部３１は、２４時間など定められた一定時間休止したのちに（Ｓ１１９）、ステップＳ１１７を実行する。
【００９９】
問合せ部３１は、起動情報保持部３３の起動モード２１０に「更新起動」値を設定するよう指示する（Ｓ１２０）。
【０１００】
問合せ部３１は、再起動のため、家電制御タスクを終了させる（Ｓ１２１）。
【０１０１】
問合せ部３１は、再起動を実施しブートローダプログラム２０を起動する（Ｓ１２２）。
【０１０２】
図９は、アップデータプログラム４０が動作しているときの、ネットワーク対応家電機器１００の機能構成の一例を示すブロック図である。すでに説明した図１〜図５と同じ構成要素については同じ符号を用い、説明を省略する。
【０１０３】
アップデータプログラム４０は、更新起動時において、ブートローダプログラム２０により、サーバ１０３よりダウンロードされ、起動するプログラムである。アップデータプログラム４０は、ダウンロード制御部４１と、通信処理部４２と、ＵＩ表示部４３と、書込み処理部４４と、起動情報保持部４５とから構成される。
【０１０４】
ダウンロード制御部４１は、通信処理部４２経由でサーバ１０３に対して、現在のバージョンより新しいメインプログラム３０をダウンロードする。サーバ１０３は、ネットワーク対応家電機器１００から、指定されたバージョンの取得要求を、ネットワークＩ／Ｆ１０で受信し、通信処理部１１が処理する。通信処理部１１は、データ管理部１２に対して、データ保存装置１３に保存されている、指定されたバージョンのメインプログラム３０を要求して取得し、その結果をネットワークＩ／Ｆ１０経由でネットワーク対応家電機器１００に返答する。
【０１０５】
なおダウンロード制御部４１は、メインプログラム３０のダウンロードを開始すると、ＵＩ表示部４３に対して、ＵＩ表示モードをソフトウェア更新状態４１５に設定することで、ソフトウェア更新処理が継続していることをユーザに知らせることができる。なお、さらにＵＩ表示部４３が高度な表示機能を有する場合には、ダウンロードの進捗状況を表示することも可能である。
【０１０６】
通信処理部４２は、ダウンロード制御部４１より、サーバ１０３への新バージョンのメインプログラム３０の取得要求を受け、ネットワークＩ／Ｆ１３２およびネットワーク１４０を経由してサーバ１０３に要求を行う。
【０１０７】
ダウンロード制御部４１は、ダウンロードしたメインプログラム３０を用いて、書込み処理部４４に対して不揮発性メモリ１２１のメインプログラム３０を更新するように指示する。
【０１０８】
ダウンロード制御部４１は、不揮発性メモリ１２１のメインプログラム３０の更新が完了すると、起動情報保持部４５に対して、不揮発性メモリ１２１内の起動情報パラメタテーブル２００の、起動モード２１０の値を「通常起動」値に書替えるように指示する。
【０１０９】
通信処理部４２は、ネットワーク１４０との接続状態や、サーバ１０３との接続状態について、ＵＩ表示部４３に対して表示モードを設定し、ユーザにネットワーク１４０やサーバ１０３との接続状態を通知する。
【０１１０】
ＵＩ表示部４３は、出力Ｉ／Ｆ１２７を使って、表示装置１３１を制御する。ＵＩ表示部４３は、タイマー１２３を制御し、表示装置１３１の表示間隔を制御する。例えば表示装置１３１にＬＥＤを用いた場合に、ＵＩ表示部４３は、ＬＥＤの表示間隔が１秒おきの点滅表示を行うため、１秒を計測するためにタイマー１２３を用いる。
【０１１１】
また、ＵＩ表示部４３は、ダウンロード制御部４１、通信処理部４２および書込み処理部４４からのＵＩ表示モードの変更通知を受け、表示する内容を切り替える。
【０１１２】
ＵＩ表示部４３は、ＵＩ表示モードの変更通知を受けると、ＵＩ表示部４３の内部にあるＵＩ表示パラメタテーブル３００（図４参照）のＵＩ表示モード３１０に変更内容を設定する。
【０１１３】
ＵＩ表示モード３１０に設定される値と、設定される値に対応するＵＩ表示の一例については、前記のＵＩ表示モードの設定値とＬＥＤ表示４００（図５参照）に示した通りある。
【０１１４】
書込み処理部４４は、ダウンロード制御部４１からの指示を受け、ダウンロード制御部４１がダウンロードしたメインプログラム３０を用いて、現在記録されている不揮発性メモリ１２１に記録されているメインプログラム３０を上書きして更新する。
【０１１５】
書込み処理部４４は、不揮発性メモリ１２１への書込みがエラーの場合に、ＵＩ表示部４３に対してＵＩ表示モード３１０を不揮発性メモリ書込みエラー４１７に変更するように通知し、ユーザに異常を知らせる。
【０１１６】
起動情報保持部４５は、ダウンロード制御部４１によるダウンロードの完了時に、不揮発性メモリ１２１内の起動情報パラメタテーブル２００の、起動モード２１０の値を「通常起動」値に書替える。
【０１１７】
このようにアップデータプログラム４０は、サーバ１０３からの家電１３３の最新のメインプログラム３０をダウンロードし、現在記録されている不揮発性メモリ１２１のメインプログラム３０を書替えることで更新処理を行う。
【０１１８】
アップデータプログラム４０の処理について、フローチャートを用いて詳細に説明する。
【０１１９】
図１０は、ブートローダプログラム２０により、アップデータプログラムがダウンロードされ、起動した後の処理のフローチャートである。
【０１２０】
アップデータプログラム４０は起動すると、ダウンロード制御部４１を実行する(Ｓ１３１)。
【０１２１】
ダウンロード制御部４１は、ＵＩ表示部４３のＵＩ表示モード３１０を通信未設定４１１に設定する（Ｓ１３２）。
【０１２２】
ダウンロード制御部４１は、通信処理部４２を通してサーバ１０３と接続し、サーバ１０３と接続完了すればＵＩ表示部４３のＵＩ表示モード３１０をソフトウェア更新状態４１５に変更する（Ｓ１３３）。
【０１２３】
ダウンロード制御部４１は、サーバ１０３より現在のメインプログラム３０のバージョンより新しいバージョンのメインプログラム３０を指定してダウンロードする（Ｓ１３４）。
【０１２４】
ダウンロード制御部４１は、サーバ１０３よりダウンロードしたメインプログラム３０を不揮発性メモリ１２１のメインプログラム３０が書かれている領域に上書きする（Ｓ１３５）。
【０１２５】
なお、ステップＳ１３４およびＳ１３５について、すべてのメインプログラム３０をメインメモリ１２２にダウンロードしてから不揮発性メモリ１２１に記録してもよいし、メインメモリ１２２の節約のため、メインプログラム３０を分割してダウンロードし、ダウンロードした部分からすぐに不揮発性メモリ１２１を書替えていく方式も可能とする。
【０１２６】
ダウンロード制御部４１は新しいバージョンのメインプログラム３０のすべての領域をダウンロードし、かつ不揮発性メモリ１２１への書込みが正常に完了すると、起動情報保持部４５の起動モード２１０に「通常起動」値を設定する（Ｓ１３６）。
【０１２７】
ダウンロード制御部４１は、再起動処理を行い、ブートローダプログラム２０を起動する（Ｓ１３７）。
【０１２８】
本実施の形態により、不揮発性メモリ１２１をメインプログラム３０の２倍量持つ必要なく、ソフトウェア更新が可能になる。また、ソフトウェア更新プログラムの障害時には、サーバ１０３からソフトウェア更新の都度ダウンロードしてくるアップデータプログラム４０を修正することができるので、ソフトウェア更新プログラム自体の耐障害性を高め、さまざまなネットワーク対応家電機器１００のソフトウェア更新を可能にする。
【０１２９】
（実施の形態２）
（概要）
実施の形態１および実施の形態２における、処理の流れと、ＵＩ表示について、図１１を用いて説明する。
【０１３０】
前述の実施の形態１において、ソフトウェア更新が始まると、時刻Ｔ０１においてブートローダプログラム２０が起動し、ブートローダプログラム２０は、通信処理の初期設定を行う。時刻Ｔ０２において、ブートローダプログラム２０が通信設定を完了すると、ブートローダプログラム２０はアドレスの取得処理を行う。時刻Ｔ０３において、ブートローダプログラム２０がアドレス取得できると、ブートローダプログラム２０はサーバ１０３への接続を行う。時刻Ｔ０４において、ブートローダプログラム２０がサーバ１０３と接続できると、ブートローダプログラム２０はアップデータプログラム４０のダウンロードを行う。時刻Ｔ０５においてブートローダプログラム２０がアップデータプログラム４０のダウンロードを完了すると、ブートローダプログラム２０はアップデータプログラム４０の起動を行い、アップデータプログラム４０は通信処理の初期設定を再度行う。時刻Ｔ０６において、アップデータプログラム４０が通信設定を完了すると、アップデータプログラム４０はアドレスの取得処理を行う。時刻Ｔ０７において、アップデータプログラム４０がアドレス取得できると、アップデータプログラム４０はサーバ１０３への接続を行う。時刻Ｔ０８において、アップデータプログラム４０がサーバ１０３と接続できると、アップデータプログラム４０はメインプログラム３０のダウンロードおよび不揮発性メモリ１２１への書込みを行う。時刻Ｔ０９においてアップデータプログラム４０がメインプログラム３０のダウンロードおよび不揮発性メモリ１２１への書込みを完了すると、アップデータプログラム４０は再起動処理を行い、ブートローダプログラム２０を実行する。
【０１３１】
この一連の処理において、実施の形態１のＵＩ表示を、図５記載のＵＩ表示モード３１０の設定値とＬＥＤ表示動作の例を用いて説明する。
【０１３２】
時刻Ｔ０１〜時刻Ｔ０２の間は、ブートローダプログラム２０はＵＩ表示モード３１０に通信未設定４１１を設定するため、緑のＬＥＤおよび赤のＬＥＤはともに点灯状態になる。時刻Ｔ０２〜時刻Ｔ０３の間は、ブートローダプログラム２０はＵＩ表示モード３１０にアドレス未取得４１３を設定するため、緑のＬＥＤが常時点灯し、赤のＬＥＤは、１秒間隔で点滅する。時刻Ｔ０３〜時刻Ｔ０４の間は、ブートローダプログラム２０はＵＩ表示モード３１０にサーバ未接続４１４を設定するため、緑のＬＥＤが常時点灯し、赤のＬＥＤは、０．５秒間隔で点滅する。時刻Ｔ０４〜時刻Ｔ０５の間は、ブートローダプログラム２０はＵＩ表示モード３１０にソフトウェア更新状態４１５を設定するため、緑のＬＥＤおよび赤のＬＥＤは、０．５秒間隔で２回ずつ交互に点滅動作を行う。時刻Ｔ０５〜時刻Ｔ０６の間は、アップデータプログラム４０はＵＩ表示モード３１０に通信未設定４１１を設定するため、緑のＬＥＤおよび赤のＬＥＤはともに点灯状態になる。時刻Ｔ０６〜時刻Ｔ０７の間は、アップデータプログラム４０はＵＩ表示モード３１０にアドレス未取得４１３を設定するため、緑のＬＥＤが常時点灯し、赤のＬＥＤは、１秒間隔で点滅する。時刻Ｔ０７〜時刻Ｔ０８の間は、アップデータプログラム４０はＵＩ表示モード３１０にサーバ未接続４１４を設定するため、緑のＬＥＤが常時点灯し、赤のＬＥＤは、０．５秒間隔で点滅する。時刻Ｔ０８〜時刻Ｔ０９の間は、アップデータプログラム４０はＵＩ表示モード３１０にソフトウェア更新状態４１５を設定するため、緑のＬＥＤおよび赤のＬＥＤは、０．５秒間隔で２回ずつ交互に点滅動作を行う。時刻Ｔ０９以降、ブートローダプログラム２０は再度起動し、メインプログラム３０を起動する。
【０１３３】
このようなソフトウェア更新処理にかかる時間は通常数分であり、その際に前記のように複雑にＵＩ表示が切り替わる。このため、何か障害があり上記ソフトウェア更新処理が繰り返すような場合、どのような問題が発生しているのかユーザが把握するのが難しくなる場合がある。
【０１３４】
この問題を解決するため、実施の形態２においては、ブートローダプログラム５０からアップデータプログラム６０を起動する場合のＵＩ表示において、ブートローダプログラム５０にＵＩ状態保存部２７および、アップデータプログラム６０にＵＩ状態読取部４７を追加する。これにより、ブートローダプログラム５０が最終に表示していたＵＩ表示モード３１０を、アップデータプログラム６０のＵＩ表示モード３１０に設定し、ＵＩ表示を継承するようにする。この機構により、ブートローダプログラム５０からアップデータプログラム６０へプログラムが切り替わっても、図１１におけるＴ０４〜Ｔ０９までの間、ＵＩ表示モード３１０を、同一のＵＩ表示モード設定値（ソフトウェア更新状態４１５）にすることで、エラー等が発生しない限り同一のＵＩ表示を継続することができる。この仕組みにより、ユーザはソフトウェア更新処理が継続して実施されていることを認識することができる。
【０１３５】
図１２は、実施の形態２における、ブートローダプログラム５０が動作しているときの、ネットワーク対応家電機器１００の機能構成の一例を示すブロック図である。すでに説明した図１〜図２と同じ構成要素については同じ符号を用い、説明を省略する。
【０１３６】
ブートローダプログラム５０は、機器が電源を投入して起動したとき、あるいはリセットして再起動したときに最初に動作するプログラムである。ブートローダプログラム５０は、起動判定部２１と、起動情報保持部２２と、ＵＩ表示部２３と、ダウンロード制御部２６と、通信処理部２５と、ＵＩ状態保存部２７とから構成される。
【０１３７】
起動判定部２１は、起動情報保持部２２経由で、不揮発性メモリ１２１に記録されている起動情報に基づいて、ブートローダプログラム５０が起動するプログラムを切替える。
【０１３８】
起動情報保持部２２は、不揮発性メモリ１２１に記録されている、起動情報パラメタテーブル２００（図３参照）を管理し、起動判定部２１からの要求に対して、起動モード２１０の値を返答する。
【０１３９】
ＵＩ表示部２３は、出力Ｉ／Ｆ１２７を使って、表示装置１３１を制御する。ＵＩ表示部２３は、タイマー１２３を制御し、表示装置１３１の表示間隔を制御する。例えば表示装置１３１にＬＥＤを用いた場合に、ＵＩ表示部２３は、ＬＥＤの表示間隔が１秒おきの点滅表示を行うため、１秒を計測するためにタイマー１２３を用いる。
【０１４０】
また、ＵＩ表示部２３はダウンロード制御部２６または通信処理部２５からのＵＩ表示モードの変更通知を受け、表示する内容を切り替える。
【０１４１】
ＵＩ表示部２３は、ＵＩ表示モードの変更通知を受けると、ＵＩ表示部２３の内部にあるＵＩ表示パラメタテーブル３００（図４参照）のＵＩ表示モード３１０に変更内容を設定する。
【０１４２】
ＵＩ表示モード３１０に設定される値と、設定される値に対応するＵＩ表示の一例を、ＵＩ表示モードの設定値とＬＥＤ表示４００（図５参照）に示す。この例における機器は、表示装置１３１として、緑と赤の２つのＬＥＤを持つ。
【０１４３】
ダウンロード制御部２６は、起動判定部２１が更新起動を行う場合に起動判定部２１より呼び出される。
【０１４４】
ダウンロード制御部２６は、通信処理部２５およびネットワークＩ／Ｆ１３２を通して、サーバ１０３と通信を行う。サーバ１０３には、通信を通して、新しいバージョンのメインプログラム３０に対するアップデータプログラム６０を要求する。サーバ１０３は、アップデータプログラム６０の要求をネットワークＩ／Ｆ１０より受信すると、通信処理部１１がデータ管理部１２を通して、データ保存装置１３に保存されている指定されたバージョンのアップデータプログラム６０を入手し、通信処理部１１がネットワーク対応家電機器１００のブートローダプログラム５０に返答する。
【０１４５】
ダウンロード制御部２６は、通信処理部２５経由でサーバ１０３よりアップデータプログラム６０を入手すると、それをメインメモリ１２２に保存する。
【０１４６】
ダウンロード制御部２６は、アップデータプログラム６０のダウンロードが完了すると、ＵＩ状態保存部２７を呼び出し、現在表示中のＵＩ情報およびネットワーク情報を保存する。その後、ダウンロード制御部２６は、アップデータプログラム６０を起動する。
【０１４７】
ダウンロード制御部２６は、アップデータプログラム６０のダウンロードを開始すると、ＵＩ表示部２３に対して、ＵＩ表示モード３１０をソフトウェア更新状態４１５に設定することで、ソフトウェア更新が開始したことをユーザに知らせることができる。なお、さらにＵＩ表示部２３が高度な表示機能を有する場合には、ダウンロードの進捗状況を表示することも可能である。
【０１４８】
通信処理部２５は、ダウンロード制御部２６の指示で、ネットワークＩ／Ｆ１３２を経由してサーバ１０３と通信を行う。
【０１４９】
通信処理部２５は、ネットワークＩ／Ｆ１３２の状況およびサーバ１０３との通信の状況をＵＩ表示部２３に表示するように指示する。例えば、ネットワーク１４０と接続できない場合には、ネットワーク接続不可状態をＵＩ表示部２３に通知する。これにより、ＵＩ表示部２３は、ＬＥＤの早い点滅でユーザにネットワーク１４０あるいはネットワークＩ／Ｆ１３２に異常があることを通知する。
【０１５０】
通信処理部２５は、ダウンロード制御部２６の指示で、ネットワークＩ／Ｆ１３２を経由してサーバ１０３と通信を行う。
【０１５１】
ＵＩ状態保存部２７は、ダウンロード制御部２６から起動され、ＵＩ表示部２３が持つ、ＵＩ表示に関する情報および通信処理部２５が持つネットワーク設定情報を、メインメモリ１２２内のＵＩ状態保持パラメタテーブル５００（図１３参照）に退避する。
【０１５２】
ＵＩ状態保持パラメタテーブル５００は、ＵＩ表示モード５１０と、表示タイマー値５１１と、ネットワーク設定値５１２とから構成される。
【０１５３】
ＵＩ表示モード５１０は、ＵＩ表示モード３１０の設定値を退避するための領域である。
【０１５４】
表示タイマー値５１１は、ＵＩ表示部２３が現在の表示モードを表示開始してからの周期を退避するための領域である。表示タイマー値に退避する値について、図１４および図１５のタイミングチャートを用いて説明する。
【０１５５】
図１４は、表示タイマー値５１１を用いなかった場合のＵＩ表示の例である。この例において、ＵＩ表示部２３は、０．５秒間隔でＬＥＤを２回点滅させ、その後２秒ＬＥＤを消灯する、周期表示を行っている。ブートローダプログラム５０でこのＵＩ表示をしている途中で、アップデータプログラム６０に切り替わった場合について説明する。
【０１５６】
時刻Ｔ２０において、前記周期表示を開始し、０．５秒のＬＥＤ  ＯＮ動作の後に、０．５秒のＬＥＤ  ＯＦＦ動作、また再び０．５秒のＬＥＤ  ＯＮ動作をした後で、ＬＥＤ  ＯＦＦを行う（時刻Ｔ２１）。こののち、２秒のＬＥＤ  ＯＦＦ時間を設けることで、ユーザはＬＥＤが２回点滅していることを認識できる。
【０１５７】
この２回目の周期が時刻Ｔ２２に開始し、２回のＬＥＤ  ＯＮ、ＬＥＤ  ＯＦＦ動作を行った（時刻Ｔ２３）後で、０．５秒後にアップデータプログラム６０に切り替わった場合を想定する。この場合、アップデータプログラム６０は、ＵＩ表示モード３１０を継承し、時刻Ｔ３１より０．５秒のＬＥＤ  ＯＮ動作を開始する。しかしながら、Ｔ３１から２回のＬＥＤ  ＯＮ、ＬＥＤ  ＯＦＦ動作を行うことで、ユーザからは、ＬＥＤが４回点滅しているように見えてしまう。このような表示をすることによりユーザの状態把握を困難にしてしまう可能性がある。
【０１５８】
図１５を用いて、表示タイマー値５１１の保存により、図１４で説明した問題を解決する手順について説明する。
【０１５９】
時刻Ｔ２０において、０．５秒のＬＥＤ  ＯＮ動作の後に、０．５秒のＬＥＤ  ＯＦＦ動作、また再び０．５秒のＬＥＤ  ＯＮ動作をした後で、ＬＥＤ  ＯＦＦを行う（時刻Ｔ２１）。こののち、２秒のＬＥＤ  ＯＦＦ時間の後に、この２周期目が開始する。
【０１６０】
時刻Ｔ２３に、２回のＬＥＤ  ＯＮ、ＬＥＤ  ＯＦＦ動作を行った後で、０．５秒後にアップデータプログラム６０に切り替わった場合、表示タイマー値には、現在時刻から２回目の周期Ｔ２２を差し引いた値、この場合には２秒を保存する。ブートローダプログラム２０より起動されたアップデータプログラム６０は、ＵＩ表示モード３１０を継承し、時刻Ｔ３１よりＵＩ表示を再開する。この場合、表示タイマー値５１１に２秒が保存されているため、開始周期より２秒経過したところよりＵＩ表示を再開する。このため、２秒間のＬＥＤ  ＯＦＦが始まってから０．５秒経過したところより再開し、残り１．５秒の間ＬＥＤ  ＯＦＦを継続したのちに（時刻Ｔ３２）、３周期目のＬＥＤの点滅動作を行う。
【０１６１】
このように処理することで、ＵＩ表示の一貫性を保つことができ、ユーザがソフトウェア更新状態を把握しやすくなる。
【０１６２】
ネットワーク設定値５１２は、通信処理部２５よりネットワークＩ／Ｆ１３２に設定しているアドレス情報など、可変の設定値を退避する。通常アドレス情報の取得には時間がかかるため、ネットワーク設定値５１２を退避することで、アップデータプログラム６０が起動してから、ソフトウェア更新処理を行うまでの時間を短縮することができる。
【０１６３】
なお、表示タイマー値５１１およびネットワーク設定値５１２については、動作に必須ではないため、メインメモリの領域サイズや、処理負荷を考慮し省略することも可能である。
【０１６４】
このようにブートローダプログラム５０は、ネットワーク対応家電機器１００の起動処理を行う。
【０１６５】
ブートローダプログラム５０の処理について、フローチャートを用いて詳細に説明する。
【０１６６】
図１６は、ブートローダプログラム５０が起動して、メインプログラム３０あるいはアップデータプログラム６０を起動する処理のフローチャートである。
【０１６７】
ブートローダプログラム５０が起動すると、起動判定部２１は、最初に起動情報保持部２２に起動モード２１０を問合せる（Ｓ２０１）。
【０１６８】
起動判定部２１は、起動モード２１０が「通常起動」値か、「更新起動」値かを確認し（Ｓ２０２）、「通常起動」値であればステップＳ２０３を実行する。「更新起動」値であればステップＳ２０４を実行する。
【０１６９】
起動判定部２１は、不揮発性メモリ１２１上にあるメインプログラム３０を実行する（Ｓ２０３）。
【０１７０】
起動判定部２１は、ダウンロード制御部２６を実行する（Ｓ２０４）。
【０１７１】
ダウンロード制御部２６は、ＵＩ表示部２３に対して、ＵＩ表示モード３１０を通信未設定４１１に変更する（Ｓ２０５）。
【０１７２】
ダウンロード制御部２６は、サーバ１０３と接続したら、ＵＩ表示部２３に対して、ＵＩ表示モード３１０をソフトウェア更新状態４１５に変更する（Ｓ２０６）。
【０１７３】
ダウンロード制御部２６は、アップデータプログラム６０を、サーバ１０３よりダウンロードする（Ｓ２０７）。
【０１７４】
ダウンロード制御部２６は、ＵＩ状態保存部２７を呼び出し、ＵＩ表示モード５１０、表示タイマー値５１１、ネットワーク設定値５１２を退避する（Ｓ２０８）。
【０１７５】
ダウンロード制御部２６は、アップデータプログラム６０を実行する（Ｓ２０９）。
【０１７６】
図１７は、アップデータプログラム６０が動作しているときの、ネットワーク対応家電機器１００の機能構成の一例を示すブロック図である。すでに説明した図１〜図５と同じ構成要素については同じ符号を用い、説明を省略する。
【０１７７】
アップデータプログラム６０は、更新起動時において、ブートローダプログラム５０により、サーバ１０３よりダウンロードされ、起動するプログラムである。アップデータプログラム６０は、ダウンロード制御部４６と、通信処理部４２と、ＵＩ表示部４３と、書込み処理部４４と、起動情報保持部４５と、ＵＩ状態読取部４７とから構成される。
【０１７８】
ダウンロード制御部４６は、ＵＩ状態読取部４７を実行し、ＵＩ表示状態およびネットワーク設定を復元する。
【０１７９】
ダウンロード制御部４６は、通信処理部４２経由でサーバ１０３に対して、現在のバージョンより新しいメインプログラム３０をダウンロードする。サーバ１０３は、ネットワーク対応家電機器１００から、指定されたバージョンの取得要求を、ネットワークＩ／Ｆ１０で受信し、通信処理部１１が処理する。通信処理部１１は、データ管理部１２に対して、データ保存装置１３に保存されている、指定されたバージョンのメインプログラム３０を要求して取得し、その結果をネットワークＩ／Ｆ１０経由でネットワーク対応家電機器１００に返答する。
【０１８０】
なおダウンロード制御部４６は、メインプログラム３０のダウンロードを開始すると、ＵＩ表示部４３に対して、ＵＩ表示モードをソフトウェア更新状態４１５に設定することで、ソフトウェア更新処理が継続していることをユーザに知らせることができる。なお、さらにＵＩ表示部４３が高度な表示機能を有する場合には、ダウンロードの進捗状況を表示することも可能である。
【０１８１】
通信処理部４２は、ダウンロード制御部４６より、サーバ１０３への新バージョンのメインプログラム３０の取得要求を受け、ネットワークＩ／Ｆ１３２およびネットワーク１４０を経由してサーバ１０３に要求を行う。
【０１８２】
ダウンロード制御部４６は、ダウンロードしたメインプログラム３０を用いて、書込み処理部４４に対して不揮発性メモリ１２１のメインプログラム３０を更新するように指示する。
【０１８３】
ダウンロード制御部４６は、不揮発性メモリ１２１のメインプログラム３０の更新が完了すると、起動情報保持部４５に対して、不揮発性メモリ１２１内の起動情報パラメタテーブル２００の、起動モード２１０の値を「通常起動」値に書替えるように指示する。
【０１８４】
通信処理部４２は、ネットワーク１４０との接続状態や、サーバ１０３との接続状態について、ＵＩ表示部４３に対して表示モードを設定し、ユーザにネットワーク１４０やサーバ１０３との接続状態を通知する。
【０１８５】
ＵＩ表示部４３は、出力Ｉ／Ｆ１２７を使って、表示装置１３１を制御する。ＵＩ表示部４３は、タイマー１２３を制御し、表示装置１３１の表示間隔を制御する。例えば表示装置１３１にＬＥＤを用いた場合に、ＵＩ表示部４３は、ＬＥＤの表示間隔が１秒おきの点滅表示を行うため、１秒を計測するためにタイマー１２３を用いる。
【０１８６】
また、ＵＩ表示部４３は、ダウンロード制御部４６、通信処理部４２および書込み処理部４４からのＵＩ表示モードの変更通知を受け、表示する内容を切り替える。
【０１８７】
ＵＩ表示部４３は、ＵＩ表示モードの変更通知を受けると、ＵＩ表示部４３の内部にあるＵＩ表示パラメタテーブル３００（図４参照）のＵＩ表示モード３１０に変更内容を設定する。
【０１８８】
ＵＩ表示モード３１０に設定される値と、設定される値に対応するＵＩ表示の一例については、前記のＵＩ表示モードの設定値とＬＥＤ表示４００（図５参照）に示した通りある。
【０１８９】
書込み処理部４４は、ダウンロード制御部４６からの指示を受け、ダウンロード制御部４６がダウンロードしたメインプログラム３０を用いて、現在記録されている不揮発性メモリ１２１に記録されているメインプログラム３０を上書きして更新する。
【０１９０】
書込み処理部４４は、不揮発性メモリ１２１への書込みがエラーの場合に、ＵＩ表示部４３に対してＵＩ表示モード３１０を不揮発性メモリ書込みエラー４１７に変更するように通知し、ユーザに異常を知らせる。
【０１９１】
起動情報保持部４５は、ダウンロード制御部４６によるダウンロードの完了時に、不揮発性メモリ１２１内の起動情報パラメタテーブル２００の、起動モード２１０の値を「通常起動」値に書替える。
【０１９２】
ＵＩ状態読取部４７は、ダウンロード制御部４６より呼び出され、メインメモリ１２２に保存されているＵＩ状態保持パラメタテーブル５００から、ＵＩ表示モード５１０および表示タイマー値５１１を読取って、ＵＩ表示部４３に設定する。
【０１９３】
ＵＩ状態読取部４７は、ＵＩ状態保持パラメタテーブル５００から、ネットワーク設定値５１２を読取り、通信処理部４２経由で、ネットワークＩ／Ｆ１３２にセットする。
【０１９４】
このようにアップデータプログラム６０は、サーバ１０３からの家電１３３の最新のメインプログラム３０をダウンロードし、現在記録されている不揮発性メモリ１２１のメインプログラム３０を書替えることで更新処理を行う。
【０１９５】
アップデータプログラム６０の処理について、フローチャートを用いて詳細に説明する。
【０１９６】
図１８は、ブートローダプログラム５０より、アップデータプログラム６０がダウンロードされ、起動した後の処理のフローチャートである。
【０１９７】
アップデータプログラム６０は起動すると、ダウンロード制御部４６を実行する(Ｓ２２１)。
【０１９８】
ダウンロード制御部４６は、ＵＩ状態読取部４７を起動し、ＵＩ表示モード、表示タイマー値、ネットワーク設定情報を読取り、ＵＩ表示部４３および通信処理部４２に復元指示する（Ｓ２２２）。
【０１９９】
ダウンロード制御部４６は、サーバ１０３より現在のメインプログラム３０より新しいメインプログラム３０を指定してダウンロードする（Ｓ２２３）。
【０２００】
ダウンロード制御部４６は、サーバ１０３よりダウンロードしたメインプログラム３０を不揮発性メモリのメインプログラム３０が書かれている領域に上書きする（Ｓ２２４）。
【０２０１】
なお、ステップＳ２２３およびＳ２２４について、すべてのメインプログラム３０をダウンロードしてから不揮発性メモリ１２１に記録してもよいし、メインメモリ１２２の節約のため、メインプログラム３０の一部をダウンロードして不揮発性メモリ１２１の一部を書替えていく方式も可能とする。
【０２０２】
ダウンロード制御部４６は新しいバージョンのメインプログラム３０のすべての領域をダウンロードし、かつ不揮発性メモリ１２１への書込みが正常に完了すると、起動情報保持部４５の起動モードに「通常起動」値を設定する（Ｓ２２５）。
【０２０３】
ダウンロード制御部４６は、再起動処理を行い、ブートローダプログラム５０を起動する（Ｓ２２６）。
【０２０４】
本実施の形態により、不要な不揮発性メモリ１２１を持つことなくコストダウンを図ることができ、かつ実施の形態１で課題であった、ソフトウェア更新方式において、複数プログラムを起動する際のＵＩの一貫性を保つことができ、ユーザが動作を把握しやすくなる。ひいては家電機器におけるカスタマサポートで機器の状態を問合せる際に、間違った情報を伝える可能性が下がりコストダウンにつながる。
【０２０５】
また、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【産業上の利用可能性】
【０２０６】
本発明にかかるネットワーク対応家電機器のソフトウェア更新方式については、コストダウン要請の厳しい白物家電などの制御ソフトや、家電機器とネットワークをつなぐネットワーク機器、複数の家電機器を束ねてネットワーク接続機能を提供するゲートウェイのようなシステムにおいて有用である。
【符号の説明】
【０２０７】
１０    ネットワークＩ／Ｆ（サーバ）
１１    通信処理部（サーバ）
１２    データ管理部
１３    データ保存装置
２０    ブートローダプログラム（実施の形態１）
２１    起動判定部
２２    起動情報保持部（ブートローダプログラム）
２３    ＵＩ表示部（ブートローダプログラム）
２４    ダウンロード制御部（実施の形態１のブートローダプログラム）
２５    通信処理部（ブートローダプログラム）
２６    ダウンロード制御部（実施の形態２のブートローダプログラム）
２７    ＵＩ状態保存部（実施の形態２のブートローダプログラム）
３０    メインプログラム
３１    問合せ部（メインプログラム）
３２    通信処理部（メインプログラム）
３３    起動情報保持部（メインプログラム）
３４    ＵＩ表示部（メインプログラム）
３５    家電制御部（メインプログラム）
４０    アップデータプログラム（実施の形態１）
４１    ダウンロード制御部（実施の形態１のアップデータプログラム）
４２    通信処理部（アップデータプログラム）
４３    ＵＩ表示部（アップデータプログラム）
４４    書込み処理部（アップデータプログラム）
４５    起動情報保持部（アップデータプログラム）
４６    ダウンロード制御部（実施の形態２のアップデータプログラム）
４７    ＵＩ状態読取部（実施の形態２のアップデータプログラム）
５０    ブートローダプログラム（実施の形態２）
６０    アップデータプログラム（実施の形態２）
１００  ネットワーク対応家電機器
１０３  サーバ
１１０  集積回路
１２０  ＣＰＵ
１２１  不揮発性メモリ
１２２  メインメモリ
１２３  タイマー
１２４  クロックジェネレータ
１２５  バス
１２６  入力Ｉ／Ｆ
１２７  出力Ｉ／Ｆ
１２８  ネットワークコントローラ
１２９  家電Ｉ／Ｆ
１３０  入力装置
１３１  表示装置
１３２  ネットワークＩ／Ｆ
１３３  家電
１４０  ネットワーク
【図１】
0006345568.tif 000002
【図２】
0006345568.tif 000003
【図３】
0006345568.tif 000004
【図４】
0006345568.tif 000005
【図５】
0006345568.tif 000006
【図６】
0006345568.tif 000007
【図７】
0006345568.tif 000008
【図８】
0006345568.tif 000009
【図９】
0006345568.tif 000010
【図１０】
0006345568.tif 000011
【図１１】
0006345568.tif 000012
【図１２】
0006345568.tif 000013
【図１３】
0006345568.tif 000014
【図１４】
0006345568.tif 000015
【図１５】
0006345568.tif 000016
【図１６】
0006345568.tif 000017
【図１７】
0006345568.tif 000018
【図１８】
0006345568.tif 000019