(57)【要約】【課題】本発明は、メモリ制御装置に関し、不揮発性メモリへのデータ書き込み中に生じる電源瞬断を、不揮発性メモリの記憶機能自体の異常や読み出し機能自体の異常と区別して判定することにある。【解決手段】終了時、不揮発性メモリの有する複数のデータ記憶領域に同じデータをそれぞれ書き込むデータ書込手段を備えるメモリ制御装置において、データ書込手段による複数のデータ記憶領域への同じデータの書き込みが完了した場合、正常にデータの書き込みが行われた旨を示すフラグを不揮発性メモリの有するフラグ記憶領域に書き込む。また、起動時、フラグ記憶領域のフラグ状態に基づいて、前回終了時のデータ書込手段による複数のデータ記憶領域への同じデータの書き込み中に電源瞬断が生じたか否かを判別する。そして、前回終了時のデータ書き込み中に電源瞬断が生じたと判別された場合、複数のデータ記憶領域に書き込まれているデータを修復する。【選択図】図１
2009289049.tif 000002
【特許請求の範囲】
【請求項１】
終了時、不揮発性メモリの有する複数のデータ記憶領域に同じデータをそれぞれ書き込むデータ書込手段を備えるメモリ制御装置であって、
前記データ書込手段による前記複数のデータ記憶領域への同じデータの書き込みが完了した場合、正常にデータの書き込みが行われた旨を示すフラグをオン状態にセットして不揮発性メモリの有するフラグ記憶領域に書き込む正常終了フラグ書込手段と、
起動時、前記フラグ記憶領域のフラグ状態と前記データ記憶領域のデータ状態とに基づいて、前回終了時の前記データ書込手段による前記複数のデータ記憶領域への同じデータの書き込み中に電源瞬断が生じたか否かを判別する電源瞬断判別手段と、
前記電源瞬断判別手段により前回終了時のデータ書き込み中に電源瞬断が生じたと判別された場合、前記複数のデータ記憶領域に書き込まれているデータを修復するデータ修復手段と、
を備えることを特徴とするメモリ制御装置。
【請求項２】
前記電源瞬断判別手段は、起動時、前記フラグ記憶領域のフラグがオン状態にセットされておらず、かつ、前記複数のデータ記憶領域のデータが二分されているときは、前回終了時の前記データ書込手段による前記複数のデータ記憶領域への同じデータの書き込み中に電源瞬断が生じたと判別することを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
前記データ記憶領域は３つ設けられており、
前記電源瞬断判別手段は、起動時、前記フラグ記憶領域のフラグがオン状態にセットされておらず、かつ、１つの前記データ記憶領域のデータ状態が他の２つの前記データ記憶領域の共通したデータ状態と異なるときは、前回終了時の前記データ書込手段による前記複数のデータ記憶領域への同じデータの書き込み中に電源瞬断が生じたと判別することを特徴とする請求項１記載のメモリ制御装置。
【請求項４】
前記データ修復手段は、データ修復を前記複数のデータ記憶領域に書き込まれるデータが相互に一致するように行うことを特徴とする請求項１記載のメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置に係り、特に、例えば次回起動時に今回終了状態を多数決によって信頼性の高いデータとして読み込むべく、終了時、不揮発性メモリの有する複数のデータ記憶領域に同じデータをそれぞれ書き込むデータ書込手段を備えるうえで好適なメモリ制御装置に関する。
【背景技術】
【０００２】
従来、不揮発性メモリの有する複数の記憶領域それぞれに同じデータを書き込む装置が知られている（例えば、特許文献１参照）。この装置においては、各記憶領域それぞれに書き込まれたデータの一致／不一致の多数決に基づいて、誤ったデータの書き込みが生じたか否かが判別される。そして、誤ったデータの書き込みが生じたと判別された場合、不揮発性メモリに正しいデータの再書き込みが実施される。具体的には、３つの記憶領域の３つのデータのうち１つのデータが異なっている場合、その１つのデータが書き込まれた記憶領域について他の２つのデータに合わせて再書き込みが行われる。従って、上記の装置によれば、不揮発性メモリに記憶させるデータを正しいデータに修復することができ、不揮発性メモリに記憶されるデータの高い信頼性を確保することができる。
【特許文献１】特開２００５−１９６５１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、上記の装置では、不揮発性メモリの記憶機能の故障によってデータの異常が発生した場合、その異常データが正しいデータに書き換えられて見えなくなってしまうことがあるため、特にデバイスの故障を検出することでデータの信頼性を保障する必要のあるシステムでは上記の装置を単に用いることはできない。また、多数決データの不一致が、不揮発性メモリへのデータ書き込み中に電源瞬断が生じたことに起因して生じたのか、不揮発性メモリ自体の記憶機能が異常になったことに起因して生じたのかを区別することは困難である。
【０００４】
また、各記憶領域それぞれのデータが相互に不一致であるか否かの判別は、各記憶領域から読み出したデータを比較することにより実現可能であるが、仮に各記憶領域に記憶されているデータ自体は相互に一致していたとしても、読み出し異常が発生したときは、読み出したデータが相互に不一致になることがある。このため、この場合も上記と同様に、そのデータ不一致が、電源瞬断が生じたことに起因して生じたのか、不揮発性メモリからのデータ読み出し機能が異常になったことに起因して生じたのかを区別することは困難である。
【０００５】
本発明は、上述の点に鑑みてなされたものであり、不揮発性メモリへのデータ書き込み中に生じる電源瞬断を、不揮発性メモリの記憶機能の異常や読み出し，書き込み機能の異常と区別して判定することが可能なメモリ制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の目的は、終了時、不揮発性メモリの有する複数のデータ記憶領域に同じデータをそれぞれ書き込むデータ書込手段を備えるメモリ制御装置であって、前記データ書込手段による前記複数のデータ記憶領域への同じデータの書き込みが完了した場合、正常にデータの書き込みが行われた旨を示すフラグをオン状態にセットして不揮発性メモリの有するフラグ記憶領域に書き込む正常終了フラグ書込手段と、起動時、前記フラグ記憶領域のフラグ状態と前記データ記憶領域のデータ状態とに基づいて、前回終了時の前記データ書込手段による前記複数のデータ記憶領域への同じデータの書き込み中に電源瞬断が生じたか否かを判別する電源瞬断判別手段と、前記電源瞬断判別手段により前回終了時のデータ書き込み中に電源瞬断が生じたと判別された場合、前記複数のデータ記憶領域に書き込まれているデータを修復するデータ修復手段と、を備えるメモリ制御装置により達成される。
【０００７】
この態様の発明において、不揮発性メモリの有する複数のデータ記憶領域への同じデータの書き込みが完了すると、不揮発性メモリの有するフラグ記憶領域に、正常にデータの書き込みが行われた旨を示すフラグがオン状態にセットされて書き込まれる。
【０００８】
複数のデータ記憶領域への同じデータの書き込み中に電源瞬断が生じない場合は、その書き込み完了後にフラグ記憶領域に正常にデータの書き込みが行われた旨を示すフラグがオン状態にセットされて書き込まれる。一方、複数のデータ記憶領域へのデータ書き込み中に電源瞬断が生じた場合は、フラグ記憶領域にそのフラグがオン状態にセットされて書き込まれることはない。尚、電源瞬断が生じなくても、不揮発性メモリのデータ記憶領域にて記憶機能や読み出し機能に異常が生じた場合は、フラグ記憶領域にそのオンフラグが書き込まれないこともある。この点、フラグ記憶領域のフラグ状態を確認すれば、電源瞬断及びデータ記憶領域の記憶機能や読み出し機能の異常の何れかが生じたか否かを判定することが可能となる。
【０００９】
また、複数のデータ記憶領域へのデータ書き込み中に単発の電源瞬断が生じると、不揮発性メモリのデータ記憶領域はデータの書き換えが行われた領域とデータの書き換えが未だ行われていない領域とに二分されるので、電源瞬断が一回生じただけでは、不揮発性メモリのデータ記憶領域のデータの多数決判定にてすべてのデータが不一致となることはない。一方、上記の電源瞬断が、二分されたデータ記憶領域のデータの修復を行うことなく連続して生じると、不揮発性メモリのデータ記憶領域のデータが三種類以上に分かれた状態となることがある。尚、不揮発性メモリのデータ記憶領域にて記憶機能や読み出し機能に異常が生じた場合も、不揮発性メモリのデータ記憶領域のデータが三種類以上に分かれた状態となるので、多数決判定にてすべてのデータが不一致となって、信頼できるデータを特定することができなくなる。
【００１０】
本発明においては、起動時、フラグ記憶領域のフラグ状態とデータ記憶領域のデータ状態とに基づいて、前回終了時の複数のデータ記憶領域への同じデータの書き込み中に電源瞬断が生じたか否かが判別される。そして、その電源瞬断が生じたと判別された場合、複数のデータ記憶領域に書き込まれているデータが修復される。このため、データ書き込み中に電源瞬断が連続しても各瞬断後の起動ごとに、複数のデータ記憶領域のデータを、その電源瞬断に起因して二分された状態から相互に一致した状態に修復することができる。電源瞬断後、起動時にデータが修復されれば、不揮発性メモリのデータ記憶領域のデータが三種類以上に分かれることはない。従って、本発明によれば、電源瞬断が終了時におけるデータ記憶領域へのデータ書き込み中に再度発生しても、複数のデータ記憶領域のデータが全不一致となることはなく、次回起動時にその電源瞬断をデータ記憶領域の記憶機能や読み出し機能の異常と区別して判断することができる。このため、本発明によれば、データ書き込み中の電源瞬断によるデータ不一致を不揮発性メモリの記憶機能自体や読み出し機能自体の異常によるデータ不一致と区別させることができ、起動時ごとに前回終了時の電源瞬断の有無を適切に判定することができる。
【００１１】
尚、上記したメモリ制御装置において、前記電源瞬断判別手段は、起動時、前記フラグ記憶領域のフラグがオン状態にセットされておらず、かつ、前記複数のデータ記憶領域のデータが二分されているときは、前回終了時の前記データ書込手段による前記複数のデータ記憶領域への同じデータの書き込み中に電源瞬断が生じたと判別することとしてもよい。
【００１２】
上記の如く、データ書き込み中に電源瞬断が生じた場合は、その一回の電源瞬断に起因して、不揮発性メモリのデータ記憶領域のデータは三種類以上に分かれることはなく、必ず二種類に分かれる。従って、本発明においては、データ書き込み中の電源瞬断の有無を適切に判定することができ、その電源瞬断によるデータ不一致を不揮発性メモリの記憶機能自体や読み出し機能自体の異常によるデータ不一致と区別することが可能となる。
【００１３】
また、上記したメモリ制御装置において、前記データ記憶領域は３つ設けられており、前記電源瞬断判別手段は、起動時、前記フラグ記憶領域のフラグがオン状態にセットされておらず、かつ、一つの前記データ記憶領域のデータ状態が他の２つのデータ記憶領域の共通したデータ状態と異なるときは、前回終了時の前記データ書込手段による前記複数のデータ記憶領域への同じデータの書き込み中に電源瞬断が生じたと判別することとしてもよい。
【００１４】
上記の如く、データ書き込み中に電源瞬断が生じた場合は、３つのデータ記憶領域があれば、２つのデータ記憶領域のデータは互いに一致するが、他の一つのデータ記憶領域のデータはその一致する共通のデータと異なるものとなる。従って、本発明においては、データ書き込み中の電源瞬断の有無を適切に判定することができ、その電源瞬断によるデータ不一致を不揮発性メモリの記憶機能自体や読み出し機能自体の異常によるデータ不一致と区別することが可能となる。
【００１５】
更に、上記したメモリ制御装置において、前記データ修復手段は、データ修復を前記複数のデータ記憶領域に書き込まれるデータがすべて一致するように行うこととすればよい。
【発明の効果】
【００１６】
本発明によれば、不揮発性メモリへのデータ書き込み中に生じる電源瞬断を、不揮発性メモリの記憶機能自体の異常や読み出し機能自体の異常と区別して判定することができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を用いて、本発明の具体的な実施の形態について説明する。
【００１８】
図１は、本発明の一実施例であるメモリ制御装置を備えるモータ制御装置１０の構成図を示す。本実施例のモータ制御装置１０は、車両に搭載されており、車両がイグニションオンにあるときに電源供給されて作動可能となり、車両がイグニションオフにあるときは電源遮断されて作動不可能となる。
【００１９】
モータ制御装置１０は、車輪やステアリング機構などに設けられた電気モータ１２と、電気モータ１２の回転を検出する回転センサ１４と、電気モータ１２を回転駆動する駆動回路１６と、駆動回路１６を駆動させて電気モータ１２を制御する中央演算処理装置（ＣＰＵ）１８と、外部記憶装置２０と、を備えている。電気モータ１２は、イグニションオン中に電源供給されることにより回転駆動され、イグニションオフ中は電源遮断されることにより外力の作用でも回転駆動されない。
【００２０】
ＣＰＵ１８は、電気モータ１２の位置目標値を算出する位置目標値算出部２２と、回転センサ１４に接続されて電気モータ１２の回転位置を計算する位置計算部２４と、駆動回路１６に接続されて駆動回路１６を駆動制御するモータ制御部２６と、を有している。モータ制御部２６は、イグニションオン時に所定の電源電圧が印加された状態で、位置目標値算出部２２にて算出される電気モータ１２の位置目標値と、位置計算部２４にて計算される電気モータ１２の実際の回転位置とに基づいて、実際の回転位置が位置目標値に一致するように駆動回路１６を駆動して電気モータ１２のフィードバック駆動を行う。
【００２１】
外部記憶装置２０は、電源供給が停止されて電源遮断がなされても記憶データを保持する不揮発性のメモリ（ＥＥＰＲＯＭ）である。外部記憶装置２０は、イグニションオンからオフへの切替時の電源が遮断される直前に電気モータ１２の回転位置のデータ（以下、終了状態データと称す）が書き込まれるデータ記憶領域と、そのデータ記憶領域へデータの書き込みが正常に完了した場合に正常にデータの書き込みが行われた旨を示すフラグ（以下、正常終了フラグと称す）が書き込まれるフラグ記憶領域と、を有している。
【００２２】
外部記憶装置２０のデータ記憶領域は、同一の終了状態データがそれぞれ書き込まれるように複数（本実施例では３つ）設けられている。また、外部記憶装置２０のフラグ記憶領域は、同一の正常終了フラグがそれぞれ書き込まれるように複数（本実施例では３つ）設けられている。以下、３つのデータ記憶領域をアドレス０×０１、０×０２、及び０×０３とし、また、３つのフラグ記憶領域をアドレス０×ＦＤ、０×ＦＥ、及び０×ＦＦとする。
【００２３】
ＣＰＵ１８は、電源供給が遮断される前のモータ制御終了時に電気モータ１２の終了状態データを外部記憶装置２０のデータ記憶領域に書き込み、その終了状態データの書き込みが正常に完了した場合に正常終了フラグを外部記憶装置２０のフラグ記憶領域に書き込んでオンセットする。以下、この処理を終了制御と称す。すなわち、イグニションオフ信号を受信した後、電源供給が遮断されるまでの間（数秒間）のうちにデータ記憶を含む終了制御を行う。
【００２４】
また、ＣＰＵ１８は、イグニションオフからオンへの切替時を含む電源供給が開始されるモータ制御開始時（起動時）に外部記憶装置２０のデータ記憶領域から記憶されている終了状態データを読み出して、その終了状態データに基づいて電気モータ１２の現回転位置を把握し、その回転位置を初期値として電気モータ１２の回転駆動制御を開始する。
【００２５】
ところで、起動時に使用する前回終了時の終了状態データの信頼性を高く確保するためには、前回終了時に外部記憶装置２０の複数のデータ記憶領域に同一の終了状態データを書き込み、起動時に読み込んだデータの整合確認を行うことが有効である。かかる外部記憶装置２０の複数のデータ記憶領域に同一の終了状態データを書き込む構成によれば、次回起動時にすべての終了状態データを読み出すことにより、多数決によって有効な終了状態データを決定することが可能となるので、データの高い信頼性を確保することが可能となる。
【００２６】
一方、この構成では、上記の如く終了時に外部記憶装置２０の複数のデータ記憶領域に同一の終了状態データが順次時間をおいて書き込まれることとなるので、複数のデータ記憶領域への同一終了状態データの書き込み途中で電源瞬断が生じることがある。
【００２７】
かかるデータ書き込み途中に単発の電源瞬断が生じると、その後、外部記憶装置２０のデータは二種類に分かれる。例えば、初期のすべてのアドレスの終了状態データが“Ｂ”であった状況で、アドレス０×０３への終了状態データ“Ａ”の書き込み途中に電源瞬断が生じると、その後は、図２（Ａ）に示す如く、アドレス０×０１及び０×０２は終了状態データ“Ａ”を記憶する状態となるが、アドレス０×０３は従前の終了状態データ“Ｂ”の記憶を継続する状態となる。この場合は、外部記憶装置２０の３つのデータ記憶領域に記憶された終了状態データから、多数決の原理により信頼性のあるデータを決めることが可能である。
【００２８】
しかし、複数のデータ記憶領域への同一終了状態データの書き込み途中の電源瞬断が連続して起きると、その初回瞬断後の起動時に何ら修復処理を行わなければ、各データ記憶領域それぞれの終了状態データのすべてが不一致になる事態が生じる。例えば、初期のすべてのアドレスの終了状態データが“Ｃ”であった状況で、最初にアドレス０×０３への終了状態データ“Ｂ”の書き込み途中に電源瞬断が生じ、その後にアドレス０×０２への終了状態データ“Ａ”の書き込み途中に電源瞬断が生じると、その後は、図２（Ｂ）に示す如く、アドレス０×０１は終了状態データ“Ａ”を、アドレス０×０２は終了状態データ“Ｂ”を、アドレス０×０３は従前の終了状態データ“Ｃ”を、それぞれ記憶する状態となる。この場合は、外部記憶装置２０の３つのデータ記憶領域に記憶された終了状態データから、多数決の原理により信頼性のあるデータを決定することができなくなる。
【００２９】
また、上記の如く各データ記憶領域の終了状態データのすべてが互いに異なりそのすべてが不一致となるのは、データ修復が行われることなく電源瞬断が連続して起きた場合だけでなく、外部記憶装置２０自体の記憶機能異常や読み出し機能異常が生じた場合でも起こる。このため、各終了状態データがすべて相互に不一致になった後では、そのデータ不一致が、電源瞬断が繰り返し起きたことに起因するのか、外部記憶装置２０自体の記憶機能や読み出し機能が異常になったことに起因するのかを区別することは困難であり、その各終了状態データのすべての不一致が、外部記憶装置２０の記憶機能異常・読み出し機能異常によるものと即断することはできなくなる。
【００３０】
従って、電源瞬断が生じた場合、その後の起動時に信頼性のあるデータを使用するためには、各終了状態データがすべて相互に不一致にならないようにすなわち外部記憶装置２０の記憶機能異常・読み出し機能異常と区別できるように、個々の電源瞬断が生じるごとに、その後の起動時に、その電源瞬断により他のアドレスの終了状態データと一致しないアドレスの終了状態データの修復を行って、外部記憶装置２０の３つのデータ記憶領域に記憶させる終了状態データを相互に一致させることが必要となる。
【００３１】
ここで、データ書き込み途中に単発の電源瞬断が生じた場合は、上記の如く、外部記憶装置２０のデータ記憶領域のデータは、三種類以上に分かれることはなく、二種類に分かれるだけであって、かつ、外部記憶装置２０のフラグ記憶領域は、正常終了フラグが書き込まれないものとなる。尚、外部記憶装置２０自体の記憶機能異常時や書き込み・読み出し機能異常時には、そのフラグ記憶領域に正常終了フラグが書き込まれない場合もあるが、データ書込み時や読み出し時のベリファイチェックにて外部記憶装置２０の記憶・読み出し機能の異常を検出可能である。
【００３２】
従って、起動時ごとにフラグ記憶領域の正常終了フラグの状態とデータ記憶領域の終了状態データの状態とを確認すれば、データ記憶領域への終了状態データの書き込み中の電源瞬断の有無を、外部記憶装置２０の記憶・読み出し機能の異常と区別して適切に判定することができ、電源瞬断による終了状態データの不一致をその記憶機能異常・読み出し機能異常による終了状態データの不一致と区別することができる。そして、電源瞬断が生じたと判別した場合には、データ記憶領域の終了状態データをその電源瞬断により相互に不一致となっている（二分されている）状態から相互に一致した状態に修復することができ、これにより、起動時の多数決判定に用いられる終了状態データの電源瞬断による破壊を防ぎ、外部記憶装置２０のデータ記憶領域に記憶される終了状態データの高い信頼性を確保することが可能になる。
【００３３】
そこで、図３及び図４を参照して、本実施例のモータ制御装置１０の備えるメモリ制御装置において上記の機能を実現すべく行われる動作について説明する。図３は、本実施例のメモリ制御装置においてＣＰＵ１８がモータ制御終了時に実行する制御ルーチンの一例のフローチャートを示す。また、図４は、本実施例のメモリ制御装置においてＣＰＵ１８がモータ制御開始時に実行する制御ルーチンの一例のフローチャートを示す。
【００３４】
本実施例において、ＣＰＵ１８は、イグニションオフ信号により電気モータ１２の回転駆動が停止されてモータ駆動制御の終了条件が成立すると、終了制御を開始する。具体的には、まず、そのモータ制御終了条件成立後すなわち終了制御開始後に外部記憶装置２０のデータ記憶領域に対する終了状態データの書き込みを試行した回数を示す書き込みリトライ回数Ｎ１を“０”にリセットする処理を行う（ステップ１００）。
【００３５】
そして、そのモータ制御終了条件成立時に位置計算部２４にて回転駆動停止した電気モータ１２の実際の回転位置を計算し、その回転位置を示す終了状態データを外部記憶装置２０のデータ記憶領域へ書き込む処理を行う（ステップ１０２）。具体的には、３つのデータ記憶領域（アドレス０×０１、０×０２、及び０×０３）それぞれに、その同一の回転位置を示す終了状態データを順次所定時間をおいて書き込む処理を行う。データ記憶領域に終了状態データを書き込むと、そのデータ記憶領域に書き込まれた書込データをベリファイ処理して（ステップ１０４）、各アドレス０×０１、０×０２、及び０×０３の記憶値と書き込み値がすべて一致するか否かを判別する（ステップ１０６）。
【００３６】
そして、その判別の結果、一致しない書き込み値がある場合は、次に、現時点の書き込みリトライ回数Ｎ１が所定回数Ｎ０以下であるか否かを判別する（ステップ１０８）。尚、この所定回数Ｎ０は、モータ制御終了条件成立後すなわち終了制御開始後に外部記憶装置２０のデータ記憶領域に対する終了状態データの書き込みを試行する回数の上限値であり、例えば３回などに設定されている。
【００３７】
そして、Ｎ１≦Ｎ０が成立すると判別した場合は、次に、その書き込みリトライ回数Ｎ１を“１”だけインクリメントしたうえで（ステップ１１０）、再度、計算した電気モータ１２の回転位置を示す終了状態データを外部記憶装置２０のデータ記憶領域（アドレス０×０１、０×０２、及び０×０３）に書き込む処理を行う（ステップ１０２）。
【００３８】
一方、上記ステップ１０６の判別の結果、各アドレス０×０１、０×０２、及び０×０３の書き込み値のすべてが一致する場合は、データ記憶領域へデータの書き込みが正常に完了したと判断でき、次に、モータ制御終了条件成立後すなわち終了制御開始後に外部記憶装置２０のフラグ記憶領域に対する正常終了フラグオンの書き込みを試行した回数を示す書き込みリトライ回数Ｎ２を“０”にリセットする処理を行う（ステップ１１２）。
【００３９】
そして、正常にデータの書き込みが行われた旨を示す正常終了フラグをオン状態にセットして外部記憶装置２０のフラグ記憶領域に書き込む処理を行う（ステップ１１４）。具体的には、３つのフラグ記憶領域（アドレス０×ＦＤ、０×ＦＥ、及び０×ＦＦ）それぞれに、その同一の正常終了フラグのオンを順次所定時間をおいて書き込む処理を行う。フラグ記憶領域に正常終了フラグのオンを書き込むと、そのフラグ記憶領域に書き込まれた書込データをベリファイ処理して（ステップ１１６）、各アドレス０×ＦＤ、０×ＦＥ、及び０×ＦＦの記憶値と書き込み値がすべて一致するか否かを判別する（ステップ１１８）。
【００４０】
そして、その判別の結果、一致しない書き込み値がある場合は、次に、現時点の書き込みリトライ回数Ｎ２が所定回数Ｎ０以下であるか否かを判別する（ステップ１２０）。尚、この所定回数Ｎ０は、モータ制御終了条件成立後に外部記憶装置２０のフラグ記憶領域に対する正常終了フラグオンの書き込みを試行する回数の上限値であり、例えば３回などに設定されている。
【００４１】
そして、Ｎ２≦Ｎ０が成立すると判別した場合は、次に、その書き込みリトライ回数Ｎ２を“１”だけインクリメントしたうえで（ステップ１２２）、再度、正常終了フラグをオン状態にセットして外部記憶装置２０のフラグ記憶領域（アドレス０×ＦＤ、０×ＦＥ、及び０×ＦＦ）に書き込む処理を行う（ステップ１１４）。
【００４２】
また、上記ステップ１０８においてＮ１＞Ｎ０が成立すると判別した場合は、外部記憶装置２０のデータ記憶領域へのデータ書き込みが正常に行われず或いはそのデータ記憶領域からのデータ読み出しが正常に行われず、その外部記憶装置２０自体に記憶機能・読み出し機能の異常が生じていると判断して、かかる異常に対する処置（例えば、ランプ警告など）を実行する（ステップ１２４）。更に、上記ステップ１２０においてＮ２＞Ｎ０が成立すると判別した場合も、外部記憶装置２０のフラグ記憶領域へのデータ書き込みが正常に行われず或いはそのデータ記憶領域からのデータ読み出しが正常に行われず、その外部記憶装置２０自体に記憶機能・読み出し機能の異常が生じていると判断して、かかる異常に対する処置（例えば、ランプ警告など）を実行する（ステップ１２６）。
【００４３】
ＣＰＵ１８は、上記ステップ１１８において各アドレス０×ＦＤ、０×ＦＥ、及び０×ＦＦの書き込み値のすべてが一致すると判別し又はステップ１２４若しくは１２６の処理を終了すると、今回のルーチン（終了制御）を終了する。
【００４４】
上記図３に示すルーチンによれば、イグニションオフ信号により電気モータ１２の回転駆動が停止されてモータ駆動制御が終了した場合に、外部記憶装置２０の３つのデータ記憶領域（アドレス０×０１、０×０２、及び０×０３）それぞれに同一の電気モータ１２の終了状態データを順に書き込むことができる。そして、その書き込みが正常に行われてその書き込み値がすべて一致した場合は、外部記憶装置２０の３つのフラグ記憶領域（アドレス０×ＦＤ、０×ＦＥ、及び０×ＦＦ）それぞれに同一の正常終了フラグを順に書き込むことができるが、３つのデータ記憶領域への同一の終了状態データの書き込み値が一つでも一致しない場合は、フラグ記憶領域への正常終了フラグの書き込みを禁止することができる。
【００４５】
また、ＣＰＵ１８は、電源供給開始やイグニションオン信号により電気モータ１２の回転駆動が許容されてそのモータ駆動制御の開始条件が成立すると、電気モータ１２の回転駆動開始前、まず、そのモータ制御開始条件成立後に外部記憶装置２０のデータ記憶領域からの終了状態データの読み出しを試行した回数を示す読み出しリトライ回数Ｎ３を“０”にリセットする処理を行う（ステップ１５０）。そして、終了状態データを外部記憶装置２０のデータ記憶領域から読み出す処理を行う（ステップ１５２）。具体的には、３つのデータ記憶領域（アドレス０×０１、０×０２、及び０×０３）それぞれから、記憶されているデータを順次読み出す処理を行う。
【００４６】
データ記憶領域からの終了状態データの読み出しを行うと、次に、各アドレス０×０１、０×０２、及び０×０３それぞれから読み出したデータのすべてが相互に不一致であるか否かを判別する（ステップ１５４）。
【００４７】
そして、その判別の結果、読み出したデータに一致するものがなく３つのデータがすべて一致しない場合は、次に、現時点の読み出しリトライ回数Ｎ３が所定回数Ｎ０以下であるか否かを判別する（ステップ１５６）。尚、この所定回数Ｎ０は、モータ制御開始条件成立後に外部記憶装置２０のデータ記憶領域からの終了状態データの読み出しを試行する回数の上限値であり、例えば３回などに設定されている。
【００４８】
そして、Ｎ３≦Ｎ０が成立すると判別した場合は、次に、その読み出しリトライ回数Ｎ３を“１”だけインクリメントしたうえで（ステップ１５８）、再度、外部記憶装置２０のデータ記憶領域（アドレス０×０１、０×０２、及び０×０３）から終了状態データを読み出す処理を行う（ステップ１５２）。
【００４９】
一方、上記ステップ１５４の判別の結果、データ記憶領域から読み出したデータに一致するものがあり３つのデータのうち少なくとも何れか２つが一致する場合は、次に、外部記憶装置２０のフラグ記憶領域の正常終了フラグがオン状態にあるか否かを判別する（ステップ１６０）。具体的には、３つのフラグ記憶領域（アドレス０×ＦＤ、０×ＦＥ、及び０×ＦＦ）それぞれの正常終了フラグの状態の多数決判定によって正常終了フラグがオン状態にあるか否かを判別する。
【００５０】
その判別の結果、多数決判定によってフラグ記憶領域の正常終了フラグがオン状態にある場合は、次に、電気モータ１２の始動状態を、上記の如く３つのデータ記憶領域から読み出した終了状態データのうち多数決判定にて少なくとも２つのデータ記憶領域で一致する終了状態データにセットする（ステップ１６２）。
【００５１】
一方、上記ステップ１６０の処理の結果、多数決判定によってフラグ記憶領域の正常終了フラグがオフ状態にある場合は、前回モータ制御終了時においてデータ記憶領域への終了状態データの書き込みの開始からフラグ記憶領域への正常終了フラグの書き込みの終了までに電源遮断が生じていたと判断し、次に、上記したデータ記憶領域の３つのアドレス（０×０１、０×０２、及び０×０３）のうち３番目に書き込みが実施されるアドレス（０×０３）の終了状態データが他（１番目や２番目に書き込みが実施されるアドレス０×０１及び０×０２）の終了状態データと異なるか否かを判別する（ステップ１６４）。
【００５２】
その判別の結果、３番目の終了状態データが１番目や２番目の終了状態データと異なるものでない場合は、次回のデータ記憶領域への終了状態データの書き込み中に電源瞬断が起こっても多数決判定にて信頼性の高いデータを決定できなくなることはないと判断でき、その終了状態データの修復を行わず、次に、電気モータ１２の始動状態を予め定められた初期値にセットするか、又は、その後のモータ駆動時に位置学習を行って回転位置を認識しつつ電気モータ１２を駆動させる（ステップ１６６）。
【００５３】
一方、上記ステップ１６４の処理の結果、３番目の終了状態データが１番目や２番目の終了状態データと異なり、１番目の終了状態データと２番目の終了状態データとが一致する場合は、２番目のアドレス０×０２へのデータ書き込みと３番目のアドレス０×０３へのデータ書き込みとの間に電源遮断が生じていたと判断し、次に、上記ステップ１６４の処理後にその３番目のアドレスへの終了状態データの再書き込みを試行した回数を示す再書き込みリトライ回数Ｎ４を“０”にリセットする処理を行う（ステップ１６８）。
【００５４】
そして、その３番目のアドレスへの終了状態データの再書き込みを実施する（ステップ１７０）。具体的には、３番目のアドレスに、互いに一致した１番目と２番目の終了状態データと同じ終了状態データを書き込む処理を行う。データ記憶領域の３番目のアドレスに終了状態データを再書き込みすると、そのデータ記憶領域に書き込まれた書込データをベリファイ処理して（ステップ１７２）、アドレス０×０３の書き込み値が他のアドレスのものと一致するか否かを判別する（ステップ１７４）。
【００５５】
そして、その判別の結果、書き込み値が一致しない場合は、次に、現時点の再書き込みリトライ回数Ｎ４が所定回数Ｎ０以下であるか否かを判別する（ステップ１７６）。尚、この所定回数Ｎ０は、上記ステップ１６４の処理後に外部記憶装置２０のデータ記憶領域の３番目のアドレスへの終了状態データの再書き込みを試行する回数の上限値であり、例えば３回などに設定されている。
【００５６】
そして、Ｎ４≦Ｎ０が成立すると判別した場合は、次に、その再書き込みリトライ回数Ｎ４を“１”だけインクリメントしたうえで（ステップ１７８）、再度、外部記憶装置２０のデータ記憶領域（アドレス０×０３）に終了状態データを書き込む処理を行う（ステップ１７０）。
【００５７】
一方、上記ステップ１７４の判別の結果、書き込み値が一致する場合は、電気モータ１２の始動状態を予め定められた初期値にセットするか、又は、その後のモータ駆動時に位置学習を行って回転位置を認識しつつ電気モータ１２を駆動させる（ステップ１６６）。
【００５８】
ＣＰＵ１８は、上記ステップ１６２又は１６６の処理を終了すると、次に、モータ制御開始条件成立後（具体的には、そのステップ１６２又は１６６の処理後）に外部記憶装置２０のフラグ記憶領域に対する正常終了フラグオフの書き込みを試行した回数を示す書き込みリトライ回数Ｎ５を“０”にリセットする処理を行う（ステップ１８０）。
【００５９】
そして、モータ駆動前に、正常にデータの書き込みが行われた旨を示すフラグ記憶領域の正常終了フラグをオフ状態にリセットして外部記憶装置のフラグ記憶領域（アドレス０×ＦＤ、０×ＦＥ、及び０×ＦＦ）に書き込む処理を行う（ステップ１８２）。フラグ記憶領域に正常終了フラグのオフを書き込むと、次に、そのフラグ記憶領域に書き込まれた書込データをベリファイ処理して（ステップ１８４）、各アドレス０×ＦＤ、０×ＦＥ、及び０×ＦＦの記憶値と書き込み値がすべて一致するか否かを判別する（ステップ１８６）。
【００６０】
そして、その判別の結果、一致しない書き込み値がある場合は、次に、現時点の書き込みリトライ回数Ｎ５が所定回数Ｎ０以下であるか否かを判別する（ステップ１８８）。尚、この所定回数Ｎ０は、モータ制御開始条件成立後に外部記憶装置２０のフラグ記憶領域に対する正常終了フラグオフの書き込みを試行する回数の上限値であり、例えば３回などに設定されている。
【００６１】
そして、Ｎ５≦Ｎ０が成立すると判別した場合は、次に、その書き込みリトライ回数Ｎ５を“１”だけインクリメントしたうえで（ステップ１９０）、再度、正常終了フラグをオフ状態にリセットして外部記憶装置２０のフラグ記憶領域（アドレス０×ＦＤ、０×ＦＥ、及び０×ＦＦ）に書き込む処理を行う（ステップ１８２）。
【００６２】
また、上記ステップ１５６においてＮ３＞Ｎ０が成立すると判別した場合は、外部記憶装置２０のデータ記憶領域からのデータ読み出しを正常に行うことができず、その外部記憶装置２０自体に記憶機能又は読み出し機能の異常が生じていると判断して、かかる異常に対する処置（例えば、ランプ警告など）を実行する（ステップ１９２）。
【００６３】
また、上記ステップ１７６においてＮ４＞Ｎ０が成立すると判別した場合は、外部記憶装置２０のデータ記憶領域へのデータ書き込みを正常に行うことができず、その外部記憶装置２０自体に記憶機能又は読み出し機能の異常が生じていると判断して、かかる異常に対する処置（例えば、ランプ警告など）を実行する（ステップ１９４）。
【００６４】
更に、上記ステップ１８８においてＮ５＞Ｎ０が成立すると判別した場合は、外部記憶装置２０のフラグ記憶領域へのデータ書き込みを正常に行うことができず、その外部記憶装置２０自体に記憶機能又は読み出し機能の異常が生じていると判断して、かかる異常に対する処置（例えば、ランプ警告など）を実行する（ステップ１９６）。
【００６５】
一方、上記ステップ１８６において書込み値のすべてが一致すると判別すると、今回のルーチン（始動制御）を終了して、上記ステップ１６２又は１６６でセットした電気モータ１２の始動状態を基にその電気モータ１２の回転駆動制御を開始する。
【００６６】
上記図４に示すルーチンによれば、イグニションオン後に電源供給され電気モータ１２の回転駆動が許容されてそのモータ制御が開始される場合に、外部記憶装置２０の３つのデータ記憶領域（アドレス０×０１、０×０２、及び０×０３）それぞれから終了状態データを読み出して、それらの読み出した終了状態データのうちに互いに一致するものが存在するか否かすなわち多数決判定にて信頼性のあるデータを読み出すことができるか否かを判別することができる。そして、多数決判定にて互いに一致するものが存在して信頼できる終了状態データを読み出すことができる場合は、外部記憶装置２０のフラグ記憶領域（アドレス０×ＦＤ、０×ＦＥ、及び０×ＦＦ）の正常終了フラグの状態に基づいて、前回の制御終了時において３つのデータ記憶領域（アドレス０×０１、０×０２、及び０×０３）への終了状態データの書き込み中に電源瞬断が生じたか否かを判別することができる。
【００６７】
フラグ記憶領域に正常終了フラグオンが記憶されている場合は、前回モータ制御終了時（すなわち前回終了制御時）に電源瞬断が生じることなくかつ書き込み異常が生じることなく３つのデータ記憶領域に終了状態データが正常に書き込まれていたと判断できる。一方、フラグ記憶領域に正常終了フラグオフが記憶されており、データ記憶領域の終了状態データに多数決不一致のものが一つ含まれている場合は、前回モータ制御終了時に３つのデータ記憶領域に終了状態データが正常に書き込まれず、その前回モータ制御終了時においてデータ記憶領域への終了状態データの書き込みの開始からフラグ記憶領域への正常終了フラグの書き込みの終了までに電源遮断が生じていたと判断できる。また、データ記憶領域の終了状態データやフラグ記憶領域の正常終了フラグの状態が多数決判定にて信頼性のあるデータ状態を決定できない場合は、外部記憶装置２０自体の記憶機能や読み出し機能の異常が生じていたと判断できる。
【００６８】
また、上記図４に示すルーチンによれば、外部記憶装置２０のフラグ記憶領域に正常終了フラグオフが記憶されており、かつ、外部記憶装置２０のデータ記憶領域の３番目のアドレスの終了状態データが１番目や２番目のアドレスの終了状態データと異なる場合、すなわち、前回終了制御時のデータ書き込み中に電源遮断が生じていたと判断できる場合、その３番目のアドレスの終了状態データを、１番目のアドレスと２番目のアドレスとで共通する終了状態データに書き換えることで、各アドレスのデータ不一致が蓄積されないように具体的には１番目や２番目のアドレスの共通する終了状態データと一致するように３番目のアドレスの終了状態データの修復を行うことができる。
【００６９】
すなわち、３つのデータ記憶領域への終了状態データの書き込み中の電源瞬断が繰り返し連続して起きるとしても、各電源瞬断後の起動ごとにデータ記憶領域のデータ修復を実施することができる。このため、電源瞬断後の起動時に、外部記憶装置２０の３つのデータ記憶領域に記憶される終了状態データを、その瞬断に起因して異なった状態から相互に共通したものとすることができ、そのデータ記憶領域の終了状態データの高い信頼性を確保することができ、その結果として、３つのデータ記憶領域への終了状態データの書き込み中の電源瞬断と起動とが繰り返されても、３つのデータ記憶領域の各アドレスの終了状態データがすべて不一致となることはなく、データ記憶領域のデータが三種類に分かれることは回避される。
【００７０】
ここで、データ記憶領域へのデータ書き込み中に電源瞬断が生じた場合は、その一回の電源瞬断では、不揮発性メモリのデータ記憶領域のデータは三種類以上に分かれることはなく、必ず二種類に分かれる。すなわち、一回の電源瞬断が起きた場合は３つのフラグ記憶領域のうち２つのフラグ記憶領域のデータは互いに一致するが、他の一つのフラグ記憶領域のデータはその一致する共通のデータと異なるものとなる。更にこの場合、外部記憶装置２０のフラグ記憶領域には正常終了フラグオンが書き込まれず、その正常終了フラグがオフ状態のままとなる。尚、外部記憶装置２０自体の記憶機能異常時や読み出し機能異常時にも、そのフラグ記憶領域に正常終了フラグオンが書き込まれないこともあるが、この場合は、データ書込み時や読み出し時のベリファイチェックにて外部記憶装置２０の記憶・読み出し機能の異常を検出可能である。
【００７１】
従って、本実施例の構成によれば、モータ制御開始時（起動時）、外部記憶装置２０のフラグ記憶領域の正常終了フラグの状態とデータ記憶領域の終了状態データの状態とに基づいて、前回モータ制御終了時における３つのデータ記憶領域への終了状態データの書き込み中に電源瞬断が生じていたか否かを判別することができる。具体的には、外部記憶装置２０のフラグ記憶領域に正常終了フラグオフが記憶されており、かつ、外部記憶装置２０のデータ記憶領域の３番目のアドレスの終了状態データが１番目や２番目のアドレスの終了状態データと異なる場合は、前回モータ制御終了時のデータ書き込み中に電源遮断が生じていたと判別することができる。
【００７２】
また、３つのデータ記憶領域への終了状態データの書き込み中の電源瞬断が連続して起きるとしても、各電源瞬断後の起動ごとに、そのデータ記憶領域の終了状態データを、その電源瞬断に起因して二分された状態から相互に一致した状態に修復することができる。電源瞬断が連続しても、各瞬断後の起動ごとにデータ修復が行われれば、その電源瞬断の連続に起因して多数決判定にてデータ記憶領域の終了状態データがすべて不一致となり信頼性のないものとなることは防止される。一方、外部記憶装置２０の記憶機能・読み出し機能の異常が生じている場合は、起動時でも、データ記憶領域の終了状態データの修復が行われることはない。このため、３つのデータ記憶領域の終了状態データのすべてが不一致となるのは、外部記憶装置２０の記憶機能・読み出し機能の異常時に限られる。
【００７３】
従って、本実施例のメモリ制御装置によれば、データ記憶領域への終了状態データの書き込み中の電源瞬断によるデータ不一致と、外部記憶装置２０の記憶機能や読み出し機能の異常によるデータ不一致と、を区別させることができ、これにより、データ書き込み中の電源瞬断と、外部記憶装置２０自体の記憶機能や読み出し機能の異常と、を区別して判定することが可能となっており、その電源瞬断が生じている場合に、その電源瞬断を外部記憶装置２０自体の記憶機能や読み出し機能の異常と誤判定するのを防止することが可能となっている。このため、データ書き込み中の電源瞬断が生じただけであるにもかかわらず外部記憶装置２０自体が故障していると誤判定されて修理のため部品交換されてしまうのを防止することができる。
【００７４】
尚、本実施例によれば、３つのデータ記憶領域の終了状態データのすべてが不一致である場合は、その終了状態データに信頼性がなくなったとして、外部記憶装置２０の記憶機能・読み出し機能の異常が生じていると判定することができ、異常処置よりその外部記憶装置２０自体の交換やその外部記憶装置２０を備えるモータ制御装置１０の交換を促すことが可能となっている。
【００７５】
尚、上記の実施例においては、ＣＰＵ１８が、図３に示すルーチン中ステップ１０２の処理を実行することにより特許請求の範囲に記載した「データ書込手段」が、ステップ１１４の処理を実行することにより特許請求の範囲に記載した「正常終了フラグ書込手段」が、図４に示すルーチン中ステップ１６０の処理を実行することにより特許請求の範囲に記載した「電源瞬断判別手段」が、ステップ１７０の処理を実行することにより特許請求の範囲に記載した「データ修復手段」が、それぞれ実現されている。
【００７６】
ところで、上記の実施例においては、メモリ制御装置を車両の有するモータ制御装置１０に搭載することとし、モータの終了位置情報を外部記憶装置に記憶させることとしたが、本発明はこれに限定されるものではなく、車両以外のシステムに搭載されるモータ制御装置１０に適用することとしてもよく、また、モータ制御装置１０以外の、終了時と起動時との間に不揮発性メモリに記憶すべきデータのあるシステムに適用することとしてもよい。
【００７７】
また、上記の実施例においては、外部記憶装置２０のデータ記憶領域を３つ設け、同一の終了状態データを書き込むこととし、また、外部記憶装置２０のフラグ記憶領域を３つ設け、同一の正常終了フラグを書き込むこととしているが、本発明はこれに限定されるものではなく、同一のデータやフラグを書き込む多数決判定可能な数の例えば５つや７つの記憶領域を設けることとしてもよい。
【００７８】
更に、上記の実施例においては、同一の正常終了フラグを書き込むフラグ記憶領域を３つ設けることとしたが、本発明はこれに限定されるものではなく、唯一つ設けることとしてもよい。上記した実施例の如く複数のフラグ記憶領域に同一の正常終了フラグを書き込む構成によれば、その正常終了フラグの多数決判定を実施することが可能となり、正常終了フラグ自体の信頼性を高く確保することができ、複数のデータ記憶領域への終了状態データの書き込みが正常に行われたか否かを精度よく判別することができるが、かかる変形例の如く唯一つのフラグ記憶領域に正常終了フラグを書き込む構成によれば、その正常終了フラグの書き込みや読み出しを短時間のうちに行うことができ、イグニションオフにより電源遮断がなされるモータ制御終了時に行われる終了制御に要する時間を短縮させることができる。
【図面の簡単な説明】
【００７９】
【図１】本発明の一実施例であるメモリ制御装置を備えるモータ制御装置の構成図である。
【図２】不揮発性メモリの３つのデータ記憶領域について終了状態データを修復できる場合と修復できない場合との違いを説明するための図である。
【図３】本実施例のメモリ制御装置において制御終了時に実行される制御ルーチンの一例のフローチャートである。
【図４】本実施例のメモリ制御装置において制御開始時に実行される制御ルーチンの一例のフローチャートである。
【符号の説明】
【００８０】
１０  モータ制御装置
１８  ＣＰＵ
２０  外部記憶装置
【図１】
2009289049.tif 000003
【図２】
2009289049.tif 000004
【図３】
2009289049.tif 000005
【図４】
2009289049.tif 000006