(57)【要約】【課題】マイコンにおけるプログラムエリアに記憶されたプログラムデータの異常を検出し、異常が検出された場合には、そのデータを適正なデータに修復することで、プログラムのデータ保全を図る方法を提供する。【解決手段】被制御部２に対する制御を行うマイコン１のＲＯＭ１２におけるプログラムエリアは、複数のデータブロック１〜Ｘに予め分割構成し、各データブロックには、格納されるプログラムデータのサムチェックデータと誤り訂正符号を併せて格納することで、データブロック毎に異常検出と修復を可能とし、修復されたプログラムデータはＲＡＭ１３のブロックコピーエリアにおける修復ブロックα〜ωに保存すると共に、ブロック処理開始アドレスエリアに記載されたデータブロックの参照先を修復ブロックに書き換え、修復されたプログラムデータが読み出されるようにする。【選択図】図１
2005208958.tif 000002
【特許請求の範囲】
【請求項１】
制御対象機器のシーケンス制御処理や各種センサの入力処理を、プログラムエリアに記憶されたプログラムデータに基づいて実行するマイコンにおけるプログラムエリアのデータ保全方法であって、
上記プログラムエリアを適当な領域で区切って複数のデータブロックに区画すると共に、夫々のデータブロックには、格納するプログラムデータのサムチェックデータと誤り訂正符号を併せて格納するようにしたことを特徴とするマイコンにおけるプログラムエリアのデータ保全方法。
【請求項２】
マイコンの起動時に、プログラムデータのサムチェックを行い、サムチェックが一致しない場合にデータ修復プログラムを起動してプログラムデータ異常箇所を割り出し、更にその該当箇所の正常データを算出してプログラムデータを修復するようにしたことを特徴とする請求項１に記載のマイコンにおけるプログラムエリアのデータ保全方法。
【請求項３】
マイコンの通常制御動作中に、常時通過するプログラム部分におけるプログラムデータのサムチェックをプログラム読み出し毎に行い、サムチェックが一致しない場合にデータ修復プログラムを起動してプログラムデータ異常箇所を割り出し、更にその該当箇所の正常データを算出してプログラムデータを修復するようにしたことを特徴とする請求項１又は請求項２に記載のマイコンにおけるプログラムエリアのデータ保全方法。
【請求項４】
マイコンの通常制御動作中に、常時通過するプログラム部分以外の割り込み制御プログラム部分におけるプログラムデータのサムチェックをプログラム読み出し毎に行い、サムチェックが一致しない場合にデータ修復プログラムを起動してプログラムデータが異常箇所を割り出し、更にその該当箇所の正常データを算出してプログラムデータを修復するようにしたことを特徴とする請求項１〜請求項３の何れか１項に記載のマイコンにおけるプログラムエリアのデータ保全方法。
【請求項５】
上記データ修復プログラムにより修復されたプログラムデータの修復ブロックをＲＡＭに保存し、当該プログラムデータを読み出す際には、プログラムエリア内の異常データブロックに代えて、ＲＡＭ内の修復ブロックを用いるようにしたことを特徴とする請求項１〜請求項４の何れか１項に記載のマイコンにおけるプログラムエリアのデータ保全方法。
【請求項６】
上記データ修復プログラムにより修復可能なデータ修復回数に制限を設けておき、予め定めた上限回数を超えるデータ異常が発生した場合には、データ修復プログラムによるデータ修復を行わせず、リセットするようにしたことを特徴とする請求項１〜請求項５の何れか１項に記載のマイコンにおけるプログラムエリアのデータ保全方法。
【請求項７】
上記データ修復プログラムは、プログラムエリア内に予め複数個設けておき、起動したデータ修復プログラムに異常があった場合、代替のデータ修復プログラムを起動させてデータ修復プログラムのプログラムデータを修復するようにしたことを特徴とする請求項１〜請求項６の何れか１項に記載のマイコンにおけるプログラムエリアのデータ保全方法。
【請求項８】
上記データ修復プログラムによるプログラムデータの修復中は、制御対象機器の制御を安全方向で停止させるようにしたことを特徴とする請求項１〜請求項７の何れか１項に記載のマイコンにおけるプログラムエリアのデータ保全方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイコンを使用して制御される機器において、マイコン内のプログラムエリアに記憶させたプログラムに消滅等のデータ異常が発生した場合でも適正な制御を可能とするためのデータ保全方法に関する。
【背景技術】
【０００２】
自動給湯器やファンヒータ等の燃焼装置の制御は、使用者が希望する設定温度データや各種センサからの検出データに基づいて、機器制御用のマイクロコンピュータ（以下、単にマイコンと称する。）が行うものとなっている。このため、機器制御に用いる制御用データの値が変化してしまうと、適正な機器制御を行うことができなくなり、制御用データの保全は極めて重要である。
【０００３】
特に、上述した燃焼機器などの制御を行うマイコンが扱う制御用データは、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ：電源を切ってもデータが保持される、電気的に書き換え可能なメモリ）等に記憶するため、外乱や停電に起因して記憶内容である制御用データが変化してしまう可能性があることから、単純なサムチェック方式によるデータ訂正では十分な信頼性を担保できるとは言えない。
【０００４】
このような記憶内容の信頼性を高めるために、２つのデータエリアに夫々同じデータを書き込んでおき、一方のデータエリアに記憶されているデータに関しては、全データビットを一定周期でリフレッシュし、他方のデータエリアに記憶されているデータに関しては、一定周期毎の検査および誤り訂正による修復を行うことで、リスク分散を図ったデータ保全方法が提案されている（例えば、特許文献１参照。）。
【０００５】
【特許文献１】特許第２９２９１９２号公報
【０００６】
しかしながら、特許文献１に記載のデータ保全方法は、比較的容量の少ない制御用データの保全には有効であるものの、制御プログラム自体のデータ保全に適用できるものではない。
【０００７】
すなわち、ＣＰＵ，ＲＯＭ，ＲＡＭ，Ｉ／Ｏ等の機能を一つのチップに集積したワンチップマイクロコンピュータとしては、動作プログラムを書き込むためのプログラムエリアとしてＥＰＲＯＭ，ＥＥＰＲＯＭ，フラッシュメモリ等の書換可能なメモリを不揮発性記憶手段（ＲＯＭ）として内蔵する構成の汎用タイプが広く用いられており、使用目的に応じたプログラムをマイコン内のプログラムエリアに書き込むことで、燃焼機器制御等に特化されたマイコンとして機能させているため、ハードウェア・ロジックで構成したＲＯＭよりも記憶内容の信頼性が劣り、プログラムエリア内のプログラムデータが毀損される危険性を考慮するなら、制御プログラムの保全を図ることが望ましいのであるが、特許文献１に記載のデータ保全方法は、保全対象のデータ容量の２倍の記憶容量が必要になることに加えて、あくまでも保全対象のデータとは別のプログラムがデータ保全制御を行うものに過ぎない。
【０００８】
従って、マイコンにおける制御プログラム自体の信頼性を高めるためには、動作しているプログラム自身が自らのデータ保全を図るような手法を実現しなければならないのである。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、上記に鑑みなされたもので、マイコンにおけるプログラムエリアに記憶されたプログラムデータの異常を検出可能とし、異常が検出された場合には、そのデータを適正なデータに修復可能とすることで、プログラムのデータ保全を図る方法の提供を目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、請求項１に係る発明は、制御対象機器のシーケンス制御処理や各種センサの入力処理を、プログラムエリアに記憶されたプログラムデータに基づいて実行するマイコンにおけるプログラムエリアのデータ保全方法であって、上記プログラムエリアを適当な領域で区切って複数のデータブロックに区画すると共に、夫々のデータブロックには、格納するプログラムデータのサムチェックデータと誤り訂正符号を併せて格納するようにしたことを特徴とする。
【００１１】
また、請求項２に係る発明は、上記請求項１に記載のマイコンにおけるプログラムエリアのデータ保全方法において、マイコンの起動時に、プログラムデータのサムチェックを行い、サムチェックが一致しない場合にデータ修復プログラムを起動してプログラムデータ異常箇所を割り出し、更にその該当箇所の正常データを算出してプログラムデータを修復するようにしたことを特徴とする。
【００１２】
また、請求項３に係る発明は、上記請求項１又は請求項２に記載のマイコンにおけるプログラムエリアのデータ保全方法において、マイコンの通常制御動作中に、常時通過するプログラム部分におけるプログラムデータのサムチェックをプログラム読み出し毎に行い、サムチェックが一致しない場合にデータ修復プログラムを起動してプログラムデータ異常箇所を割り出し、更にその該当箇所の正常データを算出してプログラムデータを修復するようにしたことを特徴とする。
【００１３】
また、請求項４に係る発明は、上記請求項１〜請求項３の何れか１項に記載のマイコンにおけるプログラムエリアのデータ保全方法において、マイコンの通常制御動作中に、常時通過するプログラム部分以外の割り込み制御プログラム部分におけるプログラムデータのサムチェックをプログラム読み出し毎に行い、サムチェックが一致しない場合にデータ修復プログラムを起動してプログラムデータが異常箇所を割り出し、更にその該当箇所の正常データを算出してプログラムデータを修復するようにしたことを特徴とする。
【００１４】
また、請求項５に係る発明は、上記請求項１〜請求項４の何れか１項に記載のマイコンにおけるプログラムエリアのデータ保全方法において、上記データ修復プログラムにより修復されたプログラムデータの修復ブロックをＲＡＭに保存し、当該プログラムデータを読み出す際には、プログラムエリア内の異常データブロックに代えて、ＲＡＭ内の修復ブロックを用いるようにしたことを特徴とする。
【００１５】
また、請求項６に係る発明は、上記請求項１〜請求項５の何れか１項に記載のマイコンにおけるプログラムエリアのデータ保全方法において、上記データ修復プログラムにより修復可能なデータ修復回数に制限を設けておき、予め定めた上限回数を超えるデータ異常が発生した場合には、データ修復プログラムによるデータ修復を行わせず、リセットするようにしたことを特徴とする。
【００１６】
また、請求項７に係る発明は、上記請求項１〜請求項６の何れか１項に記載のマイコンにおけるプログラムエリアのデータ保全方法において、上記データ修復プログラムは、プログラムエリア内に予め複数個設けておき、起動したデータ修復プログラムに異常があった場合、代替のデータ修復プログラムを起動させてデータ修復プログラムのプログラムデータを修復するようにしたことを特徴とする。
【００１７】
また、請求項８に係る発明は、上記請求項１〜請求項７の何れか１項に記載のマイコンにおけるプログラムエリアのデータ保全方法において、上記データ修復プログラムによるプログラムデータの修復中は、制御対象機器の制御を安全方向で停止させるようにしたことを特徴とする。
【発明の効果】
【００１８】
請求項１に係るマイコンにおけるプログラムエリアのデータ保全方法によれば、プログラムエリアを適当な領域で区切って複数のデータブロックに区画すると共に、夫々のデータブロックには、格納するプログラムデータのサムチェックデータと誤り訂正符号を併せて格納するようにしたので、データブロック毎に、サムチェックによる異常検出と、誤り制定符号によるデータ修復が可能となり、プログラムデータの信頼性、延いてはマイコンによる制御動作の信頼性を高めることができる。
【００１９】
また、請求項２に係るマイコンにおけるプログラムエリアのデータ保全方法によれば、マイコンの起動時に、プログラムデータのサムチェックを行い、サムチェックが一致しない場合にデータ修復プログラムを起動してプログラムデータ異常箇所を割り出し、更にその該当箇所の正常データを算出してプログラムデータを修復するようにしたので、マイコンの起動時に、プログラムの異常箇所の修復を一括して行うことができる。
【００２０】
また、請求項３に係るマイコンにおけるプログラムエリアのデータ保全方法によれば、マイコンの通常制御動作中に、常時通過するプログラム部分におけるプログラムデータのサムチェックをプログラム読み出し毎に行い、サムチェックが一致しない場合にデータ修復プログラムを起動してプログラムデータ異常箇所を割り出し、更にその該当箇所の正常データを算出してプログラムデータを修復するようにしたので、マイコンの通常制御動作中に生じたルーチン処理プログラムデータの毀損にも対応できる。
【００２１】
また、請求項４に係るマイコンにおけるプログラムエリアのデータ保全方法によれば、マイコンの通常制御動作中に、常時通過するプログラム部分以外の割り込み制御プログラム部分におけるプログラムデータのサムチェックをプログラム読み出し毎に行い、サムチェックが一致しない場合にデータ修復プログラムを起動してプログラムデータが異常箇所を割り出し、更にその該当箇所の正常データを算出してプログラムデータを修復するようにしたので、マイコンの通常制御動作中に生じた割り込み制御プログラムデータの毀損にも対応できる。
【００２２】
また、請求項５に係るマイコンにおけるプログラムエリアのデータ保全方法によれば、データ修復プログラムにより修復されたプログラムデータの修復ブロックをＲＡＭに保存し、当該プログラムデータを読み出す際には、プログラムエリア内の異常データブロックに代えて、ＲＡＭ内の修復ブロックを用いるようにしたので、マイコン内のプログラムエリアを直接書き換える必要がなく、マイコン自らが書き換えることのできないＵＶ−ＥＰＲＯＭ（ＵｌｔｒａＶｉｏｌｅｔ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ：紫外線で内容を消去できるタイプのＥＰＲＯＭ）等をプログラムエリアに用いたマイコンにも適用できる。
【００２３】
また、請求項６に係るマイコンにおけるプログラムエリアのデータ保全方法によれば、データ修復プログラムにより修復可能なデータ修復回数に制限を設けておき、予め定めた上限回数を超えるデータ異常が発生した場合には、データ修復プログラムによるデータ修復を行わせず、リセットするようにしたので、プログラムの毀損箇所の多いマイコンで機器制御を行う危険性を未然に回避できる。
【００２４】
また、請求項７に係るマイコンにおけるプログラムエリアのデータ保全方法によれば、データ修復プログラムは、プログラムエリア内に予め複数個設けておき、起動したデータ修復プログラムに異常があった場合、代替のデータ修復プログラムを起動させてデータ修復プログラムのプログラムデータを修復するようにしたので、異常のあるデータ修復プログラムの動作によって適正な修復が行われないまま機器制御が行われる危険性を排除できる。
【００２５】
また、請求項８に係るマイコンにおけるプログラムエリアのデータ保全方法によれば、データ修復プログラムによるプログラムデータの修復中は、制御対象機器の制御を安全方向で停止させるようにしたので、プログラムデータの修復完了後にマイコンによる動作制御が再開される迄の間に、制御対象機器が制御不能な状態に陥ることを防ぎ、装置としての信頼性を高めることができる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の望ましい実施形態を添付図面に基づいて詳細に説明する。図１は、本発明に係るマイコンにおけるプログラムエリアのデータ保全方法を自動給湯器やファンヒータ等の燃焼装置に適用した一実施形態の概略構成図である。
【００２７】
制御部たるマイコン１は、制御対象機器を含む被制御部２に対する制御を、使用者等が操作するリモートコントローラ３からの制御データに基づいて行う。被制御部２には、火力調整を行う燃焼制御部２１、風量調整を行うファンモータ部２２、被制御部２における各部情報（温度情報やファンモータの負荷情報等）を収集するために設けた各種センサ２３を備える。また、リモートコントローラ３には、使用者が操作して設定温度や風量を設定するデータ設定部としての操作部３１、時間表示を行う時計表示部３２を備える。
【００２８】
マイコン１は、例えば、ＣＰＵ１１，ＲＯＭ１２，ＲＡＭ１３等を１チップに集約したワンチップマイコンを用いて構成するものとし、ＲＯＭ１２に書込まれたプログラムデータやＲＡＭ１３に記憶された各種情報に基づいてＣＰＵ１１が動作することで、被制御部２に対する制御やセンサ情報の収集、リモートコントローラ３からの設定情報受信処理等を行い、制御対象機器（燃焼制御部２１やファンモータ部２２等）の適切な制御が実現される。なお、本図においては説明を簡略するために省略したが、実際には、マイコン１の動作に必要なクロックを生成する発振回路やマイコン１をリセットするリセット回路等の機能も基板上に実装され、制御部としての機能が実現される。
【００２９】
上記ＲＯＭ１２は、専用の書込装置でプログラムを書き込むことができるメモリ（ＥＰＲＯＭやＥＥＰＲＯＭ等）で構成し、このＲＯＭ１２には制御用プログラムを記憶させるプログラムエリアが確保してある。プログラムエリアは、予め適当な領域で区切って複数のデータブロック（例えば、データブロック１〜データブロックＸ）に区画してある。
【００３０】
また、ＲＡＭ１３は、電気的にデータの書換が可能なメモリであれば、揮発性のメモリを用いても不揮発性のメモリを用いても良い。このＲＡＭ１３は、少なくとも、制御用データエリアとブロック処理開始アドレスエリアとブロックコピーエリア（例えば、修復ブロックα〜修復ブロックωより成り、各修復ブロックには、ＲＯＭ１２におけるデータブロックの中で異常のあったブロックがコピー・修復されて格納される。）に予めレジスタ割り当てを設定してある。
【００３１】
上記ＲＯＭ１２における各データブロックの概略構成は、図２に示すように、ブロック先頭アドレスで特定される番地にブロック開始コード、ＲＡＭ内ブロック処理開始アドレス参照命令（ＲＡＭ１３内のブロック処理開始アドレスエリアから当該ブロックのブロック処理開始アドレスを参照させる命令）、ブロック内プログラム（当該ブロックに格納されるプログラムデータ）、ブロック処理終了コード、サムチェックデータおよび誤り訂正符号が格納される。このように、データブロック毎にサムチェックデータを設けておけば、当該ブロックにおけるデータ異常を検出することが可能となるし、誤り訂正符号によるデータ修復も可能となる。なお、修復に用いる誤り訂正符号としては、公知既存の如何様な技術を採用しても構わない。
【００３２】
また、上記ＲＡＭ１３におけるブロック処理開始アドレスエリアの概略構成は、図３に示すように、データブロック１〜データブロックＸに各々対応するブロック１用処理開始アドレス〜ブロックＸ用処理開始アドレスと、ブロックコピーエリアの修復ブロックα〜修復ブロックωに各々対応する修復ブロックα用処理開始アドレス〜修復ブロックω用処理開始アドレスが格納される。
【００３３】
すなわち、上記ＲＡＭ１３内のブロック処理開始アドレスエリアを各データブロックの処理開始時に参照するジャンプテーブルとして用いることにより、処理位置を変更させることができるのである。具体的には、データブロック１のＲＡＭ内ブロック処理開始アドレスエリア参照命令に基づいてブロック処理開始アドレスエリア内のブロック１用処理開始アドレスを参照した時、そのアドレスが、データブロック１のブロック処理開始アドレスであれば、参照先がＲＯＭ１２内のデータブロック１におけるブロック処理開始アドレスとなり、データブロック１内のプログラムデータが読み出されることとなるが、ブロック１用処理開始アドレスが修復ブロックα用処理開始アドレスに設定されていた場合には、ＲＡＭ１３内のブロックコピーエリアの修復ブロックαにおけるブロック処理開始アドレスが参照先となるため、修復ブロックα内のプログラムデータが読み出されることとなる。
【００３４】
従って、ＲＯＭ１２内のデータブロックに異常があった場合（データブロックのサムチェックが一致しない場合）には、当該データブロックをＲＡＭ１３のブロックコピーエリアにコピーして適正な内容に修復する（データ修復プログラムを起動して、プログラムデータ異常箇所を割り出し、更にその該当箇所の正常データを算出してプログラムデータを修復する）ことと併せて、当該ブロックの処理開始アドレスをＲＯＭ１２のデータブロックからＲＡＭ１３の修復ブロックへ変更しておけば、修復された適正な制御プログラムが実行されることとなるので、異常なプログラムによる制御に起因して装置が暴走するような事態を未然に回避できる。
【００３５】
なお、ＲＯＭ１２として、マイコン１が自ら書換可能な不揮発性メモリ（ＥＥＰＲＯＭ等）を用いた場合には、ＲＡＭ１３で修復されたデータブロックの内容でＲＯＭ１２の当該ブロックをリライトさせれば、ＲＯＭ１２内データブロックの読み出し毎にＲＡＭ１３内ブロック処理開始アドレスを参照させる処理が不要となり、動作遅延を低減できるという利点があるものの、本実施形態の方式は、マイコン１自ら書き換えることができない不揮発性メモリをＲＯＭ１２として用いた制御部でも実現できるという利点がある。
【００３６】
また、データブロックを読み出す際に行ったサムチェックで、プログラムのサムチェックデータが一致しない場合、データ修復プログラムが起動してプログラム修復が実行されるために、被制御部２への制御が一時的に中断することとなる。このため、被制御部２に対する通常制御を安全方向で停止させる処理を行った後に、データ修復プログラムを起動させることが望ましい。
【００３７】
次に、マイコン１による制御処理の一例を図４〜図７のフローチャートに基づいて説明する。
【００３８】
電源投入やリセットによって実行される起動処理においては、先ず、ＲＡＭ１３のエリアチェックを行い（ステップＳ１）、次いで、そのチェック結果が正常であったか否かを判定する（ステップＳ２）。ＲＡＭ１３のエリアチェックが異常と判定された場合には、再びステップＳ１のＲＡＭエリアチェックを行わせる。
【００３９】
上記ステップＳ２でＲＡＭエリアが正常と判定された場合には、ＲＯＭ１２のプログラムエリアチェックを行い（ステップＳ３）、次いで、そのチェック結果が正常であった否かを判定する（ステップＳ４）。ＲＯＭ１２のプログラムエリアチェックが異常と判定された場合には、修復処理を行う（ステップＳ５）。
【００４０】
なお、プログラムエリアのチェックに際しては、全データブロックのチェックを行わせるようにしても良いし、メインルーチンに関わるプログラムが保存されているデータブロックのみのチェックを行わせるようにしても良い。また、サムチェックによる異常を検出したデータブロックが見つかる度に修復処理を実行させて、データブロックの修復後に次のデータブロックをチェックするようにしても良いし、一連のデータブロックをチェックする間に、サムチェックによる異常を検出したデータブロックを記憶しておき、データブロックチェックが終了した後に、異常なデータブロックの修復を一括して行うようにしても良い。
【００４１】
上記ステップＳ４でプログラムエリアが正常と判定された場合、および修復処理が適正に実行されて、データブロック中のプログラム修復が完了した場合には、制御データ初期化を行い（ステップＳ６）、通常処理へ移行する（ステップＳ７）。
【００４２】
上記修復処理はデータ修復プログラムにより行われるもので、その詳細を図５に示す。最初に、制御対象機器を安全方向へ停止させ（ステップＳ１１）、次いで、データ修復回数が規定回数以上か否かを判定し（ステップＳ１２）、データ修復回数が規定回数以上と判定された場合には、当該マイコン１をリセットすることで上記起動処理をステップＳ１から実行させる。
【００４３】
すなわち、データ修復回数が多いということは、プログラムデータが毀損されたデータブロックが多数あることを意味し、マイコン１自体が制御動作に適さない状態と考えられると共に、ＲＡＭ１３のブロックコピーエリアとして用意できる修復ブロックの数にも上限があることから、全ての修復ブロックが修復データで埋まった場合には、それを超えるデータブロックに異常が検出されても修復処理を実行できないため、データ修復回数が規定回数（例えば、ブロックコピーエリアに用意された修復ブロック数）以上になると、リセットさせるのである。
【００４４】
一方、上記ステップＳ１２でデータ修復回数が規定回数に満たないと判定された場合には、異常の検出された修復対象のデータブロックをまるごとＲＡＭ１３のブロックコピーエリアの修復ブロックにコピーし（ステップＳ１５）、誤り訂正符号を用いたデータ誤り制御によりプログラムデータ異常箇所の割り出しと該当箇所における正常データの算出を行い（ステップＳ１５）、異常データを正常データに書き換え（ステップＳ１６）、ＲＡＭ１３のブロック処理開始アドレスエリアにおいて、修復を行ったデータブロックの処理開始アドレスを修復ブロック用処理開始アドレス（正常データに修復したプログラムデータを保存した修復ブロックの処理開始アドレス）に書き換える（ステップＳ１７）。
【００４５】
上記のようにして修復処理が行われたデータブロックがその後に読み出される場合、処理開始アドレス参照命令により参照するＲＡＭ１３内のブロック処理用開始アドレスが修復ブロック用処理開始アドレスに書き換えられているために、ＲＡＭ１３内の修復ブロック中のプログラムデータ（修復済みのデータ）が読み出されることとなり、ＲＯＭ１２内のデータブロック中のプログラムデータ（異常のあるデータ）が読み出されることはない。
【００４６】
適正な起動処理が終了して移行する通常処理は、一連のルーチンワークを繰返し順次処理して行くもので、制御対象機器に応じた処理動作が行われるのであるが、図６に示す通常処理では、その詳細を略し、プログラムエリアのデータ保全機能についての処理概要のみを示した。先ず、メインルーチン（常時通過するプログラム部分）における実行プログラムのプログラムエリアをチェックし（ステップＳ２１）、次いで、そのチェック結果が正常であった否かを判定し（ステップＳ２２）、プログラムエリアチェックが正常であった場合には、そのプログラムを実行する。
【００４７】
一方、上記ステップＳ２２でＲＯＭ１２のプログラムエリアチェックが異常と判定された場合には、修復処理を行い（ステップＳ２４）、プログラムの修復が適正に行われた場合には、制御データの初期化を行う（ステップＳ２５）。このように、通常処理中もデータブロックの適否チェックを行うものとすれば、マイコンの起動後に生じたプログラムデータの消滅や毀損にも対応することができる。また、本実施形態の如く、修復処理の終了後に、修復処理開始直前の状態へ途中復帰させないで、制御データの初期化を行わせるものとしたのは、修復作業中に負荷が不定状態となって、修復処理開始直前の制御動作を引き継がせると適正な制御ができない危険なケースが想定されるからである。なお、修復動作中に制御対象機器が危険な状態になることがない場合には、制御データの初期化を行わずに、修復処理直前の状態へ途中復帰させるようにしても良い。
【００４８】
上記通常処理中に一定時間毎に起動されたり、特定の条件が揃った時に起動される割込処理は、図７に示すようなもので、実行する割込プログラムのプログラムエリアをチェックし（ステップＳ３１）、次いで、そのチェック結果が正常であった否かを判定し（ステップＳ３２）、プログラムエリアチェックが正常であった場合には、そのプログラムを実行する。一方、上記ステップＳ３２でＲＯＭ１２のプログラムエリアチェックが異常と判定された場合には、修復処理を行い（ステップＳ３４）、プログラムの修復が適正に行われた場合には、制御データの初期化を行う（ステップＳ３５）。
【００４９】
上述した実施形態では、データブロックの異常が検出されると、これを修復するための修復プログラムを起動させるものとしたが、起動させるべき修復プログラムを含むデータブロック内に異常が検出されると、修復プログラムの起動が不可能となって、データ修復を行えなくなる。
【００５０】
そこで、プログラムエリア内に予め複数（例えば、主データ修復プログラムと補助データ修復プログラムの２つ）のデータ修復プログラムを設けておき、優先的に起動させるべく定めた主データ修復プログラムに異常があった場合、代替の補助データ修復プログラムを起動させて、主データ修復プログラムのプログラムデータを修復するようにしておけば、プログラムエリアのデータ保全機能を一層高めることができる。なお、複数設けたデータ修復プログラムを如何様に用いるかは特に限定されるものではなく、設計事項の範疇である。
【図面の簡単な説明】
【００５１】
【図１】マイコンにより制御される燃焼装置の概略構成図である。
【図２】データブロックの概略構成図である。
【図３】ブロック処理開始アドレスエリアの概略構成図である。
【図４】起動処理を示すフローチャートである。
【図５】修復処理を示すフローチャートである。
【図６】通常処理を示すフローチャートである。
【図７】割込処理を示すフローチャートである。
【符号の説明】
【００５２】
１    マイコン（制御部）
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
２    被制御部
２１  燃焼制御部
２２  ファンモータ部
２３  各種センサ
３    リモートコントローラ
３１  操作部（データ設定部）
３２  時計表示部
【図１】
2005208958.tif 000003
【図２】
2005208958.tif 000004
【図３】
2005208958.tif 000005
【図４】
2005208958.tif 000006
【図５】
2005208958.tif 000007
【図６】
2005208958.tif 000008
【図７】
2005208958.tif 000009