(57)【要約】【課題】不揮発性メモリに対する更新データの書き込み異常によって動作不良となることを抑制できる、車両用制御装置を提供する。【解決手段】電気的に消去及び書き込みが可能な不揮発性メモリを備え、起動時に、前記不揮発性メモリから読み出した更新データの誤り検出を行い（Ｓ１０５，Ｓ１０６）、誤りを検出した場合に係るエラー情報を保存してからリセットを実施する（Ｓ１１１〜Ｓ１１４）。リセットによる再起動時に、異常が生じている更新データがあることをエラー情報に基づいて判断すると（Ｓ１０３）、誤り検出に先立って、更新データを固定値に上書きする（Ｓ１０４）。これにより、異常が生じている更新データが存在する状態で誤り検出が実施され、リセットと誤り検出とが繰り返されることを抑制できる。【選択図】図４
2014035730.tif 000002
【特許請求の範囲】
【請求項１】
電気的に消去及び書き込みが可能な不揮発性メモリを備え、
起動時に、前記不揮発性メモリの更新データの誤り検出を行い、誤りを検出した場合にリセットを実施する車両用制御装置において、
前記誤り検出に基づくリセットによって再起動した場合に、前記誤り検出に先立って、少なくとも誤りが発生した更新データを所定値に書き換える、車両用制御装置。
【請求項２】
前記誤り検出によって誤りの発生を検出した更新データのアドレスを保存し、前記アドレスに基づき前記更新データを前記所定値に書き換える、請求項１記載の車両用制御装置。
【請求項３】
更新データの前記不揮発性メモリに対する書き込みにおいて、同一の更新データを複数エリアに書き込み、
前記誤り検出に基づくリセットによって再起動した場合に、誤りが発生したエリアの更新データを、誤りが発生していないエリアの更新データの値に書き換える、請求項１又は２記載の車両用制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気的に消去及び書き込みが可能な不揮発性メモリを備えた車両用制御装置に関する。
【背景技術】
【０００２】
特許文献１には、複数の物理ブロックで構成される不揮発性メモリにデータを書き込むときに、物理ブロックの先頭ページの冗長領域にあり、その先頭ページにデータが書き込まれているか否かを示す第１のフラグに、データが書き込まれていることを示す固定値を書き込む第１のフラグ書き込みステップと、その物理ブロックにデータを書き込むデータ書き込みステップと、を有する、不揮発性記憶装置の制御方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００４／０３１９６６号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、不揮発性メモリに書き込まれたデータの誤り検出を、起動時に行うよう構成された車両用制御装置では、不揮発性メモリへのデータの書き込み中に、電源遮断などによってデータ書き込みに異常が生じると、誤りデータの強制的な書き換えなどの機会がないままリセットされて再起動することで、誤り検出、リセットが繰り返され、システムを動かすことができなくなる可能性があった。
【０００５】
本発明は上記問題点に鑑みなされたものであり、不揮発性メモリに対する更新データの書き込み異常によって動作不良となることを抑制できる、車両用制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
そのため、本願発明では、電気的に消去及び書き込みが可能な不揮発性メモリを備え、起動時に、前記不揮発性メモリの更新データの誤り検出を行い、誤りを検出した場合にリセットを実施する車両用制御装置において、前記誤り検出に基づくリセットによって再起動した場合に、前記誤り検出に先立って、少なくとも誤りが発生した更新データを所定値に書き換えるようにした。
【発明の効果】
【０００７】
上記発明によると、誤り検出に基づくリセットによって再起動すると、誤り検出を行う前に、少なくとも誤りが発生した更新データを書き換えることで、誤りの検出が繰り返されることを抑制でき、以って、動作不良となることを抑制できる。
【図面の簡単な説明】
【０００８】
【図１】本願発明の実施形態における車両用制御装置のブロック図である。
【図２】本願発明の実施形態における不揮発性メモリのアドレス空間を示す図である。
【図３】本願発明の実施形態における車両用制御装置の起動時の状態変化及び不揮発性メモリのアクセスを示すタイムチャートである。
【図４】本願発明の実施形態における車両用制御装置の起動時処理の一例を示すフローチャートである。
【図５】本願発明の実施形態における車両用制御装置の起動時処理の一例を示すフローチャートである。
【図６】本願発明の実施形態における車両用制御装置の起動時処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に本発明の実施の形態を説明する。
図１は、車両用制御装置の一例を示すブロック図である。
図１に示す車両用制御装置１は、各種の車両搭載機器（エンジン、自動変速機、エアコンなど）を制御する装置であり、マイクロコンピュータ（演算器）２、電源回路３、Ｉ／Ｆ回路４などを備える。
【００１０】
マイクロコンピュータ（以下、「マイコン」という）２は、ＣＰＵ（演算処理装置）２１、フラッシュＲＯＭやＥＥＰＲＯＭなどの電気的に消去及び書き込みが可能な不揮発性メモリ２２、ＲＡＭなどの揮発性メモリ２３を含んでいる。
そして、マイコン２は、Ｉ／Ｆ回路４を介して外部からセンサ信号などを入力し、また、Ｉ／Ｆ回路４を介して外部に向けて操作信号などを出力する。
【００１１】
マイコン２及び電源回路３には、運転者によってオン／オフされる電源スイッチ５を介して、車両電源（バッテリ）６の電力が供給される。
また、電源回路３によってオン／オフが制御されるセルフシャットオフリレー７を介する経路によっても、車両電源６の電力がマイコン２及び電源回路３に供給されるようになっていて、セルフシャットオフリレー７をオンに保持することで、電源スイッチ５がオフされた後も、マイコン２に対する電力供給を継続させることが可能である。
また、電源回路３は、マイコン２からプログラムラン信号Ｐ−ＲＵＮを入力し、マイコン２に対してリセット信号を出力する外部監視回路としての機能を備えている。
【００１２】
不揮発性メモリ２２には、図２に示すように、格納データの１つ或いは複数毎にビット誤り検出やビット誤り訂正を行うためのコード（エラー訂正コードＥＣＣ）が格納されるようになっている。
図２において、更新データは、マイコン２への電源投入期間中に、順次更新して書き込まれる学習データや故障診断データ（故障履歴データ）などであり、固定データは、初期状態において書き込まれる制御定数などの更新されないデータである。
【００１３】
マイコン２は、図３に示すように、電源投入によって起動すると、まず、初期化処理を実施した後、不揮発性メモリ２２から更新データの読み出し及び誤り検出訂正（エラー制御）を行い、全更新データの読み出しを完了すると、その他の処理（更新データの書き込みを含む）を実施する。
更新データの不揮発性メモリ２２への書き込みは、全更新データの読み出しを完了した後の電源投入期間中に、必要に応じて実施され、更新データの書き込みタイミングはランダムである。
【００１４】
以下では、マイコン２（ＣＰＵ２１）で実施される更新データの誤り訂正処理の一例を、図４のフローチャートに従って詳細に説明する。
マイコン２に電源投入されかつリセットが解除された起動直後、まず、ステップＳ１０１で初期化処理を実施する。
【００１５】
初期化処理を終了すると、次いで、ステップＳ１０２に進んで、前回の起動時に実施した更新データの誤り検出の結果を示すエラー情報の読み出しを行う。後述するように、マイコン２は、更新データの誤り検出を行う毎に、係る誤り検出の結果をエラー情報として不揮発性メモリ２２又は揮発性メモリ２３に保存するようになっており、ステップＳ１０２では、このエラー情報を読み出す。
そして、ステップＳ１０３では、エラー情報に基づき、更新データの異常発生履歴があるか否か、換言すれば、前回の起動時に行った誤り検出において更新データが異常であると判定されたか否かを判断する。
【００１６】
ここで、更新データの異常発生履歴がない場合、即ち、前回の起動時に行った誤り検出において、異常判定された更新データがなかった場合（誤りが検出されたものの訂正された場合を含む）は、ステップＳ１０４を迂回してステップＳ１０５以降の誤り検出訂正処理を実施する。
ステップＳ１０５では、更新データ及びそのエラー訂正コードＥＣＣを、不揮発性メモリ２２から読み出す。
【００１７】
ステップＳ１０６では、更新データとそのエラー訂正コードＥＣＣとの照合を行う。
そして、照合結果に異常がなければ、ステップＳ１０９へ進んで、全更新データの読み出しが完了したか否かを判定し、全更新データの読み出しが完了していない場合には、ステップＳ１０５に戻って、次の更新データ及びそのエラー訂正コードＥＣＣの読み出しを行い、全更新データの読み出しが完了すると、ステップＳ１１０に進んでその他の処理に移行する。
【００１８】
一方、ステップＳ１０６での照合結果に異常があれば、ステップＳ１０７へ進む。
尚、誤り検出としては、パリティチェックやチェックサムなどの公知の検出方法を用いることができる。
【００１９】
更新データの誤りは、例えば更新データの不揮発性メモリ２２に対する書き込み途中で、マイコン２に対する電力供給が途絶えることで発生する。更新データの書き込み途中で、電源スイッチ５がオフされた場合には、書き込み終了までセルフシャットオフリレー７を介してマイコン２に対する電力供給を継続させ、更新データ及びエラー訂正コードＥＣＣの書き込みを正常に行わせることができる。
また、マイコン２が電源スイッチのオン／オフ信号を入力すると共に、リレーを介して外部電源から電力供給を受ける構成とし、更新データの不揮発性メモリ２２への書き込み中に前記電源スイッチがオフされた場合に、書き込み終了までリレーをオン状態に保持させ、書き込み終了後に前記リレーをオフして、セルフシャットオフを行うことができる。
しかし、マイコン２に電力を供給するためのハーネスの断線、地絡、中間コネクタの抜けなどによる電源電圧の低下や、電源異常による電源電圧の低下が、更新データの書き込み途中で発生すると、書き込むべき値と実際に書き込んだ値とが異なる異常や、更新前の値が不揮発性メモリ２２に残る異常などが発生する。
【００２０】
ステップＳ１０７では、訂正可能なビット誤りであるか否かを判断する。
例えば、縦横パリティなどによって１ビット誤りを訂正できる場合には、ステップＳ１０７において、更新データの異常が１ビット誤りであるか否か（誤りが発生しているビット数が２以上であるか否か）を判断する。
【００２１】
ここで、更新データの異常が１ビット誤りであれば、訂正可能であるので、ステップＳ１０８へ進んで更新データの訂正を実施し、ステップＳ１０９へ進む。
また、２ビット以上の誤りが発生している場合は訂正不能と判断し、ステップＳ１１１へ進み、エラー情報として、例えば誤りが生じている更新データのアドレスなどを、不揮発性メモリ２２に保存する。
【００２２】
次いで、ステップＳ１１２では、マイコン２のシャットダウン処理（シャットダウンするための命令実施など）を行い、更に、ステップＳ１１３では、プログラムラン信号Ｐ−ＲＵＮの出力を停止する。
外部監視回路として機能する電源回路３は、マイコン２から出力されるプログラムラン信号Ｐ−ＲＵＮを監視しており、プログラムラン信号Ｐ−ＲＵＮが途絶えると、マイコン２をリセットさせるリセット信号を出力する。
リセット信号を入力したマイコン２は、ステップＳ１１４でリセット処理を実行して再起動することで、再度ステップＳ１０１の初期化処理を実施した後、ステップＳ１０２に進む。
尚、マイコン２自身が更新データの誤りを検出した場合に、自らリセットを実施する構成とすることもできる。
【００２３】
ここで、前回の起動時に行った誤り検出で検出された、更新データのエラー情報が保存されているので、ステップＳ１０２では係るエラー情報が読み出される。
そして、ステップＳ１０３では、更新データの異常発生履歴がある（更新データの異常が検出されている）と判断され、ステップＳ１０４へ進む。
【００２４】
ステップＳ１０４では、更新データの全エリアに対して、固定値である更新データ、及び、書き込み処理において算出されるエラー訂正コードＥＣＣを上書きし、異常の発生が検出された更新データを含む全更新データを固定値に書き換える。
上書きする更新データの固定値は、予め不揮発性メモリ２２に保存されており、書き換え処理中の読み出しにおける誤り検出において誤りが検出されることがない更新データとエラー訂正コードＥＣＣとの組み合わせとしてある。
【００２５】
ここで、更新データが学習値である場合には、前記固定値を、学習値の初期値（デフォルト値）とすることができる。また、固定値を、更新データのアドレス毎に持っていて、各アドレスに対応する固定値に上書きすることができる。
上記のようにして、誤りの発生が検出された更新データを含めて、全ての更新データを予め定めた値に書き換えて、更に、エラー訂正コードＥＣＣを書き換えれば、ステップＳ１０５以降の誤り検出に進んだときに、更新データの異常発生が検出されることが避けられ、最終的にステップＳ１１０に進んで、車両用制御装置１による制御を開始させることができる。
【００２６】
ステップＳ１０３及びステップＳ１０４の各ステップがない処理ルーチンの場合、更新データに誤りが生じていることを検出したためにリセットされたのに、誤りが解消されていないまま、再度、更新データの誤り検出を行うことになる。
このため、更新データの誤りを前回と同様に検出することでマイコン２がリセットされ、リセット→誤り検出処理→誤りの発生を検出→リセット→・・・を繰り返すことになり、車両用制御装置１による制御が開始されず、車両用制御装置１を用いたシステムを動かすことができなくなる。
そして、係る状態では、通常の手法では起動可能に設定することが困難なため、車両用制御装置１を交換せざるを得なくなるか、又は、車両用制御装置１を分解し、ソフトウエアを書き直す必要がある。
【００２７】
これに対し、ステップＳ１０３及びステップＳ１０４の各ステップを備える上記の処理ルーチンでは、前回の誤り検出の結果を記憶し、前回の誤り検出で更新データの誤り発生を検出している場合には、今回の誤り検出に先立って、誤りが生じている更新データを、誤り検出されないように固定値（所定値）に書き換えるので、リセットと誤り検出とが繰り返されることがなく、車両用制御装置１による制御を開始させることができる。従って、車両用制御装置１の無用な交換を抑制でき、又は、車両用制御装置１の分解を行い、ソフトウエアを書き直す必要も無くなる。
尚、誤り検出は、固定データエリアでも実施され、固定データエリアのデータ誤りは、マイコンの異常処理については車両用制御装置１の制御不良を起因するため、誤り検出時はリセットを発生する仕様が好ましい。
【００２８】
図４のフローチャートに示す処理では、更新データの一部に誤りが発生した場合に、リセット後の再起動時に、正常である更新データを含めて全更新データが固定値に書き換えられることになるが、更新データに誤りが発生したアドレスに限定して、固定値に書き換えることができる。
図５のフローチャートは、誤りの発生が検出された更新データのアドレスに対して固定値を書き込むようにした、マイコン２の処理の流れを示す。
【００２９】
図５のフローチャートにおいて、図４のフローチャートと同じ処理を行うステップについては、同じステップ番号を付してあり、図４のフローチャートに対して異なるステップであるステップＳ１０４Ａ及びステップＳ１０４Ｂについて詳細に説明し、他のステップについての説明を省略する。
ステップＳ１０３において、更新データの異常発生履歴がある（前回の誤り検出において異常の発生が検出された更新データがあった）と判断すると、ステップＳ１０４Ａに進み、エラー情報として記憶されている、誤りの発生が検出された更新データのアドレスを読み出す。
【００３０】
そして、次のステップＳ１０４Ｂでは、ステップＳ１０４Ａで読み出した誤り発生アドレスの更新データを固定値に書き換え、書き込み処理において算出されたエラー訂正コードＥＣＣに書き換える。
即ち、更新データエリアの複数の更新データの中で、誤りが発生している更新データを書き換え、誤りが発生していない更新データについては上書きすることなくそのまま残すようにする。
上書きする更新データ固定値は、予め不揮発性メモリ２２に保存されており、上書きするアドレスとは無関係に一律の値とすることができる他、上書きするアドレスに応じて異なる値として与えることができる。
【００３１】
上記のようにして、誤り検出に基づくリセットによる再起動時に、誤り検出に先立って、誤りの発生が検出されたアドレスの更新データを、誤り検出されないように固定値（所定値）に書き換えれば、リセットと誤り検出とが繰り返されることがなく、車両用制御装置１による制御を開始させることができる。
更に、誤りの発生が検出された更新データのアドレスについてのみ固定値で上書きするように構成すれば、正常に書き込まれた更新データをそのまま保存でき、例えば、更新データが学習値であれば、学習のやり直しが無用に行われることを抑制できる。
【００３２】
ところで、更新データの不揮発性メモリ２２に対する書き込みにおいて、同一の更新データを複数エリア（例えば２つのエリア）にそれぞれ書き込むミラーリングが行われる場合、１つの更新データエリア（更新データ面）内の更新データに誤りが発生しても、他の更新データエリア（更新データ面）の同一更新データについては正常に書き込まれている場合がある。
そして、この場合、誤りが発生した更新データの正しい値は、他の更新データエリアに保存されていることになるから、誤りが発生した更新データの上書きに用いる値を、他の更新データエリアに保存されている値とすることができる。
【００３３】
係る上書き処理を行う例を、図６のフローチャートに従って説明する。
図６のフローチャートにおいて、図４のフローチャートと同じ処理を行うステップについては、同じステップ番号を付してあり、図４のフローチャートに対して異なるステップＳであるステップＳ１０４Ａ、ステップＳ１０４Ｂ１及びステップＳ１０４Ｂ２について詳細に説明し、他のステップについての説明を省略する。
【００３４】
ステップＳ１０３において、更新データの異常発生履歴がある（前回の誤り検出において異常の発生が検出された更新データがあった）と判断すると、ステップＳ１０４Ａに進み、エラー情報として記憶されている、誤りの発生が検出された更新データのアドレスを読み出す。
次のステップＳ１０４Ｂ１では、ステップＳ１０４Ａで読み出した誤り発生アドレスに基づき、誤り発生アドレスが該当する更新データエリア（更新データ面）が、ミラーリングによって同一の更新データが書き込まれる複数のエリア（面）の中のいずれであるかを特定する。
【００３５】
そして、ステップＳ１０４Ｂ２では、誤り発生アドレスが含まれる更新データエリアにおける更新データ及びエラー訂正コードＥＣＣの値を、他の更新データエリアに格納されている、対応する更新データ、及び、書き込み処理において算出されるエラー訂正コードＥＣＣの値に上書きする。
ここで、誤り発生アドレスが含まれる更新データエリアにおける更新データを、他のエリアの同一更新データを格納するアドレスに書き込まれている更新データとその書き込み処理において算出されるエラー訂正コードＥＣＣの値で上書きすることができる。また、誤り発生アドレスが該当する更新データエリアの全更新データ及びエラー訂正コードＥＣＣを、他の更新データエリアにおける対応する更新データとその書き込み処理において算出されるエラー訂正コードＥＣＣの値でそれぞれに上書きすることができる。
【００３６】
上記のようにして、リセットによる再起動時に、誤り検出に先立って、誤りが生じているアドレスの更新データを、他のエリアの対応する更新データの値で上書きすれば、その後の誤り検出で誤りの発生が検出されず、リセットと誤り検出とが繰り返されることがなく、車両用制御装置１による制御を開始させることができる。
更に、誤りが発生した更新データを、他のエリアに書き込まれている正しい値で上書きするから、更新データの書き込みにエラーが生じなかった場合と同じ状態に復帰させることができる。従って、例えば更新データが学習データであれば、学習のやり直しを避けることができ、それまでの学習結果をそのまま反映した制御を行える。
【００３７】
ここで、上記実施形態から把握し得る請求項以外の技術的思想について、以下に効果と共に記載する。
（イ）マイコンと外部監視回路とを備え、
前記マイコンは、更新データの誤りを検出した場合に、プログラムラン信号の出力を停止し、
前記外部監視回路は、前記プログラムラン信号の出力停止に基づき前記マイコンをリセットする、請求項１〜３のいずれか１つに記載の車両用制御装置。
上記発明によると、更新データの誤りを検出した場合に、プログラムラン信号の出力停止によってリセットが実施され、誤りが発生した更新データに基づく制御動作の実施が抑制される。
（ロ）マイコンを備え、前記マイコン自身が更新データの誤りを検出した場合に、自らリセットを実施する、請求項１〜３のいずれか１つに記載の車両用制御装置。
上記発明によると、更新データの誤りを検出した場合に、マイコンがリセットを実施することで、誤りが発生した更新データに基づく制御動作の実施が抑制される。
【００３８】
（ハ）電源スイッチを介して外部電源からの電力供給を受ける第１経路と、前記電源スイッチを迂回して前記外部電源からの電力供給を受ける第２経路と、前記第２経路に設けたリレーと、を備え、
更新データの前記不揮発性メモリへの書き込み中に前記電源スイッチがオフされた場合に、前記第２経路によって電力供給を受け、書き込み終了後に前記リレーをオフして、セルフシャットオフを行う、請求項１〜３のいずれか１つに記載の車両用制御装置。
上記発明によると、更新データの書き込み途中で、電源スイッチがオフされても、電源遮断による更新データの書き込み異常が発生することを抑制できる。
（ニ）電源スイッチのオン／オフ信号を入力すると共に、リレーを介して外部電源から電力供給を受ける構成であって、
更新データの前記不揮発性メモリへの書き込み中に前記電源スイッチがオフされた場合に、書き込み終了まで前記リレーをオン状態に保持させ、書き込み終了後に前記リレーをオフして、セルフシャットオフを行う、請求項１〜３のいずれか１つに記載の車両用制御装置。
上記発明によると、更新データの書き込み途中で、電源スイッチがオフされても、電源遮断による更新データの書き込み異常が発生することを抑制できる。
【００３９】
（ホ）前記更新データに訂正不能な誤りが発生した場合にリセットを実施する、請求項１〜３記載の車両用制御装置。
上記発明によると、誤り検出によって誤りの発生が検出された場合であっても、例えば、縦横パリティにおける１ビットエラーのように訂正可能な誤りについては訂正を行うことで、リセットの実施を抑制し、２ビットエラーのような訂正不能な誤りが発生すると、リセットによって再起動させ、係る再起動時に、誤りの発生が検出された更新データを所定値に書き換えることで、リセット及び誤り検出の繰り返しを抑制する。
【００４０】
（ヘ）前記更新データが、エラー訂正コードと共に前記不揮発性メモリに書き込まれ、
更新データを所定値に書き換えるときに、エラー訂正コードも同時に所定値に書き換える、請求項１〜３のいずれか１つに記載の車両用制御装置。
上記発明によると、更新データと共にエラー訂正コードも同時に書き換えることで、誤り検出で誤りの発生が検出されることを避ける。
【符号の説明】
【００４１】
１…車両用制御装置、２…マイコン、３…電源回路、４…Ｉ／Ｆ回路、５…電源スイッチ、６…車両電源、７…セルフシャットオフリレー、２１…ＣＰＵ、２２…不揮発性メモリ
【図１】
2014035730.tif 000003
【図２】
2014035730.tif 000004
【図３】
2014035730.tif 000005
【図４】
2014035730.tif 000006
【図５】
2014035730.tif 000007
【図６】
2014035730.tif 000008