(57)【要約】  更新システムは、更新装置から送信されたファームウェアの更新プログラムにより、被更新装置のファームウェアを更新するものであり、更新装置は、更新プログラムを複数に分割した分割データを記憶する記憶部と、分割した複数の分割データを被更新装置に対して無線通信によって送信する送信制御部とを有し、被更新装置は、複数の分割データを取得する分割データ取得部と、受信した複数の分割データを結合して更新プログラムを生成するデータ結合部とを有する。
2019087295.tif 000002
【特許請求の範囲】
【請求項１】
更新装置および被更新装置を備え、前記被更新装置のファームウェアを前記更新装置から送信されたファームウェアの更新プログラムに更新する更新システムであって、
前記更新装置は、
前記更新プログラムを複数に分割した分割データを記憶する記憶部と、
記憶された複数の前記分割データを前記被更新装置に対して無線通信によって送信する送信制御部と
を有し、
前記被更新装置は、
前記更新装置から複数の前記分割データを取得する分割データ取得部と、
受信した複数の前記分割データを結合して前記更新プログラムを生成するデータ結合部と
を有する
更新システム。
【請求項２】
前記更新装置は、
前記更新プログラムを複数の分割データに分割して前記記憶に記憶するデータ分割部をさらに有する
請求項１に記載の更新システム。
【請求項３】
前記分割データは、データが正常であるか否かを判断するための誤り検出訂正情報が付与されており、
前記被更新装置は、
前記誤り検出訂正情報に基づき、前記更新装置から受信した前記分割データが正常であるか否かを検証するデータ検証部と、
検証結果に応じて、前記分割データを受信したことを示す受信応答を前記更新装置に対して送信する応答送信制御部と
をさらに有する
請求項１または２に記載の更新システム。
【請求項４】
前記応答送信制御部は、
受信した前記分割データが正常である場合に、前記分割データが正常であることを示す受信応答を前記更新装置に対して送信し、
受信した前記分割データが異常である場合に、前記分割データが異常であることを示す受信応答を前記更新装置に対して送信する
請求項３に記載の更新システム。
【請求項５】
前記送信制御部は、
前記被更新装置から受信した前記受信応答に基づき、前記被更新装置に対して送信すべき前記分割データを決定する
請求項３または４に記載の更新システム。
【請求項６】
前記分割データは、データの順序を示す識別情報が付与されており、
前記送信制御部は、
送信した前記分割データが正常であることを示す受信応答を前記被更新装置から受信した場合に、前記識別情報に基づいて次の分割データを送信し、
送信した前記分割データが異常であることを示す受信応答を前記被更新装置から受信した場合に、前記送信した分割データを再送する
請求項１〜５のいずれか一項に記載の更新システム。
【請求項７】
前記データ結合部は、
前記識別情報に基づき、受信した複数の前記分割データを結合する
請求項６に記載の更新システム。
【請求項８】
前記送信制御部は、
前記分割データが異常であることを示す受信応答を受け取った場合に、設定回数に達するまで前記送信した分割データを再送する
請求項１〜７のいずれか一項に記載の更新システム。
【請求項９】
前記更新装置は、
前記更新プログラムのバージョン情報を記憶する記憶部と、
前記更新プログラムを取得し、記憶された前記更新プログラムのバージョン情報と、過去の更新プログラムのバージョン情報とに基づき、前記被更新装置に対して取得した前記更新プログラムを送信するか否かを判断する更新プログラム取得部と
をさらに有する
請求項１〜８のいずれか一項に記載の更新システム。
【請求項１０】
前記更新装置は、
前記更新プログラムを機能毎に複数に分割して保持しており、
前記送信制御部は、
前記複数に分割された更新プログラムのうち、前記被更新装置が必要とする機能に対応する前記分割された更新プログラムをさらに複数の分割データに分割し、分割した複数の前記分割データを前記被更新装置に対して送信する
請求項１〜９のいずれか一項に記載の更新システム。
【請求項１１】
前記更新装置は、
複数の前記分割データを送信した際に、それぞれの複数の前記分割データのバージョン情報を記憶する記憶部をさらに有し、
前記データ分割部は、
複数の前記分割データに対してバージョン情報を付与し、
それぞれの前記分割データの前記バージョン情報と、前記被更新装置に対して直近に送信された分割データのバージョン情報とを比較し、
前記送信制御部は、
バージョンが新しいと判断された分割データを前記被更新装置に対して送信する
請求項２〜９のいずれか一項に記載の更新システム。
【請求項１２】
被更新装置に接続され、前記被更新装置のファームウェアを更新する更新装置であって、
前記被更新装置のファームウェアを更新する更新プログラムを複数に分割した分割データを記憶する記憶部と、
記憶された複数の前記分割データを前記被更新装置に対して無線通信によって送信する送信制御部と
を有する
更新装置。
【請求項１３】
更新装置に接続され、前記更新装置から無線通信によって送信されたファームウェアの更新プログラムにより、ファームウェアを更新する被更新装置であって、
前記更新プログラムが分割された複数の分割データを前記更新装置から取得する分割データ取得部と、
受信した複数の前記分割データを結合して前記更新プログラムを生成するデータ結合部と
を有する
被更新装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファームウェアを更新する更新システム、更新装置および被更新装置に関するものである。
【背景技術】
【０００２】
従来、組み込み機器において、機器に不具合が発生した際の修正パッチの適用、あるいは機能の追加を目的として、ファームウェアの更新が行われている。最近では、ファームウェアを更新する方法として、様々な方法が提案され実用化されている。【０００３】
ファームウェアの更新方法として、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリを用いた方法がある。この方法では、更新用プログラムが予め格納されたＵＳＢメモリを組み込み機器に接続し、更新用プログラムを組み込み機器に読み込ませることにより、ファームウェアが更新される。【０００４】
また、ファームウェアの更新方法として、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）または専用機器を用いた方法がある。この方法では、組み込み機器に予め搭載されたシリアルインターフェースなどの有線インターフェースにＰＣまたは専用機器を接続し、更新用プログラムを組み込み機器に読み込ませることにより、ファームウェアが更新される。【０００５】
さらに、ファームウェアの更新方法として、ネットワークを用いた方法がある（例えば、特許文献１参照）。特許文献１に記載の方法において、更新プログラムは、予めファイルサーバに格納され保持されている。第１の伝送装置は、ネットワークを介して更新用プログラムをファイルサーバから取得する。そして、第１の伝送装置は、取得した更新用プログラムを、当該ネットワークとは異なるネットワークを介して更新対象となる第２の伝送装置に送信する。これにより、組み込み機器の遠隔更新が行われる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１１／０２７４５７号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載のファームウェア更新方法において、ネットワークの通信品質が低い場合、更新プログラムの一部のビット化けまたはビット抜け等により、更新プログラムが正常に受信されないことがある。更新プログラムが正常に受信されないと、ファームウェアを更新することができない。そのため、ファームウェアの更新の失敗を防ぐことを目的として、更新プログラムには、一般に、更新プログラムを正常に受信したか否かを判断するための誤り訂正符号または誤り検出符号が付与されている。【０００８】
しかしながら、通常、誤り訂正符号または誤り検出符号は、更新プログラム全体に対して付与されているため、誤り検出処理は、更新プログラム全体の受信完了後に行われる。
すなわち、更新プログラムに誤りが検出された場合、更新プログラム全体の送受信を再度行う必要があるので、ファームウェアの更新処理に時間がかかる。【０００９】
本発明は、上記従来の技術における課題に鑑みてなされたものであって、ネットワークの通信品質が低い場合でも、短時間でファームウェアを更新することができる更新システム、更新装置および被更新装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の更新システムは、更新装置および被更新装置を備え、前記被更新装置のファームウェアを前記更新装置から送信されたファームウェアの更新プログラムに更新する更新システムであって、前記更新装置は、前記更新プログラムを複数に分割した分割データを記憶する記憶部と、記憶された複数の前記分割データを前記被更新装置に対して無線通信によって送信する送信制御部とを有し、前記被更新装置は、前記更新装置から複数の前記分割データを取得する分割データ取得部と、受信した複数の前記分割データを結合して前記更新プログラムを生成するデータ結合部とを有するものである。
【発明の効果】
【００１１】
本発明によれば、ファームウェアの更新プログラムを複数の分割データに分割して被更新装置に送信することにより、ネットワークの通信品質が低い場合でも、短時間でファームウェアを更新することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１に係る更新システムの構成の一例を示すブロック図である。
【図２】図１の更新装置の構成の一例を示すハードウェアブロック図である。
【図３】図２の制御装置の構成の一例を示す機能ブロック図である。
【図４】図１の被更新装置の構成の一例を示すハードウェアブロック図である。
【図５】図４の制御装置の構成の一例を示す機能ブロック図である。
【図６】更新装置によって外部機器から受信される更新プログラムのデータ構造の一例を示す概略図である。
【図７】実施の形態１による更新プログラムの分割について説明するための概略図である。
【図８】実施の形態１に係る更新装置における更新プログラムの送信処理の流れの一例を示すフローチャートである。
【図９】実施の形態１に係る被更新装置における更新プログラムの受信処理の流れの一例を示すフローチャートである。
【図１０】実施の形態２における更新プログラムの分割について説明するための概略図である。
【発明を実施するための形態】
【００１３】
実施の形態１．
以下、本発明の実施の形態１に係る更新システムについて説明する。図１は、本実施の形態１に係る更新システム１００の構成の一例を示すブロック図である。図１に示すように、更新システム１００は、更新装置１および被更新装置２で構成されている。更新装置１と被更新装置２とは、近距離無線通信により互いに通信を行う。
【００１４】
更新装置１は、Ｗｅｂ等を介してＰＣ等の外部機器から被更新装置２におけるファームウェアの更新プログラムを取得し、近距離無線通信により、被更新装置２に対して更新プログラムを送信する。更新装置１として、例えば、近距離無線通信機能を有するスマートフォンまたはタブレット等の汎用機器が適用される。
【００１５】
被更新装置２は、近距離無線通信により、更新装置１から送信された更新プログラムを受信し、現在のファームウェアを更新する。被更新装置２として、例えば、空気調和装置のリモートコントローラ等の特定の機能を実現することを目的とした組み込み機器が適用される。
【００１６】
なお、近距離無線通信とは、数メートルから数百メートル程度の距離での通信を行う規格の総称である。近距離無線通信は、低消費電力かつ低速という特徴を有しており、一般には低通信品質である。近距離無線通信として、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標、以下省略する）、Ｚｉｇｂｅｅ（登録商標）、ＥｎＯｃｅａｎ（登録商標）、ＮＦＣ（Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）、および特定小電力無線などが挙げられる。なお、近距離無線通信は、上記の一例により限定されるものではない。
【００１７】
［更新システム１００の構成］
（更新装置１）
図２は、図１の更新装置１の構成の一例を示すハードウェアブロック図である。図２に示すように、更新装置１は、制御装置１０、接続インターフェース（Ｉ／Ｆ）１１、第１の通信インターフェース（Ｉ／Ｆ）１２、記憶部１３、表示部１４および操作部１５を備えている。
【００１８】
接続Ｉ／Ｆ１１は、有線あるいは無線によってＰＣ等の外部機器と接続され、制御装置１０の命令に基づき、外部機器との間で行われる通信を制御する。特に、本実施の形態１において、接続Ｉ／Ｆ１１は、外部機器から、被更新装置２におけるファームウェアの更新プログラムを受信し、受信した更新プログラムを制御装置１０に供給する。
【００１９】
第１の通信Ｉ／Ｆ１２は、Ｂｌｕｅｔｏｏｔｈ等の近距離無線によって被更新装置２と接続され、制御装置１０の命令に基づき、被更新装置２との間で行われる通信を制御する。特に、本実施の形態１において、第１の通信Ｉ／Ｆ１２は、更新プログラムが分割された分割データを被更新装置２に送信する。
【００２０】
記憶部１３は、各種のデータまたは制御装置１０で実行されるプログラム等を保持する。記憶部１３は、制御装置１０の制御により、更新プログラムの書き込みおよび読み出しを行う。
【００２１】
表示部１４は、例えばＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）または有機ＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ等によって構成されている。なお、表示部１４として、例えば、ＬＣＤまたは有機ＥＬディスプレイ上にタッチセンサを有するタッチパネルが積層されたタッチパネルディスプレイが用いられてもよい。
【００２２】
操作部１５は、更新装置１を操作するために用いられる各種のキー等が設けられ、各キー等に対する操作に応じた操作信号を出力する。また、上述したように、表示部１４がタッチパネルディスプレイである場合には、各種キーがソフトウェアキーとして表示部１４に表示されるようにしてもよい。
【００２３】
制御装置１０は、外部機器から受け取った被更新装置２におけるファームウェアの更新プログラムを分割し、被更新装置２に対して送信する処理を行う。制御装置１０は、マイクロコンピュータなどの演算装置上でソフトウェアを実行することにより各種機能が実現され、もしくは各種機能を実現する回路デバイスなどのハードウェア等で構成されている。
【００２４】
図３は、図２の制御装置１０の構成の一例を示す機能ブロック図である。図３に示すように、制御装置１０は、更新プログラム取得部１０１、データ分割部１０２、送信制御部１０３および分割データ記憶部１０４を備えている。
【００２５】
更新プログラム取得部１０１は、被更新装置２におけるファームウェアの更新プログラムを、接続Ｉ／Ｆ１１を介して取得し、データ分割部１０２に供給する。データ分割部１０２は、受け取った更新プログラムを、設定データ量単位で複数に分割し、複数の分割データを生成し、分割データ記憶部１０４に記憶する。データ分割部１０２は、例えば更新プログラムを分割するための分割アプリケーションであり、分割アプリケーションが有する分割機能によって更新プログラムの分割処理を行う。
【００２６】
分割データ記憶部１０４には、更新プログラムが分割された分割データが記憶される。なお、分割データは、上述したように、データ分割部１０２で分割される場合以外に、外部機器で分割データを生成し、分割データが外部機器から直接取得される場合がある。この場合、取得した分割データが分割データ記憶部１０４に記憶される。分割データを直接取得する場合については、後述する。
【００２７】
送信制御部１０３は、被更新装置２から受信した受信応答の内容に基づき、被更新装置２に対して送信すべき分割データを決定する。送信制御部１０３は、データ分割部１０２で生成された複数の分割データを、第１の通信Ｉ／Ｆ１２を介して被更新装置２に送信する。受信応答は、被更新装置２で分割データを正常に受信したか否かを示す情報である。
【００２８】
送信制御部１０３は、ある分割データを送信した後、当該分割データに対応する受信応答を被更新装置２から受信し、受信応答が分割データを正常に受信したことを示す場合、当該分割データの次の分割データを被更新装置２に対して送信する。一方、送信制御部１０３は、受信した当該分割データに対応する受信応答が分割データの受信異常を示す場合、当該分割データを被更新装置２に対して再送する。
【００２９】
（被更新装置２）
図４は、図１の被更新装置２の構成の一例を示すハードウェアブロック図である。図４に示すように、被更新装置２は、制御装置２０、第２の通信インターフェース（Ｉ／Ｆ）２１、記憶部２２、表示部２３および操作部２４を備えている。
【００３０】
第２の通信Ｉ／Ｆ２１は、Ｂｌｕｅｔｏｏｔｈ等の近距離無線によって更新装置１と接続され、制御装置２０の命令に基づき、更新装置１との間で行われる通信を制御する。特に、本実施の形態１において、第２の通信Ｉ／Ｆ２１は、更新プログラムが分割された分割データを更新装置１から受信する。
【００３１】
記憶部２２は、各種のデータまたは制御装置２０で実行されるプログラム等を保持する。記憶部２２は、制御装置２０の制御により、更新プログラムの書き込みおよび読み出しを行う。
【００３２】
表示部２３は、例えばＬＣＤまたは有機ＥＬディスプレイ等によって構成されている。なお、表示部２３として、例えばタッチパネルディスプレイが用いられてもよい。また、表示部２３は、必ずしも設けられる必要はない。操作部２４は、更新装置１を操作するために用いられる各種のキー等が設けられ、各キー等に対する操作に応じた操作信号を出力する。また、上述したように、操作部２４がタッチパネルディスプレイである場合には、各種キーがソフトウェアキーとして表示部２３に表示されるようにしてもよい。
【００３３】
制御装置２０は、被更新装置２におけるファームウェアの更新プログラムを構成するデータを更新装置１から受信し、受信したデータに基づき、更新プログラムを生成する。制御装置２０は、マイクロコンピュータなどの演算装置上でソフトウェアを実行することにより各種機能が実現され、もしくは各種機能を実現する回路デバイスなどのハードウェア等で構成されている。
【００３４】
図５は、図４の制御装置２０の構成の一例を示す機能ブロック図である。図５に示すように、制御装置２０は、分割データ取得部２０１、データ検証部２０２、応答送信制御部２０３およびデータ結合部２０４を備えている。
【００３５】
分割データ取得部２０１は、更新装置１から送信された更新プログラムの分割データを取得し、データ検証部２０２に供給する。データ検証部２０２は、受け取った分割データに含まれる誤り訂正符号または誤り検出符号を用いて、分割データが正常であるか否かを検証する。
【００３６】
応答送信制御部２０３は、データ検証部２０２による検証結果に応じた受信応答を生成し、更新装置１に対して送信する。具体的には、応答送信制御部２０３は、分割データ取得部２０１で取得した分割データが正常に受信できた場合に、分割データが正常であることを示す受信応答を生成する。また、応答送信制御部２０３は、取得した分割データを正常に受信できなかった場合に、分割データが異常であることを示す受信応答を生成する。
【００３７】
データ結合部２０４は、受信した分割データが正常である場合に、受信した分割データを結合し、ファームウェアの更新プログラムを生成する。なお、データ結合部２０４は、すべての分割データを取得した場合に、分割データを結合してもよいし、分割データを取得するたびに結合してもよい。
【００３８】
［更新プログラムの分割］
図６は、更新装置１によって外部機器から受信される更新プログラムのデータ構造の一例を示す概略図である。図６に示すように、更新プログラムは、当該更新プログラムの実体であるファームウェアデータと、送受信の際の誤りを訂正または検出するための誤り訂正符号または誤り検出符号とで構成されている。なお、以下では、誤り訂正符号または誤り検出符号のことを、誤り検出訂正情報と称して説明する。
【００３９】
従来の更新システムにおいては、図６に示す更新プログラムが更新装置から被更新装置に対して一度に送信される。そして、被更新装置は、誤り検出訂正情報を用いて、受信した更新プログラムが正常であるか否かを判断している。ここで、被更新装置において更新プログラム全体が正常に受信されない場合には、更新プログラム全体の再送信が行われる。そのため、更新装置と被更新装置との間の通信品質が低い場合には、ファームウェアの更新処理に時間がかかる。
【００４０】
そこで、本実施の形態１に係る更新システム１００では、更新装置１から被更新装置２に対して更新プログラムを送信する際に、更新プログラムが複数の分割データに分割される。そして、更新装置１は、複数に分割された分割データを、被更新装置２に対して順次送信する。
【００４１】
図７は、本実施の形態１による更新プログラムの分割について説明するための概略図である。図７に示すように、図６の更新プログラムは、設定データ量単位で複数のデータに分割される。分割された複数のデータは、複数の分割データのデータ部にそれぞれ格納される。また、分割されたそれぞれの分割データでは、データ部に対して、ヘッダと、誤り検出訂正情報とが付与される。
【００４２】
ヘッダには、分割データの順序を示す識別情報が記述されている。このように、分割データのヘッダに識別情報を記述することにより、更新装置１は、送信する分割データの順序を識別することができる。また、被更新装置２は、受信した複数の分割データを結合して更新プログラムを取得する際に、結合する分割データの順序を識別することができる。なお、識別情報は、ヘッダに限らず、例えば図示しないフッタあるいはその他の領域に記述されてもよい。
【００４３】
［更新プログラムの送受信処理］
更新システム１００における更新プログラムの送受信処理について説明する。以下では、更新装置１による更新プログラムの送信処理と、被更新装置２による更新プログラムの受信処理について説明する。
【００４４】
（送信処理）
図８は、本実施の形態１に係る更新装置１における更新プログラムの送信処理の流れの一例を示すフローチャートである。更新装置１において、外部機器から被更新装置２におけるファームウェアの更新プログラムが取得されると、更新プログラムの送信処理が開始される。
【００４５】
ステップＳ１において、データ分割部１０２は、取得した更新プログラムを設定データ量単位で分割する。そして、データ分割部１０２は、分割したそれぞれのデータを、ヘッダおよび誤り検出訂正情報が付与された複数の分割データのデータ部にそれぞれ格納する。ステップＳ２において、更新装置１が被更新装置２に接続されると、送信制御部１０３は、ステップＳ３において、複数の分割データのうち先頭の分割データを被更新装置２に送信する。
【００４６】
ステップＳ４において、送信制御部１０３は、送信した分割データに対する受信応答を被更新装置２から受信したか否かを判断する。受信応答を受信したと判断した場合（ステップＳ４；Ｙｅｓ）、送信制御部１０３は、ステップＳ５において、受信した受信応答が正常であるか否かを判断する。受信応答が分割データを正常に受信したことを示す場合（ステップＳ５；Ｙｅｓ）には、処理がステップＳ６に移行する。また、受信応答が分割データの受信異常を示す場合（ステップＳ５；Ｎｏ）には、処理がステップＳ１０に移行する。
【００４７】
ステップＳ６において、送信制御部１０３は、未送信の分割データが存在するか否かを判断する。未送信の分割データが存在しないと判断した場合（ステップＳ６；Ｎｏ）、送信制御部１０３は、ステップＳ７において、更新プログラムを正常に送信したと判断し、送信処理を終了する。未送信の分割データが存在すると判断した場合（ステップＳ６；Ｙｅｓ）、送信制御部１０３は、ステップＳ８において、分割データのヘッダに記述された識別情報に基づき、当該分割データの次の分割データを被更新装置２に対して送信する。そして、処理がステップＳ４に戻る。
【００４８】
一方、ステップＳ４において、受信応答を受信していないと判断した場合（ステップＳ４；Ｎｏ）、送信制御部１０３は、ステップＳ９において、分割データを送信してから受信応答を受信するまでの時間がタイムアウト時間に達したか否かを判断する。送信制御部１０３により、タイムアウト時間に達したと判断された場合（ステップＳ９；Ｙｅｓ）には、処理がステップＳ１０に移行する。送信制御部１０３により、タイムアウト時間に達していないと判断された場合（ステップＳ９；Ｎｏ）には、処理がステップＳ４に戻る。
【００４９】
ステップＳ１０において、送信制御部１０３は、分割データの再送回数が規定回数未満であるか否かを判断する。分割データの再送回数が規定回数未満である場合（ステップＳ１０；Ｙｅｓ）、送信制御部１０３は、ステップＳ１１において、当該分割データを被更新装置２に再送する。そして、処理がステップＳ４に戻る。一方、分割データの再送回数が規定回数以上である場合（ステップＳ１０；Ｎｏ）、送信制御部１０３は、ステップＳ１２において、更新プログラムの送信が失敗したと判断し、送信処理を終了する。
【００５０】
なお、図８の例では、ステップＳ１０において、分割データの再送回数に上限値を設けているが、これに限られず、再送時間に上限値を設け、分割データの再送時間が規定時間を超えるか否かで分割データの送信の正否を判断してもよい。
【００５１】
また、この例では、更新プログラムが取得された場合に、ステップＳ１で更新プログラムが分割されるように説明したが、これに限られず、例えば、更新プログラムが分割される前に、更新プログラムのバージョンを確認する処理を行ってもよい。
【００５２】
具体的には、更新プログラムには、プログラムのバージョン情報が記述されており、更新プログラム取得部１０１は、更新プログラムを取得した際に、更新プログラムのバージョン情報を記憶部１３に記憶する。そして、更新プログラム取得部１０１は、過去に被更新装置２に対して送信した更新プログラムのバージョン情報と、取得した更新プログラムのバージョン情報とを比較する。
【００５３】
比較の結果、取得した更新プログラムのバージョンが過去の更新プログラムのバージョンよりも新しい場合、更新プログラム取得部１０１は、取得した更新プログラムをデータ分割部１０２に供給する。そして、データ分割部１０２は、送信処理におけるステップＳ１の処理を実行する。一方、取得した更新プログラムのバージョンが過去の更新プログラムのバージョンと同一または過去の更新プログラムのバージョンよりも古い場合、更新プログラム取得部１０１は、取得した更新プログラムを破棄し、送信処理を終了する。
【００５４】
このように、取得した更新プログラムのバージョンが確認されることにより、更新装置１は、更新プログラムの不要な更新、または被更新装置２のファームウェアが古いバージョンに更新されるのを防ぐことができる。
【００５５】
（受信処理）
図９は、本実施の形態１に係る被更新装置２における更新プログラムの受信処理の流れの一例を示すフローチャートである。被更新装置２に更新装置１が接続されると、更新プログラムの受信処理が開始される。
【００５６】
ステップＳ２１において、分割データ取得部２０１は、分割データの受信待機状態となる。ステップＳ２２において、分割データ取得部２０１は、分割データを受信すると、受信した分割データをデータ検証部２０２に供給する。
【００５７】
ステップＳ２３において、データ検証部２０２は、受け取った分割データに含まれる誤り検出訂正情報を用いて、分割データ単位で当該分割データが正常であるか否かを検証する。データ検証部２０２によって分割データが正常であると判断した場合（ステップＳ２３；Ｙｅｓ）、応答送信制御部２０３は、ステップＳ２４において、分割データが正常であることを示す受信応答を生成し、更新装置１に対して送信する。なお、分割データが正常であると判断される場合とは、誤り検出符号によって分割データの誤りが検出されなかった場合、または、誤り訂正符号によって誤りが検出され、かつ誤りを訂正できた場合である。
【００５８】
一方、データ検証部２０２によって分割データが異常であると判断した場合（ステップＳ２３；Ｎｏ）、応答送信制御部２０３は、ステップＳ２５において、分割データが異常であることを示す受信応答を生成し、更新装置１に対して送信する。そして、処理がステップＳ２１に戻る。なお、分割データが異常であると判断される場合とは、誤り検出符号によって分割データの誤りが検出された場合、または、誤り訂正符号によって誤りが検出され、かつ誤りを訂正できなかった場合である。
【００５９】
ステップＳ２６において、データ結合部２０４は、すべての分割データを受信したか否かを判断する。すべての分割データが受信された場合（ステップＳ２６；Ｙｅｓ）、データ結合部２０４は、ステップＳ２７において、受信したすべての分割データを結合し、ファームウェアの更新プログラムを生成する。一方、すべての分割データが受信されていない場合（ステップＳ２６；Ｎｏ）には、処理がステップＳ２１に戻り、次の分割データの受信待機状態となる。
【００６０】
なお、この例において、データ結合部２０４は、すべての分割データを取得した場合に分割データを結合しているが、これはこの例に限られない。例えば、分割データを取得するたびに、データ結合部２０４は、受信した分割データを順次結合してもよい。
【００６１】
上述の説明において、データ分割部１０２によって更新プログラムの分割処理が行われるようにしているが、これに限られず、例えば、外部機器によって更新プログラムの分割処理が予め行われるようにしてもよい。具体的には、外部機器には、更新プログラムを分割するための分割アプリケーションが予めインストールされる。外部機器では、分割アプリケーションによって更新プログラムの分割処理が行われる。分割アプリケーションは分割機能を有し、分割機能によって更新プログラムを設定データ量単位で複数の分割データに分割する。この場合、更新装置１は、外部機器から分割データを取得し、取得した分割データを被更新装置２に対して送信する。
【００６２】
以上のように、本実施の形態１に係る更新システム１００において、更新装置１は、被更新装置２におけるファームウェアの更新プログラムを複数の分割データに分割し、被更新装置２に対して送信する。被更新装置２は、更新装置１から受信した複数の分割データを結合して更新プログラムを生成する。これにより、更新プログラムが複数の分割データとして被更新装置２に対して順次送信されるため、ビット化けまたはビット抜け等の異常が発生してデータを再送する場合でも、異常箇所に対応するデータのみを再送できる。そのため、ネットワークの通信品質が低く、低速であっても、短時間でファームウェアを更新することができる。
【００６３】
また、被更新装置２は、誤り検出訂正情報に基づき、更新装置１から受信した分割データが正常であるか否かを検証する。これにより、分割データ単位でデータの異常が検出されるため、更新プログラム全体でデータの異常を検出する場合と比較して、異常箇所の検出を迅速に行うことができる。
【００６４】
さらに、被更新装置２は、受信した分割データが正常である場合に、分割データが正常であることを示す受信応答を更新装置１に対して送信し、受信した分割データが異常である場合に、分割データが異常であることを示す受信応答を更新装置１に対して送信する。
更新装置１は、分割データが正常であることを示す受信応答を被更新装置２から受信した場合に、次の分割データを送信し、分割データが異常であることを示す受信応答を被更新装置２から受信した場合に、送信した分割データを再送する。これにより、被更新装置２が必要とする分割データが判断されるため、更新装置１は、被更新装置２が必要とする分割データを確実に送信することができる。また、分割データに異常が発見された場合には、異常が発見された分割データのみが再送されるため、更新プログラム全体を再送する場合と比較して、再送時間が短くなり、ファームウェアの更新に必要な総所要時間を短縮することができる。
【００６５】
さらにまた、更新装置１は、分割データが異常であることを示す受信応答を受け取った場合に、設定回数に達するまで送信した分割データを再送する。これにより、更新装置１は、被更新装置２に対して正常な分割データを確実に送信することができる。
【００６６】
実施の形態２．
次に、本発明の実施の形態２に係る更新システムについて説明する。本実施の形態２では、被更新装置２におけるファームウェアの更新プログラムを、機能毎に予め分割する点で、実施の形態１と相違する。なお、以下の説明において、実施の形態１と共通する構成には同一の符号を付し、詳細な説明を省略する。
【００６７】
被更新装置２のファームウェアを更新する場合、ファームウェア全体を更新する必要がない場合がある。例えば、ファームウェアには、実行プログラムとアイコン画像などの各種データとが含まれており、このうち、実行プログラムは変更せず、データのみを変更する場合などである。このような場合、実行プログラムの更新は不要となる。
【００６８】
そこで、本実施の形態２において、更新装置１は、ファームウェアの更新プログラムを機能毎に予め分割して保持し、被更新装置２が必要とする機能に対応する更新プログラムのみを被更新装置２に対して送信する。
【００６９】
図１０は、本実施の形態２における更新プログラムの分割について説明するための概略図である。図１０に示すように、外部機器から受信された更新プログラムは、更新装置１において機能毎に分割される。機能毎に分割された更新プログラムには、誤り検出訂正情報が付与される。この例において、更新プログラムは、機能Ａおよび機能Ｂに対応する更新プログラムに分割されている。
【００７０】
そして、更新プログラムを被更新装置２に対して送信する場合、機能毎に分割されたそれぞれの更新プログラムは、実施の形態１と同様に、設定データ量単位で複数のデータに分割される。分割された複数のデータは、複数の分割データのデータ部にそれぞれ格納され、データ部に対してヘッダと誤り検出訂正情報とが付与される。
【００７１】
ここで、更新プログラムを機能毎に分割する場合、更新プログラムは、例えば実行プログラムとデータとに分割される。実行プログラムは、各種の処理を行う際に用いられる実行コードである。データは、例えば、アイコン画像、フォントデータ、音声データ、画像データまたは多言語対応用の言語定義などを含むものである。なお、更新プログラムの分割方法は、この例に限定されるものではない。
【００７２】
更新装置１のデータ分割部１０２は、被更新装置２に対してファームウェアの更新プログラムを送信する際に、予め分割された更新プログラムのうち、被更新装置２が更新を必要とする機能に対応する更新プログラムを分割して複数の分割データを生成する。そして、送信制御部１０３は、分割された複数の分割データを被更新装置２に対して送信する。なお、機能毎に分割された更新プログラムのデータ量が、例えば設定データ量単位以下である場合など十分に小さい場合、更新装置１は、更新プログラムをさらに複数の分割データに分割せずに、そのままのデータ量で被更新装置２に送信してもよい。
【００７３】
なお、上述した例では、更新プログラムが機能毎に分割されるように説明したが、これに限られず、例えば、各機能の更新頻度に応じて更新プログラムが分割されてもよい。フォントデータなどは更新頻度が低く、ファームウェアを更新する度に必ず更新されるものではない。そこで、更新装置１は、外部機器から受信された更新プログラムを、フォントデータなどの更新頻度が低いデータと、更新頻度が高いデータとに分割する。
【００７４】
また、例えば、分割データのバージョンに応じて分割データが送信されてもよい。例えば、更新装置１は、更新プログラムを複数の分割データに分割し、それぞれの分割データにバージョン情報を付与する。そして、更新装置１は、更新プログラムを最新バージョンの分割データとそれ以外の分割データとに分類し、最新バージョンの分割データからなる更新プログラムのみを被更新装置２に対して送信する。
【００７５】
具体的には、まず、データ分割部１０２は、更新プログラムを分割して複数の分割データを生成した際に、生成した分割データに対してバージョン情報を付与する。バージョン情報は、例えば、分割データのヘッダに記述される。
【００７６】
次に、データ分割部１０２は、記憶部１３に記憶された直近に送信された分割データの内容と、送信しようとしている分割データの内容とを比較する。比較の結果、分割データの内容が一致しない場合には、データ分割部１０２は、当該分割データが最新バージョンであるものとして、記憶部１３に記憶された分割データよりもバージョンが新しいことを示すバージョン情報を送信する分割データに付与する。一方、分割データの内容が一致する場合、データ分割部１０２は、当該分割データが過去に送信した分割データと同一であるものとして、過去の分割データと同一のバージョン情報を分割データに付与する。
【００７７】
そして、データ分割部１０２は、バージョンが新しいと判断した分割データを被更新装置２に送信すべきデータとし、当該分割データを被更新装置２に送信する。このように、バージョンが新しいと判断された分割データのみが被更新装置２に送信されることにより、更新装置１は、更新プログラム不要な更新、または被更新装置２のファームウェアが古いバージョンに更新されるのを防ぐことができる。
【００７８】
以上のように、本実施の形態２に係る更新システム１００において、更新装置１は、更新プログラムを機能毎に予め複数に分割して保持し、被更新装置２が更新を必要とする機能に対応する更新プログラムのみを被更新装置２に送信する。これにより、ファームウェア全体の更新プログラムを送信する場合と比較して、より短時間でファームウェアを更新することができる。
【００７９】
以上、本発明の実施の形態１および２について説明したが、本発明は、上述した本発明の実施の形態１および２に限定されるものではなく、本発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。例えば、更新装置１は、更新プログラムの送受信をバックグラウンドで行ってもよい。更新装置１と被更新装置２との間で通信を行い、更新プログラムの送受信が行われている場合、更新プログラムのデータ量が大きいと通信時間が長時間となる。そのため、更新装置１は当該通信に拘束され、他の操作を行うことが困難となる場合がある。このような場合に、更新プログラムの送受信がバックグラウンドで行われることにより、更新装置１は、被更新装置２との通信による他の操作に対する影響を抑えることができる。
【００８０】
また、更新装置１と被更新装置２とは近距離無線通信を行うため、更新装置１が被更新装置２との無線範囲外に出てしまい、更新プログラムの分割データの送信中に通信が遮断される場合がある。このような場合、更新装置１は、通信が再開された際に、どの分割データを被更新装置２に送信すべきかを判断し、分割データの送信を再開するようにしてもよい。
【００８１】
具体的には、更新装置１は、通信が遮断された場合に、送受信していた分割データのヘッダに記述された識別情報を記憶部１３に記憶する。そして、更新装置１は、通信が再開された場合に、記憶部１３から識別情報を読み出し、読み出した識別情報に基づき、送信を再開する分割データを判断する。これにより、更新装置１は、分割データの送受信中に通信が遮断された場合でも、次に送信すべき分割データを判断することができ、分割データを最初から送信し直すことなどによる通信の長時間化を抑制することができる。
【００８２】
さらに、被更新装置２におけるファームウェアの更新は、被更新装置２または被更新装置２によって操作される機器などが使用されない時間帯に行われるようにしてもよい。例えば、被更新装置２が空調機を操作するためのリモートコントローラである場合、ファームウェアの更新は、空調機が設置された店舗等の営業時間外または会社等の就業時間外といった空調機の稼働時間外に行われるとよい。また、例えば、ファームウェアの更新は、予約システム等のスケジュール機能から取得した空き時間などの空調稼働予定外の時間を利用して行われてもよい。
【符号の説明】
【００８３】
１  更新装置、２  被更新装置、１０  制御装置、１１  接続インターフェース、１２  第１の通信インターフェース、１３  記憶部、１４  表示部、１５  操作部、２０  制御装置、２１  第２の通信インターフェース、２２  記憶部、２３  表示部、２４  操作部、１００  更新システム、１０１  更新プログラム取得部、１０２  データ分割部、１０３  送信制御部、１０４  分割データ記憶部、２０１  分割データ取得部、２０２  データ検証部、２０３  応答送信制御部、２０４  データ結合部。
【図１】
2019087295.tif 000003
【図２】
2019087295.tif 000004
【図３】
2019087295.tif 000005
【図４】
2019087295.tif 000006
【図５】
2019087295.tif 000007
【図６】
2019087295.tif 000008
【図７】
2019087295.tif 000009
【図８】
2019087295.tif 000010
【図９】
2019087295.tif 000011
【図１０】
2019087295.tif 000012
【国際調査報告】
2019087295.tif 000013
2019087295.tif 000014
2019087295.tif 000015
2019087295.tif 000016