(57)【要約】【課題】  プロセッサから出力されるデータの異常による制御対象の誤動作や停止の防止が可能な制御システムを提供する。【解決手段】  プロセッサに供給されるクロックの周波数を変更可能なクロックユニットと、該クロックユニットから出力されるクロックの異常を検出するクロック判別装置と、プロセッサから出力されるデータが異常であれば出力を停止するデータ判別装置と、クロック判別装置から送られるクロックの異常を示す信号によりデータの出力を停止するデータゲートとを備える。【選択図】図２
2009265711.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサの異常を判定する制御システムであって、前記プロセッサに供給されるクロックの周波数を変更可能なクロックユニットと、該クロックユニットから出力されるクロックの異常を検出するクロック判別装置と、前記プロセッサから出力されるデータが異常であれば出力を停止するデータ判別装置と、前記クロック判別装置から送られるクロックの異常を示す信号により前記データの出力を停止するデータゲートとを備えたことを特徴とする制御システム。
【請求項２】
請求項１の記載において、前記クロック判別装置または前記データ判別装置から送られる異常を示す信号に基づいて、前記プロセッサが異常であることを示すメッセージを出力することを特徴とする制御システム。
【請求項３】
請求項１の記載において、前記データ判別装置は、前記プロセッサから出力されるデータの一部を符号化し、隣接したデータの該符号化された部分データが不一致の場合に前記プロセッサが異常であると判断することを特徴とする制御システム。
【請求項４】
プロセッサの異常を判定する制御システムであって、前記プロセッサに供給されるクロックの周波数を変更可能なクロックユニットと、該クロックユニットから出力されるクロックの異常を検出し、クロック異常信号を出力するクロック判別装置と、前記プロセッサの符号化装置により符号化され出力される制御データについて、隣接する制御データの符号化されたデータを比較し、不一致の場合は前記制御データの出力を停止するとともに、前記制御データの異常を示す信号を出力するデータ判別装置と、前記クロック判別装置から送信された前記クロック異常信号を受けた場合に、前記制御データの出力を停止するデータゲートとを備えたことを特徴とする制御システム。
【請求項５】
請求項４の記載において、前記クロック判別装置または前記データ判別装置から送信されるプロセッサ異常を示す信号により作動するメッセージ表示機能を備えたことを特徴とする制御システム。
【請求項６】
請求項４の記載において、前記プロセッサの異常発生時に、該プロセッサのメモリ上のデータを、エラーログを生成して、不揮発性メモリ内にファイルとして保存することを特徴とする制御システム。
【請求項７】
請求項４の記載において、前記クロック判別装置は、前記クロックユニットから出力される信号をカウントするタイマを備え、任意に変更が可能な規定の時間だけ持続した場合に、クロック異常信号が出力されるようにしたことを特徴とする制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサから出力される制御データにより制御対象が制御される制御システムに関する。
【背景技術】
【０００２】
ファクトリー・オートメーション，自動車等の、制御対象の信頼性が重要な場合、制御システムの中枢となるメインプロセッサが安定に動作する必要がある。同時に、制御対象の高速化，高機能化も求められ、制御システムへの負荷が増加している。従来の構成のままでメインプロセッサの負荷を上げると、自己発熱によりプロセッサが異常状態になり、エラーの発生頻度が増加して、制御対象の誤動作やフリーズとよばれる停止が発生する懸念がある。
【０００３】
一般に、メインプロセッサは、ウォッチドッグタイマ（Watch Dog Timer）を備えており、定められた周期毎にプロセッサが正常動作を行っているか否かを確認する。しかし、この確認動作は、ウォッチドッグタイマのタイマ間隔毎に行われるので、タイマ間隔の間の期間にメインプロセッサが異常状態に陥った場合、次の確認動作までの間に、プロセッサ異常により出力されるデータのエラー情報が原因となって、制御対象が誤動作や停止してしまう可能性がある。
【０００４】
この対策として、ウォッチドッグタイマの間隔よりも短い間隔で監視する方法が提案されている（例えば、特許文献１参照）。図１は、従来技術におけるセントラルプロセッシングユニット（Central Processing Unit、以下、ＣＰＵとよぶ）の出力制御回路の構成図である。はじめに、クロック監視回路１０５を有していない場合を説明する。ＣＰＵ１００は、ウォッチドッグタイマ１０１内のカウンタで定義される間隔毎に監視されている。正常動作を続けている間、ＣＰＵ１００は、ウォッチドッグタイマクリア信号１０２により、ウォッチドッグタイマ１０１内のカウンタを定期的にクリアする。ＣＰＵ１００が異常となった場合、ウォッチドッグタイマクリア信号１０２を出力できないため、ウォッチドッグタイマ１０１内のカウンタがタイムアップして、ＣＰＵリセット信号１０３が出力され、ＣＰＵ１００がリセットされて初期状態になる。この構成では、ウォッチドッグタイマクリア信号１０２の出力直後にＣＰＵ１００が異常となった場合、ウォッチドッグタイマ１０１内のカウンタの、次回のタイムアップまで、ＣＰＵ１００の監視を行うことができない。この対策として、クロック監視回路１０５を設け、ウォッチドッグタイマ１０１内のカウンタよりも短い周期で、ＣＰＵ１００のクロック出力信号１０４を監視することで、ウォッチドッグタイマ１０１内のカウンタの、次回のタイムアップまで待つことなく、ＣＰＵ１００が異常であることを検知するようにしている。しかしながら、ＣＰＵ１００のクロック出力信号１０４が正常でも、ＣＰＵ１００から出力されるデータが異常になっていることがあり得るため、制御対象の誤動作や停止を完全に防止できるものではない。
【０００５】
【特許文献１】特開平１０−３０７６０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、プロセッサから出力されるデータの異常による制御対象の誤動作や停止の防止が可能な制御システムを提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の実施態様は、プロセッサの異常を判定する制御システムであって、プロセッサに供給されるクロックの周波数を変更可能なクロックユニットと、該クロックユニットから出力されるクロックの異常を検出するクロック判別装置と、プロセッサから出力されるデータが異常であれば出力を停止するデータ判別装置と、クロック判別装置から送られるクロックの異常を示す信号によりデータの出力を停止するデータゲートとを備えたものである。
【発明の効果】
【０００８】
本発明の実施態様によれば、プロセッサから出力されるデータの異常による制御対象の誤動作や停止を防止することができる制御システムを提供することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施例を、図面を用いて説明する。図２は、本発明の一実施例における制御システムの構成図である。図２において、メインプロセッサであるＣＰＵ２００は、制御システムの演算処理中枢を担っている。エラー検出装置２０１で、ＣＰＵ２００からの出力を監視し、ＣＰＵ２００の異常の有無を判断する。送信装置２０２は、制御対象へ、データやコマンドを送信する。表示用ＬＥＤ２０３は、ＣＰＵ２００に異常が発生した場合に点灯することによって、異常であることを示すメッセージを出力する。このメッセージは、ＣＰＵ２００が異常であることを、オペレータへ知らせることができればよいので、ＬＥＤの点灯に限られず、通常のライト，ディスプレイへの表示，音声などでもよい。
【００１０】
ＣＰＵ２００は、エンコーディング装置２０４を備え、ＣＰＵ２００で出力したデータ２０５を加工し、符号化データ２０６としてエラー検出装置２０１へ出力する。また、ＣＰＵ２００は、ＣＰＵ内蔵クロックユニット２０７とＣＰＵ内蔵レジスタ２１０とを備え、制御システムのシステムクロック信号２０８を参照クロックとして、逓倍あるいは分周して、任意の周波数のベースクロック信号２０９を出力することが可能である。ＣＰＵ内蔵レジスタ２１０は、システムクロック信号２０８を逓倍または分周するための設定値を記憶する。
【００１１】
エラー検出装置２０１は、データ判別装置２１１，クロック判別装置２１２，エラー処理装置２１３，データゲート２１４を有する。データ判別装置２１１は、符号化データ２０６についてデコーディング、および合否判定を行う。合否判定について、詳細は図５の説明で述べるが、符号化データの末尾と該符号化データの次の符号化データの先頭とを比較し、不一致の場合に不合格と判定する。判定が合格の場合、データ判別装置２１１は、データゲート２１４に正常データ２１５を出力する。一方、判定が不合格の場合、データゲート２１４に対してなにも出力せず、データエラー発生信号２１６をエラー処理装置２１３へ出力する。クロック判別装置２１２は、ＣＰＵ２００のＣＰＵ内蔵クロックユニット２０７から送られたベースクロック信号２０９について、合否判定を行う。合格の場合、クロック判別装置２１２は何も出力しない。不合格の場合、クロックエラー発生信号２１７ａをエラー処理装置２１３へ出力するとともに、クロックエラー発生信号２１７ｂをデータゲート２１４へ送る。データゲート２１４は、データ判別装置２１１から送られるデータエラー発生信号２１６と、クロック判別装置２１２から送られるクロックエラー発生信号２１７ａのうちの、いずれか一方があった場合に、データゲート２１４により表示用ＬＥＤ２０３を点灯させる。また、クロックエラー発生信号２１７ｂが、データゲート２１４へ送られ、正常データ２１５が送信装置２０２へ出力されないように遮断する。
【００１２】
このように、ＣＰＵ２００から出力されるベースクロック信号２０９に異常があった場合には、正常データ２１５が出力されるのを防止するとともに、表示用ＬＥＤ２０３が点灯し、ＣＰＵ２００から出力される符号化データ２０６に異常があった場合は、正常データ２１５が出力されないようにするとともに、表示用ＬＥＤ２０３が点灯する。したがって、ＣＰＵ２００から出力されるデータ，クロックのどちらに異常が発生しても、データが出力されないので、制御対象の誤動作や停止を防止することができる。
【００１３】
データの正常か異常かの判定のためには、エンコーディング装置２０４とデータ判別装置２１１との間に、一定の規定があればよい。ここではその規定に関して一例を説明する。図３は、エンコーディング装置２０４の構成図である。ＣＰＵ２００からエンコーディング装置２０４へ送られるデータ２０５は、分割して出力される。ｎを自然数とし、分割されたデータのうち、ｎ番目に送信されるデータをｄａｔａ（ｎ）と呼ぶことにする。図３において、符号化前データ３００は、分割して出力されるデータのうち、（ｎ＋１）番目に送信されるものであり、図２中のデータ２０５に相当する。符号化後データ３０１は、ｎ番目に送信されるものであり、図２中の符号化データ２０６に相当する。符号化前データ３００は、符号化後データ３０１よりも後に出力される。
【００１４】
図４は、図３におけるデータの符号化処理の一例を示すフローチャートである。はじめにバッファ３０２を空にしておく（ステップ４００）。符号化前データ３００のｄａｔａ（ｎ＋１）の先頭からｍバイト分をデータｈｎ＋１とし、これをバッファ３０２に格納し（ステップ４０１）、ｄａｔａ（ｎ）に添付し（ステップ４０２）、ｄａｔａ（ｎ）をデータ判別装置２１１に送信する（ステップ４０３）。ここで、ｄａｔａ（ｎ＋１）に添付されたデータｈｎ＋１を、便宜的にデータｆｎとする。ｄａｔａ（ｎ）には、その直後に出力されるｄａｔａ（ｎ＋１）の情報があらかじめ添付されていることになる。なお、データから切取る断片ｍバイトの大きさについては、連続し合うデータであって、判別が充分に可能な大きさで定義される。例えば、プロトコル・データ・ユニットの先頭には、スタート・オブ・パケットや送信先アドレスなどのプロトコル情報が含まれている。これらは、種々のインタフェースによってフォーマットが定義されているが、先頭の数バイトから数十バイト分は、同一のデータである場合が多い。本実施例では、これを利用して、データの正常，異常を判別する。
【００１５】
図５は、データ判別装置２１１の構成図である。図４に示すフローのステップ４０４からは、データ判別装置２１１の機能なので、図５を参照して説明する。図５において、エンコーディング装置２０４から送られた符号化後データ３０１のうちのデータｆｎがバッファ５００に格納される（ステップ４０４）。データｆｎは、データｈｎ＋１であり、符号化前データ３００のｄａｔａ（ｎ＋１）の先頭からｍバイト分である。直前に受信したｄａｔａ（ｎ−１）である処理後データ５０１の末尾のデータｆｎ−１と、ｄａｔａ（ｎ）の先頭のデータｈｎとを比較する（ステップ４０５）。データｆｎ−１には、ｄａｔａ（ｎ）のデータを含んでいるので、ｆｎ−１＝ｈｎであればデータを受付けし、データｆｎを除去した後、データゲート２１４へデータを出力する（ステップ４０７）。ｆｎ−１≠ｈｎであればエラー処理動作へ移行する（ステップ４０６）。
【００１６】
エンコーディング装置２０４とデータ判別装置２１１の機能は以上の通りであるが、上記した手法を実施するときには、以下の３つの状態によって、場合分けが必要である。なお、かっこ内の数字は、図４における該当ステップを示す。
（イ）データの送信開始時（ステップ４００）。
（ロ）後続のデータが存在するとき（ステップ４１０）。
（ハ）後続のデータが存在しないとき、送信終了時（ステップ４０９）。
【００１７】
（イ）のデータの送信開始時、エンコーディング装置２０４は、ｎ＝１であるｄａｔａ（１）を送信する前に、送信開始データであることを示す特徴的なパターンデータを送信する。データ判別装置２１１は、この特徴的なパターンデータを受付けると、受信動作を開始する。
【００１８】
（ロ）後続のデータが存在するとき、前述の通り、エンコーディング装置２０４は、ｄａｔａ（ｎ＋１）の先頭データｈ＋１をｄａｔａ（ｎ）にデータｆｎとして付加し、送信を行う。ｄａｔａ（ｎ）を受信したデータ判別装置２１１は、受信したデータｈｎとｄａｔａ（ｎ−１）に添付されたデータｆｎ−１とを比較し、ｄａｔａ（ｎ）を受付けけるか否かを判定する。
【００１９】
（ハ）後続のデータが存在しないとき、または送信終了時は、ｄａｔａ（ｎ）でデータ送信が終了し、ｄａｔａ（ｎ＋１）が存在しない場合である。この場合、エンコーディング装置２０４は、データｈｎ＋１の代わりに、最終データであることを示す特徴的なパターンデータを添付する。データ判別装置２１１は、このパターンデータを受付けると、後に続くデータがないと認識し、送受信が終了する。
【００２０】
次に、図２に示したクロック判別装置２１２について説明する。本装置は、ＣＰＵ２００の異常を、ウォッチドッグタイマのリセット周期よりも短い周期で検出する。この仕様を満たすために、一例として、排他的論理回路を用いた判別手法を説明する。
【００２１】
図６は、クロック判別装置２１２の構成図である。また、図７は、排他的論理和の論理式と、真理値表である。ＣＰＵ２００から出力されたシステムクロック信号２０８は、クロックユニット６０２に入力され、判別用クロック信号６０１が出力され、排他的論理回路６００で、判別用クロック信号６０１とベースクロック信号２０９との排他的論理和により、クロック出力が正常か異常かを判別することができる。
【００２２】
排他的論理和の論理式は、図７に示す論理式で与えられ、Ａ≠Ｂであれば結果Ｘ＝１を出力し、Ａ＝ＢであればＸ＝０を出力する。Ｘ＝１のときは判定不合格条件７００、Ｘ＝０のときは、判定合格条件となる。本論理を回路に実装して、ＣＰＵ２００の異常を、クロックからの出力に基づいて検出することができる。
【００２３】
クロックユニット６０２は、ベースクロック信号２０９との同期をとるために、システムクロック信号２０８を入力信号として持っている。ＣＰＵ２００のＣＰＵ内蔵クロックユニット２０７とＣＰＵ内蔵レジスタ２１０により、制御システムのシステムクロック信号２０８を参照クロックとして、逓倍あるいは分周して、任意の周波数のベースクロック信号２０９が生成される。クロックユニット６０２で生成される判別用クロック信号６０１の設定値は、レジスタ６０３に設定される。
【００２４】
排他的論理回路６００からの出力である判定結果信号６０５がタイマカウンタ６０４に入力され、クロックエラー発生信号２１７が出力される。実装時にはクロック信号にノイズが混入し、ジッタとして観測されることがある。排他的論理回路６００が一段だけでは、ジッタも検出してしまい、クロック信号が正常動作の範囲内であるにもかかわらず、クロック異常として、クロックエラー発生信号２１７が出力される可能性がある。このようなジッタによる誤検出を回避するため、タイマカウンタ６０４を設けている。ジッタが原因の場合、排他的論理回路６００から出力される判定結果信号６０５は、長い時間持続しない。これを利用して、タイマカウンタ６０４で判定結果信号６０５をカウントアップし、規定の時間だけ持続した場合に、クロックエラー発生信号２１７が出力されるようにして、ジッタの影響を回避している。タイマカウンタ６０４のカウンタ時間は、任意に変更することができるので、環境によって変化するノイズ多寡や、プロセッサエラー検出のためのしきい値の調節が可能である。
【００２５】
図８は、クロック信号の異常を検出したときを示すタイミングチャートであり、波形の凹凸の上がＨレベル，下がＬレベルとする。図８には、図７に示す論理式のＡを示すベースクロック信号２０９，Ｂを示す判別用クロック信号６０１，Ｘを示す判定結果信号６０５，クロックエラー発生信号２１７の信号の波形が示されている。ベースクロック信号２０９の周期Ｔに対して無関係なＨレベルの波形８００は、ＣＰＵ２００から出力されるクロック信号の異常を示している。ベースクロック信号２０９と判別用クロック信号６０１との排他的論理和により、判定結果信号６０５の波形がＨレベルに遷移している。
【００２６】
図８の例では、タイマカウンタ６０４のカウントアップ時間をＴ／４に設定している。判定結果信号６０５のＨレベルの波形が、この時間Ｔ／４を超過すると、クロックエラー発生信号２１７がＨレベルに遷移して波形８０１となり、ＣＰＵ２００のクロック信号の異常として検出することができる。
【００２７】
図９は、図８と同じく、クロック信号の異常を検出したときを示すタイミングチャートである。ジッタやノイズにより、ベースクロック信号２０９が、期待値を微小時間だけ逸脱した場合を説明する。ベースクロック信号２０９に対し、判別用クロック信号６０１が波形８０２や波形８０４で示すように、微小時間だけずれが生じている。これは、ジッタやノイズなどが原因で生じたずれである。しかし、ベースクロック信号２０９と判別用クロック信号６０１との排他的論理和により、判定結果信号６０５の波形８０５に示すように、Ｈレベルに遷移しても、タイマカウンタ６０４のカウントアップ時間Ｔ／４の時間内でＬレベルに遷移してしまえば、クロックエラー発生信号２１７は出力されない。
【００２８】
図１０は、図２に示したエラー処理装置２１３の構成図である。ＯＲ回路９００は、データエラー発生信号２１６とクロックエラー発生信号２１７のいずれか一方、あるいは両方がＨレベルであれば、エラー処理移行信号９０１を出力する。エラー処理移行信号９０１をタップ分岐したＬＥＤ表示用信号９０２は、表示用ＬＥＤ２０３を点灯させる。ＬＥＤ表示用信号９０２の後段にＬＥＤ表示保持回路９０３を設け、エラー処理移行信号９０１の発生が停止するまで表示用ＬＥＤ２０３の点灯を継続する。
【００２９】
次に、エラー処理動作に関して説明する。図１１は、エラー処理動作を示すフローチャートである。データエラー発生信号２１６、あるいはクロックエラー発生信号２１７の入力により、エラー処理装置２１３がエラー処理移行信号９０１を出力すると、制御システムは、あらかじめ定義された手順に従って、制御対象を強制的に初期状態に戻すために、正常終了させる（ステップ１００１）。これは強制的ではあるが、制御システム内の正常な手続きであり、制御対象が異常状態で停止して復帰困難な状況に陥ることを防止することを目的としている。本実施例における制御システムでは、ＣＰＵの復帰後における異常の原因解析のために、エラー処理動作へ移行したときのメモリ上のデータを、エラーログを生成して、不揮発性メモリにファイルとして保存する（ステップ１００２）。このファイル保存動作への移行は、エラー処理移行信号９０１をトリガとする。また、エラー処理移行信号９０１は、表示用ＬＥＤ２０３の点灯のトリガとなり、点灯によりユーザや装置のオペレータへ異常発生を知らせる（ステップ１００３）。エラー発生時前後のメモリ情報のファイル保存が完了すると、制御システムは、ＣＰＵ２００に対してリセット信号を印加してリセットし、表示用ＬＥＤを消灯する（ステップ１００４）。本リセット信号の印加は、上記した制御対象の正常終了後に行われるので、制御対象は、制御システムの起動と共に通常通りの動作が可能となっている。
【００３０】
以上述べたように、本発明の実施例によれば、ＣＰＵの異常を、ウォッチドッグタイマよりも周波数の大きい信号と、データの内容の両方を用いて監視することにより、制御対象の誤動作や停止を防止することができる。
【図面の簡単な説明】
【００３１】
【図１】従来技術におけるセントラルプロセッシングユニットの出力制御回路の構成図。
【図２】本発明の一実施例における制御システムの構成図。
【図３】エンコーディング装置の構成図。
【図４】図３におけるデータの符号化処理の一例を示すフローチャート。
【図５】データ判別装置の構成図。
【図６】クロック判別装置の構成図。
【図７】排他的論理和の論理式と、真理値表。
【図８】クロック信号の異常を検出したときを示すタイミングチャート。
【図９】クロック信号の異常を検出したときを示すタイミングチャート。
【図１０】エラー処理装置の構成図。
【図１１】エラー処理動作を示すフローチャート。
【符号の説明】
【００３２】
１００，２００  ＣＰＵ
１０１  ウォッチドッグタイマ
１０２  ウォッチドッグタイマクリア信号
１０３  ＣＰＵリセット信号
１０４  クロック出力信号
１０５  クロック監視回路
２０１  エラー検出装置
２０２  送信装置
２０３  表示用ＬＥＤ
２０４  エンコーディング装置
２０７  ＣＰＵ内蔵クロックユニット
２０８  システムクロック信号
２０９  ベースクロック信号
２１０  ＣＰＵ内蔵レジスタ
２１１  データ判別装置
２１２  クロック判別装置
２１３  エラー処理装置
２１４  データゲート
２１６  データエラー発生信号
２１７  クロックエラー発生信号
３０２，５００  バッファ
６００  排他的論理回路
６０１  判別用クロック信号
６０２  クロックユニット
６０３  レジスタ
６０４  タイマカウンタ
６０５  判定結果信号
７００  判定不合格条件
７０１  判定合格条件
９００  ＯＲ回路
９０１  エラー処理移行信号
９０２  ＬＥＤ表示用信号
９０３  ＬＥＤ表示保持回路
【図１】
2009265711.tif 000003
【図２】
2009265711.tif 000004
【図３】
2009265711.tif 000005
【図４】
2009265711.tif 000006
【図５】
2009265711.tif 000007
【図６】
2009265711.tif 000008
【図７】
2009265711.tif 000009
【図８】
2009265711.tif 000010
【図９】
2009265711.tif 000011
【図１０】
2009265711.tif 000012
【図１１】
2009265711.tif 000013