(57)【要約】【課題】低コストな構成でメモリを監視して、ソフトウェアの暴走を未然に防止することが可能な車両用電動機の制御装置、車両用電動機の制御方法、およびコンピュータが実行するためのプログラムを提供することを目的とする。【解決手段】制御プログラムを実行して操舵補助モータ２０を制御するＣＰＵ１０１と、ＣＰＵ１０１が制御プログラムを実行する場合にその作業領域として使用され、データの書き込みが許可されているアクセス許可領域とデータの書き込みが禁止されているアクセス禁止領域とを有するＲＡＭ１０３とを備え、ＣＰＵ１０１は、メモリ監視プログラム２０２を実行して、ＲＡＭ１０３のアクセス禁止領域へのデータの書き込みを監視する。【選択図】        図２
2008172896.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載された車両用電動機を制御する車両用電動機の制御装置において、
制御プログラムを実行して前記車両用電動機を制御する制御手段と、
前記制御手段が前記制御プログラムを実行する場合にその作業領域として使用され、データの書き込みが許可されるアクセス許可領域と、データの書き込みが禁止されるアクセス禁止領域とを有するメモリと、
を備え、
前記制御手段は、前記メモリのアクセス禁止領域へのデータの書き込みを監視するメモリ監視手段を有し、前記制御プログラムの不正アクセスを監視することを特徴とする車両用電動機の制御装置。
【請求項２】
前記メモリ監視手段は、前記制御プログラムが実行される前に所定の検出用データをアクセス禁止領域に予め書き込み、前記制御プログラムの実行中に、または、前記制御プログラムが実行された後に、前記アクセス禁止領域のデータを読み込んで前記所定の検出用データと比較することにより、前記アクセス禁止領域へのデータの書き込みを検出することを特徴とする請求項１に記載の車両用電動機の制御装置。
【請求項３】
前記アクセス許可領域は、スタック領域およびデータ領域を含み、前記アクセス禁止領域は、前記スタック領域およびデータ領域に隣接した領域であることを特徴とする請求項１または請求項２に記載の車両用電動機の制御装置。
【請求項４】
前記制御手段は、前記メモリのアクセス禁止領域へのデータの書き込みを検出した場合には、前記車両用電動機を停止させることを特徴とする請求項１乃至請求項３のいずれか１つに記載の車両用電動機の制御装置。
【請求項５】
前記制御手段は、前記メモリのアクセス禁止領域へのデータの書き込みを検出した場合には、前記制御プログラムの実行を停止して、当該制御プログラムに比して負荷の少ないサブ制御プログラムを実行して前記車両用電動機の制御を継続することを特徴とする請求項１乃至請求項３のいずれか１つに記載の車両用電動機の制御装置。
【請求項６】
さらに、不揮発性メモリを備え、
前記制御手段は、前記メモリのアクセス禁止領域へのデータの書き込みを検出した場合には、解析に必要なメモリ情報を前記不揮発性メモリに格納することを特徴とする請求項１乃至請求項５のいずれか１つに記載の車両用電動機の制御装置。
【請求項７】
前記制御プログラムは、優先順位の異なる複数のタスクを含み、
前記メモリは、複数のアクセス禁止領域が設定されていることを特徴とする請求項１乃至請求項６のいずれか１つに記載の車両用電動機の制御装置。
【請求項８】
前記メモリ監視手段は、前記メモリのアクセス禁止領域への書き込みの監視を、前記車両用電動機の立ち上がりの時定数より短い周期で実行することを特徴とする請求項１乃至請求項７のいずれか１つに記載の車両用電動機の制御装置。
【請求項９】
前記車両用電動機は、車両のステアリング系に操舵補助力を付与する電動パワーステアリング装置の操舵補助モータであり、
前記制御手段は、前記制御プログラムを実行して、少なくとも前記ステアリング系に発生する操舵トルクに基づいて前記操舵補助モータの電流指令値を演算し、電流検出回路で検出された前記操舵補助モータの電流検出値と前記電流指令値とに基づいて、前記操舵補助モータの電流検出値が前記電流指令値に追従するように前記操舵補助モータを駆動制御することを特徴とする請求項１乃至請求項８のいずれか１つに記載の車両用電動機の制御装置。
【請求項１０】
前記車両用電動機は、車両のステアリング系に操舵補助力を付与する電動パワーステアリング装置の操舵補助モータであり、
前記制御プログラムは、モータ電流制御系モジュール、モータ電流補助制御系モジュール、トルク制御系モジュール、および補償制御系モジュールを含み、
前記サブ制御プログラムは、前記モータ電流制御系モジュール、前記トルク制御系モジュール、および前記補償制御系モジュールを含むことを特徴とする請求項５に記載の車両用電動機の制御装置。
【請求項１１】
前記車両用電動機は、車両のステアリング系に操舵補助力を付与する電動パワーステアリング装置の操舵補助モータであり、
前記制御プログラムは、前記操舵補助モータを制御するための第１のタスクと、外部と通信するための第２のタスクとを含むことを特徴とする請求項７に記載の車両用電動機の制御装置。
【請求項１２】
車両に搭載された車両用電動機を制御する車両用電動機の制御方法において、
制御手段が、データの書き込みが許可されるアクセス許可領域と、データの書き込みが禁止されるアクセス禁止領域とを有するメモリを、作業領域として使用して制御プログラムを実行し、前記車両用電動機を制御する制御工程と、
前記制御手段が、メモリ監視プログラムを実行して、前記アクセス禁止領域へのデータの書き込みを監視して、前記制御プログラムの不正アクセスを監視する監視工程と、
を含むことを特徴とする車両用電動機の制御方法。
【請求項１３】
車両に搭載された車両用電動機を制御する車両用電動機の制御装置に搭載されるプログラムにおいて、
コンピュータに、
データの書き込みが許可されるアクセス許可領域と、データの書き込みが禁止されるアクセス禁止領域とを有するメモリを、作業領域として使用して、前記車両用電動機を制御する制御工程と、
前記アクセス禁止領域へのデータの書き込みを監視して、ソフトウェアの不正アクセスを監視する監視工程と、
を実行させることを特徴とするコンピュータが実行するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両用電動機の制御装置、車両用電動機の制御方法、およびコンピュータが実行するためのプログラムに関し、詳細には、メモリのアクセス禁止領域へのデータの書き込みをソフトウェアで監視して、ソフトウェアの暴走を未然に防止することが可能な車両用電動機の制御装置、車両用電動機の制御方法、およびコンピュータが実行するためのプログラムに関する。
【背景技術】
【０００２】
車両には、各種電動機が使用されている。例えば、車両に搭載される電動パワーステアリング装置では、操舵補助トルク（アシストトルク）を与える操舵補助モータ（アシストモータ）が使用されている。電動パワーステアリング装置は、操舵補助モータの駆動力を、減速機を介してギヤまたはベルト等の伝送機構により、ステアリングシャフトまたはラック軸に補助力を付与するようになっている。かかる電動パワーステアリング装置の制御装置は、操舵補助トルクを正確に発生させるため、モータ電流のフィードバック制御を行っている。フィードバック制御は、電流指令値とモータ電流検出値との差が小さくなるようにモータ印加電圧を調整するものであり、モータ印加電圧の調整は、一般的にＰＷＭ（パルス幅変調）制御のデューティー比の調整で行っている。
【０００３】
電動パワーステアリングの制御装置は、ＣＰＵ（中央演算装置）、操舵補助モータを制御するためのソフトウェアが格納されたＲＯＭと、ＣＰＵがソフトウェアを実行する場合に作業領域として使用するＲＡＭを備えている。ソフトウェア設計時には、あらゆる動作を想定して、ＲＡＭのメモリ保護違反、スタックオーバーフロー等を起こさないように、設計・デバック・検証をホワイトボックス的に行っているが、想定外のソフトウェアエラーが発生した場合には、ＲＡＭのオーバーフローが発生する場合がある。また、近時、ソフトウェアモジュールのブラックボックス化が進んでいるため、設計・デバック・検証を十分に行えない場合も想定される。
【０００４】
ハードウェアを用いて、ＲＡＭへの不正なアクセスを事前に防止する技術が、例えば、特許文献１，２で提案されている。特許文献１のデータ保護装置は、アドレススペースをアドレスするプロセッサと、第１メモリと、これらプロセッサとメモリとを相互接続するバスと、第１範囲のアドレスに応答して第１選択信号を発生する第１アドレスデコーダとを備え、上記第１メモリはこの第１選択信号によって選択され、更に、上記第１のアドレス範囲と同一ではなく且つ上記第１範囲と共通のアドレスを少なくとも１つ有している第２のアドレス範囲のアドレスに応答して第２選択信号を発生する第２のアドレスデコーダと、上記プロセッサに作動的に接続されてそこから要求信号を受け取る保護回路とを備えており、当該保護回路は、要求信号の受信が存在しない場合に上記第２選択信号の発生の事象を通知するものである。
【０００５】
また、特許文献２のメモリ制御装置は、閾値レジスタに、アドレス信号ＡＤＤＲの値の大小関係により書き込み制限区画を識別するための唯一の閾値アドレスを格納し、アドレス信号の一部と閾値レジスタが保持する値の大小関係を検出するアドレス比較部と、デバイス選択信号ＣＳ＿０と、アドレス比較部の比較結果に基づきメモリデバイスに対する書き込み制御信号をマスクするマスク制御部を設け、アドレス信号ＡＤＤＲの値と閾値アドレスが書き込み制限を行なうべき所定の大小関係にあることをアドレス比較部が検出している場合、メモリデバイスに対する書き込みアクセスを無効とするものである。
【０００６】
【特許文献１】特開平７−１３４６７８号公報
【特許文献２】特開２００５−１３５０３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１，２にあっては、ＲＡＭへの不正なアクセスを、ハードウェアを用いて防止する構成であるため、監視するメモリエリアの変更や複数メモリエリアへの対応等、設計変更による設計・製造工数にかかる工程が大きくなり、コストが大きくなってしまうため、低コストな構成とすることができないという問題がある。
【０００８】
本発明は、上記課題に鑑みてなされたものであり、低コストな構成でメモリを監視して、ソフトウェアの暴走を未然に防止することが可能な車両用電動機の制御装置、車両用電動機の制御方法、およびコンピュータが実行するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記した課題を解決して、本発明の目的を達成するために、本発明は、車両に搭載された車両用電動機を制御する車両用電動機の制御装置において、制御プログラムを実行して前記車両用電動機を制御する制御手段と、前記制御手段が前記制御プログラムを実行する場合にその作業領域として使用され、データの書き込みが許可されるアクセス許可領域と、データの書き込みが禁止されるアクセス禁止領域とを有するメモリと、を備え、前記制御手段は、前記メモリのアクセス禁止領域へのデータの書き込みを監視するメモリ監視手段を有し、前記制御プログラムの不正アクセスを監視することを特徴とする。これにより、メモリのアクセス禁止領域へデータが書き込まれたか否かをソフトウェアにより検出して、ソフトウェアエラーを検出することができ、低コストな構成でメモリを監視して、ソフトウェアの暴走を未然に防止することが可能となる。
【００１０】
また、本発明の好ましい態様によれば、前記メモリ監視手段は、前記制御プログラムが実行される前に所定の検出用データを前記アクセス禁止領域に予め書き込み、前記制御プログラムの実行中に、または、前記制御プログラムが実行された後に、前記アクセス禁止領域のデータを読み込んで前記所定の検出用データと比較することにより、前記アクセス禁止領域へのデータの書き込みを検出することが望ましい。これにより、簡単な方法で、メモリのアクセス禁止領域にデータが書き込まれたか否かを検出することが可能となる。
【００１１】
また、本発明の好ましい態様によれば、前記アクセス許可領域は、スタック領域およびデータ領域を含み、前記アクセス禁止領域は、前記スタック領域およびデータ領域に隣接した領域であることが望ましい。これにより、スタック領域およびデータ領域のオーバーフローを監視することが可能となる。
【００１２】
また、本発明の好ましい態様によれば、前記制御手段は、前記メモリのアクセス禁止領域へのデータの書き込みを検出した場合には、前記車両用電動機を停止させることが望ましい。これにより、ソフトウェアが暴走する前に、車両用電動機を停止することが可能となる。
【００１３】
また、本発明の好ましい態様によれば、前記制御手段は、前記メモリのアクセス禁止領域へのデータの書き込みを検出した場合には、前記制御プログラムの実行を停止して、当該制御プログラムに比して負荷の少ないサブ制御プログラムを実行して前記車両用電動機の制御を継続することが望ましい。これにより、ソフトウェアの暴走を未然に防止することができるとともに、車両用電動機の動作を継続させることが可能となる。
【００１４】
また、本発明の好ましい態様によれば、さらに、不揮発性メモリを備え、前記制御手段は、前記メモリのアクセス禁止領域へのデータの書き込みを検出した場合には、解析に必要なメモリ情報を前記不揮発性メモリに格納することが望ましい。これにより、メモリのアクセス禁止領域にデータが書き込まれた原因（ソフトウェアエラーの原因）を解析することが可能となる。
【００１５】
また、本発明の好ましい態様によれば、前記制御プログラムは、優先順位の異なる複数のタスクを含み、前記メモリは、複数のアクセス禁止領域が設定されていることが望ましい。これにより、各タスクのソフトウェアエラーを検出することが可能となる。
【００１６】
また、本発明の好ましい態様によれば、前記メモリ監視手段は、前記メモリのアクセス禁止領域への書き込みの監視を、前記車両用電動機の立ち上がりの時定数より短い周期で実行することが望ましい。これにより、ソフトウェアが暴走する前に、確実に電動機を停止させる等の対策をとることが可能となる。
【００１７】
また、本発明の好ましい態様によれば、前記車両用電動機は、車両のステアリング系に操舵補助力を付与する電動パワーステアリング装置の操舵補助モータであり、前記制御手段は、前記制御プログラムを実行して、少なくとも前記ステアリング系に発生する操舵トルクに基づいて前記操舵補助モータの電流指令値を演算し、電流検出回路で検出された前記操舵補助モータの電流検出値と前記電流指令値とに基づいて、前記操舵補助モータの電流検出値が前記電流指令値に追従するように前記操舵補助モータを駆動制御することが望ましい。これにより、電動パワーステアリング装置において、低コストな構成でメモリを監視して、ソフトウェアの暴走を未然に防止することが可能となる。
【００１８】
また、本発明の好ましい態様によれば、前記車両用電動機は、車両のステアリング系に操舵補助力を付与する電動パワーステアリング装置の操舵補助モータであり、前記制御プログラムは、モータ電流制御系モジュール、モータ電流補助制御系モジュール、トルク制御系モジュール、および補償制御系モジュールを含み、前記サブ制御プログラムは、前記モータ電流制御系モジュール、前記トルク制御系モジュール、および前記補償制御系モジュールを含むことが望ましい。これにより、第１の制御プログラムにソフトウェアエラーが発生した場合でも、モータ電流補助制御系モジュールがなく負荷の軽いサブ制御プログラムを実行して、操舵補助モータのアシストを継続させることが可能となる。
【００１９】
また、本発明の好ましい態様によれば、前記車両用電動機は、車両のステアリング系に操舵補助力を付与する電動パワーステアリング装置の操舵補助モータであり、前記制御プログラムは、前記操舵補助モータを制御するための第１のタスクと、外部と通信するための第２のタスクとを含むことが望ましい。これにより、電動パワーステアリング装置の制御装置において、各タスクのソフトウェアエラーを検出することが可能となる。
【００２０】
上記した課題を解決して、本発明の目的を達成するために、本発明は、車両に搭載された車両用電動機を制御する車両用電動機の制御方法において、制御手段が、データの書き込みが許可されるアクセス許可領域と、データの書き込みが禁止されるアクセス禁止領域とを有するメモリを、作業領域として使用して制御プログラムを実行し、前記車両用電動機を制御する制御工程と、前記制御手段が、メモリ監視プログラムを実行して、前記アクセス禁止領域へのデータの書き込みを監視して、前記制御プログラムの不正アクセスを監視する監視工程と、を含むことを特徴とする。
【００２１】
上記した課題を解決して、本発明の目的を達成するために、本発明は、車両に搭載された車両用電動機を制御する車両用電動機の制御装置に搭載されるプログラムにおいて、コンピュータに、データの書き込みが許可されるアクセス許可領域と、データの書き込みが禁止されるアクセス禁止領域とを有するメモリを作業領域として使用して、前記車両用電動機を制御する制御工程と、前記アクセス禁止領域へのデータの書き込みを監視して、ソフトウェアの不正アクセスを監視する監視工程と、を実行させることを特徴とする。
【発明の効果】
【００２２】
本発明によれば、車両に搭載された車両用電動機を制御する車両用電動機の制御装置において、制御プログラムを実行して前記車両用電動機を制御する制御手段と、前記制御手段が前記制御プログラムを実行する場合にその作業領域として使用され、データの書き込みが許可されるアクセス許可領域と、データの書き込みが禁止されるアクセス禁止領域とを有するメモリと、を備え、前記制御手段は、前記メモリのアクセス禁止領域へのデータの書き込みを監視するメモリ監視手段を有し、前記制御プログラムの不正アクセスを監視することとしたので、メモリのアクセス禁止領域へデータが書き込まれたか否かをソフトウェアにより検出して、ソフトウェアエラーを検出することができ、低コストな構成でメモリを監視して、ソフトウェアの暴走を未然に防止することが可能な車両用電動機の制御装置を提供することが可能となるという効果を奏する。
【発明を実施するための最良の形態】
【００２３】
以下に、この発明につき図面を参照しつつ詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、下記実施例における構成要素には、当業者が容易に想定できるものまたは実質的に同一のものが含まれる。以下の実施例では、車両に搭載された車両用電動機として、車両のステアリング系に操舵補助力を付与する電動パワーステアリング装置の操舵補助モータを制御する制御装置を一例として説明する。
【実施例１】
【００２４】
図１は、電動パワーステアリング装置の一般的な構成を示す図である。図１において、操向ハンドル１のコラム軸２は減速ギア３、ユニバーサルジョイント４ａおよび４ｂ、ピニオンラック機構５を経て操向車輪のタイロッド６に連結されている。コラム軸２には、操向ハンドル１の操舵トルクＴを検出するトルクセンサ１０が設けられており、操向ハンドル１の操舵力を補助する操舵補助モータ２０が、減速ギア３を介してコラム軸２に連結されている。ここで、操舵補助モータ２０は、例えば、ブラシレスモータやブラシモータである。電動パワーステアリング装置を制御するコントロールユニット３０には、バッテリ１４から内蔵の電源リレー１３を経て電力が供給され、イグニションキー１１からイグニション信号が供給される。また、コントロールユニット３０は、トルクセンサ１０で検出された操舵トルクＴと車速センサ１２で検出された車速Ｖとに基づいて、操舵補助モータ２０の電流指令値を演算し、操舵補助モータ２０の電流検出値と電流指令値とに基づいて、操舵補助モータ２０の電流検出値が電流指令値に追従するように操舵補助モータ２０を駆動制御する。
【００２５】
図２は、図１のコントロールユニット３０のハードウェア構成を示す図である。図３は、図２の主ＭＣＵのＲＯＭおよびＲＡＭのメモリ構成例を示す図である。コントロールユニット３０は、図２に示すように、主ＭＣＵ（マイクロコントロールユニット）１００と、副ＭＣＵ（マイクロコントロールユニット）１１０と、ＷＤＴ（ウォッチドックタイマ）１３０と、ＦＥＴプリドライバ回路１４０と、モータ駆動回路（インバータ）１５０と、電流検出回路１６０と、位置検出回路１７０等を備えている。
【００２６】
主ＭＣＵ１００は、ＣＰＵ１０１（制御手段）、ＲＯＭ１０２、ＲＡＭ（メモリ）１０３、ＥＥＰＲＯＭ１０４，Ａ／Ｄ変換器１０５、インターフェース１０６、バス１０７等を備えている。ＣＰＵ１０１は、ＲＯＭ１０２に格納された各種プログラムを実行して電動パワーステアリング装置を制御する。
【００２７】
ＲＯＭ１０２は、ＣＰＵ１０１が実行する各種プログラムを格納する。具体的には、ＲＯＭ１０２には、図３に示すように、操舵補助モータ２０を制御するモータ制御処理（操舵補助処理）を実行するための制御プログラム２０１、ＲＡＭ１０３のアクセス禁止領域にデータの書き込みがあるか否かを監視するメモリ監視処理を実行するためのメモリ監視プログラム２０２、安全動作に移行する安全動作移行処理を実施するための安全動作移行プログラム２０３等が格納されている。ＲＡＭ１０３は、ＣＰＵ１０１がプログラムを実行する場合にその作業領域として使用され、処理過程で必要とするデータや処理結果、サブルーチンや割り込み処理に際して戻り番地等が記憶されるものであり、データの書き込みが許可されたアクセス許可領域とデータの書き込みが禁止されたアクセス禁止領域とを有している。上記構成において、ＣＰＵ１０１がメモリ監視プログラム２０２を実行することにより、メモリ監視手段として機能する。
【００２８】
ＥＥＰＲＯＭ１０４は、電源遮断後においても記憶内容を保持可能なメモリであり、後述するように、ＲＡＭ１０３のアクセス禁止領域へのデータの書き込みが検出された場合に、解析に必要なメモリ情報等が書き込まれる。Ａ／Ｄ変換器１０５は、トルクセンサ１０からの操舵トルクＴ、電流検出回路１６０からの操舵補助モータ２０の電流検出値Ｉｍ、および位置検出回路１７０からのモータ回転角信号θ等を入力し、デジタル信号に変換する。インターフェース１０６は、車速センサ１２からの車速Ｖ（車速パルス）をＣＡＮ通信で受け取るためのものである。
【００２９】
ＦＥＴプリドライバ回路１４０は、主ＭＣＵ１００から入力されるＵＶＷ各相のＰＷＭ制御信号を、各相正負の通電信号（Ｕp，Ｕn、Ｖp、Ｖn、Ｗp，Ｗn）に変換して、モータ駆動回路１５０に出力する。
【００３０】
モータ駆動回路１５０は、一対のＦＥＴスイッチング素子からなるブリッジ回路をＵ相用，Ｖ相用，Ｗ相用として３相分備えており、各ＦＥＴスイッチング素子には還流ダイオードが並列接続されている。このブリッジ回路には、バッテリ１４から電源リレー１３を介して直流電圧が印加される。各ＦＥＴスイッチング素子の制御端子（ゲート端子）には、ＦＥＴプリドライバ回路１４０から通電信号が入力される。モータ駆動回路１５０に印加される直流電圧は、モータ駆動回路１５０内のＦＥＴスイッチング素子のスイッチング動作によって３相の交流電圧に変換され、それにより操舵補助モータ２０が駆動される。このブリッジ回路には、シャント抵抗Ｒ１，Ｒ２が接続されている。このシャント抵抗Ｒ１，Ｒ２に電流検出回路１６０が接続され、これによって、操舵補助モータ２０の電流検出値Ｉｍを検出するようになっている。
【００３１】
位置検出回路１７０は、位置センサ２１に励磁電流を与えるとともに、位置センサ２１からの出力信号をモータ回転角信号θとして、Ａ／Ｄ変換器１０５に出力する。
【００３２】
ＷＤＴ１３０は、主ＭＣＵ１００のＣＰＵ１０１のハードウェアエラーを検出するためのものである。ＣＰＵ１０１のハードウェアエラーは、電磁ノイズによる暴走、レジスタのデータ化け等の各種が存在する。ＣＰＵ１０１およびＷＤＴ１３０は、それぞれタイマ用カウンタを備えている。ＷＤＴ１３０は、ＣＰＵ１０１から出力されるクリアパルスが一定時間（例えば、４０ｍｓｅｃ）以上停止した場合に、リセット信号を発生し、ＣＰＵ１０１をリセットすると共に、ＦＥＴプリドライバ回路１４０にモータ停止信号を出力して、ＦＥＴプリドライバ回路１４０の動作を停止させて、操舵補助モータ２０を停止させる。
【００３３】
副ＭＣＵ１１０は、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３、Ｄ／Ａ変換器１１５、およびＡ／Ｄ変換器１１６等を備えている。副ＭＣＵ１１０は、モータ制御のための演算処理は実行しないが、主ＭＣＵ１００とシリアル通信により相互に動作（ハードウェアエラー）の監視を行っている。
【００３４】
例えば、主ＭＣＵ１００のＡ／Ｄ変換器１０５の異常を以下の方法で検出している。主ＭＣＵ１００のＡ／Ｄ変換器１０５は、８ポートＡＤ１〜ＡＤ８を有しており、異常診断時には、例えば、ＡＤ８が使用され、７つのポートＡＤ１〜ＡＤ７は異常診断に使用されず、ポートＡＤ１〜ＡＤ７は、本来のモータ制御処理に使用される。
【００３５】
また、副ＭＣＵ１１０のＡ／Ｄ変換器１１６は、８ポートＡＤ１〜ＡＤ８を有しており、異常診断時には、例えば、ＡＤ８が使用され、７つのポートＡＤ１〜ＡＤ７は使用されない。まず、副ＭＣＵ１１０は、所定値のデジタル値をＤ／Ａ変換器１１５でアナログ値に変換して出力する。出力されたアナログ値は、主ＭＣＵ１００のＡ／Ｄ変換器１０５のポートＡＤ８に入力され、再度、デジタル値に変換され、シリアル通信で副ＭＣＵ１１０へ返却値１として送信される。また、出力されたアナログ値は、副ＭＣＵ１１０のＡ／Ｄ変換器１１６のポートＡＤ８に入力され、再度、デジタル値に変換され、返却値２として返却される。副ＭＣＵ１１０は、受信された返却値１と所定値のデジタル値との誤差ΔＸ１を算出し、誤差ΔＸ１が、許容値ΔＸＫ以下である場合には、Ａ／Ｄ変換器１０５およびＤ／Ａ変換器１１５が正常と判定する。他方、副ＭＣＵ１１０は、誤差ΔＸ１が許容値ΔＸＫより大きい場合には、返却値２と所定値のデジタル値との誤差ΔＸ２を算出し、誤差ΔＸ２が、許容値ΔＸＫ以下である場合には、Ｄ／Ａ変換器１１５は正常で、Ａ／Ｄ変換器１０５が異常であると判定する。Ａ／Ｄ変換器１０５は、操舵補助モータ２０を制御するために重要な要素であるので、この場合は、操舵補助モータ２０を停止させる。
【００３６】
上記構成のコントロールユニット３０では、副ＭＣＵ１１０およびＷＤＴ１３０により主ＭＣＵ１００のハードウェアエラーを監視している。また、主ＭＣＵ１００のＣＰＵ１０１が、メモリ監視プログラム２０２を実行することにより、ソフトウェアエラーを監視している。このように、ハードウェアエラーとソフトウェアエラーを別々に検出することで、ハードウェアエラーとソフトウェアエラーの切り分けを行うことができる。なお、図示はしないが、ＲＡＭ１０３のＲＡＭ化け（０１反転）等のハードウェアエラーを検出するための検出回路を主ＭＣＵ１００の内部または外部に設けることにしてもよい。
【００３７】
つぎに、図３〜図７を参照して、ＣＰＵ１０１がメモリ監視プログラム２０２を実行して、ソフトウェアエラーを検出する方法を具体的に説明する。本実施例では、ＣＰＵ１０１がメモリ監視プログラム２０２を実行して、ＲＡＭ１０３のアクセス禁止領域へのデータの書き込みを監視して制御プログラム２０１の不正アクセスを監視することにより、制御プログラム２０１のソフトウェアエラーを検出している。以下の説明では、ＣＰＵ１０１がプログラムを実行して行う処理を、プログラムを動作主体として説明する。
【００３８】
図３において、ＲＡＭ１０３には、制御プログラム２０１を実行する場合に使用するデータ領域（メモリ領域）３０１およびスタック領域３０２が初期設定で確保されている。このデータ領域３０１およびスタック領域３０２をアクセス許可領域と称する。
【００３９】
上述したように、ソフトウェア設計時には、あらゆる動作を想定して、ＲＡＭ１０３のメモリ保護違反、スタックオーバーフロー等を起こさないように、設計・デバック・検証をホワイトボックス的に行っているが、想定外のソフトウェアエラーが発生する場合がある。また、近時、ソフトウェアモジュールのブラックボックス化が進んでいるため、設計・デバック・検証を十分に行えない場合も想定される。
【００４０】
データ領域３０１は、矢印方向に使用され、上位アドレス側から下位アドレス側にデータが書き込まれる。データ領域３０１の下側にはアクセス禁止領域４０１が隣接して設定されている。ソフトウェアエラーが発生して、データ領域３０１がオーバーフローした場合には、アクセス禁止領域４０１にデータが書き込まれることになる。
【００４１】
スタック領域３０２は、矢印方向に使用され、上位アドレス側から下位アドレス側にデータが書き込まれる。スタック領域３０２の下側には、アクセス禁止領域４０２が近接して設定されている。ソフトウェアエラーが発生して、スタック領域３０２がオーバーフローした場合には、アクセス禁止領域４０２にデータが書き込まれることになる。
【００４２】
メモリ監視プログラム２０２は、電源投入後の制御プログラム２０１が実行される前に、検出用データとして、アクセス禁止領域４０１に、初期値＝０ｘ０１０１０１０１を、アクセス禁止領域４０２に、初期値＝０ｘ０２０２０２０２を書き込む。メモリ監視プログラム２０２は、制御プログラム２０１の実行中または制御プログラム２０１の実行後に、メモリ監視処理を実行し、アクセス禁止領域４０１，４０２のデータを読み込んで、検出用データ（０ｘ０１０１０１０１，０ｘ０２０２０２０２）とそれぞれ比較することで、アクセス禁止領域４０１、４０２にデータの書き込みがあるか否か検出する。
【００４３】
図４は、制御プログラム２０１とメモリ監視プログラム２０２の実行タイミングを説明するための図である。図４において、Ｔはモータ電流制御周期（例えば、１２５μｓｅｃ）を示している。メモリ監視プログラム２０２によるメモリ監視処理は、ＣＰＵ１０１の空き時間に実行され、同図に示す例では、所定周期で、制御プログラム２０１によるモータ制御処理の実行後の空き時間に実行される。また、メモリ監視処理の実行周期は、操舵補助モータ２０の立ち上がりの時定数より小さい周期となっている。
【００４４】
図５は、メモリ監視処理および安全動作移行処理を説明するためのフローチャートである。図５において、メモリ監視プログラム２０２によるメモリ監視処理が実行されると（ステップＳ１）、ＲＡＭ１０３のアクセス禁止領域４０１、４０２のデータを読み込み（ステップＳ２）、読み込んだデータと検出用データが一致するか否かを判定する（ステップＳ３）。読み込んだデータと検出用データが一致する場合は（ステップＳ３の「Ｙｅｓ」）、ソフトウェアが正常に動作していると判断して、モータ制御処理を実行する（ステップＳ４）。他方、読み込んだデータと検出用データが一致しない場合は（ステップＳ３の「Ｎｏ」）、制御プログラム２０１による不正なアクセスであり、ソフトウェアエラーと判断して、安全動作移行プログラム２０３を実行する（ステップＳ５）。安全動作移行プログラム２０３は、解析に必要なメモリ情報（例えば、ＣＰＵ１０１のレジスタやＲＡＭ１０３のアクセス禁止領域４０１，４０２に書き込まれたデータ等）を、ＥＥＰＲＯＭ１０４に格納した後（ステップＳ６）、操舵補助モータ２０を停止させる（ステップＳ７）。このように、ＲＡＭ１０３のアクセス禁止領域にデータが書き込まれたことを検出した場合に、直ちに、操舵補助モータ２０を停止することとしたので、制御プログラム２０１が暴走する前に、操舵補助モータ２０を停止させることが可能となる。
【００４５】
なお、ここでは、ＥＥＰＲＯＭ１０４に解析に必要なメモリ情報を格納した後に、操舵補助モータ２０を停止させることとしたが、操舵補助モータ２０を停止させた後に、解析に必要なメモリ情報を、ＥＥＰＲＯＭ１０４に格納することにしてもよい。また、解析に必要なメモリ情報は、ＣＰＵ１０１のレジスタやＲＡＭ１０３のアクセス禁止領域４０１，４０２に書き込まれたデータに限られるものではなく、ＲＡＭ１０３のアクセス禁止領域にデータが書き込まれた原因（ソフトウェアエラーの原因）を解析するために必要なデータであれば、如何なるデータでもよい。
【００４６】
図６および図７は、ＲＡＭ１０３の他の構成例を示す図である。ＲＡＭ１０３の領域設定は、図３に示す例に限られるものではなく、例えば、図６および図７に示すような構成としてもよい。図６において、データ領域３１１とスタック領域３１２とが、隣接して設定されており、データ領域３１１の上側にアクセス禁止領域４１１、スタック領域３１２の下側にアクセス禁止領域４１２が隣接して設定されている。データ領域３１１は、矢印方向に使用され、下位アドレス側から上位アドレス側にデータ書き込まれる。また、スタック領域３１２は、矢印方向に使用され、上位アドレス側から下位アドレス側にデータが書き込まれる。
【００４７】
図７において、データ領域３２１とスタック領域３２２間にアクセス禁止領域４２１が設定されている。データ領域３２１は、矢印方向に使用され、上位アドレス側から下位アドレス側にデータ書き込まれる。また、スタック領域３２２は、矢印方向に使用され、下位アドレス側から上位アドレス側にデータが書き込まれる。このように、アクセス禁止領域４２１を設定することにより、１つのアクセス禁止領域で、データ領域３２１およびスタック領域３２２のオーバーフローを検出することができ、ＲＡＭ１０３のメモリ容量を低減することが可能となる。
【００４８】
図８は、ＣＰＵ１０１が制御プログラム２０１を実行することにより実現する機能（制御プログラム２０１の機能構成）を示す図である。
【００４９】
制御プログラム２０１は、図８に示すように、操舵トルクＴと車速Ｖに基づいて操舵補助トルク指令値を算出するトルク制御系モジュール（例えば、動作周期が１ｍｓｅｃ）５００と、各種のトルク補償を行う補償制御系モジュール（例えば、動作周期が２ｍｓｅｃ）５１０と、モータ電流のＦＢ（フィードバック）制御を行うモータ電流制御系モジュール５２０（例えば、動作周期が１２５μｓｅｃ）と、操舵補助モータ２０のモータ電流のＦＦ（フィードフォワード）制御を行うモータ電流補助制御系モジュール５３０（例えば、動作周期が１２５μｓｅｃ）等を備えている。つぎに、動作の概略を説明する。
【００５０】
まず、トルクセンサ１０で検出された操舵トルクＴと、車速センサ１２で検出された車速Ｖとがアシストマップ５０１に入力され操舵補助指令値が算出される。さらに、補償制御系モジュール５１０で演算される補償値、例えば、収斂性演算部５１１，慣性演算部５１２，およびＳＡＴ演算部５１３で算出された収斂性・慣性・ＳＡＴなどの補償値を、加算部５０２で操舵補助指令値に加算してトルク指令値Ｔｒｅｆが決定される。トルク指令値Ｔｒｅｆは、位相補償部５０３で位相補償された後、電流指令値演算部５４０に入力される。そして、トルク指令値Ｔｒｅｆに基づいて電流指令値演算部５４０で電流指令値Ｉｒｅｆが決定される。なお、ブラシレスモータでは、トルク指令値Ｔｒｅｆの他に回転子のロータ角度も電流指令値演算部５４０に入力して電流指令値Ｉｒｅｆが決定される。
【００５１】
一方、操舵補助モータ２０のモータ電流は、電流検出値Ｉｍとして、電流検出回路１６０で検出され、電流指令値Ｉｒｅｆとともに減算部５２１へ入力される。減算部５２１では、それらの偏差ΔＩ＝Ｉｒｅｆ−Ｉｍが算出され、ＰＩ（比例積分）制御部５２２に入力される。ＰＩ（比例積分）制御部５２２では、偏差ΔＩの比例積分出力として、電圧制御値Ｖｒｅｆが出力される。また、電流指令値Ｉｒｅｆは、補助値演算部５３１に入力される。補助値演算部５３１で演算される補助値、例えば、Ｄｅａｄ  Ｔｉｍｅ演算部５３２、ＥＭＦ（逆起電力）演算部５３３、および弱め界磁制御演算部５３４で算出された補助値が、加算部５３５で電圧制御値Ｖｒｅｆに加算される。加算部５３５の出力は、ＰＷＭ制御部５５０に入力されて、ＰＷＭ処理され、ＵＶＷ各相のＰＷＭ制御信号がＦＥＴプリドライバ回路１４０に出力され、ＦＥＴプリドライバ回路１４０およびモータ駆動回路１５０を介して、操舵補助モータ２０が駆動される。
【００５２】
実施例１によれば、制御プログラム２０１を実行して操舵補助モータ２０を制御するＣＰＵ１０１と、ＣＰＵ１０１が制御プログラム２０１を実行する場合にその作業領域として使用され、アクセス許可領域とアクセス禁止領域とを有するＲＡＭ１０３とを備え、ＣＰＵ１０１は、メモリ監視プログラム２０２を実行して、ＲＡＭ１０３のアクセス禁止領域へのデータの書き込みを監視して、制御プログラム２０１の不正アクセスを監視することとしたので、ＲＡＭ１０３のアクセス禁止領域へデータが書き込まれたか否かをソフトウェアにより検出して、ソフトウェアエラーを検出することができ、低コストな構成でＲＡＭ１０３を監視して、ソフトウェアの暴走を未然に防止することが可能となる。
【００５３】
また、実施例１によれば、ＣＰＵ１０１は、メモリ監視プログラム２０２を実行して、ＲＡＭ１０３のアクセス禁止領域のデータを読み込んで、検出用データと比較することで、アクセス禁止領域に書き込みがあるか否か検出することとしたので、簡単な方法で、ＲＡＭ１０３のアクセス禁止領域にデータが書き込まれたか否かを検出することが可能となる。
【００５４】
また、実施例１によれば、アクセス許可領域は、スタック領域およびデータ領域を含み、アクセス禁止領域は、スタック領域およびデータ領域に隣接した領域に設定しているので、スタック領域およびデータ領域のオーバーフローを監視することが可能となる。
【００５５】
また、実施例１によれば、ＣＰＵ１０１は、ＲＡＭ１０３のアクセス禁止領域へのデータの書き込みを検出した場合には、安全動作移行プログラム２０３を実行して、操舵補助モータ２０を停止させることとしたので、ソフトウェアが暴走する前に、操舵補助モータ２０を停止することが可能となる。
【００５６】
また、実施例１によれば、ＣＰＵ１０１は、ＲＡＭ１０３のアクセス禁止領域へのデータの書き込みを検出した場合には、安全動作移行プログラム２０３を実行して、解析に必要なメモリ情報をＥＥＰＲＯＭ１０４に格納することとしたので、ＲＡＭ１０３のアクセス禁止領域にデータが書き込まれた原因（ソフトウェアエラーの原因）を解析することが可能となる。
【００５７】
また、実施例１によれば、ＣＰＵ１０１は、メモリ監視プログラム２０２によるＲＡＭ１０３のアクセス禁止領域への書き込みの監視を、操舵補助モータ２０の立ち上がりの時定数よりも短い周期で実行することとしたので、ソフトウェアが暴走する前に、確実に操舵補助モータ２０を停止させる等の対策をとることが可能となる。
【００５８】
また、実施例１によれば、ＣＰＵ１０１およびＲＡＭ１０３のハードウェアエラーを副ＭＰＵ１１０およびＷＤＴ１３０等で検出することとしたので、ハードウェアエラーの無い状態でソフトウェアエラーを検出することが可能となる。
【実施例２】
【００５９】
実施例１では、メモリ監視プログラム２０２により、ＲＡＭ１０３のアクセス禁止領域への書き込みを検出した場合に、安全動作移行プログラム２０３を実行して操舵補助モータ２０を停止させる構成である。これに対して、実施例２は、メモリ監視プログラム２０２で、ＲＡＭ１０３のアクセス禁止領域への書き込みを検出した場合に、制御プログラム２０１に比して負荷の小さいサブ制御プログラム２０４を実行して、モータ制御を続行する構成である。
【００６０】
図９は、実施例２に係るＲＯＭおよびＲＡＭの構成例を示す図である。図９において、図３と同等機能を有する部位には同一符号を付してその説明を省略し、異なる点についてのみ説明する。同図において、ＲＯＭ１０２には、さらに、制御プログラム２０１に比して負荷の小さいサブ制御プログラム２０４が格納されている。
【００６１】
図１０は、実施例２に係るメモリ監視処理および安全動作移行処理を説明するためのフローチャートである。図１０において、図５と同様の処理を行うステップには、同一のステップ番号が付してある。
【００６２】
図１０において、まず、メモリ監視プログラム２０２によるメモリ監視処理が実行されると（ステップＳ１）、ＲＡＭ１０３のアクセス禁止領域４０１、４０２のデータを読み込み（ステップＳ２）、読み込んだデータと検出用データが一致するか否かを判定する（ステップＳ３）。読み込んだデータと検出用データが一致する場合は（ステップＳ３の「Ｙｅｓ」）、ソフトウェアが正常に動作していると判断して、モータ制御処理を実行する（ステップＳ４）。他方、読み込んだデータと検出用データが一致しない場合は（ステップＳ３の「Ｎｏ」）、制御プログラム２０１による不正アクセスであり、ソフトウェアエラーと判断して、安全動作移行プログラム２０３を実行し（ステップＳ５）、解析に必要なメモリ情報（例えば、ＣＰＵ１０１のレジスタやＲＡＭ１０３のアクセス禁止領域４０１，４０２に書き込まれたデータ等）を、ＥＥＰＲＯＭ１０４に格納する（ステップＳ６）。この後、サブ制御プログラム２０４を実行し、操舵補助モータ２０の制御を継続する（ステップＳ１０）。
【００６３】
図１１は、ＣＰＵ１０１がサブ制御プログラム２０４を実行することにより実現する機能（サブ制御プログラム２０４の機能構成）を示す図である。図１１において、図８と同等機能を有する部位には同一符号を付してある。図１１に示すサブ制御プログラム２０４は、図８に示す制御プログラム２０１において、モータ電流補助制御系モジュール５３０を削除して負荷を軽くしたものである。
【００６４】
実施例２によれば、ＣＰＵ１０１は、メモリ監視プログラム２０２によるメモリ監視処理で、ＲＡＭ１０３のアクセス禁止領域４０１，４０２へのデータの書き込みを検出した場合には、制御プログラム２０１の実行を停止して、制御プログラム２０１に比して負荷の少ないサブ制御プログラム２０４を実行して操舵補助モータ２０の制御を継続することとしたので、ソフトウェアの暴走を未然に防止することができるとともに、操舵補助モータ２０の制御を継続させることが可能となる。
【実施例３】
【００６５】
実施例３では、マルチタスクＯＳであるリアルタイムＯＳを用いて、マルチタスク構成としたものである。近時、車両用電動機の制御の複雑化に伴って多数のタスク（プロセス、ジョブ）を処理する必要がでてきており、それら多数のタスクに対して細かな優先順位を設定しなければならなくなってきている。そこで、実施例３では、マルチタスクＯＳであるリアルタイムＯＳを用いて、マルチタスク構成とした場合について説明する。
【００６６】
図１２は、実施例３に係るＲＯＭおよびＲＡＭの構成例を示す図である。図１２において、図３と同等機能を有する部位には同一符号を付してその説明を省略し、異なる点についてのみ説明する。同図において、ＲＯＭ１０２には、タスクの時間管理等を行うためのリアルタイムＯＳ２０５、タスク１〜３が格納されている。リアルタイムＯＳ２０５は、タスク１〜３の優先順位に従って、タスク１〜３の実行の時間的管理を行う。
【００６７】
ここで、リアルタイムＯＳ２０５およびタスク１〜３を、制御プログラム２１０と称する。タスク１〜３は優先順位が異なっており、タスク１は優先度が「高」、タスク２は優先度が「中」、タスク３は優先度が「低」に設定されている。例えば、タスク１は、操舵補助モータ２０を制御するためのモータ制御処理を実行するタスクであり、タスク２は、外部とＣＡＮ通信等の通信をするためのタスクであり、タスク３は、フェールセーフ（Ｆ／Ｓ）処理を行うためのタスクである。ここで示すタスク１〜３は一例であり、本発明はこれに限られるものではなく、電動パワーステアリング装置では他のタスクもある。
【００６８】
また、ＲＡＭ１０３には、タスク１を実行するためのタスク１用領域３３１（データ領域３３１ａ、スタック領域３３１ｂ）、タスク２を実行するためのタスク２用領域３３２（データ領域３３２ａ、スタック領域３３２ｂ）、タスク３を実行するためのタスク３用領域３３３（データ領域３３３ａ、スタック領域３３３ｂ）が初期設定で確保されている。なお、ここでは、タスク毎にそれぞれアクセス許可領域を設定することとしたが、複数のタスクについて、１つのアクセス許可領域を設定することにしてもよい。
【００６９】
各データ領域３３１ａ、３３２ａ、３３３ａおよび各スタック領域３３１ｂ、３３２ｂ、３３３ｂは、矢印方向に使用される。各タスク用領域３３１，３３２，３３３間には、アクセス禁止領域４３１，４３２，４３３，４３４が設定されている。なお、アクセス許可領域およびアクセス禁止領域の設定例は、図１２に示す例に限られるものではなく、各タスク毎に、上記図６および図７に示すような構成としてもよい。
【００７０】
メモリ監視プログラム２０２は、電源投入後の制御プログラム２１０が実行される前に、検出用データとして、アクセス禁止領域４３１に初期値＝０ｘ０１０１０１０１を、アクセス禁止領域４３２に初期値＝０ｘ０２０２０２０２を、アクセス禁止領域４３３に初期値＝０ｘ０３０３０３０３を、アクセス禁止領域４３４に初期値＝０ｘ０４０４０４０４をそれぞれ書き込む。メモリ監視プログラム２０２は、制御プログラム２１０の実行中または制御プログラム２１０の実行後に、メモリ監視処理を実行し、アクセス禁止領域４３１，４３２、４３３，４３４のデータを読み込んで、検出用データ（０ｘ０１０１０１０１，０ｘ０２０２０２０２、０ｘ０３０３０３０３、０ｘ０４０４０４０４）とそれぞれ比較することで、アクセス禁止領域４３１，４３２、４３３，４３４に書き込みがあるか否か検出する。
【００７１】
図１３は、タスク１〜３およびメモリ監視処理のタイミングチャートの一例を示す図である。同図において、Ｔ１は通常時、Ｔ２は外乱発生時、Ｔはモータ電流制御周期を示している。メモリ監視処理は、タスク１〜３が実行されていない間に実行され、その周期は、操舵補助モータ２０の立ち上がりの時定数より小さい周期となっている。
【００７２】
Ｔ１の期間は、外乱要素がなく、他のタスク処理に影響されずに、通常処理を行っている。Ｔ２の期間は、外乱要素が発生した場合を示しており、他のタスク処理の割り込みが発生し、ＲＡＭ１０３の使用領域が増加する傾向となる。例えば、時刻ｔ１に、外乱要素が発生し、タスク３の処理中に、優先度「中」のタスク２の処理が要求された場合、タスク３は待ち行列処理が発生し、一時的に処理を中断し、中断した情報をＲＡＭ１０３のタスク３用領域３３３のスタック領域３３３ｂに保存しておく。次に、時刻ｔ２で、タスク２の処理中に、処理の優先度「高」のタスク１の処理が要求されると、タスク２は待ち行列が発生し、一時的に処理を中断し、中断した情報をＲＡＭ１０３のタスク２用領域３３２のスタック領域３３２ｂに保存する。この後、中断したタスク２，タスク３の処理を実行する。この場合、外乱要素がない場合に比して、一時的なメモリ使用量が増加してしまい、ＲＡＭ１０３のオーバーフローが発生する可能性が高くなる。
【００７３】
なお、メモリ監視処理の実行周期は、図１３に示す場合に限られるものではなく、例えば、タスク１の実行後に、必ず実行することにしてもよく、操舵補助モータ２０の立ち上がりの時定数より小さい周期であれば、如何なる周期で行うことにしてもよい。
【００７４】
図１４は、実施例３に係るメモリ監視処理および安全動作移行処理を説明するためのフローチャートである。図１４において、図５と同様の処理を行うステップには、同一のステップ番号が付してある。
【００７５】
図１４において、まず、メモリ監視プログラム２０２によるメモリ監視処理が実行されると（ステップＳ１）、ＲＡＭ１０３のアクセス禁止領域４３１、４３２、４３３、４３４のデータを読み込み（ステップＳ２）、読み込んだデータと検出用データが一致するか否かを判定する（ステップＳ３）。読み込んだデータと検出用データが一致する場合は（ステップＳ３の「Ｙｅｓ」）、ソフトウェアが正常に動作していると判断して、タスク１〜３を実行する（ステップＳ２０）。他方、読み込んだデータと検出用データが一致しない場合は（ステップＳ３の「Ｎｏ」）、制御プログラム２１０の不正なアクセスであり、ソフトウェアエラーと判断して、安全動作移行プログラム２０３を実行する（ステップＳ５）。安全動作移行プログラム２０３は、解析に必要なメモリ情報（例えば、ＣＰＵ１０１のレジスタやＲＡＭ１０３のアクセス禁止領域４３１，４３２，４３３，４３４に書き込まれたデータ等）を、ＥＥＰＲＯＭ１０４に格納した後（ステップＳ６）、操舵補助モータ２０を停止させる（ステップＳ７）。
【００７６】
なお、ここでは、メモリ監視プログラム２０２で、ＲＡＭ１０３のアクセス禁止領域４３１，４３２，４３３、４３４への書き込みを検出した場合に、操舵補助モータ２０を停止させることとしたが、実施例２のように、各タスク１〜３について、より負荷の軽いタスクをＲＯＭ１０２に格納しておいて、アクセス禁止領域４３１，４３２，４３３、４３４への書き込みを検出した場合に、負荷の軽いタスクを実行することにしてもよい。
【００７７】
実施例３によれば、制御プログラム２１０は、優先順位の異なる複数のタスクを含み、ＲＡＭ１０３は、複数のタスク用の各タスク用領域３３１，３３２，３３３が設定されており、各タスク用領域３３１，３３２，３３３間にアクセス禁止領域４３１，４３２，４３３，４３４が設定されており、ＣＰＵ１０１は、メモリ監視プログラム２０２を実行して、ＲＡＭ１０３の各タスク用領域３３１，３３２，３３３間のアクセス禁止領域４３１，４３２，４３３，４３４を監視することとしたので、各タスクのソフトウェアエラーを検出することが可能となる。
【００７８】
なお、上記実施例１〜３では、車両用電動機として電動パワーステアリング装置の操舵補助モータを制御する制御装置を一例として説明したが、本発明はこれに限られるものではなく、他の車両用電動機に適用することができ、例えば、ハイブリット車両用の電動機等に広く適用可能である。
【産業上の利用可能性】
【００７９】
本発明に係る車両用電動機の制御装置、車両用電動機の制御方法、およびコンピュータが実行するためのプログラムは、車両に搭載される各種車両用電動機に適用可能であるが、特に、電動パワーステアリング装置の操舵補助モータを制御する場合に有用である。
【図面の簡単な説明】
【００８０】
【図１】電動パワーステアリング装置の一般的な構成を示す図である。
【図２】図１のコントロールユニットのハードウェア構成を示す図である。
【図３】主ＭＣＵのＲＯＭおよびＲＡＭのメモリ構成例を示す図である。
【図４】制御プログラムとメモリ監視プログラムの実行タイミングを説明するための図である。
【図５】メモリ監視処理および安全動作移行処理を説明するためのフローチャートである。
【図６】ＲＡＭの他の構成例（その１）を示す図である。
【図７】ＲＡＭの他の構成例（その２）を示す図である。
【図８】ＣＰＵが制御プログラムを実行することにより実現する機能（制御プログラムの機能構成）を示す図である。
【図９】実施例２に係るＲＯＭおよびＲＡＭの構成例を示す図である。
【図１０】実施例２に係るメモリ監視処理および安全動作移行処理を説明するためのフローチャートである。
【図１１】ＣＰＵがサブ制御プログラムを実行することにより実現する機能（サブ制御プログラムの機能構成）を示す図である。
【図１２】実施例３に係るＲＯＭおよびＲＡＭの構成例を示す図である。
【図１３】タスク１〜３およびメモリ監視処理のタイミングチャートの一例を示す図である。
【図１４】実施例３に係るメモリ監視処理および安全動作移行処理を説明するためのフローチャートである。
【符号の説明】
【００８１】
１  操向ハンドル
２  コラム軸
３  減速ギア
４ａ，４ｂ  ユニバーサルジョイント
５  ピニオンラック機構
６  タイロッド
１０  トルクセンサ
１２  車速センサ
１４  バッテリ
２０  操舵補助モータ
３０  コントロールユニット
１００  主ＭＣＵ（マイクロコントロールユニット）
１０１  ＣＰＵ（制御手段）
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  ＥＥＰＲＯＭ
１０５  Ａ／Ｄ変換器
１０６  インターフェース
１０７  バス
１１０  副ＭＣＵ（マイクロコントロールユニット）
１１１  ＣＰＵ
１１２  ＲＯＭ
１１３  ＲＡＭ
１１５  Ｄ／Ａ変換器
１１６  Ａ／Ｄ変換器
１３０  ＷＤＴ（ウォッチドックタイマ）
１４０  ＦＥＴプリドライバ回路
１５０  モータ駆動回路（インバータ）
１６０  電流検出回路
１７０  位置検出回路
２０１，２１０  制御プログラム
２０２  メモリ監視プログラム
２０３  安全動作移行プログラム
２０４  サブ制御プログラム
３０１，３１１，３２１  データ領域
３０２，３１２，３２２  スタック領域
４０１，４０２，４１１，４１２  ４２１，４３１，４３２，４３３，４３４  アクセス禁止領域
３３１  タスク１用領域
３３２  タスク２用領域
３３３  タスク３用領域
５００  トルク制御系モジュール
５１０  補償制御系モジュール
５２０  モータ電流制御系モジュール
５３０  モータ電流補助制御系モジュール
【図１】
2008172896.tif 000003
【図２】
2008172896.tif 000004
【図３】
2008172896.tif 000005
【図４】
2008172896.tif 000006
【図５】
2008172896.tif 000007
【図６】
2008172896.tif 000008
【図７】
2008172896.tif 000009
【図８】
2008172896.tif 000010
【図９】
2008172896.tif 000011
【図１０】
2008172896.tif 000012
【図１１】
2008172896.tif 000013
【図１２】
2008172896.tif 000014
【図１３】
2008172896.tif 000015
【図１４】
2008172896.tif 000016