(57)【要約】【課題】複数の組み込み機器のＦ／Ｗ（ファームウェア）の更新時間を短縮し、また、前記複数の組み込み機器に内蔵されている不揮発性メモリへのアクセス回数を減らすことにより不揮発性メモリの寿命を延ばせるＦ／Ｗ更新システムの提供を目的とする。【解決手段】パソコン側ツール２１０は、新しいＦ／Ｗ２９１と組み込み機器に組み込まれている更新前Ｆ／Ｗとを特定のブロックサイズで分割する。パソコン側ツール２１０は、新しいＦ／Ｗ２９１のブロックと更新前Ｆ／Ｗのブロックとを比較し、ブロック毎に一致するか否かを示す差分情報を生成する。パソコン側ツール２１０は、差分情報に基づいて、更新前Ｆ／Ｗと異なる新しいＦ／Ｗ２９１の各ブロックを組み込み機器へ送信する。組み込み機器のＦ／Ｗ更新タスク３１０は、新しいＦ／Ｗ２９１の各ブロックを更新前Ｆ／Ｗの当該ブロックに書き込んで更新前Ｆ／Ｗを更新する。【選択図】図１
2010211295.tif 000002
【特許請求の範囲】
【請求項１】
特定の機器で使用されている使用データと前記使用データとは少なくとも一部が異なる新データとを記憶媒体を用いて記憶するデータ記憶部と、
前記データ記憶部に記憶された使用データを特定のサイズで複数の分割データにＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて分割する使用データ分割部と、
前記データ記憶部に記憶された新データを前記特定のサイズで複数の分割データにＣＰＵを用いて分割する新データ分割部と、
前記使用データの分割データ毎に当該使用データの分割データとデータの並び順が対応する新データの分割データと同じであるか否かを示す情報を差分情報としてＣＰＵを用いて生成する差分情報生成部と、
前記差分情報生成部により生成された差分情報に基づいて新データの複数の分割データのうちデータの並び順が対応する使用データの分割データと異なる各分割データをＣＰＵを用いて特定し、特定した新データの各分割データを差分データとして前記特定の機器に入力して前記特定の機器に前記使用データ内の前記差分データに対応する部分を前記差分データで更新させる差分データ入力部と
を備えたことを特徴とするデータ更新装置。
【請求項２】
前記使用データ分割部は、前記特定の機器を第１の特定の機器として、第１の特定の機器により前記使用データに対して１回あたりに書き込まれるデータのサイズとして予め定められた第１の書き込み単位サイズと、前記第１の特定の機器で使用されている使用データと同じ使用データを使用している第２の特定の機器により前記使用データに対して１回あたりに書き込まれるデータのサイズとして予め定められた第２の書き込み単位サイズとの公倍数となるサイズを前記特定のサイズとして前記使用データを分割する
ことを特徴とする請求項１記載のデータ更新装置。
【請求項３】
前記使用データ分割部は、前記第１の書き込み単位サイズと、前記第２の書き込み単位サイズと、前記第１の特定の機器により前記使用データに対して１回あたりにイレースされるデータのサイズとして予め定められた第１のイレース単位サイズと、前記第２の特定の機器により前記使用データに対して１回あたりにイレースされるデータのサイズとして予め定められた第２のイレース単位サイズとの公倍数となるサイズを前記特定のサイズとして前記使用データを分割する
ことを特徴とする請求項２記載のデータ更新装置。
【請求項４】
前記データ更新装置は、さらに、
所定のハッシュ関数により前記使用データの分割データ毎にハッシュ値をＣＰＵを用いて算出する使用データハッシュ値算出部と、
前記ハッシュ関数により前記新データの分割データ毎にハッシュ値をＣＰＵを用いて算出する新データハッシュ値算出部とを備え、
前記差分情報生成部は、前記使用データハッシュ値算出部により算出されたハッシュ値と前記新データハッシュ値算出部により算出されたハッシュ値とに基づいて前記差分情報を生成する
ことを特徴とする請求項１〜請求項３いずれかに記載のデータ更新装置。
【請求項５】
前記差分情報生成部は、前記使用データの分割データ毎に当該使用データの分割データとデータの並び順が対応する新データの分割データと同じであるか否かを１ビットで表して前記差分情報を生成する
ことを特徴とする請求項１〜請求項４いずれかに記載のデータ更新装置。
【請求項６】
使用データ分割部が、特定の機器で使用されている使用データを特定のサイズで複数の分割データにＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて分割し、
新データ分割部が、前記使用データとは少なくとも一部が異なる新データを前記特定のサイズで複数の分割データにＣＰＵを用いて分割し、
差分情報生成部が、前記使用データの分割データ毎に当該使用データの分割データとデータの並び順が対応する新データの分割データと同じであるか否かを示す情報を差分情報としてＣＰＵを用いて生成し、
差分データ入力部が、前記差分情報生成部により生成された差分情報に基づいて新データの複数の分割データのうちデータの並び順が対応する使用データの分割データと異なる新データの各分割データをＣＰＵを用いて特定し、特定した新データの各分割データを差分データとして前記特定の機器に入力して前記特定の機器に前記使用データ内の前記差分データに対応する部分を前記差分データで更新させる
ことを特徴とするデータ更新装置のデータ更新方法。
【請求項７】
請求項６記載のデータ更新方法をコンピュータに実行させるデータ更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、組み込み機器のＦ／Ｗ（ファームウェア）を更新するデータ更新装置、データ更新装置のデータ更新方法およびデータ更新プログラムに関するものである。
【背景技術】
【０００２】
従来、組み込み機器のＦ／Ｗを新しいＦ／Ｗへ更新するには、上記Ｆ／Ｗのイメージ（データ）が格納されたコンパクトフラッシュ（登録商標）カードやＵＳＢメモリ等の媒体を使用し、上記Ｆ／Ｗイメージを上記組み込み機器にインストールすることで行われていた。上記インストールとは、上記組み込み機器内の不揮発性メモリに上記Ｆ／Ｗイメージを書き込むことである。
しかし、Ｆ／Ｗの更新対象となる組み込み機器が複数ある場合、組み込み機器毎にＦ／Ｗの更新を行わなければならないため、Ｆ／Ｗの更新が煩雑となっていた。また、全ての組み込み機器のＦ／Ｗの更新を完了するのに時間がかかっていた。
【０００３】
この課題点の解決手段として、特許文献１に記載のＦ／Ｗ更新方式がある。
この方式は、複数の組み込み機器と管理サーバとをＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）で接続し、上記Ｆ／Ｗイメージを上記管理サーバから上記組み込み機器へ送信し、Ｆ／Ｗの更新を行う。
これにより、組み込み機器毎にＦ／Ｗの更新を行う必要がなくなるため、Ｆ／Ｗ更新にかかる時間や煩雑さを軽減することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２８８１０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１に記載されている方式では、上記管理サーバから、ＬＡＮに接続されている上記組み込み機器へ上記Ｆ／Ｗイメージ全体を送信し、上記組み込み機器内の不揮発性メモリに上記Ｆ／Ｗイメージ全体を書き込んでいた。また、上記不揮発性メモリへデータを書き込むために上記不揮発性メモリのイレースが必要な場合、上記不揮発性メモリ上の更新前のＦ／Ｗのイレースを行ってから、上記Ｆ／Ｗイメージ全体を書き込んでいた。
この方式では、上記不揮発性メモリに書き込まれている上記更新前のＦ／Ｗに新しいＦ／Ｗと同じバイト列が存在した場合、当該箇所に同じバイト列を書き込む。上記イレースが必要な不揮発性メモリを内蔵している組み込み機器の場合、当該箇所のイレースを行ってから上記同じバイト列を書き込む。
このような方式でのＦ／Ｗの更新は、不揮発性メモリのイレース、Ｆ／Ｗイメージの書き込みに冗長な時間がかかる。また、不揮発性メモリへのアクセス回数が冗長となり、不揮発性メモリの寿命を早める。
【０００６】
本発明は、例えば、複数の組み込み機器のＦ／Ｗの更新時間を短縮し、また、前記複数の組み込み機器に内蔵されている不揮発性メモリへのアクセス回数を減らすことにより不揮発性メモリの寿命を延ばせるＦ／Ｗ更新システムの提供を目的とする。
【課題を解決するための手段】
【０００７】
本発明のデータ更新装置は、特定の機器で使用されている使用データと前記使用データとは少なくとも一部が異なる新データとを記憶媒体を用いて記憶するデータ記憶部と、前記データ記憶部に記憶された使用データを特定のサイズで複数の分割データにＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて分割する使用データ分割部と、前記データ記憶部に記憶された新データを前記特定のサイズで複数の分割データにＣＰＵを用いて分割する新データ分割部と、前記使用データの分割データ毎に当該使用データの分割データとデータの並び順が対応する新データの分割データと同じであるか否かを示す情報を差分情報としてＣＰＵを用いて生成する差分情報生成部と、前記差分情報生成部により生成された差分情報に基づいて新データの複数の分割データのうちデータの並び順が対応する使用データの分割データと異なる各分割データをＣＰＵを用いて特定し、特定した新データの各分割データを差分データとして前記特定の機器に入力して前記特定の機器に前記使用データ内の前記差分データに対応する部分を前記差分データで更新させる差分データ入力部とを備える。
【発明の効果】
【０００８】
本発明によれば、例えば、複数の組み込み機器のＦ／Ｗの更新時間を短縮し、前記複数の組み込み機器に内蔵されている不揮発性メモリへのアクセス回数を減らすことにより不揮発性メモリの寿命を延ばせるＦ／Ｗ更新システムを提供できる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１におけるＦ／Ｗ更新システム１００の構成図。
【図２】実施の形態１におけるパソコン側ツール２１０の構成図。
【図３】実施の形態１におけるパソコン２００のハードウェア資源の一例を示す図。
【図４】実施の形態１におけるＦ／Ｗ更新方法の概要図。
【図５】実施の形態１におけるＦ／Ｗ更新方法の概要図。
【図６】実施の形態１におけるＦ／Ｗ更新方法を示すフローチャート。
【図７】実施の形態１におけるＦ／Ｗ更新方法を示すフローチャート。
【図８】実施の形態１における機器構成管理ファイル２９９の構成を示す図。
【図９】実施の形態１における更新前Ｆ／Ｗハッシュファイル作成処理（Ｓ１２０）のフローチャート。
【図１０】実施の形態１における更新前Ｆ／Ｗと更新前Ｆ／Ｗハッシュファイル２９２との関係図。
【図１１】実施の形態１における新Ｆ／Ｗハッシュファイル作成処理（Ｓ１３０）のフローチャート。
【図１２】実施の形態１における差分情報ファイル作成処理（Ｓ１４０）の概要図。
【図１３】実施の形態１における更新前Ｆ／Ｗ差分領域イレース処理（Ｓ１５０）の概要図。
【図１４】実施の形態１における更新前Ｆ／Ｗ差分領域イレース処理（Ｓ１５０）のフローチャート。
【図１５】実施の形態１における更新前Ｆ／Ｗ差分領域書き込み処理（Ｓ１６０）の概要図。
【発明を実施するための形態】
【００１０】
実施の形態１．
複数の組み込み機器それぞれのＦ／Ｗ（ファームウェア）を新しいバージョンのファームウェアに更新するＦ／Ｗ更新システムについて説明する。但し、Ｆ／Ｗは更新対象データの一例である。
【００１１】
図１は、実施の形態１におけるＦ／Ｗ更新システム１００の構成図である。
実施の形態１におけるＦ／Ｗ更新システム１００の構成について、図１に基づいて以下に説明する。
【００１２】
Ｆ／Ｗ更新システム１００は、Ｆ／Ｗが組み込まれた組み込み機器（３０１〜３０４）と、各組み込み機器のＦ／Ｗを新しいＦ／Ｗ２９１に更新するパソコン２００（データ更新装置の一例）とを有する。
各組み込み機器はケーブル１０１でパソコン２００に接続され、パソコン２００と各組み込み機器とはケーブル１０１を介して通信を行う。ケーブル１０１は通信回線の一例である。例えば、パソコン２００と各組み込み機器とは無線で通信を行ってもよい。
【００１３】
組み込み機器の台数は、４つ未満または５つ以上であっても構わない。
各Ｆ／Ｗは、ウイルスや不正アクセス等による改ざんが成されていないものとする。
パソコン２００の処理速度は十分に速いものとする。組み込み機器の処理速度および組み込み機器に内蔵されている不揮発性メモリ３９０へのアクセス速度は遅いものとする。ケーブル１０１の通信速度は十分に速いものとする。
【００１４】
Ｆ／Ｗは、不揮発性メモリ３９０（記憶媒体、記憶装置の一例）に書き込まれることにより、組み込み機器に組み込まれる（インストールされる）。書き込みは記憶や設定を意味する。
【００１５】
各組み込み機器は、Ｆ／Ｗ更新タスク３１０、不揮発性メモリ３９０およびＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）（図示省略）を備える。不揮発性メモリ３９０には更新前Ｆ／Ｗが記憶されている。
Ｆ／Ｗ更新タスク３１０は、組み込まれているＦ／Ｗをパソコン２００からコマンド１１０で送信される新しいＦ／Ｗ２９１によりＣＰＵを用いて更新する。
【００１６】
組み込み機器Ａ３０１と組み込み機器Ｂ３０２とには、旧バージョン（例えば、バージョン「Ｖ１」）のＦ／Ｗが組み込まれているものとする。以下、組み込み機器Ａ３０１と組み込み機器Ｂ３０２とに組み込まれて使用されているＦ／Ｗを「更新前Ｆ／Ｗ（１）３９１」という。
組み込み機器Ｃ３０３と組み込み機器Ｄ３０４とには、更新前Ｆ／Ｗ（１）３９１より新しいバージョン（例えば、バージョン「Ｖ２」）のＦ／Ｗが組み込まれているものとする。以下、組み込み機器Ｃ３０３と組み込み機器Ｄ３０４とに組み込まれて使用されているＦ／Ｗを「更新前Ｆ／Ｗ（２）３９２」という。
更新前Ｆ／Ｗ（１）３９１と更新前Ｆ／Ｗ（２）３９２とは少なくともデータの一部が異なる。更新前Ｆ／Ｗ（１）３９１のデータサイズと更新前Ｆ／Ｗ（２）３９２のデータサイズとは同じであっても異なっていても構わない。
【００１７】
パソコン２００は、パソコン側ツール２１０およびパソコン側記憶部２９０を備える。
パソコン側ツール２１０は、新しいＦ／Ｗ２９１をコマンド１１０で各組み込み機器へ送信して、各組み込み機器に更新前Ｆ／Ｗを更新させる。
パソコン側記憶部２９０は、パソコン２００で使用される各データを記憶媒体を用いて記憶する記憶装置である。例えば、パソコン側記憶部２９０には新しいＦ／Ｗ２９１が記憶されている。
新しいＦ／Ｗ２９１は、各更新前Ｆ／Ｗより新しいバージョン（例えば、バージョン「Ｖ３」）のＦ／Ｗである。新しいＦ／Ｗ２９１と各更新前Ｆ／Ｗとは少なくともデータの一部が異なる。新しいＦ／Ｗ２９１のデータサイズと各更新前Ｆ／Ｗのデータサイズとは同じであっても異なっても構わない。
【００１８】
図２は、実施の形態１におけるパソコン側ツール２１０の構成図である。
実施の形態１におけるパソコン側ツール２１０の構成について、図２に基づいて以下に説明する。
【００１９】
パソコン側ツール２１０は、ツール制御部２１１、更新前Ｆ／Ｗハッシュファイル作成部２１２（使用データ分割部、使用データハッシュ値算出部の一例）、新Ｆ／Ｗハッシュファイル作成部２１３（新データ分割部、新データハッシュ値算出部の一例）、差分情報ファイル作成部２１４（差分情報生成部の一例）、差分データ出力部２１５（差分データ入力部の一例）およびパソコン側通信部２１９を備える。
【００２０】
パソコン側記憶部２９０（データ記憶部の一例）には、新しいＦ／Ｗ２９１の他に、機器構成管理ファイル２９９、更新前Ｆ／Ｗハッシュファイル２９２、新Ｆ／Ｗハッシュファイル２９３、差分情報ファイル２９４、更新前Ｆ／Ｗ（１）３９１および更新前Ｆ／Ｗ（２）３９２が記憶される。機器構成管理ファイル２９９はシステム管理者により予め記憶される。更新前Ｆ／Ｗハッシュファイル２９２、新Ｆ／Ｗハッシュファイル２９３および差分情報ファイル２９４はそれぞれ、更新前Ｆ／Ｗハッシュファイル作成部２１２、新Ｆ／Ｗハッシュファイル作成部２１３および差分情報ファイル作成部２１４により生成されて記憶される。更新前Ｆ／Ｗ（１）３９１および更新前Ｆ／Ｗ（２）３９２は、更新前Ｆ／Ｗハッシュファイル作成部２１２により組み込み機器から取得されて記憶される。
各「〜ファイル」については後述する。
【００２１】
ツール制御部２１１は、パソコン側ツール２１０の各「〜部」をＣＰＵを用いて制御する。
【００２２】
パソコン側通信部２１９は、各組み込み機器と通信する通信装置である。
例えば、パソコン側通信部２１９は、新しいＦ／Ｗ２９１や差分情報ファイル２９４を含んだコマンド１１０を各組み込み機器へ送信する。また例えば、パソコン側通信部２１９は、各組み込み機器から更新前Ｆ／Ｗを受信する。
【００２３】
更新前Ｆ／Ｗハッシュファイル作成部２１２は、パソコン側通信部２１９を用いて各組み込み機器から更新前Ｆ／Ｗ（使用データの一例）を受信する。更新前Ｆ／Ｗハッシュファイル作成部２１２は、組み込み機器Ａ３０１または組み込み機器Ｂ３０２から更新前Ｆ／Ｗ（１）３９１を受信し、受信した更新前Ｆ／Ｗ（１）３９１をパソコン側記憶部２９０に記憶する。更新前Ｆ／Ｗハッシュファイル作成部２１２は、組み込み機器Ｃ３０３または組み込み機器Ｄ３０４から更新前Ｆ／Ｗ（２）３９２を受信し、受信した更新前Ｆ／Ｗ（２）３９２をパソコン側記憶部２９０に記憶する。
更新前Ｆ／Ｗハッシュファイル作成部２１２は、更新前Ｆ／Ｗを特定のブロックサイズで複数の分割データにＣＰＵを用いて分割する。
【００２４】
例えば、更新前Ｆ／Ｗハッシュファイル作成部２１２は、組み込み機器Ａ３０１により更新前Ｆ／Ｗ（１）３９１に対して１回あたりに書き込まれるデータのサイズとして予め定められた書き込み単位サイズＷＡと、組み込み機器Ｂ３０２により更新前Ｆ／Ｗ（１）３９１に対して１回あたりに書き込まれるデータのサイズとして予め定められた書き込み単位サイズＷＢとの公倍数となるサイズをブロックサイズとして更新前Ｆ／Ｗ（１）３９１を分割する。
同様に、更新前Ｆ／Ｗハッシュファイル作成部２１２は、組み込み機器Ｃ３０３により更新前Ｆ／Ｗ（２）３９２に対して１回あたりに書き込まれるデータのサイズとして予め定められた書き込み単位サイズＷＣと、組み込み機器Ｄ３０４により更新前Ｆ／Ｗ（２）３９２に対して１回あたりに書き込まれるデータのサイズとして予め定められた書き込み単位サイズＷＤとの公倍数となるサイズをブロックサイズとして更新前Ｆ／Ｗ（２）３９２を分割する。
【００２５】
また例えば、更新前Ｆ／Ｗハッシュファイル作成部２１２は、書き込み単位サイズＷＡと、書き込み単位サイズＷＢと、組み込み機器Ａ３０１により更新前Ｆ／Ｗ（１）３９１に対して１回あたりにイレースされるデータのサイズとして予め定められたイレース単位サイズＥＡと、組み込み機器Ｂ３０２により更新前Ｆ／Ｗ（１）３９１に対して１回あたりにイレースされるデータのサイズとして予め定められたイレース単位サイズＥＢとの公倍数となるサイズをブロックサイズとして更新前Ｆ／Ｗ（１）３９１を分割する。
同様に、更新前Ｆ／Ｗハッシュファイル作成部２１２は、書き込み単位サイズＷＣと、書き込み単位サイズＷＤと、組み込み機器Ｃ３０３により更新前Ｆ／Ｗ（２）３９２に対して１回あたりにイレースされるデータのサイズとして予め定められたイレース単位サイズＥＣと、組み込み機器Ｄ３０４により更新前Ｆ／Ｗ（２）３９２に対して１回あたりにイレースされるデータのサイズとして予め定められたイレース単位サイズＥＤとの公倍数となるサイズをブロックサイズとして更新前Ｆ／Ｗ（２）３９２を分割する。
イレースとは、データの削除、初期値の設定やメモリ領域の初期化を意味する。
【００２６】
さらに、更新前Ｆ／Ｗハッシュファイル作成部２１２は、所定のハッシュ関数により更新前Ｆ／Ｗの分割データ毎にハッシュ値をＣＰＵを用いて算出する。更新前Ｆ／Ｗハッシュファイル作成部２１２は、更新前Ｆ／Ｗの各分割データのハッシュ値を設定した更新前Ｆ／Ｗハッシュファイル２９２を生成し、生成した更新前Ｆ／Ｗハッシュファイル２９２をパソコン側記憶部２９０に記憶する。
【００２７】
新Ｆ／Ｗハッシュファイル作成部２１３は、新しいＦ／Ｗ２９１（新データの一例）を更新前Ｆ／Ｗのブロックサイズで複数の分割データにＣＰＵを用いて分割する。
さらに、新Ｆ／Ｗハッシュファイル作成部２１３は、前記ハッシュ関数により新しいＦ／Ｗ２９１の分割データ毎にハッシュ値をＣＰＵを用いて算出する。新Ｆ／Ｗハッシュファイル作成部２１３は、新しいＦ／Ｗ２９１の各分割データのハッシュ値を設定した新Ｆ／Ｗハッシュファイル２９３を生成し、生成した新Ｆ／Ｗハッシュファイル２９３をパソコン側記憶部２９０に記憶する。
【００２８】
差分情報ファイル作成部２１４は、更新前Ｆ／Ｗの分割データ毎に当該更新前Ｆ／Ｗの分割データとデータの並び順が対応する新しいＦ／Ｗ２９１の分割データと同じであるか否かを示す差分情報ファイル２９４をＣＰＵを用いて生成し、生成した差分情報ファイル２９４をパソコン側記憶部２９０に記憶する。
例えば、差分情報ファイル作成部２１４は、更新前Ｆ／Ｗハッシュファイル２９２に設定されているハッシュ値と新Ｆ／Ｗハッシュファイル２９３に設定されているハッシュ値とに基づいて差分情報ファイル２９４を生成する。
また例えば、差分情報ファイル作成部２１４は、更新前Ｆ／Ｗの分割データ毎に当該更新前Ｆ／Ｗの分割データとデータの並び順が対応する新しいＦ／Ｗ２９１の分割データと同じであるか否かを１ビットで表して差分情報ファイル２９４を生成する。
【００２９】
差分データ出力部２１５は、差分情報ファイル２９４に基づいて、新しいＦ／Ｗ２９１の複数の分割データのうち、データの並び順が対応する更新前Ｆ／Ｗの分割データと異なる各分割データをＣＰＵを用いて特定する。
さらに、差分情報ファイル作成部２１４は、特定した新しいＦ／Ｗ２９１の各分割データを差分データとしてパソコン側通信部２１９を用いて特定の組み込み機器に送信する。
【００３０】
図３は、実施の形態１におけるパソコン２００のハードウェア資源の一例を示す図である。
図３において、パソコン２００は、ＣＰＵ９１１（マイクロプロセッサ、マイクロコンピュータともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、ドライブ装置９０４、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。ドライブ装置９０４は、ＦＤ（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）などの記憶媒体を読み書きする装置である。
【００３１】
通信ボード９１５は、有線または無線で、ＬＡＮ、インターネット、電話回線などの通信網を介して（または、直接）、各組み込み機器に接続している。
【００３２】
磁気ディスク装置９２０には、ＯＳ９２１（オペレーティングシステム）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。
【００３３】
プログラム群９２３には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラムは、ＣＰＵ９１１により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
【００３４】
ファイル群９２４には、実施の形態において説明する「〜部」で使用される各種データ（入力、出力、判定結果、計算結果、処理結果など）が含まれる。
【００３５】
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
【００３６】
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
【００３７】
図４および図５は、実施の形態１におけるＦ／Ｗ更新方法の概要図である。
実施の形態１におけるＦ／Ｗ更新方法の概要について、図４および図５に基づいて以下に説明する。
【００３８】
図４において、パソコン２００のパソコン側ツール２１０は、新しいＦ／Ｗ２９１を構成する各ブロックのハッシュ値を設定した新Ｆ／Ｗハッシュファイル２９３を生成（Ｓ１３０）すると共に、組み込み機器の更新前Ｆ／Ｗを構成する各ブロックのハッシュ値を設定した更新前Ｆ／Ｗハッシュファイル２９２を生成する（Ｓ１２０）。
パソコン側ツール２１０は、新Ｆ／Ｗハッシュファイル２９３に設定された各ハッシュ値と更新前Ｆ／Ｗハッシュファイル２９２に設定された各ハッシュ値とを比較して、新Ｆ／Ｗハッシュファイル２９３の各ブロックと更新前Ｆ／Ｗハッシュファイル２９２の各ブロックとが同じであるか否かを示す差分情報ファイル２９４を生成する（Ｓ１４０）。
パソコン側ツール２１０は、生成した差分情報ファイル２９４を組み込み機器へ送信する（Ｓ１１４）。
【００３９】
図５において、組み込み機器のＦ／Ｗ更新タスク３１０は、パソコン側ツール２１０から送信された差分情報ファイル２９４を参照して更新前Ｆ／Ｗの各ブロックのうち新しいＦ／Ｗ２９１と異なるブロックをイレースする（Ｓ１５０）。
パソコン側ツール２１０は、差分情報ファイル２９４を参照して新しいＦ／Ｗ２９１から更新前Ｆ／Ｗと異なるブロックを読み出して組み込み機器に送信する（Ｓ１６１〜Ｓ１６３）。
Ｆ／Ｗ更新タスク３１０は、送信された新しいＦ／Ｗ２９１のブロックを更新前Ｆ／Ｗの当該ブロックに書き出して更新前Ｆ／Ｗを更新する（Ｓ１６４）。
【００４０】
図４および図５に示した「Ｓｘｘｘ」は、以下に説明するフローチャートの処理番号に対応している。
【００４１】
図６および図７は、実施の形態１におけるＦ／Ｗ更新方法を示すフローチャートである。
実施の形態１におけるＦ／Ｗ更新方法（データ更新方法の一例）について、図６および図７に基づいて以下に説明する。
【００４２】
パソコン側ツール２１０の各「〜部」と各組み込み機器のＦ／Ｗ更新タスク３１０とは、以下に説明する各処理（Ｓ１１０〜Ｓ１１９）をＣＰＵを用いて実行する。
【００４３】
ツール制御部２１１は機器構成管理ファイル２９９から組み込み機器を一つ選択する（Ｓ１１０）。
ツール制御部２１１は選択機器Ｆ／Ｗのバージョンに対応する更新前Ｆ／Ｗハッシュファイル２９２がパソコン側記憶部２９０に有るか確認する（Ｓ１１１）。更新前Ｆ／Ｗハッシュファイル２９２が無い場合、更新前Ｆ／Ｗハッシュファイル作成部２１２は更新前Ｆ／Ｗハッシュファイル２９２を作成する（Ｓ１２０）。
ツール制御部２１１は選択機器Ｆ／Ｗのブロックサイズに対応する新Ｆ／Ｗハッシュファイル２９３がパソコン側記憶部２９０に有るか確認する（Ｓ１１２）。新Ｆ／Ｗハッシュファイル２９３が無い場合、新Ｆ／Ｗハッシュファイル作成部２１３は新Ｆ／Ｗハッシュファイル２９３を作成する（Ｓ１３０）。
ツール制御部２１１は更新前Ｆ／Ｗハッシュファイル２９２と新Ｆ／Ｗハッシュファイル２９３とに対応する差分情報ファイル２９４がパソコン側記憶部２９０に有るか確認する（Ｓ１１３）。差分情報ファイル２９４が無い場合、差分情報ファイル作成部２１４は差分情報ファイル２９４を作成する（Ｓ１４０）。
パソコン側通信部２１９は差分情報ファイル２９４を含んだイレース命令コマンドを選択機器へ送信し（Ｓ１１４）、選択機器のＦ／Ｗ更新タスク３１０は差分情報ファイル２９４に基づいて差分領域をイレースする（Ｓ１５０）。
差分データ出力部２１５は差分情報ファイル２９４に基づいて新しいＦ／Ｗ２９１の差分データを含んだ書き込み要求コマンドを選択機器へ送信し（Ｓ１６１〜Ｓ１６３）、選択機器のＦ／Ｗ更新タスク３１０は新しいＦ／Ｗ２９１の差分データを更新前Ｆ／Ｗの書き込み領域へ書き込む（Ｓ１６４）。Ｓ１６１〜Ｓ１６４は新しいＦ／Ｗ２９１の全差分ブロックが更新前Ｆ／Ｗに書き込みされるまで繰り返される（Ｓ１６５、Ｓ１６６）。
Ｓ１１０〜Ｓ１６６は、組み込み機器毎に繰り返される（Ｓ１１９）。
【００４４】
以下に、各処理（Ｓ１１０〜Ｓ１１９）の詳細について説明する。
【００４５】
＜Ｓ１１０＞
ツール制御部２１１は、機器構成管理ファイル２９９を参照して複数の組み込み機器の中から組み込み機器を一つ選択する。
Ｓ１１０から後述するＳ１１９までの処理はループ処理される。
例えば、ツール制御部２１１は、更新前Ｆ／Ｗのバージョンの古い順、機器構成管理ファイル２９９内での設定順に組み込み機器を選択する。
【００４６】
図８は、実施の形態１における機器構成管理ファイル２９９の構成を示す図である。
実施の形態１における機器構成管理ファイル２９９について、図８に基づいて以下に説明する。
【００４７】
機器構成管理ファイル２９９には「組み込み機器」「Ｆ／Ｗのバージョン」「イレース単位サイズ」「書き込み単位サイズ」がシステム管理者により予め設定されている。
【００４８】
「組み込み機器」は、各組み込み機器の識別情報（例えば、名称）を示す。
「Ｆ／Ｗのバージョン」は、当該組み込み機器に組み込まれている更新前Ｆ／Ｗのバージョン情報（例えば、バージョン番号）を示す。
「イレース単位サイズ」は、当該組み込み機器により更新前Ｆ／Ｗに対して１回あたりにイレースされるデータのサイズを示す。
「書き込み単位サイズ」は、当該組み込み機器により更新前Ｆ／Ｗに対して１回あたりに書き込まれるデータのサイズを示す。
【００４９】
イレース単位サイズと書き込み単位サイズは更新前Ｆ／Ｗのデータサイズより小さいものとする。
【００５０】
Ｓ１１０（図６）において、ツール制御部２１１は、初回のループ時には更新前Ｆ／Ｗのバージョンが最も古い組み込み機器Ａ３０１と組み込み機器Ｂ３０２とのうち機器構成管理ファイル２９９に先に設定されている組み込み機器Ａ３０１を選択し、２回目のループ時には組み込み機器Ｂ３０２を選択するものとする。
また、ツール制御部２１１は、３回目のループ時には更新前Ｆ／Ｗのバージョンが次に古い組み込み機器Ｃ３０３と組み込み機器Ｄ３０４とのうち機器構成管理ファイル２９９に先に設定されている組み込み機器Ｃ３０３を選択し、４回目のループ時には組み込み機器Ｄ３０４を選択するものとする。
【００５１】
Ｆ／Ｗ更新方法（図６、７）の説明を続ける。
【００５２】
Ｓ１１０の後、処理はＳ１１１に進む。
【００５３】
＜Ｓ１１１＞
ツール制御部２１１は、Ｓ１１０において選択した組み込み機器（以下、「選択機器」という）の更新前Ｆ／Ｗのバージョンに対応する更新前Ｆ／Ｗハッシュファイル２９２がパソコン側記憶部２９０に有るか確認する。
更新前Ｆ／Ｗハッシュファイル２９２は、更新前Ｆ／Ｗのバージョン毎に作成される。
【００５４】
当該更新前Ｆ／Ｗハッシュファイル２９２が有る場合、処理はＳ１１２に進み、当該更新前Ｆ／Ｗハッシュファイル２９２が無い場合、処理はＳ１２０に進む。
【００５５】
初回のループ時（選択機器は「組み込み機器Ａ３０１」）、当該更新前Ｆ／Ｗハッシュファイル２９２は無いため、処理はＳ１２０に進み、Ｓ１２０において当該更新前Ｆ／Ｗハッシュファイル２９２が生成される。
２回目のループ時（選択機器は「組み込み機器Ｂ３０２」）、組み込み機器Ａ３０１の更新前Ｆ／Ｗと組み込み機器Ｂ３０２の更新前Ｆ／Ｗとのバージョンが同じであるため（図８参照）、初回のループ時に生成された更新前Ｆ／Ｗハッシュファイル２９２が当該更新前Ｆ／Ｗハッシュファイル２９２となり、処理はＳ１１２に進む。
３回目のループ時（選択機器は「組み込み機器Ｃ３０３」）、当該更新前Ｆ／Ｗハッシュファイル２９２は無いため、処理はＳ１２０に進み、Ｓ１２０において当該更新前Ｆ／Ｗハッシュファイル２９２が生成される。
４回目のループ時（選択機器は「組み込み機器Ｄ３０４」）、組み込み機器Ｃ３０３の更新前Ｆ／Ｗと組み込み機器Ｄ３０４の更新前Ｆ／Ｗとのバージョンが同じであるため（図８参照）、３回目のループ時に生成された更新前Ｆ／Ｗハッシュファイル２９２が当該更新前Ｆ／Ｗハッシュファイル２９２となり、処理はＳ１１２に進む。
【００５６】
＜Ｓ１２０：更新前Ｆ／Ｗハッシュファイル作成処理＞
更新前Ｆ／Ｗハッシュファイル作成部２１２は、機器構成管理ファイル２９９に基づいて、選択機器の更新前Ｆ／Ｗのバージョンに対応する更新前Ｆ／Ｗハッシュファイル２９２を作成する。
更新前Ｆ／Ｗハッシュファイル２９２は、選択機器の更新前Ｆ／Ｗのバージョンに対応する特定のブロックサイズで分割した更新前Ｆ／Ｗのブロック順に、各ブロックのハッシュ値を並べたデータである。
以下、選択機器の更新前Ｆ／Ｗを「選択機器Ｆ／Ｗ」という。
【００５７】
図９は、実施の形態１における更新前Ｆ／Ｗハッシュファイル作成処理（Ｓ１２０）のフローチャートである。
実施の形態１における更新前Ｆ／Ｗハッシュファイル作成処理（Ｓ１２０）について、図９に基づいて以下に説明する。
【００５８】
＜Ｓ１２１＞
更新前Ｆ／Ｗハッシュファイル作成部２１２は、機器構成管理ファイル２９９に基づいて、更新前Ｆ／Ｗのバージョンが選択機器と同じである組み込み機器を特定する。
選択機器が「組み込み機器Ａ３０１」である場合、特定される組み込み機器は「組み込み機器Ｂ３０２」である（図８参照）。
Ｓ１２１の後、処理はＳ１２２に進む。
【００５９】
＜Ｓ１２２＞
更新前Ｆ／Ｗハッシュファイル作成部２１２は、機器構成管理ファイル２９９に基づいて、選択機器の「イレース単位サイズ」と選択機器の「書き込み単位サイズ」と特定機器（Ｓ１２１において特定された組み込み機器）の「イレース単位サイズ」と特定機器の「書き込み単位サイズ」との最小公倍数をブロックサイズとして算出する。
選択機器が「組み込み機器Ａ３０１」であり、特定機器が「組み込み機器Ｂ３０２」である場合、更新前Ｆ／Ｗハッシュファイル作成部２１２は「ＥＡ」「ＷＡ」「ＥＢ」「ＷＢ」の最小公倍数をブロックサイズとして算出する（図８参照）。
【００６０】
ブロックサイズは「書き込み単位サイズ」と「イレース単位サイズ」との公倍数であれば最小公倍数でなくても構わない。さらに、イレースが不要であれば、ブロックサイズは「書き込み単位サイズ」の公倍数であれば構わない。
但し、ブロックサイズが大きくなるに従い、２つのＦ／Ｗの差分情報の粒度が大きくなり、１つのブロックのデータが異なる可能性が高くなり、結果的にＦ／Ｗの更新速度が遅くなる可能性が高くなる。
【００６１】
Ｓ１２２の後、処理はＳ１２３に進む。
【００６２】
＜Ｓ１２３＞
更新前Ｆ／Ｗハッシュファイル作成部２１２は、選択機器Ｆ／ＷをＳ１２２において算出したブロックサイズで複数のブロックに分割する。
Ｓ１２３の後、処理はＳ１２４に進む。
【００６３】
＜Ｓ１２４＞
更新前Ｆ／Ｗハッシュファイル作成部２１２は、所定のハッシュ関数を用いて、Ｓ１２３で得られた複数のブロックそれぞれについてハッシュ値を算出する。
同一のハッシュ関数を用いて算出されたハッシュ値が同じである２つのデータは同じデータである。
ハッシュ関数は、処理速度を速めるために計算量とハッシュ長とが小さければ小さいほど良い。
Ｓ１２４の後、処理はＳ１２５に進む。
【００６４】
＜Ｓ１２５＞
更新前Ｆ／Ｗハッシュファイル作成部２１２は、Ｓ１２４において算出した各ブロックのハッシュ値を設定した更新前Ｆ／Ｗハッシュファイル２９２を作成する。
Ｓ１２５の後、処理はＳ１２６に進む。
【００６５】
＜Ｓ１２６＞
更新前Ｆ／Ｗハッシュファイル作成部２１２は、Ｓ１２５において作成した更新前Ｆ／Ｗハッシュファイル２９２をパソコン側記憶部２９０に記憶する。
Ｓ１２６の後、更新前Ｆ／Ｗハッシュファイル作成処理（Ｓ１２０）は終了する。
【００６６】
図１０は、実施の形態１における更新前Ｆ／Ｗと更新前Ｆ／Ｗハッシュファイル２９２との関係図である。
図１０を含む各図において、「０ｘ」は１６進数表記を意味する。例えば、「０ｘＦＦ」は１０進数の「２５５」を示す。
図１０に示すように、ブロックサイズが「３バイト」である場合、更新前Ｆ／Ｗは３バイトずつに分割され（Ｓ１２３）、各ブロック（第１ブロック、第２ブロック、・・・）のハッシュ値が計算され（Ｓ１２４）、各ブロックのハッシュ値が更新前Ｆ／Ｗハッシュファイル２９２に順に設定される（Ｓ１２５）。
【００６７】
図６に戻り、Ｆ／Ｗ更新方法の説明を続ける。
【００６８】
Ｓ１２０の後、処理はＳ１１２に進む。
【００６９】
＜Ｓ１１２＞
ツール制御部２１１は、選択機器Ｆ／Ｗのブロックサイズ（Ｓ１２２において算出された値）に対応する新Ｆ／Ｗハッシュファイル２９３がパソコン側記憶部２９０に有るか確認する。
新Ｆ／Ｗハッシュファイル２９３は、ブロックサイズ毎に作成される。
【００７０】
当該新Ｆ／Ｗハッシュファイル２９３が有る場合、処理はＳ１１３に進み、当該新Ｆ／Ｗハッシュファイル２９３が無い場合、処理はＳ１３０に進む。
【００７１】
初回のループ時（選択機器は「組み込み機器Ａ３０１」）、当該新Ｆ／Ｗハッシュファイル２９３は無いため、処理はＳ１３０に進み、Ｓ１３０において当該新Ｆ／Ｗハッシュファイル２９３が生成される。
２回目のループ時（選択機器は「組み込み機器Ｂ３０２」）、組み込み機器Ａ３０１の更新前Ｆ／Ｗと組み込み機器Ｂ３０２の更新前Ｆ／Ｗとのブロックサイズが共通するため（Ｓ１２２参照）、初回のループ時に生成された新Ｆ／Ｗハッシュファイル２９３が当該新Ｆ／Ｗハッシュファイル２９３となり、処理はＳ１１３に進む。
３回目のループ時（選択機器は「組み込み機器Ｃ３０３」）、組み込み機器Ａ３０１の更新前Ｆ／Ｗと組み込み機器Ｃ３０３の更新前Ｆ／Ｗとのブロックサイズが同じであれば、初回のループ時に生成された新Ｆ／Ｗハッシュファイル２９３が当該新Ｆ／Ｗハッシュファイル２９３となり、処理はＳ１１３に進む。
３回目のループ時（選択機器は「組み込み機器Ｃ３０３」）、組み込み機器Ａ３０１の更新前Ｆ／Ｗと組み込み機器Ｃ３０３の更新前Ｆ／Ｗとのブロックサイズが異なれば、当該新Ｆ／Ｗハッシュファイル２９３は無いため処理はＳ１３０に進み、Ｓ１３０において当該新Ｆ／Ｗハッシュファイル２９３が生成される。
４回目のループ時（選択機器は「組み込み機器Ｄ３０４」）、組み込み機器Ｃ３０３の更新前Ｆ／Ｗと組み込み機器Ｄ３０４の更新前Ｆ／Ｗとのブロックサイズが共通するため（Ｓ１２２参照）、３回目のループ時（または初回のループ時）に生成された新Ｆ／Ｗハッシュファイル２９３が当該新Ｆ／Ｗハッシュファイル２９３となり、処理はＳ１１３に進む。
【００７２】
＜Ｓ１３０：新Ｆ／Ｗハッシュファイル作成処理＞
新Ｆ／Ｗハッシュファイル作成部２１３は、Ｓ１２０の更新前Ｆ／Ｗハッシュファイル作成部２１２と同様にして、選択機器Ｆ／Ｗのブロックサイズに対応する新Ｆ／Ｗハッシュファイル２９３を作成する。
新Ｆ／Ｗハッシュファイル２９３は、選択機器Ｆ／Ｗのブロックサイズで分割した新しいＦ／Ｗ２９１のブロック順に、各ブロックのハッシュ値を並べたデータである。
【００７３】
図１１は、実施の形態１における新Ｆ／Ｗハッシュファイル作成処理（Ｓ１３０）のフローチャートである。
実施の形態１における新Ｆ／Ｗハッシュファイル作成処理（Ｓ１３０）について、図１０および図１１に基づいて以下に説明する。
【００７４】
新Ｆ／Ｗハッシュファイル作成部２１３は、新しいＦ／Ｗ２９１をブロックサイズ（Ｓ１２２において算出された値）で複数のブロックに分割し（Ｓ１３１）、所定のハッシュ関数（Ｓ１２４で用いられたハッシュ関数）を用いて分割ブロック毎にハッシュ値を算出する（Ｓ１３２）。
そして、新Ｆ／Ｗハッシュファイル作成部２１３は、各ブロックのハッシュ値を設定した新Ｆ／Ｗハッシュファイル２９３を作成し（Ｓ１３３）、新Ｆ／Ｗハッシュファイル２９３をパソコン側記憶部２９０に記憶する（Ｓ１３４）。
【００７５】
図６に戻り、Ｆ／Ｗ更新方法の説明を続ける。
【００７６】
Ｓ１３０の後、処理はＳ１１３に進む。
【００７７】
＜Ｓ１１３＞
ツール制御部２１１は、選択機器Ｆ／Ｗのバージョンに対応する更新前Ｆ／Ｗハッシュファイル２９２と選択機器Ｆ／Ｗのブロックサイズに対応する新Ｆ／Ｗハッシュファイル２９３とに対応する差分情報ファイル２９４がパソコン側記憶部２９０に有るか確認する。
差分情報ファイル２９４は、更新前Ｆ／Ｗハッシュファイル２９２と新Ｆ／Ｗハッシュファイル２９３との組み合わせ毎に作成される。
【００７８】
当該差分情報ファイル２９４が有る場合、処理はＳ１１４に進み、当該差分情報ファイル２９４が無い場合、処理はＳ１４０に進む。
【００７９】
初回のループ時（選択機器は「組み込み機器Ａ３０１」）、当該差分情報ファイル２９４は無いため、処理はＳ１４０に進み、Ｓ１４０において当該差分情報ファイル２９４が生成される。
２回目のループ時（選択機器は「組み込み機器Ｂ３０２」）、組み込み機器Ａ３０１の更新前Ｆ／Ｗと組み込み機器Ｂ３０２の更新前Ｆ／Ｗとのバージョンおよびブロックサイズが共通するため、初回のループ時に生成された差分情報ファイル２９４が当該差分情報ファイル２９４となり、処理はＳ１１４に進む。
３回目のループ時（選択機器は「組み込み機器Ｃ３０３」）、当該新Ｆ／Ｗハッシュファイル２９３は無いため、処理はＳ１４０に進み、Ｓ１４０において当該差分情報ファイル２９４が生成される。
４回目のループ時（選択機器は「組み込み機器Ｄ３０４」）、組み込み機器Ｃ３０３の更新前Ｆ／Ｗと組み込み機器Ｄ３０４の更新前Ｆ／Ｗとのバージョンおよびブロックサイズが共通するため、３回目のループ時に生成された差分情報ファイル２９４が当該差分情報ファイル２９４となり、処理はＳ１１４に進む。
【００８０】
＜Ｓ１４０：差分情報ファイル作成処理＞
差分情報ファイル作成部２１４は、選択機器Ｆ／Ｗのバージョンに対応する更新前Ｆ／Ｗハッシュファイル２９２と選択機器Ｆ／Ｗのブロックサイズに対応する新Ｆ／Ｗハッシュファイル２９３とに基づいて、差分情報ファイル２９４を作成する。
差分情報ファイル２９４は、更新前Ｆ／Ｗハッシュファイル２９２に設定されているハッシュ値と新Ｆ／Ｗハッシュファイル２９３に設定されているハッシュ値とを順番に一つずつ比較した結果を１ビット（一致「０」、不一致「１」）で示すビット列データである。
【００８１】
図１２は、実施の形態１における差分情報ファイル作成処理（Ｓ１４０）の概要図である。
実施の形態１における差分情報ファイル作成処理（Ｓ１４０）について、図１２に基づいて以下に説明する。
【００８２】
例えば、更新前Ｆ／Ｗハッシュファイル２９２と新Ｆ／Ｗハッシュファイル２９３とが図１２の値を示す場合、差分情報ファイル作成部２１４は以下のようにして差分情報ファイル２９４を作成する。
まず、差分情報ファイル作成部２１４は、更新前Ｆ／Ｗハッシュファイル２９２の１番目のハッシュ値「０ｘＦＦ」と新Ｆ／Ｗハッシュファイル２９３の１番目のハッシュ値「０ｘＦＦ」とが一致するため、差分情報ファイル２９４の１ビット目に「一致」を示すビット「０」を設定する。
次に、差分情報ファイル作成部２１４は、更新前Ｆ／Ｗハッシュファイル２９２の２番目のハッシュ値「０ｘ３Ｃ」と新Ｆ／Ｗハッシュファイル２９３の２番目のハッシュ値「０ｘ００」とが一致しないため、差分情報ファイル２９４の２ビット目に「不一致」を示すビット「１」を設定する。
以下同様に、差分情報ファイル作成部２１４は、更新前Ｆ／Ｗハッシュファイル２９２のｘ番目のハッシュ値と新Ｆ／Ｗハッシュファイル２９３のｘ番目のハッシュ値を比較し、一致する場合には差分情報ファイル２９４のｘビット目にビット「０」を設定し、一致しない場合には差分情報ファイル２９４のｘビット目にビット「１」を設定する。
【００８３】
前述の通り、同一のハッシュ関数を用いて算出されたハッシュ値が同じである２つのデータは同じデータであるため、差分情報ファイル２９４に設定されたビット「０」は選択機器Ｆ／Ｗの当該ブロックと新しいＦ／Ｗ２９１の当該ブロックとが同じデータであることを示し、差分情報ファイル２９４に設定されたビット「１」は選択機器Ｆ／Ｗの当該ブロックと新しいＦ／Ｗ２９１の当該ブロックとが異なるデータであることを示す。
つまり、図１２の差分情報ファイル２９４は、ブロックサイズが「３バイト」である場合、選択機器Ｆ／Ｗの先頭ブロック（先頭から３バイトのデータ）と新しいＦ／Ｗ２９１の先頭ブロックとが同じデータであることを示している。
また、選択機器Ｆ／Ｗの２番目のブロック（４バイト目から３バイトのデータ）と新しいＦ／Ｗ２９１の２番目のブロックとが異なるデータであることを示している。
【００８４】
図６に戻り、Ｆ／Ｗ更新方法の説明を続ける。
【００８５】
Ｓ１４０の後、処理はＳ１１４に進む。
【００８６】
＜Ｓ１１４＞
ツール制御部２１１は、選択機器Ｆ／Ｗのバージョンに対応する更新前Ｆ／Ｗハッシュファイル２９２と選択機器Ｆ／Ｗのブロックサイズに対応する新Ｆ／Ｗハッシュファイル２９３とに対応する差分情報ファイル２９４を含むと共に、選択機器Ｆ／Ｗのブロックサイズを含んだイレース要求コマンドを生成する。
ツール制御部２１１は、生成したイレース命令コマンドをパソコン側通信部２１９を用いて選択機器へ送信する。
イレース要求コマンドは、選択機器Ｆ／Ｗの差分領域のイレースを要求するコマンド１１０である。
差分領域は、選択機器Ｆ／Ｗの各ブロックのうち新しいＦ／Ｗ２９１の対応ブロック（Ｆ／Ｗ内での並び順が対応するブロック）とデータの異なるブロックを意味する。
イレースは、データの削除、初期値の設定、メモリ領域の初期化などを意味する。
Ｓ１１４の後、処理はＳ１５０に進む。
【００８７】
＜Ｓ１５０：更新前Ｆ／Ｗ差分領域イレース処理＞
選択機器のＦ／Ｗ更新タスク３１０は、Ｓ１１４において送信されたイレース要求コマンドを受信し、受信したイレース命令コマンドに含まれる差分情報ファイル２９４およびブロックサイズに基づいて更新前Ｆ／Ｗの差分領域をイレースする。
【００８８】
図１３は、実施の形態１における更新前Ｆ／Ｗ差分領域イレース処理（Ｓ１５０）の概要図である。
実施の形態１における更新前Ｆ／Ｗ差分領域イレース処理（Ｓ１５０）の概要について、図１３に基づいて以下に説明する。
【００８９】
Ｆ／Ｗ更新タスク３１０は、差分情報ファイル２９４のビットが更新前Ｆ／Ｗと新しいＦ／Ｗ２９１との対応ブロックの一致を意味するビット「０」である場合（Ｓ１５３）、当該ビットに対応する更新前Ｆ／Ｗのブロックをイレースしない。
Ｆ／Ｗ更新タスク３１０は、差分情報ファイル２９４のビットが更新前Ｆ／Ｗと新しいＦ／Ｗ２９１との対応ブロックの不一致を意味するビット「１」である場合（Ｓ１５３）、当該ビットに対応する更新前Ｆ／Ｗのブロックを特定し（Ｓ１５４）、特定したブロックを所定のイレース単位サイズずつイレースする（Ｓ１５５）。
イレース単位サイズは、Ｆ／Ｗ更新タスク３１０が更新前Ｆ／Ｗをイレースできる１回あたりのデータサイズである。
【００９０】
図１３において、Ｆ／Ｗ更新タスク３１０は、差分情報ファイル２９４の先頭ビット（１ビット目）が「０」であるため、更新前Ｆ／Ｗの第１ブロックをイレースしない。
また、Ｆ／Ｗ更新タスク３１０は、差分情報ファイル２９４の２ビット目が「１」であるため、更新前Ｆ／Ｗの第２ブロックをイレース単位サイズずつイレースする。
【００９１】
図中のＳ１５３〜Ｓ１５５は、次に説明するフローチャートの処理番号に対応している。
【００９２】
図１４は、実施の形態１における更新前Ｆ／Ｗ差分領域イレース処理（Ｓ１５０）のフローチャートである。
実施の形態１における更新前Ｆ／Ｗ差分領域イレース処理（Ｓ１５０）の流れについて、図１４に基づいて以下に説明する。
【００９３】
＜Ｓ１５１＞
選択機器のＦ／Ｗ更新タスク３１０は、差分情報ファイル２９４とブロックサイズとを含んだイレース要求コマンドを受信する。
Ｓ１５１の後、処理はＳ１５２に進む。
【００９４】
＜Ｓ１５２＞
Ｆ／Ｗ更新タスク３１０は、差分情報ファイル２９４から１ビットを取得する。
Ｓ１５２から後述するＳ１５７までの処理はループ処理される。
Ｆ／Ｗ更新タスク３１０は、初回のループ時には差分情報ファイル２９４の先頭ビット（１ビット目）を取得し、２回目のループ時には差分情報ファイル２９４の２ビット目を取得する。
差分情報ファイル２９４が５ビットである場合、Ｓ１５２〜Ｓ１５７は５回ループする。
Ｓ１５２の後、処理はＳ１５３に進む。
【００９５】
＜Ｓ１５３＞
Ｆ／Ｗ更新タスク３１０は、Ｓ１５２で取得した１ビット（以下、「取得ビット」という）が、更新前Ｆ／Ｗと新しいＦ／Ｗ２９１との対応ブロックの一致を意味するビット「０」であるか、または更新前Ｆ／Ｗと新しいＦ／Ｗ２９１との対応ブロックの不一致を意味するビット「１」であるかを判定する。
取得ビットがビット「０」である場合、処理はＳ１５７に進み、取得ビットがビット「１」である場合、処理はＳ１５４に進む。
【００９６】
＜Ｓ１５４＞
Ｆ／Ｗ更新タスク３１０は、差分情報ファイル２９４に含まれるブロックサイズに基づいて、更新前Ｆ／Ｗ内から取得ビット（ビット「１」）に対応するブロック（以下、「差分ブロック」という）を特定する。
例えば、ブロックサイズが「１２バイト」であり、取得ビットが差分情報ファイル２９４の１ビット目である場合、差分ブロックは差分情報ファイル２９４の先頭から１２バイトの領域である。
また、取得ビットが差分情報ファイル２９４の２ビット目である場合、差分ブロックは差分情報ファイル２９４の１３バイト目から１２バイトの領域である。
Ｓ１５４の後、処理はＳ１５５に進む。
【００９７】
＜Ｓ１５５＞
Ｆ／Ｗ更新タスク３１０は、Ｓ１５４で特定した差分ブロックをイレース単位サイズ分イレースする。
Ｓ１５５と後述するＳ１５６とはループ処理される。
イレース単位サイズが「３バイト」である場合、Ｆ／Ｗ更新タスク３１０は、初回のループ時には差分ブロックの先頭から３バイトの領域をイレースし、２回目のループ時には差分ブロックの４バイト目から３バイトの領域をイレースする。
ブロックサイズが「１２バイト」であり、イレース単位サイズが「３バイト」である場合、Ｓ１５５〜Ｓ１５６は４（＝１２÷３）回ループする。
Ｓ１５５の後、処理はＳ１５６に進む。
【００９８】
＜Ｓ１５６＞
Ｆ／Ｗ更新タスク３１０は、Ｓ１５５において差分ブロックの全領域のイレースが完了したか判定する。
差分ブロックのイレースが完了した場合（ＹＥＳ）、処理はＳ１５７に進む。
差分ブロックのイレースが完了していない場合（ＮＯ）、処理はＳ１５５に戻る。
【００９９】
＜Ｓ１５７＞
Ｆ／Ｗ更新タスク３１０は、Ｓ１４２において差分情報ファイル２９４の全ビットを取得した場合に差分情報ファイル２９４の処理を完了したと判定し、Ｓ１４２において差分情報ファイル２９４に取得していないビットがある場合に差分情報ファイル２９４の処理を完了していないと判定する。
差分情報ファイル２９４の処理を完了した場合（ＹＥＳ）、更新前Ｆ／Ｗ差分領域イレース処理（Ｓ１５０）は終了する。
差分情報ファイル２９４の処理を完了していない場合（ＮＯ）、処理はＳ１５２に戻る。
【０１００】
図６に戻り、Ｆ／Ｗ更新方法の説明を続ける。
【０１０１】
Ｓ１５０の後、処理はＳ１６０（図７）に進む。
【０１０２】
＜Ｓ１６０：更新前Ｆ／Ｗ差分領域書き込み処理＞
差分データ出力部２１５は新しいＦ／Ｗ２９１の差分領域のデータを書き込み単位サイズずつ選択機器へ送信し、選択機器のＦ／Ｗ更新タスク３１０は受信した新しいＦ／Ｗ２９１の差分領域のデータを更新前Ｆ／Ｗに書き込んで更新前Ｆ／Ｗを更新する（Ｓ１６１〜Ｓ１６６）。
【０１０３】
図１５は、実施の形態１における更新前Ｆ／Ｗ差分領域書き込み処理（Ｓ１６０）の概要図である。
実施の形態１における更新前Ｆ／Ｗ差分領域書き込み処理（Ｓ１６０）の概要について、図１５に基づいて以下に説明する。
【０１０４】
パソコン側ツール２１０は、差分情報ファイル２９４のビットが更新前Ｆ／Ｗと新しいＦ／Ｗ２９１との対応ブロックの一致を意味するビット「０」である場合、当該ビットに対応する新しいＦ／Ｗ２９１のブロックを組み込み機器（選択機器）へ送信しない（Ｓ１６１）。
パソコン側ツール２１０は、差分情報ファイル２９４のビットが更新前Ｆ／Ｗと新しいＦ／Ｗ２９１との対応ブロックの不一致を意味するビット「１」である場合、当該ビットに対応する新しいＦ／Ｗ２９１のブロックを特定し（Ｓ１６１）、特定したブロックを所定の書き込み単位サイズずつ読み込み（Ｓ１６２）、読み込んだ差分データを組み込み機器（選択機器）へ送信する（Ｓ１６３）。
書き込み単位サイズは、組み込み機器のＦ／Ｗ更新タスク３１０が更新前Ｆ／Ｗのメモリ領域に書き込みできる１回あたりのデータサイズであり、機器構成管理ファイル２９９に設定されている。
【０１０５】
図１５において、パソコン側ツール２１０は、差分情報ファイル２９４の先頭ビット（１ビット目）が「０」であるため、新しいＦ／Ｗ２９１の第１ブロックを送信しない。
また、パソコン側ツール２１０は、差分情報ファイル２９４の２ビット目が「１」であるため、新しいＦ／Ｗ２９１の第２ブロックを書き込み単位サイズずつ読み込んで送信する。
【０１０６】
組み込み機器のＦ／Ｗ更新タスク３１０は、Ｆ／Ｗ更新タスク３１０により送信された各差分データを更新前Ｆ／Ｗの対応領域に書き込む（Ｓ１６４）。
【０１０７】
図中のＳ１６１〜Ｓ１６４は、以下に説明するフローチャートの処理番号に対応している。
【０１０８】
図７に戻り、Ｆ／Ｗ更新方法の説明をＳ１６０のＳ１６１から続ける。
【０１０９】
＜Ｓ１６１＞
差分データ出力部２１５は、差分情報ファイル２９４から値が「１」であるビットを検索し、値が「１」であるビットに対応する新しいＦ／Ｗ２９１の差分ブロックを一つ特定する。
Ｓ１６１から後述するＳ１６６までの処理はループ処理される。
差分データ出力部２１５は、初回のループ時には差分情報ファイル２９４内で値が「１」である各ビットのうち１番目のビットに対応する新しいＦ／Ｗ２９１の差分ブロックを特定し、２回目のループ時には２番目のビット（ビット値「１」）に対応する新しいＦ／Ｗ２９１の差分ブロックを特定する。
差分情報ファイル２９４の先頭ビット（１ビット目）が「１」であれば、新しいＦ／Ｗ２９１の先頭ブロック（第１ブロック）は差分ブロックである。差分情報ファイル２９４の２ビット目が「１」であれば、新しいＦ／Ｗ２９１の第２ブロックは差分ブロックである。
差分情報ファイル２９４に値が「１」であるビットが５つある場合、Ｓ１６１〜Ｓ１６６は５回ループする。
Ｓ１６１の後、処理はＳ１６２に進む。
【０１１０】
＜Ｓ１６２＞
差分データ出力部２１５は、差分特定ブロック（Ｓ１６１で特定した新しいＦ／Ｗ２９１の差分ブロック）のデータを選択機器Ｆ／Ｗの書き込み単位サイズ分読み込む。選択機器Ｆ／Ｗの書き込み単位サイズは機器構成管理ファイル２９９に設定されている。
Ｓ１６２から後述するＳ１６５までの処理はループ処理される。
書き込み単位サイズが「４バイト」である場合、差分データ出力部２１５は、初回のループ時には差分特定ブロックの先頭から４バイトの領域を読み込み、２回目のループ時には差分特定ブロックの５バイト目から４バイトの領域を読み込む。
ブロックサイズが「１２バイト」であり、書き込み単位サイズが「４バイト」である場合、Ｓ１６２〜Ｓ１６５は３（＝１２÷４）回ループする。
Ｓ１６２の後、処理はＳ１６３に進む。
【０１１１】
＜Ｓ１６３＞
差分データ出力部２１５は、差分単位データ（Ｓ１６２において読み込んだデータ）と差分単位データを書き込む領域を示す書き込み領域情報（例えば、新しいＦ／Ｗ２９１の先頭から差分単位データの先頭までのバイト数）とを含んだ書き込み要求コマンドを生成する。
差分データ出力部２１５は、生成した書き込み要求コマンドをパソコン側通信部２１９を用いて選択機器へ送信する。
書き込み要求コマンドは、選択機器Ｆ／Ｗのメモリ領域への差分単位データの書き込みを要求するコマンド１１０である。
Ｓ１６３の後、処理はＳ１６４に進む。
【０１１２】
＜Ｓ１６４＞
選択機器のＦ／Ｗ更新タスク３１０は、差分単位データと書き込み領域情報とを含んだ書き込み要求コマンドを受信し、差分単位データを更新前Ｆ／Ｗの書き込み領域に書き込む。
Ｓ１６４の後、処理はＳ１６５に進む。
【０１１３】
＜Ｓ１６５＞
差分データ出力部２１５は、Ｓ１６２において差分特定ブロックのデータを全て読み込んだ場合に差分特定ブロックの処理を完了したと判定し、Ｓ１６２において差分特定ブロックから読み込んでいないデータがある場合に差分特定ブロックの処理を完了していないと判定する。
差分特定ブロックの処理を完了した場合（ＹＥＳ）、処理はＳ１６５に進む。
差分特定ブロックの処理を完了していない場合（ＮＯ）、処理はＳ１６２に戻る。
【０１１４】
＜Ｓ１６６＞
差分データ出力部２１５は、Ｓ１６１において新しいＦ／Ｗ２９１の差分ブロックを全て特定した場合に全差分ブロックの処理を完了したと判定し、Ｓ１６１において新しいＦ／Ｗ２９１に特定していない差分ブロックがある場合に全差分ブロックの処理を完了していないと判定する。
全差分ブロックの処理を完了した場合（ＹＥＳ）、処理はＳ１１９に進む。
全差分ブロックの処理を完了していない場合（ＮＯ）、処理はＳ１６１に戻る。
【０１１５】
＜Ｓ１１９＞
ツール制御部２１１は、Ｓ１１０において組み込み機器を全て選択した場合に全組み込み機器の処理を完了したと判定し、Ｓ１１０において選択していない組み込み機器がある場合に全組み込み機器の処理を完了していないと判定する。
全組み込み機器の処理を完了した場合（ＹＥＳ）、Ｆ／Ｗ更新方法は終了する。
全組み込み機器の処理を完了していない場合（ＮＯ）、処理はＳ１１０に戻る。
【０１１６】
実施の形態１において、例えば、以下のようなＦ／Ｗ更新方式について説明した。
パソコンから複数の組み込み機器へケーブルを介して新しいＦ／Ｗを送信し、複数の組み込み機器に内蔵されている不揮発性メモリ上の更新前Ｆ／Ｗを新しいＦ／Ｗに更新する。
【０１１７】
実施の形態１のＦ／Ｗ更新システムによる組み込み機器のＦ／Ｗの更新は、不揮発性メモリ上の更新前Ｆ／Ｗ全体をイレースするのではなく、新しいＦ／Ｗと更新前のＦ／Ｗ間の差分箇所のみをイレースする。また、新しいＦ／Ｗの全てのデータを書き込むのではなく、新しいＦ／Ｗと更新前のＦ／Ｗ間の差分をパソコン側ツールから組み込み機器へ送信し、書き込む。
データの書き込みに、イレースが不要な不揮発性メモリを内蔵している組み込み機器のＦ／Ｗを更新する場合は、前述のイレース処理は不要である。
このようにすることで、不揮発性メモリへのアクセスエリア数が減少し、パソコン側ツールから組み込み機器へ送信する新しいＦ／Ｗのデータ量が減少する。結果的に組み込み機器のＦ／Ｗの更新速度が向上し、不揮発性メモリの寿命が延長する。
また、この方式は、データの書き込みにイレースが必要な不揮発性メモリを内蔵している組み込み機器、イレースが不要な不揮発性メモリを内蔵している組み込み機器のどちらにも適用できる。
【０１１８】
Ｆ／Ｗの更新時には、新しいＦ／Ｗと更新前Ｆ／Ｗ間の差分情報ファイルを使用する。差分情報ファイルがパソコン上にない場合は新規に作成する。作成した前記差分情報ファイルは、同じバージョンの更新前Ｆ／Ｗを格納している他の複数の組み込み機器の更新に使用でき、１つの組み込み機器のＦ／Ｗの更新の度に差分情報ファイルを作成する必要がない。また、前記複数の組み込み機器のそれぞれのイレース単位、前記それぞれのデータの書き込み単位は異なっていても構わない。差分情報ファイルは、新しいＦ／Ｗのハッシュファイル、更新前Ｆ／Ｗのハッシュファイルを使用して作成するため、前記新しいＦ／Ｗ、前記更新前Ｆ／Ｗの差分箇所の検出が高速に行える。よって、差分情報ファイルが高速に作成できる。また、作成した前記新しいＦ／Ｗのハッシュファイル、前記更新前Ｆ／Ｗのハッシュファイルは、他の複数の組み込み機器の更新時の差分情報ファイルの作成に使用でき、１つの組み込み機器のＦ／Ｗの更新の度に前記ハッシュファイルを作成する必要がない。結果的に、複数の組み込み機器のＦ／Ｗの更新時間の短縮、また、前記複数の組み込み機器に内蔵されている不揮発性メモリへのアクセス回数の減少による不揮発性メモリの寿命の延長が可能となる。
【０１１９】
Ｆ／Ｗ更新方式は、以下の手段を有する。
（１）前記パソコンへ接続されている複数の組み込み機器に内蔵されている不揮発性メモリのイレース単位、Ｆ／Ｗの書き込み単位、前記不揮発性メモリに格納されているＦ／Ｗのバージョンを知る手段（機器構成管理ファイル２９９）。
（２）前記新しいＦ／Ｗのハッシュファイル、前記更新前Ｆ／Ｗのハッシュファイルを作成する手段（更新前Ｆ／Ｗハッシュファイル２９２、新Ｆ／Ｗハッシュファイル２９３）。
（３）前記ハッシュファイル作成の際のブロックサイズを決定する手段（更新前Ｆ／Ｗハッシュファイル２９２）。
（４）前記ハッシュファイルから、前記新しいＦ／Ｗと前記更新前Ｆ／Ｗとの差分情報ファイルを作成する手段（差分情報ファイル２９４）。
（５）前記差分情報ファイルを参照し、前記不揮発性メモリ上の前記更新前Ｆ／Ｗを、前記新しいＦ／Ｗと前記更新前Ｆ／Ｗとの差分箇所のみイレースする手段（Ｆ／Ｗ更新タスク３１０）。
（６）前記差分情報ファイルを参照し、前記新しいＦ／Ｗの前記差分箇所のみを前記パソコンから前記組み込み機器へ送信し、前記不揮発性メモリへ書き込む手段（差分データ出力部２１５、Ｆ／Ｗ更新タスク３１０）。
（７）前記組み込み機器に格納されている更新前Ｆ／Ｗと同じバージョンの更新前Ｆ／Ｗが格納されている前記組み込み機器とは異なる組み込み機器の更新前Ｆ／Ｗの更新に、既存の前記ハッシュファイル、既存の前記差分情報ファイルを使用する手段（更新前Ｆ／Ｗハッシュファイル２９２、新Ｆ／Ｗハッシュファイル２９３、差分情報ファイル２９４）。
【０１２０】
Ｆ／Ｗ更新システムは、組み込み機器に格納されている更新前Ｆ／Ｗと新しいＦ／Ｗとに対して一定のブロックサイズ単位でハッシュ値を算出し、そのハッシュ値が同じであれば「０」、異なれば「１」とし、前記「０」をビット値「０」、前記「１」をビット値「１」と見なし、前記ビット値の列を前記更新前Ｆ／Ｗと前記新しいＦ／Ｗとの差分情報とする。
【０１２１】
また、ひとつの組み込み機器のＦ／Ｗの更新時に作成された、ハッシュファイル、差分情報ファイルを他の組み込み機器のＦ／Ｗの更新に再利用する。
【０１２２】
また、差分情報ファイルの作成に、別の組み込み機器のＦ／Ｗの更新時に作成された、既存のハッシュファイルを使用し、前記ハッシュファイルがなければ、前記差分情報ファイルの作成に必要なハッシュファイルを新規作成する。
【０１２３】
また、ハッシュファイル作成時のブロックサイズが、同じバージョンの更新前Ｆ／Ｗを格納している複数の組み込み機器の、それぞれの不揮発性メモリのイレース単位、データの書き込み単位の最小公倍数である。そして、前記複数の組み込み機器間において、イレース単位、データの書き込み単位が異なっていても、前記複数の組み込み機器のＦ／Ｗの更新に、同じ差分情報ファイルが使用できる。
【符号の説明】
【０１２４】
１００  Ｆ／Ｗ更新システム、１０１  ケーブル、１１０  コマンド、２００  パソコン、２１０  パソコン側ツール、２１１  ツール制御部、２１２  更新前Ｆ／Ｗハッシュファイル作成部、２１３  新Ｆ／Ｗハッシュファイル作成部、２１４  差分情報ファイル作成部、２１５  差分データ出力部、２１９  パソコン側通信部、２９０  パソコン側記憶部、２９１  新しいＦ／Ｗ、２９２  更新前Ｆ／Ｗハッシュファイル、２９３  新Ｆ／Ｗハッシュファイル、２９４  差分情報ファイル、２９９  機器構成管理ファイル、３０１  組み込み機器Ａ、３０２  組み込み機器Ｂ、３０３  組み込み機器Ｃ、３０４  組み込み機器Ｄ、３１０  Ｆ／Ｗ更新タスク、３９０  不揮発性メモリ、３９１  更新前Ｆ／Ｗ（１）、３９２  更新前Ｆ／Ｗ（２）、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ドライブ装置、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群。
【図１】
2010211295.tif 000003
【図２】
2010211295.tif 000004
【図３】
2010211295.tif 000005
【図４】
2010211295.tif 000006
【図５】
2010211295.tif 000007
【図６】
2010211295.tif 000008
【図７】
2010211295.tif 000009
【図８】
2010211295.tif 000010
【図９】
2010211295.tif 000011
【図１０】
2010211295.tif 000012
【図１１】
2010211295.tif 000013
【図１２】
2010211295.tif 000014
【図１３】
2010211295.tif 000015
【図１４】
2010211295.tif 000016
【図１５】
2010211295.tif 000017