(57)【要約】【課題】記憶装置の記憶内容のチェックに要する時間の短縮およびＣＰＵへの負荷の軽減をすることができ、かつ記憶装置の異常による影響を最小限にすることのできるコントロールユニットを提供する。【解決手段】演算処理を行うＣＰＵ１０と、ＣＰＵ１０が実行するプログラムが記憶されるＲＯＭ１１と、ＣＰＵ１０の処理が記憶されるＲＡＭ１２とを備え、ＣＰＵ１０は、プログラムの内容に基づいて所定の制御を行うコントロールユニット１Ａであって、ＲＯＭ１１およびＲＡＭ１２はそれぞれ複数の領域に分割され、プログラムは、ＲＯＭ１１およびＲＡＭ１２の記憶内容のチェックを行うチェックプログラムを含み、ＣＰＵ１０は、チェックプログラムを用い、領域ごとにチェックを行うものである。【選択図】図５
2006268266.tif 000002
【特許請求の範囲】
【請求項１】
演算処理を行うＣＰＵと、
前記ＣＰＵが実行するプログラムが記憶されるとともに、前記ＣＰＵの処理が記憶される記憶装置と
を備え、前記ＣＰＵは、前記プログラムの内容に基づいて所定の制御を行うコントロールユニットであって、
前記記憶装置は複数の領域に分割され、
前記プログラムは、前記記憶装置の記憶内容のチェックを行うチェックプログラムを含み、
前記ＣＰＵは、前記チェックプログラムを用い、前記領域ごとに前記チェックを行うこと
を特徴とするコントロールユニット。
【請求項２】
前記所定の制御は、車両の制御を含むことを特徴とする請求項１に記載のコントロールユニット。
【請求項３】
前記記憶装置は、前記所定の制御の重要度に応じて、前記複数の領域に分割されていることを特徴とする請求項１または請求項２に記載のコントロールユニット。
【請求項４】
前記記憶装置は、前記所定の制御の重要度に応じて、前記複数の領域が１つの領域にまとめられていることを特徴とする請求項１から請求項３までの何れか１項に記載のコントロールユニット。
【請求項５】
前記ＣＰＵは、前記所定の制御の重要度に応じて前記チェックに要する時間を設定することを特徴とする請求項１から請求項４までの何れか１項に記載のコントロールユニット。
【請求項６】
前記記憶装置は、前記制御の重要度の高い第１領域と、前記制御の重要度の低い第２領域とを含み、
前記ＣＰＵは、前記第１領域の前記チェックに要する時間よりも、前記第２領域の前記チェックに要する時間を長く設定することを特徴とする請求項５に記載のコントロールユニット。
【請求項７】
前記ＣＰＵは、前記所定の制御の重要度に応じて前記チェックの結果が異常であった場合の処理を変更することを特徴とする請求項１から請求項６までの何れか１項に記載のコントロールユニット。
【請求項８】
前記ＣＰＵは、前記記憶装置の未使用領域に対する前記チェックを行わないことを特徴とする請求項１から請求項７までの何れか１項に記載のコントロールユニット。
【請求項９】
前記ＣＰＵは、起動直後に前記記憶装置全体の前記チェックを行うことを特徴とする請求項１から請求項８までの何れか１項に記載のコントロールユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の領域に分割された記憶装置の記憶内容のチェックを行うコントロールユニットに関する。
【背景技術】
【０００２】
従来の電子制御ユニットにおける記憶回路のチェック方法は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）がＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）内に予め格納された種々のデータおよびソフトウェアプログラムに基づいて、例えば車両の駆動系に関するメイン処理を実行する電子制御ユニットにおいて、ＲＯＭの動作チェックを実行する電子制御ユニットにおけるＲＯＭのチェック方法である。このチェック方法は、プログラムの演算を開始するためのイニシャル処理を各種初期設定およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のチェックのみとし、イニシャル処理の後において、メイン処理が時間待ち状態となっているか否かを検出する第１工程と、第１工程において、メイン処理が時間待ち状態となっていない旨が検出された場合に、メイン処理を実行する第２工程と、第１工程においてメイン処理が時間待ち状態となっている旨が検出された場合に限り、メイン処理の待ち時間内においてＲＯＭのチェックを実行する第３工程とを備えている（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開２００１−１４２７９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の電子制御ユニットにおける記憶回路のチェック方法では、イニシャル処理においてＲＯＭチェックを行わないため、ＲＯＭの記憶領域のうち、車両の駆動系を制御するプログラムが書き込まれた部分が故障している場合、メイン処理の待ち時間にＲＯＭの異常が検出されるまで、駆動系の異常な制御が継続するという問題点があった。
【０００５】
また、一度ＲＯＭチェックが完了した後は、次に電源投入またはリセット解除が行われるまで再度ＲＯＭチェックがされないので、ＲＯＭチェックの完了後にＲＯＭの故障が発生した場合は、異常を検出することができないという問題点もあった。
【０００６】
この発明は、上記のような問題点を解決することを課題とするものであって、その目的は、記憶装置の記憶内容のチェックに要する時間の短縮およびＣＰＵへの負荷の軽減をすることができ、かつ記憶装置の異常による影響を最小限にすることのできるコントロールユニットを提供することである。
【課題を解決するための手段】
【０００７】
この発明に係るコントロールユニットは、演算処理を行うＣＰＵと、ＣＰＵが実行するプログラムが記憶されるとともに、ＣＰＵの処理が記憶される記憶装置とを備え、ＣＰＵは、プログラムの内容に基づいて所定の制御を行うコントロールユニットであって、記憶装置は複数の領域に分割され、プログラムは、記憶装置の記憶内容のチェックを行うチェックプログラムを含み、ＣＰＵは、チェックプログラムを用い、領域ごとにチェックを行うものである。
【発明の効果】
【０００８】
この発明のコントロールユニットによれば、記憶装置が複数の領域に分割され、ＣＰＵが、チェックプログラムを用いて領域ごとに記憶内容のチェックを行うので、記憶装置のチェックに要する時間およびＣＰＵへの負荷を軽減し、かつ記憶装置の異常による影響を最小限にすることができる。
【発明を実施するための最良の形態】
【０００９】
以下、この発明の各実施の形態について図に基づいて説明するが、各図において同一、または相当する部材、部位については、同一符号を付して説明する。
【００１０】
実施の形態１．
図１は、この発明の実施の形態１に係るコントロールユニット１を周辺機器とともに示すブロック図である。なお、図１のコントロールユニット１は、例えば車両の駆動系を制御する電動パワーステアリング装置またはヘッドライト装置等に用いられる車両用コントロールユニットであるものとする。
【００１１】
図１において、コントロールユニット１には、始動スイッチであるイグニッションスイッチ２を介してバッテリ３から電源が供給される。
また、コントロールユニット１には、車両の走行状況を検出するセンサ４と、駆動装置であるアクチュエータ５とが接続されている。
【００１２】
コントロールユニット１は、センサ４から入力された走行状況を含む信号に基づいてアクチュエータ５の駆動量を演算し、駆動信号を出力するマイクロコンピュータ６と、センサ４からの入力を、マイクロコンピュータ６に入力できる信号に変換する入力インターフェース７と、マイクロコンピュータ６からの出力を、アクチュエータ５に出力できる信号に変換する出力インターフェース８と、バッテリ３から供給された電力を、マイクロコンピュータ６に供給する電源回路９とを有している。
【００１３】
マイクロコンピュータ６は、プログラムを実行して演算処理を行うＣＰＵ１０と、ＣＰＵ１０が実行するプログラムおよび制御用の固定値データが記憶された読み込み専用のＲＯＭ１１と、ＣＰＵ１０の処理が一時的に記憶される読み書き可能なＲＡＭ１２とを含んでいる。
【００１４】
図２は、図１に示したコントロールユニット１を電動パワーステアリング装置に適用した場合の構成図である。図３は、図２に示したコントロールユニット１Ａを周辺機器とともに示したブロック図である。ここでは、図１と同種のものについては、同一符号の後に「Ａ」を付して、詳述は省略する。
【００１５】
図２および図３において、コントロールユニット１Ａには、イグニッションスイッチ２を介してバッテリ３から電源が供給される。
また、コントロールユニット１Ａには、ハンドル１３の操舵トルクを検出するトルクセンサ１４と、車両の速度を検出する車速センサ１５と、操舵トルクを補助するモータ１６と、異常を運転者に報知するワーニングランプ２６とが接続されている。
モータ１６の出力軸は、ハンドル１３に接続されたステアリング軸２７に接続されている。
【００１６】
コントロールユニット１Ａは、トルクセンサ１４の出力と車速センサ１５の出力とに基づいて、モータ１６に供給する電流を演算するマイクロコンピュータ６Ａと、トルクセンサ１４の出力および車速センサ１５の出力を、マイクロコンピュータ６Ａに入力できる信号に変換するトルクセンサインタフェース１７および車速センサインタフェース１８と、マイクロコンピュータ６Ａからの出力から、モータ１６に供給される電力を生成するモータ駆動部１９と、バッテリ３から供給された電力を、マイクロコンピュータ６Ａに供給する電源回路９とを有している。
【００１７】
マイクロコンピュータ６Ａは、トルクセンサインタフェース１７からの信号を検出するトルク信号検出部２０と、車速センサインタフェース１８からの信号を検出する車速信号検出部２１と、操舵トルクおよび車速とモータ１６に供給する目標電流との関係が示されたテーブルマップ２２と、目標電流からＰＷＭ（Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ）信号を演算する電流制御演算部２３と、トルクセンサ１４、車速センサ１５、モータ１６等が正常に動作しているか否かを監視する監視部２４と、異常が発生した場合に、ワーニングランプ２６を介して運転者に警告を表示するとともに、電流制御演算部２３の動作を停止する異常動作処理部２５とを有している。
【００１８】
なお、トルク信号検出部２０、車速信号検出部２１、電流制御演算部２３、監視部２４、異常動作処理部２５は、図１内のＲＯＭ１１にプログラムとして記憶されており、また、ＲＯＭ１１およびＲＡＭ１２の記憶内容をチェックするチェックプログラムもＲＯＭ１１に記憶されている。図１内のＣＰＵ１０は、上記のプログラムを用いて各種制御を行う。
また、テーブルマップ２２は、ＲＯＭ１１内に固有値データとして記憶されており、ＣＰＵ１０は、操舵トルク、車速、およびテーブルマップ２２に基づいて、目標電流を算出する。
また、各々のプログラムに対応して、図１内のＲＡＭ１２の記憶領域が割り当てられている。
【００１９】
図４（ａ）および図４（ｂ）は、それぞれ図１に示したＲＯＭ１１およびＲＡＭ１２の内部構造を示す説明図である。ＲＯＭ１１およびＲＡＭ１２は、上記のプログラムに対応して複数の記憶領域に分割されている。これは、プログラムが記憶される順番等に応じて、制御の内容とは無関係に並べられている。
【００２０】
ここで、ＲＯＭ１１の一部に故障が発生した場合、故障箇所のプログラムの動作に異常が生じる。また、プログラムに対応して記憶領域が分割されたＲＡＭ１２の一部に故障が発生した場合も、記憶される内容に誤りが生じるため、プログラムの動作に異常が生じる。
【００２１】
例えば、テーブルマップ２２が記憶されたＲＯＭ１１の記憶領域が故障した場合、目標電流の算出結果に誤りが生じ、モータ１６に正確な補助力を発生させることができず、運転に大きな影響を与える。
一方、異常動作処理部２５のワーニングランプ２６を介して運転者に警告を表示するプログラムが記憶されたＲＯＭ１１の記憶領域が故障した場合、運転者に異常を報告することはできなくなるが、運転に与える影響は小さい。
また、ＲＯＭ１１およびＲＡＭ１２には、データの格納されない未使用領域（図示せず）が存在し、未使用領域が故障した場合には、影響は生じない。
【００２２】
そこで、ＲＯＭ１１およびＲＡＭ１２には、それぞれの記憶領域のうち、故障が発生した場合の運転への影響が大きい第１領域２８ａ、２８ｂと、故障が発生した場合の運転への影響が小さい第２領域２９ａ、２９ｂとが設定されている。なお、未使用領域は第２領域２９ａ、２９ｂに設定されている。
この第１領域２８ａ、２８ｂおよび第２領域２９ａ、２９ｂは、プログラムが記憶される際に、同時に設定される。
【００２３】
以下、図５のフローチャートを参照しながら、上記構成のコントロールユニット１Ａの動作について説明する。
なお、この動作は、イグニッションスイッチ２がオンして、マイクロコンピュータ６Ａに電源が供給された後に、ステップＳ３１から実行される。
【００２４】
まず、マイクロコンピュータ６Ａは、初期設定を行う（ステップＳ３１）。初期設定の内容は、プログラム動作クロックの決定、入力インターフェース７Ａおよび出力インターフェース８Ａへの信号の受け渡しの設定、ＲＡＭ１２とＲＯＭ１１とのアドレス配置に関する記憶回路の構成等である。
【００２５】
次に、マイクロコンピュータ６Ａは、ＲＡＭ１２の記憶領域全体について記憶内容のチェックを行う（ステップＳ３２）。チェックの詳細については、後述する。
ここで、ＲＡＭ１２の記憶領域全体について記憶内容のチェックを行うことにより、ＲＡＭ１２の異常を検出することができ、初期状態のＲＡＭ１２異常により、車両の制御処理中に異常が発生することを防止することができる。
【００２６】
続いて、マイクロコンピュータ６Ａは、ＲＡＭ１２の全領域が正常か否かを判定し（ステップＳ３３）、正常でない（すなわち、Ｎｏ）と判定された場合には、ステップＳ３１に戻り、再度初期設定を行う。
一方、ステップＳ３３において、正常である（すなわち、Ｙｅｓ）と判定された場合、マイクロコンピュータ６Ａは、ＲＯＭ１１の記憶領域全体について記憶内容のチェックを行う（ステップＳ３４）。チェックの詳細については、後述する。
【００２７】
ここで、ＲＯＭ１１の記憶領域全体について記憶内容のチェックを行うことにより、ＲＯＭ１１の異常を検出することができ、初期状態のＲＯＭ１１異常により、車両の制御処理中に異常が発生することを防止し、またチェックプログラム自身の異常により、正確にチェックが行われないことを防止することができる。
【００２８】
次に、マイクロコンピュータ６Ａは、ＲＯＭ１１の全領域が正常か否かを判定し（ステップＳ３５）、正常でない（すなわち、Ｎｏ）と判定された場合には、ステップＳ３１に戻り、再度初期設定を行う。
一方、ステップＳ３５において、正常である（すなわち、Ｙｅｓ）と判定された場合、マイクロコンピュータ６Ａは、ＲＡＭ１２の第１領域２８ｂについて記憶内容のチェックを行う（ステップＳ３６）。
【００２９】
ここで、チェック内容はステップＳ３２と同様であるが、この領域は、故障が起きた際に運転に与える影響が大きいため、一度にチェックするＲＡＭ１２のアドレス幅を広く（例えば、数十バイト程度に）設定する。そのことにより、ＣＰＵ１０の負荷は大きくなるが、第１領域２８ｂ全体のチェックに要する時間を短くすることができる。
【００３０】
一度にチェックするＲＡＭ１２のアドレス幅は、本フローチャートによってＲＡＭ１２の故障が検出されるまでの時間と、この検出されるまでの時間に生じる運転への影響とから決定される。
チェック時間を短く設定することにより、異常が発生した場合に素早く異常を検出して処理することができる。
【００３１】
続いて、マイクロコンピュータ６Ａは、ＲＯＭ１１の第１領域２８ａについて記憶内容のチェックを行う（ステップＳ３７）。
ここで、チェック内容はステップＳ３４と同様であるが、異常時の処理を早めるために、ＲＡＭ１２の第１領域２８ｂと同様に、第１領域２８ａ全体のチェックに要する時間を短く設定する。
【００３２】
次に、マイクロコンピュータ６Ａは、ＲＯＭ１１およびＲＡＭ１２の第１領域２８ａ、２８ｂが正常か否かを判定し（ステップＳ３８）、正常でない（すなわち、Ｎｏ）と判定された場合には、第１フェールセーフ処理を行い、ステップＳ３６に戻る（ステップＳ３９）。
第１フェールセーフ処理は、異常動作処理部２５によって実行されるものである。ＲＯＭ１１およびＲＡＭ１２の第１領域２８ａ、２８ｂの故障は、運転に大きな影響を与えるため、異常動作処理部２５は、制御の停止信号を出力する。
【００３３】
一方、ステップＳ３８において、正常である（すなわち、Ｙｅｓ）と判定された場合には、マイクロコンピュータ６Ａは、ＲＡＭ１２の第２領域２９ｂについて記憶内容のチェックを行う（ステップＳ４０）。
ここで、チェック内容はステップＳ３２と同様であるが、この領域は、故障が起きた際に運転に与える影響が小さいため、ＲＡＭ１２の第１領域２８ｂ全体のチェックに要する時間よりも故障の検出に長い時間を要しても、運転に与える影響は小さい。そこで、一度にチェックするＲＡＭ１２のアドレスを狭く（例えば、１バイトに）設定する。そのことにより、一度のチェックに要する時間を短縮することができ、ＲＡＭ１２の第２領域２９ｂのチェックにおいて、ＣＰＵ１０の負荷を小さくすることができる。
【００３４】
続いて、マイクロコンピュータ６Ａは、ＲＯＭ１１の第２領域２９ａについて記憶内容のチェックを行う（ステップＳ４１）。
ここで、チェック内容はステップＳ３４と同様であるが、ＣＰＵ１０の負荷を小さくするために、ＲＡＭ１２の第２領域２９ｂと同様に、第２領域２９ａ全体のチェックに要する時間を第１領域２８ａよりも長く設定する。
【００３５】
次に、マイクロコンピュータ６Ａは、ＲＡＭ１２の第２領域２９ｂおよびＲＯＭ１１の第２領域２９ａが正常か否かを判定し（ステップＳ４２）、正常でない（すなわち、Ｎｏ）と判定された場合には、第２フェールセーフ処理を行い、ステップＳ３６に戻る（ステップＳ４３）。
第２フェールセーフ処理は、異常動作処理部２５によって実行されるものである。ＲＯＭ１１およびＲＡＭ１２の第２領域２９ｂの故障は、運転に与える影響が小さいため、異常動作処理部２５は、制御そのものは継続させ、ワーニングランプ２６に警告信号を出力する。
【００３６】
続いて、マイクロコンピュータ６Ａは、パワーステアリング制御を実施する（ステップＳ４４）。
トルクセンサ１４の出力および車速センサ１５の出力は、トルクセンサインタフェース１７および車速センサインタフェース１８を介して、マイクロコンピュータ６Ａに入力される。マイクロコンピュータ６Ａは、操舵トルクおよび車速に基づいて、テーブルマップ２２から、モータ１６に与える目標電流を算出する。
【００３７】
目標電流は、電流制御演算部２３に出力され、電流制御演算部２３でＰＷＭ信号に変換されて、モータ駆動部１９に出力される。モータ駆動部１９は、ＰＷＭ信号に基づいてモータ１６に供給する電力を生成し、モータ１６には、電力が供給される。
モータ１６は、電力が供給されることによってトルクを発生する。発生したトルクは、ステアリング軸２７に伝達され、操舵トルクが補助される。
【００３８】
次に、監視部２４は、トルクセンサ１４、車速センサ１５、モータ１６等が正常に動作しているか否かを監視し、異常が発生した場合に通常フェール処理を行い、ステップＳ３６に戻る（ステップＳ４５）
通常フェール処理は、異常動作処理部２５によって実行されるものである。監視部２４がセンサ４Ａまたはアクチュエータ５Ａの故障を検出した場合に、異常動作処理部２５は、制御の停止信号あるいは警告信号を出力する。
【００３９】
続いて、図５のフローチャートのステップＳ３２、ステップＳ３６、およびステップＳ４０に示したＲＡＭ１２の記憶内容のチェックについて、図６のフローチャートを参照して説明する。なお、ここでは、ステップＳ３６に示したＲＡＭ１２の第１領域２８ｂについて記憶内容のチェックをするものとする。
【００４０】
まず、マイクロコンピュータ６Ａは、ステップＳ５１において、後述するステップＳ６０と協動して、以下に続くステップＳ５２からステップＳ５９までのチェックをＬｍ回繰り返すことを指示する。
ここで、チェックの繰り返し回数Ｌｍは、故障を検出できるまでの時間に直接影響するため、図５のステップＳ３６で示した一度にチェックするＲＡＭ１２のアドレスの範囲に対応して設定される。
【００４１】
ＲＡＭ１２の第１領域２８ｂにおいては、故障の発生時に運転に与える影響が大きいので、チェック回数Ｌｍは、大きく設定される。一方、ＲＡＭ１２の第２領域２９ｂにおいては、故障の発生時に運転に与える影響が小さいので、チェック回数Ｌｍは、小さく設定される。
このように、故障が発生した場合の運転に与える影響によってチェック回数を設定するので、ＣＰＵ１０の処理負荷を軽減することができる。
【００４２】
次に、マイクロコンピュータ６Ａは、アドレスＡＤＲＡＭｎで示されるＲＡＭアドレスに格納されている値ＲＡＭ［ＡＤＲＡＭｎ］をレジスタＡに転送する（ステップＳ５２）。
続いて、マイクロコンピュータ６Ａは、ＲＡＭ１２のアドレスＡＤＲＡＭｎに、例えば２進数のビット列０１０１１０１０で表される任意の所定値を格納する（ステップＳ５３）。
【００４３】
ここで、任意の所定値は、周期的に変更してもよいし、センサ４Ａから与えられた値等、あらゆる値を用いることができる。
【００４４】
次に、マイクロコンピュータ６Ａは、ＲＡＭ１２のアドレスＡＤＲＡＭｎに格納された値ＲＡＭ［ＡＤＲＡＭｎ］と、ステップＳ５３で格納した値とが一致しているか否かを判定し（ステップＳ５４）、一致していない（すなわち、Ｎｏ）と判定された場合には、ＲＡＭ１２の第１領域２８ｂのアドレスＡＤＲＡＭｎでエラーが発生したことを記憶し、ステップＳ６０に移行する（ステップＳ５５）。
【００４５】
一方、ステップＳ５４で、一致している（すなわち、Ｙｅｓ）と判定された場合には、マイクロコンピュータ６Ａは、レジスタＡに転送されたＲＡＭ１２のアドレスＡＤＲＡＭｎに最初に格納されていた値をＲＡＭ１２のアドレスＡＤＲＡＭｎに戻す（ステップＳ５６）。
【００４６】
続いて、マイクロコンピュータ６Ａは、ＲＡＭ１２のアドレスＡＤＲＡＭｎに１を足し、それをアドレスＡＤＲＡＭｎに置き換えることで、チェックするアドレスを移動する（ステップＳ５７）。
【００４７】
次に、マイクロコンピュータ６Ａは、ＲＡＭ１２のアドレスＡＤＲＡＭｎがＲＡＭ１２の第１領域２８ｂの最終アドレス以下であるか否かを判定し（ステップＳ５８）、最終アドレス以下である（すなわち、Ｙｅｓ）と判定された場合には、ステップＳ６０に移行する。
【００４８】
一方、ステップＳ５８で、最終アドレス以下でない（すなわち、Ｎｏ）と判定された場合には、ＲＡＭ１２のアドレスＡＤＲＡＭｎをＲＡＭ１２の第１領域２８ｂの先頭のアドレスに置き換え（ステップＳ５９）、ステップＳ６０に移行する。
【００４９】
続いて、ステップＳ６０において、Ｌｍ回のチェックが終わっていない場合には、ステップＳ５２に戻り、ＲＡＭ１２のチェックを継続する。
また、Ｌｍ回のチェックが終了した場合には、このループを抜けて図６の処理を終了し、図５に示したＲＡＭ１２のチェック後のフローチャートを継続する。
【００５０】
即ちステップＳ６０から、図５のフローチャートに戻り、ステップＳ３７〜ステップＳ４５の処理を実行し、再びステップＳ３６に戻った時点で図６の処理に移行し、前回の終了アドレスに続くＲＡＭアドレスから再びＲＡＭ１２の第１領域２８ｂの記憶内容チェックを実行する。
【００５１】
例えば、記憶内容のチェックを行うＲＡＭアドレスが１〜１００までの場合であって、チェック回数Ｌｍが５である場合、図６の１回目の処理でＲＡＭアドレス１〜５までの記憶内容チェックを行う。続いて、図５のフローチャートに戻り、ステップＳ３７〜ステップＳ４５の処理を実行し、再びステップＳ３６に戻った時点で図６の処理に移行する。次に、図６の２回目の処理でＲＡＭアドレス６〜１０までの記憶内容チェックを行う。
【００５２】
以降、図６の３回目の処理でＲＡＭアドレス１１〜１５までの記憶内容チェックを行い、図６の４回目の処理でＲＡＭアドレス１６〜２０までの記憶内容チェックを行う。
ここで、図５のステップＳ３６〜ステップＳ４５の処理を２０回繰り返した場合に、ステップＳ５７でＲＡＭアドレスが１０１になり、ＲＡＭ１２の最終アドレス１００を超えるため、ステップＳ５９でＲＡＭアドレスが先頭アドレスである１に戻り、再度ＲＡＭアドレス１から記憶内容のチェックが行われる。
【００５３】
続いて、図５のフローチャートのステップＳ３４、ステップＳ３７、およびステップＳ４１に示したＲＯＭ１１の記憶内容のチェックについて、図７のフローチャートを参照して説明する。なお、ここでは、ステップＳ３７に示したＲＯＭ１１の第１領域２８ａについて記憶内容のチェックを行うものとする。
【００５４】
まず、マイクロコンピュータ６Ａは、ステップＳ６１において、後述するステップＳ６４と協動して、以下に続くステップＳ６２およびステップＳ６３のチェックをＬｎ回繰り返すことを指示する。
ここで、チェックの繰り返し回数は、図６に示したＲＡＭ１２の記憶内容チェックと同様に、図５のステップＳ３７で示した一度にチェックするＲＯＭ１１のアドレスの範囲に対応して設定される。
【００５５】
即ち、ＲＯＭ１１の第１領域２８ａにおいては、故障の発生時に運転に与える影響が大きいので、チェック回数Ｌｎは、大きく設定される。一方、ＲＯＭ１１の第２領域２９ａにおいては、故障の発生時に運転に与える影響が小さいので、チェック回数Ｌｎは、小さく設定される。
【００５６】
次に、マイクロコンピュータ６Ａは、ＲＯＭ１１の第１領域２８ａに格納された値の総和を示すレジスタＳＵＭｎにＲＯＭ１１のアドレスＡＤＲＯＭｎに格納された値ＲＯＭ［ＡＤＲＯＭｎ］を加算する（ステップＳ６２）。
続いて、マイクロコンピュータ６Ａは、ＲＯＭ１１のアドレスＡＤＲＯＭｎに１を足し、それをアドレスＡＤＲＯＭｎに置き換えることで、アドレスを移動する（ステップＳ６３）。
【００５７】
続いて、ステップＳ６４において、Ｌｎ回のチェックが終わっていない場合には、ステップＳ６２に戻り、ＲＯＭ１１に格納された値の加算を継続する。
また、ステップＳ６４で、Ｌｎ回の加算が終了した場合には、このループを抜けてステップＳ６５に移行する。
【００５８】
次に、マイクロコンピュータ６Ａは、ＲＯＭ１１のアドレスＡＤＲＯＭｎがＲＯＭ１１の第１領域２８ａの最終アドレス以下であるか否かを判定し（ステップＳ６５）、最終アドレス以下である（すなわち、Ｙｅｓ）と判定された場合には、図７の処理を終了する。
【００５９】
一方、ステップＳ６５で、最終アドレス以下でない（すなわち、Ｎｏ）と判定された場合には、マイクロコンピュータ６Ａは、レジスタＳＵＭｎの値が予め格納されている基準データと一致しているか否かを判定し（ステップＳ６６）、一致している（すなわち、Ｙｅｓ）と判定された場合は、ステップＳ６８に移行する。
一方、ステップＳ６６で、一致していない（すなわち、Ｎｏ）と判定された場合には、ＲＯＭ１１の第１領域２８ａのアドレスＡＤＲＯＭｎでエラーが発生したことを記憶し、ステップＳ６８に移行する（ステップＳ６７）。
【００６０】
続いて、マイクロコンピュータ６Ａは、ＲＯＭ１１のアドレスＡＤＲＯＭｎをＲＯＭ１１の第１領域２８ａの先頭のアドレスに置き換える（ステップＳ６８）。
次に、マイクロコンピュータ６Ａは、次回の記憶内容チェックのために、レジスタＳＵＭｎに格納された値を、すべて０にリセットし（ステップＳ６９）、図７の処理を終了する。
【００６１】
即ちステップＳ６９から、図５のフローチャートに戻り、ステップＳ３８〜ステップＳ４５の処理を実行し、再びステップＳ３７に戻った時点で図７の処理に移行し、前回の前回の終了アドレスに続くＲＯＭアドレスから再びＲＯＭ１２の第１領域２８ａの記憶内容チェックを実行する。
【００６２】
この発明の実施の形態１に係るコントロールユニット１Ａによれば、ＲＯＭ１１およびＲＡＭ１２が故障発生時の運転に対する影響が大きい第１領域２８ａ、２８ｂと、故障発生時の運転に対する影響が小さい第２領域２９ａ、２９ｂとに分割され、ＣＰＵ１０が、チェックプログラムを用いて、ＲＯＭ１１およびＲＡＭ１２の第１領域２８ａ、２８ｂは、全体のチェックに要する時間を短く設定し、ＲＯＭ１１およびＲＡＭ１２の第２領域２９ａ、２９ｂは、全体のチェックに要する時間を第１領域２８ａ、２８ｂよりも長く設定する。そのため、ＲＯＭ１１およびＲＡＭ１２のチェックに要する時間およびＣＰＵ１０への負荷を軽減し、かつ記憶装置の異常による影響を最小限にすることができる。
【００６３】
また、故障発生時の運転に対する影響が大きいＲＯＭ１１およびＲＡＭ１２の第１領域２８ａ、２８ｂに異常が発生した場合には、制御を停止し、故障発生時の運転に対する影響が小さいＲＯＭ１１およびＲＡＭ１２の第２領域２９ａ、２９ｂに異常が発生した場合には、制御そのものは継続させ、ワーニングランプ２６に警告信号を出力する。そのため、さらに記憶装置の異常による影響を最小限にすることができる。
【００６４】
なお、上記実施の形態１では、ＲＯＭ１１およびＲＡＭ１２の第１領域２８ａ、２８ｂおよび第２領域２９ａ、２９ｂが分散して存在しているが、それぞれの記憶領域が分散すると、ＲＯＭ１１およびＲＡＭ１２の第１領域２８ａ、２８ｂの記憶内容チェックにおいて、チェックするアドレスをその都度変更するか、もしくはそれぞれにプログラムを用意する必要がある。
【００６５】
そこで、ＲＯＭ１１およびＲＡＭ１２の第１領域２８ａ、２８ｂおよび第２領域２９ａ、２９ｂをそれぞれ１箇所にまとめることにより（図８（ａ）および図８（ｂ）参照）、チェックするプログラムを少なくし、ＣＰＵ１０の処理負荷をさらに軽減することができる。
【００６６】
また、図４において、ＲＯＭ１１およびＲＡＭ１２の未使用領域は、第２領域２９ａ、２９ｂに含まれていたが、図８のように、未使用領域３０ａ、３０ｂを第１領域２８ａ、２８ｂおよび第２領域２９ａ、２９ｂの何れにも含まれないように設定してもよい。この場合は、記憶内容のチェック量が減るため、ＣＰＵ１０の処理負荷をさらに軽減することができる。
【００６７】
実施の形態２．
上記実施の形態１では、ＲＯＭ１１およびＲＡＭ１２の記憶内容のチェックと、記憶内容のチェック結果による異常判定および異常時の処理とをシーケンス的に実施した場合を説明したが、ＲＯＭ１１およびＲＡＭ１２の記憶内容のチェックと、記憶内容のチェック結果による異常判定および異常時の処理とを異なるタイミングで行ってもよい。
【００６８】
以下に、ＲＯＭ１１およびＲＡＭ１２の記憶内容のチェックと、チェック結果の判定および処理とを異なるタイミングで行う場合について説明する。
この発明の実施の形態２に係るコントロールユニット１Ａの構成については、前述の実施の形態１で示したものと同様の動作なので、説明を省略する。
【００６９】
以下、動作について図９に示したフローチャートを参照して説明する。なお、ステップＳ３１〜ステップＳ４５は、実施の形態１と同様の動作なので、説明を省略する。
例えば電動パワーステアリング制御のように、所定の周期ごとに制御を行うシステムにおいては、メイン処理が所定の周期となるように時間を調整して一連の制御処理を行っている。即ち、前回の処理から時間を計測し、所定の周期となる時間が経過したか否かを判定し、所定時間が経過した場合は次のメイン処理に移り、所定時間が経過しない場合は待ち時間が発生する。したがって、この待ち時間を利用してＲＯＭ１１およびＲＡＭ１２の記憶内容のチェックを行う。
【００７０】
まず、マイクロコンピュータ６Ａは、実施の形態１と同様に、初期設定、ＲＡＭ１２の全体領域について記憶内容のチェック、ＲＡＭ１２の全領域が正常か否かの判定、ＲＯＭ１１の全体領域について記憶内容のチェック、およびＲＯＭ１１の全領域が正常か否かの判定を行う（ステップＳ３１〜ステップＳ３５）。
【００７１】
次に、マイクロコンピュータ６Ａは、メイン周期の待ち時間であるか否かを判定し（ステップＳ７１）、待ち時間である（すなわち、Ｙｅｓ）と判定された場合、マイクロコンピュータ６Ａは、ＲＯＭ１１およびＲＡＭ１２の第１領域２８ａ、２８ｂおよび第２領域２９ａ、２９ｂの記憶内容のチェックを行う（ステップＳ３６〜ステップＳ３７、ステップＳ４０〜ステップＳ４１）。
【００７２】
一方、ステップＳ７１において、待ち時間でない（すなわち、Ｎｏ）と判定された場合、マイクロコンピュータ６Ａは、ＲＯＭ１１およびＲＡＭ１２の第１領域２８ａ、２８ｂが正常か否かを判定し（ステップＳ３８）、正常でない（すなわち、Ｎｏ）と判定された場合には、異常動作処理部２５は、第１フェールセーフ処理を行う（ステップＳ３９）。
【００７３】
一方、ステップＳ３８において、正常である（すなわち、Ｙｅｓ）と判定された場合、マイクロコンピュータ６Ａは、ＲＯＭ１１およびＲＡＭ１２の第２領域２９ａ、２９ｂが正常か否かを判定する（ステップＳ４２）。
【００７４】
ステップＳ４２において、正常でない（すなわち、Ｎｏ）と判定された場合、異常動作処理部２５は、第２フェールセーフ処理を行う（ステップＳ４３）。
一方、ステップＳ４２において、正常である（すなわち、Ｙｅｓ）と判定された場合、マイクロコンピュータ６Ａは、パワーステアリング制御を実施する（ステップＳ４４）。
【００７５】
次に、監視部２４は、トルクセンサ１４、車速センサ１５、モータ１６等が正常に動作しているか否かを監視し、異常が発生した場合、異常動作処理部２５は、通常フェール処理を行い、ステップＳ７１に戻る（ステップＳ４５）。
【００７６】
この発明に実施の形態２に示すコントロールユニット１Ａによれば、ＲＯＭ１１およびＲＡＭ１２の記憶内容チェックと、チェック結果の判定および処理とをメイン処理の待ち状態によって分割したので、メイン処理の空き時間にＲＯＭ１１およびＲＡＭ１２の記憶内容チェックをし、メイン処理の中でチェック結果の判定および処理を行うので、メイン制御におけるＲＯＭ１１およびＲＡＭ１２の記憶内容のチェック時間およびＣＰＵ１０の処理負荷をさらに減らすことができる。
【００７７】
なお、上記実施の形態１および２では、ＲＯＭ１１およびＲＡＭ１２の記憶領域を第１領域２８ａ、２８ｂおよび第２領域２９ａ、２９ｂの２つの領域に分割したが、勿論このものに限定されるものではなく、故障時の運転に対する影響に応じて、３つ以上の領域に分割してもよい。このものの場合、故障時の処理をより細分化することができる。
【００７８】
また、実施の形態１および２では、コントロールユニット１Ａの外部にセンサ４Ａが接続されているとして説明したが、コントロールユニットの内部にセンサが設けられていてもよい。
また、コントロールユニット１Ａは、アクチュエータ５を駆動するとしたが、演算した結果を他のコントローラ等に伝達するものであってもよい。
【００７９】
また、実施の形態１および２では、マイクロコンピュータ６Ａの内部にＲＯＭ１１およびＲＡＭ１２を設けた場合を例にして説明したが、ＲＯＭおよびＲＡＭは、コントロールユニット内であって、マイクロコンピュータの外部に設けられていてもよい。
【００８０】
また、上記実施の形態１および２では、メモリはＲＯＭ１１およびＲＡＭ１２であるとして説明したが、勿論このものに限定されるものではなく、書き換え可能なＲＯＭであるＥＥＰＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）あるいはフラッシュＲＯＭであってもよい。このものの場合も、同様の効果を奏することができる。
【００８１】
また、上記実施の形態１および２では、ＲＯＭ１１およびＲＡＭ１２の第２領域２９ａ、２９ｂのチェック時間を第１領域２８ａ、２８ｂよりも長く設定したが、第２領域２９ａ、２９ｂの記憶内容チェックを省略してもよい。このものの場合、運転に大きな影響を与えるＲＯＭ１１およびＲＡＭ１２の故障をチェックしつつ、全体の記憶内容チェックの時間を短縮することができる。
【図面の簡単な説明】
【００８２】
【図１】この発明の実施の形態１に係るコントロールユニットを周辺機器とともに示すブロック図である。
【図２】図１に示したコントロールユニットを電動パワーステアリング装置に適用した場合の構成図である。
【図３】図２に示したコントロールユニットを周辺機器とともに示したブロック図である。
【図４】（ａ）および（ｂ）は、図１に示したＲＡＭおよびＲＯＭの内部構造を示す説明図である。
【図５】この発明の実施の形態１に係るコントロールユニットの動作を示すフローチャートである。
【図６】図５に示したＲＡＭの記憶内容チェックを示すフローチャートである。
【図７】図５に示したＲＯＭの記憶内容チェックを示すフローチャートである。
【図８】（ａ）および（ｂ）は、図４に示したＲＡＭおよびＲＯＭの第１領域および第２領域をそれぞれ１つの領域にまとめた場合の説明図である。
【図９】この発明の実施の形態２に係るコントロールユニットの動作を示すフローチャートである。
【符号の説明】
【００８３】
１、１Ａ  コントロールユニット、６、６Ａ  マイクロコンピュータ、１０  ＣＰＵ、１１  ＲＯＭ、１２  ＲＡＭ、２８ａ、２８ｂ  第１領域、２９ａ、２９ｂ  第２領域、３０ａ、３０ｂ  未使用領域。
【図１】
2006268266.tif 000003
【図２】
2006268266.tif 000004
【図３】
2006268266.tif 000005
【図４】
2006268266.tif 000006
【図５】
2006268266.tif 000007
【図６】
2006268266.tif 000008
【図７】
2006268266.tif 000009
【図８】
2006268266.tif 000010
【図９】
2006268266.tif 000011