(57)【要約】【課題】ＦＰＧＡの障害対策を適切に実行すること。【解決手段】組込装置１００は、プログラミング可能なＦＰＧＡ１４０に用いられる定義用データ、組込装置１００の立ち上げ時に利用されるブートプログラム、制御プログラムをフラッシュメモリ１１０ａ、１１０ｂに記憶し、フラッシュメモリ１１０ｃに設定情報を記憶する。そして、フラッシュメモリ切替制御部１３０が設定情報を基にしてフラッシュメモリを選択（図１に示す例では、フラッシュメモリ１１０ａあるいはフラッシュメモリ１１０ｂのいずれか一方を選択）し、選択したフラッシュメモリに記憶された定義用データをＦＰＧＡ１４０に組み込むと共に、かかるフラッシュメモリに記憶されたブートプログラムおよび制御プログラムを読み出して組込装置１００を立ち上げる。【選択図】        図１
2008165627.tif 000002
【特許請求の範囲】
【請求項１】
プログラミング可能な論理回路に用いられる定義用データを異なる記憶装置に記憶し、当該記憶装置に記憶された定義用データを前記論理回路に組み込む組込装置であって、
前記記憶装置とは別に設置され、前記論理回路に組み込む定義用データを記憶する記憶装置の情報を含んだ設定情報を記憶する設定情報記憶手段と、
前記設定情報記憶手段に記憶される設定情報に基づいて前記記憶装置を選択し、選択した記憶装置に記憶された定義用データを前記論理回路に組み込む組込制御手段と、
を備えたことを特徴とする組込装置。
【請求項２】
前記記憶装置は、前記定義用データに加えてブートプログラムおよびファームウェアをさらに記憶し、前記組込制御手段は、前記設定情報に基づいて前記記憶装置を選択し、選択した記憶装置に記憶されたブートプログラムおよびファームウェアを利用して自組込装置を立ち上げることを特徴とする請求項１に記載の組込装置。
【請求項３】
前記設定情報は、前記論理回路に組み込まれた定義用データを記憶する記憶装置を示す運用系記憶装置と、前記論理回路に組み込まれていない定義用データを記憶する記憶装置を示す待機系記憶装置とを識別する識別情報をさらに含み、更新された定義用データを取得した場合に、前記識別情報を基にして前記待機系記憶装置に記憶された定義用データを更新する更新手段をさらに備えたことを特徴とする請求項１または２に記載の組込装置。
【請求項４】
前記定義用データを組み込んだ論理回路にエラーが発生したか否かを判定するエラー判定手段と、前記エラー判定手段の判定結果に基づいて前記設定情報を更新する設定情報更新手段とをさらに備えたことを特徴とする請求項１、２または３に記載の組込装置。
【請求項５】
前記エラー判定手段は、前記ブートプログラムおよびファームウェアにエラーが発生したか否かをさらに判定し、判定結果を外部の装置に出力することを特徴とする請求項４に記載の組込装置。
【請求項６】
プログラミング可能な論理回路に用いられる定義用データを異なる第１の記憶装置に記憶し、当該第１の記憶装置に記憶された定義用データを前記論理回路に組み込む組込装置の制御方法であって、
前記第１の記憶装置とは別に設置された第２の記憶装置に、前記論理回路に組み込む定義用データを記憶する第１の記憶装置の情報を含んだ設定情報を記憶する設定情報記憶工程と、
前記設定情報に基づいて前記第１の記憶装置を選択し、選択した第１の記憶装置に記憶された定義用データを前記論理回路に組み込む組込制御工程と、
を含んだことを特徴とする制御方法。
【請求項７】
前記第１の記憶装置は、前記定義用データに加えてブートプログラムおよびファームウェアをさらに記憶し、前記組込制御工程は、前記設定情報に基づいて前記第１の記憶装置を選択し、選択した第１の記憶装置に記憶されたブートプログラムおよびファームウェアを利用して自組込装置を立ち上げることを特徴とする請求項６に記載の制御方法。
【請求項８】
前記組込装置は前記第１の記憶装置を複数備え、前記設定情報は、前記論理回路に組み込まれた定義用データを記憶する第１の記憶装置を示す運用系記憶装置と、前記論理回路に組み込まれていない定義用データを記憶する第１の記憶装置を示す待機系記憶装置とを識別する識別情報をさらに含み、更新された定義用データを取得した場合に、前記識別情報を基にして前記待機系記憶装置に記憶された定義用データを更新する更新工程をさらに含んだことを特徴とする請求項６または７に記載の制御方法。
【請求項９】
前記定義用データを組み込んだ論理回路にエラーが発生したか否かを判定するエラー判定工程と、前記エラー判定工程の判定結果に基づいて前記設定情報を更新する設定情報更新工程とをさらに含んだことを特徴とする請求項６、７または８に記載の制御方法。
【請求項１０】
前記エラー判定工程は、前記ブートプログラムおよびファームウェアにエラーが発生したか否かをさらに判定し、判定結果を外部の装置に出力することを特徴とする請求項９に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラミング可能な論理回路に用いられる定義用データを異なる記憶装置に記憶し、当該記憶装置に記憶された定義用データを前記論理回路に組み込む組込装置およびその制御方法に関し、特に、ＦＰＧＡ等に対する障害対策を適切に実行可能な組込装置および制御方法に関する。
【背景技術】
【０００２】
近年、遠隔地からのファームウェアの更新が可能な組込装置が普及している。図７は、従来の組込装置を含んだファームウェア更新システムを説明するための説明図である。このファームウェア更新システムは、同図に示すように、組込装置５０と、監視制御装置６０と、保守センターサーバ７０とから構成される。組込装置５０は、ネットワーク（図示略）を介して監視制御部６０に接続され、監視制御装置６０は、ネットワークを介して保守センターサーバ７０に接続されている。
【０００３】
ここで、保守センターサーバ７０は、定期的または組込装置５０においてハード／ソフト障害が発生した場合に、修正したファームウェア（以下、修正ファーム）を監視制御装置６０に出力する装置である。
【０００４】
監視制御装置６０は、組込装置５０のハード／ソフト障害を常時監視し、組込装置５０において障害が発生した場合に、障害の内容を保守センターサーバ７０に自動通知する装置である。そして、監視制御装置６０は、保守センターサーバ７０から修正ファームを取得した場合に、修正ファームを記憶装置６１に記憶した後、かかる修正ファームを組込装置５０に適用させる。記憶装置６１は、修正ファームなどを記憶する記憶装置である。
【０００５】
組込装置５０は、監視制御装置６０によって適用された修正ファームによって各種処理を実行する装置である。ここで、図７を利用して、組込装置５０の構成について説明する。組込装置５０は、フラッシュメモリ５１と、マイクロプロセッサ５２と、ＦＰＧＡ（Field  Programmable  Gate  Array）５３と、コンフィギュレーションＲＯＭ（Ｃ−ＲＯＭ）５４と、メインメモリ５５と、ネットワークインターフェース５６とをバス５７で接続して構成される。
【０００６】
フラッシュメモリ５１は、各種データを記憶する手段（格納手段）であり、ブートプログラム領域、制御領域、第１のプログラム領域および第２のプログラム領域を備える。このうち、ブートプログラム領域は、ブートプログラムを記憶する領域であり、制御領域は、第１のプログラム領域および第２のプログラム領域に記憶されるプログラムの各種制御情報を記憶する領域である。また、第１のプログラム領域および第２のプログラム領域は、各種プログラム（上述した修正ファームに対応するプログラム）を記憶する領域である。以下、第１のプログラム領域に記憶されたプログラムを第１のプログラム、第２のプログラム領域に記憶されたプログラムを第２のプログラムと表記する。
【０００７】
ここで、制御領域のデータ構造について説明する。図８は、制御領域のデータ構造の一例を示す図である。図８に示すように、この制御領域は、第１世代〜第ｎ世代（ｎは２以上の整数）までの複数の制御領域を有し、各制御領域は、有効／無効フラグ、動作版数、プログラム領域情報、切替要因、切替実行日時を備える。
【０００８】
このうち、有効／無効フラグは、対応する制御領域の情報が有効か無効かを示すフラグである。例えば、制御領域（第１世代）の有効／無効フラグが有効となっていれば、制御領域（第１世代）に記憶された情報は有効となる。なお、古い制御情報を記憶する制御領域の有効／無効フラグは無効に設定される。
【０００９】
動作版数は、第１のプログラム領域および第２のプログラム領域に記憶されたプログラムのプログラム版数の情報を示す。プログラム領域情報は、制御プログラムの起動領域の情報を示す（第１のプログラムあるいは第２のプログラムのどちらのプログラムで起動するかを示す情報）。
【００１０】
切替要因は、プログラムの切り換えを行う場合の要因を記憶する情報であり、切替実行日時は、プログラムの切替を実行した日時を記憶する情報である。
【００１１】
図７の説明に戻ると、マイクロプロセッサ５２は、フラッシュメモリ５１からメインメモリ５５に読み出された第１のプログラムあるいは第２のプログラムにより、組込装置５０の制御を行う手段である。マイクロプロセッサ５２は、フラッシュメモリ５１のプログラム領域情報（図８参照）を基にして、第１のプログラムあるいは第２のプログラムを選択し、選択したプログラムにより組込装置５０の制御を行う。
【００１２】
また、マイクロプロセッサ５２は、ファームウェアを更新する場合（監視制御装置から修正ファームを受信した場合）に、フラッシュメモリ５１を参照し、有効フラグが立っている制御情報（制御領域に記憶された情報）を検索する。そして、その制御情報のプログラム領域情報から更新プログラムを書き込む領域を判定する。
【００１３】
プログラム領域情報より、例えば、第１のプログラム領域が運用系（第１のプログラムを利用して各種制御を行っている）であり、第２のプログラム領域が待機系（第２のプログラムを利用していない）である場合には、マイクロプロセッサ５２は、第２のプログラム領域に更新プログラムを書き込む。そして、ファームウェア（自己）リセットの再起動により、更新プログラムでの立ち上げを行う。
【００１４】
ＦＰＧＡ５３は、マイクロプロセッサ５２からの制御信号に応じてメインメモリ５５およびフラッシュメモリ５１等の制御を行う手段であり、プログラマブルロジックデバイス（ＰＬＤ）とかフィールドプログラマブルゲートアレイといったプログラム可能な論理回路である。Ｃ−ＲＯＭ５４は、ＦＰＧＡ５３によって使用されるプログラムを記憶する手段である。
【００１５】
メインメモリ５５は、各種情報を記憶する手段であり、ＳＤＲＡＭ（Synchronous  Dynamic  random-access  Memory）などで構成される。ネットワークインターフェース５６は、所定の通信プロトコルを使用して主に監視制御装置６０と通信を行う手段である。
【００１６】
このように、従来の組込装置５０は、フラッシュメモリ５１に記憶された複数の制御プログラム（第１のプログラム、第２のプログラムなど）から最適な制御プログラムを選択して装置の立ち上げを行うと共に、待機系となるプログラム領域に更新プログラム（修正ファーム）を書き込み、ファームウェアの更新を行っているので、トラブル解決までの時間短縮、修正ファーム適用の作業工程数を削減している。
【００１７】
しかし、上述した組込装置５０は、制御プログラムのみの変更しかできず、Ｃ−ＲＯＭ５４に記憶されたＦＰＧＡ５３のデータを更新することができないという問題があった。そのため、ブートプログラムやＦＰＧＡの論理回路に障害が発生した場合、組込装置５０のハードウェアを直接交換する必要があり、トラブル解決までに時間を長く有するなどの問題があった。
【００１８】
そこで、特許文献１では、予め、複数のＣ−ＲＯＭを組込装置に実装させ、ＦＰＧＡに障害発生した場合には、Ｃ−ＲＯＭを切り換えてＦＰＧＡの論理回路を変更することで、ＦＰＧＡの障害対策を行うという技術が公開されている。
【００１９】
【特許文献１】特開２０００−３１１９４５号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
しかしながら、ＦＰＧＡに発生し得る障害は多岐にわたるため、上述した従来の技術のように、予め障害を予測して論理回路を変更するプログラムを複数のＣ−ＲＯＭに網羅的に記憶させておくことが難しく、ＦＰＧＡに対する障害対策を適切に実行することができないという問題があった。
【００２１】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、ＦＰＧＡの障害対策を適切に実行することができる組込装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【００２２】
上述した課題を解決し、目的を達成するため、本発明は、プログラミング可能な論理回路に用いられる定義用データを異なる記憶装置に記憶し、当該記憶装置に記憶された定義用データを前記論理回路に組み込む組込装置であって、前記記憶装置とは別に設置され、前記論理回路に組み込む定義用データを記憶する記憶装置の情報を含んだ設定情報を記憶する設定情報記憶手段と、前記設定情報記憶手段に記憶される設定情報に基づいて前記記憶装置を選択し、選択した記憶装置に記憶された定義用データを前記論理回路に組み込む組込制御手段と、を備えたことを特徴とする。
【００２３】
また、本発明は、上記発明において、前記記憶装置は、前記定義用データに加えてブートプログラムおよびファームウェアをさらに記憶し、前記組込制御手段は、前記設定情報に基づいて前記記憶装置を選択し、選択した記憶装置に記憶されたブートプログラムおよびファームウェアを利用して自組込装置を立ち上げることを特徴とする。
【００２４】
また、本発明は、上記発明において、前記設定情報は、前記論理回路に組み込まれた定義用データを記憶する記憶装置を示す運用系記憶装置と、前記論理回路に組み込まれていない定義用データを記憶する記憶装置を示す待機系記憶装置とを識別する識別情報をさらに含み、更新された定義用データを取得した場合に、前記識別情報を基にして前記待機系記憶装置に記憶された定義用データを更新する更新手段をさらに備えたことを特徴とする。
【００２５】
また、本発明は、上記発明において、前記定義用データを組み込んだ論理回路にエラーが発生したか否かを判定するエラー判定手段と、前記エラー判定手段の判定結果に基づいて前記設定情報を更新する設定情報更新手段とをさらに備えたことを特徴とする。
【００２６】
また、本発明は、上記発明において、前記エラー判定手段は、前記ブートプログラムおよびファームウェアにエラーが発生したか否かをさらに判定し、判定結果を外部の装置に出力することを特徴とする。
【００２７】
また、本発明は、プログラミング可能な論理回路に用いられる定義用データを異なる第１の記憶装置に記憶し、当該第１の記憶装置に記憶された定義用データを前記論理回路に組み込む組込装置の制御方法であって、前記第１の記憶装置とは別に設置された第２の記憶装置に、前記論理回路に組み込む定義用データを記憶する第１の記憶装置の情報を含んだ設定情報を記憶する設定情報記憶工程と、前記設定情報に基づいて前記第１の記憶装置を選択し、選択した第１の記憶装置に記憶された定義用データを前記論理回路に組み込む組込制御工程と、を含んだことを特徴とする。
【００２８】
また、本発明は、上記発明において、前記第１の記憶装置は、前記定義用データに加えてブートプログラムおよびファームウェアをさらに記憶し、前記組込制御工程は、前記設定情報に基づいて前記第１の記憶装置を選択し、選択した第１の記憶装置に記憶されたブートプログラムおよびファームウェアを利用して自組込装置を立ち上げることを特徴とする。
【００２９】
また、本発明は、上記発明において、前記組込装置は前記第１の記憶装置を複数備え、前記設定情報は、前記論理回路に組み込まれた定義用データを記憶する第１の記憶装置を示す運用系記憶装置と、前記論理回路に組み込まれていない定義用データを記憶する第１の記憶装置を示す待機系記憶装置とを識別する識別情報をさらに含み、更新された定義用データを取得した場合に、前記識別情報を基にして前記待機系記憶装置に記憶された定義用データを更新する更新工程をさらに含んだことを特徴とする。
【００３０】
また、本発明は、上記発明において、前記定義用データを組み込んだ論理回路にエラーが発生したか否かを判定するエラー判定工程と、前記エラー判定工程の判定結果に基づいて前記設定情報を更新する設定情報更新工程とをさらに含んだことを特徴とする。
【００３１】
また、本発明は、上記発明において、前記エラー判定工程は、前記ブートプログラムおよびファームウェアにエラーが発生したか否かをさらに判定し、判定結果を外部の装置に出力することを特徴とする。
【発明の効果】
【００３２】
本発明によれば、定義用データを記憶した記憶装置とは別に設置された記憶装置において、論理回路に組み込む定義用データを記憶する記憶装置の情報を含んだ設定情報を記憶し、設定情報に基づいて記憶装置を選択し、選択した記憶装置に記憶された定義用データを論理回路に組み込むので、論理回路に対する障害対策を適切に実行することができる。
【００３３】
また、本発明によれば、定義用データに加えてブートプログラムおよびファームウェアをさらに記憶装置に記憶し、設定情報に基づいて記憶装置を選択し、選択した記憶装置に記憶されたブートプログラムおよびファームウェアを利用して自組込装置を立ち上げるので、ブートプログラムおよびファームウェアの障害対策を適切に実行することができる。
【００３４】
また、本発明によれば、設定情報は、運用系記憶装置と、待機系記憶装置とを識別する識別情報をさらに含み、更新された定義用データを取得した場合に、識別情報を基にして待機系記憶装置に記憶された定義用データを更新するので、組込装置を停止させることなく、更新された定義用データを記憶装置に記憶させることができる。
【００３５】
また、本発明によれば、定義用データを組み込んだ論理回路にエラーが発生したか否かを判定し、判定結果に基づいて設定情報を更新するので、エラーが発生した場合であっても、適切に組込装置を立ち上げることができる。
【００３６】
また、本発明によれば、ブートプログラムおよびファームウェアにエラーが発生したか否かをさらに判定し、判定結果を外部の装置に出力するので、障害対策を迅速に実行することができる。
【発明を実施するための最良の形態】
【００３７】
以下に添付図面を参照して、この発明に係る組込装置および制御方法の好適な実施の形態を詳細に説明する。
【実施例】
【００３８】
まず、本実施例にかかる組込装置の概要および特徴について説明する。本実施例にかかる組込装置は、プログラミング可能なＦＰＧＡ（Field  Programmable  Gate  Array）に用いられる定義用データ（コンフィギュレーションデータ）を異なる複数の記憶装置に記憶し、この記憶装置に記憶された定義データをＦＰＧＡに組み込む装置に関するものであり、定義用データを記憶する記憶装置とは別に、ＦＰＧＡに組み込むべき定義用データを記憶する記憶装置の情報を含んだ設定情報を記憶装置に記憶し、この記憶装置に記憶された設定情報に基づいて記憶装置を選択し、選択した記憶装置に記憶された定義用データをＦＰＧＡに組み込む。
【００３９】
また、本実施例にかかる組込装置は、外部の装置から更新された定義用データを取得した場合に、取得した定義用データによって記憶装置に記憶されていた古い定義用データを更新し、更新した定義用データを新たにＦＰＧＡに組み込む。
【００４０】
このように、本実施例にかかる組込装置は、定義用データを記憶した記憶装置とは別の記憶装置に設定情報を記憶し、この設定情報を基にしてＦＰＧＡに組み込む定義用データを記憶した記憶装置を選択し、選択した記憶装置の定義用データを読み出してＦＰＧＡに組み込むので、効率よくＦＰＧＡに更新された定義用データを組み込むことができる。
【００４１】
また、本実施例にかかる組込装置は、更新された定義用データを取得した場合に、取得した定義用データによって記憶装置に記憶されていた古い定義用データを更新し、更新した定義用データを新たにＦＰＧＡに組み込むので、ＦＰＧＡに組み込むべき複数の定義用データを予め組込装置が保持していなくても、ＦＰＧＡに対する障害対策を適切に実行することができる。
【００４２】
次に、本実施例にかかる組込装置を含んだ更新システムについて説明する。図１は、本実施例にかかる更新システムの構成を示す図である。同図に示すように、この更新システムは、組込装置１００と、監視制御装置２００と、保守センターサーバ３００とから構成される。
【００４３】
ここで、保守センターサーバ３００は、定期的または組込装置１００において障害が発生した場合（組込装置１００のブートプログラム、制御プログラムあるいは定義用データに障害が発生した場合）に、障害の内容に応じて更新用のデータ（定期的に更新される各種プログラム、ブートプログラム、制御プログラムあるいは定義用データの更新データ）を監視制御装置２００に出力する装置である。
【００４４】
監視制御部２００は、組込装置１００の障害を常時監視し、組込装置１００において障害が発生した場合に、障害の内容を保守センターサーバ３００に出力する装置である。ここで、監視制御装置２００の構成について説明する。図１に示すように、この監視制御装置２００は、ネットワークインターフェース２１０と、マイクロプロセッサ２２０と、コントローラ２３０と、メインメモリ２４０とをバス２５０で接続して構成される。
【００４５】
ネットワークインターフェース２１０は、所定の通信プロトコルを使用してデータ通信を実行する手段である。このネットワークインターフェース２１０は、主に、組込装置１００および保守センターサーバ３００との間でデータ通信を実行する。
【００４６】
マイクロプロセッサ２２０は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する制御手段である。コントローラ２３０は、組込装置１００の障害を常時監視し、組込装置１００において障害が発生した場合に、障害の内容を保守センターサーバ３００に出力する手段である。
【００４７】
コントローラ２３０は、組込装置１００において発生した障害が定義用データの障害である場合には、定義用データに障害が発生した旨の情報を保守センターサーバ３００に出力する。また、コントローラ２３０は、組込装置１００において発生した障害がブートプログラムの障害である場合には、ブートプログラムに障害が発生した旨の情報を保守センターサーバ３００に出力する。また、コントローラ２３０は、組込装置１００において発生した障害が制御プログラム（ファームウェアを含む）である場合には、制御プログラムに障害が発生した旨の情報を保守センターサーバ３００に出力する。
【００４８】
そして、コントローラ２３０は、保守センターサーバ３００から更新用のデータを取得した場合に、取得した更新用のデータを記憶装置２００ａに記憶した後、かかる更新用のデータを組込装置１００に適用させる。記憶装置２００ａは、更新用のデータを記憶する記憶手段である。
【００４９】
メインメモリ２４０は、マイクロプロセッサ２２０による各種処理に必要なデータおよびプログラムを記憶する記憶手段（格納手段）である。
【００５０】
続いて、組込装置１００の構成について説明する。図１に示すように、この組込装置１００は、フラッシュメモリ１１０ａ〜１１０ｃと、マイクロプロセッサ１２０と、フラッシュメモリ切替制御部１３０と、ＦＰＧＡ１４０と、メインメモリ１５０と、ネットワークインターフェース１６０と、エラー検出部１７０とをバス１８０で接続して構成される。
【００５１】
このうち、フラッシュメモリ１１０ａおよび１１０ｂは、各種データを記憶する手段（格納手段）であり、ブートプログラム領域、制御領域、制御プログラム領域、ＦＰＧＡデータ領域を備える。このうち、ブートプログラム領域は、ブートプログラムを記憶する領域であり、制御領域は、制御プログラム領域およびＦＰＧＡデータ領域に記憶されるプログラムの各種制御情報を記憶する領域である。制御プログラム領域は、ファームウェアを記憶する領域である。ＦＰＧＡデータ領域は、ＦＰＧＡ１４０に組み込まれる定義用データを記憶する領域である。
【００５２】
ここで、制御領域のデータ構造について説明する。図２は、本実施例にかかる制御領域のデータ構造の一例を示す図である。同図に示すように、この制御領域は、第１世代〜第ｎ世代（ｎは２以上の整数）までの複数の制御領域を有し、各制御領域は、有効／無効フラグ、動作版数、切替要因、切替実行日時を備える。
【００５３】
このうち、有効／無効フラグは、対応する制御領域の情報が有効か無効かを示すフラグである。例えば、制御領域（第１世代）の有効／無効フラグが有効となっていれば、制御領域（第１世代）に記憶された情報は有効となる。なお、古い制御情報を記憶する制御領域の有効／無効フラグは無効に設定される。
【００５４】
動作版数は、制御プログラム領域およびＦＰＧＡデータ領域に記憶されたファームウェア、ブートプログラム領域に記憶されたブートプログラムおよび定義用データの版数の情報を示す。切替要因は、プログラムの切替を行う場合の要因を記憶する情報であり、切替実行日時は、プログラムの切替を実行した日時を記憶する情報である。
【００５５】
図１の説明に戻ると、フラッシュメモリ１１０ｃは、組込装置１００の起動時に利用するフラッシュメモリの設定情報を記憶する記憶手段（格納手段）である。図３は、設定情報のデータ構造の一例を示す図である。同図に示すように、この設定情報は、フラッシュメモリ識別情報と、運用系フラグと、待機系フラグとを備える。
【００５６】
このうち、フラッシュメモリ識別情報は、フラッシュメモリを識別する情報であり、例えば、「Ｆ０００１」は、フラッシュメモリ１１０ａに対応し、「Ｆ０００２」は、フラッシュメモリ１１０ｂに対応する。
【００５７】
運用系フラグは、運用系となるフラッシュメモリを示すフラグである。具体的には、運用系フラグがオンとなるフラッシュメモリが運用系のフラッシュメモリとなる。図３に示す例では、フラッシュメモリ識別情報「Ｆ０００１」のフラッシュメモリ１１０ａが運用系のフラッシュメモリとなっている。組込装置１００は、起動時に、運用系フラグがオンとなっているフラッシュメモリから定義用データを読み込んでＦＰＧＡ１４０に組み込むとともに、かかるフラッシュメモリからブートプログラムおよび制御プログラム（ファームウェア）を読み出して立ち上げを実行する。
【００５８】
待機系フラグは、待機系となるフラッシュメモリを示すフラグである。具体的には、待機系フラグがオンとなるフラッシュメモリが待機系のフラッシュメモリとなる。図３に示す例では、フラッシュメモリ識別情報「Ｆ０００２」のフラッシュメモリ１１０ｂが待機系のフラッシュメモリとなっている。更新された各種データ（ブートプログラム、制御プログラム、定義用データ）は、待機系のフラッシュメモリに書き込まれる。
【００５９】
マイクロプロセッサ１２０は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する制御手段である。フラッシュメモリ切替制御部１３０は、フラッシュメモリ１１０ｃに記憶された設定情報を読み出し、読み出した設定情報に基づいて運用系となるフラッシュメモリと待機系となるフラッシュメモリとを切り替える手段である。
【００６０】
例えば、図３のように設定情報が設定されている場合には、フラッシュメモリ切替制御部１３０は、フラッシュメモリ１１０ａを運用系に切り替える。マイクロプロセッサ１２０は、運用系のフラッシュメモリに記憶されたブートプログラムおよび制御プログラムをメインメモリ１５０に読み出し、読み出したブートプログラムおよび制御プログラムを実行して組込装置１００の立ち上げを行う。
【００６１】
ＦＰＧＡ１４０は、マイクロプロセッサ１２０からの制御信号に応じてメインメモリ１５０およびフラッシュメモリ１１０ａ〜１１０ｃ等の制御を行う手段であり、プログラマブルロジックデバイス（ＰＬＤ）とかフィールドプログラマブルゲートアレイといったプログラム可能な論理回路である。ＦＰＧＡ１４０は、フラッシュメモリ切替制御部１３０によって運用系に切り替えられたフラッシュメモリから定義用データを読み出して、読み出した定義用データを組み込み、各種処理を実行する。
【００６２】
メインメモリ１５０は、各種情報を記憶する手段であり、ＳＤＲＡＭ（Synchronous  Dynamic  random-access  Memory）などで構成される。ネットワークインターフェース１６０は、所定の通信プロトコルを使用して主に監視制御装置２００と通信を行う手段である。
【００６３】
エラー検出部１７０は、運用系となるフラッシュメモリに記憶されたブートプログラム、制御プログラムおよび定義用データに障害が発生したか否かを判定する手段である。また、エラー検出部１７０は、監視制御装置２００から更新用のデータを取得した場合に、その旨をマイクロプロセッサ１２０に通知する。
【００６４】
エラー検出部１７０が障害の発生を判定する手法は、従来技術による障害検出手法を利用すればよい。例えば、ＦＰＧＡ１４０が定義用データを組み込んだ後、所定期間内にＦＰＧＡ１４０からの応答がない場合には、エラー検出部１７０は、定義用データに障害が発生したと判定し、障害の内容を監視制御装置２００に出力する（この場合には、定義用データに障害が発生した旨の情報を監視制御装置２００のコントローラ２３０に出力する）。同様に、エラー検出部１７０は、ブートプログラムに障害が発生した場合や、制御プログラムに障害が発生した場合にも、障害の内容を監視制御装置２００に出力する。
【００６５】
続いて、更新用のデータを取得した場合の処理について説明すると、エラー検出部１７０は、監視制御装置２００から更新用のデータを取得した場合にその旨をマイクロプロセッサ１２０に通知し、マイクロプロセッサ１２０は、フラッシュメモリ１１０ｃに記憶された設定情報から待機系のフラッシュメモリを判定し、判定したフラッシュメモリに更新用のデータを書き込む。
【００６６】
更新用のデータがブートプログラムの更新データである場合には、マイクロプロセッサ１２０は、ブートプログラム領域に記憶されたブートプログラムを更新し、制御領域の制御情報を更新する。更新用のデータが制御プログラム（ファームウェア）の更新データである場合には、マイクロプロセッサ１２０は、制御プログラム領域に記憶された制御プログラムを更新し、制御領域の制御情報を更新する。また、更新用のデータが定義用データの更新データである場合には、マイクロプロセッサ１２０は、ＦＰＧＡデータ領域に記憶された定義用データを更新し、制御領域の制御情報を更新する。
【００６７】
そして、マイクロプロセッサ１２０は、待機系のフラッシュメモリに対する更新用のデータの登録が完了した後に、フラッシュメモリ１１０ｃに記憶された設定情報を変更するとともに、組込装置１００のリセットを行う。設定情報の更新を具体的に説明すると、マイクロプロセッサ１２０は、更新用のデータの登録が完了したフラッシュメモリの運用系フラグをオン、待機系フラグをオフとし、それまで運用系となっていたフラッシュメモリの運用系フラグをオフ、待機系フラグをオンとする。
【００６８】
このように、マイクロプロセッサ１２０が待機系となるフラッシュメモリに更新用のデータを書き込み、フラッシュメモリ１１０ｃの設定情報を変更するので、組込装置１００が再起動した場合に、障害のない更新用のデータを基にして各種処理を実行することができる。
【００６９】
次に、本実施例にかかる組込装置１００の処理について説明する。図４は、本実施例にかかる組込装置１００の処理手順を示すフローチャートである。同図に示すように、組込装置１００は、フラッシュメモリ切替制御部１３０がフラッシュメモリ１１０ｃから設定情報を取得し（ステップＳ１０１）、設定情報に基づいてフラッシュメモリを選択する（ステップＳ１０２）。
【００７０】
そして、ＦＰＧＡ１４０は、定義用データを取得し（ステップＳ１０３）、ＦＰＧＡ１４０がコンフィギュレーションを実行し（ステップＳ１０４）、エラー検出部１７０は障害を検出したか否かを判定する（ステップＳ１０５）。
【００７１】
エラー検出部１７０が障害を検出した場合には（ステップＳ１０６，Ｙｅｓ）、エラー検出部１７０は、障害の内容を監視制御装置２００に出力し（ステップＳ１０７）、更新処理を実行し（ステップＳ１０８）、ステップＳ１０１に移行する。
【００７２】
一方、エラー検出部が障害を検出しなかった場合には（ステップＳ１０６，Ｎｏ）、フラッシュメモリからブートプログラムを読出し（ステップＳ１０９）、障害が発生したか否かを判定する（ステップＳ１１０）。
【００７３】
エラー検出部１７０がブートプログラムの障害を検出した場合には（ステップＳ１１１，Ｙｅｓ）、ステップＳ１０７に移行する。一方、障害を検出しなかった場合には（ステップＳ１１１，Ｎｏ）、制御プログラムの読出しを行い（ステップＳ１１２）、障害を検出したか否かを判定する（ステップＳ１１３）。
【００７４】
エラー検出部１７０が制御プログラムの障害を検出した場合には（ステップＳ１１４，Ｙｅｓ）、ステップＳ１０７に移行する。一方、障害を検出しなかった場合には（ステップＳ１１４，Ｎｏ）、組込装置１００の立ち上げを行う。
【００７５】
続いて、図４のステップＳ１０８において示した更新処理について説明する。図５は、更新処理の処理手順を示すフローチャートである。同図に示すように、組込装置１００が更新用のデータを取得した場合に（ステップＳ２０１）、マイクロプロセッサ１２０がフラッシュメモリ１１０ｃに記憶された設定情報を取得して更新用のデータを書き込むフラッシュメモリを選択する（ステップＳ２０２）。
【００７６】
そして、マイクロプロセッサ１２０が更新用のデータをフラッシュメモリに書き込み（ステップＳ２０３）、フラッシュメモリ１１０ｃに記憶された設定情報を更新し（ステップＳ２０４）、組込装置１００をリセットする（ステップＳ２０５）。
【００７７】
このように、フラッシュメモリ切替制御部１３０がフラッシュメモリ１１０ｃに記憶された設定情報を基にしてフラッシュメモリを選択し、選択したフラッシュメモリに記憶されるブートプログラム、制御プログラムおよび定義用データによって組込装置１００の立ち上げを実行するので、ブートプログラム、制御プログラム、定義用データを効率よく更新することができる。
【００７８】
上述してきたように、本実施例にかかる組込装置１００は、プログラミング可能なＦＰＧＡ１４０に用いられる定義用データ、組込装置１００の立ち上げ時に利用されるブートプログラム、制御プログラムをフラッシュメモリ１１０ａ、１１０ｂに記憶し、フラッシュメモリ１１０ｃに設定情報を記憶し、フラッシュメモリ切替制御部１３０が設定情報を基にしてフラッシュメモリを選択（図１に示す例では、フラッシュメモリ１１０ａあるいはフラッシュメモリ１１０ｂのいずれか一方を選択）し、選択したフラッシュメモリに記憶された定義用データをＦＰＧＡ１４０に組み込むと共に、かかるフラッシュメモリに記憶されたブートプログラムおよび制御プログラムを読み出して組込装置１００を立ち上げるので、フィールドにおいて、ブートプログラム、制御プログラム、ＦＰＧＡの定義用データの版数アップが可能となり、組込装置１００のブートプログラムやハードウェア（ＦＰＧＡ）に障害が発生した場合にでもハードウェアを交換することなく保守センターサーバ３００からの修正プログラムを適用できる。
【００７９】
また、本実施例にかかる組込装置１００は、待機系のフラッシュメモリに更新されたデータを書き込むので、顧客のシステムを業務停止することなく保守可能で、保守時間を大幅に短縮することができる。また、基板を工場に返却する必要がないため、保守作業や工場の作業工数を大幅に削減することができる。改版が生じた場合にでも改版作業時間を短縮できる。
【００８０】
また、エラー検出部１７０が、組込装置１００の立ち上げ時に障害を検出した場合に、障害の内容を監視制御装置２００に通知し、マイクロプロセッサ１２０が更新用のデータを取得して待機系のフラッシュメモリに記憶し、再起動するので、障害対策を効率よく実行することができる。
【００８１】
なお、本実施例にかかる組込装置１００は、自装置（組込装置１００）が立ち上がった後、運用中にエラーが発生した場合にも、障害内容を監視制御装置２００に通知し、更新処理を実行する。すなわち、組込装置１００のエラー検出部１７０が、ブートプログラム、制御プログラムあるいはＦＰＧＡデータのバグを検出した場合には、障害内容を監視制御装置２００に通知する。そして、エラー検出部１７０は、保守センターサーバ３００から送られる更新データを待機系のフラッシュメモリに記録し、フラッシュメモリ１１０ｃに記憶された設定情報を変更する（各フラッシュメモリの運用系フラグおよび待機系フラグのオン・オフを切り換える）。その後、組込装置１００は、エラー検出部１７０によりリセットされ、図４に対応する処理を実行する。
【００８２】
組込装置１００が立ち上がった後の不具合検出は、管理者が行っても構わない。管理者が工場などで、ブートプログラム、制御プログラムあるいはＦＰＧＡデータのバグを検出した場合には、更新プログラムを保守センターサーバ３００に置き、待機系のフラッシュメモリに更新プログラムを記憶させると共に、組込装置１００にフラッシュメモリ１１０ｃの設定情報を更新させ、図４に対応する処理を組込装置１００に実行させる。
【００８３】
また、組込装置１００は、各フラッシュメモリに記憶された新旧データを選択して立ち上げを行っているので、万が一トラブルにより新版数の立ち上げに失敗した場合にでも、旧版数の切替および再起動により即時復旧することができる。
【００８４】
ところで、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部あるいは一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８５】
また、図示した組込装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部がＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８６】
ここで、図１に示した組込装置１００の具体的な構成について説明する。図６は、図１に示した組込装置１００の具体的な構成を示す機能ブロック図である。同図に示すように、この組込装置１００は、マイクロプロセッサ４００と、フラッシュメモリ４１０ａ〜４１０ｃと、フラッシュメモリ切替制御部４２０と、ＦＰＧＡ４３０と、ＳＷ４４０と、エラー検出部４５０とを備えて構成される。
【００８７】
マイクロプロセッサ４００は、図１に示したマイクロプロセッサ１２０に対応し、フラッシュメモリ４１０ａ〜４１０ｃに対してリード／ライト可能とする。フラッシュメモリ４１０ａ〜４１０ｃは、図１に示したフラッシュメモリ１１０ａ〜１１０ｃにそれぞれ対応し、フラッシュメモリ４１０ａ、４１０ｂは、異なる版数のブートプログラム、制御プログラムおよび定義用データを記憶する。組込装置１００は、−ＣＳ１、−ＣＳ２で選択されたフラッシュメモリの内容で立ち上がる。なお、ここでは、フラッシュメモリ４１０ａ〜４１０ｃのフラッシュメモリのみを示すがこれに限定されるものではなく、その他のフラッシュメモリを備えて組込装置１００を構成してもよい。
【００８８】
フラッシュメモリ切替制御部４２０は、図１に示したフラッシュメモリ切替制御部１３０に対応し、フラッシュメモリ４１０ｃと、フラッシュメモリリード制御部４２１と、コンフィギュレーション制御部４２２と、論理回路部（レジスタ４２３，４２４、ＸＯＲ（eXclusive  OR）４２５、ＭＰＸ（マルチプレクサ）４２６、セレクタ４２７，４２８、ＦＷＲ（Firmware  Reset  Flag）４２９ａ、ＦＣＲ（Force  Reset  Flag）４２９ｂ）とを備えて構成される。
【００８９】
フラッシュメモリ４１０ｃは、設定情報（図３参照）に対応するデータを記憶する。フラッシュメモリリード制御部４２１は、電源投入時、ファームリセット時、フォースリセット時、またはマイクロプロセッサ４００からの指示により、フラッシュメモリ４１０ｃの読み出しを行い、読み出したデータをレジスタ４２３に格納する。なお、フラッシュメモリリード制御部４２１は、ＦＰＧＡ４３０のリード制御部４３１からの指示を受け付けた場合にも、フラッシュメモリ４１０ｃの読み出しを行う。
【００９０】
コンフィギュレーション制御部４２２は、論理回路部によって選択されたフラッシュメモリに記憶された定義用データによってＦＰＧＡ４３０をコンフィギュレーションする（定義用データをＦＰＧＡ４３０に組み込む）。
【００９１】
続いて、論理回路部の説明に移ると、レジスタ４２３は、フラッシュメモリ４１０ｃから読み出されたデータを記憶するレジスタである。レジスタ４２４は、電源投入時、ファームリセット時、フォースリセット時にレジスタ４２３と、ＦＣＲ４２９ｂに記憶されたデータをＸＯＲした値を記憶するレジスタである。このレジスタ４２４には、運用系のフラッシュメモリを示すデータが記憶される。ＸＯＲ４２５は、レジスタ４２３に記録された情報およびＦＣＲ４２９ｂに記憶された情報とをＸＯＲした結果をレジスタ４２４に出力する装置である。
【００９２】
ＦＷＲ４２９ａは、マイクロプロセッサ４００からファームウェアリセットが指示されたか否かのデータを格納するレジスタである。ＦＣＲ４２９ｂは、フォースリセットが指示されたか否かのデータを格納するレジスタである。ＦＷＲ４２９ａおよびＦＣＲ４２９ｂは、電源投入時あるいはマイクロプロセッサ（ＦＰＧＡのレジスタ経由）からリセット可能なレジスタである。
【００９３】
ＭＰＸ４２６は、電源投入時、ファームリセット時、フォースリセット時のＦＰＧＡ４３０のコンフィギュレーションやファームブート、あるいは更新データ書き換え時にフラッシュメモリを選択する論理回路である。セレクタ４２７，４２８は、ＭＰＸ４２６の指示により、フラッシュメモリを選択するセレクタである。
【００９４】
ＦＰＧＡ４３０は、図１に示したＦＰＧＡ１４０に対応し、リード制御部４３１と、レジスタ４３２，４３３と、ＦＷＲ部４３４と、ＦＣＲ４３５部とを備える。レジスタ４３２は、レジスタ４２３と同じ値を記憶するレジスタであり、マイクロプロセッサ４００から読み出しが可能である。
【００９５】
レジスタ４３３は、レジスタ４２４と同じ値を記憶するレジスタであり、マイクロプロセッサ４００から読み出しが可能である。ＦＷＲ部４３４は、ＦＷＲ４２９ａと同じ値を記憶するとともに、マイクロプロセッサ４００からＦＷＲ４２９ａの値をクリアすることができる。ＦＣＲ部４３５は、ＦＣＲ４２９ｂと同じ値を記憶するとともに、マイクロプロセッサ４００からＦＣＲ４２９ｂの値をクリアすることができる。
【００９６】
エラー検出部４５０は、図１に示したエラー検出部１７０に対応し、ＦＰＧＡ４３０の障害を検出した場合（定義用データを組み込んだ後、所定期間内に応答がない場合）には、ＳＷ（スイッチ）４４０をオンとする。ＳＷ４４０がオンとなると、ＦＣＲ４２９ｂにフォースリセットを実行する旨の情報が記憶される。
【００９７】
続いて、図６に示した組込装置１００の処理について説明する。電源投入時、フラッシュメモリ切替制御部４２０は、フラッシュメモリリード制御部４２１が動作し、フラッシュメモリ４１０ｃの０番地の値を読み出し、読み出した値をレジスタ４２３，４２４に記憶する。
【００９８】
コンフィギュレーション制御部４２２は、ＦＰＧＡ４３０のコンフィギュレーションを開始するため、−ＳＥＬＡ信号をアクティブにする。論理回路部は、レジスタ４２４に示されたフラッシュメモリ選択情報により、ＦＰＧＡ４３０のコンフィギュレーションを行うフラッシュメモリを判定する。
【００９９】
ＦＰＧＡ４３０のコンフィギュレーション終了後、マイクロプロセッサ４００が動作を開始し、−ＳＥＬＢ信号がアクティブとなり、論理回路部によりコンフィギュレーションした同じフラッシュメモリが選択されてブートが開始される。例えば、論理回路部は、レジスタ４２４に「１」が記憶されている場合には、フラッシュメモリ４１０ａを選択し、レジスタ４２４に「０」が記憶されている場合には、フラッシュメモリ４１０ｂを選択する。
【０１００】
ブートプログラムや制御プログラム、あるいは定義用データにデータ更新（修正）があった場合、マイクロプロセッサ４００は、レジスタ４２４の値から更新プログラム（更新用データに対応）を書き込むフラッシュメモリを判定する。例えば、レジスタ４２４の値が「１」であれば、運用系のフラッシュメモリはフラッシュメモリ４１０ａであるため、更新プログラムは、待機系のフラッシュメモリ４１０ｂに書き込まれる（マイクロプロセッサ４００は、−ＳＥＬ２信号を使用してフラッシュメモリ４１０ｂのデータを書き換える）。
【０１０１】
更新プログラムの書き込みが正常終了した後、マイクロプロセッサ４００は、レジスタ４２４の反転値「０」をフラッシュメモリ４１０ｃの０番地に書き込む。この後、ファームウェア（自己）リセットの再起動により、フラッシュメモリ切替制御部４２０のフラッシュメモリリード制御部４２１が動作し、フラッシュメモリ４１０ｃの０番地の値を読み出し、レジスタ４２３，４２４にその値「０」を記憶する。このようにして、更新したデータでＦＰＧＡコンフィギュレーションとマイクロプロセッサ４００のブートが可能となる。
【０１０２】
なお、更新プログラムの書き込みに失敗した場合には、フラッシュメモリ４１０ｃのデータ書き換えを行わないため、現状版数のフラッシュメモリで立ち上がることができる。また、フラッシュメモリ４１０ｃのデータ書き換えに失敗した場合にでも現状版数のフラッシュメモリで立ち上がることができる。
【０１０３】
フォースリセットは、強制的に版数切替を行うリセットである（人手によるスイッチによっても実行可能とする）。フォースリセットが実行されると、フラッシュメモリ切替制御部４２０のＦＣＲ４２９ｂに「１」（要因）がセットされ、リセットによる再起動がかかり、フラッシュメモリリード制御部４２１が動作し、フラッシュメモリリード制御部４２１は、フラッシュメモリ４１０ｃの０番地の値を読み出し、レジスタ４２３に格納する。
【０１０４】
論理回路部（レジスタ４２４の入力は、レジスタ４２３とＦＣＲ４２９ｂとのＸＯＲ論理）によりＦＣＲ４２９ｂレジスタに格納された値がフォースリセット時には「１」であるため、レジスタ４２４にはレジスタ４２３の反転した値が格納される。
【０１０５】
これにより、立ち上げ（コンフィギュレーションとブート）を行うフラッシュメモリが運用系から待機系に切り替わる。マイクロプロセッサ４００は、ブート完了後、ＦＣＲ部４３５（ＦＣＲ４２９ｂと同じ値を記憶）に要因が残っていることから、フォースリセットが実行されたと判定し、フラッシュメモリ４１０ｃの０番地の値をレジスタ４３３（レジスタ４２４と同じ値を記憶）と同じ値に書き換える。このように、マイクロプロセッサ４００は、必ず立ち上がるべき、フラッシュメモリを選択できるようにフラッシュメモリ４１０ｃの値を書き換えているため、次の電源投入時にはフラッシュメモリの選択を間違うことがない。
【０１０６】
（付記１）プログラミング可能な論理回路に用いられる定義用データを異なる記憶装置に記憶し、当該記憶装置に記憶された定義用データを前記論理回路に組み込む組込装置であって、
前記記憶装置とは別に設置され、前記論理回路に組み込む定義用データを記憶する記憶装置の情報を含んだ設定情報を記憶する設定情報記憶手段と、
前記設定情報記憶手段に記憶される設定情報に基づいて前記記憶装置を選択し、選択した記憶装置に記憶された定義用データを前記論理回路に組み込む組込制御手段と、
を備えたことを特徴とする組込装置。
【０１０７】
（付記２）前記記憶装置は、前記定義用データに加えてブートプログラムおよびファームウェアをさらに記憶し、前記組込制御手段は、前記設定情報に基づいて前記記憶装置を選択し、選択した記憶装置に記憶されたブートプログラムおよびファームウェアを利用して自組込装置を立ち上げることを特徴とする付記１に記載の組込装置。
【０１０８】
（付記３）前記設定情報は、前記論理回路に組み込まれた定義用データを記憶する記憶装置を示す運用系記憶装置と、前記論理回路に組み込まれていない定義用データを記憶する記憶装置を示す待機系記憶装置とを識別する識別情報をさらに含み、更新された定義用データを取得した場合に、前記識別情報を基にして前記待機系記憶装置に記憶された定義用データを更新する更新手段をさらに備えたことを特徴とする付記１または２に記載の組込装置。
【０１０９】
（付記４）前記定義用データを組み込んだ論理回路にエラーが発生したか否かを判定するエラー判定手段と、前記エラー判定手段の判定結果に基づいて前記設定情報を更新する設定情報更新手段とをさらに備えたことを特徴とする付記１、２または３に記載の組込装置。
【０１１０】
（付記５）前記エラー判定手段は、前記ブートプログラムおよびファームウェアにエラーが発生したか否かをさらに判定し、判定結果を外部の装置に出力することを特徴とする付記４に記載の組込装置。
【０１１１】
（付記６）前記更新手段は、更新されたブートプログラムおよび／またはファームウェアを取得した場合に、前記識別情報を基にして前記待機系記憶装置に記憶されたブートプログラムおよび／またはファームウェアを更新することを特徴とする付記５に記載の組込装置。
【０１１２】
（付記７）プログラミング可能な論理回路に用いられる定義用データを異なる第１の記憶装置に記憶し、当該第１の記憶装置に記憶された定義用データを前記論理回路に組み込む組込装置の制御方法であって、
前記第１の記憶装置とは別に設置された第２の記憶装置に、前記論理回路に組み込む定義用データを記憶する第１の記憶装置の情報を含んだ設定情報を記憶する設定情報記憶工程と、
前記設定情報に基づいて前記第１の記憶装置を選択し、選択した第１の記憶装置に記憶された定義用データを前記論理回路に組み込む組込制御工程と、
を含んだことを特徴とする制御方法。
【０１１３】
（付記８）前記第１の記憶装置は、前記定義用データに加えてブートプログラムおよびファームウェアをさらに記憶し、前記組込制御工程は、前記設定情報に基づいて前記第１の記憶装置を選択し、選択した第１の記憶装置に記憶されたブートプログラムおよびファームウェアを利用して自組込装置を立ち上げることを特徴とする付記７に記載の制御方法。
【０１１４】
（付記９）前記組込装置は前記第１の記憶装置を複数備え、前記設定情報は、前記論理回路に組み込まれた定義用データを記憶する第１の記憶装置を示す運用系記憶装置と、前記論理回路に組み込まれていない定義用データを記憶する第１の記憶装置を示す待機系記憶装置とを識別する識別情報をさらに含み、更新された定義用データを取得した場合に、前記識別情報を基にして前記待機系記憶装置に記憶された定義用データを更新する更新工程をさらに含んだことを特徴とする付記７または８に記載の制御方法。
【０１１５】
（付記１０）前記定義用データを組み込んだ論理回路にエラーが発生したか否かを判定するエラー判定工程と、前記エラー判定工程の判定結果に基づいて前記設定情報を更新する設定情報更新工程とをさらに含んだことを特徴とする付記７、８または９に記載の制御方法。
【０１１６】
（付記１１）前記エラー判定工程は、前記ブートプログラムおよびファームウェアにエラーが発生したか否かをさらに判定し、判定結果を外部の装置に出力することを特徴とする付記１０に記載の制御方法。
【０１１７】
（付記１２）前記更新工程は、更新されたブートプログラムおよび／またはファームウェアを取得した場合に、前記識別情報を基にして前記待機系記憶装置に記憶されたブートプログラムおよび／またはファームウェアを更新することを特徴とする付記１１に記載の制御方法。
【産業上の利用可能性】
【０１１８】
以上のように、本発明にかかる組込装置および制御方法は、複数の記憶装置の中から記憶装置を選択し、選択した記憶装置に記憶されたデータを利用して装置の立ち上げを実行する組込装置に対して有用である。
【図面の簡単な説明】
【０１１９】
【図１】本実施例にかかる更新システムの構成を示す図である。
【図２】本実施例にかかる制御領域のデータ構造の一例を示す図である。
【図３】設定情報のデータ構造の一例を示す図である。
【図４】本実施例にかかる組込装置の処理手順を示すフローチャートである。
【図５】更新処理の処理手順を示すフローチャートである。
【図６】図１に示した組込装置の具体的な構成を示す機能ブロック図である。
【図７】従来の組込装置を含んだファームウェア更新システムを説明するための説明図である。
【図８】制御領域のデータ構造の一例を示す図である。
【符号の説明】
【０１２０】
５０，１００    組込装置
５１，１１０ａ、１１０ｂ、１１０ｃ，４１０ａ，４１０ｂ，４１０ｃ  フラッシュメモリ
５２，１２０，２２０，４００    マイクロプロセッサ
５３，１４０，４３０    ＦＰＧＡ
５４    Ｃ−ＲＯＭ
５５，１５０，２４０    メインメモリ
５６，１６０，２１０    ネットワークインターフェース
６０，２００    監視制御装置
６１，２００ａ  記憶装置
７０，３００    保守センターサーバ
１３０，４２０    フラッシュメモリ切替制御部
１７０，４５０    エラー検出部
２３０    コントローラ
４２１    フラッシュメモリリード制御部
４２２    コンフィギュレーション制御部
４２３，４２４，４３２，４３３    レジスタ
４２５    ＸＯＲ
４２６    ＭＰＸ
４２７，４２８    セレクタ
４２９ａ  ＦＷＲ
４２９ｂ  ＦＣＲ
４３４    ＦＷＲ部
４３５    ＦＣＲ部
４４０    ＳＷ（スイッチ）
４５０    エラー検出部
【図１】
2008165627.tif 000003
【図２】
2008165627.tif 000004
【図３】
2008165627.tif 000005
【図４】
2008165627.tif 000006
【図５】
2008165627.tif 000007
【図６】
2008165627.tif 000008
【図７】
2008165627.tif 000009
【図８】
2008165627.tif 000010