(57)【特許請求の範囲】
【請求項１】
特定の制御対象機器（１８）を制御する際に利用される制御データを記憶する不揮発性メモリ（１４）を有し、前記不揮発性メモリから前記制御データを読み出して、前記制御対象機器を制御する制御手段（１０）へ提供する不揮発性メモリ制御装置であって、
前記制御データは、前記制御対象機器を制御する上で、異なる用途に用いられる複数のデータを含み、その用途ごとのデータをグループ化の単位として、グループ化されたデータに優先順位が定められており、
前記制御対象機器の制御が開始されるとき、高い優先順位のグループ化されたデータから順番に、前記不揮発性メモリに記憶されたデータを読み出す読み出し手段（Ｓ１５０）と、
前記読み出し手段によって読み出されたデータに関して、グループ化されたデータごとに、異常がないかどうかを判定する判定手段（Ｓ１６０、Ｓ２２０）と、
前記読み出し手段により、ある用途に用いられるグループ化されたデータがすべて読み出され、かつ前記判定手段により、その読み出されたグループ化されたデータに異常がないと判定されると、読み出されたデータを、他の用途に用いられるグループ化されたデータの読み出し処理の進行状況によらず、前記制御手段へ提供する提供手段（Ｓ２３０）と、を備えることを特徴とする不揮発性メモリ制御装置。
【請求項２】
前記制御対象機器の制御が開始されるときの、当該制御対象機器の状態を検出する検出手段（Ｓ１００、Ｓ１２０）と、
前記検出手段によって検出された当該制御対象機器の状態に応じて、グループ化されたデータに対して定められた優先順位を変更する優先順位変更手段（Ｓ１１０、Ｓ１３０）と、を備えることを特徴とする請求項１に記載の不揮発性メモリ制御装置。
【請求項３】
前記不揮発性メモリには、グループ化されたデータに関して、同じデータが３個以上記憶されており、
前記判定手段（Ｓ１６０）は、グループ化されたデータに含まれるすべてのデータについて、記憶された３個以上のデータの内、少なくとも２個のデータが一致した場合、グループ化されたデータに異常がないと判定することを特徴とする請求項１又は２に記載の不揮発性メモリ制御装置。
【請求項４】
前記不揮発性メモリには、グループ化されたデータの誤り検出を行うための符号データも記憶されており、
前記判定手段（Ｓ２２０）は、この符号データに基づき、誤りが検出されない場合、グループ化されたデータに異常がないと判定することを特徴とする請求項１乃至３のいずれかに記載の不揮発性メモリ制御装置。
【請求項５】
前記不揮発性メモリには、前記制御対象機器に異常が生じたとき、故障診断データとして、前記異常の種類を示す情報と、異常発生時の前記制御対象機器の動作状態を示す動作情報とを記憶するための記憶領域が定められており、
電源がオフされるとき、前記故障診断データを、前記不揮発性メモリに書き込む書き込み手段（Ｓ４７０）と、
書き込むべき複数の故障診断データがある場合、書き込み回数の少ない故障診断データが優先して書き込まれるように、書前記書き込み手段によって行われる書き込みの優先順位を設定する優先順位設定手段（Ｓ４４０）と、を備えることを特徴とする請求項１乃至４のいずれかに記載の不揮発性メモリ制御装置。
【請求項６】
前記書き込み回数の少ない故障診断データには、書き込み回数が零の故障診断データが含まれることを特徴とする請求項５に記載の不揮発性メモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定の制御対象機器を制御する際に利用される制御データを記憶する不揮発性メモリを有し、その不揮発性メモリから制御データを読み出して、制御対象機器を制御する制御手段へ提供する不揮発性メモリ制御装置に関する。
【背景技術】
【０００２】
例えば、特許文献１には、データの保存中に機器への給電が絶たれた等の理由で、データ保存に失敗しても、データを完全に喪失することを防ぐことが可能なデータ記憶装置について開示されている。より具体的には、特許文献１のデータ記憶装置は、不揮発性メモリの記憶領域を複数の小領域に区分するとともに、各小領域に管理番号を付与する。そして、不揮発性メモリのある小領域に記憶されたデータで、正常に読み出されたものの内、最新のデータに編集して保存する場合、不揮発性メモリから読み出して使用した正常データに上書きせず、次の小領域に保存する。このため、データ保存に失敗した場合であっても、以前に保存されたデータが使用可能となるので、データ喪失を最小限にとどめることができる。
【０００３】
なお、ある小領域に記憶されたデータが正常に読み出されたか否かは、そのデータに付加されているＣＲＣ（Cyclic Redundancy Check：巡回冗長検査符号）やチェックサムなどの誤り検出符号によって判定される。また、データの読み出し時には、各小領域に記憶されている全データを読み出し、その中で正常に読み出されたデータの内の最新のデータを特定し、その特定された最新データを機器で使用するデータとしてＲＡＭに展開している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１９９９７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このように、特許文献１の装置では、読み出されたデータが最新のデータに編集された場合、記憶する小領域を異ならせている。その結果、不揮発性メモリの各小領域に、複数のデータが記憶される。ただし、各小領域に記憶されたデータに対しては、そのデータ全体に対して１つの誤り検出符号が設けられているだけである。
【０００６】
ここで、特許文献１の装置において、例えば機器で使用されるデータに、種類が異なる複数の制御データが含まれる場合、機器の制御開始が遅延したり、制御開始初期に適切な制御を行い得なかったり、場合によっては、必要なフェールセーフ処理の実行が遅れたりする虞がある。
【０００７】
例えば、制御対象機器がモータであり、そのモータの制御に使用されるデータに、回転センサの誤差補正値、電流センサの原点補正値、インバータ回路の温度センサの誤差補正値などの複数の制御データが記憶されているとする。この場合、特許文献１の装置の読み出し手法では、それら複数の制御データをすべて読み出し、読み出した全制御データからＣＲＣやチェックサムなどの誤り検出符号を算出する。そして、制御データとともに不揮発性メモリに記憶されている誤り検出符号と照合し、一致した場合に、読み出した全制御データは正常であると判定し、その後、データのＲＡＭへの展開が行われる。
【０００８】
このように、特許文献１の読み出し手法では、データをＲＡＭに展開して、機器において利用可能となるまでに時間がかかるので、そのデータ展開を待って制御を開始する場合には、機器の制御開始が遅延することになる。
【０００９】
また、データがＲＡＭに展開され、機器において利用可能となる以前から、機器の制御を開始した場合には、例えば上記の例では、回転センサや電流センサにより正確な検出値を得ることができず、モータを適切に制御することができない虞が生じる。さらに、モータの制御停止後、即座に制御を再開するときなどに、インバータ回路の温度が上昇している場合、インバータ回路による通電電流を制限することが必要となることがある。しかしながら、温度センサの誤差補正値が得られないまま、モータ制御を開始してしまうと、電流制限がかからず、必要なフェールセーフ処理の実行が遅れてしまうことも起こりえる。
【００１０】
本発明は、上述した点に鑑みてなされたものであり、不揮発性メモリに、特定の制御対象機器を制御するために利用される制御データが記憶されている場合に、極力、早期に、その制御データを制御対象機器の制御に利用できるようにした不揮発性メモリ制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明による不揮発性メモリ制御装置は、特定の制御対象機器（１８）を制御する際に利用される制御データを記憶する不揮発性メモリ（１４）を有し、不揮発性メモリから制御データを読み出して、制御対象機器を制御する制御手段（１０）へ提供するものであって、
制御データは、制御対象機器を制御する上で、異なる用途に用いられる複数のデータを含み、その用途ごとのデータをグループ化の単位として、グループ化されたデータに優先順位が定められており、
制御対象機器の制御が開始されるとき、高い優先順位のグループ化されたデータから順番に、不揮発性メモリに記憶されたデータを読み出す読み出し手段（Ｓ１５０）と、
読み出し手段によって読み出されたデータに関して、グループ化されたデータごとに、異常がないかどうかを判定する判定手段（Ｓ１６０、Ｓ２２０）と、
読み出し手段により、ある用途に用いられるグループ化されたデータがすべて読み出され、かつ判定手段により、その読み出されたグループ化されたデータに異常がないと判定されると、読み出されたデータを、他の用途に用いられるグループ化されたデータの読み出し処理の進行状況によらず、制御手段へ提供する提供手段（Ｓ２３０）と、を備えることを特徴とする。
【００１２】
このように、本発明による不揮発性メモリ制御装置では、不揮発性メモリに記憶された、制御対象機器を制御する上で異なる用途に用いられる複数のデータに対し、その用途ごとのデータをグループ化の単位として、グループ化されたデータに優先順位を定めている。この優先順位は、制御対象機器を適切に制御するために、制御手段によって、より早期に取得される必要性が高いデータほど優先順位が高くなるように定められる。その上で、読み出し手段は、高い優先順位のグループ化されたデータから順番にデータを読み出し、判定手段は、読み出し手段によって読み出されたデータについて、グループ化されたデータごとに、異常がないかどうかを判定する。そして、ある用途に用いられるグループ化されたデータがすべて読み出され、かつ、その読み出されたグループ化されたデータに異常がないと判定されると、読み出されたデータを、他の用途に用いられるグループ化されたデータの読み出し処理の進行状況によらず、制御対象機器の制御手段へ提供する。これにより、用途ごとにグループ化されたデータを単位として、優先順位の高いデータほど早期に制御手段へ提供することが可能となる。従って、制御開始の遅れや、制御開始初期に適切な制御を行い得ない事態の発生を抑制することができる。
【００１３】
上述した発明の構成において、制御対象機器の制御が開始されるときの、当該制御対象機器の状態を検出する検出手段（Ｓ１００、Ｓ１２０）と、検出手段によって検出された制御対象機器の状態に応じて、グループ化されたデータに対して定められた優先順位を変更する優先順位変更手段（Ｓ１１０、Ｓ１３０）と、が設けられることが好ましい。例えば、「発明が解決しようとする課題」の欄において説明した例において、インバータ回路の温度を検出する温度センサの誤差補正値は、インバータ回路の温度が定常範囲内である場合には、その誤差補正値の提供が遅くなっても、モータ制御に重大な影響が及ぶことはない。しかし、モータ制御の開始時点で、インバータ回路の温度が定常範囲を超えて高くなっているときには、フェールセーフ処理を実行するために、最も優先して制御手段に提供すべきデータとなる。このように、制御対象機器の状態に応じて、制御手段がより早期に取得すべきデータは変化する場合がある。従って、制御対象機器の状態に応じて、グループ化されたデータに対して定められた優先順位を変更することで、そのような制御対象機器の状態変化にも適切に対応したデータの提供を行うことが可能となる。
【００１４】
なお、上記括弧内の参照番号は、本発明の理解を容易にすべく、後述する実施形態における具体的な構成との対応関係の一例を示すものにすぎず、なんら本発明の範囲を制限することを意図したものではない。
【００１５】
また、上述した特徴以外の、請求項に記載した本発明の特徴に関しては、後述する実施形態の説明及び添付図面から明らかになる。
【図面の簡単な説明】
【００１６】
【図１】実施形態による不揮発性メモリ制御装置としての機能を有するＭＧＥＣＵを含む、モータジェネレータを制御するためのモータジェネレータ制御装置全体の構成を示す構成図である。
【図２】不揮発性メモリに記憶されるデータ構造の一例を示す図である
【図３】不揮発性メモリに対して読み出し処理及び書き込み処理が実行されるタイミングを示す動作波形図である。
【図４】不揮発性メモリからの読み出し処理を示すフローチャートである。
【図５】ＭＧＥＣＵにおいて、利用可能と判定された補正値から、順次、モータジェネレータの制御のための演算処理に利用する処理を示したフローチャートである。
【図６】不揮発性メモリへの書き込み処理を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態による、特定の制御対象機器を制御する際に利用される制御データを記憶する不揮発性メモリに対する読み出し、書き込みを制御する不揮発性メモリ制御装置について、図面を参照しつつ説明する。本実施形態では、制御対象機器を、いわゆるハイブリッド車両に用いられるモータジェネレータとした例について説明する。そして、不揮発性メモリ制御装置は、モータジェネレータを制御するＭＧＥＣＵ（Motor Generator Electronic Control Unit）の一機能として具現化されている。つまり、ＭＧＥＣＵにて、不揮発性メモリからの読み取りを行うプログラムを実行したり、不揮発性メモリへの書き込みを行うプログラムを実行したりすることにより、ＭＧＥＣＵが、不揮発性メモリ制御装置としても機能する。
【００１８】
図１は、本実施形態による不揮発性メモリ制御装置としての機能を有するＭＧＥＣＵ１０を含む、モータジェネレータ１８を制御するためのモータジェネレータ制御装置全体の構成を示している。
【００１９】
ＭＧＥＣＵ１０は、マイクロコンピュータにより構成され、少なくとも、ＭＧＥＣＵ１０において実行すべき各種の制御処理を記述したプログラムを記憶するＲＯＭ、各種の演算処理を実行するＣＰＵ、演算処理結果や各種のデータを一時的に保存するＲＡＭなどを有している。このＭＧＥＣＵ１０は、電源回路１２から電源供給を受けて動作可能となる。電源回路１２は、車両のイグニッションスイッチがオンされたときに発生するＩＧ信号に応じて、ＭＧＥＣＵ１０への電源供給を開始する。ただし、イグニッションスイッチがオフされてＩＧ信号が消滅しても、電源回路１２は、ＭＧＥＣＵ１０から電源停止許可信号が出力されるまで、電源の供給を維持する。これにより、ＭＧＥＣＵ１０は、イグニッションオフ時に、不揮発性メモリ１４への書き込み処理などを実行することが可能となる。
【００２０】
なお、図１では電源回路１２と不揮発性メモリ１４は、ＭＧＥＣＵ１０の外部に構成されているが、本構成は一例であり、電源回路１２と不揮発性メモリ１４はＭＧＥＣＵ１０の内部に構成されても良い。
【００２１】
ＭＧＥＣＵ１０は、モータジェネレータ１８の回転位置を検出する回転センサ、モータジェネレータ１８に通電される電流値を検出する電流センサ、及びインバータ回路１６のスイッチング素子の温度を検出する温度センサからの検出信号を入力する。ＭＧＥＣＵ１０は、外部から与えられるトルク指令値とそれらのセンサからの検出信号とに基づき、モータジェネレータ１８を駆動するための駆動制御信号をインバータ回路１６に出力する。この駆動制御信号に応じてインバータ回路１６のスイッチング素子が駆動されることで、図示しない高圧バッテリからインバータ回路１６を介してモータジェネレータ１８に駆動電流が通電される。その結果、モータジェネレータ１８は、所望の駆動トルクを発生するように駆動される。もしくは、モータジェネレータ１８によって発電された電力による電流がインバータ回路１６により整流され、図示しない高圧バッテリの充電が行われる。
【００２２】
モータジェネレータ１８は、例えばＵ相、Ｖ相、Ｗ相の３相のステータコイル、及び永久磁石からなるロータを有し、電動機及び発電機としての機能を発揮可能なものである。このモータジェネレータ１８は、例えば遊星歯車機構を介して車両の駆動軸に連結されている。モータジェネレータ１８は、インバータ回路１６により駆動電流が供給されることにより、駆動輪に必要とされる駆動トルクを発生する電動機として機能する。また、モータジェネレータ１８は、車両の減速時に、駆動輪からの駆動力によって回転駆動されることにより、回生電力を発生する発電機として機能する。
【００２３】
インバータ回路１６は、モータジェネレータ１８のＵ相、Ｖ相、Ｗ相の各相に対応して設けられた、それぞれ対をなしている６個のスイッチング素子（例えば、ＩＧＢＴ）を有する。つまり、インバータ回路１６においては、対をなす高電位側及び低電位側のスイッチング素子が、モータジェネレータ１８の各相ごとに設けられ、それら高電位側及び低電位側のスイッチング素子同士の接続線が、モータジェネレータ１８の各相のステータコイルに接続されている。
【００２４】
モータジェネレータ１８を電動機として機能させる場合、ＭＧＥＣＵ１０からの駆動制御信号に応じて、インバータ回路１６において、モータジェネレータ１８の回転位置を検出する回転センサからの検出信号に基づき、同時にオンするスイッチング素子の組み合わせが順番に切り替えられる。これにより、図示しない高圧バッテリから電流が通電されるモータジェネレータ１８の通電相が順番に切り替えられ、モータジェネレータ１８には、ロータを回転させるための回転磁界が生成される。
【００２５】
そして、ＭＧＥＣＵ１０は、駆動制御信号として、モータジェネレータ１８が発生すべき駆動トルクに応じたパルス幅変調信号（ＰＷＭ信号）をインバータ回路１６に出力する。これにより、各ステータコイルには、ＰＷＭ信号に応じた電流値の電流が通電され、モータジェネレータ１８が発生する駆動トルクが、その電流値に応じて制御される。このＰＷＭ信号の生成は、モータジェネレータ１８の各相に通電される電流値を検出する電流センサからの検出信号に基づいて行われる。
【００２６】
一方、ＭＧＥＣＵ１０は、車両の減速時にモータジェネレータ１８を発電機として機能させる場合、モータジェネレータ１８によって発電された３相交流電流を直流電流に変換するようにインバータ回路１６を制御する。その直流電流は、高圧バッテリの充電などに用いられる。
【００２７】
回転センサは、レゾルバやアブソリュート型エンコーダのように、モータジェネレータ１８の回転位置（磁極位置）を絶対値として検出可能なものである。この回転センサは、所定角度（例えば２２．５°）毎に、モータジェネレータ１８の回転位置を検出する。回転センサは、モータジェネレータ１８の製造時に、モータジェネレータ１８に組み付けられる。ただし、この場合、組み付け誤差や、回転センサの製造誤差などにより、モータジェネレータ１８の実際の回転位置と、回転センサが出力する回転位置とにずれ（オフセット誤差）が生じる場合がある。そのため、回転センサがモータジェネレータ１８に組み付けられると、オフセット誤差が計測され、そのオフセット誤差を補正するための誤差補正値が算出されて、不揮発性メモリ１４に記録される。ＭＧＥＣＵ１０は、モータジェネレータ１８の回転位置を検出する際、誤差補正値を用いてオフセット誤差を補正する。
【００２８】
電流センサは、モータジェネレータ１８の３相のうち、２相（例えばＶ相、Ｗ相）の電流値をそれぞれ検出する２つのセンサからなる。残り１相の電流値は、検出した２相の電流値から計算により算出される。この電流センサは、誤差成分としてオフセット成分を含んでいたり、あるいは、出力特性の傾きが、理想とする出力特性の傾きからずれていたりする場合がある。そのため、この電流センサについても、オフセット成分や出力特性の傾きを計測し、そのオフセット成分や出力特性の傾きのずれを補正するための原点補正値や傾き補正値（ゲイン補正係数）が算出され、不揮発性メモリ１４に記録される。なお、本実施形態では、原点補正値だけを不揮発性メモリ１４に記録する例について説明するが、出力特性の傾きを補正するためのゲイン補正係数を、同じく不揮発性メモリ１４に記録するようにしても良い。そして、ＭＧＥＣＵ１０は、モータジェネレータ１８のステータコイルに通電される電流を検出する際、原点補正値を用いてオフセット成分を補正する。
【００２９】
ここで、車両の走行負荷が高く、モータジェネレータ１８が大きな駆動トルクを発生する必要がある場合、インバータ回路１６の各スイッチング素子は、モータジェネレータ１８の各ステータコイルに大電流を通電する。このような大電流の通電が行われると、各スイッチング素子の温度は大きく上昇する。そして、各スイッチング素子の温度が過度に上昇すると、各スイッチング素子にダメージを与える虞が生じる。そのため、インバータ回路１６の各スイッチング素子が実装された基板には、温度センサが設けられている。
【００３０】
ＭＧＥＣＵ１０は、温度センサからの検出信号に基づき、インバータ回路１６の各スイッチング素子の温度が閾値温度以上に上昇したことを検出すると、各ステータコイルに通電する電流値を所定値以下に制限するフェールセーフ処理を実行する。このフェールセーフ処理により、インバータ回路１６のスイッチング素子の温度が閾値温度を超えて上昇することが防止される。
【００３１】
上述した温度センサは、例えば感温ダイオードからなる。感温ダイオードは、一般的に、その温度と、ある電流を流した時の順方向降下電圧Ｖｆとが、負の線形性を示す温度電圧特性を有する。従って、感温ダイオードの順方向降下電圧Ｖｆを測定することにより、感温ダイオード、すなわち、インバータ回路１６のスイッチング素子の温度を検出することができる。ただし、感温ダイオードの温度電圧特性は、個々の感温ダイオードで多少のばらつきがある。そのため、インバータ回路１６の製造段階において、各感温ダイオードの温度電圧特性が測定され、理想とする温度電圧特性との誤差を補正するための温度補正値が算出され、不揮発性メモリ１４に記録される。なお、本実施形態では、温度補正値は、各感温ダイオードの負の線形性による傾きは一定とみなし、その傾き直線が平行にずれたずれ量を補正するものとして算出される。ただし、傾きの誤差を補正するための補正値を合わせて算出しても良い。ＭＧＥＣＵ１０は、スイッチング素子の温度を検出する際には、温度補正値を用いて、感温ダイオードの温度電圧特性の誤差を補正する。
【００３２】
不揮発性メモリ１４は、例えばＥＥＰＲＯＭなどの電気的に読み書き可能なメモリである。この不揮発性メモリ１４には、図２に示すように、制御データ記憶領域と、故障診断データ記憶領域とが設けられている。制御データ記憶領域には、上述した回転センサの誤差補正値、電流センサの原点補正値、及び温度センサの温度補正値などが記憶される。
【００３３】
回転センサは、上述したように、所定角度ごとに、モータジェネレータ１８の回転位置を検出する。そのため、その所定角度ごとの実際のモータジェネレータ１８の回転位置とのずれが、それぞれ誤差補正値として不揮発性メモリ１４に記憶される。図２に示す例では、制御データ記憶領域１において、所定角度ごとの誤差補正値が、データ１−１、１−２、…として記憶されている。
【００３４】
さらに、不揮発性メモリ１４においては、それら所定角度ごとの誤差補正値のデータ１−１、１−２、…が、１面からｎ面に渡って、ｎ個（ｎは３以上の整数）記憶されている。このように、各データ１−１、１−２、…を３個以上記憶しておくことで、不揮発性メモリ１４の異常などにより記憶データの一部に異常が生じても、多数決判定処理により、正しいデータ１−１、１−２、…を読み出せるようにしている。なお、２面目からｎ面目に記憶されるデータ１−１、１−２、…は、１面目に記憶されるデータ１−１、１−２、…のミラーデータであったり、暗号化されたデータであったりしても良い。いずれの場合も、元のデータを復元できるためである。
【００３５】
また、不揮発性メモリ１４には、回転センサの所定角度毎の誤差補正値の誤り検出符号として、１面からｎ面の各面にチェックサムＳＵＭ１が記憶されている。なお、この誤り検出符号は、巡回冗長検査符号（ＣＲＣ：Cyclic Redundancy Check）などの他の誤り検出符号であっても良い。
【００３６】
このように、本実施形態では、不揮発性メモリ１４に記憶されているデータの真偽を確認するために、複数のデータによる多数決判定と、誤り検出符号によるチェックとを行い得るようにしている。しかしながら、いずれか一方の手法だけで、記憶されているデータの真偽を確認するようにしても良い。
【００３７】
電流センサは、上述したように、Ｖ相とＷ相の２相の電流をそれぞれ検出する２つのセンサからなる。そのため、不揮発性メモリ１４には、それら２つのセンサのオフセット成分を補正するための原点補正値が、それぞれ、データ２−１、２−２として記憶されている。また、回転センサの誤差補正値の場合と同様に、原点補正値のデータ２−１、２−２が、１面からｎ面に渡ってｎ個記憶されている。さらに、不揮発性メモリ１４には、それら各面の原点補正値のデータ２−１、２−２のチェックサムＳＵＭ２も記憶されている。
【００３８】
温度センサに関しては、上述したように、感温ダイオードの温度電圧特性を示す負の傾きを持った直線が、理想とする直線から平行にずれたずれ量を補正するための温度補正値が、不揮発性メモリ１４に、データ３−１として記憶されている。この温度補正値に関しても、回転センサの誤差補正値の場合と同様に、温度補正値のデータ３−１が、１面からｎ面に渡ってｎ個記憶されている。ただし、温度補正値は１つだけであるため、温度補正値に関しては、チェックサムなどの誤り検出符号は記憶されていない。
【００３９】
これらの制御データ記憶領域に記憶されたデータは、イグニッションスイッチがオンされたときに、不揮発性メモリ１４から読み出される。すなわち、図３に示すように、イグニッションスイッチがオンされ、電源回路１２からの電源供給が開始されて、ＭＧＥＣＵ１０が、その動作を開始したとき、読み出しフラグが許可状態に設定され、不揮発性メモリ１４からのデータの読み出しが実行される。このデータの読み出しは、各データに設定された優先順位に従って、順番に実行される。不揮発性メモリ１４からの読み出し処理については、後に詳細に説明する。
【００４０】
次に、不揮発性メモリ１４の故障診断データ記憶領域に記憶される情報について説明する。モータジェネレータ１８の動作になんらかの異常が生じたり、故障が発生したりしたとき、その異常や故障の発生時の状況を確認するため、車速や、高電圧バッテリの電圧などの付帯情報が検出される。そして、不揮発性メモリ１４の故障診断データ記憶領域には、異常の種類を示す情報と、それらの付帯情報とをまとめたフリーズフレームデータが書き込まれる。モータジェネレータ１８の動作異常の例としては、モータ電流やインバータ回路１６の温度がそれぞれの規定値を超えたことなどが含まれる。また、故障診断データ記憶領域には、モータジェネレータ１８に関連するなんらかの故障が発生し、故障警告灯（ＭＩＬ）が点灯されたとき、上述した付帯情報が検出され、それらの情報をまとめたデータも書き込まれたりする。
【００４１】
この不揮発性メモリ１４への書込処理は、イグニッションスイッチがオフされたときに実行される。つまり、図３に示すように、イグニッションスイッチがオフされたとき、書き込みフラグが許可状態に設定され、不揮発性メモリ１４への書き込みが行われる。この書込処理については後に詳細に説明する。
【００４２】
なお、イグニッションスイッチがオンされている最中にも、書き込みフラグが許可状態に設定される場合がある。それは、故障診断装置により、不揮発性メモリ１４の故障診断データ記憶領域に記憶されていたデータが読み出され、故障診断が完了したときである。この場合、故障診断装置により、故障診断データ（ダイアグデータ）のクリア要求が出される。そのクリア要求を受けて、ＭＧＥＣＵ１０は、書き込みフラグを許可状態に設定し、故障診断データの消去を行う。また、故障診断データ記憶領域に記憶されたデータも、イグニッションスイッチがオンされたとき、与えられた優先順位に従って、制御データ記憶領域のデータの読み出し後に読み出され、ＲＡＭに記憶される。故障診断装置は、そのＲＡＭに記憶されたデータを通信により取得して、故障診断を実行する。
【００４３】
次に、不揮発性メモリ１４からの読み出し処理について、図４のフローチャートを参照しつつ説明する。なお、図４のフローチャートに示す処理は、イグニッションスイッチがオンされ、読み出しフラグが許可状態に設定されたときに実行される。
【００４４】
まず、ステップＳ１００において、温度センサによって検出されたスイッチング素子の温度が規定値以下であるか否かが判定される。
【００４５】
ここで、本実施形態においては、図２に示すように、回転センサの誤差補正に用いられる誤差補正値、電流センサの原点補正に用いられる原点補正値、温度センサの温度補正に用いられる温度補正値など、異なる用途に用いられる複数のデータに対し、その用途ごとのデータをグループ化の単位として、グループ化されたデータに優先順位を定めている。この優先順位は、モータジェネレータ１８の駆動開始から適切に制御するために、ＭＧＥＣＵ１０において、より早期に取得される必要性が高いデータほど優先順位が高くなるように予め定められている。
【００４６】
例えば図２に示す例では、回転センサの誤差補正値が優先度１、電流センサの原点補正値が優先度２，温度センサの温度補正値が優先度３に定められている。これは、ＭＧＥＣＵ１０が、通常のモータジェネレータ１８の制御に、回転センサの誤差補正値及び電流センサの原点補正値を使用するのに対し、温度センサの温度補正値は、通常の制御では使用されないためである。つまり、温度センサの誤差補正値は、インバータ回路１６の素子温度が規定値以下の定常範囲内である場合には、ＭＧＥＣＵ１０が、その誤差補正値を利用できる時期が遅くなっても、モータジェネレータ１８の制御に重大な影響が及ぶことはない。このため、温度センサの温度補正値の読み出し優先順位は、回転センサの誤差補正値や電流センサの原点補正値の読み出し優先順位よりも低く設定されている。
【００４７】
しかし、モータジェネレータ１８の駆動開始時点で、インバータ回路１６の素子温度が規定値を超えて高くなっているときには、スイッチング素子のダメージの防止を目的として、電流値を制限するフェールセーフ処理を実行するために、温度センサの温度補正値が、最も優先して読み出すべきデータとなる。このように、制御対象機器であるモータジェネレータ１８の状態に応じて、読み出すべきデータの優先順位は変化する。
【００４８】
そのため、ステップＳ１００において、インバータ回路１６の素子温度が規定値以下であるか否かを確認する。そして、規定値以上である場合には、ステップＳ１１０に進んで、温度補正値の読み出し優先度を最高位に変更する。この場合、他のデータの読み出し優先度は順次、繰り下げられる。
【００４９】
次に、ステップＳ１２０では、電流センサによって検出されたＷ相電流もしくはＶ相電流の絶対値が規定値以下であるか否かが判定される。Ｗ相電流、Ｖ相電流の少なくとも一方が規定値以上と判定された場合、電流センサやモータジェネレータ１８に何らかの異常が生じている可能性が高い。また、この場合、極力早期に正しい電流値を検出して、必要であれば、モータジェネレータ１８に通電する電流値を低下させるなどの対策処理を施す必要がある。
【００５０】
そのため、ステップＳ１２０において、Ｗ相電流もしくはＶ相電流の絶対値が規定値以上と判定された場合、ステップＳ１３０において、電流センサの原点補正値の読み出し優先度を最高位に変更する。なお、既に、ステップＳ１１０において、温度補正値の読み出し優先度が最高位に変更されている場合には、その読み出し優先度は、次点に繰り下げられる。
【００５１】
続くステップＳ１４０では、予め定められた優先順位に従い、もしくは、優先順位の変更があった場合には、その変更後の優先順位に従い、未読出データの中で優先順位の最も高いデータが記憶されている領域を読み出し領域として選択する。そして、ステップＳ１５０では、同じ番号が付与されたデータを、１面〜ｎ面までの各面から読み出す。ステップＳ１６０では、各面から読み出したデータの多数決判定を行い、半分を超えるデータが一致している場合、多数決判定ＯＫとみなす。例えば、不揮発性メモリ１４に３個のデータが記憶されている場合、２個以上のデータが一致している場合、多数決判決ＯＫとなる。多数決判定ＯＫの場合には、ステップＳ１７０の処理に進む。一方、多数決判定ＮＧの場合には、ステップＳ２４０の処理に進む。
【００５２】
ステップＳ１７０では、データが不一致となったか否か、不一致となった場合、その不一致となったデータを記憶している面はどの面かを判定する。データが不一致となったと判定されると、ステップＳ１８０の処理に進む。一方、すべてのデータが一致し、不一致となったデータはないと判定されると、ステップＳ１９０の処理に進む。ステップＳ１８０では、不一致となったデータを記憶している面を示す情報を、不一致履歴として保存する。この不一致履歴は、イグニッションオフ時に、不揮発性メモリ１４に書き込んで保存される。また、不一致となったデータは、イグニッションオフ時の書き込み処理などにおいて、一致したデータと同一のデータとなるように書き換えられても良い。
【００５３】
ステップＳ１９０では、ステップＳ１４０にて選択した領域内の全データの読み出しが完了したか否かを判定する。まだ全データの読み出しが完了していないと判定されると、ステップＳ２００の処理に進み、読み出しデータの番号を更新する。そして、ステップＳ１５０からの処理を再度実行する。一方、全データの読み出しが完了したと判定されると、ステップＳ２１０に進み、読み出した全データから、チェックサムＳＵＭ１，２などの誤り検出符号を算出する。そして、ステップＳ２２０において、算出した誤り検出符号と、不揮発性メモリ１４に記憶されていた誤り検出符号との照合を行い、両符号が一致するか否かを判定する。両符号が一致したと判定された場合には、読み出したデータは正しいとみなし、ＲＡＭに展開する。これにより、ＭＧＥＣＵ１０が、モータジェネレータ１８を制御するための制御プログラムを実行する際、補正値を参照可能となる。すなわち、ＲＡＭに補正値を展開することにより、モータジェネレータ１８の制御手段としてのＭＧＥＣＵ１０へ補正値が提供される。すると、ＭＧＥＣＵ１０は、提供された補正値を用いて、モータジェネレータ１８の回転位置の検出や、電流値の検出を高精度に行うことが可能となる。一方、誤り検出符号が一致しないと判定された場合には、ステップＳ２４０の処理に進む。
【００５４】
ステップＳ２４０では、不揮発性メモリ１４が異常である旨を記憶し、読み出したデータをＲＡＭに展開せずに、図４に示すフローチャートを終了する。この場合、故障ランプの点灯などにより車両の乗員に異常を報知する。
【００５５】
最後に、ステップＳ２５０において、まだデータが読み出されていない領域が残されているか否かを判定する。まだ読み出されていない領域が残されていると判定されると、ステップＳ１４０の処理に戻る。
【００５６】
図４のフローチャートに示す読み出し処理により、相対的に高い優先順位が与えられたグループ化されたデータから順番にデータが読み出されるとともに、そのグループ化されたデータごとに、異常がないかどうかが判定される。そして、グループ化されたデータがすべて読み出され、かつ、その読み出されたグループ化されたデータに異常がないと判定されると、読み出されたデータを、他の用途に用いられるグループ化されたデータの読み出し処理の進行状況によらず、ＲＡＭに展開して、ＭＧＥＣＵ１０において利用可能としている。これにより、用途ごとにグループ化されたデータを単位として、優先順位の高いデータほど早期に、ＭＧＥＣＵ１０において利用することが可能となる。
【００５７】
例えば、図５のフローチャートに示すように、ＭＧＥＣＵ１０では、各補正値がＲＡＭに展開されたか否かにより、その補正値が利用可能となったか否かを判定し、利用可能と判定された補正値から、順次、演算処理に利用するようにしている。
【００５８】
具体的には、ステップＳ３００において、回転センサの誤差補正値が利用可能か否かを判定し、利用可能と判定されると、ステップＳ３１０に進み、その誤差補正値を用いた、モータジェネレータ１８の回転角度の演算を開始する。また、ステップＳ３２０において、電流センサの原点補正値が利用可能か否かを判定し、利用可能と判定されると、ステップＳ３３０に進み、その原点補正値を用いた、モータジェネレータ１８のステータコイルの各相に通電される電流値の演算を開始する。さらに、ステップＳ３４０において、温度センサの誤差補正値が利用可能か否かを判定し、利用可能と判定されると、ステップＳ３５０に進み、その誤差補正値を用いた、インバータ回路１６の素子温度の演算を開始する。
【００５９】
このため、モータジェネレータ１８の制御開始の遅れや、制御開始初期に適切な制御を行い得ない事態の発生を極力抑制することができる。
【００６０】
次に、不揮発性メモリ１４への書き込み処理について、図６のフローチャートを参照しつつ説明する。なお、図６のフローチャートに示す処理は、イグニッションスイッチがオフされ、書き込みフラグが許可状態に設定されたときに実行される。
【００６１】
まず、ステップＳ４００において、何らかの異常や故障が発生したか否かが判定される。異常や故障が発生すると、その情報は、上述した付帯情報とともにＲＡＭに一時的に保存される。ステップＳ４００では、そのような異常や故障の発生情報がＲＡＭに保存されているか否かにより、異常や故障が発生したかを判定する。ステップＳ４００において、異常や故障が発生したと判定されると、その異常や故障に関するフリーズフレームデータを不揮発性メモリ１４に書き込むため、ステップＳ４１０の処理に進む。一方、異常や故障が発生していないと判定されると、図６のフローチャートに示す処理を終了する。
【００６２】
ステップＳ４１０では、複数回発生の異常があるか否かを判定する。すなわち、ステップＳ４００において判定された異常や故障は、既に、フリーズフレームデータが不揮発性メモリ１４に記憶されている異常や故障と同じ種類のものかを判定する。
【００６３】
ここで、本実施形態では、同時に複数種類の異常や故障に関するフリーズフレームデータを書き込む必要が生じた場合、例えば、異常や故障の種類に応じて、書き込み処理の優先順位を定め、その優先順位に従って、順番にフリーズフレームデータの書き込みを行なう。ただし、複数回同じ異常や故障が発生した場合には、それらの異常や故障は継続的に発生しており、相対的な重要度が高まっているとみなす。そのため、ステップＳ４１０において複数回発生している異常であると判定されると、ステップＳ４２０に進み、その異常や故障に関するフリーズフレームデータの書き込み優先度を最高位に設定する。
【００６４】
ステップＳ４３０では、初めて発生した異常や故障があるか否かを判定する。初めて発生した異常や故障は、まだ、不揮発性メモリ１４になんらのデータも書き込まれていないため、最も優先して書き込み処理を行うべきデータとなる。そのため、ステップＳ４３０にて初めて発生した異常や故障があると判定された場合、ステップＳ４４０の処理に進み、その異常や故障に関するフリーズフレームデータの書き込み優先度を最高位に設定する。この際、ステップＳ４２０において、複数回発生した異常や故障に関するフリーズフレームデータの書き込み優先度が最高位に設定されている場合には、その書き込み優先度が次点に繰り下げられる。
【００６５】
ステップＳ４５０では、書き込み領域が選択される。例えば、この書き込み領域は異常や故障の種類毎に予め設定されており、いずれの種類の異常や故障が生じたかに応じて、該当する書き込み領域が選択される。あるいは、故障診断データの記憶領域において、異常や故障が発生するごとに、空き領域の先頭から順番に書き込み領域として選択するようにしても良い。
【００６６】
続くステップＳ４６０では、書き込むべきフリーズフレームデータの誤り検出符号を算出する。この算出した誤り検出符号は、書き込みデータの１つとして、全てのフリーズフレームデータの書き込み終了後に、不揮発性メモリ１４に書き込まれる。
【００６７】
ステップＳ４７０では、書き込むべきフリーズフレームデータ中の１つのデータを選択し、その選択したデータを１面からｎ面までの各面に書き込む。なお、データを選択する順序は予め定められている。ステップＳ４８０では、不揮発性メモリ１４に書き込みデータを送信した結果として、不揮発性メモリ１４から、書き込みが正常に行われたことを示す信号が返送されたか否かを判定する。その信号が返送された場合には、ステップＳ４９０の処理に進み、その信号が返送されない場合には、ステップＳ５１０に進む。ステップＳ５１０では、不揮発性メモリ１４に異常が発生している旨を記憶する。この場合、故障ランプの点灯などにより車両の乗員に異常を報知する。
【００６８】
ステップＳ４９０では、選択した書き込み領域内の全てデータの書き込みが完了したか否か判定される。全てのデータが書き込まれていないと判定されると、ステップＳ５００にてデータ番号を更新した後、ステップＳ４７０からの処理を再度実行する。一方、全てのデータが書き込まれたと判定されると、ステップＳ５２０の処理に進む。ステップＳ５２０では、データが書き込まれるべきであるが、まだ書き込まれていない領域が残されているか否かを判定する。まだ書き込まれていない領域が残されていると判定されると、ステップＳ４５０の処理に戻る。
【００６９】
このようにして、ＭＧＥＣＵ１０において書き込み処理が実行される。そして、その書き込み処理が終了すると、ＭＧＥＣＵ１０は、電源停止許可信号を電源回路１２に出力する。
【００７０】
本実施形態では、上述したように、複数回発生している異常や故障に関するデータと、初めて発生した異常や故障に関するデータとの書き込みが競合した場合に、初めて発生した異常や故障に関するデータの書き込みを優先して行うようにした。このため、書き込み中になんらかの異常が発生し、書き込み処理が中断されたとしても、初めて発生した異常や故障に関するデータを不揮発性メモリ１４に残せる可能性を高めることができる。
【００７１】
以上、本発明の好ましい実施形態について説明したが、本発明は、上述した実施形態になんら制限されることなく、本発明の主旨を逸脱しない範囲において、種々変形して実施することができる。
【００７２】
例えば、上述した実施形態では、複数回発生している異常や故障に関するデータと、初めて発生した異常や故障に関するデータとの書き込みが競合する場合について説明した。しかしながら、異常や故障に関するデータの書き込みが競合するパターンは、上述した例以外にもありえる。例えば、どちらも複数回発生している異常や故障に関するデータの書き込みが競合することも考えられる。このような場合には、書き込み回数の少ない異常や故障に関するデータを優先して書き込むようにすることが好ましい。これにより、書き込み回数の少ない異常や故障に関するデータを不揮発性メモリ１４に残せる可能性を高めることができ、それぞれの異常や故障に関するデータを豊富化することで、各異常や故障の診断を的確に行うことが可能となる。
【符号の説明】
【００７３】
１０  ＭＧＥＣＵ
１２  電源回路
１４  不揮発性メモリ
１６  インバータ回路
１８  モータジェネレータ
【図１】
0005983546.tif 000002
【図２】
0005983546.tif 000003
【図３】
0005983546.tif 000004
【図４】
0005983546.tif 000005
【図５】
0005983546.tif 000006
【図６】
0005983546.tif 000007