(57)【要約】【課題】  不揮発性メモリの寿命を確実に長くすることができる不揮発性メモリの制御装置を提供する。【解決手段】  不揮発性メモリに対するデータの保存及び消去を制御する不揮発性メモリの制御装置であって、電源投入時又は所定処理サイクル（ステップＳ５〜ステップＳ１１）ごとに、不揮発性メモリから、当該不揮発性メモリ内の記憶領域がデータ及びチェックサムから区分された検出データを読み出し、当該検出データの値のみを更新するデータ消去処理（ステップＳ５）と、更新された検出データを読み出し、この検出データと保存対象のデータとを用いてチェックサムを算出して、このチェックサム及び保存対象のデータを書き込むデータ保存処理（ステップＳ９）とを行うことによって、所定の処理サイクルごとの書込回数を１回にする。【選択図】      図２
2006127232.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリに対するデータの保存及び消去を制御する不揮発性メモリの制御装置において、
電源投入時又は所定処理サイクルごとに、前記不揮発性メモリから、当該不揮発性メモリ内の記憶領域が前記データ及びチェックサムから区分された検出データを読み出し、当該検出データの値のみを更新するデータ消去手段と、
前記データ消去手段で更新された前記検出データを読み出し、この検出データと保存対象のデータとを用いて前記チェックサムを算出して、このチェックサム及び前記保存対象のデータを書き込むデータ保存手段と
を備えることを特徴とする不揮発性メモリの制御装置。
【請求項２】
電源投入時に前記不揮発性メモリに関する異常を検出するデータ判定手段を備え、
このデータ判定手段は、
前記不揮発性メモリからデータ、前記検出データ及び前記チェックサムを読み出して、このチェックサムに対してデータ及び検出データが正常な情報であるか否かを判定する第１判定処理と、
前記第１判定処理によって正常ではないと判定された場合に、前記第１判定処理で読み出した検出データの値が、予め設定された何れかの値にも該当しないと判定した場合に前記不揮発性メモリ自体の異常であることを判定する第２判定処理と、
前記第２判定処理によって前記検出データの値が正常であると判定した場合に、前記検出データの値を予め設定された何れかの値に修正して、前記チェックサムに対してデータ及び修正した検出データが正常な情報であるか否かを判定して、正常であると判定した場合には前記不揮発性メモリの未書込であると判定し、異常である判定した場合には前記不揮発性メモリ自体の異常であることを判定する第３判定処理と
を実行することを特徴とする請求項１に記載の不揮発性メモリの制御装置。
【請求項３】
前記データ消去手段は、前記データ判定手段によって異常と判定された場合に、前記データ、チェックサム及び検出データを含む前記不揮発性メモリに書き込まれている情報全体に、データ未書込と判定されるデータを書き込むことを特徴とする請求項２に記載の不揮発性メモリの制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各種情報が書き込み及び読み出しされる不揮発性メモリの制御装置に関する。
【背景技術】
【０００２】
従来より、ＥＥＰＲＯＭ等の不揮発性メモリの各種情報の書き込み及び読み出しを制御する技術としては、下記の特許文献１に記載されているようなものが知られている。この特許文献１に記載された技術は、車両用開閉体の絶対動作位置を更新記憶するメモリとして、不揮発性メモリを使用し、車両の電源がオフとなっても、データを記憶保持する。また、特許文献１に記載された技術では、エンジン等の始動時の電圧降下に起因して、制御装置がリセットされて、不揮発性メモリのデータが適正ではなくなる不具合を防止している（段落番号００２２，図３参照）。
【０００３】
【特許文献１】特開２００２−２２９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、不揮発性メモリの異常に対処するためには、図６に示すように、電源投入時に、制御装置によって、不揮発性メモリのデータ判定を行う（ステップＳ１０１）。
【０００５】
不揮発性メモリの異常の有無の判定は、図７に示すように、先ず不揮発性メモリからデータＤ１〜Ｄｎ及びチェックサムＡを読み出し（ステップＳ１１１）、チェックサムＡに対してデータＤ１〜Ｄｎが正常であるか否かを判定する（ステップＳ１１２）。これにより、不揮発性メモリに書き込まれているデータが正常であるか、又は、データが異常であるかを判断する。
【０００６】
そして、図６に示すように、データ判定処理によって異常と判定された場合には、異常警告を出す等の対処を行う（ステップＳ１０２）。
【０００７】
次に、データの消去（ステップＳ１０４）、通常処理（ステップＳ１０５）、データ保存（ステップＳ１０６）を行い、処理再開するか否かを判定し（ステップＳ１０７）、処理再開する場合には、ステップＳ１０４〜ステップＳ１０６の処理を繰り返し、処理再開しない場合には、電源を切断する。
【０００８】
このデータ消去処理（ステップＳ１０４）は、図８に示すように、データＤ１〜Ｄｎ及びチェックサムＡの一部又は全てに、データ読み出し時にチェックサムＡに対してデータＤ１〜Ｄｎが異常と判定されるようなデータを書き込む。この異常と判定するデータを書き込むことは、不揮発性メモリのデータを消去することを意味する。具体的には、不揮発性メモリ内のデータを消去又は適当な固定データを書き込んだり、チェックサムＡとデータＤ１〜Ｄｎとの整合性がなくなるように、読み出したデータに対して書込データを可変させる。
【０００９】
データ保存（ステップＳ１０６）は、図９に示すように、先ず保存するデータＤ１〜Ｄｎ、上述の例で言えば車両用開閉体の絶対動作位置からチェックサムＡを算出し（ステップＳ１２１）、データＤ１〜ＤｎとチェックサムＡを不揮発性メモリに書き込む（ステップＳ１２２）。
【００１０】
しかしながら、上述の図６〜図９を参照して説明した処理では、データ消去処理（ステップＳ１０４）とデータ保存処理（ステップＳ１０６）とで同一記憶領域に対して各２回の書込を行う必要があった。したがって、書込回数によって不揮発性メモリの寿命が決まるために、出来る限り書込回数を低減させることが要望されている。
【００１１】
なお、上述の図６〜図９を参照して説明した処理では、急な電源切断や回路故障によってデータ保存を行えない可能性があるので、通常処理後にデータ保存を行っているが、通常処理からデータ保存処理までの間に何らかの原因によって、不揮発性メモリへのデータ未書込が発生すると、データ判定処理において、不揮発性メモリ自体の異常と、未書込による異常との区別ができず、同じデータ消去処理を実行していたのが実状である。これは、現状として、正確に不揮発性メモリ自体の異常と、未書込とが区別されていないためにである。
【００１２】
そこで、本発明は、上述した実情に鑑みて提案されたものであり、不揮発性メモリの異常と未書込を区別する手段を提供し、且つ不揮発性メモリの寿命を確実に長くすることができる不揮発性メモリの制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、不揮発性メモリに対するデータの保存及び消去を制御する不揮発性メモリの制御装置であって、電源投入時又は所定処理サイクルごとに、前記不揮発性メモリから、当該不揮発性メモリ内の記憶領域が前記データ及びチェックサムから区分された検出データを読み出し、当該検出データの値のみを更新するデータ消去手段と、前記データ消去手段で更新された前記検出データを読み出し、この検出データと保存対象のデータとを用いて前記チェックサムを算出して、このチェックサム及び前記保存対象のデータを書き込むデータ保存手段とを備えることによって、上述の課題を解決する。
【発明の効果】
【００１４】
本発明に係る不揮発性メモリの制御装置によれば、データ消去時には、検出データのみを更新し、データ保存時には検出データと保存対象のデータとを用いてチェックサムを算出して、このチェックサム及び保存対象のデータを書き込むので、データ消去及びデータ保存からなる１回の処理サイクルでの書込回数を記憶領域毎に各１回とすることが出来、不揮発性メモリの寿命を確実に長くすることができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態について図面を参照して説明する。
【００１６】
本発明は、不揮発性メモリの異常が、不揮発性メモリ自体の異常によるものか、不揮発性メモリへの未書込によるものかを正確に区別すると共に、不揮発性メモリの寿命を確実に長くするメモリ制御装置に適用される。
【００１７】
［メモリ制御装置の構成］
このメモリ制御装置は、例えば車両に搭載され、図１に示すように、ＥＣＵ１に、バッテリ電源２及びＩＧＮスイッチ３が接続されて構成されている。ＥＣＵ１は、バッテリ電源２に接続された電源回路１１と、ＩＧＮスイッチ３に接続された入力Ｉ／Ｆ１２と、各種の演算処理及びメモリ制御を行うＭＰＵ１３と、不揮発性メモリであるＥＥＰＲＯＭ１４とからなる。
【００１８】
このメモリ制御装置は、用途の一例を挙げると、例えばディーゼルエンジンによって走行する車両に搭載され、ディーゼルエンジン車両から排出される排気ガス中のＮＯｘを水と窒素に分解する尿素ＳＣＲ触媒用尿素水の尿素濃度を検出する検出回路（図示せず）と接続され、尿素濃度の検出値をＭＰＵ１３によって入力してＥＥＰＲＯＭ１４に記憶制御し、排気ガス浄化システムを実現するものである。したがって、このメモリ制御装置は、車両の電源が投入されている時には、確実にＥＥＰＲＯＭ１４に記憶した情報の更新を実現すると共に、車両の電源が切断された場合であっても、確実にＥＥＰＲＯＭ１４に各種情報を保持する必要がある。
【００１９】
バッテリ電源２は、車両のバッテリをＥＣＵ１に供給するか否かを制御する装置であり、ＩＧＮスイッチ３のＯＮ操作に応じてＥＣＵ１に電力供給を開始し、ＩＧＮスイッチ３のＯＦＦ操作から所定の時間だけＥＣＵ１への電力供給を維持した後、ＥＣＵ１への電力供給を遮断する。このＥＣＵ１への電力供給が維持される所定の時間は、ＥＣＵ１がＩＧＮスイッチ３のＯＦＦ操作の検出に要する時間と、ＯＦＦ操作を検出してからＥＥＰＲＯＭ１４へのデータの記録処理が終了するまでに要する時間とを加算した時間に対して、十分に長い時間である。バッテリ電源２は、ＥＣＵ１に接続されている。ＩＧＮスイッチ３は、車両の運転者によってオンオフが操作される。
【００２０】
ＥＣＵ１は、バッテリ電源２からの電力供給を電源回路１１で受ける。電源回路１１は、いわゆるスイッチング電源であり、バッテリ電源２の電源電圧をＭＰＵ１３の作動電圧に変換して、ＭＰＵ１３及びＥＥＰＲＯＭ１４に電力供給を行う。入力Ｉ／Ｆ１２は、ＩＧＮスイッチ３のオンオフ状態を検出し、当該オンオフ状態をＭＰＵ１３に通知する。
【００２１】
ＭＰＵ１３は、図示しない尿素濃度検出回路と接続され、尿素濃度信号を受信する。そして、このＭＰＵ１３は、電源回路１１の電力供給を受けて作動し、入力Ｉ／Ｆ１２からのＩＧＮ信号に従って、ＥＥＰＲＯＭ１４に対する書込及び読み込み動作を行う。
【００２２】
ＭＰＵ１３は、入力Ｉ／Ｆ１２の入力端子、ＥＥＰＲＯＭ１４の送信端子及び受信端子、クロック端子が設けられている。また、ＭＰＵ１３は、内部メモリに図示しないプログラムが記憶され、当該プログラムに従って、後述のメモリ制御処理を実行する。
【００２３】
［メモリ制御処理］
つぎに、上述したように構成されたメモリ制御装置において、ＭＰＵ１３によってＥＥＰＲＯＭ１４に対する制御であるメモリ制御処理の処理手順について図２乃至図５を参照して説明する。
【００２４】
このメモリ制御処理は、図２に示すようなステップＳ２，Ｓ３，Ｓ４，Ｓ５，Ｓ７，Ｓ９，Ｓ１１の一連の処理によって、データ判定処理（ステップＳ２）、データ保存処理（ステップＳ９）及びデータ消去処理（ステップＳ５）を行うが、ＥＥＰＲＯＭ１４に保存及び消去された内容について説明するために、先ず、異常が発生していない場合のデータ保存処理（ステップＳ９）、データ消去処理（ステップＳ５）について説明する。なお、図２において、ステップＳ２〜ステップＳ４は、ＥＣＵ１の電源投入時のみに実行され、ステップＳ５，Ｓ７，Ｓ９，Ｓ１１は、ＥＥＰＲＯＭ１４に対するデータの保存及び消去時における所定処理サイクルごとに繰り返し実行される。
【００２５】
データ保存処理（ステップＳ９）は、図５に示すように、先ず、ＭＰＵ１３により、ＥＥＰＲＯＭ１４に、予め後述のデータ消去処理において記憶しておいた検出データＸを読み出す（ステップＳ５１）。ここで、ＥＥＰＲＯＭ１４は、検出データＸの記憶領域と、データＤ１〜Ｄｎの記憶領域と、チェックサムＡの記憶領域とに区分されている。この検出データＸは、Ｘ１又はＸ２の何れかの値に設定されるデータであり、ＭＰＵ１３によるデータ消去処理で設定される。なお、このステップＳ５１では、図２におけるデータ判定処理で読み出した値を検出データＸとしてもよい。
【００２６】
次にＭＰＵ１３は、保存する対象となる尿素濃度信号であるデータＤ１〜Ｄｎと、ステップＳ５１で読み出した検出データＸとから、チェックサムＡを算出する（ステップＳ５２）。このとき、ＭＰＵ１３は、データＤ１〜Ｄｎと検出データＸとの総和、或いは、データＤ１〜Ｄｎ及び検出データＸを用いてＣＲＣデータを作成する処理を行う。
【００２７】
次に、ＭＰＵ１３は、データＤ１〜Ｄｎと、チェックサムＡとをＥＥＰＲＯＭ１４に書き込む。ここで、ＭＰＵ１３は、検出データＸを書き込まない。
【００２８】
データ消去処理（ステップＳ５）は、図４に示すように、ＭＰＵ１３により、先ずＥＥＰＲＯＭ１４から、旧検出データＸを取り出す（ステップＳ４１）。なお、このステップＳ５１では、図２におけるデータ判定処理で読み出した値を検出データＸとしてもよい。
【００２９】
次にＭＰＵ１３は、ステップＳ４１で読み出した旧検出データＸの値を調べ、Ｘ２である場合には新検出データＸ’の値をＸ１に設定し（ステップＳ４３）、Ｘ１である場合には新検出データＸ’の値をＸ２に設定する（ステップＳ４４）。
【００３０】
次にＭＰＵ１３は、ステップＳ４３又はステップＳ４４で設定した新検出データＸ’をＥＥＰＲＯＭ１４に保存する。
【００３１】
このように、ＭＰＵ１３は、データＤ１〜Ｄｎ及びチェックサムＡと独立して保存及び消去される検出データＸを設定することによって、正常な場合と異常を検出した場合とで、データ保存処理と、データ消去処理とを切り換える。
【００３２】
つぎに、図２に示すメモリ制御処理について説明する。
【００３３】
このメモリ制御処理は、先ず電源が投入されると、ＥＥＰＲＯＭ１４に対する読み出し命令を行い、ＥＥＰＲＯＭ１４の内容が正常に読み出せた場合にはステップＳ２に処理を進める。
【００３４】
ステップＳ２において、ＭＰＵ１３は、ＥＥＰＲＯＭ１４のデータ判定を行う。このデータ判定は、ＥＥＰＲＯＭ１４の異常の有無の判定（ステップＳ２ａ）と、ＥＥＰＲＯＭ１４が未書込か否かの判定（ステップＳ２ｂ）の２つの判定からなる。
【００３５】
ＥＥＰＲＯＭ１４の異常の有無の判定は、図３に示すように、先ずＥＥＰＲＯＭ１４からデータＤ１〜Ｄｎ及びチェックサムＡを読み出すと共に、ＥＥＰＲＯＭ１４から検出データＸを読み出し（ステップＳ２１）、チェックサムＡに対してデータＤ１〜Ｄｎ及び検出データＸが正常であるか否かを判定する（ステップＳ２２）。これにより、正常であると判定した場合には、図２のステップＳ２からステップＳ５に移行し、異常であると判定した場合には、図３のステップＳ２４に処理を進める（ステップＳ２３）。
【００３６】
次に、ＭＰＵ１３は、図２におけるステップＳ２ｂの処理に相当するステップＳ２４〜ステップＳ３０に移行する。
【００３７】
ステップＳ２４において、ＭＰＵ１３は、ステップＳ２１で読み出した検出データＸの値が、Ｘ１又はＸ２の何れか、又は、Ｘ１、Ｘ２のいずれでもないかを判定し、ステップＳ２５において、Ｘ１又はＸ２の何れかであると判定した場合には、正常であるのでステップＳ２６に処理を進める。
【００３８】
一方、検出データＸの値がＸ１、Ｘ２のいずれでもないと判定した場合には、ＭＰＵ１３におけるＥＥＰＲＯＭ１４管理上の異常であると判定して、ＥＥＰＲＯＭ１４の自体の異常であると判定して、ＥＥＰＲＯＭ１４の異常による場合には、異常警告を出す等の対処を行う（ステップＳ３）。
【００３９】
次にＭＰＵ１３は、ステップＳ２６において、検出データＸの値がＸ２である場合には、値をＸ１に修正した修正検出データＸ’に設定し（ステップＳ２７）、検出データＸの値がＸ１である場合には、値をＸ２に修正した修正検出データＸ’に設定する（ステップＳ２８）。
【００４０】
次にＭＰＵ１３は、ステップＳ２９において、修正検出データＸ’とデータＤ１〜Ｄｎから、チェックサムＡを算出して、この算出したチェックサムＡとステップＳ２１で読み出したチェックサムＡとが一致しているか否かを判定することによって、データＤ１〜Ｄｎが適正なデータか否かを判定する。そして、双方のチェックサムＡが一致した場合にはこの判定が正常であると判定して、ＥＥＰＲＯＭ１４に対するデータＤ１〜Ｄｎの未書込であると判定して図２のステップＳ４に処理を進め、そうでない場合には、ＥＥＰＲＯＭ１４自体の異常であると判定して、ステップＳ３に処理を進める。
【００４１】
このステップＳ４においては、図２の処理において、電源電圧が低下したことによる未書込（故障）であるために図１のＩＧＮスイッチ３又は入力Ｉ／Ｆ１２の異常であることを示す故障情報を出力する。
【００４２】
次にＭＰＵ１３は、ステップＳ２のデータ判定処理で正常で判定された後のステップＳ５においては、図４を参照して説明したステップＳ４１〜ステップＳ４５の処理を行う。これによって、データＤ１〜Ｄｎ及びチェックサムＡの消去は行わずに、検出データＸの更新のみを行う。なお、データ消去時の異常がなかった場合には、ステップＳ７に処理を進める。このデータ消去時の異常とは、バッテリ電源２の瞬断によってデータ消去処理が正常に行われずに、ＥＥＰＲＯＭ１４内の情報が異常なものとなることが挙げられる。
【００４３】
次にＭＰＵ１３は、ステップＳ７において通常処理を行う。
【００４４】
ステップＳ９において、ＭＰＵ１３は、図５を参照して説明したステップＳ５１〜ステップＳ５３の処理を行う。これによって、ＥＥＰＲＯＭ１４には、新たなデータＤ１〜Ｄｎ及びチェックサムＡが書き込まれるが、検出データＸの更新は行われない。なお、データ保存時の異常がなかった場合には、ステップＳ１１に処理を進める。このデータ保存時の異常とは、違法無線送信器などの強力な電磁波によりＭＰＵ１３からＥＥＰＲＯＭ１４間の信号伝達に狂いが生じ、データ保存処理が正常に行われずに、ＥＥＰＲＯＭ１４内の情報が異常なものとなることが挙げられる。
【００４５】
次にＭＰＵ１３は、ステップＳ１１において、処理再開するか否かを判定し（ステップＳ１１）、処理再開する場合には、ステップＳ５〜ステップＳ１１の処理を繰り返し、処理再開しない場合には、電源を切断する。
【００４６】
以上詳細に説明したように、本発明を適用したメモリ制御装置によれば、電源投入時又は所定処理サイクルごとに、ＥＥＰＲＯＭ１４から、当該ＥＥＰＲＯＭ１４内の記憶領域がデータＤ１〜Ｄｎ及びチェックサムＡから区分された検出データＸを読み出し、当該検出データＸの値のみを更新するデータ消去処理と、データ消去手段で更新された検出データＸを読み出し、この検出データＸと保存対象のデータＤ１〜Ｄｎとを用いてチェックサムＡを算出して、このチェックサムＡ及び保存対象のデータＤ１〜Ｄｎを書き込むデータ保存処理とを行うので、ステップＳ５〜ステップＳ１１からなる１回の処理サイクルでの書込回数をＥＥＰＲＯＭ１４の記憶領域毎に各１回とすることが出来る。
【００４７】
したがって、このメモリ制御装置によれば、不揮発性メモリの寿命を確実に長くすることができる。
【００４８】
また、このメモリ制御装置によれば、ＥＥＰＲＯＭ１４からデータＤ１〜Ｄｎ、検出データＸ及びチェックサムＡを読み出して、このチェックサムＡに対してデータＤ１〜Ｄｎ及び検出データＸが正常な情報であるか否かを判定する処理（ステップＳ２１，２２，２３）と、ステップＳ２３によって正常ではないと判定された場合に、検出データＸの値が、予め設定された何れかの値にも該当しないと判定した場合にＥＥＰＲＯＭ１４自体の異常であることを判定する処理（ステップＳ２４，２５）と、ステップＳ２５によって検出データＸの値が正常であると判定した場合に、検出データＸの値を予め設定された何れかの値に修正して、チェックサムＡに対してデータＤ１〜Ｄｎ及び修正した検出データＸが正常な情報であるか否かを判定して、正常であると判定した場合には、ＥＥＰＲＯＭ１４の未書込であると判定し、異常である判定した場合にはＥＥＰＲＯＭ１４自体の異常であることを判定する処理とを行うので、確実に電源投入時の不揮発性メモリの異常が、不揮発性メモリ自体の異常か、未書込による異常かを判定することが出来る。
【００４９】
なお、上述の実施の形態は本発明の一例である。このため、本発明は、上述の実施形態に限定されることはなく、この実施の形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００５０】
【図１】本発明を適用したメモリ制御装置の構成を示すブロック図である。
【図２】本発明を適用したメモリ制御装置によるメモリ制御処理の処理手順を示すフローチャートである。
【図３】本発明を適用したメモリ制御装置によるデータ判定処理の処理手順を示すフローチャートである。
【図４】本発明を適用したメモリ制御装置によるデータ消去処理の処理手順を示すフローチャートである。
【図５】本発明を適用したメモリ制御装置によるデータ保存処理の処理手順を示すフローチャートである。
【図６】従来におけるメモリ制御処理の処理手順を示すフローチャートである。
【図７】従来におけるデータ判定処理の処理手順を示すフローチャートである。
【図８】従来におけるデータ消去処理の処理手順を示すフローチャートである。
【図９】従来における保存処理の処理手順を示すフローチャートである。
【符号の説明】
【００５１】
１  ＥＣＵ
２  バッテリ電源
３  ＩＧＮスイッチ
１１  電源回路
１２  入力Ｉ／Ｆ
１３  ＭＰＵ
【図１】
2006127232.tif 000003
【図２】
2006127232.tif 000004
【図３】
2006127232.tif 000005
【図４】
2006127232.tif 000006
【図５】
2006127232.tif 000007
【図６】
2006127232.tif 000008
【図７】
2006127232.tif 000009
【図８】
2006127232.tif 000010
【図９】
2006127232.tif 000011