(57)【要約】【課題】  プログラム更新の対象装置が更新データを用いてプログラム更新する際、更新されたプログラムの誤り有無を確認し、プログラム更新後の記憶部の余剰領域の正常性を確認することを可能とする。【解決手段】  情報処理装置は、情報処理端末の記憶部に保持される更新プログラムと、誤り検出符号データとから更新データを作成する処理部を備え、誤り検出符号データは、更新プログラムと、情報処理端末の記憶部における余剰領域を示すデータとから導出される。また情報処理端末は、更新データに含まれる更新プログラムを記憶部に保持してプログラムを更新する更新部と、記憶部に保持された更新プログラムと、記憶部における余剰領域を示すデータと、更新データに含まれる誤り検出符号データとを用いて、記憶部に保持された更新プログラムと記憶部の余剰領域の正常性を検証する検証部を備える。【選択図】  図５
2019179308.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを記憶する記憶部を備える情報処理端末が前記プログラムを更新プログラムに更新する際に用いる更新データを作成する情報処理装置であって、
当該情報処理装置は、
前記更新プログラムを示す第一データと、前記記憶部の余剰領域を示す第二データとを保持する保持部と、
前記第一データと前記第二データとから、前記情報処理端末が前記プログラムを更新する際に誤り検出に用いる第三データを導出し、前記第一データと前記第三データとから前記更新データを作成する処理部、
を備えることを特徴とする情報処理装置。
【請求項２】
前記記憶部の余剰領域を示す前記第二データは、前記記憶部の全領域から、前記情報処理端末が前記記憶部へ前記第一データを書き込む際に要する領域を差し引いた余剰領域を示すものであることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記保持部は作業領域を備え、
前記処理部は、
前記作業領域に、前記記憶部の全領域の大きさに相当する仮想領域を設ける設定部と、
前記仮想領域に前記第一データと、前記余剰領域を埋めるダミーデータとを書き込む第一の書き込み部と、
前記仮想領域に書き込まれた前記第一データと前記ダミーデータとの全体に対して前記第三データを導出する導出部と、
前記仮想領域に前記第三データを書き込む第二の書き込み部と、
前記仮想領域に書き込まれた前記第一データと、前記ダミーデータと、前記第三データとのうち、前記第一データと前記第三データを維持して前記ダミーデータを削除する削除部と、
を備えることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第一の書き込み部は、前記仮想領域の全領域に前記ダミーデータを書き込み、書き込まれた前記ダミーデータの一部を前記第一データに上書きし、
前記第二の書き込み部は、前記ダミーデータの一部を前記第三データに上書きし、
前記削除部は、前記第一データと前記第三データが書き込まれた前記仮想領域における前記ダミーデータの残分を削除する、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記保持部は、アドレスによって情報が保持される位置が管理されるものであり、
前記処理部は、前記作業領域に前記アドレスの範囲を指定して前記仮想領域を設定し、
前記第一の書き込み部は、前記仮想領域の先頭アドレスから末尾アドレスにかけて前記ダミーデータの一部を前記第一データに上書きし、
前記第二の書き込み部は、前記仮想領域の末尾アドレスと前記第三データの末尾アドレスが一致するよう前記ダミーデータの一部を前記誤り検出符号データに上書きし、
前記削除部は、前記仮想領域に書き込まれた前記第一データの末尾アドレスと前記第三データの先頭アドレスとの間に存在する前記ダミーデータを削除し、前記仮想領域において前記第一データと前記第三データを隣接して配置する、
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記第一データを取得する第一の取得部と、
前記記憶部の全領域の大きさを示す第四データを取得する第二の取得部と、
を備えることを特徴とする請求項３から５のいずれか一項に記載の情報処理装置。
【請求項７】
前記情報処理装置は記憶装置と接続され、
前記第一の取得部は前記記憶装置から前記第一データを取得し、前記第二の取得部は前記記憶装置から前記第四データを取得する、
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記情報処理装置は、前記第一データを作成する作成部を備え、
前記保持部は前記第四データを保持し、
前記第一の取得部は前記作成部から前記第一データを取得し、前記第二の取得部は前記保持部から前記第四データを取得する、
ことを特徴とする請求項６に記載の情報処置装置。
【請求項９】
自装置のプログラムを情報処理装置で作成された更新データを用いて更新する情報処理端末であって、
当該情報処理端末は、
前記プログラムを記憶する記憶部と、
前記更新データを取得する取得部と、
前記プログラムを前記更新データに含まれる更新プログラムに書き換え、前記更新プログラムへの書き換え後における前記記憶部の余剰領域を示す余剰領域データを導出する更新部と、
前記記憶部に記憶された前記更新プログラムと、前記余剰領域データと、前記更新データに含まれる第一の誤り検出データとを用い、前記記憶部に記憶された前記更新プログラムと前記記憶部における前記余剰領域の正常性を検証する検証部、
を備えることを特徴とする情報処理端末。
【請求項１０】
前記余剰領域データは、前記記憶部に前記更新プログラムが保持された状態における前記記憶部の余剰領域を示すものである、ことを特徴とする請求項６に記載の情報処理端末。
【請求項１１】
前記更新部は、
前記記憶部に前記更新プログラムと、前記余剰領域を埋めるダミーデータとを書き込む書き込み部と、
前記記憶部に書き込まれた前記更新プログラムと前記ダミーデータとの全体に対して第二の誤り検出データを導出する導出部と、
を備え、
前記検証部は、前記更新データに含まれる前記第一の誤り検出データと、前記導出部により導出された前記第二の誤り検出データとを比較して、前記記憶部に保持された前記更新プログラムと前記記憶部の前記余剰領域の正常性を検証する、
ことを特徴とする請求項７に記載の情報処理端末。
【請求項１２】
前記記憶部は、アドレスによって情報が保持される位置が管理されるものであり、
前記書き込み部は、前記記憶部の全領域に前記ダミーデータを書き込み、前記記憶部の全領域の先頭アドレスから末尾アドレスにかけて前記ダミーデータの一部を前記更新プログラムデータに上書きする、ことを特徴とする請求項８に記載の情報処理端末。
【請求項１３】
前記更新データから前記更新プログラムおよび前記誤り検出データを抽出する抽出部を備えることを特徴とする請求項７から１０のいずれか一項に記載の情報処理端末。
【請求項１４】
前記情報処理端末は前記情報処理装置と接続され、
前記取得部は前記情報処理装置から前記更新データを取得する、請求項７から１３のいずれか一項に記載の情報処理端末。
【請求項１５】
前記情報処理端末は、前記更新データを記憶する記憶装置と接続され、前記取得部は前記記憶装置から前記更新データを取得する、請求項７から１３のいずれか一項に記載の情報処理端末。
【請求項１６】
請求項１に記載の情報処理装置と、請求項７に記載の情報処理端末とを含む情報処理システムであって、
前記情報処理装置は、前記情報処理装置で作成された前記更新データを前記情報処理端末へ送信する送信手段を備え、
前記情報処理端末は、前記情報処理装置から前記更新データを受信する受信手段を備える、
ことを特徴とする情報処理システム。
【請求項１７】
プログラムを記憶する記憶部を備える情報処理端末が前記プログラムを更新プログラムに更新する際に用いる更新データを作成する情報処理装置側プログラムであって、コンピュータを、
前記更新プログラムを示す第一データと、前記記憶部の余剰領域を示す第二データとを保持する保持手段、
前記第一データと前記第二データとから、前記情報処理端末が前記プログラムを更新する際に誤り検出に用いる第三データを導出し、前記第一データと前記第三データとから前記更新データを作成する処理手段、
として機能させることを特徴とする情報処理装置側プログラム。
【請求項１８】
自装置のプログラムを情報処理装置で作成された更新データを用いて更新する情報処理端末側プログラムであって、コンピュータを、
前記プログラムを記憶する記憶手段、
前記更新データを取得する取得手段、
前記プログラムを前記更新データに含まれる更新プログラムに書き換え、前記更新プログラムへの書き換え後における前記記憶手段の余剰領域を示す余剰領域データを導出する更新手段、
前記記憶手段に記憶された前記更新プログラムと、前記余剰領域データと、前記更新データに含まれる第一の誤り検出データとを用い、前記記憶手段に記憶された前記更新プログラムと前記記憶手段における前記余剰領域の正常性を検証する検証手段、
として機能させることを特徴とする情報処理端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理端末、情報処理システム、情報処理装置側プログラムおよび情報処理端末側プログラムに関する。
【背景技術】
【０００２】
サーバなどの上位装置、各種通信機器などの端末装置、およびゲートウェイなどの上位装置と端末装置とを接続する中継装置を含む通信ネットワークが構築され、運用されている。
【０００３】
このような通信ネットワークの端末装置において、例えば端末装置の機能追加や機能改修を目的として、端末装置が実行するプログラムを更新することがある。ここで上位装置と端末装置（プログラム更新の対象装置）の対向関係において、上位装置が端末装置に更新データを送信して与え、端末装置は受信した更新データを用いてプログラム更新を行うことが知られている。そして端末装置のプログラム更新において、端末装置が、更新されたプログラムに誤りが生じていないかを確認することが知られている。
【０００４】
更新されたプログラムに誤りが生じていないかを確認するために、端末装置（更新データの受信側）へ送信する更新データに、更新プログラムデータと誤り検出符号を含ませる従来の方法がある。例えば図１１に示すように、更新データ１１０は更新プログラムデータ１１１（図１１では縦縞として図示）と誤り検出符号１１２（図１１では菱形模様として図示）を含んでいる。この誤り検出符号１１２は、更新プログラムデータ１１１に対して導出されたものである。従来の方法において端末装置は、更新データ１１０を受信すると、更新プログラムデータ１１１を抽出して自端末の記憶部に書き込み、記憶部に書き込まれた更新プログラムデータに対して誤り検出符号を導出する。そして端末装置は、自端末が導出した誤り検出符号と、更新データから抽出した誤り検出符号１１２とを比較し、双方が一致していれば、更新プログラムデータ１１１が正しく記憶部に書き込まれ、更新されたプログラムに誤りが生じていないことを確認する。
【０００５】
このように、プログラム更新の対象装置に与える更新データに、更新プログラムデータと誤り検出符号とを含ませ、対象装置が誤り検出符号を用いてプログラム更新が正しく行われた否かを確認する技術として、例えば特許文献１がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−１７５４７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように、プログラム更新の対象装置に更新データを用いて機能を追加することがある。そのため、プログラム更新の対象装置においてプログラムが格納されるフラッシュメモリなどの記憶部は、機能追加によってプログラムの情報量が増加しても対応可能なように、記憶部に未使用の余剰領域が設けられている。
【０００８】
そのため、プログラム更新の対象装置において、与えられた更新データを用いてプログラムを更新する際、プログラムが正しく更新されたかどうかの確認をすること、プログラム更新後の記憶部における余剰領域の正常性を確認することが求められている。なお余剰領域の正常性とは、記憶部の余剰領域に故障などが生じていないことを指す。
【０００９】
上述の特許文献１は、プログラム更新の対象装置が、対象装置が備える記憶部の余剰領域を考慮して誤り検出符号を算出し、この誤り検出符号を用いて記憶部に書き込まれた更新プログラムの誤り有無を確認することを説明するが、プログラム更新後における記憶部の余剰領域の正常性を確認することについては何ら考慮しない。
【００１０】
本発明はこのような事情を考慮してなされたものであり、プログラム更新の対象装置が更新データを用いてプログラム更新する際、更新されたプログラムの誤り有無を確認し、プログラム更新後の記憶部の余剰領域の正常性を確認することが可能な情報処理装置、情報処理端末、情報処理システム、情報処理装置側プログラムおよび情報処理端末側プログラムを提案するものである。
【課題を解決するための手段】
【００１１】
第一の本発明は、プログラムを記憶する記憶部を備える情報処理端末が前記プログラムを更新プログラムに更新する際に用いる更新データを作成する情報処理装置であって、当該情報処理装置は、前記更新プログラムを示す第一データと、前記記憶部の余剰領域を示す第二データとを保持する保持部と、前記第一データと前記第二データとから、前記情報処理端末が前記プログラムを更新する際に誤り検出に用いる第三データを導出し、前記第一データと前記第三データとから前記更新データを作成する処理部を備えることを特徴とする。
【００１２】
第二の本発明は、自装置のプログラムを情報処理装置で作成された更新データを用いて更新する情報処理端末であって、当該情報処理端末は、前記プログラムを記憶する記憶部と、前記更新データを取得する取得部と、前記プログラムを前記更新データに含まれる更新プログラムに書き換え、前記更新プログラムへの書き換え後における前記記憶部の余剰領域を示す余剰領域データを導出する更新部と、前記記憶部に記憶された前記更新プログラムと、前記余剰領域データと、前記更新データに含まれる第一の誤り検出データとを用い、前記記憶部に記憶された前記更新プログラムと前記記憶部における前記余剰領域の正常性を検証する検証部を備えることを特徴とする。
【００１３】
第三の本発明は、第一の本発明の情報処理装置と、第二の本発明の情報処理端末とを含む情報処理システムであって、前記情報処理装置は、前記情報処理装置で作成された前記更新データを前記情報処理端末へ送信する送信手段を備え、前記情報処理端末は、前記情報処理装置から前記更新データを受信する受信手段を備えることを特徴とする。
【００１４】
第四の本発明は、プログラムを記憶する記憶部を備える情報処理端末が前記プログラムを更新プログラムに更新する際に用いる更新データを作成する情報処理装置側プログラムであって、コンピュータを、前記更新プログラムを示す第一データと、前記記憶部の余剰領域を示す第二データとを保持する保持手段、前記第一データと前記第二データとから、前記情報処理端末が前記プログラムを更新する際に誤り検出に用いる第三データを導出し、前記第一データと前記第三データとから前記更新データを作成する処理手段として機能させることを特徴とする。
【００１５】
第五の本発明は、自装置のプログラムを情報処理装置で作成された更新データを用いて更新する情報処理端末側プログラムであって、コンピュータを、前記プログラムを記憶する記憶手段、前記更新データを取得する取得手段、前記プログラムを前記更新データに含まれる更新プログラムに書き換え、前記更新プログラムへの書き換え後における前記記憶手段の余剰領域を示す余剰領域データを導出する更新手段、前記記憶手段に記憶された前記更新プログラムと、前記余剰領域データと、前記更新データに含まれる第一の誤り検出データとを用い、前記記憶手段に記憶された前記更新プログラムと前記記憶手段における前記余剰領域の正常性を検証する検証手段として機能させることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、プログラム更新の対象装置が更新データを用いてプログラム更新する際、更新されたプログラムの誤り有無を確認し、プログラム更新後の記憶部の余剰領域の正常性を確認することが可能な情報処理装置、情報処理端末、情報処理システム、情報処理装置側プログラムおよび情報処理端末側プログラムが提供される。
【図面の簡単な説明】
【００１７】
【図１】無線通信ネットワーク１の全体構成を示す構成図である。
【図２】管理装置２の内部構成を示す機能ブロック図である。
【図３】ＧＷ装置３の内部構成を示す機能ブロック図である。
【図４】無線端末４の内部構成を示す機能ブロック図である。
【図５】無線通信ネットワーク１における更新データの送受信の流れを示すシーケンス図である。
【図６】管理装置２による更新データ作成の動作を示すフローチャートである。
【図７】管理装置２による更新データ作成を表す概念図である。
【図８】無線端末４によるプログラム更新の動作を示すフローチャートである。
【図９】無線端末４によるプログラム更新を表す概念図である。
【図１０】管理装置２による更新完了処理の動作を示すフローチャートである。
【図１１】従来の方法による更新データを示す概念図である。
【発明を実施するための形態】
【００１８】
本発明の実施形態を、図１から図１０を参照して説明する。
【００１９】
（Ａ）ハードウェア
（Ａ−１）無線システムの全体構成
図１は無線通信ネットワーク１の全体構成を示す構成図である。図１において無線通信ネットワーク１は、管理装置２、ゲートウェイ（ＧＷ）装置３（ＧＷ：Ｇａｔｅｗａｙを略し以降、ＧＷ装置３と称する）、複数の無線端末４を含む。無線端末４の個数は任意のｎ個（ｎは１以上の整数）であってよい。図１においては説明のため無線端末４の個数を４個（ｎ＝４）としている。なお以後の説明では、無線端末のうち何れか一つを指定する場合は無線端末４−１などと呼称し、無線端末の何れかを指定しない場合は無線端末４と呼称する。
【００２０】
管理装置２はＧＷ装置３と接続される。管理装置２は、複数の無線端末４からＧＷ装置３へ送信される各種データを集約して管理し、また無線通信ネットワーク１を保守管理するために設けられる。管理装置２は無線通信ネットワーク１の管理者が操作可能なパーソナルコンピュータ等の機器で実現される。また管理装置２は、無線端末４に格納されるプログラムを更新するための更新データを作成する。管理装置２による更新データ作成の詳細は後述する。ここで無線端末４に格納されるプログラムは、例えば無線端末４のハードウェア構成を制御するファームウェアである。
【００２１】
ＧＷ装置３は管理装置２と接続され、また無線端末４の何れか一つと接続される。図１においてＧＷ装置３は無線端末４−１と接続される。ＧＷ装置３は無線端末４同士を接続する通信経路を決定する。またＧＷ装置３は、管理装置２から無線端末４へ送信される下りデータを中継し、無線端末４から管理装置２へ送信される上りデータを中継する。ＧＷ装置３はこれら下りデータ、上りデータの中継に際し、通信プロトコルの変換を行うものであってもよい。
【００２２】
無線端末４は、複数の無線端末４のうち１つがＧＷ装置３と接続され、無線端末４同士は無線により相互に接続される。図１においては無線端末４−１が親局としてＧＷ装置３と接続され、無線端末４−１から無線端末４−４が無線にて相互に接続される。無線端末４は各種センサーを搭載し屋内や屋外に設置され、センサーの検出情報をＧＷ装置３に送信する。また無線端末４は、管理装置２から受信する更新データに基づいて、自端末のプログラムを更新することができる。無線端末４によるプログラム更新の詳細は後述する。
【００２３】
図１において、各装置を結ぶ実線は有線による接続を示し、各装置を結ぶ点線は無線による接続を示す。上述のとおり管理装置２とＧＷ装置３は有線で接続され、またＧＷ装置３と無線端末４−１は有線で接続される。無線端末４−１から無線端末４−４は相互に無線で接続される。
【００２４】
無線端末４−１から無線端末４−４との間では、例えばＩＥＥＥ８０２．１５．４に準拠したＺｉｇＢｅｅ規格（ＺｉｇＢｅｅは登録商標）で規定されるマルチホップ通信が可能であり、無線端末４−１から無線端末４−４のそれぞれは、自端末から他端末へ向けたデータ送信に加え、他の無線端末からのデータ中継を行う。下りデータ送信において、例えば無線端末４−１から無線端末４−４へデータを送信する場合、無線端末４−２および無線端末４−３がデータを中継する。上りデータ送信において、例えば無線端末４−４から無線端末４−１へデータを送信する場合、下りデータ送信と同様に無線端末４−２および無線端末４−３がデータを中継する。
【００２５】
図１において、無線端末４−１から無線端末４−４のそれぞれは、点線で示す通信経路によって直列に接続されているが、この接続関係は一例である。例えば無線端末４−１から４−４がメッシュ型の接続関係であっても良いし、無線端末４−１を中心として無線端末４−２から４−３がスター型に接続されていても良く、その他の接続関係であってもよい。無線端末４−１から無線端末４−４を接続する通信経路はＧＷ装置３により決定される。上りデータ送信の通信経路は例えばＺｉｇＢｅｅ規格におけるメニー・トゥー・ワン方式で決定され、下りデータ送信の通信経路は例えばＺｉｇＢｅｅ規格におけるソースルーティング方式で決定される。
【００２６】
（Ａ−２）管理装置２、ＧＷ装置３、無線端末４の構成
（Ａ−２−１）管理装置２
図２は管理装置２の内部構成を示す機能ブロック図である。図２において管理装置２は、制御部２１、入出力インタフェース２２、ＬＡＮインタフェース２３、記憶部２４、メインメモリ２５、ユーザーインタフェース２６を有する。
【００２７】
制御部２１は管理装置２の動作を制御するものでありＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）などにより実現される。制御部２１はさらに、取得部２１１、設定部２１２、書き込み部２１３、削除部２１４、誤り検出符号算出部２１５を有する。取得部２１１は、更新データに含める更新プログラムデータを例えば入出力インタフェース２２から取得する。設定部２１２は、メインメモリ２５上に更新データ作成のための仮想領域を設定する。書き込み部２１３は、メインメモリ２５へのデータ書き込みを行う。削除部２１４は、メインメモリ２５に書き込まれたデータの削除を行う。誤り検出符号算出部２１５は、更新データがメインメモリ２５上で作成される過程で誤り検出符号を算出する。これら取得部２１１、設定部２１２、書き込み部２１３、削除部２１４、誤り検出符号算出部２１５の動作により更新データが作成され、更新データには更新プログラムデータおよび誤り検出符号が含まれる。制御部２１の動作の詳細は後述する。
【００２８】
入出力インタフェース２２は、例えば既存のＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格に準拠したインタフェースである。例えば、管理装置２であるパーソナルコンピュータに備え付けられたＵＳＢインタフェースであり、入出力インタフェース２２を経由して外部から各種データが管理装置２へ与えられる。
【００２９】
ＬＡＮインタフェース２３は、管理装置２とＧＷ装置３とを接続しＬＡＮ（Ｌｏｃａｌ Ａｒｅａ Ｎｅｔｗｏｒｋ）を構築するインタフェースである。例えば既存のＥｔｈｅｒｎｅｔ規格に準拠したネットワークアダプタで実現される。ＬＡＮインタフェース２３は下り通信において各種データをＧＷ装置３へ送信し、上り通信においてＧＷ装置３から各種データを受信する。
【００３０】
記憶部２４は、管理装置２を動作させるための各種プログラムを格納する。記憶部２４はＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などで実現される。記憶部２４に格納される各種プログラムは、制御部２１が更新データを作成するためのプログラムを含む。
【００３１】
メインメモリ２５は、管理装置２の動作において一時記憶装置として使用される。メインメモリ２５はＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）などのメモリーで実現される。制御部２１はメインメモリ２５を用いて更新データを作成する。
【００３２】
ユーザーインタフェース２６は、無線通信ネットワーク１の管理者が管理装置２を操作するための周辺機器であり、例えば入力装置としてのキーボードやマウスなどで実現される。
【００３３】
請求項との対応関係において、管理装置２が情報処理装置に対応する。また管理装置２における各機能部と請求項との対応関係において、記憶部２４およびメインメモリ２５が保持部に相当する。制御部２１が処理部に対応する。取得部２１１が第一の取得部および第二の取得部に対応する。設定部２１２が設定部に対応する。書き込み部２１３が第一の書き込み部、第二の書き込み部に対応する。誤り検出符号算出部が導出部に対応する。削除部２１４が削除部に対応する。
【００３４】
（Ａ−２−２）ＧＷ装置３
図３はＧＷ装置３の内部構成を示す機能ブロック図である。図３においてＧＷ装置３は制御部３１、入出力インタフェース３２、ＬＡＮインタフェース３３、記憶部３４、メインメモリ３５を有する。
【００３５】
制御部３１はＧＷ装置３の動作を制御するものでありＣＰＵなどにより実現される。制御部３１はＧＷ装置３の機能である、無線端末４同士を接続する通信経路の設定、管理装置２から無線端末４への下りデータおよび無線端末４から管理装置２への上りデータの中継、および中継に際しての通信プロトコルの変換を実行する。
【００３６】
入出力インタフェース２２は例えば既存のＵＳＢ規格に準拠したインタフェースである。例えば、ＧＷ装置３と無線端末４−１は入出力インタフェース３２によって接続され、接続にはＵＳＢ規格に準拠したケーブルが用いられる。
【００３７】
ＬＡＮインタフェース３３は管理装置２とＧＷ装置３とを接続するインタフェースである。例えば既存のＥｔｈｅｒｎｅｔ規格に準拠したネットワークアダプタで実現され、管理装置２とＧＷ装置３の接続にはＬＡＮケーブルが用いられる。
【００３８】
記憶部３４は管理装置２を動作させるための各種プログラムを格納する。記憶部３４はＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリなどの不揮発メモリーで実現される。記憶部３４に格納される各種プログラムは、制御部３１がＧＷ装置３の機能を実現するためのプログラムを含む。
【００３９】
メインメモリ３５は、ＧＷ装置３の動作において一時記憶装置として使用される。メインメモリ３５はＲＡＭなどのメモリーで実現される。
【００４０】
（Ａ−２−３）無線端末４
図４は無線端末４の内部構成を示す機能ブロック図である。図４において無線端末４は制御部４１、無線インタフェース４２、入出力インタフェース４３、記憶部４４、メインメモリ４５、センサー４６、アンテナ４７を有する。
【００４１】
制御部４１は無線端末４の動作を制御するものでありＣＰＵなどにより実現される。制御部４１はさらに更新部４１１と検証部４１２を有する。更新部４１１は管理装置２から受信した更新データに基づき、無線端末４の記憶部４４に格納されたプログラムの更新を行う。検証部４１２は、更新部４１１によるプログラムの更新が正常に行われたかを検証する。
【００４２】
更新部４１１はさらに、抽出部４１１１、書き込み部４１１２、誤り検出符号算出部４１１３を有する。抽出部４１１１は、管理装置２から受信した更新データから更新プログラムデータと誤り検出符号を抽出する。書き込み部４１１２は記憶部４４へ更新プログラムデータの書き込みを行う。誤り検出符号算出部４１１３は更新プログラムデータが書き込まれた記憶部４４に対して第二の誤り検出符号を算出する。更新部４１１の抽出部４１１１、書き込み部４１１２、誤り検出符号算出部４１１３を含む更新部４１１および検証部４１２の動作の詳細は後述する。
【００４３】
無線インタフェース４２は無線端末４と他の無線端末４を相互に無線接続するものである。無線端末４は無線インタフェース４２を経由して他の無線端末４との間でデータの送受信を行う。なお無線インタフェース４２はアンテナ４７と接続される。例えば、無線インタフェース４２は、ＩＥＥＥ８０２．１５．４に準拠したマルチホップ通信に対応し、例えばＩＥＥＥ８０２．１５．４に準拠したデータの送受信を行う。
【００４４】
ここで無線インタフェース４２は、単位時間あたりの送信時間を考慮したデータの送受信を行う。例えば単位時間を１時間とすると、無線インタフェース４２は、アンテナ４７で周波数９２０．５〜９２３．５ＭＨｚで送信出力２５０ｍＷ以下の電波を送出する場合、送信時間の総和を４００ｍｓ（３６０ｓ／ｈ以下）となるようデータの送受信を行う。また無線インタフェース４２は、アンテナ４７で周波数９２０．５〜９２３．５ＭＨｚで送信出力２０ｍＷ以下の電波を送出する場合、送信時間の総和を４００ｍｓ（３６０ｓ／ｈ以下）となるようデータの送受信を行う。また無線インタフェース４２は、アンテナ４７で周波数９２３．５〜９２８．１ＭＨｚで送信出力２０ｍＷ以下の電波を送出する場合、送信時間の総和を４００ｍｓ（３６０ｓ／ｈ以下）となるようデータの送受信を行う。また無線インタフェース４２は、アンテナ４７で周波数９１５．９〜９２９．７ＭＨｚで送信出力１ｍＷ以下の電波を送出する場合、送信時間の総和を１００ｍｓ（３．６／ｈ以下）となるようデータの送受信を行う。
【００４５】
入出力インタフェース４３は例えば既存のＵＳＢ規格に準拠したインタフェースである。例えば、ＧＷ装置３と無線端末４−１は入出力インタフェース３２によって接続され、接続にはＵＳＢ規格に準拠したケーブルが用いられる。なお無線端末４が親局（図１の無線端末４−１）として使用される場合は入出力インタフェース４３が使用され、他の無線端末（図１の無線端末４−２〜４−４）として使用される場合は、入出力インタフェース４３は使用されない。
【００４６】
記憶部４４は無線端末４を動作させるための各種プログラムを格納する。ここで無線端末４に格納されるプログラムは、上述のとおり例えば無線端末４のハードウェア構成を制御するファームウェアである。記憶部４４はＥＥＰＲＯＭやフラッシュメモリなどの不揮発メモリーで実現される。記憶部４４に格納される各種プログラムは、制御部４１がプログラムを更新するための更新実行プログラムを含む。
【００４７】
メインメモリ４５は無線端末４の動作において一時記憶装置として使用される。メインメモリ４５はＲＡＭなどのメモリーで実現される。なお制御部４１が記憶部４４に格納されるプログラムを更新する場合、更新実行プログラムがメインメモリ４５にコピーされる。
【００４８】
センサー４６は無線端末４の設置環境における各種物理量を計測するものである。センサー４６の種類は限定されず、例えば温度センサーや照度センサー、加速度センサーなどの各種センサーを無線端末４の設置目的に応じて用いてよい。なお無線端末４が親局（図１の無線端末４−１）として使用される場合はセンサー４６が機能せず未使用状態となり（あるいはセンサー４６が搭載されず）、無線端末４が他の無線端末（図１の無線端末４−２〜４−４）として使用される場合はセンサー４６が機能する。
【００４９】
アンテナ４７は無線インタフェース４２と接続され、電波の送受信を行う。
【００５０】
請求項との対応関係において、無線端末４が情報処理端末に対応する。また無線端末４における各機能部と請求項との対応関係において、記憶部４４が記憶部に対応する。更新部４１１が更新部に対応する。検証部４１２が検証部に対応する。抽出部４１１１が抽出部に対応する。書き込み部４１１２が書き込み部に対応する。誤り検出符号算出部４１１３が導出部に対応する。
【００５１】
（Ｂ）動作
図５を参照して無線通信ネットワーク１における更新データの送受信の流れを説明し、図６ないし図１０を参照して管理装置２および無線端末４の動作の詳細を説明する。
【００５２】
（Ｂ−１）更新データ送受信の概略
図５は無線通信ネットワーク１における更新データの送受信の流れを示すシーケンス図である。なお図５は、図１に示す無線端末４−１から無線端末４−４の通信経路がＧＷ装置３により決定されていることを前提とする。
【００５３】
管理装置２は更新データを作成する（図５の５０）。管理装置２は更新データを作成すると更新データを、ＧＷ装置３を経由して無線端末４−１へ送信する（図５の５１）。
【００５４】
次いで、無線端末４−１は管理装置２から更新データを受信すると、ＧＷ装置３によって予め決定された通信経路に従って、更新データを無線端末４−２へ転送する（図５の５２）。また無線端末４−１は受信した更新データに基づき、自端末の記憶部４４に格納されるプログラムを更新する（図５の５３）。プログラム更新を実行すると、無線端末４−１は応答を、ＧＷ装置３を経由して管理装置２へ送信する（図５の５４）。
【００５５】
次いで、親局である無線端末４−１の配下にある無線端末４−２は、無線端末４−１から更新データを受信すると、無線端末４−１と同様に、ＧＷ装置３によって予め決定された通信経路に従って、当該更新データを無線端末４−３へ転送する。また無線端末４−２は受信した更新データに基づき、自端末の記憶部４４に格納されるプログラムを更新する。プログラム更新を実行すると、無線端末４−２は応答を無線端末４−１およびＧＷ装置３を経由して管理装置２へ送信する。
【００５６】
親局の配下にある無線端末４−３および無線端末４−４も、無線端末４−２と同様に更新データを受信し、受信した更新データに基づいて自端末の記憶部４４に格納されるプログラムを更新し、応答を自端末より上位にある無線端末４およびＧＷ装置３を経由して管理装置２へ送信する。
【００５７】
管理装置２は、無線端末４−１から無線端末４−４の全てから応答を受信すると、更新完了処理を行う（図５の５５）。
【００５８】
なお上述のとおり、無線端末４−１から無線端末４−４との間ではマルチホップ通信が行われるので、更新データの転送および応答の送信はマルチホップ通信にて行われる。
【００５９】
（Ｂ−２）管理装置２における更新データの作成
管理装置２が更新データを作成する動作（図５の５０）の詳細を、図６および図７を参照して説明する。
【００６０】
図６は管理装置２による更新データ作成の動作を示すフローチャートである。図７は管理装置２による更新データ作成を表す概念図である。
【００６１】
管理装置２の取得部２１１は無線端末４に適用させる更新プログラムデータを取得する（Ｓ６００）。取得部２１１は、管理装置２の外部装置にて作成された更新プログラムデータを入出力インタフェース２２（例えばＵＳＢ規格に準拠したインタフェース）を経由して取得してもよい。また取得部２１１は、管理装置２の図示しない他の処理部によって作成された更新プログラムデータを、管理装置２内部の情報受け渡しによって取得してもよい。
【００６２】
次に取得部２１１は、無線端末４が備える記憶部４４における書き込み可能な領域のサイズ（以後、便宜的にサイズＸと言う）を取得する（Ｓ６０２）。書き込み可能な領域とは、無線端末４の記憶部４４においてプログラムが書き込まれ得るメモリアドレスの範囲を指す。このメモリアドレスの範囲が例えばＸという値で示されるのであれば、取得部２１１はサイズＸとして値Ｘを取得する。なお取得部２１１は、管理装置２の外部装置から書き込み可能な領域のサイズを、入出力インタフェース２２を経由して取得してもよい。またユーザーインタフェース２６から管理者の入力操作によって当該サイズＸを取得してもよい。また管理装置２の記憶部２４に、無線端末４の機種等の識別情報と記憶部４４におけるサイズＸとの対応関係を予め保持させておき、取得部２１１は記憶部２４からサイズＸを読み出して取得してもよい。なお取得部２１１が更新プログラムデータを取得する取得先と、書き込み可能な領域のサイズを取得する取得先は、管理装置２の外部と管理装置２の内部の何れであってもよく、外部のみ、内部のみ、あるいは外部と内部が組み合わされてもよい。即ち、取得部２１１は更新プログラムデータと書き込み可能な領域のサイズの双方を管理装置２の外部から取得してもよく、取得部２１１は更新プログラムデータと書き込み可能な領域のサイズの双方を管理装置２の内部から取得してもよい。また例えば、取得部２１１は更新プログラムデータを上述のように外部から取得し、書き込み可能な領域のサイズを上述のように記憶部２４（管理装置２の内部）から取得してもよい。あるいは、取得部２１１は更新プログラムデータを管理装置２の図示しない他の処理部（管理装置２の内部）から取得し、書き込み可能な領域のサイズを管理者の入力操作（管理装置２の外部）によって取得してもよい。
【００６３】
次に設定部２１２は、取得部２１１が取得したサイズＸに基づき、メインメモリ２５に仮想領域を設定する（Ｓ６０４）。図７の（１）を参照して説明する。設定部２１２は、メインメモリ２５における任意のアドレスａからアドレスｚまでを仮想領域７０として確保する。仮想領域７０のアドレスａからアドレスｚまでの大きさは、取得部２１１が取得したサイズＸに対応する。換言すると、設定部２１２はメインメモリ２５上に、無線端末４における、情報が書き込まれていない状態の記憶部４４を再現する。
【００６４】
次に書き込み部２１３は、仮想領域７０の全体にダミーパターンを書き込む（Ｓ６０６）。図７の（２）を参照して説明する。書き込み部２１３は、仮想領域７０の先頭を示すアドレスａから末尾を示すアドレスｚの全体に亘り、領域が未使用であることを示すダミーパターン７２（図７では斜線として図示）を書き込む。ここで領域が未使用であるとは、領域に更新プログラムデータやその他の情報が書き込まれていないことを指す。ダミーパターンは予め定められた任意の値でよく、例えば１６進数の０ｘＦＦなどでよい。
【００６５】
次に書き込み部２１３は、仮想領域７０に更新プログラムデータを書き込む（Ｓ６０８）。図７の（２）および（３）を参照して説明する。書き込み部２１３は、ダミーパターン７２（図７の（２））が書き込まれた仮想領域７０の先頭のアドレスａから末尾のアドレスｚに向けて更新プログラムデータを書き込む。この書き込みによってダミーパターン７２の一部は更新プログラムデータによって置換される。図７の（３）において、更新プログラムデータの大きさは仮想領域７０の大きさ以下としている。従って、仮想領域７０のアドレスａからアドレスｂまでに更新プログラムデータ７４（図７では縦縞として図示）が書き込まれ、アドレスｂからアドレスｚまでにダミーパターン７２の残存分であるダミーパターン７６が書き込まれた状態となる。
【００６６】
次に誤り検出符号算出部２１５は、仮想領域７０の全体に対して誤り検出符号を算出する（Ｓ６１０）。図７の（３）を参照して説明する。誤り検出符号算出部２１５は、更新プログラムデータ７４とダミーパターン７６が書き込まれた仮想領域７０の全体、即ちアドレスａからアドレスｂまでの更新プログラムデータ７４と、アドレスｂからアドレスｚまでのダミーパターン７６の双方を合わせたデータに対して誤り検出符号を算出する。誤り検出符号の算出方法は、例えばチェックサム（ｃｈｅｃｋｓｕｍ）を用いることができる。或いは、パリティチェック（ｐａｒｉｔｙ  ｃｈｅｃｋ）やより高精度な巡回冗長検査（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ Ｃｈｅｃｋ）を用いてもよい。但し、管理装置２の誤り検出符号算出部２１５で用いられる方法と同じ方法にて、無線端末４の誤り検出符号算部４１１３が誤り検出符号を算出する。管理装置２の制御部２１（ＣＰＵなど）に比べ、無線端末４に搭載される制御部４１（ＣＰＵなど）は低性能である場合があるので、誤り検出符号の算出が無線端末４に搭載される制御部４１にとって過負荷とならぬよう、管理装置２における誤り検出符号の算出方法を選定する必要がある。
【００６７】
次に書き込み部２１３は、仮想領域７０に誤り検出符号を書き込む（Ｓ６１２）。図７の（４）を参照して説明する。書き込み部２１３は算出された誤り検出符号の末尾が仮想領域７０の末尾を示すアドレスｚに位置するよう、仮想領域７０のアドレスｃからアドレスｚにかけて誤り検出符号を書き込む。この書き込みによってダミーパターン７６の一部は誤り検出符号によって置換される。図７の（４）において、仮想領域７０のアドレスａからアドレスｂまでに更新プログラムデータ７４が書き込まれ、アドレスｂからアドレスｃまでにダミーパターン７６の残存分であるダミーパターン７８が書き込まれ、アドレスｃからアドレスｚに誤り検出符号７１０（図７では市松模様として図示）が書き込まれた状態となる。
【００６８】
次に削除部２１５は、更新プログラムデータ７４および誤り検出符号７１０を維持してダミーパターン７８を削除する（Ｓ６１４）。図７の（４）および（５）を参照して説明する。削除部２１４は更新プログラムデータ７４および誤り検出符号７１０が書き込まれた仮想領域７０における、アドレスｂからアドレスｃまでのダミーパターン７８を削除する。削除部２１４はダミーパターン７８の削除し、図７の（５）に示すように更新プログラムデータ７４の末尾を示すアドレスｂの直後に誤り検出符号７１０を配置する。この時、誤り検出符号７１０の内容は維持される。即ち、図７の（５）に示す誤り検出符号７１０は、誤り検出符号算出部２１５が更新プログラムデータ７４とダミーパターン７６（図７の（３））の双方を合わせたデータに対して算出した誤り検出符号であり、図７の（４）に示す誤り検出符号７１０と同一の内容である。
【００６９】
制御部２１は、更新プログラムデータ７４および誤り検出符号７１０の纏まり、即ち、メインメモリ２５において図７の（５）に示すアドレスａからアドレスｄまでのデータを更新データとする。なお更新プログラムデータ７４と誤り検出符号７１０の分離が可能なように更新データに識別情報が付加される（図示せず）。識別情報は、更新プログラムデータ７４の末尾あるいは誤り検出符号７１０の先頭を示すアドレスや、更新データの先頭アドレスから更新プログラムデータと誤り検出符号との境界アドレスまでの幅（バイト数）を示す情報などである。なお識別情報を更新データに付加せず、管理装置２が別途に識別情報をＧＷ装置３へ送信してもよい。
【００７０】
管理装置２は、図６のフローチャートに従って更新データを作成すると、図５に示すように更新データをＧＷ装置３へ送信する。更新データはＧＷ装置３から無線端末４−１から無線端末４−４へ転送され、各無線端末４にて更新データに基づいたプログラム更新が実行される。
【００７１】
（Ｂ−３）無線端末４におけるプログラム更新
無線端末４が更新データに基づきプログラムを更新する動作（図５の５３）の詳細を、図８および図９を参照して説明する。
【００７２】
図８は無線端末４によるプログラム更新の動作を示すフローチャートである。図９は無線端末４によるプログラム更新を表す概念図である。
【００７３】
無線端末４は更新データを受信する（Ｓ８００）。なお図１に示す無線通信ネットワーク１のうち無線端末４−２から無線端末４−４はアンテナ４７および無線インタフェース４２を経由して他の無線端末４から更新データを受信し、無線端末４−１は入出力インタフェース４３を経由してＧＷ装置３から更新データを受信する。
【００７４】
無線端末４は更新データを受信すると、自端末をプログラム更新モードに切り替える（Ｓ８０２）。プログラム更新モードとは、プログラム更新の動作に必要な更新実行プログラムや、プログラム更新の動作中に無線端末４を最低限動作させるためのその他プログラムを記憶部４４から読み出してメインメモリ４５に退避させ、記憶部４４の書き換えを可能とするモードである。プログラム更新モードへの切り替えは制御部４１によって行われる。
【００７５】
次いで無線端末４の抽出部４１１１（図４）は、更新データから更新プログラムデータおよび誤り検出符号を抽出する。図９の（１）を参照して説明する。無線端末４が受信する更新データには、更新プログラムデータ７４と誤り検出符号７１０が含まれる。図９に示す更新データは、図７の（５）に示す管理装置２によって作成された更新データと同一である。抽出部４１１１は識別情報に基づいて更新データにおける更新プログラムデータ７４と誤り検出符号７１０の境目を特定し、更新プログラムデータ７４と誤り検出符号７１０を抽出する。
【００７６】
次いで書き込み部４１１２は、記憶部４４における書き込み可能な領域の全体にダミーパターンを書き込む（Ｓ８０６）。図９の（１）および（２）を参照して説明する。図９の（１）において記憶部４４におけるアドレスａからアドレスｚまでがプログラムが書き込まれ得るメモリアドレスの範囲であり、これが書き込み可能な領域９０である。なお図９の（１）における書き込み可能な領域９０のサイズは、管理装置２のメインメモリ２５に設定された仮想領域７０のサイズと同一である。書き込み部４１１２は、書き込み可能な領域９０のアドレスａからアドレスｚまでの全体に亘って領域が未使用であることを示すダミーパターン９２（図９では斜線として図示）を書き込む。ここで領域が未使用であるとは、領域に更新プログラムデータやその他の情報が書き込まれていないことを指す。ダミーパターンは管理装置２における更新データの作成で用いられるダミーパターンと同一とし、例えば１６進数の０ｘＦＦなどとする。
【００７７】
次いで書き込み部４１１２は、書き込み可能な領域９０に更新プログラムデータ７４を書き込む（Ｓ８０８）。図９の（３）および（４）を参照して説明する。書き込み部４１１２は、ダミーパターン９２（図９の（３））が書き込まれた書き込み可能な領域９０の先頭のアドレスａから末尾のアドレスｚに向けて、抽出部４１１１によって抽出された更新プログラムデータ７４を書き込む。この書き込みによってダミーパターン９２の一部は更新プログラム７４によって置換される。更新プログラムデータ７４の大きさは、書き込み可能な領域９０の大きさ（仮想領域７０の大きさと同一）以下である。従って、書き込み可能な領域９０のアドレスａからアドレスｂまでに更新プログラムデータ７４（図９では縦縞として図示）が書き込まれ、アドレスｂからアドレスｚまでにダミーパターン９２の残存分であるダミーパターン９４が書き込まれた状態となる。
【００７８】
次いで誤り検出符号算出部４１１３は、書き込み可能な領域９０の全体に対して第二の誤り検出符号を算出する（Ｓ８１０）。なお、更新データに含まれる誤り検出符号７１０と区別するため、便宜的に“第二の誤り検出符号”と呼称する。図９の（４）を参照して説明する。誤り検出符号算出部４１１３は、更新プログラムデータ７４とダミーパターン９４が書き込まれた書き込み可能な領域９０の全体、即ちアドレスａからアドレスｂまでの更新プログラムデータ７４と、アドレスｂからアドレスｚまでのダミーパターン９４の双方を合わせたデータに対して第二の誤り検出符号を算出する。第二の誤り検出符号を算出する方法は、例えばチェックサムを用いることができる。或いは、パリティチェックやより高精度な巡回冗長検査を用いてもよい。但し、誤り検出符号算出部４１１３で用いる誤り検出符号の算出方法は、管理装置２の誤り検出符号算出部２１５で用いられる方法と同じ方法とする。
【００７９】
次いで検証部４１２は、誤り検出符号算出部４１１３によって算出された第二の誤り検出符号と、抽出部４１１１により更新データから抽出された誤り検出符号７１０とを比較する（Ｓ８１２）。そして検証部４１２は、第二の誤り検出符号と誤り検出符号７１０とが一致するかどうかを判定する（Ｓ８１４）。
【００８０】
検証部４１２の判定について、図７および図９を参照して説明する。無線端末４の誤り検出符号算出部４１１３によって算出された第二の誤り検出符号は、図９の（４）に示す更新プログラムデータ７４とダミーパターン９４の全体に対して算出されたものである。一方、抽出部４１１１により更新データから抽出された誤り検出符号７１０は、図７の（３）に示す、管理装置２にて仮想領域７０に書き込まれた更新プログラムデータ７４とダミーパターン７６の全体に対して算出されたものである。ここで、図７の（３）と図９の（４）における更新プログラムデータ７４は同一である。また、図７の（３）と図９の（４）において、仮想領域７０と書き込み可能な領域９０のサイズは同一である。そのため、ダミーパターン７６とダミーパターン９４の内容（書き込まれたダミーパターンの情報量）は同一となるべきである。
【００８１】
従って、無線端末４によるプログラム更新において、ダミーパターン９４の書き込みにエラーが生じなければ、管理装置２による更新データの作成過程における図７の（３）の状態が無線端末４の記憶部４４にて図９の（４）のように再現される。この場合、第二の誤り検出符号と誤り検出符号７１０は一致する。
【００８２】
対して、無線端末４によるプログラム更新において、ダミーパターン９４の書き込みにエラーが生じると、管理装置２による更新データの作成過程における図７の（３）の状態が無線端末４の記憶部４４にて図９の（４）のように再現されない。この場合、第二の誤り検出符号と誤り検出符号７１０は一致しない。ダミーパターン９４の書き込みエラーの原因として、無線端末４における書き込み可能な領域９０（記憶部４４）の一部に物理的な破損等が生じていることなどが推定される。
【００８３】
検証部４１２の判定が肯定であった場合（Ｓ８１４：Ｙｅｓ）、無線端末４は管理装置２に対して正常応答を送信し（Ｓ８１６、図５の５４）、無線端末４は再起動し（Ｓ８１８）、再起動後は通常運用の状態となる。
【００８４】
検証部４１２の判定が否定であった場合（Ｓ８１４：Ｎｏ）、無線端末４は管理装置２に対してエラー応答を送信し（Ｓ８２０）、図８のＳ８０４からＳ８１２までの作業結果を破棄して、管理装置２から再度更新データを受信するまで待機する。無線端末４は、管理装置２から再度更新データを受信すると、上述した図８のＳ８００からＳ８１４の動作を再度実行し、プログラム更新を再試行する。再試行における検証部４１２の判定が肯定であった場合、上述のように無線端末４は管理装置２に対して正常応答を送信し（Ｓ８１６、図５の５４）、無線端末は再起動し（Ｓ８１８）、再起動後は通常運用の状態となる。なお、プログラム更新の再試行における検証部４１２の判定が依然として否定である場合の動作は、変形例１にて後述する。
【００８５】
（Ｂ−４）管理装置２における更新完了処理
管理装置２による更新完了処理（図５の５５）の動作の詳細を、図１０を参照して説明する。
【００８６】
図１０は管理装置２による更新完了処理の動作を示すフローチャートである。
【００８７】
管理装置２は、無線端末４から応答を受信する（Ｓ１０００、図５の５４）。
【００８８】
管理装置２は、無線端末４から受信した応答が正常応答であるか否かを判定する（Ｓ１００２）。応答が正常応答である場合は（Ｓ１００２：Ｙｅｓ）、全ての無線端末４から正常応答を受信したか否かを判定する（Ｓ１００４）、全ての無線端末４から正常応答を受信した場合は（Ｓ１００４：Ｙｅｓ）、管理装置２はプログラム更新に係る一連の動作を終了して通常運用の状態に移行する。全ての無線端末４から正常応答を受信していない場合は（Ｓ１００４：Ｎｏ）は、応答の受信（Ｓ１０００）を待機し、全ての無線端末４から正常応答を受信するまでＳ１０００からＳ１００４の動作を続ける。
【００８９】
管理装置２において、無線端末４から受信した応答がエラー応答である場合は（Ｓ１００２：Ｎｏ）、当該エラー応答の送信元である無線端末４へ更新データを再送信する（Ｓ１００６）。そして応答の受信（Ｓ１０００）を待機し、全ての無線端末４から正常応答を受信するまでＳ１０００からＳ１００４の動作を続ける。なお、管理装置２が無線端末４へ更新データを再送すると、無線端末４では上述のとおりプログラム更新が再試行される。ここで、無線端末４によるプログラム更新が依然として失敗し、管理装置２が依然としてエラー応答を受信する場合の動作は、変形例１にて後述する。
【００９０】
（Ｃ）実施形態における効果
上述した実施形態によれば、管理装置２から無線端末４へ送信される更新データに基づき、無線端末４は、更新されたプログラムの正常性を確認し、プログラム更新後における記憶部４４の余剰領域の正常性を確認することができる。
【００９１】
管理装置２から無線端末４へ送信される更新データは、更新プログラムデータ７４と誤り検出符号７１０の２種のデータを含んでいるが、無線端末４にて記憶部４４の余剰領域の正常性を確認するためだけに用いられるデータは含んでいない。更新データ全体の情報量に着目すると、上述した実施形態における更新データの情報量は、例えば図１１に示す従来方式による更新データに比べて増大していない。従って上述した実施形態によれば、更新データの情報量を増大させることなく、無線端末のプログラム更新の際に、更新されたプログラムの正常性を確認し、プログラム更新後の余剰領域の正常性を確認することができる。
【００９２】
マルチホップ通信を用いた無線通信ネットワークにおいて、無線端末に連続して電波送信が可能な時間長（単位時間あたりの送信時間の総和）の制限が設けられる、あるいは無線端末が電池駆動であるため長時間に亘る電波送信が困難である、などの制約がある。一般的に、送信する情報量が大きいほど電波送信に要する時間は増大する。そのため図１１に示す従来技術のように更新データに新たなデータを追加して情報量を増大させると、電波送信に要する時間が増大し無線端末による更新データ送信が困難となる、あるいは無線端末の電池消費が加速するなどの弊害が生じる。一方で上述した実施形態では更新データの情報量が増大していない。従って上述した実施形態によれば、無線端末４による更新データの送信、転送によって、無線端末４の電波送信が可能な時間長を圧迫する、無線端末４の電池の消費が加速するといった弊害が生じるおそれがない。
【００９３】
（Ｄ）変形例
（Ｄ−１）変形例１
上述した無線端末４のプログラム更新において、第二の誤り検出符号と誤り検出符号７１０が一致しない場合（図８のＳ８１４：Ｎｏ）、無線端末４は管理装置２へエラー応答を送信する（図８のＳ８２０）。管理装置２は無線端末４からエラー応答を受信すると、当該無線端末４へ更新データを再送信する（図１０のＳ１００６）。無線端末４は再送信された更新データを受信すると、プログラム更新を再試行する（図８のＳ８００〜Ｓ８１４）。
【００９４】
プログラム更新の再試行において、無線端末４の検証部４１２の判定が再度否定となり（図８のＳ８１４：Ｎｏ）、無線端末４が再度エラー応答を送信する場合（図８のＳ８２０）に対応するため、無線端末４または管理装置２に次に示す態様１、態様２の動作を行わせてもよい。
【００９５】
（Ｄ−１−２）変形例１の態様１
管理装置２から無線端末４へ更新データが再送信され、無線端末４が再送信された更新データに基づいてプログラム更新を再試行してもなお、検証部４１２の判定が否定である場合（図８のＳ８１４：Ｎｏ）、無線端末４の記憶部４４に物理的な破損等が生じていることが推定される。なぜならば、プログラム更新の再試行前において無線端末４が受信した更新データに送信エラー等が生じており、そのために管理装置２による更新データの作成過程における図７の（３）の状態が無線端末４の記憶部４４にて図９の（４）のように再現されず、検証部４１２の判定が否定となったのであれば、管理装置２の更新データの再送信によって送信エラー等は解消されるので、プログラム更新の再試行において検証部４１２の判定は肯定となるはずである。それにも関わらず、プログラム更新の再試行において検証部４１２の判定が否定となるのは、更新データに送信エラー等が生じているのではなく、無線端末４の記憶部４４に物理的な破損等が生じていると推定される。
【００９６】
この場合に対応するため、無線端末４において検証部４１２の判定が否定であった回数をカウントし、カウント数が所定の値を上回った場合に、無線端末４は記憶部４４に故障が発生していると判断し、エラー応答にて管理装置２へ記憶部４４の故障を通知するようにしてもよい。
【００９７】
あるいは、管理装置２にて無線端末４から受信したエラー応答の回数をカウントし、ある１つの無線端末４に対するカウント数が所定の値を上回った場合に、管理装置２にて当該無線端末４を故障と判断してもよい。管理装置２にて無線端末４を故障と判断するのであれば、故障と判断した無線端末４への更新データの再送信を中止する。
【００９８】
（Ｄ−１−３）変形例１の態様２
無線端末４にて検証部４１２の判定が否定であった回数をカウントし、カウント数が所定の値を上回った場合に、無線端末４は、管理装置２から受信した更新データに依らず自律的に記憶部４４を検査するようにしてもよい。記憶部４４の検査は、例えば記憶部４４に検査用のテストパターンを書き込んでエラーを検証するなど、既存の方法が採用できる。検査によって記憶部４４の故障が検出された場合は、エラー応答にて管理装置２へ記憶部４４の故障を通知するようにしてもよい。
【００９９】
あるいは、管理装置２にて無線端末４から受信したエラー応答の回数をカウントし、ある１つの無線端末４に対するカウント数が所定の値を上回った場合に、管理装置２が当該無線端末４に対し、記憶部４４の検査を指示するようにしてもよい。この場合における無線端末４４による記憶部４４の検査は、上述した方法と同様であってよい。
【０１００】
（Ｄ−１）変形例２
上述した実施形態では、管理装置２をパーソナルコンピュータ等の機器として説明したが、管理装置２における更新データを作成する機能を、ＧＷ装置３が備えてもよい。ＧＷ装置３に更新データを作成する機能を具備させる場合、図２に示した管理装置２の制御部２１における取得部２１１、設定部２１２、書き込み部２１３、削除部２１４、誤り検出符号算出部２１５のそれぞれを、ＧＷ装置３の制御部３１に具備させてもよい。
【０１０１】
ＧＷ装置３が更新データの作成機能を具備する場合、ＧＷ装置３は、外部から更新プログラムデータが与えられたならば、図６に示すフローチャートの動作を行ってＧＷ装置３の内部で更新データを作成し、無線端末４へ更新データを送信する。またＧＷ装置３が更新データの作成機能を具備する場合、上述した変形例１の態様１および態様２をＧＷ装置３に適用してもよい。
【０１０２】
なお、ＧＷ装置３が更新データの作成機能を具備する場合、ＧＷ装置３が更新データの作成機能を具備しない場合に比べ、より高性能な制御部３１（ＣＰＵなど）を備え、メインメモリ３５もより容量の大きいものとする必要がある。またＧＷ装置３が更新データの作成機能を具備する場合、記憶部３４に更新データを作成するためのプログラムを保持する必要がある。
【０１０３】
（Ｄ−１）変形例３
上述した実施形態では、管理装置２とＧＷ装置３を有線で接続し、管理装置２からＧＷ装置３を経由して、無線端末４−１から無線端末４−４へ更新データを送信する構成を説明した。これを変形し、管理装置２と親局である無線端末４−１を有線で接続し、ＧＷ装置３を経由せず、管理装置２から無線端末４−１ないし無線端末４−４へ更新データを送信してもよい。
【０１０４】
この場合、管理装置２の入出力インタフェース２２と無線端末４−１の入出力インタフェース４３をＵＳＢ規格に準拠したケーブルで接続する。親局である無線端末４−１ないし無線端末４−４の接続は無線インタフェース４２を用いる。これにより。管理装置２から無線端末４−１へは有線で更新データが送信され、無線端末４−１から無線端末４−２ないし無線端末４−４へは無線で更新データが送信される。
【０１０５】
この変形例３における管理装置２および無線端末４の動作は、上述した実施形態と同様であり、上述した変形例１の態様１および態様２をＧＷ装置３に適用してもよい。
【符号の説明】
【０１０６】
１…無線通信ネットワーク、２…管理装置、３…ゲートウェイ（ＧＷ）装置、
４（４−１〜４−４）…無線端末、
２１…制御部、２２…入出力インタフェース、２３…ＬＡＮインタフェース、
２４…記憶部、２５…メインメモリ、２６…ユーザーインタフェース、
２１１…取得部、２１２…設定部、２１３…書き込み部、２１４…削除部、
２１５…誤り検出符号算出部、
３１…制御部、３２…入出力インタフェース、３３…ＬＡＮインタフェース、
３４…記憶部、３５…メインメモリ、
４１…制御部、４２…無線インタフェース、４３…入出力インタフェース、
４４…記憶部、４５…メインメモリ、４６…センサー、４７…アンテナ、
４１１…更新部、４１２…検証部、
４１１１…抽出部、４１１２…書き込み部、４１１３…誤り検出符号算出部、
７０…仮想領域、７２…ダミーパターン、７４…更新プログラムデータ、
７６…ダミーパターン、７８…ダミーパターン、７１０…誤り検出符号、
９０…書き込み可能な領域、９２…ダミーパターン、９４…ダミーパターン、
１１０…更新データ、１１１…更新プログラムデータ、１１２…誤り検出符号
【図１】
2019179308.tif 000003
【図２】
2019179308.tif 000004
【図３】
2019179308.tif 000005
【図４】
2019179308.tif 000006
【図５】
2019179308.tif 000007
【図６】
2019179308.tif 000008
【図７】
2019179308.tif 000009
【図８】
2019179308.tif 000010
【図９】
2019179308.tif 000011
【図１０】
2019179308.tif 000012
【図１１】
2019179308.tif 000013