(57)【特許請求の範囲】
【請求項１】
制御装置メーカによって製造された制御装置でありセットメーカによって組み立てられた最終製品に含まれている制御装置において、
プログラムを記憶するプログラム記憶部と、
前記プログラムの更新のルールが定められたルール情報であって前記セットメーカの有するセットメーカ装置によって生成されたルール情報を記憶するルール記憶部と、
前記プログラムを更新するための更新情報であって前記制御装置メーカの有する配信サーバ装置によって生成された更新情報を受信する更新情報受信部と、
前記更新情報が前記ルール情報に適合するかどうかを判定する判定部と、
前記判定部が適合すると判定した場合に、前記プログラム記憶部が記憶する前記プログラムを、前記更新情報を用いて更新する更新部と
を備える制御装置。
【請求項２】
前記制御装置は、さらに、
前記ルール情報が更新された新版ルール情報であって前記セットメーカ装置によって生成された新版ルール情報を受信するルール情報受信部と、
前記新版ルール情報が受信された場合に、前記更新情報の送信を要求する送信要求を送信する要求送信部と
を備え、
前記更新情報受信部は、
前記送信要求の応答として、前記更新情報を受信し、
前記判定部は、
前記更新情報受信部が応答として受信した更新情報が、前記新版ルール情報に適合するかどうかを判定する請求項１に記載の制御装置。
【請求項３】
前記ルール記憶部が記憶する前記ルール情報は、
検証情報を有し、
前記制御装置は、さらに、
前記検証情報と、前記ルール情報受信部が受信する前記新版ルール情報とに基づいて、前記新版ルール情報が正当かどうかを検証し、検証の結果、正当でないと判定した場合に、前記新版ルール情報を破棄する検証部を備えた請求項２に記載の制御装置。
【請求項４】
前記ルール情報受信部は、
ウェブサイトにアップロードされた前記新版ルール情報を前記ウェブサイトからダウンロードするダウンロード装置から、前記新版ルール情報を受信する請求項２または請求項３に記載の制御装置。
【請求項５】
制御装置メーカによって製造された制御装置であると共にセットメーカによって組み立てられた最終製品に含まれている制御装置であり、マスタとなるユニット装置であるマスタユニットと、スレイブとなるユニット装置であるスレイブユニットとの複数のユニット装置を備える制御装置である複合ユニット装置において、
前記マスタユニットは、
それぞれの前記ユニット装置のプログラムの更新のルールが定められたルール情報であって前記セットメーカの有するセットメーカ装置によって生成されたルール情報を記憶するルール記憶部と、
それぞれの前記ユニット装置のプログラムを更新するための、前記ユニット装置ごとの更新情報であって前記制御装置メーカの有する配信サーバ装置によって生成された更新情報を受信する更新情報受信部と、
前記更新情報が前記ルール情報に適合するかどうかを判定する判定部と、
前記判定部が適合すると判定した場合に、前記更新情報に対応する前記ユニット装置のプログラムを、前記更新情報を用いて更新する更新部と
を備える複合ユニット装置。
【請求項６】
前記マスタユニットは、さらに、
それぞれの前記ユニット装置のプログラムのバージョンを、それぞれの前記ユニット装置から取得するバージョン取得部を備え、
前記ルール記憶部が記憶する前記ルール情報は、
それぞれの前記ユニット装置のプログラムに認められるバージョンが定められており、
前記判定部は、
前記バージョン取得部が取得したそれぞれの前記ユニット装置のプログラムのバージョンが、前記ルール情報に定められたバージョンに適合するかどうかを判定し、
前記マスタユニットは、さらに、
前記バージョン取得部が取得したそれぞれのバージョンの少なくとも一つが適合しないと判定された場合には、適合しないことを示す不適合信号を出力する要求送信部を備える請求項５に記載の複合ユニット装置。
【請求項７】
制御装置メーカによって製造された制御装置であると共にセットメーカによって組み立てられた最終製品に含まれている制御装置であり、記憶装置を有する制御装置であるコンピュータに、
プログラムを前記記憶装置に記憶する処理、
前記プログラムの更新のルールが定められたルール情報であって前記セットメーカの有するセットメーカ装置によって生成されたルール情報を前記記憶装置に記憶する処理、
前記プログラムを更新するための更新情報であって前記制御装置メーカの有する配信サーバ装置によって生成された更新情報を受信する処理、
前記更新情報が前記ルール情報に適合するかどうかを判定する処理、
適合する場合に、前記記憶装置が記憶する前記プログラムを、前記更新情報を用いて更新する処理、
を実行させるための更新判定プログラム。
【請求項８】
制御装置メーカによって製造された制御装置であると共にセットメーカによって組み立てられた最終製品に含まれている制御装置であり、プログラム記憶部、ルール記憶部、更新情報受信部、判定部、更新部を備える制御装置が行うプログラム更新方法において、
前記プログラム記憶部が、プログラムを記憶し、
前記ルール記憶部が、前記プログラムの更新のルールが定められたルール情報であって前記セットメーカの有するセットメーカ装置によって生成されたルール情報を記憶し、
前記更新情報受信部が、前記プログラムを更新するための更新情報であって前記制御装置メーカの有する配信サーバ装置によって生成された更新情報を受信し、
前記判定部が、前記更新情報が前記ルール情報に適合するかどうかを判定し、
前記更新部が、前記判定部が適合すると判定した場合に、前記プログラム記憶部が記憶する前記プログラムを、前記更新情報を用いて更新するプログラム更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御装置、複合ユニット装置、更新判定プログラム及びプログラム更新方法も関する。
【背景技術】
【０００２】
一般に、組込機器の動作を規定するソフトウェアをファームウェアと呼ぶ。以下、ファームウェアをＦＷと記す場合がある。近年、スマートフォンに代表される機器のネットワーク化に伴い、機能強化やバグフィックスを目的として、エンドユーザがＦＷを更新できる機能が活用されている。ＦＷを更新できる機能は、コンシューマー製品だけでなく、プラントや工場で利用される産業用制御装置や自動車を制御する電子機器でも一部利用されている。以下、ＦＷを更新できる機能をＦＷアップデート機能と呼ぶことにする。【０００３】
ＦＷアップデート機能は、エンドユーザにおいて以下の手順で利用される。
（１）エンドユーザが、製造業者のウェブサイトから、更新されたＦＷのファイルを取得する。
（２）エンドユーザは、製取得したファイルを、ネットワークや記録媒体を介して対象の組込機器へ入力する。
（３）組込機器が、ＦＷのファイルを元にファームウェアを書き換える。【０００４】
ＦＷアップデート機能は上記のような利便性を提供する一方、攻撃者の利用経路として悪用される危険性がある。例えば、悪意ある第三者によって作成されたＦＷを用いて、エンドユーザが機器のＦＷのアップデートを行えば、悪意ある第三者に機器を乗っ取られる危険性がある。したがって、ＦＷアップデート機能で用いられるＦＷは、機器の製造者からリリースされたことを証明できる必要がある。非特許文献１には、デジタル署名やメッセージ認証コードによるメッセージへの改竄検出を利用することにより、ＦＷを任意に改変することを阻止する技術が記載されている。ここで、産業用制御装置や自動車の電子制御機器は、単体で最終ユーザに利用されるわけでなく、それらの機器を部品とした最終製品が、別のメーカによって作られる点に留意が必要である。このため、最終製品として、個々の機器のＦＷに対する管理責任が最終製品のメーカにある。また、産業用制御装置はコンポーネント化されて、最終製品はそれらを複数組み合わせて構成される点にも留意が必要である。すなわち、個々の機器のＦＷは単体として管理するだけでなく、複数の組み合わせとして管理を行う必要がある。一方で、制御システムのように、なんらかの障害の発生による中断や停止が発生した場合に影響が大きいシステムにおいては、ＦＷのアップデートのようなシステムの動作に影響を与えかねない事象を可能な限り排除する傾向にあると言える。【０００５】
例えば、非特許文献２に開示される「Ｃｏｐｙ  Ｅｘａｃｔｌｙ！」の例にあるように、生産システムは一切の揺れを排除して構築することで、不具合のリスクが低減される。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】ＲＦＣ４１０８，“Ｕｓｉｎｇ  Ｃｒｙｐｔｏｇｒａｐｈｉｃ  Ｍｅｓｓａｇｅ  Ｓｙｎｔａｘ（ＣＭＳ）  ｔｏ  Ｐｒｏｔｅｃｔ  Ｆｉｒｍｗａｒｅ  Ｐａｃｋａｇｅｓ”，  ｈｔｔｐ：／／ｔｏｏｌｓ．ｉｅｔｆ．ｏｒｇ／ｈｔｍｌ／ｒｆｃ４１０８
【非特許文献２】Ｉｎｔｅｌ  “Ｍａｎｕｆａｃｔｕｒｉｎｇ  Ｐｒｏｃｅｓｓ  Ｃｏｐｙ  ｅｘａｃｔｌｙ！”  ｈｔｔｐ：／／ｗｗｗ．ｉｎｔｅｌ．ｃｏｍ／ｃｏｎｔｅｎｔ／ｗｗｗ／ｕｓ／ｅｎ／ｑｕａｌｉｔｙ／ｅｘａｃｔ−ｃｏｐｙ．ｈｔｍｌ
【発明の概要】
【発明が解決しようとする課題】
【０００７】
コンポーネント化された産業用制御装置は、用途が限定されず、汎用性のある仕様で構成される。当然、その産業用制御装置の動作は、その仕様の範囲内で保証される。一方、産業用制御装置を複数の構成部品のうちの一つとする最終製品は、産業用制御装置の仕様を把握した上で、システムアップされる。しかし、コンポーネントの仕様の範囲とはいえ、最終製品は、産業用制御装置などのそれぞれの構成部品の揺れ（仕様許容範囲内での変動）をすべて考慮して品質を検証できるわけではない。【０００８】
従って、最終製品を構築するメーカから見れば、仕様の範囲内とはいえ、ＦＷアップデートにより揺れ（許容範囲での仕様の変動）が発生することは、最終製品で不具合が発生するリスクとなる。よって、最終製品を製造するメーカは、産業用制御装置が持つＦＷアップデート機能のエンドユーザの使用を、制御及び制限できることが必要である。【０００９】
また、複数の制御装置からなる最終製品は、個々の制御装置のＦＷを組み合わせとして管理する必要がある。従って、ＦＷアップデート機能も、ＦＷの組み合わせを考慮した上で、エンドユーザでの使用を制御及び制限できる必要がある。【００１０】
複数の制御装置を部品として備える最終製品は、エンドユーザによって部品交換される。すなわち最終製品は部品である個々の制御装置が交換されることが考慮され、ＦＷの組み合わせが管理される必要がある。【００１１】
本発明は、最終製品を製造するメーカが、制御装置が持つＦＷアップデート機能のエンドユーザの使用を、制御及び制限できる構成の提供を目的とする。
【課題を解決するための手段】
【００１２】
この発明のプログラム更新装置は、
プログラムを記憶するプログラム記憶部と、
前記プログラムの更新のルールが定められたルール情報を記憶するルール記憶部と、
前記プログラムを更新するための更新情報を受信する更新情報受信部と、
前記更新情報が前記ルール情報に適合するかどうかを判定する判定部と、
前記判定部が適合すると判定した場合に、前記プログラム記憶部が記憶する前記プログラムを、前記更新情報を用いて更新する更新部と
を備える。
【発明の効果】
【００１３】
この発明により、最終製品を製造するメーカが、制御装置が持つＦＷアップデート機能のエンドユーザの使用を、制御及び制限が可能となる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１を示す図で、ＦＷアップデートシステム１の構成示す図。
【図２】実施の形態１を示す図で、図１を通信ネットワーク４０への接続状態で示す図。
【図３】実施の形態１を示す図で、セットメーカ２０が制御装置１０５を含む最終製品を出荷する工程を説明する図。
【図４】実施の形態１を示す図で、プロジェクトファイル２０２及びＦＷの更新ルールが記載されたルールファイル２０５を示す図。
【図５】実施の形態１を示す図で、セットメーカ２０からエンドユーザ３０に渡される制御装置１０５及びプロジェクトファイル２０２を示す図。
【図６】実施の形態１を示す図で、エンドユーザ３０が、制御装置１０５（３０）のＦＷを更新する場合を説明する図。
【図７】実施の形態１を示す図で、制御装置１０５の構成を示すブロック図。
【図８】実施の形態１を示す図で、エンドユーザ３０における、エンドユーザ装置３００及び制御装置１０５（３０）の動作を示すシーケンス図。
【図９】実施の形態１を示す図で、複数のユニットＡ〜ＥがファームウェアＡ〜Ｅを使用する状態を示す図。
【図１０】実施の形態１を示す図で、ユニットＡの構成を示すブロック図。
【図１１】実施の形態１を示す図で、ユニットＡの有するルールファイル２０５Ａを示す図。
【図１２】実施の形態１を示す図で、部品交換によって、意図せずＦＷの組み合わせが変更されるケースでの動作を示す図。
【図１３】実施の形態１を示す図で、ユニットＡが保有するルールファイル２０５Ａを示す図。
【図１４】実施の形態１を示す図で、制御装置１０５（３０）が、バージョン取得部を備える構成を示すブロック図。
【図１５】実施の形態１を示す図で、ユニットＡがバージョンを取得するシーケンスを示す図。
【図１６】実施の形態２を示す図で、制御装置のハードウェア構成を示す図。
【発明を実施するための形態】
【００１５】
実施の形態１．
＜＊＊＊構成の説明＊＊＊＞
図１から図１５を参照して実施の形態１を説明する。図１は、ＦＷのアップデートに必要なＦＷアップデートシステム１の構成示す。図２は、図１を、通信ネットワーク４０への接続状態で示す図である。また図２は、ＦＷ配信サーバ装置１００（以下、配信サーバ１００）、セットメーカ装置２００及びエンドユーザ装置３００のブロック構成図を示した。
【００１６】
配信サーバ１００は、制御部１１０、更新情報生成部１２０、通信部１３０、記憶部１４０を備える。制御部１１０は配信サーバ１００の動作を制御する。更新情報生成部１２０は、後述する更新用ＦＷ１０２を生成する。通信部１３０は通信ネットワーク４０を介してセットメーカ装置２００、エンドユーザ装置３００と通信する。記憶部１４０は更新用ＦＷ１０２などの情報を記憶する。
【００１７】
セットメーカ装置２００は、開発ツール実行部２１０、通信部２２０、記憶部２３０を備える。開発ツール実行部２１０は、記憶部２３０に記憶された、プログラムである開発ツール２０１を実行する。通信部２２０は通信ネットワーク４０を介して配信サーバ１００、エンドユーザ装置３００と通信する。記憶部２３０は開発ツール２０１などの情報を記憶する。開発ツール実行部２１０は、後述のプロジェクトファイル２０２を生成するプロジェクトファイル生成部２１１、後述のルールファイルを生成するルール情報生成部２１２を備える。
【００１８】
エンドユーザ装置３００は、開発ツール実行部３１０、通信部３２０、記憶部３３０を備える。開発ツール実行部３１０は、記憶部３３０に記憶された、プログラムである開発ツール３０１を実行する。通信部３２０は通信ネットワーク４０を介して通信する。記憶部３３０は開発ツール３０１などの情報を記憶する。
【００１９】
図１の制御装置メーカ１０は、ＦＷを配信する配信サーバ１００を持ち、更新用ＦＷ１０２を管理する。
（１）制御装置メーカ１０とは、制御装置を製造するメーカである。具体例としては、最終製品がＰＬＣ（プログラマブル  ロジック  コントローラ）である場合には、ＰＬＣを構成するＣＰＵユニットや通信ユニットなどが制御装置である。制御装置とは他の機器を制御する装置である。
（２）更新用ＦＷ１０２とは、制御装置１０５の有するＦＷを更新するための情報である。なお、ＦＷはプログラムである。よって、更新用ＦＷ１０２とは、制御装置１０５の有するプログラムを更新するための更新情報である。更新用ＦＷ１０２は、更新前のＦＷと更新後のＦＷとの差分情報でもよいし、更新前のＦＷの全部と置き換わる全体情報でもよい。なお、ルールファイル２０５も更新されるが、ルールファイル２０５についても更新用ＦＷ１０２と同様に、差分情報でもよいし、全体情報でもよい。
【００２０】
配信サーバ１００は、通信ネットワーク４０に接続され、通信部１３０を介して、セットメーカ装置２００や、エンドユーザ装置３００からのアクセスを受け入れる。
【００２１】
図１のセットメーカ２０では、制御装置メーカ１０から提供される開発ツール２０１が格納された、セットメーカ装置２００を有する。セットメーカ装置２００は制御装置１０５（２０）と接続されている。セットメーカ２０では、制御装置１０５（２０）に対してセットメーカ装置２００に格納された開発ツール２０１を用いて、自身の目的に合わせて追加的な開発を行う。セットメーカ２０は、制御装置メーカ１０からの通知か、あるいは定期確認により、ＦＷ更新の必要性を認識する。ＦＷの更新が必要性な場合は、セットメーカ２０は、セットメーカ装置２００によって、配信サーバ１００から更新用ＦＷ１０２をダウンロードする。ダウンロードされた更新用ＦＷ１０２は、セットメーカ装置２００を介して、セットメーカ２０の制御装置１０５（２０）へ送信される。制御装置１０５（２０）は、受信した更新用ＦＷ１０２で、自身のＦＷを更新する。なお、図１において、制御装置メーカ１０、セットメーカ２０，エンドユーザ３０のそれぞれに制御装置１０５を示しているが、制御装置１０５は同じものである。制御装置１０５（１０）は、制御装置１０５が制御装置メーカ１０に存在することを示す。制御装置１０５（２０）は、制御装置１０５（１０）がセットメーカ２０に搬入されたものであることを示す。制御装置１０５（３０）は、制御装置１０５（１０）がセットメーカ２０を経由して、エンドユーザ３０に搬入されたものであることを示す。区別の不要な場合は制御装置１０５と記載する。ここで、更新用ＦＷ１０２は非特許文献１に開示される方法あるいは類似の方法によって保護されていると仮定する。保護の方式についは特に制限を設けない。
【００２２】
同様に図１のエンドユーザ３０でも、制御装置メーカ１０から提供される開発ツール３０１が格納された、エンドユーザ装置３００を有する。エンドユーザ３０では、セットメーカ２０で開発された最終製品に内包する形で、制御装置１０５（２０）がリリースされる。なおセットメーカ２０とは、制御装置メーカ１０が製造した複数の制御機器を用いることで、複数の制御装置を含む最終製品を組み立てるメーカである。上記のように最終製品がＰＬＣであれば、制御装置はＣＰＵユニットや通信ユニットである。エンドユーザ装置３００は制御装置１０５（３０）と接続されており、エンドユーザ３０もセットメーカ２０と同様に、制御装置１０５（３０）に対してエンドユーザ装置３００に格納された開発ツール３０１を用いて、自身の目的に合わせて追加的な開発を行う。エンドユーザ３０においても制御装置メーカ１０からの通知か、あるいは定期確認によりＦＷ更新の必要性を認識し、配信サーバ１００からエンドユーザ装置３００を介して更新用ＦＷ１０２をダウンロードする。ダウンロードされた更新用ＦＷ１０２は、エンドユーザ装置３００を介して制御装置１０５（３０）へ送信される。制御装置１０５（３０）は、受信した更新用ＦＷ１０２で自身のＦＷを更新する。
【００２３】
以上がＦＷアップデートの基本構成と基本動作である。
【００２４】
次に図３〜図５を用いて、最終製品の製造元であるセットメーカ２０が、制御装置１０５の持つＦＷアップデート機能を、エンドユーザ３０に対して制御する方法を説明する。
【００２５】
図３は、セットメーカ２０が制御装置１０５を含む最終製品をエンドユーザ３０に出荷する工程を説明する図である。図４は、プロジェクトファイル２０２及びＦＷの更新ルールが記載されたルールファイル２０５を示す図である。図５は、セットメーカ２０からエンドユーザ３０に渡される制御装置１０５及びプロジェクトファイル２０２を示す。
【００２６】
まず図３、図４を用いて、セットメーカ２０での動作を説明する。以下に説明するセットメーカ２０における処理は、セットメーカ装置２００によって行われる。
【００２７】
セットメーカ２０は、制御装置１０５（２０）のプログラムを、開発ツール２０１が格納されたセットメーカ装置２００で開発する。その際に、一般にセットメーカ装置２００に格納された開発ツール２０１は、制御装置１０５（２０）のプログラムが、制御装置１０５（２０）向けであることを管理する管理機能を有する。その管理機能の一つが、図３、図４に示すプロジェクトファイル２０２である。
【００２８】
プロジェクトファイル２０２で管理されるプログラム、パラメータやデータなどのファイル群は、制御装置１０５（２０）の制御に必要なファイルの一式である。
（１）プロジェクトファイル２０２は、図４に示すように、プログラム、パラメータあるいはデータを、ファイル群として含む。セットメーカ装置２００の開発ツール実行部２１０は、プロジェクトファイル２０２を管理することで、プログラム、パラメータあるいはデータなどのファイル群を管理する。
（２）図４の更新ＦＷ  ＵＲＬ２０３は、プロジェクトファイル２０２で管理されるデータの一つである。更新ＦＷ  ＵＲＬ２０３は、制御装置メーカ１０が公開するウェブサイトの位置指定子である。このウェブサイトからは制御装置１０５の更新用ＦＷ１０２をダウンロードできる。
（３）ルールファイル  ＵＲＬ２０４は、プロジェクトファイル２０２で管理されるデータの一つである。ルールファイル  ＵＲＬ２０４は、セットメーカ２０が公開するウェブサイトの位置指定子である。このウェブサイトからは最終製品のＦＷアップデートに関し、ＦＷの更新ルールが定められたルールファイル２０５をダウンロードできる。ＦＷの更新ルールとは、ＦＷのアップデートの条件である。アップデートの条件の例としては、ＦＷのバージョン２０５−１、アップデートした機能に関する属性２０５−２、アップデートによって解決する脆弱性の属性２０５−３などが挙げられる。尚、ＦＷのバージョン２０５−１も属性情報であり、ＦＷのバージョン２０５−１を含むこれらの属性情報は、更新用ＦＷ１０２に記載されている。なおルールファイル２０５も更新される。この更新は後述する。
【００２９】
図５のように、セットメーカ２０は、最終製品を出荷する際に制御装置１０５（２０）に対し、セットメーカ装置２００の開発ツール実行部２１０がルールファイル２０５−１をインストールする。ここではルールファイル２０５−１はインストールされたルールファイル２０５を意味し、後にルールファイル２０５−１が、ルールファイル  ＵＲＬ２０４へのアクセスによって更新された場合、ルールファイル２０５はルールファイル２０５−２と記載する。このインストールの際には、図５に示すように、ルールファイル２０５−１には、セットメーカ２０の秘密鍵を用いて生成されたデジタル署名２０７が付加される。また、セットメーカ２０は、最終製品を出荷する際に、制御装置１０５（２０）に対し、ルールファイル２０５−１に付加されたデジタル署名２０７を検証する公開鍵２０６をインストールする。デジタル署名２０７と公開鍵２０６とは検証情報２０６０である。
【００３０】
図５に示すように、エンドユーザ３０に対し、セットメーカ２０からは最終製品とともに、プロジェクトファイル２０２がリリースされる。
【００３１】
次にエンドユーザ３０における動作を説明する。図６は、エンドユーザ３０が、制御装置１０５（３０）のＦＷを更新する場合を説明する図である。図７は、制御装置１０５の構成を示すブロック図である。ＦＷはプログラム記憶部１０５１に記憶されている。図８はエンドユーザ３０における、エンドユーザ装置３００及び制御装置１０５（３０）の動作を示すシーケンス図である。
【００３２】
＜＊＊＊構成の説明＊＊＊＞
まず、図７を参照して制御装置１０５の構成を説明する。
【００３３】
プログラム更新装置１１である制御装置１０５は、プログラム記憶部１０５１、ルール記憶部１０５２、更新情報受信部１０５３、判定部１０５４、更新部１０５５、ルール情報受信部１０５６、要求送信部１０５７、検証部１０５８を備える。プログラム記憶部１０５１は、プログラムであるファームウェアを記憶する。ルール記憶部１０５２は、ファームウェアの更新のルールが定められたルール情報２０５１であるルールファイル２０５を記憶する。更新情報受信部１０５３は、ファームウェアを更新するための更新情報１０２０である更新用ＦＷ１０２を受信する。判定部１０５４は、更新情報１０２０がルール情報２０５１に適合するかどうかを判定する。更新部１０５５は、判定部１０５４が適合すると判定した場合に、プログラム記憶部１０５１が記憶するファームウェアを、更新情報１０２０を用いて更新する。また更新部１０５５は、ルール情報を更新する。
【００３４】
ルール情報受信部１０５６は、ルール情報２０５１が更新された新版ルール情報２０５２を受信する。要求送信部１０５７は、新版ルール情報２０５２が受信された場合に、更新情報１０２０の送信を要求する送信要求５１を送信する。この場合、更新情報受信部１０５３は、送信要求５１の応答として、更新情報１０２０を受信し、判定部１０５４は、更新情報受信部１０５３が応答として受信した更新情報１０２０が、新版ルール情報２０５２に適合するかどうかを判定する。
【００３５】
ルール記憶部１０５２が記憶するルール情報２０５１は、検証情報２０６０を有している。検証部１０５８は、検証情報２０６０と、ルール情報受信部１０５６が受信した新版ルール情報２０５２とに基づいて、新版ルール情報２０５２が正当かどうかを検証し、検証の結果、正当でないと判定した場合に、新版ルール情報２０５２を破棄する。
【００３６】
ルール情報受信部１０５６は、ウェブサイト１０３にアップロードされた新版ルール情報２０５２をウェブサイト１０３からダウンロードするダウンロード装置３０００から、新版ルール情報２０５２を受信する。この場合、ダウンロード装置３０００は、エンドユーザ装置３００である。
【００３７】
＜＊＊＊動作の説明＊＊＊＞
次に図６、図８を参照して、エンドユーザ装置３００、制御装置１０５（３０）の動作を説明する。
【００３８】
エンドユーザ３０は、制御装置メーカ１０やセットメーカ２０からの通知、あるいは定期的な確認によりＦＷ更新の必要性を認識する。エンドユーザ３０は、開発ツール３０１とプロジェクトファイル２０２とが格納されたエンドユーザ装置３００を用いて、最終製品に含まれる制御装置１０５（３０）のメンテナンスを行う。
【００３９】
＜ステップＳ１０１＞
エンドユーザ装置３００の開発ツール実行部３１０は、プロジェクトファイル２０２に規定されたルールファイルＵＲＬ２０４を通信部３２０を用いて参照し、ルールファイル２０５−１の新しいバージョンがあるかどうかをチェックする。ここで、ルールファイル２０５のバージョンは、図４に示すように、プロジェクトファイル２０２で管理されている。
【００４０】
＜ステップＳ１０２＞
開発ツール実行部３１０は、新しいバージョンがある場合は、ウェブサイトのページからルールファイル２０５−２をダウンロードする。
【００４１】
＜ステップＳ１０３＞
開発ツール実行部３１０は、新しいバージョンのルールファイル２０５−２をダウンロードした場合、通信部３２０を介して制御装置１０５（３０）へ送信する。なおエンドユーザ装置３００は記憶部３３０にルールファイル２０５を格納している。開発ツール実行部３１０が制御装置１０５に送信するルールファイル２０５は、記憶部３３０のルールファイル２０５のコピーである。
【００４２】
＜ステップＳ１０４＞
制御装置１０５（３０）のルール情報受信部１０５６は、新版ルール情報２０５２であるルールファイル２０５−２を受信する。検証部１０５８は、あらかじめセットメーカ２０でインストールされた公開鍵２０６を用いて、ルールファイル２０５−１のデジタル署名２０７の正当性を検証する。なおルールファイル２０５−１はルール記憶部１０５２に記憶されている。検証部１０５８は、通常のデジタル署名２０７の検証方式を実行する。具体的には、検証部１０５８は、公開鍵２０６でデジタル署名２０７を復号し、復号値ｈ１を生成する。また、検証部１０５８は、取得した新しいバージョンのルールファイル２０５−２に含まれる情報を用いてハッシュ値ｈ２を生成し、復号値ｈ１とハッシュ値ｈ２とを比較する。検証部１０５８は、ｈ１＝ｈ２の場合、検証成功と判定し、ｈ１＝ｈ２でない場合は検証失敗と判定する。
【００４３】
＜ステップＳ１０５＞
検証失敗の場合は、検証部１０５８は、受信したルールファイル２０５−２を破棄し、エンドユーザ装置３００にエラーを通知する。
【００４４】
＜ステップＳ１０６＞
検証部１０５８による検証が成功した場合、更新部１０５５は、受信した更新用のルールファイル２０５−２で、自身が保持するルールファイル２５０−１を更新する。また要求送信部１０５７は、エンドユーザ装置３００に更新成功の通知を送信する。更新成功の通知は、更新用ＦＷ１０２の送信を要求する送信要求５１である。
【００４５】
＜ステップＳ１０７＞
エンドユーザ装置３００の通信部３２０が送信要求５１を受信する。送信要求５１が受信された場合、開発ツール実行部３１０は通信部３２０を介して更新ＦＷ  ＵＲＬ２０３にアクセスし、ルールファイル２０５−２の示すルールに適合する更新用ＦＷ１０２があるかどうかを確認する。なお更新ＦＷ  ＵＲＬ２０３の実体は、図２に示すように配信サーバ１００である。開発ツール実行部３１０は、ルールに適合する更新用ＦＷ１０２がある場合には、適合する更新用ＦＷ１０２を更新ＦＷ  ＵＲＬ２０３からダウンロードする（Ｓ１０８；ＹＥＳ）。開発ツール実行部３１０は、更新ＦＷ  ＵＲＬ２０３にアクセスした結果、ルールファイル２０５−２のルールに適合する更新用ＦＷ１０２が無い場合は、ファームウェアアップデートが不要なことを表示装置などに出力して通知する（Ｓ１０８；ＮＯ）。
【００４６】
＜ステップＳ１０９＞
開発ツール実行部３１０は通信部３２０を介して、ダウンロードされた更新用ＦＷ１０２を、制御装置１０５（３０）へ送信する。
【００４７】
＜ステップＳ１１０＞
更新情報受信部１０５３が、更新情報１０２０である更新用ＦＷ１０２を受信する。判定部１０５４は、受信された更新用ＦＷ１０２が、ルールファイル２０５−２の示すルールに適合するどうかを確認する。この時、前述のとおり、更新用ＦＷ１０２は非特許文献１に開示される方法あるいは類似の方法によって改竄から保護されていると仮定し、その保護の方法、方式についは特に制限を設けない。
【００４８】
＜ステップＳ１１１＞
ルールに適合する場合（Ｓ１１０でＹＥＳ）は、更新部１０５５は、適合が確認（Ｓ１１０でＹＥＳ）され、かつ、正当性が確認（Ｓ１０４でＹＥＳ）された更新用ＦＷ１０２で、制御装置１０５（３０）のＦＷを更新する。更新完了後、更新部１０５５は、正常終了をエンドユーザ装置３００に送信する。
【００４９】
＜ステップＳ１１０でＮＯ＞
なおルールに適合しない場合（Ｓ１１０でＮＯ）、更新部１０５５は、ＦＷを更新せず、更新不可をエンドユーザ装置３００に送信する。
【００５０】
なお、実施の形態１のルールファイル２０５は単一のものではなく、エンドユーザ３０毎に分けてもよいし、最終製品のバージョンごとに分けてもよい。
【００５１】
次に、図９〜図１１を参照して、制御装置１０５（３０）の備える各ユニットのＦＷの組み合わせに関するルールを説明する。
【００５２】
図９は、制御装置１０５（３０）が複数のユニットＡ〜Ｅを有しており、複数のユニットＡ〜Ｅが、それぞれファームウェアＡ〜Ｅを使用する状態を示す。制御装置１０５（３０）は、複数のユニットを備える複合ユニット装置である。図９では、更新ＦＷ群４０１は、更新用のファームウェアＡ〜Ｅからなる。更新用のファームウェアＡ、Ｂ等を更新用ＦＷ（Ａ）、更新用ＦＷ（Ｂ）等と記す。更新用ＦＷ（Ａ）は、図１等で述べた更新用ＦＷ１０２に相当する。更新用ＦＷ（Ｂ）〜更新用ＦＷ（Ｅ）も同様に、それぞれ更新用ＦＷ１０２に相当する。図１０は、マスタユニットとなるユニットＡの構成を示すブロック図である。ユニットＡは図７の制御装置１０５と同じ構成である。図７のプログラム記憶部１０５１〜検証部１０５８は、図１０のプログラム記憶部１０５１Ｍ〜検証部１０５８Ｍに対応し、機能も同様である。図１１は、ユニットＡの有するルールファイル２０５Ａを示す。ルールファイル２０５Ａはルール記憶部１０５２Ｍに記憶されている。図１０に示すユニットＡの動作は図８の制御装置１０５（３０）の動作と同じであり、図７の制御装置１０５（３０）をユニットＡと読み替えることができる。但しルールファイル２０５Ａの内容が異なる。
【００５３】
図９に示す制御装置１０５（３０）は、ＦＷが更新される可能性のあるユニットＡ、Ｂ、Ｃ、Ｄ、Ｅの、５つのユニットで構成される。これは例示であり、構成を限定するものではない。ここで、ユニットＡが制御装置１０５（３０）においてマスタの役割を果たすものとする。以下、ユニットＡをマスタユニットＡと呼ぶ。制御装置１０５（３０）がＰＬＣであれば、マスタユニットＡがＣＰＵユニットであり、スレイブとなるユニットＢ、Ｃ、Ｄ、Ｅが、ＣＰＵユニット以外の、通信用などのユニットである。
【００５４】
更新ＦＷ群４０１は、それぞれ、図８に示す方法でダウンロードされたものである（図８のＳ１０９）。
【００５５】
更新ＦＷ群４０１は、図９での経路４１を経由する。すなわち、更新ＦＷ群４０１は必ずマスタユニットＡを経由し、それぞれのユニットＡ〜ＥのＦＷが更新される。この更新処理では、マスタユニットＡは、更新用ＦＷ（Ａ）、ＦＷ（Ｂ）等がルールファイル２０５Ａのルールに合致しているかを確認する。つまり、更新ＦＷ群４０１を更新する場合は、マスタユニットＡが図８の制御装置１０５（３０）の役割を果たすものであり、経路４１の場合は、図８の制御装置１０５（３０）が、マスタユニットＡに置き換わる。経路４１の場合は、前述のとおり、更新用ＦＷ（Ａ）等に対する改竄は、非特許文献１に開示される方法あるいは類似の方法によって保護される。
【００５６】
一方、スレイブユニットＢ〜Ｅは、図９での経路４２、すなわち、直接スレイブのユニットに対するＦＷの更新を許可しない。このように、スレイブユニットＢ〜ＥのＦＷの更新の際には、必ずマスタユニットＡを経由させる。スレイブユニットは、制御部、通信部、ＦＷを記憶する記憶部を有する（図示していない）。制御部は、通信部を介してＦＷの更新要求を受信した場合は、要求を拒否する。
【００５７】
マスタユニットＡのルール記憶部１０５２Ｍは、図１１のルールファイル２０５Ａを記憶している。図１１の例ではルールファイル２０５Ａは、各ユニットのＦＷを更新してよいかどうかを更新可否情報２０５Ａ−０として有する。マスタユニットＡの判定部１０５４Ｍは、マスタユニットＡの更新用ＦＷ（Ａ）と、さらに、スレイブユニットＢ〜Ｅの更新用ＦＷ（Ｂ）〜ＦＷ（Ｅ）が、セットメーカ２０がルールファイル２０５Ａとして示すルールに従うＦＷであるかをチェックする。このチェックは、図８のＳ１１０に相当し、Ｓ１１０において、マスタユニットＡの判定部１０５４Ｍは、ルールファイル２０５Ａの示すルールを参照し、更新しようとするＦＷがルールに適合するかを判定する。具体的には以下の様である。判定部１０５４Ｍは、適合を判定するＦＷが更新用ＦＷ（Ｂ）の場合、更新可否情報２０５Ａ−０を参照し、更新可なので適合と判定する。しかし適合を判定するＦＷが更新用ＦＷ（Ｃ）の場合、更新可否情報２０５Ａ−０で更新不可であるため、判定部１０５４Ｍは、ルールに適合しないと判定する。
【００５８】
マスタユニットＡでは、判定部１０５４Ｍが更新ＦＷ群４０１に対してルールに適合するかどうかを判定する他は、図８の制御装置１０５（３０）の動作と同様である。判定部１０５４Ｍがルールに適合すると判定した場合、更新部１０５５ＭがＦＷを更新する。
【００５９】
次に図１２〜図１５を参照して、マスタユニットＡが各ユニットからＦＷのバージョンを取得する場合を説明する。図９の場合と同様に、制御装置１０５（３０）はユニットＡ〜Ｅを備える。
【００６０】
図１２は、部品交換によって、意図せずＦＷの組み合わせが変更されるケースでの動作を示す。尚、図１２は例示であり、構成や属性を限定するものではない。図１３は、マスタユニットＡが保有するルールファイル２０５Ａを示す。ルールファイル２０５ＡのＦＷバージョン２０５Ａ−１では、各ユニットに認められるＦＷのバージョンの上限が規定されている。ＦＷバージョン２０５Ａ−１では、バージョン１．２まで、ＦＷが更新可能である。図１４は、マスタユニットＡが、さらに、各ユニットからＦＷのバージョンを取得するバージョン取得部１０５９Ｍを備える構成である。図１５は、バージョン取得部１０５９ＭがＦＷからバージョンを取得する際の動作を示す。
【００６１】
図１２のように、制御装置１０５（３０）のユニットＢが、ハードウェア故障を起こし、ユニットＢ−１と交換されるケースを想定する。このとき、ユニットＢのＦＷバージョンは１．１であり、ユニットＡに搭載されるルールファイル２０５ＡのＦＷバージョン２０５Ａ−１に適合する。ＦＷバージョン２０５Ａ−１によれば、バージョン１．２まではＦＷを更新可能であるが、最新の１．３への更新は認められない。よって交換するユニットＢ−１に最新のバージョン１．３のＦＷが搭載されている場合、ＦＷバージョン２０５Ａ−１に適合しない。
【００６２】
＜＊＊＊動作の説明＊＊＊＞
＜ステップＳ２０１＞
マスタユニットＡのバージョン取得部１０５９Ｍは、制御装置１０５（３０）の起動時に、自身のＦＷのバージョンに加え、ユニットＢ〜ＥのそれぞれのＦＷのバージョンを、各ＦＷから取得する。
【００６３】
＜ステップＳ２０２＞
判定部１０５４Ｍは、ルールファイル２０５Ａに記載のルールと、取得されたバージョンとの整合性を確認する。
【００６４】
＜ステップＳ２０３＞
ユニットＢ−１に最新のバージョン１．３のＦＷが搭載されている場合、ルールとの整合性の確認により、判定部１０５４Ｍは、ユニットＢ−１が、ルールファイル２０５ＡのＦＷバージョン２０５Ａ−１のルールに適合していないことを発見する。
この場合、要求送信部１０５７Ｍが、エンドユーザ装置３００に、不敵適を示す不適合信号５２を送信する。この不適合信号５２は、送信要求５１である。送信要求５１は、送信を希望する更新用ＦＷの情報を含む。適合しないことの通知は、エンドユーザ装置３００に限らず、通知を受信し、表示する機能を有するマスタユニットＡの表示機能部（図示していない）や、ネットワーク経由で、ＨＭＩ（Ｈｕｍａｎ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｒｆａｃｅ）、ＳＣＡＤＡ（Ｓｕｐｅｒｖｉｓｏｒｙ  Ｃｏｎｔｒｏｌ  Ａｎｄ  Ｄａｔａ  Ａｃｑｕｉｓｉｔｉｏｎ）など他の端末装置に送信してもよい。
【００６５】
＜ステップＳ２０４、Ｓ２０５＞
エンドユーザ装置３００は送信要求５１を受信した場合、開発ツール実行部３１０が更新ＦＷ  ＵＲＬ２０３にアクセスし、配信サーバ１００からルールファイル２０５Ａのルールに適合する更新ＦＷ（Ｂ）（バージョン１．２）を取得し、制御装置１０５に送信する（Ｓ２０５）。
【００６６】
＜ステップＳ２０６＞
更新部１０５５Ｍは、ユニットＢ−１のＦＷを、更新用ＦＷ（Ｂ）を用いて更新する。このケースでは、エンドユーザ装置３００とマスタユニットＡとによって、ユニットＢ−１のファームウェアは「１．２」に更新され、処理が完了する。
【００６７】
＜＊＊＊効果の説明＊＊＊＞
実施の形態１の制御装置１０５は、セットメーカ２０の提供するルールファイル２０５が格納される。よって、最終製品を製造するセットメーカ２０は、制御装置１０５が持つＦＷアップデート機能のエンドユーザの使用を、制御及び制限できる。
実施の形態１では、ルールファイル２０５は更新が可能である。よって、セットメーカ２０は、産業用制御装置が持つＦＷアップデート機能のエンドユーザの使用を、より詳細に、かつ、柔軟に、制御及び制限できる。
また、ルールファイル２０５はウェブサイトからダウンロード可能であるが、セットメーカ２０はセットメーカ装置２００で更新した新版ルールファイルをウェブサイトにアップロードできる。よって、セットメーカ２０で容易にルールを変更することができ、また、容易に、変更後のルールをエンドユーザ３０に提供できる。
【００６８】
実施の形態１では、マスタユニット判定部１０５４Ｍが、ルールファイル２０５Ａを用いたスレイブの更新用ＦＷをチェックするので、ＦＷの組み合わせの管理が可能となり、エンドユーザ３０による、不適切なＦＷアップデートがおこなわれないように制御できる。つまり、図１１に示すルールファイル２０５Ａに、セットメーカ２０が個々の更新用ＦＷの更新条件を規定することで、ＦＷの組み合わせの更新を管理、制御することができる。また、マスタユニットＡのマスタユニット判定部１０５４Ｍのみが、ＦＷの更新の可否を判断し、スレイブユニット自体はＦＷを更新しない。よって、ＦＷの組み合わせを統合して管理できる。
【００６９】
実施の形態１の制御装置１０５では、バージョン取得部１０５９ＭがＦＷのバージョンを取得し、判定部１０５４Ｍが、取得されたバージョンがルールファイル２０５Ａに適合するか判定する。よってエンドユーザ３０によってユニットが交換された場合にも、ＦＷの組み合わせを管理できる。また、バージョンが適合しない場合は適合するバージョンの更新用ＦＷが取得されるので、ＦＷのバージョンが適合しない場合でも、バージョンの適合するＦＷに迅速に替えることができる。
【００７０】
実施の形態２．
図１６を参照して実施の形態２を説明する。図１６は配信サーバ１００、セットメーカ装置２００、エンドユーザ装置３００、制御装置１０５、マスタユニットＡ等を、コンピュータで実現する場合のハードウェア構成例である。図１６を参照して説明する。コンピュータである制御装置１０５を例に説明する。配信サーバ１００、セットメーカ装置２００、エンドユーザ装置３００も、制御装置１０５の説明が当てはまる。
【００７１】
制御装置１０５は、プロセッサ９０１、補助記憶装置９０２、メモリ９０３、通信装置９０４、入力インタフェース９０５、ディスプレイインタフェース９０６といったハードウェアを備える。プロセッサ９０１は、信号線９１０を介して他のハードウェアと接続され、これら他のハードウェアを制御する。入力インタフェース９０５は、入力装置９０７に接続されている。ディスプレイインタフェース９０６は、ディスプレイ９０８に接続されている。
【００７２】
プロセッサ９０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ９０１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。補助記憶装置９０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。メモリ９０３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。通信装置９０４は、データを受信するレシーバー９０４１及びデータを送信するトランスミッター９０４２を含む。通信装置９０４は、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。入力インタフェース９０５は、入力装置９０７のケーブル９１１が接続されるポートである。入力インタフェース９０５は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子である。ディスプレイインタフェース９０６は、ディスプレイ９０８のケーブル９１２が接続されるポートである。ディスプレイインタフェース９０６は、例えば、ＵＳＢ端子又はＨＤＭＩ（登録商標）（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子である。入力装置９０７は、例えば、マウス、キーボード又はタッチパネルである。ディスプレイ９０８は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。
【００７３】
補助記憶装置９０２には、図７に示すプログラム記憶部１０５１〜検証部１０５８の機能を実現するプログラムが記憶されている。また図１４のマスタユニットＡの場合であればプログラム記憶部１０５１Ｍ〜バージョン取得部１０５９Ｍの機能を実現するプログラムが記憶されている。プログラム記憶部１０５１〜検証部１０５８、及びプログラム記憶部１０５１Ｍ〜バージョン取得部１０５９Ｍをまとめて「部」と表記する。  このプログラムは、メモリ９０３にロードされ、プロセッサ９０１に読み込まれ、プロセッサ９０１によって実行される。より具体的には「部」のうち記憶部は、プログラム、補助記憶装置９０２、メモリ９０３等により実現される。また「部」のうち送信部、受信部はプログラム、通信装置９０４等によって実現される。記憶部、送信部、受信部以外はプログラムによって実現される。補助記憶装置９０２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。そして、ＯＳの少なくとも一部がメモリ９０３にロードされ、プロセッサ９０１はＯＳを実行しながら、「部」の機能を実現するプログラムを実行する。図１６では、１つのプロセッサ９０１が図示されているが、制御装置１０５が複数のプロセッサ９０１を備えていてもよい。そして、複数のプロセッサ９０１が「部」の機能を実現するプログラムを連携して実行してもよい。また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ９０３、補助記憶装置９０２、又は、プロセッサ９０１内のレジスタ又はキャッシュメモリに記憶される。
【００７４】
「部」を「サーキットリー」で提供してもよい。また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。「回路」及び「サーキットリー」は、プロセッサ９０１だけでなく、ロジックＩＣ又はＧＡ（Ｇａｔｅ  Ａｒｒａｙ）又はＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）又はＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）といった他の種類の処理回路をも包含する概念である。
【００７５】
上記のように、実施の形態１の制御装置１０５、マスタユニットの「部」の動作は、更新判定プログラムあるいはプログラム更新方法としても把握できる。
【符号の説明】
【００７６】
Ｍ  マスタユニット、１  ＦＷアップデートシステム、１０  制御装置メーカ、１１  プログラム更新装置、２０  セットメーカ、３０  エンドユーザ、４０  通信ネットワーク、４１，４２  経路、５１  送信要求、５２  不適合信号、１００  配信サーバ、１０２  更新用ＦＷ、１０２０  更新情報、１０３  ウェブサイト、１１０  制御部、１２０  更新情報生成部、１３０  通信部、１４０  記憶部、１０５，１０５（１０），１０５（２０），１０５（３０）  制御装置、１０５０  ユニット装置、１０５１，１０５１Ｍ  プログラム記憶部、１０５２，１０５２Ｍ  ルール記憶部、１０５３，１０５３Ｍ  更新情報受信部、１０５４，１０５４Ｍ  判定部、１０５５，１０５５Ｍ  更新部、１０５６，１０５６Ｍ  ルール情報受信部、１０５７，１０５７Ｍ  要求送信部、１０５８，１０５８Ｍ  検証部、１０５９Ｍ  バージョン取得部、２００  セットメーカ装置、２０１  開発ツール、２０２  プロジェクトファイル、２０３  更新ＦＷ  ＵＲＬ、２０４  ルールファイルＵＲＬ、２０５  ルールファイル、２０５１  ルール情報、２０５２  新版ルール情報、２０５−１  ＦＷバージョン、２０５−２，２０５−３  属性、２０６  公開鍵、２０７  デジタル署名、２０６０  検証情報、２１０  開発ツール実行部、２１１  プロジェクトファイル生成部、２１２  ルール情報生成部、２２０  通信部、２３０  記憶部、３００  エンドユーザ装置、３０００  ダウンロード装置、３０１  開発ツール、３１０  開発ツール実行部、３２０  通信部、３３０  記憶部。
【要約】
プログラム更新装置（１１）は、プログラムであるファームウェアを記憶するプログラム記憶部（１０５１）と、ファームウェアの更新のルールが定められたルール情報を記憶するルール記憶部（１０５２）と、ファームウェアを更新するための更新情報を受信する更新情報受信部（１０５３）と、更新情報がルール情報に適合するかどうかを判定する判定部（１０５４）と、判定部（１０５４）が適合すると判定した場合に、プログラム記憶部（１０５１）が記憶するファームウェアを、更新情報を用いて更新する更新部（１０５５）を備える。【図１】
0005951162.tif 000002
【図２】
0005951162.tif 000003
【図３】
0005951162.tif 000004
【図４】
0005951162.tif 000005
【図５】
0005951162.tif 000006
【図６】
0005951162.tif 000007
【図７】
0005951162.tif 000008
【図８】
0005951162.tif 000009
【図９】
0005951162.tif 000010
【図１０】
0005951162.tif 000011
【図１１】
0005951162.tif 000012
【図１２】
0005951162.tif 000013
【図１３】
0005951162.tif 000014
【図１４】
0005951162.tif 000015
【図１５】
0005951162.tif 000016
【図１６】
0005951162.tif 000017