(57)【要約】【課題】制御プログラムの実行状態を厳密に監視して、異常な実行状態を正確に検出する電動パワーステアリング装置を提供すること。【解決手段】操舵補助用の電動モータと、複数のタスクを順番に実行することによって操舵補助用の電動モータを駆動制御して車両の操舵制御を実行する制御部とを備える電動パワーステアリング装置において、制御部は、夫々のタスクの終了時間を計測し、計測した各タスクの終了時間に基づいてプログラムの異常な実行状態の検知を行う。【選択図】        図６
2009113618.tif 000002
【特許請求の範囲】
【請求項１】
操舵補助用の電動モータと、複数のタスクを順番に実行することによって前記操舵補助用の電動モータを駆動制御して車両の操舵制御を実行する制御部とを備える電動パワーステアリング装置において、
前記制御部は、夫々のタスクの終了時間を計測し、計測した各タスクの終了時間に基づいてプログラムの異常な実行状態の検知を行うことを特徴とする電動パワーステアリング装置。
【請求項２】
前記制御部は、計測した各タスクの終了時間に基づいてタスクの実行順番を判定し、判定した実行順番が予め設定された所定の順番で実行されていない場合に、プログラムの異常な実行状態として検出することを特徴とする請求項１に記載の電動パワーステアリング装置。
【請求項３】
前記制御部は、計測した各タスクの終了時間に基づいて所定のプロセス周期中に、所要の複数のタスクが全て実行されているか否かを判定し、所定のプロセス周期中に所要の複数のタスクが全て実行されていない場合に、プログラムの異常な実行状態として検出することを特徴とする請求項１に記載の電動パワーステアリング装置。
【請求項４】
前記制御部は、計測した各タスクの終了時間に基づいて各タスクが所定の時間内に終了しているかを判断し、各タスクが設計された所定の時間内に終了していない場合に、プログラムの異常な実行状態として検出することを特徴とする請求項１に記載の電動パワーステアリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操舵制御を行うためのプログラムの異常な実行状態の検知を行う電動パワーステアリング装置に関するものである。
【背景技術】
【０００２】
乗用車やトラック等の車両の操舵力を軽減するため、操舵補助モータによって操舵を補助する、いわゆる電動パワーステアリング（ＥＰＳ：Ｅｌｅｃｔｒｉｃ  Ｐｏｗｅｒ  Ｓｔｅｅｒｉｎｇ）装置がある。ＥＰＳ装置では、操舵補助モータの駆動力を、減速機を介してギヤまたはベルト等の伝送機構により、ステアリングシャフトまたはラック軸に補助力を付与するようになっている。
【０００３】
ＥＰＳ装置は、車両操舵という重要な役割を担うため、自動車を構成する部品のなかでも安全性、信頼性への配慮が特に必要である。そのため、ＥＰＳ装置の制御を行うコントロールユニットの制御プログラムについても、異常な操舵補助を実行してしまう状態に至る前に対処できるよう、設計された実行周期でプログラムが実行されていない状態や、極端な場合ではプログラムの暴走状態など、プログラムの異常な実行状態を検出する手法が求められている。
【０００４】
このようなプログラムの異常な実行状態を検出するために、従来は、ＷＤＴ（Ｗａｔｃｈ  Ｄｏｇ  Ｔｉｍｅｒ）が利用されている。ＷＤＴとは、タイムアウトが発生しないようにプログラムからリセットされるタイマーであり、アプリケーションが正しく動かずＷＤＴのリセットが行われなかった場合のタイムアウトを利用することによって、プログラムの異常な実行状態を検出することができる。例えば、特許文献１によれば、ＷＤＴを利用してシステムの障害に対応する手法が紹介されている。
【０００５】
【特許文献１】特開２００２−２５１３００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来のような、プログラムの異常な実行状態をＷＤＴを利用して検知する手法では、プログラムが異常な実行状態になっているにもかかわらずＷＤＴが定期的にリセットされる場合には異常は検知されない。つまり、ＷＤＴを利用した手法では、限られた部分の異常しか検知されないという問題があった。
【０００７】
本発明は、上記に鑑みてなされたものであって、制御プログラムの実行状態を厳密に監視して、異常な実行状態を正確に検出することが可能な電動パワーステアリング装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、操舵補助用の電動モータと、複数のタスクを順番に実行することによって前記操舵補助用の電動モータを駆動制御して車両の操舵制御を実行する制御部とを備える電動パワーステアリング装置において、前記制御部は、夫々のタスクの終了時間を計測し、計測した各タスクの終了時間に基づいてプログラムの異常な実行状態の検知を行うことを特徴とする。
【０００９】
また、本発明の好ましい態様によれば、前記制御部は、計測した各タスクの終了時間に基づいてタスクの実行順番を判定し、判定した実行順番が予め設定された所定の順番で実行されていない場合に、プログラムの異常な実行状態として検出することを特徴とする。
【００１０】
また、本発明の好ましい態様によれば、前記制御部は、計測した各タスクの終了時間に基づいて所定のプロセス周期中に、所要の複数のタスクが全て実行されているか否かを判定し、所定のプロセス周期中に所要の複数のタスクが全て実行されていない場合に、プログラムの異常な実行状態として検出することを特徴とする。
【００１１】
また、本発明の好ましい態様によれば、前記制御部は、計測した各タスクの終了時間に基づいて各タスクが所定の時間内に終了しているかを判断し、各タスクが設計された所定の時間内に終了していない場合に、プログラムの異常な実行状態として検出することを特徴とする。
【発明の効果】
【００１２】
この発明によれば、夫々のタスクの終了時間を計測し、計測した各タスクの終了時間に基づいてプログラムの異常な実行状態の検知を行うので、制御プログラムの実行状態を厳密に監視することができ、これによりウォッチドッグタイマによって検出不可能なプログラムの異常な実行状態を正確に検出することができる。
【発明を実施するための最良の形態】
【００１３】
以下に、本発明にかかる電動パワーステアリング（ＥＰＳ）装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１４】
図１は、電動パワーステアリング（ＥＰＳ）装置１００の一般的な構成を示す図である。図１において、操向ハンドル１のコラム軸２は減速ギア３、ユニバーサルジョイント４ａおよび４ｂ、ピニオンラック機構５を経て操向車輪のタイロッド６に連結されている。コラム軸２には、操向ハンドル１の操舵トルクＴを検出するトルクセンサ１０が設けられており、操向ハンドル１の操舵力を補助する操舵補助モータ２０が、減速ギア３を介してコラム軸２に連結されている。ここで、操舵補助モータ２０は、例えば、ブラシレスモータやブラシモータである。電動パワーステアリング装置を制御するコントロールユニット（ＥＣＵ）３０には、バッテリ１４から内蔵の電源リレー１３を経て電力が供給され、イグニションキー１１からイグニション信号が供給される。また、コントロールユニット３０は、トルクセンサ１０で検出された操舵トルクＴと車速センサ１２で検出された車両速度（車速）Ｖとに基づいて、操舵補助モータ２０の電流指令値を演算し、操舵補助モータ２０の電流検出値と電流指令値とに基づいて、操舵補助モータ２０の電流検出値が電流指令値に追従するように操舵補助モータ２０を駆動制御する。
【００１５】
図２は、図１のコントロールユニット３０のハードウェア構成を示す図である。コントロールユニット３０は、図２に示すように、電源リレー１３と、ＭＣＵ（マイクロコントロールユニット）１１０と、モータ駆動回路１０８と、電流検出回路１２０と、位置検出回路１３０等を備えている。
【００１６】
ＭＣＵ１１０は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ＥＥＰＲＯＭ１０４、インターフェース（Ｉ／Ｆ）１０５、Ａ／Ｄ変換器１０６、ＰＷＭコントローラ１０７などを備え、これらがバス接続されている。ＣＰＵ１０１は、ＲＯＭ１０２に格納された制御プログラムを実行して電動パワーステアリング装置を制御する。
【００１７】
ＲＯＭ１０２は操舵補助モータ２０の制御プログラムを記憶するためのメモリとして使用され、ＲＡＭ１０３は当該プログラムを動作させるためのワークメモリとして使用される。ＥＥＰＲＯＭ１０４は電源遮断後においても記憶内容を保持可能なメモリであり、制御プログラムが入出力する制御データなどが格納される。
【００１８】
Ａ／Ｄ変換器１０６は、トルクセンサ１０からの操舵トルクＴ、電流検出回路１２０からの操舵補助モータ２０の電流検出値Ｉｍ、および位置検出回路１３０からのモータ回転角信号θ等を入力し、デジタル信号に変換する。インターフェース１０５は、ＣＡＮなどの車載ネットワークに接続されており、車速センサ１２からの車速信号Ｖ（車速パルス）を受け付けるためのものである。
【００１９】
ＰＷＭコントローラ１０７は操舵補助モータ２０の電流指令値に基づきＵＶＷ各相のＰＷＭ制御信号を出力する。モータ駆動回路１０８は、インバータ回路などにより構成され、ＰＷＭコントローラ１０７から出力された信号に基づき操舵補助モータ２０を駆動する。電流検出回路１２０は操舵補助モータ２０の電流値を検出し、電流検出値ＩｍをＡ／Ｄ変換器１０６に出力する。位置検出回路１３０は、レゾルバなどの位置センサ２５からの出力信号をモータ回転角信号θとして、Ａ／Ｄ変換器１０６に出力する。
【００２０】
つぎに、本実施例１の要部について説明する。図３は、図２に示したＭＣＵ１１０内の各部の協働により実現される機能の構成図である。
【００２１】
図３において、ＭＣＵ１１０内に、制御機能１１０１、タイマー機能１１０２、異常検出機能１１０３、記憶機能１１０４、およびインターフェース機能１１０５が実現される。制御機能１１０１は、制御プログラムがＣＰＵ１０１により読み込まれて実行されることにより実現する機能であり、コントロールユニット３０を通じてＥＰＳ装置１００の動作を制御するための機能である。制御機能１１０１は、実際にはいくつかのプロセスを実行されることにより動作している。
【００２２】
図４は、プロセスが制御機能１１０１内で実行されている例を説明する図である。プロセスとは、操舵トルクＴと車速Ｖに基づいて操舵補助トルク指令値を算出するトルク制御プロセス、操舵補助トルク指令値に基づいて操舵補助モータ２０を駆動する電流制御プロセス、ＭＣＵ１１０内の各部の通信をコントロールする通信プロセス、およびＥＰＳ装置１００の自己診断を行う診断プロセスなどである。各プロセスは、ひとつまたは複数のタスクを周期的に実行する。例えば図４におけるプロセス１は、タスク１１〜１６までを実行するとしているが、これらのタスクを直列に順次実行し、リターンされると再びプロセス１がタスク１１から実行される。ここで、プロセスの数およびひとつのプロセスに含まれるタスクの数は、図４に示す例と異なっていても問題ない。
【００２３】
各タスクは、タスク終了時に当該タスクの終了時刻を示すタイムスタンプを更新する。タイムスタンプは、例えばフリーラン・カウンタなどを設置して取得するように設計してよい。図５は、図４におけるタスク１１の処理フローを説明する図である。図４に示す各タスクは、図５に示すように、リターンの直前にタイムスタンプを更新し、タスクが終了する時間を記録する。終了したタスク（タスクＩＤ）と、更新された当該タスクのタイムスタンプとを含むタスクの実行履歴は記憶機能１１０４に保持される。
【００２４】
図３において、タイマー機能１１０２は、各プロセス実行に所定の実行周期で割り込みをかけ、記憶機能１１０４に保持されているタスクの実行履歴を取得する。そして異常検出機能１１０３は、取得したタスクの実行履歴から、プロセスが設計どおり正常に実行されているか否かを判断し、正常に実行されていない場合、プログラムのリセットや停止などの異常処理を行う。このとき、タイマー機能１１０２はソフトウェアタイマーにより実現されるものであってもよいが、プログラムの異常実行状態を検出するためのものであるので、ハードウェアにより実現されるタイマー機能であることが望ましい。
【００２５】
記憶機能１１０４は、ＲＯＭ１０２、ＲＡＭ１０３、およびＥＥＰＲＯＭ１０４による機能であり、前述のタイムスタンプを保持する。それ以外には、ＣＰＵ１０１に読み込まれて各機能を実現するための制御プログラムや、制御プログラムにより使用されるデータを保持する。
【００２６】
インターフェース機能１１０５は、インターフェース１０５、Ａ／Ｄ変換器１０６により実現される、インターフェース機能１１０５は、トルクセンサ１０、車速センサ１２、モータ駆動回路１０８、電流検出回路１２０、および位置検出回路１３０と通信を行う。
【００２７】
以上の構成で実行される本発明の実施例１にかかる各プロセスの異常実行状態の検出動作を説明する。図６は、各プロセスの異常実行状態を検出する動作を説明するフローチャートである。
【００２８】
図６においては、タイマー機能１１０２による割り込みは、割り込みがかけられるプロセスの実行周期の１／２の周期で実行されるとしている。まず該プロセスが実行されると、同時にタイマー機能１１０２がカウントを開始し、プロセスの設計上の実行時間の半分が経過したときに一回目の割り込みが発生する（ステップＳ６１）。異常検出機能１１０３は各タスクにより記憶機能１１０４に記録されたタスクの実行履歴を取得し、このプロセスの実行周期の半分が経過した時点でタスクが設計された所定の順番で実行されているか否かを判断する。設計された順番で実行されていない場合（ステップＳ６１、Ｎｏ）、異常監視機能１１０３はこのプロセスは異常な実行状態にあると判断し、ステップＳ６４に移行して、プログラムのリセットなどの異常処理を行う。設計された順番でタスクが実行されている場合（ステップＳ６１、Ｙｅｓ）、異常監視機能１１０３はこのプロセスは今のところ正常に実行されていると判断し、ステップＳ６２に移行する。
【００２９】
続いて、タイマー機能１１０２による割り込みはこのプロセスの１／２の周期で実行されるので、プロセスの設計上のリターン時に２回目の割り込みが実行される（ステップＳ６２）。ステップＳ６２では、異常検出機能１１０３は、この時点におけるタスクの実行履歴を再び取得し、設計上のプロセスの実行周期が経過した時点で各タスクが設計どおりの順番で実行されたかどうかを判断する。異常検出機能１１０３が、設計どおりの順番で各タスクが実行されなかったと判断する場合（ステップＳ６２、Ｎｏ）、このプロセスは異常な実行状態にあると判断し、異常処理が行われ（ステップＳ６４）、正常に実行されたと判断する場合（ステップＳ６２、Ｙｅｓ）、ステップＳ６３に移行する。ステップＳ６３に移行すると、異常検出機能１１０３は記憶機能１１０４に保持される各タスクのタイムスタンプをリセットする。そしてステップＳ６１に移行する。
【００３０】
このように、各タスクが設計どおりの順番で実行されていない場合に異常として検出することにより、プログラムの異常な実行状態を検出することができる。
【００３１】
次に、実施例１にかかる各プロセスの異常実行状態の検出動作により、どのような事例が異常実行状態として検出されるかを、より具体的な例を用いて説明する。図８は、具体例を説明するための図である。
【００３２】
図８では、図４において例として説明したプロセス１を取り上げている。図８において、プロセス１は、図８の最上段に示されるように、２０ｍｓの実行周期で動作し、タスク１１を１ｍｓ、タスク１２を３ｍｓ、タスク１３を４ｍｓ、タスク１４を３ｍｓ、タスク１５を４ｍｓ、タスク１６を４ｍｓで実行し、さらに１ｍｓのブランクを置くように設計されているとする。つづいて、実際に図８の上から２段目に示すように、なんらかのトラブルにより、タスク１２とタスク１３が逆転して動いたような例を考える。このときステップＳ６１での一回目の割り込みの時点では、タスクの実行履歴は、タスク１１、タスク１３、タスク１２の順となっている。異常検出機能１１０３によるチェックにより、これは設計された順番で実行されていない、異常な実行状態であると判断されることとなる。
【００３３】
また、図８の上から三段目に示されている実行例２のケースでは、各タスクの順番は正常であるが、タスク１１およびタスク１５において設計上の実行時間を１ｍｓオーバーして動作している。結果としてプロセス１は設計上の実行周期である２０ｍｓをオーバーしている。このとき、ステップＳ６１の一回目の割り込みの時点ではタスクの順番は正しいので異常と検出されないが、ステップＳ６２の二回目の割り込みによるチェックの時点では、各タスクのタイムスタンプから判断されるタスクの実行の履歴は、タスク１１、タスク１２、タスク１３、タスク１４、タスク１５となっており、タスク１６のタイムスタンプ記録が未だ完了していない。したがって、このケースでは、異常検出機能１１０３は、所定のプロセス周期中に、当該プロセスに含まれる所要の複数のタスクが全て実行されているか否かを判定し、これら所要の複数のタスクが全て実行されていない場合に、プログラムの異常な実行状態として検出することとなる。
【００３４】
因みに、ＷＤＴ（ウォッチドッグタイマ）を利用する異常検出方法では、何れかのタスクにＷＤＴのリセット信号を出力させるように構成されるが、実行例１および実行例２のケースでは、一応すべてのタスクが実行されているので、異常を検出することはできない。
【００３５】
ところで、実施例１においては、タスクの順番の確認をひとつのプロセスに属するタスクについてのみ実行するとして説明したが、タスクの実行の順番が確定している場合は異なるプロセスに渡ってタスクの順番を確認し、設計どおりの順番で異なるプロセスに渡ってタスクが実行されていない場合に異常と判断するようにしてもかまわない。
【００３６】
また、タイマー機能１１０２および異常検出機能１１０３による割り込みと異常検出動作は、プロセスの実行周期の１／２の実行周期で実行されるとして説明したが、１／ｎ（ｎは正の整数）であればどのように設定されてもかまわない。このとき、ｎの値が大きくなるにつれて異常検出の速度は向上するが、ＣＰＵへの負荷が大きくなるので、設計段階で適切に設定される必要がある。
【００３７】
また、異常が検出された場合、単にステップＳ６４にて異常処理を行うとしたが、異常処理がリセットの場合、タイムスタンプもリセットして再びステップＳ６１に移行するように構築されてもよい。
【００３８】
このように、実施例１では、計測した各タスクの終了時間に基づいてタスクの実行順番を判定し、判定した実行順番が予め設定された所定の順番で実行されていない場合に、プログラムの異常な実行状態として検出するとともに、計測した各タスクの終了時間に基づいて所定のプロセス周期中に、所要の複数のタスクが全て実行されているか否かを判定し、所定のプロセス周期中に所要の複数のタスクが全て実行されていない場合に、プログラムの異常な実行状態として検出するようにしているので、制御プログラムの実行状態を厳密に監視することができ、これによりウォッチドッグタイマによって検出不可能なプログラムの異常な実行状態を正確に検出することができる。
【実施例２】
【００３９】
実施例１では、異常検出機能１１０３は、各タスク終了時のタイムスタンプを取得し、各タスクが設計されたとおりの順番で動作しているかと、所定のプロセス周期中に所要の複数のタスクが全て実行されているかをチェックすることにより、プロセスが正常に実行されているかどうかを判断した。実施例２においては、異常検出機能１１０３は、各タスクのタイムスタンプから各タスクの動作期間を算出し、各タスクが設計されている動作期間どおりに実行されているかどうかも合わせてチェックし、プロセスが正常に実行されているかどうかを判断する。実施例２の電動パワーステアリング装置の構成は、実施例１による電動パワーステアリング装置と同等であるので、ここでは実施例１と異なる部分であるプロセスの異常実行状態の検出動作のみを説明する。
【００４０】
図７は、実施例２にかかるプロセスの異常実行状態の検出動作を説明するフローチャートである。ここでは、実施例１の説明と同じく、タイマー機能１１０２による割り込みは、割り込みがかけられるプロセスの実行周期の１／２の周期で実行されるとしている。まず該プロセスが実行されると、同時にタイマー機能１１０２がカウントを開始し、プロセスの設計上の実行時間の半分が経過したときに一回目の割り込みが発生する（ステップＳ７１）。異常検出機能１１０３は各タスクにより記憶機能１１０４に記録された各タスクのタイムスタンプを取得し、このプロセスの実行周期の半分が経過した時点でタスクが設計された順番で実行されているかを判断する。設計された順番で実行されていないと判断される場合（ステップＳ７１、Ｎｏ）、異常検出機能１１０３はプロセスの実行状態に異常があると判断し、ステップＳ７６に移行して、プログラムのリセットなどの異常処理を行う。設計された順番でタスクが実行されていると判断される場合（ステップＳ７１、Ｙｅｓ）、ステップＳ７２に移行する。
【００４１】
ステップＳ７２においては、異常検出機能１１０３は、取り込んだタイムスタンプから各タスクの実行時間を導出し、設計どおりの実行時間で各タスクが実行されているかどうかを判断する。このプロセスの実行周期の半分が経過した時点で、異常検出機能１１０３が設計どおりの実行時間で実行されていないタスクを発見した場合（ステップＳ７２、Ｎｏ）、プロセスの実行状態に異常があると判断し、異常処理を実行する（ステップＳ７６）。すべて設計どおりの実行時間で実行されている場合（ステップＳ７２、Ｙｅｓ）、ステップＳ７３に移行する。
【００４２】
続いて、タイマー機能１１０２による割り込みはこのプロセスの１／２の周期で実行されるので、ステップＳ７３において、設計上のプロセスの実行周期が経過したタイミングで２回目の割り込みが実行される。ステップＳ７３では、異常検出機能１１０３は、各タスクのタイムスタンプを再び取得し、各タスクが設計どおりの順番で実行されたかどうかを判断する。異常検出機能１１０３が、設計どおりの順番で各タスクが実行されなかったと判断する場合（ステップＳ７３、Ｎｏ）、プロセスの実行状態に異常があると判断し、異常処理を実行し（ステップＳ７６）、正常に実行されたと判断する場合（ステップＳ７３、Ｙｅｓ）、ステップＳ７４に移行する。
【００４３】
ステップＳ７４においては、異常検出機能１１０３は、取り込んだ各タスクのタイムスタンプから各タスクの実行時間を導出し、設計どおりの実行時間で各タスクが実行されているかどうかを判断する。このプロセスの設計上の実行周期が経過した時点で、異常検出機能１１０３が設計どおりの実行時間で実行されていないタスクを発見した場合（ステップＳ７４、Ｎｏ）、異常検出機能１１０３はプロセスの実行状態に異常があると判断し、異常処理を実行する（ステップＳ７６）。すべて設計どおりの実行時間で実行されている場合（ステップＳ７４、Ｙｅｓ）、ステップＳ７５に移行する。
【００４４】
ステップＳ７５においては、これまでなんの異常も見られなかったので、タイムスタンプをリセットし、ステップＳ７１に移行する。
【００４５】
このように、実施例２においては、タスクの実行順序の他に、各タスクの実行時間をも確認し、プログラムの実行状態の異常を検出する。
【００４６】
次に、実施例２にかかる各プロセスの異常実行状態の検出動作により、どのような事例が異常実行状態として検出されるかを、図８を用いてより具体的に説明する。
【００４７】
本実施例は、実施例１による各プロセスの異常実行状態の検出動作をも包含しているので、図８における実行例１および実行例２のケースは、異常として検出することができる。実行例３は、設計されたプロセス１の動作に比べて、タスク１１の動作が１ｍｓだけ長くかかっている。このケースでは、実施例１における二回の割り込み時の検出動作では異常は検出されない。しかし、本実施例における検出動作では、各タスクの実行時間をも設計上の実行時間と比較するので、実行例３のケースにおいても異常を検出することができる。
【００４８】
ところで、実施例２においても、タスクの実行の順番が確定している場合は異なるプロセスに渡ってタスクの順番を確認し、設計どおりの順番で異なるプロセスに渡ってタスクが実行されていない場合に異常と判断するようにしてもかまわない。
【００４９】
また、タイマー機能１１０２および異常検出機能１１０３による割り込みと異常検出動作は、プロセスの実行周期の１／２の実行周期で実行されるとして説明したが、１／ｎ（ｎは正の整数）であればどのように設定されてもかまわない。
【００５０】
また、異常が検出された場合、単にステップＳ７６にて異常処理を行うとしたが、異常処理がリセットの場合、タイムスタンプもリセットして再びステップＳ７１に移行するように構築されてもよい。
【００５１】
このように、実施例２では、各タスクの終了時間を計測し、該終了時間から各タスクの実行された順番と、所定のプロセス周期中に所要の複数のタスクが全て実行されているかと、各タスクの実行時間とを確認し、設計どおりに実行されていない場合に異常と判断するので、実施例１による電動パワーステアリング装置による効果に加えて、タスクの実行時間の微小な遅れをも異常として検知することができる、という効果を奏する。
【００５２】
なお、上記実施例１では、各タスクの実行順番を確認する第１の処理と、所定のプロセス周期中に所要の複数のタスクが全て実行されているかを確認する第２の処理とを実行し、実施例２では、第１及び第２の処理の他に、各タスクの実行時間を確認する第３の処理をさせるようにしたが、これら第１〜第３の処理を単独で行うようにしてもよい。更に、計測した各タスクの終了時間に基づいて第１〜第３の処理以外の他の異常なタスクの実行状態を検出するようにしてもよい。すなわち、本発明では、夫々のタスクの終了時間を計測し、計測した各タスクの終了時間に基づいてプログラムの異常な実行状態の検知を行う。
【産業上の利用可能性】
【００５３】
以上のように、本発明にかかる電動パワーステアリング装置は、プログラムの実行状態の異常を検知する電動パワーステアリング装置に適用して好適である。
【図面の簡単な説明】
【００５４】
【図１】電動パワーステアリング装置の一般的な構成を示す図である。
【図２】コントロールユニットのハードウェア構成を示す図である。
【図３】ＭＣＵにより実現される機能構成を示す図である。
【図４】制御機能が実行するプロセスの例を説明する図である。
【図５】タスクの動作の例を説明するフローチャートである。
【図６】実施例１におけるプロセスの異常実行状態を検出する動作を説明するフローチャートである。
【図７】実施例２におけるプロセスの異常実行状態を検出する動作を説明するフローチャートである。
【図８】異常実行状態の具体例を説明する図である。
【符号の説明】
【００５５】
１  操向ハンドル
２  コラム軸
３  減速ギア
４ａ，４ｂ  ユニバーサルジョイント
５  ピニオンラック機構
６  タイロッド
１０  トルクセンサ
１１  イグニションキー
１２  車速センサ
１３  電源リレー
１４  バッテリ
２０  操舵補助モータ
２５  位置センサ
３０  コントロールユニット
１００  ＥＰＳ装置
１１０  ＭＣＵ
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  ＥＥＰＲＯＭ
１０５  インターフェース
１０６  Ａ／Ｄ変換器
１０７  ＰＷＭコントローラ
１０８  モータ駆動回路
１２０  電流検出回路
１３０  位置検出回路
１１０１  制御機能
１１０２  タイマー機能
１１０３  異常検出機能
１１０４  記憶機能
１１０５  インターフェース機能
【図１】
2009113618.tif 000003
【図２】
2009113618.tif 000004
【図３】
2009113618.tif 000005
【図４】
2009113618.tif 000006
【図５】
2009113618.tif 000007
【図６】
2009113618.tif 000008
【図７】
2009113618.tif 000009
【図８】
2009113618.tif 000010