(57)【特許請求の範囲】
【請求項１】
電動パワーステアリング装置の制御装置であって、
前記制御装置に備えられているＭＣＵを用いて、前記電動パワーステアリング装置の制御プログラムを細分化して得られた各通常処理の実行時間を監視するようになっており、
前記各通常処理について、それぞれ実行時間監視用の実行時間閾値が設定されていると共に、前記各通常処理と対になっている各代替処理についても、それぞれ実行時間監視用の実行時間閾値が設定されているようになっており、
前記ＭＣＵに内蔵されている汎用タイマを用いて、前記通常処理の最初で前記汎用タイマをスタートし、前記通常処理の最後で前記汎用タイマをストップすると共にタイマカウント値もクリアすることにより、前記通常処理の実行時間を計測するようになっており、
前記通常処理の実行中に、前記電動パワーステアリング装置の制御に係る正常処理としての割り込む処理が行われる場合に、前記割り込み処理の先頭で一旦前記汎用タイマをストップすると共にストップさせる直前のタイマカウント値を保存しておき、そして、前記割り込み処理による割り込みを抜けたら、前記汎用タイマを再スタートさせると共に保存しておいた前記タイマカウント値からタイマ計測を行うようになっており、
前記汎用タイマで計測された前記実行時間が前記通常処理の実行時間閾値に達した時点に、前記通常処理がまだ終了していない場合に、前記通常処理の実行時間異常が発生したと判断すると共に前記通常処理を異常と見なし、今周期では、前記ＭＣＵによるソフトウェア処理であるタイマ割り込み処理を行うことで前記通常処理を中断し、前記通常処理の演算値のチェック処理を行い、前記演算値が異常である場合に前記演算値をデフォルト値で置き換えるようにし、前記汎用タイマによるタイマ割り込みを抜けたら、実行順序に基づいて次の通常処理を行うようにし、次周期において、前記通常処理の実行順序で、前記通常処理の代わりとして、前記通常処理と対になっている代替処理を行うようにすることにより、前記電動パワーステアリング装置の制御を継続するようにすることを特徴とする電動パワーステアリング装置の制御装置。
【請求項３】
前記ＭＣＵでは、前記通常処理の実行時間の監視を前記汎用タイマと前記タイマ割り込を用いて行い、タイマ割り込み時間を前記通常処理の前記実行時間閾値に基づいて設定するようにする請求項１に記載の電動パワーステアリング装置の制御装置。
【請求項５】
電動パワーステアリング装置の制御装置に備えられているＭＣＵを用いて、前記電動パワーステアリング装置の制御プログラムを細分化して得られた各通常処理の実行時間を監視するようになっており、
前記各通常処理について、それぞれ実行時間監視用の実行時間閾値が設定されていると共に、前記各通常処理と対になっている各代替処理についても、それぞれ実行時間監視用の実行時間閾値が設定されているようになっており、
前記ＭＣＵに内蔵されている汎用タイマを用いて、前記通常処理の最初で前記汎用タイマをスタートし、前記通常処理の最後で前記汎用タイマをストップすると共にタイマカウント値もクリアすることにより、前記通常処理の実行時間を計測するようになっており、
前記通常処理の実行中に、前記電動パワーステアリング装置の制御に係る正常処理としての割り込む処理が行われる場合に、前記割り込み処理の先頭で一旦前記汎用タイマをストップすると共にストップさせる直前のタイマカウント値を保存しておき、そして、前記割り込み処理による割り込みを抜けたら、前記汎用タイマを再スタートさせると共に保存しておいた前記タイマカウント値からタイマ計測を行うようになっており、
前記汎用タイマで計測された前記実行時間が前記通常処理の実行時間閾値に達した時点に、前記通常処理がまだ終了していない場合に、前記通常処理の実行時間異常が発生したと判断すると共に前記通常処理を異常と見なし、今周期では、前記ＭＣＵによるソフトウェア処理であるタイマ割り込み処理を行うことで前記通常処理を中断し、前記通常処理の演算値のチェック処理を行い、前記演算値が異常である場合に前記演算値をデフォルト値で置き換えるようにし、前記汎用タイマによるタイマ割り込みを抜けたら、実行順序に基づいて次の通常処理を行うようにし、次周期において、前記通常処理の実行順序で、前記通常処理の代わりとして、前記通常処理と対になっている代替処理を行うようにすることにより、前記電動パワーステアリング装置の制御を継続するようにすることを特徴とする電動パワーステアリング装置の制御方法。
【請求項７】
前記ＭＣＵでは、前記通常処理の実行時間の監視を前記汎用タイマと前記タイマ割り込を用いて行い、タイマ割り込み時間を前記通常処理の前記実行時間閾値に基づいて設定するようにする請求項５に記載の電動パワーステアリング装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載用電子機器の制御装置及び制御方法に関し、特に、当該車載用電子機器を制御するための制御プログラムの実行時間を従来のウォッチドッグタイマを用いた異常監視より細かい時間単位で監視し、制御プログラムを細分化して得られた処理の実行時間の異常が検出された場合に、次周期において当該処理を簡易な代替処理に置き換えることにより車載用電子機器の制御を継続するようにした車載用電子機器の制御装置及び制御方法に関する。
【背景技術】
【０００２】
今日、車両の電子化が進んでおり、車両の各種装備品や、駆動システム乃至その補助システムなどに、多数の電子機器が備えられ、これら電子機器の制御が行われている。そして、このような車載用電子機器の制御を行う制御装置では、車両の安全な運行や、運転者の利便性・快適性の向上のために、高い安全性と信頼性とが要求されている。【０００３】
そのため、上記のような車載用電子機器の制御装置では、高い安全性と信頼性を保証するために、これらの電子機器を制御するための制御プログラムの異常監視を行うようにしている。従来、車載用電子機器の制御装置では、制御プログラムの異常を監視（検出）する方法として、ウォッチドッグタイマ（ＷＤＴ）を使用して異常監視（異常検出）を行う方法が一般的に知られている。【０００４】
この従来のＷＤＴを用いた制御プログラム異常監視では、制御プログラムに異常がない場合に、常に一定時間内に（ＷＤＴがタイムアップする前に）クリア命令でＷＤＴをクリアし、ＷＤＴのカウントを再スタートさせるようになっており、一方、制御プログラムに異常が生じた場合に、このクリア命令が実行されないため、ＷＤＴがタイムアップしてしまい、そうすると、リセットがかかり、制御プログラムの異常な実行状態が一定時間以上継続しないようにすることができる。【０００５】
上記電子機器として、例えば、電動パワーステアリング装置の場合には、特許文献１（特開２００９−１１３６１８号）に記載されたように、制御部で、夫々のタスクの終了時間を計測し、計測した各タスクの終了時間に基づいて制御プログラムの異常な実行状態の検知を行うことにより、上記のようなＷＤＴによって検出不可能な制御プログラムの異常な実行状態を正確に検出する技術が開示されている。【０００６】
また、特許文献２（特開２００６−９０３５６号）では、車両制御用の制御装置において、処理負荷の高いタスクを検出して、所定のタスク混雑基準に基づいて、より処理負荷の低い処理内容に置き換えることによって、タスク抜けなどの障害の発生を抑制する技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１１３６１８号公報
【特許文献２】特開２００６−９０３５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載された発明では、割り込みを行って制御プログラムの異常検出を行っているが、制御プログラムの異常な実行状態が検出された場合に、制御プログラムのリセットなどの異常処理だけを行うようにしているので、電動パワーステアリング装置による操舵アシストが停止してしまい、運転者への負担が増えてしまうという問題がある。【０００９】
また、特許文献２に記載された発明では、処理負荷の高いタスクの処理内容を一部簡素化して処理負荷を低減した上でタスク処理を実行しているが、タスク処理自体が終了しない場合に、タスク処理の異常が検出できないという問題がある。【００１０】
本発明は、上述のような事情よりなされたものであり、本発明の目的は、車載用電子機器の制御プログラムの実行時間を細かい時間単位で監視し、制御プログラムを細分化して得られた処理の実行時間の異常が検出された場合に、次周期において当該処理を簡易な代替処理に置き換えることにより車載用電子機器の制御処理を継続できるようにした車載用電子機器の制御装置及び制御方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明は、車載用電子機器の制御装置に関し、本発明の上記目的は、前記制御装置に備えられているＭＣＵを用いて、前記車載用電子機器の制御プログラムを細分化して得られた各通常処理の実行時間を監視するようになっており、前記ＭＣＵに内蔵されている汎用タイマとソフトウェアによるタイマ割り込み処理により前記通常処理の実行時間の異常が検出された場合に、前記通常処理を次周期において前記通常処理と対になっている代替処理に置き換えることにより、前記代替処理を行うようにし、前記車載用電子機器の制御を継続するようにすることにより達成される。【００１２】
また、本発明の上記目的は、前記汎用タイマを用いて、前記通常処理の実行時間を計測し、前記通常処理について、それぞれ実行時間監視用の実行時間閾値が設定されていると共に、前記代替処理についても、それぞれ実行時間監視用の実行時間閾値が設定されていることにより、或いは、前記ＭＣＵでは、前記通常処理の実行時間の監視を汎用タイマと、前記汎用タイマによる割り込みを用いて行い、タイマ割り込み時間を前記通常処理の実行時間閾値に基づいて設定するようにすることにより、或いは、前記車載用電子機器を電動パワーステアリング装置とすることにより、より効果的に達成される。【００１３】
また、本発明は、車載用電子機器の制御方法に関し、本発明の上記目的は、車載用電子機器の制御装置に備えられているＭＣＵを用いて、前記車載用電子機器の制御プログラムを細分化して得られた各通常処理の実行時間を監視し、前記ＭＣＵに内蔵されている汎用タイマとソフトウェアによるタイマ割り込み処理により前記通常処理の実行時間の異常が検出された場合に、前記通常処理を次周期において前記通常処理と対になっている代替処理に置き換えることにより、前記代替処理を行うようにし、前記車載用電子機器の制御を継続するようにすることにより達成される。【００１４】
また、本発明の上記目的は、前記汎用タイマを用いて、前記通常処理を計測し、前記通常処理について、それぞれ実行時間監視用の実行時間閾値が設定されていると共に、前記代替処理についても、それぞれ実行時間監視用の実行時間閾値が設定されていることにより、或いは、前記ＭＣＵでは、前記通常処理の実行時間の監視を汎用タイマと、前記汎用タイマによる割り込みを用いて行い、タイマ割り込み時間を前記通常処理の実行時間閾値に基づいて設定するようにすることにより、或いは、前記車載用電子機器を電動パワーステアリング装置とすることにより、より効果的に達成される。
【発明の効果】
【００１５】
本発明に係る車載用電子機器の制御装置及び制御方法によれば、車載用電子機器の制御プログラムの実行状態（実行時間）を細かい時間単位（即ち、車載用電子機器の制御プログラムを細分化して得られた通常処理の実行時間閾値単位）で監視するようにしているので、従来のウォッチドッグタイマを用いた異常監視による監視する場合に比較して、迅速に通常処理の異常な実行時間（実行状態）を検出することができる。【００１６】
また、本発明によれば、通常処理の実行時間の監視を、車載用電子機器を制御するコントロールユニットに備えられているマイクロコントロールユニット（ＭＣＵ）内の汎用タイマを用いて行い、タイマ割り込み時間を当該通常処理の実行時間閾値に基づいて設定するようにしているので、通常処理の終了を待つ必要が無いことから、当該通常処理の実行時間（実行状態）の異常を即座に検出することができる。【００１７】
そのため、本発明の車載用電子機器の制御装置及び制御方法を、例えば、電動パワーステアリング装置の制御に用いた場合には、電動パワーステアリング装置の制御装置に異常が生じたと判断された場合であっても、次周期において、実行時間異常と検出された処理を簡易な代替処理に置き換えることにより、電動パワーステアリング装置の制御処理を継続できるようにしているので、電動パワーステアリング装置による操舵アシストを継続して行うことが可能になり、運転者に過大な負荷を与えることもなく、快適な操舵性能を実現できる。
【図面の簡単な説明】
【００１８】
【図１】電動パワーステアリング装置の一般的な構成を示す図である。
【図２】コントロールユニット（ＥＣＵ）の基本構成例を示す図である。
【図３】本発明において、マイクロコントロールユニット（ＭＣＵ）の概略の構成を示す図である。
【図４】本発明において、制御プログラムを細分化して得られた各処理（通常処理）と各処理の実行時間閾値と、各処理に対応する各代替処理と各代替処理の実行時間閾値の設定例を示す図である。
【図５】本発明において、通常処理としての処理２の実行時間の異常がない場合（実行時間正常時）の通常処理の実行順序と、通常処理としての処理２の実行時間の異常が検出された場合（実行時間異常時）の次周期における通常処理の実行順序を説明するための図である。
【図６】本発明において、通常処理の実行時間正常時の制御プログラムの流れ図である。
【図７】本発明において、通常処理の実行時間異常時の制御プログラムの次周期における流れ図である。
【図８】本発明において、通常処理の実行時間正常時の周期処理を説明するための図である。
【図９】本発明において、通常処理の実行時間異常時の周期処理を説明するための図である。
【図１０】本発明において、通常処理（処理Ｍ）の実行時間に異常が生じない場合（実行時間正常時）の処理Ｍの処理の流れを示す図である。
【図１１】本発明において、通常処理の実行時間に異常が生じた場合（実行時間異常時）のタイマ割り込み処理の流れを示す図である。
【図１２】本発明において、通常処理の実行時間正常時の周期処理（処理Ｍ中に割り込み処理が行われる場合）を説明するための図である。
【図１３】本発明において、通常処理の実行時間正常時の周期処理（処理Ｍ中に多重割り込み処理が行われる場合）を説明するための図である。
【図１４】図１２及び図１３において、処理Ｍ中に行われる割り込み処理の流れ図である。
【発明を実施するための形態】
【００１９】
以下に、本発明に係る車載用電子機器の制御装置及び制御方法を、車載用電子機器である電動パワーステアリング装置に用いた場合を具体例として、本発明の実施形態を説明する。
【００２０】
ここで、上記電動パワーステアリング装置は、車両のステアリング機構にモータの回転力で操舵補助力（アシスト力）を付与するものであり、モータの駆動力を減速機構を介してギア又はベルト等の伝達機構により、ステアリングシャフト或いはラック軸に操舵補助力を付与するようになっている。そして、このような電動パワーステアリング装置（ＥＰＳ）は、操舵補助力のトルクを正確に発生させるため、モータ電流のフィードバック制御を行っている。
【００２１】
かかるフィードバック制御は、操舵補助指令値（電流指令値）とモータ電流検出値との差が小さくなるようにモータ印加電圧を調整するものであり、モータ印加電圧の調整は、一般的にＰＷＭ（パルス幅変調）制御のデューティ（Ｄｕｔｙ）の調整で行っている。
【００２２】
上記の電動パワーステアリング装置の一般的な構成を図１に示して説明すると、ハンドル１のコラム軸（ステアリングシャフト、ハンドル軸）２は減速機構の減速ギア３、ユニバーサルジョイント４ａ及び４ｂ、ピニオンラック機構５、タイロッド６ａ，６ｂを経て、更にハブユニット７ａ，７ｂを介して操向車輪８Ｌ，８Ｒに連結されている。また、コラム軸２には、ハンドル１の操舵トルクを検出するトルクセンサ１０及び操舵角θを検出する舵角センサ１４が設けられており、ハンドル１の操舵力を補助するモータ２０が減速機構３の減速ギア（ギア比ｎ）を介してコラム軸２に連結されている。
【００２３】
そして、上記の電動パワーステアリング装置を制御するコントロールユニット（ＥＣＵ）３０は、マイクロコントロールユニット（ＭＣＵ）３１を基幹部品として構成され、バッテリ１３から電力が供給されると共に、イグニションキー１１を経てイグニションキー信号が入力される。
【００２４】
このように構成されるコントロールユニット（ＥＣＵ）３０では、トルクセンサ１０で検出された操舵トルクＴｈと車速センサ１２で検出された車速Ｖｅｌとに基づいてアシスト（操舵補助）指令の電流指令値の演算を行い、電流指令値に補償等を施した電圧制御指令値Ｖｒｅｆによってモータ２０に供給する電流を制御する。なお、舵角センサ１４は必須のものではなく、配設されていなくても良く、モータに連結されたレゾルバ等の回転位置センサから操舵角を取得することも可能である。
【００２５】
また、上記コントロールユニット（ＥＣＵ）３０には、車両の各種情報を授受するＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）５０が接続されており、車速ＶｅｌはＣＡＮ５０から受信することも可能である。また、コントロールユニット（ＥＣＵ）３０には、ＣＡＮ５０以外の通信、アナログ／ディジタル信号、電波等を授受する非ＣＡＮ５１も接続されている。
【００２６】
上記のようなコントロールユニット（ＥＣＵ）３０は、概ね、図２に示すような基本構成をしており、中央演算処理装置（ＣＰＵ）を備えた上記マイクロコントロールユニット（ＭＣＵ）３１のほか、モータ駆動回路３５、モータ電流検出回路３７、舵角検出回路３９、電源のリレー３３などを備えている。
【００２７】
本発明では、上記マイクロコントロールユニット（ＭＣＵ）３１として、例えば、組み込み用マイコンを用いるようにしており、図３は、上記ＭＣＵ３１の概略の構成を示したものであり、ＭＣＵ３１の内部には、ＣＰＵ１１０と、汎用タイマ（タイマ）１２０と、ＲＯＭ（ＥＥＰＲＯＭなどを含む）１３０と、ＲＡＭ１４０と、Ａ／Ｄコンバータ（ＡＤＣ）１５０と、汎用Ｉ／Ｏ（ＧＰＩＯ）１６０と、ペリフェラル１７０を備えており、これらがデータバス、アドレスバスや制御バスによりバス接続されている。
【００２８】
本発明では、上記ＲＯＭ１３０には複数のプロセスからなる電動パワーステアリングの制御プログラム（後述する制御プログラムを細分化して得られた各通常処理、及び各通常処理と対になる各代替処理も含む）や、制御データなどが格納されており、また、上記ＣＰＵ１１０は、上記各通常処理、及び各代替処理（代替処理が必要となった際に）を、実行順序に基づき、周期的に実行することにより、電動パワーステアリングの制御を行い、上記ＲＡＭ１４０は、上記ＣＰＵ１１０の作動に際し、ワークメモリとしても機能する。
【００２９】
本発明で言う「複数のプロセス」とは、電動パワーステアリング装置の制御プログラムを構成する複数の制御手順を言い、例えば、操舵トルクＴと車速Ｖに基づいて操舵補助トルク指令値を算出するトルク制御プロセスや、操舵補助トルク指令値に基づいて操舵補助モータ２０を駆動する電流制御プロセスなどが含まれている。また、本発明では、制御プログラムは、周期的に実行されている。
【００３０】
本発明では、実行順序毎に、電動パワーステアリングの制御プログラムを複数の通常処理（例えば、図４に示されている処理１〜処理Ｎ）に細分化するようにしており、細分化された複数の通常処理（例えば、図４に示されている処理１〜処理Ｎ）を周期的に行うようにしている。細分化されて得られた各通常処理（以下、単に、「各処理」とも言う。）について、それぞれ実行時間監視のための実行時間閾値（例えば、図４に示されている処理１〜処理Ｎに対応する通常処理の実行時間閾値）を設ける（設定する）ようにしている。
【００３１】
また、本発明では、各処理について、それぞれ代替処理（例えば、図４に示されている処理１代替〜処理Ｎ代替）を設ける（設定する）と共に、各代替処理についても、それぞれ実行時間監視のための実行時間閾値（例えば、図４に示されている処理１代替〜処理Ｎ代替に対応する代替処理の実行時間閾値）を設ける（設定する）ようにしている。
【００３２】
更に、本発明では、電動パワーステアリングの制御プログラムを細分化して得られた各処理、及び、各処理と対になる各代替処理を、電動パワーステアリングの制御プログラムを格納している上記ＭＣＵ３１の上記ＲＯＭ１３０に格納するようにしている。
【００３３】
なお、図４の設定例では、各通常処理（処理１〜処理Ｎ）は、電動パワーステアリングの制御プログラムを実行順序毎に細分化して得られたものであるが、本発明では、制御プログラムを細分化する方法はそれに限定されることが無く、他の細分化方法を用いることが可能で、例えば、電動パワーステアリングの制御に係る関数テーブルに基づいて電動パワーステアリングの制御プログラムを細分化するようにしても良い。
【００３４】
本発明では、上記ＣＰＵ１１０と汎用タイマ（タイマ）１２０を用いて、細分化されて得られた各通常処理の実行時間と実行順序を監視するようにしている。本発明では、制御プログラムを細分化して得られた複数の通常処理（処理１〜処理Ｎ）を、処理の実行時間と実行順序を監視しながら、周期的に実行するようにしている。各通常処理に対し、図４に示されたように、当該通常処理の実行時間の異常が検出された場合（通常処理の実行時間異常時）に、当該通常処理の代わりとして、次周期において実行される代替処理が設けられている。
【００３５】
上記ＲＯＭ１３０又はＲＡＭ１４０には、例えば、図４に示すように、電動パワーステアリング装置の制御プログラムを細分化して得られた各処理（処理１〜処理Ｎ）、各処理の実行順序（１〜Ｎ）、各処理の実行時間閾値、各処理に対応する各代替処理（処理１代替〜処理Ｎ代替）、及び各代替処理の実行時間閾値といった設定条件が格納されている。また、図示していないが、上記ＲＯＭ１３０又はＲＡＭ１４０には、通常処理の処理アドレスとして各処理の先頭アドレス（処理１の先頭アドレス〜処理Ｎ先頭アドレス）が格納されていると共に、代替処理の処理アドレスとして各代替処理の先頭アドレス（処理１代替の先頭アドレス〜処理Ｎ代替の先頭アドレス）も格納されている。
【００３６】
なお、図４では、各処理に代わって各代替処理を行う場合の代替処理の実行時間閾値を、通常時に行う各処理の通常処理の実行時間閾値の半分に設定するようにしているが、図４に示されている通常処理の実行時間閾値の設定値と代替処理の実行時間閾値の設定値は、本発明において、各通常処理の実行時間閾値と各代替処理の実行時間閾値の一例を示すものであって、本発明における各通常処理の実行時間閾値と各代替処理の実行時間閾値は、これらの設定値に限定されるものではない。本発明では、通常処理と代替処理の処理内容に基づき、代替処理の実行時間閾値を対応する通常処理の実行時間閾値より小さくなるように適宜設定すれば良い。
【００３７】
図５は、本発明において、通常処理としての処理２の実行時間の異常がない場合（実行時間正常時）の通常処理の実行順序と、通常処理としての処理２の実行時間の異常が検出された場合（実行時間異常時）の次の周期における通常処理の実行順序を説明するための図である。図６は、本発明において、通常処理の実行時間正常時の制御プログラムの流れ図である。図７は、本発明において、通常処理の実行時間異常時の制御プログラムの次周期における流れ図である。また、図８は、本発明において、通常処理の実行時間正常時の周期処理を説明するための図である。図９は、本発明において、通常処理の実行時間異常時の周期処理を説明するための図である。
【００３８】
電動パワーステアリングの制御を行うために、本発明では、上記ＣＰＵ１１０が制御プログラムが細分化されて得られた複数の通常処理（例えば、図４の処理１〜処理Ｎ）を周期的に実行するようにしている。図５〜図９を参照しながら、上記ＣＰＵ１１０にて行われる処理の流れについて説明する。
【００３９】
全ての通常処理（例えば、図４の処理１〜処理Ｎ）の実行時間正常時の制御プログラムの流れは図６のようになる。図６に示されたように、上記ＣＰＵ１１０は、図５に示される実行時間正常時の実行順序に基づき、処理１、処理２、…、処理Ｎを順次に実行してから（ステップＳ１１０、ステップＳ１２０、…、ステップＳ１９０）、制御プログラムが終了するか否かを判断し（ステップＳ２００）、制御プログラムが終了しない場合に、ステップＳ１１０に戻り、実行時間正常時の実行順序に基づいて周期処理を続けるようにし、一方、制御プログラムが終了した場合に、処理は終了する。
【００４０】
一方、本発明では、例えば、何らかが原因で、実行順序に基づいて、行われている通常処理の実行時間（通常処理の処理時間）が当該通常処理の実行時間閾値を超えた場合に、その通常処理自体を異常と見なし、今周期において、タイマ割り込み処理により、その通常処理を中断し、割り込みを抜けたら、実行順序に基づいて次の通常処理を行うようにし、次周期において、当該通常処理の実行順序で、当該通常処理の代わりとして、当該通常処理に対応する代替処理を実行するようにしている。ちなみに、本発明で言う「タイマ割り込み処理」は、ＭＣＵ３１によるソフトウェア処理である。例えば、処理２の実行時間の異常が検出された場合（処理２実行時間異常時）、次周期において、制御プログラムの流れは図７のようになる。図７に示されたように、上記ＣＰＵ１１０は、図５に示される実行時間異常時（処理２の実行時間異常時）の次周期における実行順序に基づき、処理１、処理２代替、…、処理Ｎを順次に実行してから（ステップＳ１１０、ステップＳ１２５、…、ステップＳ１９０）、制御プログラムが終了するか否かを判断し（ステップＳ２００）、制御プログラムが終了しない場合に、ステップＳ１１０に戻り、実行時間正常時の実行順序に基づいて周期処理を続けるようにし、一方、制御プログラムが終了した場合に、処理は終了する。
【００４１】
ここで、本発明において、ＭＣＵ３１に内蔵されている汎用タイマ１２０（以下、単に「タイマ」と言う。）を用いた通常処理の実行時間の計測方法について説明する。図８に示されたように、本発明では、各通常処理の先頭（最初）でタイマをスタートし、各通常処理の最後でタイマをストップするようにしている。各通常処理の最後でタイマをストップする際に、タイマカウント値もクリアするようにする。本発明では、このタイマのスタート処理とストップ処理は、ＭＣＵ３１によるソフトウェア処理（ＣＰＵ１１０によるソフトウェア処理）である。
【００４２】
ここで、周期処理における、ある通常処理である処理Ｍ（処理Ｍは、処理１〜処理Ｎの何れかの処理である）の実行時間の計測方法について説明する。処理Ｍの最初にタイマをスタートし、そして、タイマカウント値が処理Ｍの最初にタイマに設定した処理Ｍの実行時間閾値に達した場合に、本発明では処理Ｍの実行時間異常が発生したと判断されるため、「コンペア一致割り込み」が発生し、今周期において、異常処理（タイマ割り込み処理、処理Ｍの中断処理など）が行われ、また、次周期において、処理Ｍに対応する代替処理（処理Ｍ代替）が行われる。なお、本発明で言う「タイマカウント値」は、マイクロコントロールユニット（ＭＣＵ）３１のタイマカウント値に基づいて求められた「通常処理の実行時間」を意味しているので、以下では、「タイマカウント値」と「通常処理の実行時間」は同じ意味で使用する。
【００４３】
図８には、本発明において、通常処理の実行時間正常時のソフトウェアによる周期処理を模式的に示している。ここで、処理１〜処理Ｎは一つの周期処理を構成する。各通常処理（処理１〜処理Ｎ）について、例えば、図４に示されたように、それぞれ通常処理の実行時間閾値が設定されている。図８に示されたように、今周期の周期処理において、全ての通常処理（処理１〜処理Ｎ）の終了時において、タイマカウント値がこれらの通常処理に対応する通常処理の実行時間閾値を超えていないので、全ての通常処理（処理１〜処理Ｎ）の実行時間は正常とみなされる。換言すれば、図８では、今周期において、各通常処理は、それぞれタイマカウント値がこれらの通常処理に対応する通常処理の実行時間閾値に達する前に、既に終了したため、今周期の通常処理の実行時間が全て正常で、今周期における通常処理の実行状態が全て正常と判断される。
【００４４】
図９には、本発明において、通常処理の実行時間異常時（処理２の実行時間異常時）のソフトウェアによる周期処理を模式的に示している。ここでも、処理１〜処理Ｎは一つの周期処理を構成する。各通常処理（処理１〜処理Ｎ）についても、例えば、図４に示されたように、それぞれ通常処理の実行時間閾値が設定されている。図９に示されたように、今周期の周期処理において、処理１の終了時において、タイマカウント値が処理１の実行時間閾値を超えていないので、処理１の実行時間は正常とみなされているため、図４に示された実行順序に基づき、ＣＰＵ１１０がタイマのスタート処理を行うと共に、処理２を実行し、タイマカウント値（処理２の実行時間）が処理２の最初にタイマに設定した処理２の実行時間閾値に達した時点に、処理２がまだ終了していないため、処理２の実行時間異常が発生したと判断され、汎用タイマ１２０がＣＰＵ１１０に割り込みを通知し、タイマ割り込み処理が行われ、タイマ割り込み処理の中で、適切な処理（例えば、処理２の中断処理）を行った後、割り込みを抜けたら、図４に示された実行順序に基づき、ＣＰＵ１１０がタイマのスタート処理を行うと共に、処理２の次の通常処理（即ち、処理３）を実行する。本発明では、タイマ割り込み処理は、ＭＣＵ３１によるソフトウェア処理（ＣＰＵ１１０によるソフトウェア処理）である。ここで、今周期において、実行時間異常が発生したと判断された処理２は、次周期において、処理２に対応する代替処理（処理２代替）で置き換える。ちなみに、図９では、今周期において、処理３〜処理Ｎの実行時間が全て正常である。
【００４５】
図１０は本発明において、周期処理における、ある通常処理である処理Ｍ（処理Ｍは、処理１〜処理Ｎの何れかの処理である）の実行時間に異常が生じない場合（実行時間正常時）の当該通常処理（処理Ｍ）の処理の流れを示す図である。
【００４６】
図１０に示されたように、処理Ｍの処理アドレス（処理Ｍの先頭アドレス）がＣＰＵ１１０に読み込まれると、同時に処理Ｍの実行を表す実行中フラグがＯＮにされ（ステップＳ１０）、ＣＰＵ１１０が処理Ｍの実行順序が正しいか否かを判断し（ステップＳ１１）、処理Ｍの実行順序が正しいと判断された場合に、タイマ割り込み時間が設定される（ステップＳ１２）。一方、処理Ｍの実行順序が正しくないと判断された場合に、異常終了となる（ステップＳ１９）。
【００４７】
ここで、上記タイマ割り込み時間は、各通常処理毎に、処理を行うのに必要な実行時間が異なるため、図５に示されたように、各通常処理毎に、それぞれ異なる通常処理の実行時間閾値が予め設定されていることから、実行中フラグがＯＮにされた処理Ｍに対応する通常処理の実行時間閾値（以下、単に、「処理Ｍの実行時間閾値」とも言う。）に基づいて決定される。
【００４８】
そのため、ＣＰＵ１１０では、処理Ｍの実行時間閾値をＲＯＭ１３０又はＲＡＭ１４０から読み取って、読み取った処理Ｍの実行時間閾値に基づいて上記タイマ割り込み時間を設定し、続いて、処理Ｍの実行時間閾値を超えると割り込みが入るように、タイマ割り込みを有効としておく（ステップＳ１３）。
【００４９】
次に、ＣＰＵ１１０が処理Ｍの処理を開始すると共に、タイマのスタート処理を行うことにより（ステップＳ１４）、汎用タイマによる処理Ｍの実行時間のカウントを開始する。
【００５０】
上記汎用タイマによる処理Ｍの実行時間のカウントが行われる間に、ＣＰＵ１１０では処理Ｍのメイン処理（ステップＳ１５）が行われるが、ＣＰＵ１１０で行われている処理Ｍのメイン処理が、処理Ｍの実行時間閾値に基づいて設定されたタイマ割り込み時間内に終了すれば、処理Ｍの実行時間が正常と判断され、ＣＰＵ１１０がカウント中のタイマのストップ処理を行い（ステップＳ１６）、タイマ割り込みを無効とした上で（ステップＳ１７）、処理Ｍの実行中フラグをＯＦＦとし（ステップＳ１８）、処理Ｍを終了し、図４に示された実行順序に基づき、ＣＰＵ１１０が処理Ｍの次の通常処理（即ち、処理Ｍ＋１）を実行すると共に、タイマのスタート処理を行う。
【００５１】
次に、図１１を用いて、図１０に示されたような各通常処理の一つ（処理Ｍ）について、当該処理（処理Ｍ）の実行時間が処理Ｍの実行時間閾値を超過した場合、即ち、当該処理（処理Ｍ）の実行時間に異常が生じた場合（実行時間異常時）のタイマ割り込み処理の流れを説明する。
【００５２】
図１０の場合に、ＣＰＵ１１０で行われている処理Ｍのメイン処理が、上記タイマ割り込み時間内に終了していない場合は、上記タイマのストップ処理（ステップＳ１６）が行われないため、タイムアウトとなり、図１１に示されたような、通常処理の実行時間異常時に行われる、タイマ割り込み処理が行われる。
【００５３】
図１１に示されたように、タイマ割り込み処理では、最初に、ＣＰＵ１１０がカウント中のタイマのストップ処理を行い（ステップＳ２０）、次に、実行中の処理の検索処理を行う（ステップＳ２１）。
【００５４】
実行中の処理の検索処理とは、割り込みを行った実行中の処理（即ち、実行時間異常と判断された処理）が、例えば、図４に示された実行順序が何番目の処理であるかをＲＯＭ１３０又はＲＡＭ１４０から読み出すと共に、併せて、当該処理（実行中の処理）が代替処理でないか否かの判断のための情報を取得するものである。
【００５５】
次に、ＣＰＵ１１０が上記読み取った情報に基づいて、割り込みを行った実行中の処理が代替処理でないか否かの判定を行う（ステップＳ２２）。ステップＳ２２にて行われる判定は、上記実行中の処理が代替処理の場合に、更に同じ代替処理を行うことによって、処理が無限ループに陥る可能性を排除するためである。そのため、ステップＳ２２にて行われる判定により、実行中の処理が代替処理であると判定された場合には、異常終了としてタイマ割り込み処理を終了する（ステップＳ２８）。
【００５６】
一方、実行中の処理が代替処理でないと判定された場合には、次のステップＳ２３へ移行する。ステップ２３で行われる処理は、実行中の処理（実行時間異常と判断された処理）を次周期において、実行中の処理（実行時間異常と判断された処理）に対応する代替処理で置き換えるよう、ＣＰＵ１１０の命令コードや関数実行テーブルなどの内容を組み替える処理である。ステップ２３では、同時に、後の参照のために、実行中であった処理の次の通常処理の処理アドレス（先頭アドレス）や、代替処理の処理アドレス（先頭アドレス）などの情報がＲＡＭ１４０に格納される。
【００５７】
次に、処理Ｍの演算値のチェック処理が行われる（ステップＳ２４）。これは、処理Ｍの演算値が異常かどうかの判断を行うものであり（ステップＳ２５）、その判断は、処理Ｍの演算値が、予め設定された所定の閾値内にあるか否かなどにより行われる。そして、処理Ｍの演算値に異常が有ると判断される場合には、処理Ｍの演算値をデフォルト値で置き換え（ステップＳ２６）、また、処理Ｍの演算値に異常がないと判断される場合には、ステップＳ２７へ移行する。
【００５８】
次に、ステップＳ２７では、ＣＰＵ１１０のプログラムカウンタを処理Ｍ+１の先頭に設定し、タイマ割り込み処理を終了させる。
【００５９】
次に、図１２及び図１３を参照しながら、本発明において、処理Ｍの実行時間の計測方法の２つの応用例について説明する。図８及び図９に模式的に示された周期処理では、ある通常処理（処理Ｍ）中に、割り込み処理（ここで言う割り込み処理は、本発明の通常処理の異常時間監視のための「コンペア一致割り込み」ではなく、電動パワーステアリング装置の制御や、センサの値の取り込みなどを行う正常処理としての割り込み処理である）が行われることを考慮していない。通常の組込み用ＭＣＵによるソフトウェア処理では、割り込み処理が当たり前に使用されるので、割り込み処理が行われても処理Ｍの実行時間が正しく計測できる方法を図１２及び図１３に模式的に示す。図１２は、通常処理である処理３実行中に割り込み処理が行われた場合の例であり、図１３は、通常処理である処理３実行中に多重割り込み処理が行われた場合の例である。
【００６０】
ちなみに、本発明で言う、通常処理の異常時間監視のための「コンペア一致割り込み」は、図９に示された実行時間異常時のタイマ割り込み処理による割り込みである。
【００６１】
図１２は、応用例１を示しており、通常処理の実行時間正常時の周期処理（処理３実行中に割り込み処理が行われる場合）を模式的に示す。
【００６２】
図１２に示されたように、割り込み処理の先頭で一旦タイマをストップする。そして、割り込みを抜けるときに、再度タイマをスタートさせる。多くの組込み用ＭＣＵにおけるタイマはストップと同時にタイマカウント値がゼロクリアされるので、再スタートの時には、ストップさせる直前のタイマカウント値を保存しておき、保存しておいたタイマカウント値からタイマ計測を開始するようにする。このようにすることで、割り込みの時間を除いた処理３自身の実行時間（処理時間）を正しく計測することが可能となる。
【００６３】
なお、殆どの組込み用ＭＣＵに内蔵されているタイマには、タイマカウント値の初期値（どこからカウントを始めるか）をプリセットできる仕組み（タイマカウント値の初期値プリセット機能）があるので、本発明では、この仕組みを利用して、割り込みを抜けてから、再度タイマをスタートさせる際に、タイマカウント値の初期値を保存しておいたタイマカウント値に設定することができる。また、ＭＣＵ３１に内蔵されているタイマに、タイマカウント値の初期値プリセット機能がない場合に、割り込みに入るときに、タイマカウント値を保存して、割り込みを終了する直前に、タイマカウントの閾値（タイマに設定した通常処理の実行時間閾値）から保存しておいたタイマカウント値を差し引いて、新しいタイマカウントの閾値とし、処理３の残りの処理の実行時間猶予としても良い。
【００６４】
図１２に示された応用例１では、割り込みについて考慮したが、多重割り込みについて考慮していなかった。図１３は、応用例２を示しており、通常処理の実行時間正常時の周期処理（処理３実行中に多重割り込み処理が行われる場合）を模式的に示す。
【００６５】
図１３に示されたように、多重割り込み処理（即ち、割り込み処理２）が行われる場合にタイマのストップ、スタートを行わないようにする。図１３では、割り込み処理実行中（即ち、割り込み処理１実行中）に、多重割り込み処理（即ち、割り込み処理２）が割り込んで、実行してから、終了し、割り込み処理１に戻り、残りの割り込み処理１を実行するという流れとなっている。多重割り込み処理中か否かは、フラグ変数や、マイコン、ＣＰＵのレジスタ値を読み取ることで判定するようにする。図１３に示されたように、通常処理（処理３）から割り込み処理（即ち、割り込み処理１）に遷移した時に、タイマをストップし、割り込み処理（即ち、割り込み処理１）から通常処理（処理３）に移行する直前にタイマを再スタートする。
【００６６】
図１４には、図１２の応用例１、図１３の応用例２に対応した、処理３中に行われる割り込み処理（通常の割り込み処理）の流れを示す。
【００６７】
図１４に示されたように、通常の割り込み処理が入ると、割り込みを禁止し（ステップＳ３０）、タイマストップフラグがＯＦＦにされたか否かを判定し（ステップＳ３１）、タイマストップフラグがＯＦＦにされた場合に、タイマカウント値を保存し（ステップＳ３２）、タイマをストップし（ステップＳ３３）、タイマストップフラグをＯＮにし（ステップＳ３４）、割り込みを許可し（ステップＳ３５）、割り込みメイン処理を行い（ステップＳ３６）、次に、割り込みを禁止し（ステップＳ３６）、割り込み終了後のリターンアドレスは周期処理（通常処理）であるか否かを判定し（ステップＳ３７）、割り込み終了後のリターンアドレスは周期処理（通常処理）であると判定された場合に、保存しておいたタイマカウント値をタイマにプリセットし（ステップＳ３８）、タイマをスタートし（ステップＳ３９）、タイマストップフラグをＯＦＦにし（ステップＳ４０）、割り込みを許可し（ステップＳ４１）、通常の割り込み処理が終了する。
【００６８】
一方、ステップＳ３１において、タイマストップフラグがＯＦＦにされていない場合（即ち、タイマストップフラグがＯＮにされた場合）に、ステップＳ３５に移行する。また、ステップＳ３７において、割り込み終了後のリターンアドレスは周期処理（通常処理）でないと判定された場合に、ステップＳ４１に移行する。
【００６９】
上述したように、本発明では、電動パワーステアリング装置の制御プログラムを細分化して得られた通常処理（例えば、処理Ｍ）の実行時間の監視をＭＣＵ３１に内蔵されている汎用タイマとソフトウェアによるタイマ割り込み処理を用いて行うことで、当該処理Ｍの実行時間が処理Ｍの実行時間閾値を超過した場合（即ち、処理Ｍの実行時間の異常が検出されたことから、処理Ｍの実行状態に異常が生じたと判断された場合）には、電動パワーステアリング装置の制御を停止することなく、実行状態異常有りの処理Ｍの代わりに、予め用意しておいた、処理Ｍに対応する代替処理（処理Ｍ代替）を次周期において行うことにより、処理負荷が増大したり、無限ループに陥ったため、処理自体が終了しない場合に生じる通常処理の実行時間の異常が有っても、電動パワーステアリング装置の制御（電動パワーステアリング装置による操舵補助）を継続できるようにしている。
【００７０】
また、上述したように、本発明では、電動パワーステアリング装置の制御プログラムを細分化して得られた通常処理の実行時間の監視をＭＣＵ３１に内蔵されている汎用タイマとソフトウェアによるタイマ割り込み処理を用いて行い、そのタイマ割り込み時間を当該通常処理の実行時間閾値に基づいて設定するようにしているため、本発明によれば、無限ループなどで通常処理自体が終了しない場合であっても、通常処理の実行時間（実行状態）の異常検出を即座に行うことができる。
【００７１】
このように、本発明の車載用電子機器の制御装置及び制御方法によれば、例えば、電動パワーステアリング装置のような車載用電子機器の制御プログラムの実行状態（実行時間）を従来のウォッチドッグタイマを用いた異常監視より細かい時間単位（即ち、車載用電子機器の制御プログラムを細分化して得られた通常処理の実行時間閾値単位）で監視し、制御プログラムを細分化して得られた通常処理の実行状態（実行時間）に異常が検出された場合には、当該通常処理に対応する代替処理を次周期において行うことにより、車載用電子機器の制御を停止することなく、車載用電子機器の制御を継続できるようにしている。
【００７２】
そのため、本発明の車載用電子機器の制御装置及び制御方法を、例えば、電動パワーステアリング装置の制御に用いた場合には、電動パワーステアリング装置の制御装置に異常が生じたと判断された場合であっても、電動パワーステアリング装置による操舵アシストを継続して行うことが可能になり、運転者に過大な負荷を与えることもなく、快適な操舵性能を実現できる。
【符号の説明】
【００７３】
１          ハンドル
２          コラム軸（ステアリングシャフト、ハンドル軸）
３          減速ギア
４ａ  ４ｂ  ユニバーサルジョイント
５          ピニオンラック機構
６ａ  ６ｂ  タイロッド
７ａ  ７ｂ  ハブユニット
８Ｌ  ８Ｒ  操向車輪
１０        トルクセンサ
１１        イグニションキー
１２        車速センサ
１３        バッテリ
１４        舵角センサ
２０        モータ
３０        コントロールユニット（ＥＣＵ）
３１        マイクロコントロールユニット（ＭＣＵ）
３３        リレー
３５        モータ駆動回路
３７        モータ電流検出回路
３９        舵角検出回路
１１０      ＣＰＵ
１２０      タイマ（汎用タイマ）
１３０      ＲＯＭ
１４０      ＲＡＭ
１５０      ＡＤＣ
１６０      ＧＰＩＯ
１７０      ペリフェラル
【図１】
0006020765.tif 000002
【図２】
0006020765.tif 000003
【図３】
0006020765.tif 000004
【図４】
0006020765.tif 000005
【図５】
0006020765.tif 000006
【図６】
0006020765.tif 000007
【図７】
0006020765.tif 000008
【図８】
0006020765.tif 000009
【図９】
0006020765.tif 000010
【図１０】
0006020765.tif 000011
【図１１】
0006020765.tif 000012
【図１２】
0006020765.tif 000013
【図１３】
0006020765.tif 000014
【図１４】
0006020765.tif 000015