(57)【特許請求の範囲】
【請求項１】
複数のＣＰＵを備え、該複数のＣＰＵに含まれる一のＣＰＵの演算機能を他のＣＰＵとの協働により検査可能な電子制御装置であって、
前記演算機能の検査を受ける被検査ＣＰＵが、周期的に変化するカウンタ値同士の演算であって、該カウンタ値の一部に基づいて決定される種類の演算を行い、該被検査ＣＰＵを監視する監視ＣＰＵに対して前記行った演算の結果と前記カウンタ値とを含むデータを送信し、
該監視ＣＰＵが、前記送信された演算の結果とカウンタ値に基づいて前記被検査ＣＰＵが有する演算機能が正常か否かを判定する、
ことを特徴とする、電子制御装置。
【請求項２】
請求項１に記載の電子制御装置であって、
前記被検査ＣＰＵは、自己の演算機能のうち使用頻度が高い演算機能が用いられるように、前記行う演算の種類を決定する、
ことを特徴とする、電子制御装置。
【請求項３】
請求項１又は２に記載の電子制御装置であって、
前記被検査ＣＰＵは、自己の演算機能のうちフェールセーフ上重要性の高い演算機能が用いられるように、前記行う演算の種類を決定する、
ことを特徴とする、電子制御装置。
【請求項４】
ＣＰＵをマイクロプロセッサに置換して構成される、請求項１ないし３のいずれかに記載の電子制御装置。
【請求項５】
複数のＣＰＵを備える電子制御装置において、該複数のＣＰＵに含まれる一のＣＰＵの演算機能を他のＣＰＵとの協働により検査する、演算機能検査方法であって、
（Ａ）前記演算機能の検査を受ける被検査ＣＰＵが、周期的に変化するカウンタ値の一部に基づいて演算の種類を決定するステップと、
（Ｂ）該被検査ＣＰＵが、前記カウンタ値同士の演算であって、前記決定された種類の演算を行うステップと、
（Ｃ）該被検査ＣＰＵが、該被検査ＣＰＵを監視する監視ＣＰＵに対して前記行った演算の結果と前記カウンタ値とを含むデータを送信するステップと、
（Ｄ）該監視ＣＰＵが、前記送信された演算の結果とカウンタ値に基づいて前記被検査ＣＰＵが有する演算機能が正常か否かを判定するステップと、
を備えることを特徴とする、演算機能検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自己が備える一のＣＰＵの演算機能を他のＣＰＵとの協働により検査可能な電子制御装置、及び、電子制御装置が備える一のＣＰＵの演算機能を他のＣＰＵとの協働により検査する演算機能検査方法、に関する。
【背景技術】
【０００２】
従来、電子制御装置（電子制御ユニット）等の制御システムにおいて、制御の安定性や信頼性を確保すべく、装置が備えるＣＰＵの機能が正常であるか否かを自発的に検査して、異常時にシステムのリセットを行なう等の制御が行なわれている。
【０００３】
その一例として、システム内にカウントダウン（減算）タイマーの一種であるウォッチドッグタイマーを組み込んで、システムからのパルス信号が途絶えたときにシステムのリセットを行なうような手法が用いられている。但し、こうした手法は、パルス信号を発信する処理ステップに正常に到達しない状態、すなわちシステムの暴走を検出することが主眼となっており、演算処理自体が正常に行なわれているか否かを監視するものではない。
【０００４】
演算処理自体が正常に行なわれているか否かを監視する電子制御装置の例として、演算を要する質問を監視用制御回路からマイクロプロセッサに送信し、これに対する応答内容を監視することにより、マイクロプロセッサの異常の有無を判定するものが知られている（例えば、特許文献１参照）。
【特許文献１】特開２００５−３１８６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の装置においては、監視用制御回路からマイクロプロセッサに質問が送信されるときと、マイクロプロセッサから監視用制御回路に応答が送信されるときとの二度に亘って通信が行なわれるため、装置全体の通信負荷が増大する問題や、二度の通信によって異常判定に時間がかかるといった問題が生じる。特に、自動車等の移動体に搭載される電子制御ユニットの分野において、こうした問題を解決する要請は大きいものである。
【０００６】
本発明はこのような課題を解決するためのものであり、通信負荷を軽減しつつより迅速に、ＣＰＵやマイクロプロセッサの演算機能を検査することが可能な電子制御装置、及び、演算機能検査方法を提供することを、主たる目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するための本発明の第１の態様は、複数のＣＰＵを備え、この複数のＣＰＵに含まれる一のＣＰＵの演算機能を他のＣＰＵとの協働により検査可能な電子制御装置であって、演算機能の検査を受ける被検査ＣＰＵが、所定のプログラムに基づき検査用の演算課題を作成すると共に作成した演算課題の解答を自己の演算機能により作成して、被検査ＣＰＵを監視する監視ＣＰＵに対して作成した演算課題及び解答に関する情報を送信し、監視ＣＰＵが、送信された演算課題及び解答に関する情報に基づいて、被検査ＣＰＵが有する演算機能が正常か否かを判定することを特徴とするものである。ここで、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とは、連携してコンピュータの処理を行なう複数の半導体チップからなる処理装置であり、中央処理装置と称してもよい。
【０００８】
この本発明の第１の態様によれば、被検査ＣＰＵ自らが演算課題を作成すると共に自己の演算機能により解答を作成し、監視ＣＰＵが演算課題と解答を比較して被検査ＣＰＵが正常か否かを判定する。従って、演算課題と解答をセットにして送信することが可能であり、正常判定に要する通信は一度で済む。従って、通信負荷を軽減しつつより迅速に、ＣＰＵの演算機能を検査することができる。
【０００９】
また、本発明の第１の態様において、被検査ＣＰＵは、好ましくは、カウンタを用いて周期的に変化する演算課題を作成する。この場合、更に好ましくは、監視ＣＰＵは、被検査ＣＰＵが作成する演算課題の周期性に基づいて、演算課題の正解を導出する。
【００１０】
また、本発明の第１の態様において、被検査ＣＰＵは、好ましくは、自己の演算機能のうち使用頻度が高い演算機能を用いて解答が作成されるように、演算課題を作成する。
【００１１】
また、本発明の第１の態様において、被検査ＣＰＵは、好ましくは、自己の演算機能のうちフェールセーフ上重要性の高い演算機能を用いて解答が作成されるように、演算課題を作成する。
【００１２】
また、本発明の第１の態様において、ＣＰＵをマイクロプロセッサに置換して構成されるものとしてもよい。マイクロプロセッサ（ＭＰＵ）は、ＣＰＵ（中央処理装置）を１個の半導体チップに集積したものであり、ＣＰＵと同視できる。
【００１３】
本発明の第２の態様は、複数のＣＰＵを備える電子制御装置において、この複数のＣＰＵに含まれる一のＣＰＵの演算機能を他のＣＰＵとの協働により検査する、演算機能検査方法であって、（Ａ）演算機能の検査を受ける被検査ＣＰＵが、所定のプログラムに基づき検査用の演算課題を作成するステップと、（Ｂ）被検査ＣＰＵが、作成した演算課題の解答を自己の演算機能により作成するステップと、（Ｃ）被検査ＣＰＵが、被検査ＣＰＵを監視する監視ＣＰＵに対して作成した演算課題及び解答に関する情報を送信するステップと、（Ｄ）監視ＣＰＵが、送信された演算課題及び解答に関する情報に基づいて、被検査ＣＰＵが有する演算機能が正常か否かを判定するステップと、を備えることを特徴とするものである。
【発明の効果】
【００１４】
本発明によれば、通信負荷を軽減しつつより迅速に、ＣＰＵやマイクロプロセッサの演算機能を検査することが可能な電子制御装置、及び、演算機能検査方法を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明を実施するための最良の形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００１６】
以下、図１〜５を用いて、本発明に係る電子制御装置の一実施例について説明する。図１は、本発明の一実施例に係る電子制御ユニット１の全体構成の一例を示す図である。電子制御ユニット１は、例えば、複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備える電子制御ユニットであって、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０に格納されたプログラムを各ＣＰＵが実行することにより、種々の機能を実現する。なお、本実施例においてＣＰＵの個数に特段の制限はない。
【００１７】
また、電子制御ユニット１は、各ＣＰＵのワーキングエリアとなる読書き可能なＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０や、外部機器との通信を可能にする通信ポート３０、タイマー等を備え、各ＣＰＵを含むこれらの機器群が、バスを介して相互に通信可能に接続されている。
【００１８】
各ＣＰＵは、ＲＯＭ１０に格納されたプログラムを実行する装置であり、例えば、演算装置（ＡＬＵ；Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）や制御装置、レジスタ（演算や実行状態の保持に用いる高速処理が可能な記憶素子）、クロックジェネレータ、内部カウンタ、内部バス等から構成される。なお、ＣＰＵを構成するこれらの装置を１個の半導体チップに集積したものがマイクロプロセッサ（ＭＰＵ）と称されており、ＣＰＵをマイクロプロセッサと換言しても装置としては等価である。
【００１９】
上記演算装置は、レジスタやＲＯＭ１０、ＲＡＭ２０の内容を読み出して、四則演算等の算術演算や、論理和、論理積等の論理演算を実行し、レジスタやＲＡＭ２０に結果を出力する。本発明は、こうした演算装置の機能（ＣＰＵの演算機能）が正常であるか否かを検査することを主眼としている。以下、複数のＣＰＵのうち演算装置が検査されるＣＰＵを被検査ＣＰＵと、当該被検査ＣＰＵの状態を監視するＣＰＵを監視ＣＰＵと、それぞれ称する。
【００２０】
なお、被検査ＣＰＵや監視ＣＰＵは、電子制御ユニット１が備えるＣＰＵの中で特定のＣＰＵを指すものではなく、任意に、また流動的に選ばれてよい。さらに、２つのＣＰＵが互いに監視し合う、すなわち互いに被検査ＣＰＵであると同時に監視ＣＰＵでもあるような関係となってもよい。当該検査は、所定周期毎（所定時間毎や、繰り返し行なわれる処理フローの１〜所定数ルーチン毎などが考えられる）に自動的に行なわれてもよいし、任意のタイミングで行なわれてもよい。
【００２１】
以下、本実施例の電子制御ユニット１において実行される特徴的な演算機能検査方法について説明する。図２は、当該演算機能検査方法の処理の流れを示すフローチャートである。なお、ＲＯＭ１０には、本検査方法を実現するための被検査ＣＰＵ制御プログラム１２と、監視ＣＰＵ制御プログラム１４とが格納されている。
【００２２】
まず、被検査ＣＰＵは、被検査ＣＰＵ制御プログラム１２に従って、検査用の演算課題を作成する（Ｓ１００）。この演習課題は、各被検査ＣＰＵにおいて検査すべき演算機能、すなわち、使用頻度が高い演算機能やフェールセーフ上重要性の高い演算機能を検査できるように、各被検査ＣＰＵに対して個別に作成されてよい。図３は、ある被検査ＣＰＵにおける使用頻度が高い演算機能と、演算課題に含まれる演算機能との組み合わせを示す図である。
【００２３】
また、演算課題は、カウンタ（例えば、被検査ＣＰＵの内部カウンタであって、３ビット、すなわち値０〜７を繰り返すインクリメントカウンタ。外部カウンタを用いてもよい。）を用いて、周期的に同じ内容を繰り返すように作成されてよい。本発明における演算課題は、検査すべき演算機能が正しく働いているのを確認することができれば足りるため、必ずしも新規な演算課題を作成し続ける必要はないからである。以下の説明では、被検査ＣＰＵの検査すべき演算機能が四則演算のみであり、且つ、演算課題が周期的に同じ内容を繰り返すように作成される場合について例示する。
【００２４】
このような場合、カウンタ値が定まると、図４に例示するような所定の対応関係に基づいて演習課題を一意に決定することができる。図示する如く、演算課題はカウンタ値同士の四則演算を行なうように定められ、演算子としてカウンタの下位２ビットが００であれば乗算が、０１であれば加算が、１０であれば減算が、１１であれば除算が、それぞれ割り当てられる。従って、カウンタ値が一つインクリメントされる度に、カウンタ値同士の乗算、加算、減算、除算の順に変化する周期性をもって演算課題が作成される。このように問題作成の処理自体を簡略化することにより、本検査に係る処理時間の短縮や、被検査ＣＰＵとＲＯＭ１０との通信負荷の軽減等を図ることができる。
【００２５】
上記の如く演算課題を作成すると、被検査ＣＰＵは、作成した演算課題の解答を自己の演算装置（ＡＬＵ）の機能により作成し、レジスタ等に格納する（Ｓ１１０）。この際のデータ形式は、例えば８ビットのデータであって、上位５ビットに解答が、下位３ビットに演算課題を作成する基となったカウンタ値が、それぞれ格納される。図５は、カウンタ値の変化に応じて周期的に作成されるデータの例を示す図である。被検査ＣＰＵの演算機能が正常に働いていれば、このような周期性をもってデータが作成されることとなるのである。
【００２６】
そして、被検査ＣＰＵは、上記の如く格納した解答と演算課題を作成する基となったカウンタ値とを含むデータを、監視ＣＰＵに送信する（Ｓ１２０）。本装置及び検査方法においては、ＣＰＵ間の通信は本ステップでのみ行なわれる。従って、検査を受けるＣＰＵに他のＣＰＵから演算課題が送信され、解答を当該他のＣＰＵに送信して検査が行なわれるような態様のものに比して、通信負荷を軽減しつつより迅速に、ＣＰＵの演算機能を検査することができる。
【００２７】
被検査ＣＰＵがデータを送信すると、カウンタ値が一つインクリメントされる（Ｓ１３０）。
【００２８】
一方、監視ＣＰＵは、解答と演算課題を作成する基となったカウンタ値とを含むデータを受信し（Ｓ２００）、監視ＣＰＵ制御プログラム１４に基づいて、被検査ＣＰＵが有する演算機能が正常か否かを判定する（Ｓ２１０）。本実施例の場合、受信するデータ自体が周期的に変化するものであるから、前回送信されたデータをレジスタ等に記憶しておき、前回送信されたデータから今回送信されたデータに対する正解を導出することが可能である。例えば、前回送信されたデータが「００００１０１１」であれば、今回送信されたデータに対する正解は「１００００１００」である（図５参照）。但し、前回送信されたデータが「００００００００」である場合は、システム自体が起動された直後のデフォルト値である可能性もあるため、今回送信されたデータに対する正解は「００００００００」と「０００１０００１」とのいずれかであってよい。そして、受信したデータと上記の如く導出した正解とが合致した場合に、被検査ＣＰＵの演算機能が正常であると判定する。
【００２９】
このように、演算課題の周期性に基づいて正解を導出することにより、監視ＣＰＵにおける処理負担を軽減することができる。また、上記の導出手法に限られず、例えば、上位５ビットと下位３ビットの対応表を予め監視ＣＰＵのレジスタ等に記憶しておき、これを受信したデータと比較してもよい。
【００３０】
そして、被検査ＣＰＵが有する演算機能が正常でないと判定された場合は、所定の異常時制御を行なう（Ｓ２２０）。異常時制御は、例えば、電子制御ユニット自体をリセットする制御であってもよいし、通信ポート３０から異常信号を出力して外部機器により異常状態を報知する制御であってもよい。
【００３１】
以上説明した本実施例の電子制御ユニット１によれば、演算機能の検査を受ける被検査ＣＰＵにおいて演算課題及び解答を作成し、これが監視ＣＰＵに送信されて被検査ＣＰＵが正常か否かの判定が行なわれるから、ＣＰＵ間の通信が一度で済む。これにより、通信負荷を軽減しつつより迅速に、ＣＰＵの演算機能を検査することができる。
【００３２】
また、演算課題がカウンタ値に応じた周期性をもって作成されるから、問題作成の処理自体が簡略化され、検査に係る処理時間の短縮や、被検査ＣＰＵとＲＯＭ１０との通信負荷の軽減等を図ることができる。さらに、これを受信する監視ＣＰＵにおいても、演算課題の周期性に基づいて正解を導出することにより、処理負担を軽減することができる。
【００３３】
また、各被検査ＣＰＵに対して、使用頻度が高い演算機能やフェールセーフ上重要性の高い演算機能を検査するように演算課題を作成することにより、より効果的な検査を行なうことができる。
【００３４】
以上、本発明を実施するための最良の形態について一実施例を用いて説明したが、本発明はこうした一実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、上述した一実施例に種々の変形及び置換を加えることができる。
【００３５】
例えば、図６（Ａ）に示す如く、それぞれ別のＲＯＭに格納されたプログラムを実行するものとしてもよい。ＲＡＭについても、各ＣＰＵに対応して設けられてもよい。
【００３６】
また、図６（Ｂ）に示す如く、複数の電子制御ユニットからなる装置を、本発明に係る電子制御装置と捉えてもよい。この場合、各電子制御ユニットが備えるＣＰＵは単独であってもよいし、複数であってもよい。なお、電子制御ユニット間の通信は、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の適切な通信プロトコルを用いて行なわれると好適である。
【産業上の利用可能性】
【００３７】
本発明は、少なくともＣＰＵやマイクロプロセッサを含む電子制御装置に利用できる。車両に搭載された場合、搭載される車両の外観、重量、サイズ、走行性能等は問わない。
【図面の簡単な説明】
【００３８】
【図１】本発明の一実施例に係る電子制御ユニット１の全体構成の一例を示す図である。
【図２】演算機能検査方法の処理の流れを示すフローチャートである。
【図３】ある被検査ＣＰＵにおける使用頻度が高い演算機能と、演算課題に含まれる演算機能との組み合わせを示す図である。
【図４】カウンタ値と演習課題との対応関係を表す図である。
【図５】カウンタ値の変化に応じて周期的に作成されるデータの例を示す図である。
【図６】本発明の電子制御装置の他の適用例を示す図である。
【符号の説明】
【００３９】
１  電子制御ユニット
１０  ＲＯＭ
１２  被検査ＣＰＵ制御プログラム
１４  監視ＣＰＵ制御プログラム
２０  ＲＡＭ
３０  通信ポート
【図１】
0004747930.tif 000002
【図２】
0004747930.tif 000003
【図３】
0004747930.tif 000004
【図４】
0004747930.tif 000005
【図５】
0004747930.tif 000006
【図６】
0004747930.tif 000007