(57)【要約】【課題】分割ブロック単位で一括消去を行ってから書込が行われる不揮発データメモリの一括消去回数を削減する。【解決手段】各種の制御定数が格納される不揮発データメモリとして、ブロック単位で一括消去が可能なフラッシュメモリが使用され、各分割ブロックは複数のデータ格納領域に仕分けされており、どれかのデータ格納領域において空セクションが無くなると、予め一括消去された他の分割ブロックの該当データ格納領域の先頭セクションに新たなデータが書込まれ、元の分割ブロックの中の他のデータ格納領域に書込まれていた最新のデータは、新たな分割ブロックの該当データ格納領域の先頭セクションに転送格納され、一つの分割ブロックに異なるデータ格納領域を混在させ、各データ格納領域は書込み頻度に対応した複数のセクションによって構成することによって分割ブロックの個数を削減し、しかも一括消去回数を削減することができるようにした。【選択図】図１
2010176280.tif 000002
【特許請求の範囲】
【請求項１】
入力信号回路と出力信号回路とが接続されるマイクロプロセッサと、当該マイクロプロセッサと協働する不揮発プログラムメモリと揮発性のＲＡＭメモリと不揮発データメモリとを備え、前記不揮発プログラムメモリに書込みされた入出力制御プログラムと、前記不揮発データメモリに格納された制御定数の値と、前記入力信号回路の信号状態とに応動して前記出力信号回路に制御出力信号を送出する電子制御装置であって、
前記不揮発データメモリは、ブロック単位で個別に一括消去が可能な複数の分割ブロックを有する不揮発性のメモリにより構成され、
前記各分割ブロックは、書込み頻度又は書込み時期が異なる複数のデータ格納領域に仕分けされ、
前記各データ格納領域は、読出／書込単位となる複数のセクションにより構成され、当該セクションには複数の個別データが所定順序で書込まれ、一つの前記セクションのデータ容量は、書込みされる個別データの個数に対応したバイト数に構成され、
前記複数のセクションには、対象となる前記分割ブロックの一括消去を行った後に順次新たなデータがセクション単位で格納され、当該対象分割ブロックの中のどれかのデータ格納領域が満杯となってデータが書込まれていない空セクションが無くなったときには、予め一括消去された他の分割ブロックの該当データ格納領域の先頭セクションに新たなデータが書込まれ、
元の分割ブロックの中の他のデータ格納領域に書込まれていた最新のデータは、新たな分割ブロックの該当データ格納領域の先頭セクションに転送格納され、
元の分割ブロック内のデータは、少なくとも前記新たな分割ブロックへの最新データの転送書込みが完了した後に一括消去されるものであると共に、
前記データ格納領域内のセクション数は、書込み頻度の多いものほど多くのセクションが割り当てられている
ことを特徴とする電子制御装置。
【請求項２】
前記分割ブロックの中でセクション数とデータ容量の積が最も大きい主たるデータ格納領域の合計データ容量Ａとし、その他の従となるデータ格納領域全体のセクション数とデータ容量の積である合計データ容量Ｂとしたとき、前記合計データ容量Ａと合計データ容量Ｂとの比率［Ｂ／（Ａ＋Ｂ）］は、前記分割ブロックの個数Ｎの逆数よりも小さい
ことを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記不揮発データメモリの各分割ブロック内に設けられた前記データ格納領域は、第一定数領域と第二定数領域と第三定数領域、又は少なくとも第一定数領域と第三定数領域、の複数領域に仕分けされ、前記第一定数領域は、前記電子制御装置の製造メーカが当該電子制御装置の出荷調整を行う時点に於いて、出荷調整設備として準備された第一ツールから転送書込みされる第一定数の格納領域であり、
当該第一定数は、前記電子制御装置自体の機種区分に対応した制御定数又は前記入出力制御プログラムの一部の選択番号情報又は当該電子制御装置内部の部品特性のバラツキ変動を補正するための校正定数と、前記電子制御装置の製造番号とのうちの少なくとも一つを包含し、
前記第二定数領域は、前記電子制御装置が組込まれる合体製品又は合体設備の製造メーカ又は設備管理部門が、当該合体製品又は合体設備の試運転調整を行う時点に於いて、検査調整設備として準備された第二ツールから転送書込みされる第二定数の格納領域であり、当該第二定数は、前記電子制御装置が組込まれる合体製品若しくは設備の型名、又は機種に対応した制御定数、又は前記入出力制御プログラムの一部の選択番号情報、又は前記電子制御装置に接続された入出力部品の部品特性のバラツキ変動を補正するための校正定数のうちの少なくとも一つを包含し、
前記第三定数領域は、前記電子制御装置の実働運転中に於いて、前記ＲＡＭメモリに格納された第三定数が、少なくとも前記電子制御装置の運転停止の直後又は運転中の適時に転送書込みされる第三定数の格納領域であり、当該第三定数は、前記電子制御装置の内蔵部品若しくは外部接続部品の特性変動情報、又は改善された運転特性を得るための学習情報、又は異常発生履歴情報のうちの少なくとも一つを包含している
ことを特徴とする請求項１又は請求項２に記載の電子制御装置。
【請求項４】
前記不揮発データメモリの各分割ブロック内に設けられた前記データ格納領域は、前記第一定数領域と第二定数領域と第三定数領域とに加えてチェック領域となる一つのセクションが付加されており、
当該チェック領域内の一つのセクションの前半領域には、前記分割ブロックの一括消去が行われてから、前記データ格納領域の全てのデータ格納領域内で少なくとも一つのセクションに対して有効なデータが書込まれた時点で所定の確定定数が書込まれると共に、どれか一つのデータ格納領域であっても当該データ格納領域内のどのセクションにも有効なデータが書込まれていない場合には、前記確定定数が書込まれていないブランクブロックの状態となる
ことを特徴とする請求項３に記載の電子制御装置。
【請求項５】
前記チェック領域内の一つのセクションの後半領域には、前記確定定数が書込まれた時点で当該分割ブロックに対する一括消去回数データが書込まれ、
前記分割ブロックの移行が行われときには移行後の分割ブロックの一括消去回数は、移行直前の現在の分割ブロックのチェック領域に書込まれていた一括消去回数に「１」を加算した値である
ことを特徴とする請求項４に記載の電子制御装置。
【請求項６】
前記チェック領域内には前記確定定数と一括消去回数データが書込まれる一つのセクションに加えて、少なくとも１個の予備セクションが付加されており、
前記分割ブロックの一括消去を行ったときに前記チェック領域内の一つのセクションの消去が行えなかった場合には、再度の一括消去を行った上でもなお消去できなかったセクションに替わって前記予備セクションが適用されるものである
ことを特徴とする請求項４又は請求項５に記載の電子制御装置。
【請求項７】
前記不揮発データメモリは、少なくとも３個の分割ブロックを備え、
現在書込みが行われている分割ブロックの中のどこかのデータ格納領域に於いて空セクションが無くなった場合には、先ず次次順位の分割ブロックの一括消去を行い、続いて確認処理として次順位の分割ブロックの一括消去を行い、
当該次順位の分割ブロックの該当データ格納領域の先頭セクションに新たなデータが書込まれ、元の分割ブロックの中の他のデータ格納領域に書込まれていた最新のデータは、前記次順位の分割ブロックの該当データ格納領域の先頭セクションに転送格納され、
前記分割ブロックの移行に当たっては、一括消去済であるブランクブロックの前にあるブランクブロックの分割ブロックへ移行する
ことを特徴とする請求項４乃至６のうち何れか１項に記載の電子制御装置。
【請求項８】
前記不揮発プログラムメモリには、前記入出力制御プログラムと当該入出力制御プログラムに対して一定不変の固定定数を包含すると共に、
前記不揮発データメモリに格納される前記第一定数又は第二定数又は第三定数に関連する参考定数が格納され、
前記参考定数は、前記第一定数と第二定数と第三定数との中の変動情報の一部又は運転特性の学習情報の一部に関する許容変動範囲である上下限値データと、前記第一定数と第二定数と第三定数との中の未確定定数に対して適用される初期設定データとのうちの少なくとも一方を含み、
当該初期値設定データは、少なくとも前記電子制御装置の初回運転開始前に前記分割ブロックの一つの中の第一定数領域と第二定数領域と第三定数領域との先頭セクションに転送格納される
ことを特徴とする請求項３に記載の電子制御装置。
【請求項９】
前記マイクロプロセッサは、前記不揮発データメモリに対する一括消去指令信号とブランクチェック指令信号を発生し、当該ブランクチェック指令を受信した前記不揮発データメモリは少なくとも前記セクション単位で消去済であるか否かの判定情報を返信し、
前記マイクロプロセッサは、一括消去を行うことによって、消去済となったセクションは空セクションであると判定し、
前記マイクロプロセッサは、一括消去を行っても消去できなかったセクションがあるか、又は前記不揮発データメモリに対するデータの書込み中に停電が発生したことが原因となって、一つのセクションの中でデータの書込み部分と未書込み部分が混在していることが検出された場合には、当該セクションは無効セクションであると判定すると共に、セクション内にデータが存在して無効セクションではないセクションを有効セクションであると判定し、
前記マイクロプロセッサは、前記不揮発データメモリの読出しを行うときには、各データ格納領域の最終セクションから先頭セクションにかけて前記有効セクションを検索し、初めて検出された有効セクションに格納されたデータを読出し、
前記マイクロプロセッサは、前記不揮発データメモリの書込みを行うときには、各データ格納領域の最終セクションから先頭セクションにかけて前記有効セクションを検索し、初めて検出された有効セクションから逆方向に検索して初めて検出された空セクションにデータを書込みする
ことを特徴とする請求項１又は請求項２に記載の電子制御装置。
【請求項１０】
前記マイクロプロセッサは、前記不揮発データメモリの書込みを行うときには、各データ格納領域の最終セクションから先頭セクションにかけて前記有効セクションを検索し、初めて検出された有効セクションから逆方向に検索して初めて検出された空セクションにデータを書込みすると共に、当該空セクションに正しくデータの書込みが行えなかった場合には更に逆方向に検索して新たに検出された空セクションにデータを書込みする
ことを特徴とする請求項９に記載の電子制御装置。
【請求項１１】
前記ＲＡＭメモリは、前記不揮発データメモリの消去／書込状態に対応したデータが書込まれるステータスメモリを包含し、
前記ステータスメモリには、少なくとも現在時点で書込が進行している最新の分割ブロックの識別番号情報と、当該最新分割ブロック内の各データ格納領域に於いて最新データが書込まれたセクション番号情報とが格納されている
ことを特徴とする請求項９に記載の電子制御装置。
【請求項１２】
前記マイクロプロセッサと、ＲＡＭメモリと、不揮発プログラムメモリと、不揮発データメモリとは、外部電源から運転用電源スイッチが閉路されたことによって付勢される電源リレーの出力接点と駆動電源端子とを介して給電され、
前記電源リレーは、前記電源スイッチが開路されてから所定の遅延給電時間をおいて消勢されるものであると共に、
前記ＲＡＭメモリは、前記駆動電源端子に給電されていない期間に於いても補助電源によって給電されるか、又は前記駆動電源端子に給電されていない期間においては当該ＲＡＭメモリに対する給電も遮断され、
前記補助電源は、補助電源端子に直接接続された外部バッテリであるか、又は内蔵バッテリであり、
前記電源リレーが消勢されている期間に於いて、前記ＲＡＭメモリに対する給電が停止される場合、又は給電が持続される場合であっても前記補助電源の電圧が異常低下するか、又は補助電源回路が遮断されて、前記ＲＡＭメモリの記憶内容が消失したとき、又は前記ステータスメモリの内容が異常であるときに、前記電源リレーが付勢されて前記マイクロプロセッサが運転開始した時点、又は前記マイクロプロセッサの実働運転中に前記不揮発データメモリの中の少なくとも第三データ格納領域に書込まれた最新セクションの内容が前記ＲＡＭメモリのイメージメモリ領域に転送され、
前記マイクロプロセッサは、前記イメージメモリ領域に書込まれた第三定数に基づいて入出力の制御を行なう
ことを特徴とする請求項１１に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、マイクロプロセッサと協働する揮発性のＲＡＭメモリと不揮発データメモリを備え、ＲＡＭメモリに格納された学習制御定数を不揮発データメモリに退避しておくように構成された例えば車載エンジンの制御装置或いは変速機制御装置などの電子制御装置に関し、不揮発データメモリとして使用されたフラッシュメモリの一括消去回数を抑制するための改良に関するものである。
【背景技術】
【０００２】
入力信号回路と出力信号回路とが接続されるマイクロプロセッサと、当該マイクロプロセッサと協働する不揮発プログラムメモリと揮発性のＲＡＭメモリと不揮発データメモリとを備え、前記不揮発プログラムメモリに転送書込みされた入出力制御プログラムと、前記不揮発データメモリに格納された制御定数の値と、前記入力信号回路の信号状態に応動して前記出力信号回路に制御出力信号を送出する電子制御装置であって、前記不揮発データメモリとしてブロック単位で個別に一括消去が可能な複数の分割ブロックを有するフラシュメモリを使用することは公知である。
【０００３】
又、従来、フラッシュメモリに代わるものとして、１バイト（８ビット）単位で電気的に読書が行えるＥＥＰＲＯＭメモリを使用したものもあるが、フラッシュメモリの場合には安価で大容量のメモリ容量を得ることができる反面で、データの書込・書換を行う前に多数バイトのブロック単位で一括消去を行う必要があることと、一括消去の回数が寿命的に制限されている問題がある。
【０００４】
例えば下記の特許文献１「車載電子制御装置」によれば、不揮発フラッシュメモリの第一ブロックはプログラムメモリとして使用され、第二・第三ブロックがデータメモリとして使用されていて、取り扱われる制御定数は次のとおりに分類されている。先ず、制御装置固有情報は、車載電子制御装置に内蔵された定電圧電源装置の出力電圧精度やＡＤ変換器の変換精度等の部品バラツキを補正するための校正値情報であって、製品個々では異なる値であっても初期測定値として一旦格納されるとその後の変化が無い半固定制御定数である。
【０００５】
次に、車両固有情報は、車載電子制御装置が搭載された車両の制御仕様を選択決定するための車種情報或いは車載電子制御装置に外部接続された車載センサの特性精度情報等の環境情報であって、搭載車両の個々では異なる値であっても初期値又は初期測定値として一旦格納されると外部接続された部品の交換が行われるまではその後の変化が無い制御定数であり、可変制御定数又は半固定制御定数の何れかに属して扱われる。
【０００６】
更に、学習記憶情報は、車両の運転特性を実測した結果として得られる運転制御情報、或いは車載センサ・電気負荷の特性劣化情報等の変動情報であって、運転開始時に初期値として一旦格納された後、所定範囲内での変動が想定される可変制御定数である。又、異常発生履歴情報は、車両の運転中に発生した各種の異常情報を異常発生区分に基づいて集計した区分別の異常発生回数データであって、一種の可変制御定数として扱われている。
【０００７】
又、基準データは、前記半固定制御定数又は可変制御定数に対する許容上下限値と初期設定値となる初期値データであって、これは固定制御定数として扱われる。更に、プログラム固有情報は、入出力制御プログラムに付随して決定された一定不変の設計定数となる固定制御定数である。
【０００８】
前記第一ブロックには外部ツールから入出力制御プログラムと共に固定制御定数が格納され、車載電子制御装置の出荷調整運転後に半固定制御定数が追加格納される。
【０００９】
前記第二・第三ブロックの一方には可変制御定数のみが格納され、第二ブロック又は第三ブロックの一方のブロックに逐次追加書込みされた書込み回数が所定値に達した満杯状態で、他方のブロックに書込みされていた全てのデータを消去してから当該他方のブロックに対して逐次追加書込みされるように構成されている。従って、書込み頻度が少ない固定制御定数と半固定制御定数を第一ブロックに書込むことによって、第二・第三ブロックに書込まれるデータ量を削減して、可変制御定数をなるべく多くの回数で追加書込みすることができるように構成されている。
【００１０】
尚、特許文献１に於いて、第一ブロックに書込まれる固定・半固定制御定数は、後述の本願発明に於ける第一・第二定数に相当し、第二・第三ブロックの一方に交替書込みされる可変制御定数は本願における第三定数に相当している。
【００１１】
更に、下記の特許文献２「フラッシュメモリの書込み回数の増加方法」には、データ記憶領域がセクタ単位（一括消去が可能な最小単位であり本願発明に於けるブロックに相当する）に分割され、前記セクタ単位でデータ消去可能なフラッシュメモリを備え、組込まれたマイクロプロセッサにより内部回路が制御される制御装置に於いて、フラッシュメモリのセクタＡ〜Ｆには制御プログラムが書込まれ、セクタＧには書換頻度が少ない生産時に設定される行程調整データが書込まれ、セクタＨには書換頻度が多いユーザ調整データが書込まれるようにした制御装置が示されている。
【００１２】
そして、特許文献２には、ユーザが使用時に該制御装置の最適動作を指示するため等の目的で随時与えるユーザ調整データを格納するため前記セクタＨを、更に前記ユーザ調整データのデータサイズと等しいかそれ以上のサイズの記憶ブロック（書込/読出単位となるものであり本願発明に於けるセクションに相当する）に複数分割し、前記ユーザ調整データの更新毎に前記記憶ブロック単位で未書込み領域に順次前記ユーザ調整データの書込みを行い、未書込み領域が前記セクタ内に存在しない場合には、前記ユーザ調整データを格納している前記セクタ全体のデータを一括消去して再度前記ユーザ調整データの書込みを可能にするフラッシュメモリの書込み保証回数の増加方法が開示されている。
【００１３】
この方法によれば、同一のフラッシュメモリに装置制御用のプログラムと装置の調整データを格納し、書換え頻度の高い調整データについては、フラッシュメモリの分割単位である１セクタを更に複数記憶ブロックに分割し、調整データの変更毎に未書込み記憶ブロックに書込んで行き、１セクタ分全て書込まれたら最新調整データをＲＡＭメモリに退避させた後にそのセクタを一活消去して新たに記憶ブロック単位で書込めるようにすることにより、従来使用していたEEPROMが不要となり、コストダウン、部品点数の削減、高速データ読出しが可能となり、なおかつ書込み保証回数を実質的に大幅に増加させることができるので信頼性の高い制御装置を提供することが可能となるとされている。
【００１４】
尚、特許文献２に於いて、セクタＧに書込まれるステップ調整データは、後述の本願発明に於ける第一定数に相当し、セクタＨに順次書込みされるユーザ調整データは本願に於ける第二定数に相当している。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００６―０７２４６１号公報（図４、請求項２、請求項３）
【特許文献２】特開２００２−００７２２１号公報（図１、要約、・段落［００１４］）
【発明の概要】
【発明が解決しようとする課題】
【００１６】
（１）  従来技術の課題の説明
前記特許文献１による「車載電子制御装置」では、入出力制御プログラムが書込まれる第一ブロック内に固定制御定数と半固定制御定数とを書込みするように構成されているので、第二・第三ブロックのデータ量を削減することができるが、例えば保守点検を行うサービス店に於いて半固定制御定数を残したままで入出力制御プログラムのみを変更したり、入出力制御プログラムを残したままで半固定制御定数のみを一括変更することが困難となる問題点がある。
【００１７】
又、前記特許文献２による「フラッシュメモリの書込み保証回数の増加方法」によれば、制御プログラム領域と行程調整データ領域とユーザ調整データ領域とが異なる一括消去単位のセクタに書込まれているので、個別に書換変更することが容易となるけれども、未書込み領域がセクタ内に存在しない場合にセクタ全体のデータを一括消去した時点で停電すると、過去の調整データが消失する問題点がある。又、データ量の少ない行程調整データ領域のために専用のセクタＧを配分する必要があって、メモリの利用効率が低下する問題点がある。
【００１８】
（２）発明の目的の説明
この発明は、このような従来の装置に於ける問題点を解消して、フラッシュメモリである不揮発データメモリの利用効率を高め、一括消去回数を抑制して目標とする寿命を確保することができる電子制御装置を提供することを目的としてなされたものである。
【課題を解決するための手段】
【００１９】
この発明による電子制御装置は、
入力信号回路と出力信号回路とが接続されるマイクロプロセッサと、当該マイクロプロセッサと協働する不揮発プログラムメモリと揮発性のＲＡＭメモリと不揮発データメモリとを備え、前記不揮発プログラムメモリに書込みされた入出力制御プログラムと、前記不揮発データメモリに格納された制御定数の値と、前記入力信号回路の信号状態とに応動して前記出力信号回路に制御出力信号を送出する電子制御装置であって、
前記不揮発データメモリは、ブロック単位で個別に一括消去が可能な複数の分割ブロックを有する不揮発性のメモリにより構成され、
前記各分割ブロックは、書込み頻度又は書込み時期が異なる複数のデータ格納領域に仕分けされ、
前記各データ格納領域は、読出／書込単位となる複数のセクションにより構成され、当該セクションには複数の個別データが所定順序で書込まれ、一つの前記セクションのデータ容量は、書込みされる個別データの個数に対応したバイト数に構成され、
前記複数のセクションには、対象となる前記分割ブロックの一括消去を行った後に順次新たなデータがセクション単位で格納され、当該対象分割ブロックの中のどれかのデータ格納領域が満杯となってデータが書込まれていない空セクションが無くなったときには、予め一括消去された他の分割ブロックの該当データ格納領域の先頭セクションに新たなデータが書込まれ、
元の分割ブロックの中の他のデータ格納領域に書込まれていた最新のデータは、新たな分割ブロックの該当データ格納領域の先頭セクションに転送格納され、
元の分割ブロック内のデータは、少なくとも前記新たな分割ブロックへの最新データの転送書込みが完了した後に一括消去されるものであると共に、
前記データ格納領域内のセクション数は、書込み頻度の多いものほど多くのセクションが割り当てられている
ことを特徴とするものである。
【発明の効果】
【００２０】
この発明による電子制御装置によれば、マイクロプロセッサと協働する不揮発データメモリとして、ブロック単位で個別に一括消去が可能な複数の分割ブロックを有する不揮発メモリが使用され、各分割ブロックは更に複数のセクションで構成された複数のデータ格納領域に仕分けされ、各データ格納領域内のセクションの数は書込み頻度の多いものほど多くのセクションが割り当てられているので、入出力プログラムと同じブロックに書き込まれていた半固定制御定数を不揮発データメモリの分割ブロック内のひとつのデータ格納領域に保存することが可能となり、半固定制御定数を残したままで入出力プログラムのみを変更したり、入出力制御プログラムを残したままで半固定定数のみを一括変更することが可能となる。
【００２１】
更に、書込み頻度の少ない半固定制御定数を保存するデータ格納領域のセクション数を少なく設定することにより、特定のデータ格納領域において空きセクションが無くなって、新たな分割ブロックへ移行するときに、他のデータ格納領域に残された空きセクションは残りが少なくなっていて、不必要な一括消去が行われる空セクションの数が削減され、全体としてフラッシュメモリの一括消去回数を削減して、その寿命を延長することができる効果がある。
【００２２】
又、複数の分割ブロック間では最新データの転送保存を行ってから元の分割ブロックが一括消去されるので、転送処理中に停電したような場合にデータが消失しない効果がある。
【図面の簡単な説明】
【００２３】
【図１】この発明の実施の形態１による電子制御装置の全体構成を示すブロック図である。
【図２】この発明の実施の形態１による電子制御装置に於ける不揮発データメモリのセクション構成図である。
【図３】この発明の実施の形態１による電子制御装置に於ける不揮発データメモリの消去・書込処理の説明図である。
【図４】この発明の実施の形態１による電子制御装置に於ける不揮発データメモリの検索・読出処理の説明図である。
【図５】この発明の実施の形態１による電子制御装置に於ける不揮発データメモリの異常処理の説明図である。
【図６】この発明の実施の形態１による電子制御装置に於ける全体動作のフローチャートである。
【００２４】
【図７】この発明の実施の形態１による電子制御装置に於けるデータ書込み処理の全体フローチャートである。
【図８】この発明の実施の形態１による電子制御装置に於ける不揮発データメモリの初期化処理のフローチャートである。
【図９】この発明の実施の形態１による電子制御装置に於ける不揮発データメモリの書込み処理のフローチャートである。
【図１０】この発明の実施の形態１による電子制御装置に於ける全ブロック消去処理のフローチャートである。
【図１１】この発明の実施の形態１による電子制御装置に於ける移行処理のフローチャートである。
【図１２】この発明の実施の形態１による電子制御装置に於けるデータ読出し処理の全体フローチャートである。
【００２５】
【図１３】この発明の実施の形態１による電子制御装置に於ける最新データ検索処理のフローチャートである。
【図１４】この発明の実施の形態１による電子制御装置に於ける最新ブロック検索処理のフローチャートである。
【図１５】この発明の実施の形態１による電子制御装置に於ける最新セクション検索処理のフローチャートである。
【図１６】この発明の実施の形態２による電子制御装置の全体構成を示すブロック図である。
【図１７】この発明の実施の形態２による電子制御装置に於ける不揮発データメモリのセクション構成図である。
【発明を実施するための形態】
【００２６】
実施の形態１．
（１）構成の詳細な説明
以下、この発明の実施の形態１による電子制御装置の構成を、その全体構成を示すブロック図である図１と、不揮発データメモリのセクション構成図である図２に基づいて詳細に説明する。
【００２７】
先ず、図１に於いて、電子制御装置１００Ａは、マイクロプロセッサ１１０Ａと不揮発プログラムメモリ１１１Ａと、揮発性のＲＡＭメモリ１１２Ａと、フラッシュメモリである不揮発データメモリ１１３Ａを主体として構成され、実態としては例えばエンジン制御装置等の車載電子制御装置を構成しており、車載バッテリである外部電源１０１Ａから電源リレー１０２を介して給電されている。尚、電源リレー１０２は、図示しない電源スイッチが投入されると即時に閉路し、電源スイッチが遮断されると所定の遅延給電期間をおいてから開路するように構成されている。
【００２８】
入力信号回路１０３は、図示しないコネクタを介して接続された開閉センサ或いはアナログセンサであり、当該入力信号回路１０３は、図示しない入力インタフェース回路と入力信号バス１３０を介してマイクロプロセッサ１１０Ａに接続されている。出力信号回路１０４は、図示しないコネクタを介して接続された駆動機器或いは表示器等の電気負荷であり、当該出力信号回路１０４は、図示しない出力インタフェース回路と出力信号バス１４０を介してマイクロプロセッサ１１０Ａに接続されている。
【００２９】
第一ツール１０５Ａは、電子制御装置１００Ａの出荷調整・検査或いは保守点検時に、シリアル信号バス１５０を介してマイクロプロセッサ１１０Ａに対して接続されるものであり、当該第一ツール１０５Ａは、図示しないキーボード、及び表示器を備えた携帯機器により構成されている。第二ツール１０６Ａは、第一ツール１０５Ａに代わって電子制御装置１００Ａにシリアル接続されるものであり、当該第二ツール１０６Ａは、電子制御装置１００Ａが組みまれる車両等の合体製品の製造メーカが当該合体製品の出荷調整を行う時点に於いて出荷調整設備として準備されものであるか、或いは電子制御装置１００Ａを使用するユ−ザの設備管理部門が、設備の据付調整時点で使用するものであって、図示しないキーボード、表示器を備えた携帯機器により構成されている。尚、設備管理部門と合体製品の製造メーカとは同じ範疇のものであり、以下の説明では、これらを合体製品の製造メーカと称して説明する。
【００３０】
又、第二ツール１０６Ａは、第一ツール１０５Ａと同様の構成であり、例えば電子制御装置１００Ａの製造メーカから提供され、単に機能を分担して使用されるものとなっている。第一ツール１０５Ａには電子制御装置１００Ａで使用される入出力制御制御プログラム１０７Ａが格納されており、マイクロプロセッサ１１０ＡはマスクＲＯＭメモリ１１１ａに格納されたブートプログラムによって当該入出力制御プログラム１０７Ａを不揮発プログラムメモリ１１１Ａへ転送するように構成されている。
【００３１】
尚、入出力制御制御プログラム１０７Ａは、第一ツール１０５Ａと第二ツール１０６Ａとに対する交信処理プログラムを包含している。又、入出力制御制御プログラム１０７Ａは、当該入出力制御プログラム１０７Ａに対して一定不変の固定定数を包含すると共に、不揮発データメモリ１１２Ａに格納される後述の第一定数１０８ａ、第二定数１０８ｂ、第三定数１０８ｃに関連する参考定数１０７ａとを包含している。
【００３２】
この参考定数１０７ａは、第一定数１０８ａ、第二定数１０８ｂ、第三定数１０８ｃの中の変動情報の一部、又は運転特性の学習情報の一部に関する許容変動範囲である上下限値データと、前記第一定数１０８ａ、第二定数１０８ｂ、第三定数１０８ｃの中の未確定定数に対して適用される初期設定データであり、当該初期値設定データは、少なくとも前記電子制御装置１００Ａの初回運転開始前に後述の第１分割ブロック１１３ａ、第２分割ブロック１１３ｂ、第３分割ブロック１１３ｃ、第４分割ブロック１１３ｄの一つの中の第一定数領域Ｓ１０、第二定数領域Ｓ２０、第三定数領域Ｓ３００の先頭セクションに転送格納されるように構成されている。
【００３３】
第一ツール１０５Ａは、更に、不揮発データメモリ１１３Ａに転送される第一定数１０８ａを包含し、当該第一定数１０８ａは、前記電子制御装置１００Ａ自体の機種区分に対応した制御定数又は入出力制御プログラム１０７Ａの一部の選択番号情報、或いは当該電子制御装置１００Ａの内部の部品特性のバラツキ変動を補正するための校正定数、当該電子制御装置の製造番号などの制御装置固有情報となっている。尚、入出力制御プログラム１０７Ａは、様々な制御仕様を想定した様々な部分プログラムや定数テーブルを備えており、現実の制御仕様に対応してどの部分プログラムや定数テーブルを選択使用するのかを決定するのが前記選択番号情報の意味である。
【００３４】
第一定数１０８ａは、第一ツール１０５Ａに設けられた転送用の操作キーを押した時点で第一ツール１０５Ａから不揮発データメモリ１１３Ａへ転送されるか、又は、第一ツール１０５Ａの転送用の操作キーを押したときにＲＡＭメモリ１１２Ａへ転送され、電子制御装置１００Ａに対する電源スイッチが開路されて、電源リレー１０２による遅延給電が行われているタイミングでＲＡＭメモリ１１２Ａから不揮発データメモリ１１３Ａへ転送される。
【００３５】
第二ツール１０６Ａは、不揮発データメモリ１１３Ａに転送される第二定数１０８ｂを包含し、当該第二定数１０８ｂは、電子制御装置１００Ａが組込まれる合体製品・設備の型名・機種に対応した制御定数、又は入出力制御プログラム１０７Ａの一部の選択番号情報、或いは前記電子制御装置１００Ａに接続された入出力部品の部品特性のバラツキ変動を補正する校正定数などの合体製品固有情報となっている。
【００３６】
第二定数１０８ｂの転送タイミングは第一定数１０８ａの場合と同様であり、第二ツール１０６Ａに設けられた転送用の操作キーを押した時点で第二ツール１０６Ａから不揮発データメモリ１１３Ａへ転送されるか、又は、第二ツール１０６Ａの転送用の操作キーを押したときにＲＡＭメモリ１１２Ａへ転送され、電子制御装置１００Ａに対する電源スイッチが開路されて、電源リレー１０２による遅延給電が行われているタイミングでＲＡＭメモリ１１２Ａから不揮発データメモリ１１３Ａへ転送される。
【００３７】
不揮発プログラムメモリ１１１Ａに格納された入出力制御プログラム１０７Ａによって運転動作を行うマイクロプロセッサ１１０Ａは、電子制御装置１００Ａの内蔵部品又は外部接続部品の特性変動情報、或いは改善された運転特性を得るための学習情報、或いは異常発生履歴情報等の第三定数１０８ｃを生成してＲＡＭメモリ１１２Ａに格納する。不揮発データメモリ１１３Ａは、ブロック単位で一括消去が行われるフラッシュメモリであり、第１分割ブロック１１３ａ、第２分割ブロック１１３ｂ、第３分割ブロック１１３ｃ、第４分割ブロック１１３ｄを備えている。
【００３８】
各分割ブロック１１３ａ〜１１３ｄ内の構成を示す図２に於いて、第１分割ブロック１１３ａ〜第４分割ブロック１１３ｄは、夫々同様の構成であり、チェック領域Ｓ０と、データ格納領域となる第一定数領域Ｓ１０と、第二定数領域Ｓ２０と、第三定数領域Ｓ３００を備えている。チェック領域Ｓ０は、例えば１６バイトのデータ容量Ｃ０を持つセクションＳ１と、当該セクションＳ１が異常となった場合に代替使用される予備セクションＳ２によって構成されている。
【００３９】
第一定数領域Ｓ１０は、例えば３２バイトのデータ容量Ｃ１０を持つ２つのセクションＳ１１、Ｓ１２によって構成されており、従がってセクション数Ｎ１０［＝２］であり、全体のデータ容量としては［Ｃ１０×Ｎ１０＝３２×２＝６４］バイトとなっている。
【００４０】
第二定数領域Ｓ２０は、例えば９６バイトのデータ容量Ｃ２０を持つ４つのセクションＳ２１、Ｓ２２、Ｓ２３、Ｓ２４によって構成されており、従がってセクション数Ｎ２０［＝４］であり、全体のデータ容量としては［Ｃ２０×Ｎ２０＝９６×４＝３８４］バイトとなっている。
【００４１】
第三定数領域Ｓ３００は、例えば３８４バイトのデータ容量Ｃ３００を持つ２０個のセクションＳ３０１、Ｓ３０２、Ｓ３０３・・・Ｓ３２０によって構成されており、従がってセクション数Ｎ３００［＝２０］であり、全体のデータ容量としては［Ｃ３００×Ｎ３００＝３８４×２０＝７６８０］バイトとなっている。
【００４２】
前述の各セクションは、書込／読出の最小単位となるものであり、各セクションには複数の個別データが所定順序で書込まれ、一つのセクションのデータ容量Ｃ１０・Ｃ２０・Ｃ３００の値は書込みされる個別データの個数に対応したバイト数となっている。尚、各セクションには複数の個別データに加えて符号誤り検出のためのサムデータ、或いは誤り訂正符号データが付加されている。
【００４３】
又、この実施の形態１に於いては、分割ブロック１１３ａ〜１１３ｄの中で、セクション数Ｎ１０・Ｎ２０・Ｎ３００とデータ容量Ｃ１０・Ｃ２０・Ｃ３００の積が最も大きい主たるデータ格納領域Ｓ３００の合計データ容量Ａ［＝Ｎ３００×Ｃ３００＝２０×３８４＝７６８０］と、その他の従となるデータ格納領域Ｓ０・Ｓ１０・Ｓ２０全体のセクション数とデータ容量の積である合計データ容量Ｂ［＝Ｎ０×Ｃ０＋Ｎ１０×Ｃ１０＋Ｎ２０×Ｃ２０＝１６×２＋３２×２＋９６×４＝４８０］との比率Ｂ／（Ａ＋Ｂ）［＝４８０／（７６８０＋４８０）＝０．０６］は前記分割ブロックの個数Ｎ＝４の逆数よりも小さい値となっている。
【００４４】
図１に戻り、消去／書込制御回路１１４は、マイクロプロセッサ１１０Ａから各種の指令信号ＣＯＭｎを受けて不揮発データメモリ１１３Ａを制御し、不揮発データメモリ１１３Ａから得られた回答信号ＡＮＳｎをマイクロプロセッサ１１０Ａに返信するように構成されている。指令信号のうち、指令信号ＣＯＭ１は一括消去指令であり、一括消去されるブロック番号はアドレス信号ＡＤＲによって消去／書込制御回路１１４に入力される。消去／書込制御回路１１４は、指定ブロック番号を記憶して不揮発データメモリ１１３Ａの指定ブロックを一括消去し、消去が完了すると消去完了の回答信号ＡＮＳ１を発生するように構成されている。
【００４５】
指令信号ＣＯＭ２は消去確認指令（ブランクチェック）であり、消去確認されるブロック番号とセクション番号とはアドレス信号ＡＤＲによって消去／書込制御回路１１４に入力される。消去／書込制御回路１１４は、指定ブロック番号と指定セクション番号を記憶して、不揮発データメモリ１１３Ａの指定ブロックに於ける指定セクションが消去されているかどうかを点検し、点検完了すると点検結果に応じた回答信号ＡＮＳ２を発生するように構成されている。
【００４６】
指令信号ＣＯＭ３は書込指令であり、書込対象となるブロック番号とセクション番号とはアドレス信号ＡＤＲによって消去／書込制御回路１１４に入力される。消去／書込制御回路１１４は、指定ブロック番号と指定セクション番号を記憶して不揮発データメモリ１１３Ａの指定ブロックの指定セクションに対して書込データＷＲＤを書込みし、書込みが完了すると書込完了の回答信号ＡＮＳ３を発生するように構成されている。
【００４７】
指令信号ＣＯＭ４は読出指令であり、読出対象となるブロック番号とセクション番号とはアドレス信号ＡＤＲによって消去／書込制御回路１１４に入力される。消去／書込制御回路１１４は、指定ブロック番号と指定セクション番号を記憶して不揮発データメモリ１１３Ａの指定ブロックの指定セクションに格納されている読出データＲＤＤを読出し、読出しが完了すると読出完了の回答信号ＡＮＳ４を発生するように構成されている。
【００４８】
尚、書込データＷＲＤと読出データＲＤＤとは、図示しないダイレクト・メモリアクセス・コントローラを介してＲＡＭメモリ１１２Ａとの間で授受が行われるように構成されている。
【００４９】
ＲＡＭメモリ１１２Ａはイメージメモリ領域１０８を備え、このイメージメモリ１０８は、第一ツール１０５Ａから第一定数１０８ａを不揮発データメモリ１１３Ａへ転送するときの中継メモリとして使用されたり、第二ツール１０６Ａから第二定数１０８ｂを不揮発データメモリ１１３Ａへ転送するときの中継メモリとして使用されたり、マイクロプロセッサ１１０Ａの運転中に生成される第三定数１０８Ｃが格納されるように構成されている。
【００５０】
ＲＡＭメモリ１１２Ａは、不揮発データメモリ１１３Ａの消去・書込状態に対応したデータが書込まれるステータスメモリ１１２ａを包含し、このステータスメモリ１１２ａには、少なくとも現在時点で書込が進行している最新の分割ブロック１１３ａ〜１１３ｄの識別番号情報と、当該最新分割ブロック内の各データ格納領域Ｓ１０・Ｓ２０・Ｓ３００に於いて最新データが書込まれたセクション番号情報とが格納されるように構成されている。
【００５１】
尚、イメージメモリ領域１０８やステータスメモリ１１２ａは、消去／書込制御回路１１４の中に設けられたバッファメモリを使用することも可能である。
【００５２】
電源回路１０９Ａは、例えば車載バッテリである外部電源１０１Ａから運転用電源スイッチが閉路されたことによって付勢される電源リレー１０２の出力接点と、駆動電源端子１０２ａとを介して給電されると共に、電源リレー１０２の出力接点を介在せずに外部バッテリとなる外部電源１０１Ａから補助電源端子１０１ａを介して給電されるように構成されている。
【００５３】
電源回路１０９Ａは、電源リレー１０２が付勢されているときには、例えばＤＣ５［Ｖ］の安定化された制御電圧Ｖｃｃを発生して、マイクロプロセッサ１１０Ａ、不揮発プログラムメモリ１１１Ａ、ＲＡＭメモリ１１２Ａ、不揮発データメモリ１１３Ａに供給する。又、電源回路１０９Ａは、電源リレー１０２が付勢されていないときには、例えばＤＣ３［Ｖ］の安定化された保持電圧Ｖｕｐを発生して、バックアップ電源としてＲＡＭメモリ１１２Ａに供給する。
【００５４】
電源リレー１０２が消勢されている期間に於いて補助電源となる車載バッテリ１０１Ａの電圧が異常低下するか、又は補助電源回路が遮断されて、ＲＡＭメモリ１１２Ａの記憶内容が消失したとき、又はステータスメモリ１１２ａの内容が異常であるときに、電源リレー１０２が付勢されてマイクロプロセッサ１１０Ａが運転を開始したとき、又はマイクロプロセッサ１１０Ａの運転中に不揮発データメモリ１１３Ａの中の少なくとも第三データ格納領域Ｓ３００に書込まれた最新セクションの内容がＲＡＭメモリ１１２Ａのイメージメモリ領域１０８に転送されて、マイクロプロセッサ１１０Ａはイメージメモリ領域１０８に書込まれた第三定数１０８ｃに基づいて入出力の制御を行なう。
【００５５】
尚、実態としてはマイクロプロセッサ１１０Ａが運転開始したときには、第三定数１０８ｃだけではなく、第一・第二定数１０８ａ・１０８ｂも不揮発データメモリ１１３ＡからＲＡＭメモリ１１２Ａへ転送読出しして、マイクロプロセッサ１１０ＡはＲＡＭメモリ１１２Ａのイメージメモリ領域１０８を参照しながら制御を行なうように構成されている。
【００５６】
又、ステータスメモリ１１２ａの異常としては、現在時点で書込が進行している最新の分割ブロック１１３ａ〜１１３ｄの識別番号情報が格納されていないか、又は当該最新分割ブロック内の各データ格納領域Ｓ１０・Ｓ２０・Ｓ３００に於いて最新データが書込まれたセクション番号情報が格納されていない状態であり、その他にＲＡＭメモリ１１２Ａ全体としての符号誤りによってビット情報の混入・欠落が発生している場合も含まれる。
【００５７】
次に、この発明の実施の形態１による電子制御装置に於ける不揮発データメモリの消去・書込処理について、その処理方法の概念を説明する。図３は、この発明の実施の形態１による電子制御装置に於ける不揮発データメモリの消去・書込処理の説明図であり、第一ブロック１１３ａの第三定数領域Ｓ３００が満杯となった場合の書込処理の概念を、（Ａ）、（Ｂ）、（Ｃ）の順で示したものである。
【００５８】
図３の（Ａ）は、現に書込みが行われていた第一ブロック１１３ａの内容を示しており、チェック領域Ｓ０のセクションＳ１には、ブランクブロックではないことを示す所定の確定定数と、過去の累積一括消去回数を示すチェックデータＣが格納されている。又、第一定数領域Ｓ１０のセクションＳ１１には、第一ツール１０５AからＲＡＭメモリ１１２Ａを媒介して転送された第一定数１０８ａが初回データＦ１として格納され、セクションＳ１２は、まだデータが書込まれていない空セクション（ブランク）となっている。
【００５９】
又、第二定数領域Ｓ２０のセクションＳ２１には、第二ツール１０６ＡからＲＡＭメモリ１１２Ａを媒介して転送された第二定数１０８ｂが初回データＳｅ１として格納され、セクションＳ２２には、２度目に転送された第二定数１０８bが次回データＳｅ２として格納され、セクションＳ２３・Ｓ２４は、まだデータが書込まれていない空セクション（ブランク）となっている。
【００６０】
更に、第三定数領域Ｓ３００のセクションＳ３０１には、ＲＡＭメモリ１１２Ａに格納されている第三定数１０８ｃが電子制御装置１００Ａの運転停止の直後に初回データＴ１として格納され、セクションＳ３０２には、電子制御装置１００Ａの次回の運転停止直後に次回データＴ２として格納され、以下同様にして、２０回目の運転停止直後の第三定数１０８ｃが２０回目の格納データＴ２０として格納され、まだデータが書込まれていない空セクションがなくなった満杯状態となっている。
【００６１】
図３の（Ｂ）は、次々順位の分割ブロック１１３ｃの内容を示しており、この分割ブロック１１３ｃには既にデータが書込まれていても、分割ブロック１１３ａが満杯となって次のデータを書込む必要が発生した時点で次々順位の分割ブロック１１３ｃが先ず一括消去され、チェック領域Ｓ０・第一定数領域Ｓ１０・第二定数領域Ｓ２０・第三定数領域Ｓ３００内の全てのセクションは空セクションとなっている。
【００６２】
図３の（Ｃ）は、次順位の分割ブロック１１３ｂの内容を示しており、この分割ブロック１１３ｂは既に一括消去が行なわれているが、確認処理として再度一括消去を行い、続いて現在の分割ブロック１１３ａで満杯となった次の第三定数１０８ｃが、第三定数領域Ｓ３００の先頭セクションＳ３０１に書込まれる。次に、分割ブロック１１３ａの第二定数領域Ｓ２０の中の最新データ（最後に書込まれた第二定数１０８ｂ）である格納データＳｅ２が、分割ブロック１１３ｂの第二定数領域Ｓ２０の中の先頭セクションＳ２１に移動して転送される。
【００６３】
次に、分割ブロック１１３ａの第一定数領域Ｓ１０の中の最新データ（最後に書込まれた第一定数１０８ａ）である格納データＦ１が、分割ブロック１１３ｂの第一定数領域Ｓ１０の中の先頭セクションＳ１１に転送される。最後に、分割ブロック１１３ｂのチェック領域Ｓ０には、分割ブロック１１３ｂがブランクブロックではないことを示す所定の確定定数と、一括消去回数の累積値が格納される。
【００６４】
このようにして分割ブロック１１３ａは、分割ブロック１１３ｂへ移行し、分割ブロック１１３ｂが新たな現在ブロックとなるものである。
【００６５】
チェック領域Ｓ０内の一つのセクションＳ１の前半領域には、分割ブロック１１３ａ〜１１３ｄの一括消去が行われてから、データ格納領域Ｓ１０・Ｓ２０・Ｓ３００の全てのデータ格納領域内で少なくとも一つのセクションに対して有効なデータが書込まれた時点で所定の確定定数が書込まれると共に、どれか一つのデータ格納領域であっても当該データ格納領域内のどのセクションにも有効なデータが書込まれていない場合には前記確定定数が書込まれていないブランクブロックの状態となる。
【００６６】
チェック領域Ｓ０内の一つのセクションＳ１の後半領域には、前記確定定数が書込まれた時点で当該分割ブロックに対する一括消去回数データが書込まれ、分割ブロックの移行が行われときには移行後の分割ブロックの一括消去回数は移行直前の現在の分割ブロックのチェック領域に書込まれていた一括消去回数に１を加算した値となる。
【００６７】
尚、各分割ブロック１１３ａ〜１１３ｄの一つは、前回の分割ブロックの移行過程と今回の分割ブロックの移行過程で一括消去が行われるが、初回の一括消去によって全セクションが消去されておれば、２回目の一括消去を行っても寿命回数に影響を与えないものであり、チェック領域Ｓ０に格納される一括消去回数は２度目の一括消去による１回分の一括消去回数となっている。
【００６８】
次に、この発明の実施の形態１による電子制御装置に於ける検索・読出処理について、その処理方法の概念についてを説明する。図４は、この発明の実施の形態１による電子制御装置に於ける不揮発データメモリの検索・読出処理の説明図であリ、図４の（Ａ）は、データの読出しが行われる最新ブロックの検索要領を示し、図４の（Ｂ）は、データの読出しが行われる最新セクションの検索要領を示したものである。
【００６９】
データの読出しが行われる最新ブロックの検索要領を示す図４の（Ａ）に於ける（１）は、第１〜第４ブロックの全てが一括消去された後、第１ブロック１１３ａにデータが書込まれている場合であり、最新ブロックＮはチェック領域Ｓ０がブランクであるブランクブロックを検索し、ブランクブロックの前のブランクブロックでないブロックを最新ブロックとして検索される。
【００７０】
図４の（Ａ）に於ける（２）は、第１ブロック１１３ａの第一・第二・第三領域Ｓ１０・Ｓ２０・Ｓ３００のどれかが満杯となって第２ブロック１１３ｂに最新データが移行した場合の図であり、最新ブロックＮはブランクブロックである第３ブロック１１３ｃの前にある第２ブロック１１３ｂとなり、第１ブロック１１３ａは最新の一つ前のブロックＮ−１となっている。
【００７１】
図４の（Ａ）に於ける（３）は、第２ブロック１１３ｂのどれかの領域が満杯となって第３ブロック１１３ｃに最新データが移行した場合の図であり、最新ブロックＮはブランクブロックである第４ブロック１１３ｄの前にある第３ブロック１１３ｃとなり、第１ブロック１１３ａは最新の二つ前のブロックN−２となり、第２ブロック１１３ｂは最新の一つ前のブロックN−１となっている。
【００７２】
図４の（Ａ）に於ける（４）は、第３ブロック１１３ｃのどれかの領域が満杯となって第４ブロック１１３ｄに最新データが移行した場合の図であり、この場合にはまず第３ブロック１１３ｃの二つ後にある第１ブロック１１３ａの一括消去を行っておいてから第４ブロックへの移行が行われる。そのため、最新ブロックＮは、ブランクブロックである第１ブロック１１３ａの前にある第４ブロック１１３ｄとなり、第２ブロック１１３ｂは最新の二つ前のブロックN−２となり、第３ブロック１１３ｃは最新の一つ前のブロックN−１となっている。
【００７３】
図４の（Ａ）に於ける（５）は、第４ブロック１１３ｄのどれかの領域が満杯となって第１ブロック１１３ａに最新データが移行した場合の図であり、この場合にはまず第４ブロックの二つ後の第２ブロック１１３ｂの一括消去を行っておいてから第１ブロック１１３ａへの移行が行われる。そのため、最新ブロックＮは、ブランクブロックである第２ブロック１１３ｂの前にある第１ブロック１１３ａとなり、第３ブロック１１３ｃは最新の二つ前のブロックN−２となり、第４ブロック１１３ｄは最新の一つ前のブロックN−１となっている。
【００７４】
図４の（Ａ）に於ける（６）は、第１ブロック１１３ａのどれかの領域が満杯となって第２ブロック１１３ｂに最新データが移行した場合の図であり、この場合には先ず第１ブロックの二つ後の第３ブロック１１３ｃの一括消去を行っておいてから第２ブロック１１３ｂへの移行が行われる。そのため、最新ブロックＮは、ブランクブロックである第３ブロック１１３ｃの前にある第２ブロック１１３ｂとなり、第４ブロック１１３ｄは最新の二つ前のブロックN−２となり、第１ブロック１１３ａは最新の一つ前のブロックN−１となっている。
【００７５】
図４の（Ａ）の（６）に於いて、第２ブロック１１３ｂのどれかの領域が満杯となって第３ブロック１１３ｃに移行する場合には、先ず第２ブロック１１３ｂの二つ後の第４ブロック１１３ｄの一括消去を行っておいてから第３ブロック１１３ｃへの移行が行われるので、図４の（Ａ）に於ける（３）の状態へ移行することになる。
【００７６】
尚、分割ブロックの移行を行うときには、移行先の分割ブロックも念のため一括消去
を行ってから書込みが開始されるように構成されている。
【００７７】
以上のとおり、不揮発データメモリ１１３Ａは、少なくとも３個以上の分割ブロック１１３ａ〜１１３ｄを備え、現在書込みが行われている分割ブロック１１３ａの中のどこかのデータ格納領域S１０・Ｓ２０・Ｓ３００に於いて空セクションが無くなった場合には、先ず次次順位の分割ブロック１１３ｃの一括消去を行い、続いて確認処理として次順位の分割ブロック１１３bの一括消去を行い、当該次順位の分割ブロック１１３ｂの該当データ格納領域の先頭セクションに新たなデータが書込まれ、元の分割ブロック１１３ａの中の他のデータ格納領域に書込まれていた最新のデータは、前記次順位の分割ブロック１１３ｂの該当データ格納領域の先頭セクションに転送格納され、分割ブロック１１３ａ〜１１３ｄの移行に当たっては、一括消去済であるブランクブロックの前にあるブランクブロックの分割ブロックへ移行するように構成されている。
【００７８】
データの読出しが行われる最新セクションの検索要領を示した図４の（Ｂ）に於いて、チェック領域Ｓ０にはブランクブロックではないことを示す確定定数と一括消去回数がデータＣとして書込まれている。第一定数領域Ｓ１０の先頭セクションＳ１１には、第一定数１０８ａの最新データＦ1が書込まれていて、続くセクションＳ１２は未書込み状態となっている。
【００７９】
第二定数領域Ｓ２０の先頭セクションＳ２１には、第二定数１０８ｂの前回データＳe１が書込まれ、続くセクションＳ２２には第二定数１０８ｂの最新データＳｅ２が書込まれ、続くセクションＳ２３・Ｓ２４は未書込み状態となっている。
【００８０】
第三定数領域Ｓ３００の先頭セクションＳ３０１には、第三定数１０８ｃの初回データＴ１が書込まれ、続くセクションＳ３０２には第三定数１０８ｃの２回目データＴ２が書込まれ、続くセクションＳ３０３には第三定数１０８ｃの３回目データＴ３が書込まれているが、書込み途中で停電し、セクションＳ３０３の一部領域がブランクとなっている。続くセクションＳ３０４〜Ｓ３２０は未書込み状態となっている。
【００８１】
マイクロプロセッサ１１０Ａは、不揮発データメモリ１１３Ａに対する一括消去指令信号とブランクチェック指令信号（消去確認指令信号）を発生し、当該ブランクチェック指令を受信した不揮発データメモリ１１３Ａは、少なくとも前記セクション単位で消去済であるか否かの判定情報を返信する。
【００８２】
前記マイクロプロセッサ１１０Ａは、一括消去を行うことによって、消去済となったセクションは空セクションであると判定し、一括消去を行っても消去できなかったセクションがあるか、又は不揮発データメモリ１１３Ａに対するデータの書込み中に停電が発生したことが原因となって、一つのセクションの中でデータの書込み部分と未書込み部分が混在していることが検出された場合には、当該セクションは無効セクションであると判定すると共に、セクション内にデータが存在して無効セクションではないセクションを有効セクションであると判定する。
【００８３】
マイクロプロセッサ１１０Ａは、不揮発データメモリ１１３Ａの読出しを行うときには、各データ格納領域の最終セクションから先頭セクションにかけて有効セクションを検索し、初めて検出された有効セクションに格納されたデータを読出しする。
【００８４】
次に、この発明の実施の形態１による電子制御装置に於ける異常処理について、その処理方法の概念についてを説明する。図５は、この発明の実施の形態１による電子制御装置に於ける不揮発データメモリの異常処理の説明図であり、図５の（Ａ）は書込み異常が発生した場合の処理方法を示しており、図５の（Ｂ）は分割ブロックの一括消去に於いて消去異常が発生した場合の処理方法を示している。
【００８５】
書込み異常が発生した場合の処理方法を示す図５の（Ａ）に於いて、ここではセクションＳ３０２にセルの異常があるか又はデータが書込まれていて、無効セクションとなっている場合を示している。マイクロプロセッサ１１０Ａは、不揮発データメモリ１１３Ａの書込みを行うときには、各データ格納領域の最終セクションから先頭セクションにかけて有効セクションを検索し、初めて検出された有効セクションから逆方向に検索して初めて検出された空セクションにデータを書込みすると共に、当該空セクションに正しくデータの書込みが行えなかった場合には、更に逆方向に検索して新たに検出された空セクションにデータを書込みするように構成されている。
【００８６】
図５の(Ｂ)に示すブロック消去で異常となったときには、１回だけリトライを実施するが、リトライしてもブロック消去が異常であればチェック領域のブランクチェックを行い、ブランクであればブロック消去正常と見なすようになっている。これは、セクション内に未消去部分があっても、次のセクションに書込みするため実害がないためである。
【００８７】
（２）作用・動作の詳細な説明
次に、この発明の実施の形態１による電子制御装置の動作・作用について説明する。図６は、この発明の実施の形態１による電子制御装置に於ける全体動作のフローチャートである。図６に於いて、先ずステップ６００ａにより、図示しない電源スイッチが投入されると、電源リレー１０２が付勢されて電子制御装置１００Ａが給電駆動され、ステップ６０１に於いてマイクロプロセッサ１１０Ａが動作を開始する。
【００８８】
続くステップ６０２aは、不揮発プログラムメモリ１１１Aに対して入出力プログラム１０７Ａを転送したいのかどうかを人為的に判断して、転送したいのであれば第一ツール１０５Ａを接続してからその転送操作キーを押すことによってＹｅｓの判定が行われてステップブロック６０２ｂへ移行し、転送操作キーが押されていないか、又は不揮発プログラムメモリ１１１Aに対して入出力プログラム１０７Ａが既に書込みされている場合にはＮｏの判定を行ってステップ６０３ａへ移行する判定ステップである。
【００８９】
ステップブロック６０２ｂは、マスクＲＯＭメモリ１１１ａに格納されているブートプログラムによって第一ツール１０５Ａに格納されている入出力プログラム１０７Ａが不揮発プログラムメモリ１１１Ａに転送格納して行程６０３ａへ移行するステップであり、入出力制御プログラム１０７Ａにはプログラムに固有の一定不変の固定定数や参考定数１０７ａが包含されている。
【００９０】
行程６０３ａは、第１〜第４ブロックのどれかの分割ブロックでチェック領域Ｓ０に設定確定数値が書込まれているものがあるかどうかを判定することによって分割ブロックの初期化が行われているかどうかを判定し、初期化が行われておればＹｅｓの判定を行ってステップ６０４ａへ移行し、初期化が行われていなければＮｏの判定を行ってステップ６０３ｂへ移行する判定ステップである。
【００９１】
行程６０３ｂでは先ずＲＡＭメモリ１１２Ａのイメージメモリ領域１０８に対して、第一定数１０８ａ・第二定数１０８ｂ・第三定数１０８ｃの初期設定値を書込むが、この初期設定値は不揮発プログラムメモリ１１１Ａに格納されている参考定数１０７ａが適用され、参考定数が与えられていない個別データに関しては例えば数値０等の任意の定数が仮定数として書込まれるように構成されている。
【００９２】
ステップ６０４ａは、ＲＡＭメモリ１１２Aに対して第一定数１０８ａを転送したいのかどうかを人為的に判断して、転送したいのであれば第一ツール１０５Ａを接続してからその転送操作キーを押すことによってＹｅｓの判定が行われてステップ６０５ａへ移行し、転送操作キーが押されていないか又は第一ツール１０５Ａが接続されていなければＮｏの判定を行ってステップ６０４ｂへ移行する判定ステップである。
【００９３】
ステップ６０５ａは、第一ツール１０５Ａから得られる第一定数１０８ａをＲＡＭメモリ１１２Ａのイメージメモリ領域１０８へ転送してからステップ６０６へ移行するステップである。
【００９４】
ステップ６０４ｂは、ＲＡＭメモリ１１２Aに対して第一定数１０８ｂを転送したいのかどうかを人為的に判断して、転送したいのであれば第二ツール１０６Ａを接続してからその転送操作キーを押すことによってＹｅｓの判定が行われてステップ６０５ｂへ移行し、転送操作キーが押されていないか又は第二ツール１０６Ａが接続されていなければＮｏの判定を行ってステップ６０４ｃへ移行する判定ステップである。
【００９５】
行程６０５ｂは、第二ツール１０６Ａから得られる第二定数１０８ｂをＲＡＭメモリ１１２Ａのイメージメモリ領域１０８へ転送してから行程６０６へ移行するステップである。行程６０４ｃは、電子制御装置１００Ａの実用運転中に於いて、ＲＡＭメモリ１１２Aに対して書込みしたい学習記憶情報が発生したときにＹｅｓの判定が行われてステップ６０５ｃへ移行し、学習記憶情報が発生していないときにばＮｏの判定を行ってステップ６０６へ移行する判定ステップである。
【００９６】
ステップ６０５ｃは、電子制御装置１００Ａの実用運転中に得られる学習情報を第三定数１０８ｃをＲＡＭメモリ１１２Ａのイメージメモリ領域１０８へ書込みしてからステップ６０６へ移行するステップである。ステップ６０６は、電源スイッチの投入／遮断状態を判定するステップであり、電源スイッチが投入されておればＮｏの判定となって動作終了行程６０９へ移行し、電源スイッチが遮断された所定時間内ではＹｅｓの判定が行われてステップブロック７００へ移行するように構成されている。
【００９７】
ステップブロック７００は、図７に於いて後述するデータメモリの書込み処理ステップであり、このステップブロックではステップ６０５ａ・６０５ｂ・６０５ｃでＲＡＭメモリ１１２Ａのイメージメモリ領域１０８に書込まれていた第一定数１０８ａ又は第二定数１０８ｂ又は第三定数１０８ｃの全てが不揮発データメモリ１１３Ａの第一定数領域Ｓ１０又は第二定数領域Ｓ２０又は第三定数領域Ｓ３００に転送書込みされてからステップ６００ｃへ移行するように構成されている。
【００９８】
尚、ＲＡＭメモリ１１２Ａのイメージメモリ領域１０８に対しては、ステップブロック６０３ｂに於いて仮の値である初期設定値が書込まれていて、その後にステップ６０５ａ・６０５ｂ・６０５ｃに於いて順次更新書換が行われているので、ステップブロック７００に於いて不揮発データメモリ１１３Ａに転送されるデータは更新書込みされたデータであり、行程６０５ａ・６０５ｂ・６０５ｃのどれかがまだ実行されていない場合には第一定数１０８ａ・第二定数１０８ｂ・第三定数１０８ｃのどれかはステップ６０３ｂで設定された初期設定値となっている。
【００９９】
ステップ６００ｃでは電源リレー１０２が消勢されて電子制御装置１００Ａに対する給電が停止される。動作終了ステップ６０９では他の制御プログラムを実行して、所定時間以内には再度動作開始ステップ６０１へ復帰して、以下同様の制御が繰返して実行されるように構成されている。
【０１００】
図６のフローチャートは、異なる時期で実行される各種の処理を合併して、概括表現したものである。先ず第一の処理としては、ステップ６００ａからステップブロック６０２ｂ・ステップ６０３ｂ・ステップ６０５ａ・ステップブロック７００・ステップ６００ｃが実行されて、入出力制御プログラム１０７Ａの転送と、不揮発データメモリ１１３Ａに対する第一定数１０８ａの転送と、第二・第三定数に対する初期設定値の転送処理が行われる。
【０１０１】
続く第二の処理としては、ステップ６００ａ・ステップ６０５ｂ・ステップブロック７００・ステップ６００ｃが実行されて、不揮発データメモリ１１３Ａに対する第二定数１０８ｂが転送される。同様に、第三の処理としては、行程６００ａ・ステップ６０５ｃ・ステップブロック７００・ステップ６００ｃが実行されて、不揮発データメモリ１１３Ａに対する第三定数１０８ｃが転送されるが、第三定数１０８ｃに関してはステップ６０１・ステップ６０５ｃ・ステップ６０６・ステップ６０９・ステップ６０１を循環しながら多数の個別データが順次ＲＡＭメモリ１１２Ａに拡充格納され、電源スイッチが遮断された直後にステップブロック７００によって一括して不揮発データメモリ１１３Ａへ転送されることになる。
【０１０２】
図７は、この発明の実施の形態１による電子制御装置に於けるデータ書込み処理の全体フローチャートである。図７に於いて、ステップ７００は、データメモリに対するデータの書込み開始ステップである。続くステップ７０１は、不揮発データメモリ１１３Ａの初期化を行うかどうかを判定するステップであり、このステップ７０１では分割ブロックの全てにデータが書込まれていて、次に書込むべき分割ブロックが特定できない状態になっているとき、又は全ブロックのどこにも有効なデータが書かれていないときに初期化要であるＹｅｓと判定してステップブロック８００へ移行し、図１４により後述する最新ブロックの検索が行えたときには初期化不要であるＮｏと判定してステップブロック９００へ移行するように構成されている。
【０１０３】
ステップブロック８００は、図８により後述するデータメモリの初期化処理ステップである。続くステップ７０２は、ステップブロック８００による初期化処理が正常に終了したときはＹｅｓの判定を行ってステップブロック９００へ移行し、非正常であったときにはＮｏの判定を行ってステップ７０７へ移行する判定ステップである。
【０１０４】
ステップブロック９００は、図９により後述するデータメモリのデータ書込処理ステップである。続くステップ７０３は、ステップブロック９００による書込処理が正常に終了したときはＹｅｓの判定を行ってステップ７０４へ移行し、非正常（ブロック内に空セクションが無い）であったときにはＮｏの判定を行ってステップブロック１１００へ移行する判定ステップである。
【０１０５】
ステップ７０４は、ＲＡＭメモリ１１２Ａに設けられたステータスメモリ１１２ａに於ける読出しセクション番号を更新してステップ７０５へ移行するステップである。ステップブロック１１００は、図１１により後述する分割ブロックの移行処理ステップである。続くステップ７０６は、ステップブロック１１００による移行処理が正常に終了したときはＹｅｓの判定を行ってステップ７０５へ移行し、非正常であったときにはＮｏの判定を行って行程７００へ移行する判定ステップである。ステップ７０５は、書込み正常終了ステップであり、ステップ７０７は書込み異常終了ステップである。
【０１０６】
この発明の実施の形態１による電子制御装置に於ける不揮発データメモリの初期化処理のフローチャートである。図８に於いて、ステップ８０１は、初期化処理の開始ステップである。続くステップブロック１０００は、図1０により後述する全ブロックの一括消去処理ステップである。続くステップ８０２は、ステップブロック１０００による消去処理が正常に終了したときはＹｅｓの判定を行ってステップ８０３へ移行し、非正常であったときにはＮｏの判定を行ってステップ８１１へ移行する判定ステップである。
【０１０７】
ステップ８０３は、書込みセクションを先頭ブロックである第１ブロック１１３ａに決定してからステップブロック９００へ移行するステップである。ステップブロック９００は、図９により後述する書込処理ステップであり、第１ブロック１１３ａの第一定数領域Ｓ１０の先頭セクションＳ１１と、第二定数領域Ｓ２０の先頭セクションＳ２１と、第三定数領域Ｓ３００の先頭セクションＳ３０１に対して初期設定値を書込む。
【０１０８】
続くステップ８０４は、ステップブロック９００による書込処理が正常に終了したときはＹｅｓの判定を行ってステップ８０５へ移行し、非正常であったときにはＮｏの判定を行ってステップ８１１へ移行する判定ステップである。
【０１０９】
ステップ８０５は、ステップブロック９００に於いて各データ格納領域の先頭セクションに対するデータの書込みが完了したかどうかを判定し、未完了であればＮｏとなってステップ８０３へ復帰移行し、完了であればＹｅｓとなってステップ８０６へ移行する判定ステップである。ステップ８０６は、第１ブロック１１３ａのチェック領域Ｓ０に設けられたセクションＳ１に対して、所定の確定数値と一括消去回数「１」を書込むステップである。
【０１１０】
続くステップ８０７は、ステップ８０６によるチェック領域の書込処理が正常に終了したときはＹｅｓの判定を行ってステップ８０８へ移行し、非正常であったときにはｎｏの判定を行ってステップ８１１へ移行する判定ステップである。ステップ８０８は、ＲＡＭメモリ１１２Ａに設けられたステータスメモリ１１２ａに於ける最新ブロックのブロック番号を先頭ブロック番号としてからステップ８０９へ移行するステップである。
【０１１１】
ステップ８０９は、ＲＡＭメモリ１１２Ａに設けられたステータスメモリ１１２ａに於ける読出しセクション番号を先頭先頭番号としてからステップ８１０へ移行するステップである。ステップ８１０は、初期化正常終了ステップであり、ステップ８１１は初期化異常終了ステップである。
【０１１２】
図９は、この発明の実施の形態１による電子制御装置に於ける不揮発データメモリの書込み処理のフローチャートである。図９に於いて、ステップ９０１は、書込み処理の開始ステップである。続くステップ９０２は、現在の書込みブロックに空セクションがの残されているかどうかをＲＡＭメモリ１１２Ａ内のステータスメモリ１１２ａの内容によって判定し、空セクションがあればＹｅｓの判定を行ってステップ９０３へ移行し、空セクションがなければＮｏの判定を行ってステップ９１１へ移行する判定ステップである。
【０１１３】
ステップ９０３は、書込みしたいセクションが空セクションであるかどうかを確認するためのブランクチェックを行うステップである。続くステップ９０４は、ステップ９０３によるブランクチェックの結果として書込みしたいセクションが空セクションであればＹｅｓの判定を行ってステップ９０５へ移行し、空セクションでなければＮｏの判定を行ってステップ９０７へ移行する判定ステップである。
【０１１４】
ステップ９０５は、書込みセクションにデータの書込みを実施してからステップ９０６へ移行するステップである。ステップ９０６は、ステップ９０５によるデータの書込みが正常であればＹｅｓの判定を行ってステップ９１０へ移行し、非正常であればＮｏの判定を行ってステップ９０７へ移行する判定ステップである。
【０１１５】
ステップ９０７は、書込みセクション番号を進行させてからステップ９０２へ復帰移行するステップであり、書込み異常である場合には書込みセクションを進め、再度ブランクチェックと書込みを実施して、ブロック内に空セクションが無くなればステップ9１１による異常終了となり、正常書込みされた場合はステップ９１０による正常終了となる。
【０１１６】
図１０は、この発明の実施の形態１による電子制御装置に於ける全ブロック消去処理のフローチャートであり、指定された分割ブロックの消去処理を示している。図１０に於いて、ステップ１００１は、消去処理の開始ステップである。続くステップ１００２は、リトライカウンタの現在値を「０」にしてからステップ１００３へ移行するステップである。
【０１１７】
ステップ１００３は、分割ブロックの消去を実施してからステップ１００４へ移行するステップである。ステップ１００４は、ブランクチェックを行うことによって指定された分割ブロックの消去が行われたかどうかを判定し、消去されておればＹｅｓの判定を行ってステップ１０１０へ移行し、消去されていなければＮｏの判定を行ってステップ１００５へ移行する判定ステップである。
【０１１８】
ステップ１００５は、リトライカウンタの現在値に「１」を加算してからステップ１００６へ移行するステップである。ステップ１００６は、リトライカウンタの現在値が「２」未満であればリトライを許可するＹｅｓの判定を行ってステップ１００３へ復帰し、現在値が「２」以上であればリトライを不許可とするＮｏの判定を行ってステップ１００７へ移行する判定ステップである。
【０１１９】
ステップ１００７は、チェック領域Ｓ０のブランクチェックを行うステップである。続くステップ１００８は、ステップ１００７によるブランクチェックの結果として、チェック領域Ｓ０がブランクであればＹｅｓの判定を行って正常終了ステップ１０１０へ移行し、チェック領域Ｓ０がブランクでなければＮｏの判定を行って異常終了ステップ１０１１へ移行する判定ステップとなっている。
【０１２０】
尚、チェック領域がブランクであれば、最新ブロックの検索は正常に動作し、書き込み処理において空セクションでなければ次のセクションに書き込む処理があるためチェック領域以外で消去さていない部分が存在しても機能的な影響はない。そのため、リトライ後の消去異常時に、チェック領域がブランクであれば正常終了とするように構成されている。
【０１２１】
図１１は、この発明の実施の形態１による電子制御装置に於ける移行処理のフローチャートであり、分割ブロックの移行処理を示している。図１１に於いて、ステップ１１０１は、ブロック移行処理の開始ステップである。ステップブロック１０００ａは、図1０により前述したデータメモリのブロック消去のステップであり、ここでは２つ先の分割ブロックの一括消去が行われる。
【０１２２】
続くステップ１１０２ａは、ステップブロック１０００ａによる消去処理が正常に終了したときはＹｅｓの判定を行ってステップブロック１０００ｂへ移行し、非正常であったときにはＮｏの判定を行って異常終了ステップ１１１１へ移行する判定ステップである。ステップブロック１０００ｂは、図１０により前述したデータメモリのブロック消去のステップであり、ここでは１つ先の分割ブロックの一括消去が行われる。
【０１２３】
続くステップ１１０２ｂは、ステップブロック１０００ｂによる消去処理が正常に終了したときはＹｅｓの判定を行ってステップ１１０３ａへ移行し、非正常であったときにはＮｏの判定を行って異常終了行程１１１１へ移行する判定ステップである。
【０１２４】
ステップ１１０３ａは、満杯となって分割ブロックの移行が行われたデータ格納領域を指定領域として、指定領域の書込みセクション番号を先頭セクションに更新するステップである。続くステップブロック９００ａは図９により前述したデータ書込みのステップであり、ここでは満杯となって分割ブロックの移行が行われたデータ格納領域に関して、新たに発生したデータが書込まれるように構成されている。
【０１２５】
続くステップ１１０２ｃは、ステップブロック９００ａによる書込処理が正常に終了したときはＹｅｓの判定を行ってステップ１１０３ｂへ移行し、非正常であったときにはＮｏの判定を行って異常終了ステップ１１１１へ移行する判定ステップである。ステップ１１０３ｂは、満杯となって分割ブロックの移行が行われたデータ格納領域以外のデータ格納領域の一つについて、移行前の分割ブロックに格納されていた最新データを移行後の分割ブロックの先頭セクションに転送するように書込みセクション番号を更新するステップである。
【０１２６】
続くステップブロック１２００は、図１２により後述するデータの検索読出処理ステップであり、ここでは移行前の分割ブロックについて正常な分割ブロックや読出しセクションの検索を行って、有効なセクションの有無を検索する。続くステップ１１０４は、移行前の分割ブロックについて、有効なセクションが存在すればＹｅｓの判定を行ってステップブロック９００ｂへ移行し、有効なセクションが存在しない場合にはステップブロック９００ｃへ移行する判定ステップである。
【０１２７】
ステップブロック９００ｂは、図９により前述した書込処理ステップであり、ここではステップブロック１２００で読出しされた移行前分割ブロック内の最新データが移行後の分割ブロックの先頭セクションに転送書込みされる。ステップブロック９００ｃは、図９により前述した書込処理ステップであり、ここでは図６のステップ６０３ｂでＲＡＭメモリ１１２Ａのイメージメモリ１０８に書込まれた初期設定値が移行後の分割ブロックの先頭セクションに転送書込みされる。
【０１２８】
ステップブロック９００ｂ又は９００ｃに続くステップ１１０２ｄは、ステップブロック９００ｂ・９００ｃによる書込処理が正常に終了したときはＹｅｓの判定を行ってステップ１１０５へ移行し、非正常であったときにはＮｏの判定を行って異常終了ステップ１１１１へ移行する判定ステップである。
【０１２９】
ステップ１１０５は、第一領域Ｓ１０・第二領域Ｓ２０・第三領域Ｓ３００の全領域に対して最新データ又は初期値データが書込まれたかどうかを判定し、未完了であればＮｏの判定を行ってステップ１１０３ｂへ復帰移行し、完了であればＹｅｓの判定を行ってステップ１１０６へ移行する判定ステップである。ステップ１１０６は、移行後の分割ブロックのチェック領域Ｓ０に設けられたセクションＳ１に対して、所定の確定数値と一括消去回数を書込むステップであり、この一括消去回数は移行前の分割ブロックのセクションＳ１に書込みされていた一括消去回数に１を加算した値である。
【０１３０】
続くステップ１１０２ｅは、ステップ１１０６によるチェック領域の書込処理が正常に終了したときはＹｅｓの判定を行ってステップ１１０７へ移行し、非正常であったときにはＮｏの判定を行って異常終了ステップ１１１１へ移行する判定ステップである。ステップ１１０７は、ＲＡＭメモリ１１２Ａに設けられたステータスメモリ１１２ａに於ける最新ブロックのブロック番号を更新してからステップ１１０８へ移行するステップである。ステップ１１０８は、ＲＡＭメモリ１１２Ａに設けられたステータスメモリ１１２ａに於ける読出しセクション番号を更新してから正常終了ステップ１１１０へ移行するステップである。
【０１３１】
図１２は、この発明の実施の形態１による電子制御装置に於けるデータ読出し処理の全体フローチャートであり、不揮発データメモリからのデータ読出処理を示している。図１２に於いて、ステップ１２００は、データメモリに対するデータの読出し開始ステップである。続くステップブロック１３００は、図１３により後述する最新データ検索処理ステップである。
【０１３２】
続くステップ１２０１は、ステップブロック１３００の中の最新ブロックの検索結果として、全ての分割ブロック１１３ａ〜１１３ｃにデータが書込まれていて最新ブロックが特定できない状態であるか、又は全ての分割ブロック１１３ａ〜１１３ｃがブランクブロックであって有効なデータが検索できない状態であればＹｅｓの判定を行って読出異常終了ステップ１２１１へ移行し、有効ブロックが検索されたときには異常なしであるＮｏの判定を行ってステップ１２０２へ移行する判定ステップである。
【０１３３】
続くステップ１２０２は、ステップブロック１３００の中の最新セクションの検索結果として、有効な読出ブロックと読出セクションとが特定できない状態であればＹｅｓの判定を行って読出異常終了ステップ１２１１へ移行し、有効な読出ブロックと読出セクションが検索されたときには異常なしであるＮｏの判定を行ってステップ１２０３へ移行する判定ステップである。ステップ１２０３は、検索された読出ブロックの中の読出セクションのデータを読出してＲＡＭメモリ１１２Ａのイメージメモリ領域１０８へ格納し、読出正常終了ステップ１２１０へ移行するステップである。
【０１３４】
図１３は、この発明の実施の形態１による電子制御装置に於ける最新データ検索処理のフローチャートであり、不揮発データメモリの最新データ検索を示している。図１３に於いて、ステップ１３０１は、最新データ検索の開始ステップである。続くステップブロック１４００は、図１４により後述する最新ブロック検索ステップである。
【０１３５】
続くステップ１３０２は、ステップブロック１４００による最新ブロックの検索結果として、全ての分割ブロック１１３ａ〜１１３ｃにデータが書込まれていて最新ブロックが特定できない状態であるか、又は全ての分割ブロック１１３ａ〜１１３ｃがブランクブロックであって有効なデータが検索できない状態であればＹｅｓの判定を行って読出異常終了ステップ１３１１へ移行し、有効ブロックが検索されたときには異常なしであるＮｏの判定を行ってステップ１３０３へ移行する判定ステップである。
【０１３６】
ステップ１３０３は、検索された最新ブロック番号をＲＡＭメモリ１１２Ａの中のステータスメモリ１１２ａに格納してからステップ１５００ａへ移行するステップである。ステップブロック１５００ａは、図１５により後述する最新セクションの検索ステップであり、ここではステップ１３０３により記憶された最新ブロックの中の最新セクションの検索が行われる。続くステップ１３０４は、ステップブロック１５００ａによる最新セクションの検索結果として、有効なセクションが存在しなかった場合にはＹｅｓの判定を行ってステップ１３０５へ移行し、有効なセクションが発見された場合にはＮｏの判定を行ってステップ１３０６ａへ移行する判定ステップである。
【０１３７】
ステップ１３０６ａは、検索された番号情報をＲＡＭメモリ１１２Ａの中のステータスメモリ１１２ａに格納してからステップ１３０７へ移行するステップであり、検索番号情報として、読出ブロック番号はステップ１３０３により格納された最新ブロック番号の現在番号とし、読出セクション番号はステップブロック１５００ａにより検索された最新セクション番号の現在番号であり、書込セクションは読出セクション番号の次のセクション番号となっている。
【０１３８】
ステップ１３０５は、ステップ１３０３で記憶された最新ブロック番号の前の分割ブロックがブランクブロックであるかどうかを判定し、ブランクブロックでなければＹｅｓの判定を行ってステップブロック１５００ｂへ移行し、ブランクブロックであればＮｏの判定を行ってステップ１３０６ｂへ移行する判定ステップである。
【０１３９】
ステップ１３０６ｂは、検索された番号情報をＲＡＭメモリ１１２Ａの中のステータスメモリ１１２ａに格納してからステップ１３０７へ移行するステップであり、検索番号情報として、読出ブロック番号は検索不能を示す異常番号とし、読出セクション番号は検索不能を示す異常番号とし、書込セクションは先頭セクション番号となっている。
【０１４０】
ステップブロック１５００ｂは、図１５により後述する最新セクションの検索ステップであり、ここではステップ１３０３により記憶された最新ブロックの前の分割ブロックの中の最新セクションの検索が行われる。ステップ１３０６ｃは、検索された番号情報をＲＡＭメモリ１１２Ａの中のステータスメモリ１１２ａに格納してからステップ１３０７へ移行するステップであり、検索番号情報として、読出ブロック番号はステップ１３０３で格納された最新ブロック番号の前の番号とし、読出セクション番号はステップブロック１５００ｂにより検索された最新セクション番号の現在番号であり、書込セクションはステップ１３０３により記憶された最新ブロック番号の先頭セクションとなっている。
【０１４１】
ステップ１３０７は、第一定数領域Ｓ１０・第二定数領域Ｓ２０・第三定数領域Ｓ３００の全ての検索が完了したかどうかを判定し、未完了であればＮｏの判定を行ってステップブロック１５００ａへ復帰移行し、完了であればＹｅｓの判定を行って検索正常終了ステップ１３１０へ移行する判定ステップである。
【０１４２】
図１４は、この発明の実施の形態１による電子制御装置に於ける不揮発データメモリの最新ブロック検索処理のフローチャートである。図１４に於いて、ステップ１４０１は、最新ブロック検索の開始ステップである。続くステップ１４０２は、全ての分割ブロック１１３ａ〜１１３ｄのチェック領域Ｓ０のブランクチェックを行ってからステップ１４０３ａへ移行するステップである。
【０１４３】
ステップ１４０３ａは、ステップ１４０２によるブランクチェックの結果として、全ての分割ブロック１１３ａ〜１１３ｄがブランクブロックであればＹｅｓとなってステップ１４０４へ移行し、どれかの分割ブロックがブランクブロックではないときにはＮｏの判定を行ってステップ１４０３ｂへ移行する判定ステップである。
【０１４４】
ステップ１４０４は、全ブロックがブランクブロックであることをステータスメモリ１１２ａにより記憶するステップである。ステップ１４０３ｂは、ステップ１４０２によるブランクチェックの結果として、全ての分割ブロック１１３ａ〜１１３ｄがブランクブロックではないときにはＹｅｓとなってステップ１４０６へ移行し、どれかの分割ブロックがブランクブロックであればＮｏの判定を行ってステップ１４０５へ移行する判定ステップである。
【０１４５】
ステップ１４０５は、ブランクブロックの一つ前のブランクではない分割ブロックの番号を最新ブロック番号としてステータスメモリ１１２ａにより記憶するステップである。ステップ１４０６は、各分割ブロックのチェック領域Ｓ０のうち、所定の確定定数と一括消去回数が最大となっている分割ブロックが一つだけ存在するかどうかを判定し、存在すればＹｅｓの判定を行ってステップ１４０７へ移行し、存在しなければＮｏの判定を行ってステップ１４０８へ移行する判定ステップである。
【０１４６】
ステップ１４０７は、所定の確定定数と最大の一括消去回数であった分割ブロックの番号を最新ブロック番号としてステータスメモリ１１２ａにより記憶するステップである。ステップ１４０８は、全ての分割ブロックにデータが有って、最新ブロック番号が特定できない異常状態であることをステータスメモリ１１２ａにより記憶するステップである。ステップ１４０４又はステップ１４０５又はステップ１４０７又はステップ１４０８からは、いずれも正常終了ステップ１４１０へ移行するように構成されている。
【０１４７】
図１５は、この発明の実施の形態１による電子制御装置に於ける不揮発データメモリの最新セクション検索処理のフローチャートである。図１５に於いて、ステップ１５０１は、最新セクション検索の開始ステップである。続くステップ１５０２は、対象となっている分割ブロック内のデータ格納領域Ｓ１０・Ｓ２０・Ｓ３００のどれかに関するセクション数Ｎ１０・Ｎ２０・Ｎ３００を最大セクション番号としてワーキングメモリに記憶して、ステップ１５０３へ移行するステップである。ステップ１５０３は、記憶した最大セクション番号のセクションに関するブランクチェックを行い、空セクションや無効セクションではない有効セクションであるかどうかをチェックしてからステップ１５０４へ移行するステップである。
【０１４８】
ステップ１５０４は、ステップ１５０３によりチェックされたセクションが有効セクションであるか否かによって、有効セクションであればＹｅｓの判定を行ってステップ１５０５へ移行し、有効セクションでなければＮｏの判定を行ってステップ１５０６へ移行する判定ステップである。ステップ１５０５は、ステップ１５０３により記憶されたセクション番号を有効セクション番号としてステータスメモリ１１２ａにより記憶してから終了ステップ１５１０へ移行するステップである。
【０１４９】
ステップ１５０６は、ステップ１５０３により記憶されたセクション番号が先頭セクション番号を超過しているかどうかを判定し、先頭セクション番号を超過しておればＹｅｓの判定を行ってステップ１５０７へ移行し、先頭セクション番号に合致すればＮｏの判定を行ってステップ１５０８へ移行する判定ステップである。ステップ１５０７は、ワーキングメモリの値を、現在記憶しているセクション番号から「１」を減じた値に更新してからステップ１５０３へ復帰移行し、ステップ１５０３では減少したセクション番号のセクションに関するブランクチェックを実施するように構成されている。
【０１５０】
ステップ１５０３・ステップ１５０４・ステップ１５０６・ステップ１５０７・ステップ１５０３を循環実行する過程で、有効セクションが検出されればステップ１５０４がＹｅｓの判定を行って循環動作が停止し、ステップ１５０４がＹｅｓの判定を行う前にステップ１５０６がＮｏの判定を行えばステップ１５０８へ移行して循環動作が停止する。ステップ１５０８は、有効セクションが存在しないことをステータスメモリ１１２ａにより記憶してから終了ステップ１５１０へ移行するステップである。
【０１５１】
以上説明した図７〜図１５の制御フローに於ける動作開始ステップは、サブルーチンブログラムの開始ステップであって、これ等の制御フローが正常終了した場合にはサブルーチンコールが行われた元の制御ステップの次のステップに移行する。しかし、異常終了であった場合には、これらの制御フローの上位に位置する図示しない制御フローによって異常処理が実行される。例えば、全ての分割ブロック１１３ａ〜１１３ｄがブランクブロックでは無かった場合には、所定の異常コード番号の異常履歴情報（累積異常発生回数）が第三定数１０８ａの中の特定の個別データとして保存されてから、分割ブロックの初期化処理が行われるように構成されている。
【０１５２】
その他、以上で説明した個々の制御フローの上位に位置する図示しない制御フローについて補足すると以下のとおりである。先ず、ＲＡＭメモリ１１２Ａのイメージメモリ領域１０８から不揮発データメモリ１１３Ａへのデータの転送は次のように制御されている。
（一）全分割ブロック１１３ａ〜１１３ｄの初期化と第１ブロック１１３ａの書込み開始のときには、第一ツール１０５Ａからの第一定数１０８ａのみならず、イメージメモリ領域１０８に格納された第二定数１０８ｂと第三定数１０８ｃの初期値も転送可能であり、このときには第二ツール１０６Ａは接続されていない。
（二）第二ツール１０６Ａから第二定数１０８ｂを転送するときは、第二定数１０８ｂのみが転送され、イメージメモリ領域１０８内の第一定数１０８ａ・第三定数１０８ｃは、不揮発データメモリ１１３Ａへは転送されることは無い。
（三）第一・第二ツール１０５Ａ・１０６Ａが接続されていないときには、イメージメモリ領域１０８内の第一定数１０８ａ・第二定数１０８ｂがデータメモリ１１３Ａへ転送されることはなく、第三定数１０８ｃのみが転送可能である。
【０１５３】
次に、不揮発データメモリ１１３ＡからＲＡＭメモリ１１２Ａのイメージメモリ領域１０８へのデータの転送は次のように制御されている。
（一）外部電源１０１Ａの「異常電圧低下」、又は「電源線の断線」が電源投入時点で検出されるか、或いは制御電源１０９Ａが補助電圧Ｖｕｐ出力も持たない形式である場合には、電源リレー１０２が閉路してマイクロプロセッサ１１０Ａが動作を開始した時点において、不揮発データメモリ１１３Ａの第一定数領域Ｓ１０・第二定数領域Ｓ２０・第三定数領域Ｓ３００からＲＡＭメモリ１１２Ａのイメージメモリ領域１０８へ第一定数１０８ａ・第二定数１０８ｂ・第三定数１０８ｃの最新データが転送される。
（二）外部電源１０１Ａの異常電圧低下が発生せず、電源線の断線も検出されず、制御電源１０９Ａが正常な補助電圧Ｖｕｐを発生している場合でも、イメージメモリ領域１０８内のデータに符号誤りが検出された場合には、電源投入直後又は運転中において不揮発データメモリ１１３Ａからイメージメモリ領域１０８に対して、対象となるデータ格納領域内の最新データが転送される。
（三）電源投入直後に不揮発データメモリ１１３Ａの状態チェックを行って、電源遮断前にステータスメモリ１１２ａに格納されていたステータス情報と、新たにチェックされたステータス情報とが合致しているかどうかを点検し、不一致であればイメージメモリ領域１０８内のデータにも誤りが発生していると判断して、電源投入直後に不揮発データメモリ１１３Ａからイメージメモリ領域１０８に対して最新データが転送される。
【０１５４】
以上の説明では、電子制御装置１００Ａは、例えばエンジン制御装置などの車載電子制御装置であるとして説明したが、その他に一般市販される自動化機器における専用制御装置として適用することも可能である。その場合、自動化機器の製造メーカが書込みするべき第二定数について、その内容が電子制御装置のメーカに通知され、電子制御装置のメーカ側において第一・第二定数をまとめて第一定数領域Ｓ１０に格納し、第二定数領域Ｓ２０を省略することも可能である。
【０１５５】
又、外部電源１０１Ａは、バッテリではなく、一般の商用交流電源が使用され、電源回路１０９Ａは、供給された交流電圧から制御電圧Ｖｃｃを生成し、保持電圧Ｖｕｐは内蔵バッテリから得ることも可能である。或いは、補助電源となる外部バッテリや内臓バッテリを持たず、ＲＡＭメモリ１１２Ａのイメージメモリ領域１０８に格納されたデータは不揮発データメモリ１１３Ａによって停電記憶され、運転開始時には必ず不揮発データメモリ１１３Ａからイメージメモリ領域１０８へ転送復帰するようにしてもよい。
【０１５６】
（３）実施の形態１の要点及び特徴
［請求項１対応］
以上の説明で明らかなとおり、この発明の実施の形態１による電子制御装置は、入力信号回路１０３と出力信号回路１０４とが接続されるマイクロプロセッサ１１０Ａと、当該マイクロプロセッサと協働する不揮発プログラムメモリ１１１Ａと揮発性のＲＡＭメモリ１１２Ａと不揮発データメモリ１１３Ａとを備え、前記前記不揮発プログラムメモリ１１１Ａに書込みされた入出力制御プログラム１０７Ａと、前記不揮発データメモリ１１３Ａに格納された制御定数の値と、前記入力信号回路１０３の信号状態に応動して前記出力信号回路１０４に制御出力信号を送出する電子制御装置１００Ａであって、
前記不揮発データメモリ１１３Ａは、ブロック単位で個別に一括消去が可能な複数の分割ブロック１１３ａ〜１１３ｄを有する不揮発性のメモリによって構成されている。
前記各分割ブロック１１３ａ〜１１３ｄは、更に、書込み頻度又は書込み時期が異なる複数のデータ格納領域Ｓ１０・Ｓ２０・Ｓ３００に仕分けされている。
前記各データ格納領域Ｓ１０・Ｓ２０・Ｓ３００は、更に、読出/書込単位となる複数のセクションＳ１１・Ｓ１２、Ｓ２１〜Ｓ２４、Ｓ３０１〜Ｓ３２０によって構成され、当該セクションには複数の個別データが所定順序で書込まれ、一つのセクションのデータ容量Ｃ１０・Ｃ２０・Ｃ３００は、書込みされる個別データの個数に対応したバイト数となっている。
前記複数のセクションＳ１１・Ｓ１２、Ｓ２１〜Ｓ２４、Ｓ３０１〜Ｓ３２０には、対象となる分割ブロックの一括消去を行った後に順次新たなデータがセクション単位で格納され、当該対象分割ブロックの中のどれかのデータ格納領域が満杯となってデータが書込まれていない空 セクションが無くなったときには、予め一括消去された他の分割ブロックの該当データ格納領域の先頭セクションに新たなデータが書込まれ、元の分割ブロックの中の他のデータ格納領域に書込まれていた最新のデータは、新たな分割ブロックの該当データ格納領域の先頭セクションに転送格納される。
元の分割ブロック内のデータは少なくとも前記新たな分割ブロックへの最新データの転送書込みが完了した後に一括消去されるものであると共に、前記データ格納領域Ｓ１０・Ｓ２０・Ｓ３００内のセクション数Ｎ１０・Ｎ２０・Ｎ３００は書込み頻度の多いものほど多くのセクションが割り当てられている。
【０１５７】
［請求項２対応］
前記分割ブロック１１３ａ〜１１３ｄの中で、セクション数Ｎ１０・Ｎ２０・Ｎ３００とデータ容量Ｃ１０・Ｃ２０・Ｃ３００の積が最も大きい主たるデータ格納領域の合計データ容量Ａと、その他の従となるデータ格納領域全体のセクション数とデータ容量の積である合計データ容量Ｂとの比率Ｂ／（Ａ＋Ｂ）は、前記分割ブロックの個数Ｎの逆数よりも小さい値となっている。
以上のとおり、本願の請求項２の発明に関連して、主たるデータ格納領域の合計データ容量とその他の従となるデータ格納領域の合計データ容量との比率は分割ブロックの個数の逆数に関連して制限されている。
従って、主たるデータ格納領域が満杯になって次の分割ブロックに移行するときに、他のデータ格納領域の最新データを転送移動させる必要はあるが、他のデータ格納領域のために専用の分割ブロックを備えるよりは、一つの分割ブロックに対する一括消去回数を削減することができる特徴がある。
【０１５８】
［請求項３対応］
前記不揮発データメモリ１１３Ａの各分割ブロック１１３ａ〜１１３ｄ内に設けられた前記データ格納領域は、第一・第二・第三定数領域Ｓ１０・Ｓ２０・Ｓ３００又は少なくとも第一・第三定数領域Ｓ１０・Ｓ３００の複数領域に仕分けされている。
前記第一定数領域Ｓ１０は、前記電子制御装置１００Ａの製造メーカが当該電子制御装置の出荷調整を行う時点において、出荷調整設備として準備された第一ツール１０５Ａから転送書込みされる第一定数１０８ａの格納領域である。
当該第一定数１０８ａは、前記電子制御装置１００Ａ自体の機種区分に対応した制御定数又は前記入出力制御プログラム１０７Ａの一部の選択番号情報、或いは当該電子制御装置内部の部品特性のバラツキ変動を補正するための校正定数、当該電子制御装置の製造番号の少なくとも一つを包含している。
前記第二定数領域Ｓ２０は、前記電子制御装置１００Ａが組込まれる合体製品又は合体設備の製造メーカ又は設備管理部門が、当該合体製品・設備の試運転調整を行う時点において、検査調整設備として準備された第二ツール１０６Ａから転送書込みされる第二定数１０８ｂの格納領域である。
当該第二定数１０８ｂは、前記電子制御装置１００Ａが組込まれる合体製品・設備の型名・機種に対応した制御定数又は前記入出力制御プログラム１０７Ａの一部の選択番号情報、或いは前記電子制御装置１００Ａに接続された入出力部品の部品特性のバラツキ変動を補正するための校正定数の少なくとも一つを包含している。
前記第三定数領域Ｓ３００は、前記電子制御装置１００Ａの実働運転中に於いて、前記ＲＡＭメモリ１１２Ａに格納された第三定数１０８ｃが、少なくとも前記電子制御装置１００Ａの運転停止の直後又は運転中の適時に転送書込みされる第三定数の格納領域である。
当該第三定数１０８ｃは、前記電子制御装置１００Ａの内蔵部品又は外部接続部品の特性変動情報、或いは改善された運転特性を得るための学習情報、或いは異常発生履歴情報の少なくとも一つを包含している。
以上のとおり、本願の請求項３の発明に関連して、不揮発データメモリの各分割ブロック内に設けられたデータ格納領域は、第一・第二・第三定数領域又は少なくとも第一・第三定数領域の複数領域に仕分けされ、各定数領域のセクション数と当該セクションのデータ容量であるバイト数が予め決定されている。
従って、各定数領域空きセクションに対して、異なる時と場所においてデータの書込みを行うのが容易となると共に、各定数領域の書込み頻度が容易に推定され、各定数領域のセクション数とバイト数の決定が容易となる特徴がある。
【０１５９】
［請求項４対応］
前記不揮発データメモリ１１３Ａ；１１３Ｂの各分割ブロック内に設けられた前記データ格納領域は、前記第一・第二・第三定数領域Ｓ１０・Ｓ２０・Ｓ３００又は第一・第三定数領域Ｓ１０・Ｓ３００に加えてチェック領域Ｓ０となる一つのセクションＳ１が付加されている。
当該チェック領域Ｓ０内の一つのセクションＳ１の前半領域には、前記分割ブロック１１３ａ〜１１３ｄの一括消去が行われてから、前記データ格納領域Ｓ１０・Ｓ２０・Ｓ３００の全てのデータ格納領域内で少なくとも一つのセクションに対して有効なデータが書込まれた時点で所定の確定定数が書込まれると共に、どれか一つのデータ格納領域であっても当該データ格納領域内のどのセクションにも有効なデータが書込まれていない場合には前記確定定数が書込まれていないブランクブロックの状態となるものである。
以上のとおり、本願の請求項４の発明に関連して、不揮発データメモリの各分割ブロック内にはチェック領域が設けられ、当該チェック領域には分割ブロック内の全てのデータ格納領域に少なくとも一つの書込済セクションがあるかどうかの判別情報が格納されるようになっている。
従って、分割ブロックの移行過程では、次ブロックの全データ格納領域に最新データを書込んでから、当該次ブロックのチェック領域の書込みが行われるので、チェック領域がブランクでない場合は、全データ格納領域に最新データが書込まれたことが確認されると共に、多数の分割ブロックを有する場合にはチェック領域の内容を監視することによって容易に最新ブロックの検索が行えるようにすることができる特徴がある。
【０１６０】
［請求項５対応］
前記チェック領域Ｓ０内の一つのセクションＳ１の後半領域には、前記確定定数が書込まれた時点で当該分割ブロックに対する一括消去回数データが書込まれ、分割ブロックの移行が行われときには移行後の分割ブロックの一括消去回数は移行直前  の現在の分割ブロックのチェック領域に書込まれていた一括消去回数に１を加算した値となっている。
以上のとおり、本願の請求項５の発明に関連して、不揮発データメモリの各分割ブロック内のチェック領域には一括消去回数データが書込まれるようになっている。
従って、不揮発データメモリの寿命管理が容易に行えると共に、複数の分割ブロックの中では一括消去回数が大きい方の分割ブロックが最新の分割ブロックであると判別することができる特徴がある。
【０１６１】
［請求項６対応］
前記チェック領域Ｓ０内には前記確定定数と一括消去回数データが書込まれる一つのセクションＳ１に加えて、少なくとも１個の予備セクションＳ２が付加されていて、分割ブロックの一括消去を行ったときに前記チェック領域Ｓ０内の一つのセクションＳ１の消去が行えなかった場合には、再度の一括消去を行ったうえでなお消去できなかったセクションに替わって前記予備セクションＳ2が適用されるものである。
以上のとおり、本願の請求項６の発明に関連して、不揮発データメモリの各分割ブロック内のチェック領域には一つのセクションが消去不良となった場合の予備セクションが設けられている。
従って、一つのセクションが不良となったことによって一つの分割ブロック全体が使用
不可能にならないようにすることができる特徴がある。      
【０１６２】
［請求項７対応］
前記不揮発データメモリ１１３Ａは、少なくとも３個以上の分割ブロック１１３ａ〜１１３ｄを備え、現在書込みが行われている分割ブロック１１３ａの中のどこかのデータ格納領域S１０・Ｓ２０・Ｓ３００（例えば第三定数領域Ｓ３００）に於いて空セクションが無くなった場合には、まず次次順位の分割ブロック１１３ｃの一括消去を行い、続いて確認処理として次順位の分割ブロック１１３ｂの一括消去を行い、当該次順位の分割ブロック１１３ｂの該当データ格納領域（第三定数領域Ｓ３００）の先頭セクションに新たなデータが書込まれ、元の分割ブロック１１３ａの中の他のデータ格納領域（第一定数領域Ｓ１０と第二定数領域Ｓ２０）に書込まれていた最新のデータは、前記次順位の分割ブロック１１３ｂの該当データ格納領域（第一定数領域Ｓ１０と第二定数領域Ｓ２０）の先頭セクションに転送格納され、前記分割ブロック１１３ａ〜１１３ｄの移行に当たっては、一括消去済であるブランクブロックの前にあるブランクブロックの分割ブロックへ移行するようになっている。
以上のとおり、本願の請求項７の発明に関連して、不揮発データメモリは３個以上の分割ブロックを備え、分割ブロック間の移行時には次次順位の分割ブロックを先行して一括消去しておくようになっている。
従って、例えば次順位の分割ブロックに対するデータの書込み中に停電が発生し、再度電源がＯＮされた状態に於いては、先に一括消去されてブランクブロックとなっている次々順位の分割ブロックを検索し、その前にある分割ブロックに対してデータの書込みを行えばよく、常に一個のブランクブロックを確保しておくことによって書込み対象となる分割ブロックの検索が容易となる特徴がある。
又、一括消去が未完了となった分割ブロックが次順位の分割ブロックとなった場合には確認処理としての一括消去が実施されてからデータの書込みが開始されるので、無効なセクションの介在を除去することができる特徴がある。
尚、一括消去済の分割ブロックを再度一括消去した場合には寿命に影響がないので、チェック領域に書込まれる一括消去回数データは当該分割ブロックにデータの書込みが行われ、チェック領域に対して確定定数が書込まれた時点で１回の一括消去として計上されるようになっている。
【０１６３】
［請求項８対応］
前記不揮発プログラムメモリ１１１Ａには、前記入出力制御プログラム１０７Ａと、当該入出力制御プログラムに対して一定不変の固定定数を包含すると共に、前記不揮発データメモリ１１３Ａに格納される前記第一定数１０８ａ又は第二定数１０８ｂ又は第三定数１０８ｃに関連する参考定数１０７ａが格納されている。
前記参考定数１０７ａは、前記第一・第二・第三定数１０８ａ・１０８ｂ・１０８ｃの中の変動情報の一部、又は運転特性の学習情報の一部に関する許容変動範囲である上下限値データと、前記第一・第二・第三定数の中の未確定定数に対して適用される初期設定データであり、当該初期値設定データは、少なくとも前記電子制御装置１００Ａの初回運転開始前に前記分割ブロック１１３ａ〜１１３ｄの一つの中の第一・第二・第三定数領域Ｓ１０・Ｓ２０・Ｓ３００の先頭セクションに転送格納されるようになっている。
以上のとおり、本願の請求項８の発明に関連して、不揮発プログラムメモリには固定定数と参考定数とが格納されている。
従って、一定不変の固定定数が不揮発データメモリに格納されないので、不揮発データメモリの容量を削減することができると共に、電子制御装置の運転中に逐次定数が決定される特性変動情報や運転特性の学習情報については予め初期設定値を不揮発データメモリに格納して、次善の定数によって運転開始することができる特徴がある。
又、電子制御装置の運転中に逐次定数が決定される特性変動情報や運転特性の学習情報について、決定された定数が所定の上下限値以内であるかどうかを判定したり、ＲＡＭメモリに格納されるこれらの定数にエラーが発生していないかどうかを判定することができる特徴がある。
更に、第一・第二の定数の一部が未確定である場合に仮の定数として参考定数の中の初期値データを適用することができる特徴がある。
【０１６４】
［請求項９対応］
前記マイクロプロセッサ１１０Ａは、前記不揮発データメモリ１１３Ａに対する一括消去指令信号と、ブランクチェック指令信号を発生し、当該ブランクチェック指令を受信した前記不揮発データメモリ１１３Ａは、少なくとも前記セクション単位で消去済であるか否かの判定情報を返信する。
前記マイクロプロセッサ１１０Ａは、一括消去を行うことによって、消去済となったセクションは空セクションであると判定する。
前記マイクロプロセッサ１１０Ａは、一括消去を行っても消去できなかったセクションがあるか、又は前記不揮発データメモリ１１３Ａに対するデータの書込み中に停電が発生したことが原因となって、一つのセクションの中でデータの書込み部分と未書込み部分が混在していることが検出された場合には、当該セクションは無効セクションであると判定すると共に、セクション内にデータが存在して無効セクションではないセクションを有効セクションであると判定する。
前記マイクロプロセッサ１１０Ａは、前記不揮発データメモリ１１３Ａの読出しを行うときには、各データ格納領域の最終セクションから先頭セクションにかけて前記有効セクションを検索し、初めて検出された有効セクションに格納されたデータを読出する。
前記マイクロプロセッサ１１０Ａは、前記不揮発データメモリ１１３Ａの書込みを行うときには、各データ格納領域の最終セクションから先頭セクションにかけて前記有効セクションを検索し、初めて検出された有効セクションから逆方向に検索して初めて検出された空セクションにデータを書込みする。
以上のとおり、本願の請求項９の発明に関連して、マイクロプロセッサは不揮発データメモリに関して空セクション、無効セクション、有効セクションを判別し、各データ格納領域の最終セクションから順次検索して読出しセクションと書込みセクションを確定するように構成されている。
従って、無効セクションが存在しても、直ちに分割ブロックの更新や一括消去が行われず、空セクションを残さないようにしながら次の空セクションにデータが書込まれるので、不揮発データメモリの一括消去回数を削減することができる特徴がある。
又、不揮発データメモリの読出しにおいては無効セクションは除外して最新の有効セクションから読出しを行うことができる特徴がある。
【０１６５】
［請求項１０対応］
前記マイクロプロセッサ１１０Ａは、前記不揮発データメモリ１１３Ａの書込みを行うときには、各データ格納領域の最終セクションから先頭セクションにかけて前記有効セクションを検索し、初めて検出された有効セクションから逆方向に検索して初めて検出された空セクションにデータを書込みすると共に、当該空セクションに正しくデータの書込みが行えなかった場合には更に逆方向に検索して新たに検出された空セクションにデータを書込みする。
以上のとおり、本願の請求項１０の発明に関連して、不揮発データメモリの各セクションに対する書込み失敗が発生したときには、次のセクションに書込むように構成されている。
従って、書込みセクションの一部にセルの異常があった場合でも、次のセクションに対して正しいデータを書込むことができる特徴がある。
【０１６６】
［請求項１１対応］
前記ＲＡＭメモリ１１２Ａは、前記不揮発データメモリ１１３Ａの消去・書込状態に対応したデータが書込まれるステータスメモリ１１２ａを包含している。
前記ステータスメモリ１１２ａには、少なくとも現在時点で書込が進行している最新の分割ブロック１１３ａ〜１１３ｄの識別番号情報と、当該最新分割ブロック内の各データ格納領域Ｓ１０・Ｓ２０・Ｓ３００に於いて最新データが書込まれたセクション番号情報とが格納されている。
以上のとおり、本願の請求項１１の発明に関連して、ＲＡＭメモリは不揮発データメモリの消去・書込状態に対応したデータが書込まれるステータスメモリを包含している。
従って、最新データが格納されている読出しセクション番号を検索したり、最新データを書込むための書込みセクション番号を検索するのは電源投入直後の一回だけ行えばよいので処理速度が高速となる特徴がある。
【０１６７】
［請求項１２対応］
前記マイクロプロセッサ１１０Ａ、ＲＡＭメモリ１１２Ａ、不揮発プログラムメモリ１１１Ａ、不揮発データメモリ１１３Ａは、外部電源１０１Ａから運転用電源スイッチが閉路されたことによって付勢される電源リレー１０２の出力接点と、駆動電源端子１０２ａとを介して給電される。
前記電源リレー１０２は、前記電源スイッチが開路されてから所定の遅延給電時間をおいて消勢されるものであると共に、前記ＲＡＭメモリ１１２Ａは前記駆動電源端子１０２ａに給電されていない期間においても補助電源によって給電されるか、又は前記駆動電源端子１０２ａに給電されていない期間においては当該ＲＡＭメモリに対する給電も遮断される。
前記補助電源は補助電源端子１０１ａに直接接続された外部バッテリ１０１Ａであるか、又は内蔵バッテリである。
前記電源リレー１０２が消勢されている期間において、前記ＲＡＭメモリ１１２Ａに対する給電が停止される場合、又は給電が持続される場合であっても前記補助電源の電圧が異常低下するか、又は補助電源回路が遮断されて、前記ＲＡＭメモリ１１２Ａの記憶内容が消失したとき、又は前記ステータスメモリ１１２ａの内容が異常であるときに、前記電源リレー１０２が付勢されて前記マイクロプロセッサ１１０Ａが「運転開始」した時点、又は前記マイクロプロセッサ１１０Ａの「実働運転中」に前記不揮発データメモリ１１３Ａの中の少なくとも第三データ格納領域Ｓ３００に書込まれた最新セクションの内容が前記ＲＡＭメモリ１１２Ａのイメージメモリ領域１０８に転送され、前記マイクロプロセッサ１１０Ａは前記イメージメモリ領域１０８に書込まれた第三定数１０８ｃに基づいて入出力の制御を行なうように構成されている。
以上のとおり、本願の請求項１２の発明に関連して、ＲＡＭメモリの記憶状態を維持するための補助電源の有無に関わらず、ＲＡＭメモリの内容が異常であるとき、又はＲＡＭメモリの内容が疑わしいときには不揮発データメモリに格納された第三定数を読出し使用することができる特徴がある。
又、運転中にＲＡＭメモリに更新書込みされた学習データや異常発生履歴情報は、電源リレーの遅延給電期間に不揮発データメモリに転送退避することができる特徴がある。
【０１６８】
実施の形態２．
（１）構成の詳細な説明
以下、この発明の実施の形態２による電子制御装置の構成を、その全体構成を示すブロック図である図１６と、不揮発データメモリのセクション構成図である図１７に基づいて詳細に説明する。尚、各図に於いて同一符号は同一又は相当部分を示している。
【０１６９】
先ず、図１６に於いて、電子制御装置１００Ｂは、マイクロプロセッサ１１０Ｂと不揮発プログラムメモリ１１１Ｂと揮発性のＲＡＭメモリ１１２Ｂとフラッシュメモリである不揮発データメモリ１１３Ｂを主体として構成され、実態としては例えば工場設備に使用される特殊なプログラマブルコントローラを構成していて、一般商用交流電源である外部電源１０１Ｂから電源リレー１０２を介して給電されている。尚、電源リレー１０２は、図示しない電源スイッチが投入されると即時に閉路し、電源スイッチが遮断されると所定の遅延給電期間をおいてから開路するように構成されている。
【０１７０】
入力信号回路１０３は、図示しないコネクタを介して接続された開閉センサ或いはアナログセンサであり、当該入力信号回路１０３は、図示しない入力インタフェース回路と入力信号バス１３０を介してマイクロプロセッサ１１０Ｂに接続されている。出力信号回路１０４は、図示しないコネクタを介して接続された駆動機器或いは表示器等の電気負荷であり、当該出力信号回路１０４は図示しない出力インタフェース回路と出力信号バス１４０を介してマイクロプロセッサ１１０Ｂに接続されている。
【０１７１】
第一ツール１０５Ｂは、電子制御装置１００Ｂの出荷調整・検査或いは保守点検時に、シリアル信号バス１５０を介してマイクロプロセッサ１１０Ｂに対して接続されるものであり、当該第一ツールは図示しないキーボード、表示器を備えた携帯機器となっている。第二ツール１０６Ｂは、第一ツール１０５Ｂに代わって電子制御装置１００Ｂにシリアル接続され、当該第二ツール１０６Ｂは、電子制御装置１００Ｂが組みまれる設備機器等の合体製品の製造メーカが当該合体製品の出荷調整を行う時点において出荷調整設備として準備されものであるか、或いは電子制御装置１００Ｂを使用するユ−ザの設備管理部門が、設備の据付調整時点で使用ものであって、図示しないキーボード、表示器を備えた携帯機器となっている。尚、設備管理部門は合体製品の製造メーカとは同じ範疇のものであり、以下の説明では合体製品の製造メーカとして説明する。
【０１７２】
第二ツール１０６Ｂには電子制御装置１００Ｂにて使用される入出力制御制御プログラム１０７Bが格納されており、この入出力制御プログラム１０７Ｂは例えばシーケンス制御に適したユーザ言語が使用されている。マイクロプロセッサ１１０Ｂは、マスクＲＯＭメモリ１１１ｂによるシステムプログラムによって上記ユーザ言語でプログラムされた入出力制御プログラム１０７Ｂをマイクロプロセッサ１１０Ｂに適した機械言語に置き直して入出力制御を行なうように構成されている。
【０１７３】
このシステムプログラムは更に、第一ツール１０５B・第二ツール１０６Ｂとの交信制御プログラムを包含しており、マイクロプロセッサ１１０Ｂはこのシステムプログラムによって第一ツール１０５Ｂに格納されている第一定数１０８ａを不揮発データメモリ１１３Ｂの第一定数領域Ｓ１０へ転送する。マイクロプロセッサ１１０Ｂはまた、マスクＲＯＭメモリ１１１ｂによるシステムプログラムによって第二ツール１０６Ｂに格納されている入出力制御プログラム１０７Ｂを不揮発プログラムメモリ１１１Ｂへ転送すると共に、第二ツール１０６Ｂに格納されている第二定数１０８ｂを不揮発データメモリ１１３Ｂの第二定数領域Ｓ２０へ転送する。
【０１７４】
尚、入出力制御制御プログラム１０７Ｂは、当該入出力制御プログラムに対して一定不変の固定定数を包含すると共に、不揮発データメモリ１１３Ｂに格納される後述の第一・第二・第三定数１０８ａ・１０８ｂ・１０８ｃに関連する参考定数１０７ａとを包含している。この参考定数１０７ａは、第一・第二・第三定数１０８ａ・１０８ｂ・１０８ｃの中の変動情報の一部、又は運転特性の学習情報の一部に関する許容変動範囲である上下限値データと、前記第一・第二・第三定数の中の未確定定数に対して適用される初期設定データであり、当該初期値設定データは少なくとも前記電子制御装置１００Ｂの初回運転開始前に後述の分割ブロック１１３ｅ・１１３ｆの一つの中の第一・第二・第三定数領域Ｓ１０・Ｓ２０・Ｓ３００の先頭セクションに転送格納されるように構成されている。
【０１７５】
第一ツール１０５Ｂは、更に、不揮発データメモリ１１３Ａに転送される第一定数１０８ａを包含し、当該第一定数１０８ａは、前記電子制御装置１００Ａ自体の機種区分に対応した制御定数又は入出力制御プログラム１０７Ａの一部の選択番号情報、或いは当該電子制御装置内部の部品特性のバラツキ変動を補正するための校正定数、当該電子制御装置の製造番号などの制御装置固有情報となっている。
【０１７６】
尚、第一定数１０８ａを第一ツール１０５Ｂから不揮発データメモリ１１３Ｂへ転送するタイミングは、第一ツール１０５Ｂに設けられた転送用の操作キーを押した時点であるか、又は転送用の操作キーを押したときにはＲＡＭメモリ１１２Ｂへ転送され、電子制御装置１００Ｂに対する電源スイッチが開路されて、電源リレー１０２による遅延給電が行われているタイミングでＲＡＭメモリ１１２Ｂから不揮発データメモリ１１３Ｂへ転送されるように構成されている。
【０１７７】
第二ツール１０６Ｂは、不揮発データメモリ１１３Ｂに転送される第二定数１０８ｂを包含し、当該第二定数１０８ｂは、電子制御装置１００Ｂが組込まれる合体製品・設備の型名・機種に対応した制御定数、或いは前記電子制御装置１００Ｂに接続された入出力部品の部品特性のバラツキ変動を補正する校正定数などの合体製品固有情報となっている。第二定数１０８ｂの転送タイミングは、第二ツール１０６Ｂの転送用操作キーの操作時点又は電子制御装置１００Ｂの電源スイッチ遮断時点となっている。
【０１７８】
不揮発プログラムメモリ１１１Ｂに格納された入出力制御プログラム１０７Ｂによって運転動作を行うマイクロプロセッサ１１０Ｂは、電子制御装置１００Ｂの内蔵部品又は外部接続部品の特性変動情報、或いは改善された運転特性を得るための学習情報、或いは異常発生履歴情報等の第三定数１１２ａを生成してＲＡＭメモリ１１２Ｂに格納する。不揮発データメモリ１１３Ｂは、ブロック単位で一括消去が行われるフラッシュメモリであり、第１・第２の分割ブロック１１３ｅ・１１３ｆを備えている。
【０１７９】
次に、図１７には各分割ブロック内の構成が示されている。図１７に於いて、分割ブロック１１３ｅ・１１３ｆの夫々は、チェック領域Ｓ０と、データ格納領域となる第一・第二・第三定数領域Ｓ１０・Ｓ２０・Ｓ３００を備えている。チェック領域Ｓ０は、例えば１６バイトのデータ容量Ｃ０を持つセクションＳ１と、当該セクションＳ１が異常となった場合に代替使用される予備セクションＳ２によって構成されている。
【０１８０】
第一定数領域Ｓ１０は、例えば３２バイトのデータ容量Ｃ１０を持ち、セクション数Ｎ１０［＝４］であるセクションＳ１１〜Ｓ１４によって構成されていて、全体のデータ容量としては［Ｃ１０×Ｎ１０＝3２×４＝１２８バイト］となっている。第二定数領域Ｓ２０は、例えば９６バイトのデータ容量Ｃ２０を持ち、セクション数Ｎ２０［＝８］であるセクションＳ２１〜Ｓ２８によって構成されていて、全体のデータ容量としては［Ｃ２０×Ｎ２０＝９６×８＝７６８］バイトとなっている。
【０１８１】
第三定数領域Ｓ３００は、例えば３８４バイトのデータ容量Ｃ３００を持ち、セクション数Ｎ３００［＝４０］であるセクションＳ３０１〜Ｓ3４０によって構成されていて、全体のデータ容量としては［Ｃ３００×Ｎ３００＝３８４×４０＝１５３６０］バイトとなっている。
【０１８２】
各セクションは、書込／読出の最小単位となるものであり、各セクションには複数の個別データが所定順序で書込まれ、一つのセクションのデータ容量Ｃ１０・Ｃ２０・Ｃ３００の値は書込みされる個別データの個数に対応したバイト数となっている。尚、各セクションには複数の個別データに加えて符号誤り検出のためのサムデータ、或いは誤り訂正符号データが付加されている。
【０１８３】
又、この実施の形態２に於いては、分割ブロック１１３ｅ・１１３ｆの中で、セクション数Ｎ１０・Ｎ２０・Ｎ３００とデータ容量Ｃ１０・Ｃ２０・Ｃ３００の積が最も大きい主たるデータ格納領域Ｓ３００の合計データ容量Ａ［＝Ｎ３００×Ｃ３００＝４０×３８４＝１５３６０］と、その他の従となるデータ格納領域Ｓ０・Ｓ１０・Ｓ２０全体のセクション数とデータ容量の積である合計データ容量Ｂ［＝Ｎ０×Ｃ０＋Ｎ１０×Ｃ１０＋Ｎ２０×Ｃ２０＝１６×２＋3２×４＋９６×８＝９２８］との比率Ｂ／（Ａ＋Ｂ）［＝９２８／（１５３６０＋９２８）＝０．０５７］は前記分割ブロックの個数Ｎ［＝２］の逆数よりも小さい値となっている。
【０１８４】
図１６に戻り、消去／書込制御回路１１４は、マイクロプロセッサ１１０Ｂから各種の指令信号ＣＯＭｎを受けて不揮発データメモリ１１３Ｂを制御し、不揮発データメモリ１１３Ｂから得られた回答信号ＡＮＳｎをマイクロプロセッサ１１０Ｂに返信するように構成されている。指令信号ＣＯＭ１〜ＣＯＭ４の内容と回答信号ＡＮＳ１〜ＡＮＳ４の内容は図１の場合と同様である。
【０１８５】
ＲＡＭメモリ１１２Ｂは、イメージメモリ領域１０８を備え、このイメージメモリ１０８は第一ツール１０５Ｂから第一定数１０８ａを不揮発データメモリ１１３Ｂへ転送するときの中継メモリとして使用されたり、第二ツール１０６Ｂから第二定数１０８ｂを不揮発データメモリ１１３Ｂへ転送するときの中継メモリとして使用されたり、マイクロプロセッサ１１０Ｂの運転中に生成される第三定数１０８ｃが格納されるように構成されている。
【０１８６】
ＲＡＭメモリ１１２Ｂは、不揮発データメモリ１１３Ｂの消去・書込状態に対応したデータが書込まれるステータスメモリ１１２ｂを包含し、このステータスメモリ１１２ｂには、少なくとも現在時点で書込が進行している最新の分割ブロック１１３ｅ・１１３ｆの識別番号情報と、当該最新分割ブロック内の各データ格納領域Ｓ１０・Ｓ２０・Ｓ３００において最新データが書込まれたセクション番号情報とが格納されるように構成されている。
【０１８７】
電源回路１０９Ｂは、例えば商用交流電源である外部電源１０１Ｂから運転用電源スイッチが閉路されたことによって付勢される電源リレー１０２の出力接点と、駆動電源端子１０２ａとを介して給電されると共に、内蔵バッテリ１０９ｂからＲＡＭメモリ１１２Ｂに給電するように構成されている。電源回路１０９Ｂは、電源リレー１０２が付勢されているときには、例えばＤＣ５Ｖの安定化された制御電圧Ｖｃｃを発生して、マイクロプロセッサ１１０Ｂ、不揮発プログラムメモリ１１１Ｂ、ＲＡＭメモリ１１２Ｂ、不揮発データメモリ１１３Ｂに供給する。電源リレー１０２が付勢されていないときには、内蔵バッテリ１０９ｂがバックアップ電源としてＲＡＭメモリ１１２Ｂに給電する。
【０１８８】
電源リレー１０２が消勢されている期間に於いて補助電源となる内蔵バッテリ１０９ｂの電圧が異常低下するか、又は補助電源回路が断線して、ＲＡＭメモリ１１２Ｂの記憶内容が消失したとき、又はステータスメモリ１１２ｂの内容が異常であるときに、電源リレー１０２が付勢されてマイクロプロセッサ１１０Ｂが運転を開始したとき、又はマイクロプロセッサ１１０Ｂの運転中に不揮発データメモリ１１３Ｂの中の少なくとも第三データ格納領域Ｓ３００に書込まれた最新セクションの内容がＲＡＭメモリ１１２Ｂのイメージメモリ領域１０８に転送され、マイクロプロセッサ１１０Ｂはイメージメモリ領域１０８に書込まれた第三定数１０８ｃに基づいて入出力の制御を行なう。
【０１８９】
尚、実態としてはマイクロプロセッサ１１０Ｂが運転開始したときには、第三定数１０８ｃだけではなく、第一・第二定数１０８ａ・１０８ｂも不揮発データメモリ１１３ＢからＲＡＭメモリ１１２Ｂへ転送読出しして、マイクロプロセッサ１１０ＢはＲＡＭメモリ１１２Ｂのイメージメモリ領域１０８を参照しながら制御を行なうように構成されている。
【０１９０】
又、ステータスメモリ１１２ｂの異常としては、現在時点で書込が進行している最新の分割ブロック１１３ｅ・１１３ｆの識別番号情報が格納されていないか、又は当該最新分割ブロック内の各データ格納領域Ｓ１０・Ｓ２０・Ｓ３００に於いて最新データが書込まれたセクション番号情報が格納されていない状態であり、その他にＲＡＭメモリ１１２Ｂ全体としての符号誤りによってビット情報の混入・欠落が発生している場合も含まれる。
【０１９１】
（２）作用・動作の詳細な説明
次に、この発明の実施の形態２による電子制御装置の動作・作用について、実施の形態１との相違点を中心にして説明する。
【０１９２】
先ず、前述の図３で示された消去・書込処理に関連して、図１６・図１７に示す実施の形態２では分割ブロックが２個となっており一方の分割ブロックの第一定数領域Ｓ１０又は第二定数領域Ｓ２０又は第三定数領域Ｓ３００のどれかが満杯（空セクションが無い状態）になれば他方の分割ブロックへ移行し、移行直前において当該移行先の分割ブロックが一括消去されるように構成されている。
【０１９３】
従って、分割ブロックの一括消去中に停電状態が発生しても、他方の分割ブロックに最新データが格納されているので、貴重なデータを消失することはない。又、チェック領域Ｓ０の扱いは実施の形態１に於ける図１・図２の場合と同じであり、全てのデータ格納領域Ｓ１０・Ｓ２０・Ｓ３００に対するデータの書込みが完了してから確定定数と一括消去回数とが書込まれるように構成されている。
【０１９４】
次に、図４により示された検索・読出処理に関連して、最新の分割ブロックはチェック領域Ｓ０内の一括消去回数が大きい方が最新ブロックであり、この最新ブロックの中の最新セクションは図４の場合と同様に最終セクション側から順次検索して決定されるように構成されている。又、図５で示した異常処理は、実施の形態２に於ける図１６・図１７のものにおいても同様である。
【０１９５】
一方、前述の実施の形態１に於ける図６から図１５に至る制御フローに対応した実施の形態２に於ける制御プログラムは、マスクＲＯＭメモリ１１１ｂに格納されていて、分割ブロックの個数が少ないことに伴う最新ブロックの検索要領が上記のとおりに変更されている。特に、実施の形態１の場合と実施の形態２の場合とでは、図６の全体フローに関しては実行される順番が異なったものとなっている。
【０１９６】
図６のフローチャートは、異なる時期で実行される各種の処理を合併して、概括表現したものである。先ず、第一の処理としてはステップ６００ａからステップ６０５ａ・ステップブロック７００・ステップ６００ｃが実行されて、第一定数１０８ａが不揮発データメモリ１１３Ｂに転送され、この時点では第二・第三定数に対しては例えば架空の初期設定値としてデータ0の転送処理が行われる。
【０１９７】
続く第二の処理としては、ステップ６００ａからステップブロック６０２ｂ・ステップ６０３ｂ・ステップ６０５ｂ・ステップブロック７００・ステップ６００ｃが実行されて、入出力制御プログラム１０７Ｂの転送と、不揮発データメモリ１１３Ｂに対する第二定数１０８ｂの転送と、第二・第三定数に対する初期設定値の転送処理が行われる。
【０１９８】
同様に、第三の処理としては、ステップ６００ａ・ステップ６０５ｃ・ステップブロック７００・ステップ６００ｃが実行されて、不揮発データメモリ１１３Ｂに対する第三定数１０８ｃが転送されるが、第三定数１０８ｃに関してはステップ６０１・ステップ６０５ｃ・ステップ６０６・ステップ６０９・ステップ６０１を循環しながら多数の個別データが順次ＲＡＭメモリ１１２Ｂに拡充格納され、電源スイッチが遮断された直後に行程ブロック７００によって一括して不揮発データメモリ１１３Ｂへ転送されることになる。
【０１９９】
以上の説明では、ＲＡＭメモリ１１２Bは内蔵バッテリ１０９ｂでバックアップされているものとしたが、補助電源となる外部バッテリや内臓バッテリを持たず、ＲＡＭメモリ１１２Bのイメージメモリ領域１０８に格納されたデータは不揮発データメモリ１１３Ｂによって停電記憶され、運転開始時には必ず不揮発データメモリ１１３Ｂからイメージメモリ領域１０８へ転送復帰するようにしてもよい。
【０２００】
又、第一定数１０８ａと第二定数１０８ｂとは、常に不揮発データメモリ１１３Ａ・１１３Bから直接読出しするようにしてイメージメモリ１０８のデータを使用しないようにすることもできる。
【０２０１】
以上の説明では、電源スイッチが遮断された直後にイメージメモリ領域１０８内の少なくとも第三定数１０８cが不揮発データメモリ１１３Ａ・１１３Ｂに転送されるものとしたが、電子制御装置１００Ａ・１００Ｂの実働運転中に於いて何らかの異常が発生した時点で第三定数１０８ｃを転送保存することも可能である。
【０２０２】
又、電子制御装置１００Ａ・１００Ｂは、補助電源となる外部バッテリ又は内臓バッテリを備えると共に、低消費電力の計時カウンタを備え、電源遮断されていた時間を含めて経過時間の計測を行い、所定時間間隔で第三定数１０８ｃを不揮発データメモリ１１３Ａ・１１３Ｂに転送退避することも可能である。この場合、転送退避は電源スイッチが遮断された後の遅延給電期間において実行され、前回の電源スイッチ遮断から今回の電源スイッチ遮断までの経過時間が短小である場合には、第三定数１０８ｃを不揮発データメモリ１１３Ａ・１１３Ｂに転送退避するのを省略するようにしてもよい。
【０２０３】
（３）実施形態２の要点及び特徴
［請求項１対応］
以上の説明で明らかなとおり、この発明の実施形態２による電子制御装置は、入力信号回路１０３と出力信号回路１０４とが接続されるマイクロプロセッサ１１０Ｂと、当該マイクロプロセッサと協働する不揮発プログラムメモリ１１１Ｂと揮発性のＲＡＭメモリ１１２Ｂと不揮発データメモリ１１３Ｂとを備え、前記前記不揮発プログラムメモリ１１１Ｂに書込みされた入出力制御プログラム１０７Ｂと、前記不揮発データメモリ１１３Ｂに格納された制御定数の値と、前記入力信号回路１０３の信号状態に応動して前記出力信号回路１０４に制御出力信号を送出する電子制御装置１００Ｂであって、
前記不揮発データメモリ１１３Ｂは、ブロック単位で個別に一括消去が可能な複数の分割ブロック１１３ｅ・１１３ｆを有する不揮発性のメモリによって構成されている。
前記各分割ブロック１１３ｅ・１１３ｆは更に、書込み頻度又は書込み時期が異なる複数のデータ格納領域Ｓ１０・Ｓ２０・Ｓ３００に仕分けされている。
前記各データ格納領域Ｓ１０・Ｓ２０・Ｓ３００は更に、読出/書込単位となる複数のセクションＳ１１〜Ｓ１４、Ｓ２１〜Ｓ２８、Ｓ３０１〜Ｓ3４０によって構成され、当該セクションには複数の個別データが所定順序で書込まれ、一つのセクションのデータ容量Ｃ１０・Ｃ２０・Ｃ３００は書込みされる個別データの個数に対応したバイト数となっている。
前記複数のセクションＳ１１〜Ｓ１４、Ｓ２１〜Ｓ２８、Ｓ３０１〜Ｓ３４０には、対象となる分割ブロックの一括消去を行った後に順次新たなデータがセクション単位で格納され、当該対象分割ブロックの中のどれかのデータ格納領域が満杯となってデータが書込まれていない空セクションが無くなったときには、予め一括消去された他の分割ブロックの該当データ格納領域の先頭セクションに新たなデータが書込まれ、
元の分割ブロックの中の他のデータ格納領域に書込まれていた最新のデータは、新たな分割ブロックの該当データ格納領域の先頭セクションに転送格納される。
元の分割ブロック内のデータは、少なくとも前記新たな分割ブロックへの最新データの転送書込みが完了した後に一括消去されるものであると共に、前記データ格納領域Ｓ１０・Ｓ２０・Ｓ３００内のセクション数Ｎ１０・Ｎ２０・Ｎ３００は、書込み頻度の多いものほど多くのセクションが割り当てられている。
【０２０４】
［請求項２対応］
前記分割ブロック１１３ｅ・１１３ｆの中で、セクション数Ｎ１０・Ｎ２０・Ｎ３００とデータ容量Ｃ１０・Ｃ２０・Ｃ３００の積が最も大きい主たるデータ格納領域の合計データ容量Ａと、その他の従となるデータ格納領域全体のセクション数とデータ容量の積である合計データ容量Ｂとの比率［Ｂ／（Ａ＋Ｂ）］は、前記分割ブロックの個数Ｎの逆数よりも小さい値となっている。
以上のとおり、本願の請求項２の発明に関連して、主たるデータ格納領域の合計データ容量とその他の従となるデータ格納領域の合計データ容量との比率は分割ブロックの個数の逆数に関連して制限されている。
従って、主たるデータ格納領域が満杯になって次の分割ブロックに移行するときに、他のデータ格納領域の最新データを転送移動させる必要はあるが、他のデータ格納領域のために専用の分割ブロックを備えるよりは、一つの分割ブロックに対する一括消去回数を削減することができる特徴がある。
【０２０５】
［請求項３対応］
前記不揮発データメモリ１１３Ｂの各分割ブロック１１３ｅ・１１３ｆ内に設けられた前記データ格納領域は、第一・第二・第三定数領域Ｓ１０・Ｓ２０・Ｓ３００又は少なくとも第一・第三定数領域Ｓ１０・Ｓ３００の複数領域に仕分けされている。
前記第一定数領域Ｓ１０は、前記電子制御装置１００Ｂの製造メーカが当該電子制御装置の出荷調整を行う時点に於いて、出荷調整設備として準備された第一ツール１０５Ｂから転送書込みされる第一定数１０８ａの格納領域である。
当該第一定数１０８ａは、前記電子制御装置１００Ｂ自体の機種区分に対応した制御定数、或いは当該電子制御装置内部の部品特性のバラツキ変動を補正するための校正定数、当該電子制御装置の製造番号の少なくとも一つを包含している。
前記第二定数領域Ｓ２０は、前記電子制御装置１００Ｂが組込まれる合体製品又は合体設備の製造メーカ又は設備管理部門が、当該合体製品・設備の試運転調整を行う時点に於いて、検査調整設備として準備された第二ツール１０６Ｂから転送書込みされる第二定数１０８ｂの格納領域である。
当該第二定数１０８ｂは、前記電子制御装置１００Ｂが組込まれる合体製品・設備の型名・機種に対応した制御定数又は前記入出力制御プログラム１０７Ｂの一部の選択番号情報、或いは前記電子制御装置１００Ｂに接続された入出力部品の部品特性のバラツキ変動を補正するための校正定数の少なくとも一つを包含している。
前記第三定数領域Ｓ３００は、前記電子制御装置１００Ｂの実働運転中に於いて、前記ＲＡＭメモリ１１２Ｂに格納された第三定数１０８ｃが、少なくとも前記電子制御装置１００Ｂの運転停止の直後又は運転中の適時に転送書込みされる第三定数の格納領域である。
当該第三定数１０８ｃは、前記電子制御装置１００Ｂの内蔵部品又は外部接続部品の特性変動情報、或いは改善された運転特性を得るための学習情報、或いは異常発生履歴情報の少なくとも一つを包含している。
以上のとおり、本願の請求項３に関連して、不揮発データメモリの各分割ブロック内に設けられたデータ格納領域は、第一・第二・第三定数領域又は少なくとも第一・第三定数領域の複数領域に仕分けされ、各定数領域のセクション数と当該セクションのデータ容量であるバイト数が予め決定されている。
従って、各定数領域空きセクションに対して、異なる時と場所においてデータの書込みを行うのが容易となると共に、各定数領域の書込み頻度が容易に推定され、各定数領域のセクション数とバイト数の決定が容易となる特徴がある。
【０２０６】
［請求項９対応］
前記マイクロプロセッサ１１０Ｂは、前記不揮発データメモリ１１３Ｂに対する一括消去指令信号とブランクチェック指令信号を発生し、当該ブランクチェック指令を受信した前記不揮発データメモリ１１３Ｂは、少なくとも前記セクション単位で消去済であるか否かの判定情報を返信する。
前記マイクロプロセッサ１１０Ｂは、一括消去を行うことによって、消去済となったセクションは空セクションであると判定する。
前記マイクロプロセッサ１１０Ｂは、一括消去を行っても消去できなかったセクションがあるか、又は前記不揮発データメモリ１１３Ｂに対するデータの書込み中に停電が発生したことが原因となって、一つのセクションの中でデータの書込み部分と未書込み部分が混在していることが検出された場合には、当該セクションは無効セクションであると判定すると共に、セクション内にデータが存在して無効セクションではないセクションを有効セクションであると判定する。
前記マイクロプロセッサ１１０Ｂは、前記不揮発データメモリ１１３Ｂの読出しを行うときには、各データ格納領域の最終セクションから先頭セクションにかけて前記有効セクションを検索し、初めて検出された有効セクションに格納されたデータを読出する。
【０２０７】
前記マイクロプロセッサ１１０Ｂは、前記不揮発データメモリ１１３Ｂの書込みを行うときには、各データ格納領域の最終セクションから先頭セクションにかけて前記有効セクションを検索し、初めて検出された有効セクションから逆方向に検索して初めて検出された空セクションにデータを書込みする。
以上のとおり、本願の請求項９の発明に関連して、マイクロプロセッサは不揮発データメモリに関して空セクション、無効セクション、有効セクションを判別し、各データ格納領域の最終セクションから順次検索して読出しセクションと書込みセクションを確定するように構成されている。
従って、無効セクションが存在しても、直ちに分割ブロックの更新や一括消去が行われず、空セクションを残さないようにしながら次の空セクションにデータが書込まれるので、不揮発データメモリの一括消去回数を削減することができる特徴がある。
又、不揮発データメモリの読出しにおいては無効セクションは除外して最新の有効セクションから読出しを行うことができる特徴がある。
【符号の説明】
【０２０８】
１００Ａ、１００Ｂ  電子制御装置      ＣＯＭｎ  指令信号
１０１ａ  補助電源端子                ＡＮＳｎ  回答信号
１０２  電源リレー                    ＡＤＲ  ブロック番号又はセクション番号指定
１０２ａ  駆動電源端子                ＷＲＤ  書込データ
１０３  入力信号回路                  ＲＤＤ  読出データ
１０４  出力信号回路                  １０５Ａ、１０５Ｂ  第一ツール
Ｓ０  チェック領域                    １０６Ａ、１０６Ｂ  第二ツール
Ｓ１０  第一定数領域                  １０７Ａ、１０７Ｂ  入出力制御プログラム
Ｓ２０  第二定数領域                  １０７ａ、１０７ｂ  参考定数
Ｓ３００  第三定数領域                １０８  イメージメモリ領域
１０８ａ  第一定数                    Ｓ１  セクション（チェック領域）
１０８ｂ  第二定数                    Ｓ２  予備セクション（チェック領域）
１０８ｃ  第三定数                    Ｓ１１〜Ｓ１４  セクション（第一定数領域）
１０９ｂ  内蔵バッテリ                Ｓ２１〜Ｓ２８  セクション（第二定数領域）
１１０Ａ、１１０Ｂ  マイクロプロセッサ
Ｓ３０１〜S３４０  セクション（第三定数領域）
１１１Ａ、１１１Ｂ  不揮発プログラムメモリ
１１２Ａ、１１２Ｂ  ＲＡＭメモリ      １１２ａ、１１２ｂ  ステータスメモリ
１１３Ａ、１１３Ｂ  不揮発データメモリ
１１３ａ、１１３ｅ  第１ブロック      １１３ｂ、１１３ｆ  第２ブロック
１１３ｃ  第３ブロック                １１３ｄ  第４ブロック
【図１】
2010176280.tif 000003
【図２】
2010176280.tif 000004
【図３】
2010176280.tif 000005
【図４】
2010176280.tif 000006
【図５】
2010176280.tif 000007
【図６】
2010176280.tif 000008
【図７】
2010176280.tif 000009
【図８】
2010176280.tif 000010
【図９】
2010176280.tif 000011
【図１０】
2010176280.tif 000012
【図１１】
2010176280.tif 000013
【図１２】
2010176280.tif 000014
【図１３】
2010176280.tif 000015
【図１４】
2010176280.tif 000016
【図１５】
2010176280.tif 000017
【図１６】
2010176280.tif 000018
【図１７】
2010176280.tif 000019