説明

電子制御装置

【課題】フラッシュメモリのデータ消去中或いはデータ書込み中に、フラッシュメモリのデータ消去動作或いは書込み動作を中断させるような事象が発生した場合でも、適切なバックアップ動作を継続可能な電子制御装置を提供する。
【解決手段】揮発性メモリと、フラッシュメモリと、前記揮発性メモリに保存されているバックアップデータを所定条件の成立をトリガとして前記フラッシュメモリに保存するメモリ制御部とを備える電子制御装置であって、前記メモリ制御部は、電源投入時において、前記フラッシュメモリの消去単位ブロックの内、データが全く保存されていない消去単位ブロックをブランクブロックとして特定し、前記ブランクブロックを基準として消去すべき消去単位ブロックを消去ブロックとして特定すると共に最新データが保存されている消去単位ブロックを最新ブロックとして特定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子制御装置に関する。
【背景技術】
【0002】
近年の車載ECU(Electronic Control Unit)は、イグニション・オン期間中に一定周期で取得した車両情報をバックアップデータとしてRAM(Random Access Memory)等の揮発性メモリに上書き保存しておき、所定条件の成立をトリガとして、揮発性メモリに保存されているバックアップデータをフラッシュメモリ等の不揮発性メモリに保存するバックアップ機能を備えている。
【0003】
例えば下記特許文献1には、フラッシュメモリをバックアップ用の不揮発性メモリとして備える車載ECUにおいて、フラッシュメモリの記憶領域に常に消去済み領域を確保しておき、RAMに保存されているバックアップデータをフラッシュメモリに保存する際には、消去済み領域の先頭アドレスから順番にバックアップデータの書込みを行う技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−113580号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記特許文献1の技術では、例えばフラッシュメモリのデータ消去中或いはデータ書込み中にCPU(Central Processing Unit)がリセットされると、フラッシュメモリのデータが不定となるため、故障を報知するための信号を出力する機能をCPUに持たせる必要があった(文献中の段落0035参照)。
【0006】
また、従来では、バックアップデータの確からしさを、それらバックアップデータのSUM値を用いて判断していたが、フラッシュメモリのデータ消去中或いはデータ書込み中にCPUがリセットされると、正確なSUM値が得られなくなり、バックアップデータの確からしさを判断できなくなる可能性がある。
【0007】
本発明は上述した事情に鑑みてなされたものであり、フラッシュメモリのデータ消去中或いはデータ書込み中に、フラッシュメモリのデータ消去動作或いは書込み動作を中断させるような事象が発生した場合でも、適切なバックアップ動作を継続可能な電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明では、電子制御装置に係る第1の解決手段として、揮発性メモリと、フラッシュメモリと、前記揮発性メモリに保存されているバックアップデータを所定条件の成立をトリガとして前記フラッシュメモリに保存するメモリ制御部とを備える電子制御装置であって、前記メモリ制御部は、電源投入時において、前記フラッシュメモリの消去単位ブロックの内、データが全く保存されていない消去単位ブロックをブランクブロックとして特定し、前記ブランクブロックを基準として消去すべき消去単位ブロックを消去ブロックとして特定すると共に最新データが保存されている消去単位ブロックを最新ブロックとして特定することを特徴とする。
【0009】
また、本発明では、電子制御装置に係る第2の解決手段として、上記第1の解決手段において、前記メモリ制御部は、前記ブランクブロックの1つ先の消去単位ブロックを前記消去ブロックとして特定すると共に、前記ブランクブロックの1つ前の消去単位ブロックを前記最新ブロックとして特定することを特徴とする。
【0010】
また、本発明では、電子制御装置に係る第3の解決手段として、上記第2の解決手段において、前記メモリ制御部は、前記最新ブロックとして特定した消去単位ブロックにデータが保存されていない領域が一部でも存在する場合、最初に特定した前記ブランクブロックの1つ前の消去単位ブロックを前記消去ブロック及びブランクブロックとして改めて特定すると共に、最初に特定した前記ブランクブロックの2つ前の消去単位ブロックを前記最新ブロックとして改めて特定することを特徴とする。
【0011】
また、本発明では、電子制御装置に係る第4の解決手段として、上記第2または第3の解決手段において、前記メモリ制御部は、前記最新ブロックとして特定した消去単位ブロックに保存されているデータを読み出して前記揮発性メモリに保存することを特徴とする。
【発明の効果】
【0012】
本発明に係る電子制御装置によれば、フラッシュメモリのデータ消去中或いはデータ書込み中に、リセットやイグニション・オンなど、フラッシュメモリのデータ消去動作或いは書込み動作を中断させるような事象が発生した場合でも、適切なバックアップ動作を継続可能である。
【図面の簡単な説明】
【0013】
【図1】本実施形態に係るECU1のブロック構成図である。
【図2】(a)はRAM12及びフラッシュメモリ13の記憶領域の構造を模式的に表した図であり、(b)〜(e)はブランクブロック、一部ブランクブロック及び読出し可能ブロックの定義を表す図である。
【図3】CPU15がイグニション・オン時に実行するイニシャル処理の詳細を表すフローチャートである。
【図4】ECU1のバックアップ動作に際して、フラッシュメモリ13の各ブロックの状態がどのように変化するのかを表した図である。
【発明を実施するための形態】
【0014】
以下、本発明の一実施形態について、図面を参照しながら説明する。なお、以下では、本発明に係る電子制御装置として、車両に搭載され、イグニション・オン期間中に一定周期で取得した車両情報をバックアップデータとしてRAMに上書き保存しておき、所定条件の成立をトリガとして、RAMに保存されているバックアップデータをフラッシュメモリに保存するバックアップ機能を備えたECUを例示して説明する。
【0015】
図1は、本実施形態に係るECU1のブロック構成図である。この図に示すように、ECU1は、ROM(Read Only Memory)11、RAM12、フラッシュメモリ13、通信回路14及びCPU15を備えている。
【0016】
ROM11は、CPU15に各種処理を実行させるための制御プログラムや各種設定データを予め記憶している不揮発性メモリである。RAM12は、CPU15が各種処理を実行する際にバックアップデータを含む各種データの一時保存先として用いられる書き換え可能な揮発性メモリである。フラッシュメモリ13は、CPU15による制御に応じて、RAM12に一時的に保存されたバックアップデータを保存する書き換え可能な不揮発性メモリである。
【0017】
図2(a)は、RAM12及びフラッシュメモリ13の記憶領域の構造を模式的に表した図である。この図2(a)に示すように、RAM12には、バックアップデータ保存用の記憶領域として例えば8kバイトの領域が確保されている。この8kバイトの記憶領域の内、例えばアドレス「0000」〜「1FF7」までの領域にバックアップデータ(実データ)が保存され、アドレス「1FF8」〜「1FFB」までの4バイトの領域にバックアップデータのSUM値が保存され、アドレス「1FFC」〜「1FFF」までの4バイトの領域に書込み完了コードが保存される。
【0018】
また、図2(a)に示すように、フラッシュメモリ13には、バックアップデータ保存用の記憶領域として例えば32kバイトの領域が確保されている。この32kバイトの記憶領域は、それぞれ8kバイトの記憶容量を有する4つの消去単位ブロックに区分されている。公知のように、フラッシュメモリ13は、記憶領域内のある一定範囲の領域に保存されているデータを一括消去する機能を有しており、その一括消去可能な最小範囲を消去単位ブロックと呼ぶ。
【0019】
つまり、フラッシュメモリ13の各消去単位ブロックは、それぞれRAM12に保存された8kバイト分のバックアップデータ(SUM値及び書込み完了コードも含む)を保存可能な記憶容量を有している。なお、以下では、4つの消去単位ブロックを、先頭アドレスの小さい方から順にブロックB〔0〕、B〔1〕、B〔2〕、B〔3〕と呼ぶ。
【0020】
また、以下では、図2(b)のような、データが全く保存されていないブロック(つまり全領域ブランクのブロック)をブランクブロックと呼ぶ。また、図2(c)のような、前半ブランク無し(データ有り)で後半ブランク(書込み完了コード無し)のブロック、或いは図2(d)のような、前半ブランク(データ無し)で後半ブランク無し(書込み完了コード有り)のブロック、つまりデータが保存されていない領域が一部でも存在するブロックを一部ブランクブロックと呼ぶ。また、図2(e)のような、SUM値及び書込み完了コードも含むバックアップデータの全てが保存されているブロックを読出し可能ブロックと呼ぶ。
【0021】
図1に戻り、通信回路14は、ECU1(正確にはCPU15)と他の車載ECU或いは各種センサ(図示省略)とのシリアル通信を実現するシリアル通信インターフェースである。CPU15(メモリ制御部)は、ROM11に記憶されている制御プログラムに従って各種処理を実行する中央演算処理装置である。
【0022】
このCPU15は、イグニション・オン期間中(電源オン期間中)に、通信回路14を介して他の車載ECU或いは各種センサから一定周期で取得した車両情報をバックアップデータとしてRAM12に上書き保存し、所定条件の成立(イグニション・オフ)をトリガとして、RAM12に保存されているバックアップデータをフラッシュメモリ13に保存するバックアップ機能を有している。
【0023】
なお、図1では図示を省略しているが、ECU1はイグニション・オフ、つまりバッテリによる電源電圧の供給が停止した後、ROM11、RAM12、フラッシュメモリ13、通信回路14及びCPU15等の各電子部品に電源電圧を一定時間供給するバックアップ電源(例えばバックアップコンデンサ)を備えている。つまり、CPU15は、イグニションがオフされると、上記のバックアップ電源から電源電圧の供給を受けながらバックアップ処理(フラッシュメモリ13へのバックアップデータの保存)を実行する。
【0024】
また、詳細は後述するが、CPU15は、電源投入時(イグニション・オン時)のイニシャル処理として、フラッシュメモリ13の各ブロックB〔0〕、B〔1〕、B〔2〕、B〔3〕の内、データが全く保存されていないブロックをブランクブロックとして特定し、このブランクブロックを基準として消去すべきブロックを消去ブロックとして特定すると共に最新データが保存されているブロックを最新ブロックとして特定する。
【0025】
次に、上記のように構成された本実施形態に係るECU1の動作、特に車両情報(バックアップデータ)のバックアップ動作について詳細に説明する。
【0026】
まず、始めに、CPU15がイグニション・オン時に実行するイニシャル処理について図3のフローチャートを参照しながら詳細に説明する。
この図3に示すように、CPU15は、イグニションがオンされると、まず、変数CNT及びiを「0」にリセットする(ステップS1)。そして、CPU15は、フラッシュメモリ13のブロックB〔i〕の状態調査を行う(ステップS2)。具体的には、ステップS2において、CPU15は、ブロックB〔i〕がブランクブロック、一部ブランクブロック、或いは読出し可能ブロックのいずれの状態に当てはまるのかを調査する。
【0027】
そして、CPU15は、ブロックB〔i〕が読出し可能ブロックか否かを判定し(ステップS3)、「Yes」の場合には変数CNTをインクリメントしてステップS5の処理に移行し(ステップS4)、「No」の場合には直接ステップS5の処理に移行する。
【0028】
CPU15は、上記ステップS4の終了後、或いは上記ステップS3で「No」と判定された場合、変数iをインクリメントし(ステップS5)、変数iが「4」より小さいか否かを判定する(ステップS6)。CPU15は、ステップS6において「Yes」の場合にステップS2の処理に戻る一方、「No」の場合にはステップS7の処理に移行する。
CPU15は、上記ステップS2〜S6の実行により、フラッシュメモリ13の各ブロックB〔0〕、B〔1〕、B〔2〕、B〔3〕の状態を把握すると共に、変数CNTのインクリメントによって読出し可能ブロックの数をカウントする。
【0029】
そして、CPU15は、ステップS6において「No」の場合、フラッシュメモリ13の各ブロックB〔0〕、B〔1〕、B〔2〕、B〔3〕の中からブランクブロックをサーチし、そのブランクブロックのブロック番号を変数ABBに代入する(ステップS7)。つまり、この変数ABBは、ブランクブロックのブロック番号を示す変数である。例えばブロックB〔2〕がブランクブロックの場合、変数ABBには「2」が代入される。
【0030】
そして、CPU15は、変数ABBから「1」を減算して得られる値を変数RBに代入し(ステップS8)、変数ABBに「1」を加算して得られる値を変数EBに代入する(ステップS9)。つまり、この変数RBは、ブランクブロックの1つ前のブロック(最新データが保存されている最新ブロック)のブロック番号を示す変数であり、変数EBは、ブランクブロックの1つ先のブロック(消去すべきブロック)のブロック番号を示す変数である。
【0031】
例えばブロックB〔2〕がブランクブロックの場合、変数RBには「1」が代入され、変数EBには「3」が代入される。なお、例えばブロックB〔0〕がブランクブロックの場合、変数RBには「−1」ではなく「3」が代入される。また、例えばブロックB〔3〕がブランクブロックの場合、変数EBには「4」ではなく「0」が代入される。
CPU15は、上記ステップS7〜S9の実行により、フラッシュメモリ13の各ブロックB〔0〕、B〔1〕、B〔2〕、B〔3〕の中から、ブランクブロック、消去ブロック及び最新ブロックを特定する。
【0032】
続いて、CPU15は、ブロックB〔RB〕、つまり最新ブロックが一部ブランクブロックか否かを判定する(ステップS10)。CPU15は、ステップS10において「No」の場合には直接ステップS13の処理に移行する一方、「Yes」の場合には、変数ABBから「2」を減算して得られる値を変数RBに代入し(ステップS11)、変数ABBから「1」を減算して得られる値を変数EBに代入し(ステップS12)、さらに、変数ABBから「1」を減算して得られる値を新たに変数ABBに代入する(ステップS13)。
【0033】
例えばブロックB〔2〕がブランクブロックの場合、変数RBには「0」が代入され、変数EB及び変数ABBには「1」が代入される。なお、例えばブロックB〔0〕がブランクブロックの場合、変数RBには「−2」ではなく「2」が代入され、変数EB及び変数ABBには「−1」ではなく「3」が代入される。
【0034】
つまり、CPU15は、上記ステップS10〜12の実行により、最初に特定した最新ブロックが一部ブランクブロックの場合に、最初に特定したブランクブロックの1つ前のブロックを消去ブロックとして改めて特定すると共に、最初に特定したブランクブロックの2つ前のブロックを最新ブロックとして改めて特定し、さらに最初に特定したブランクブロックの1つ前のブロックをブランクブロックとして改めて特定する。
【0035】
続いて、CPU15は、変数CNTが「0」か否か、つまり読出し可能ブロックの数が「0」か否かを判定し(ステップS14)、「No」の場合にはブロックB〔RB〕、つまり最新ブロックが読出し可能ブロックか否かを判定する(ステップS15)。このステップS15において「Yes」の場合、CPU15は、ブロックB〔RB〕、つまり最新ブロックに保存されているバックアップデータを読み出して、RAM12のバックアップデータ記憶領域(図2(a)参照)に書き込む(ステップS16)。
【0036】
一方、上記ステップS14において「Yes」の場合、或いは上記ステップS15において「No」の場合、CPU15は、ROM11に予め保存されている代替データを読み出して、RAM12のバックアップデータ記憶領域に書き込む(ステップS17)。
【0037】
以上説明したイニシャル処理によって、イグニションがオンされると、フラッシュメモリ13の各ブロックB〔0〕、B〔1〕、B〔2〕、B〔3〕の中から、ブランクブロック、消去ブロック及び最新ブロックが特定され、RAM12のバックアップデータ記憶領域には、フラッシュメモリ13の最新ブロックに保存されていたバックアップデータ、或いはROM11に予め保存されていた代替データが書き込まれることになる。
【0038】
次に、前述のイニシャル処理がイグニション・オン時に実行されることを前提として、CPU15がイグニション・オフ時にバックアップ処理を実行することにより、フラッシュメモリ13の各ブロックB〔0〕、B〔1〕、B〔2〕、B〔3〕の状態がどのように変化するのかを図4を参照しながら詳細に説明する。
なお、以下の説明において、CPU15は、イグニション・オン期間中に、通信回路14を介して他の車載ECU或いは各種センサから一定周期で取得した車両情報をバックアップデータとしてRAM12に上書き保存していることに留意されたい。
【0039】
図4(a)は、フラッシュメモリ13が初期状態(全ブロックがブランクブロック状態)にある場合に、CPU15がイグニション・オフ時にバックアップ処理を実行することにより、フラッシュメモリ13の各ブロックB〔0〕、B〔1〕、B〔2〕、B〔3〕の状態がどのように変化するかを表したものである。
【0040】
まず、フラッシュメモリ13の全ブロックがブランクブロック状態にある時(図中のa−1参照)にイグニションがオフされると、CPU15は、バックアップ電源から電源電圧の供給を受けながら、RAM12からバックアップデータを読み出し、フラッシュメモリ13のブロックB〔3〕にバックアップデータを保存する(図中のa−2参照)。
【0041】
詳細には、CPU15は、フラッシュメモリ13に対して書込み要求信号、書込み先アドレス信号(ブロックB〔3〕内のアドレスを示す信号)及びバックアップデータを送信し、フラッシュメモリ13は、CPU15からの書込み要求信号に応じて、書込み先アドレス信号で指定されたアドレスにバックアップデータを書込む。このようにして、フラッシュメモリ13のブロックB〔3〕に全てのバックアップデータが保存されると、ブロックB〔3〕が最新データを保存する最新ブロックとなる(図中のa−3参照)。
【0042】
そして、次のイグニション・オフ時において、CPU15は、バックアップ電源から電源電圧の供給を受けながら、RAM12からバックアップデータを読み出し、次はフラッシュメモリ13のブロックB〔0〕にバックアップデータを保存する。このようにして、フラッシュメモリ13のブロックB〔0〕に全てのバックアップデータが保存されると、ブロックB〔0〕が最新ブロックとなり、ブロックB〔3〕が古いデータを保有する古いブロックとなる(図中のa−4参照)。
【0043】
さらに、次のイグニション・オフ時において、CPU15は、バックアップ電源から電源電圧の供給を受けながら、RAM12からバックアップデータを読み出し、次はフラッシュメモリ13のブロックB〔1〕にバックアップデータを保存する。このようにして、フラッシュメモリ13のブロックB〔1〕に全てのバックアップデータが保存されると、ブロックB〔1〕が最新ブロックとなり、ブロックB〔0〕、B〔3〕が古いブロックとなる(図中のa−5参照)。
【0044】
このように、CPU15は、フラッシュメモリ13が初期状態(全ブロックがブランクブロック状態)にある場合、イグニションがオフされる度に、ブロックB〔3〕→ブロックB〔0〕→ブロックB〔1〕の順でバックアップデータの保存を行う。
【0045】
CPU15は、フラッシュメモリ13の各ブロックの内、1つのブロックのみがブランクブロックの状態となった後、イグニションがオンされる度に、図3に示したイニシャル処理を実行すると共に、イグニションがオフされる度に、イニシャル処理で特定された消去ブロックの保存データを消去して新たなブランクブロックを生成した後、同イニシャル処理で特定されたブランクブロックにバックアップデータを保存する。
【0046】
例えば、図4(b)に示すように、イグニション・オン時に実行されたイニシャル処理によって、フラッシュメモリ13のブロックB〔0〕が最新ブロック、ブロックB〔1〕がブランクブロック、ブロックB〔2〕が消去ブロックとして特定されたと仮定する(図中のb−1参照)。このようなブロック状態でイグニションがオフされると、CPU15は、バックアップ電源から電源電圧の供給を受けながら、消去ブロックとして特定されたブロックB〔2〕の保存データを消去する(図中のb−2参照)。
【0047】
詳細には、CPU15は、フラッシュメモリ13に対してブロックB〔2〕の消去命令を送信し、フラッシュメモリ13は、CPU15からの消去命令に応じて、ブロックB〔2〕の保存データを消去する(全て「1」にする)。このようにして、ブロックB〔2〕の保存データが全て消去されると、ブロックB〔2〕はブランクブロックとなる(図中のb−3参照)。
【0048】
そして、CPU15は、RAM12からバックアップデータを読み出し、イニシャル処理によってブランクブロックとして特定されたブロックB〔1〕にバックアップデータを保存する(図中のb−4参照)。このようにして、フラッシュメモリ13のブロックB〔1〕に全てのバックアップデータが保存されると、次回のイグニション・オン時に実行されるイニシャル処理によって、ブロックB〔1〕が最新ブロック、ブロックB〔2〕がブランクブロック、ブロックB〔3〕が消去ブロックとして特定されることになる(図中のb−5参照)。
【0049】
ここで、図4(c)に示すように、消去ブロックとして特定されたブロックB〔2〕の保存データの消去中に、CPUリセット(バックアップ電源による電源電圧の供給が停止する)やイグニション・オン(バッテリからの電源電圧の供給が再開される)など、フラッシュメモリ13のデータ消去動作を中断させるような事象が発生した場合を想定する(図中のc−1、c−2参照)。
【0050】
この場合、イグニション・オン時に実行されるイニシャル処理によって、ブロックB〔0〕が最新ブロック、ブロックB〔1〕がブランクブロック、ブロックB〔2〕が消去ブロックとして特定されることになる(図中のc−3参照)。ここで、消去ブロックとして特定されたブロックB〔2〕は、図2(d)に示すような一部ブランクブロック状態となっている。
【0051】
このようなブロック状態でイグニションがオフされると、CPU15は、バックアップ電源から電源電圧の供給を受けながら、消去ブロックとして特定されたブロックB〔2〕、つまり一部ブランクブロックの保存データを消去する。このようにして、ブロックB〔2〕の保存データが全て消去されると、ブロックB〔2〕はブランクブロックとなる(図中のc−4参照)。
【0052】
そして、CPU15は、RAM12からバックアップデータを読み出し、イニシャル処理によってブランクブロックとして特定されたブロックB〔1〕にバックアップデータを保存する。このようにして、フラッシュメモリ13のブロックB〔1〕に全てのバックアップデータが保存されると、次回のイグニション・オン時に実行されるイニシャル処理によって、ブロックB〔1〕が最新ブロック、ブロックB〔2〕がブランクブロック、ブロックB〔3〕が消去ブロックとして特定されることになる(図中のc−5参照)。
【0053】
一方、図4(d)に示すように、ブランクブロックとして特定されたブロックB〔1〕のデータ書込み中に、CPUリセットやイグニション・オンなどの、フラッシュメモリ13のデータ書込み動作を中断させるような事象が発生した場合を想定する(図中のd−1、d−2参照)。
【0054】
この場合、イグニション・オン時に実行されるイニシャル処理のステップS1〜S9の処理によって、始めはブロックB〔1〕が最新ブロック、ブロックB〔2〕がブランクブロック、ブロックB〔3〕が消去ブロックとして特定されることになる(図中のd−3参照)。ここで、最新ブロックとして特定されたブロックB〔1〕は、図2(b)に示すような一部ブランクブロック状態となっている。
【0055】
このため、イニシャル処理のステップS10〜S13の処理によって、最終的にブロックB〔0〕が最新ブロック、ブロックB〔1〕が消去ブロック及びブランクブロックとして特定されることになる(図中のd−4参照)。このようなブロック状態でイグニションがオフされると、CPU15は、バックアップ電源から電源電圧の供給を受けながら、消去ブロックとして特定されたブロックB〔1〕、つまり一部ブランクブロックの保存データを消去する。
【0056】
このようにして、ブロックB〔1〕の保存データが全て消去されると、ブロックB〔1〕はブランクブロックとなる。そして、CPU15は、RAM12からバックアップデータを読み出し、イニシャル処理によってブランクブロックとして特定されたブロックB〔1〕にバックアップデータを保存する。
【0057】
このようにして、フラッシュメモリ13のブロックB〔1〕に全てのバックアップデータが保存されると、次回のイグニション・オン時に実行されるイニシャル処理によって、ブロックB〔1〕が最新ブロック、ブロックB〔2〕がブランクブロック、ブロックB〔3〕が消去ブロックとして特定されることになる(図中のd−5参照)。
【0058】
以上説明したように、本実施形態に係るECU1によれば、フラッシュメモリ13のデータ消去中或いはデータ書込み中に、CPUリセットやイグニション・オンなど、フラッシュメモリ13のデータ消去動作或いは書込み動作を中断させるような事象が発生した場合でも、適切なバックアップ動作を継続可能である。
【0059】
また、前述の特許文献1(特開2010−113580号公報)の技術では、例えばフラッシュメモリのデータ消去中或いはデータ書込み中にCPUがリセットされると、フラッシュメモリのデータが不定となるため、故障を報知するための信号を出力する機能をCPUに持たせる必要があったが、本実施形態に係るECU1では、不定となったブロック(一部ブランクブロック)を必ず消去するため、そのような機能をCPU15に持たせる必要はない。
【0060】
また、従来では、フラッシュメモリのデータ消去中或いはデータ書込み中にCPUがリセットされると、正確なSUM値が得られなくなり、バックアップデータの確からしさを判断できなくなる可能性があったが、本実施形態に係るECU1では、不定となったブロック(一部ブランクブロック)を必ず消去し、後にそのブロックに正常なバックアップデータを保存するため、バックアップデータの確からしさを判断できなくなる可能性は無い。
【0061】
以上、本発明の一実施形態について説明したが、この実施形態はあくまで一例であって本発明の趣旨を逸脱しない範囲において実施形態の細部を種々変更可能であることは勿論である。例えば、上記実施形態では、本発明に係る電子制御装置として、イグニション・オン期間中に一定周期で取得した車両情報をバックアップデータとしてRAMに上書き保存しておき、所定条件の成立をトリガとして、RAMに保存されているバックアップデータをフラッシュメモリに保存するバックアップ機能を備えたECU1を例示して説明したが、本発明はこのような車載ECUに限らず、フラッシュメモリをバックアップ用メモリとして備える電子制御装置に広く適用することが可能である。
【符号の説明】
【0062】
1…ECU(電子制御装置)、11…ROM、12…RAM(揮発性メモリ)、13…フラッシュメモリ、14…通信回路、15…CPU(メモリ制御部)

【特許請求の範囲】
【請求項1】
揮発性メモリと、フラッシュメモリと、前記揮発性メモリに保存されているバックアップデータを所定条件の成立をトリガとして前記フラッシュメモリに保存するメモリ制御部とを備える電子制御装置であって、
前記メモリ制御部は、電源投入時において、前記フラッシュメモリの消去単位ブロック
の内、データが全く保存されていない消去単位ブロックをブランクブロックとして特定し、前記ブランクブロックを基準として消去すべき消去単位ブロックを消去ブロックとして特定すると共に最新データが保存されている消去単位ブロックを最新ブロックとして特定することを特徴とする電子制御装置。
【請求項2】
前記メモリ制御部は、前記ブランクブロックの1つ先の消去単位ブロックを前記消去ブロックとして特定すると共に、前記ブランクブロックの1つ前の消去単位ブロックを前記最新ブロックとして特定することを特徴とする請求項1に記載の電子制御装置。
【請求項3】
前記メモリ制御部は、前記最新ブロックとして特定した消去単位ブロックにデータが保存されていない領域が一部でも存在する場合、最初に特定した前記ブランクブロックの1つ前の消去単位ブロックを前記消去ブロック及びブランクブロックとして改めて特定すると共に、最初に特定した前記ブランクブロックの2つ前の消去単位ブロックを前記最新ブロックとして改めて特定することを特徴とする請求項2に記載の電子制御装置。
【請求項4】
前記メモリ制御部は、前記最新ブロックとして特定した消去単位ブロックに保存されているデータを読み出して前記揮発性メモリに保存することを特徴とする請求項2または3に記載の電子制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate