(57)【特許請求の範囲】
【請求項１】
エラー訂正機能付きメモリを有する制御装置のメモリ初期化方法において、
前記エラー訂正機能付きメモリは初期化処理を行う前にＥＣＣエラー発生時の処理を無効にするものとし、前記エラー訂正機能付きメモリを初期化処理した後には、前記ＥＣＣエラー発生時の処理を有効にし、
前記エラー訂正機能付きメモリにバッテリバックアップによって保持されている値をメモリ保存領域から読み出してそのまま書き戻す読み出し書き戻し処理は前記初期化処理中に行われ、
前記読み出し書き戻し処理により前記メモリ保存領域のＥＣＣの初期化処理を終了するまで、前記エラー発生時の処理を無効にすることが行われることを特徴とする制御装置のメモリ初期化方法。
【請求項２】
エラー訂正機能付きメモリを有する制御装置において、
前記エラー訂正機能付きメモリは初期化処理を行う前にＥＣＣエラー発生時の処理を無効にするものとし、前記エラー訂正機能付きメモリを初期化処理した後には、前記ＥＣＣエラー発生時の処理を有効にし、
前記エラー訂正機能付きメモリにバッテリバックアップによって保持されている値をメモリ保存領域から読み出してそのまま書き戻す読み出し書き戻し処理は前記初期化処理中に行われ、
前記読み出し書き戻し処理により前記メモリ保存領域のＥＣＣの初期化処理を終了するまで、前記エラー発生時の処理を無効にすることが行われ、
前記読み出し書き戻し処理では、初期化済みか否かを判定する初期化済み判定手段を有し、
前記初期化済み判定手段で初期化済みではない場合にのみ、前記メモリ保存領域を所定の値での書込みにより初期化する機能を有することを特徴とする制御装置。
【請求項３】
請求項２記載の制御装置において、
前記初期化済み判定手段は、初期化済み判定用メモリを有し、
前記判定用メモリは、初期化後に所定の値を保持し、前記所定の値が読み出せた場合に初期化済みと判定する機能を有し、
前記判定用メモリは、エラー訂正機能付きメモリではないメモリを使用することを特徴とする制御装置。
【請求項４】
請求項２記載の制御装置において、
前記初期化済み判定手段は、前記制御装置がエラー訂正機能付きメモリに供給する電源が切れたことを判定できる機能を有し、
前記初期化済み判定手段は、前記判定機能にて、電源が切れたことを示した場合は未初期化と判定し、初期化後には前記判定状態を電源が切れた状態にセットする機能を有することを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサや、ネットワークを介した外界の状態からアクチュエータを制御する制御装置に係わり、特に、制御装置に内蔵されたマイコンのエラー訂正機能付きＲＡＭを有した制御装置に関する。
【背景技術】
【０００２】
自動車エンジン制御装置においては、クランク角センサ信号などの入力をもとに、燃料量や噴射タイミングを制御する。エンジン制御は、高機能化にともない、多くの情報を元に高度な制御が要求され、入出力数は増加している。
【０００３】
近年、エンジンを制御する制御装置は、マイコンが内蔵されているが、マイコンに内蔵されたＲＡＭにエラー訂正機能がついたものが搭載され、メモリに対する信頼性向上を実現している。
【０００４】
エラー訂正機能（ＥＣＣ：  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）のＲＡＭは、エラー訂正用の情報が必要であり、電源投入後は、ＥＣＣのための初期化が必要となる。
【０００５】
したがって、電源投入直後などの、メモリがＥＣＣ初期化されていない状態でメモリを使用すると、ＥＣＣエラーと判定してしまうために、この誤判定を避ける手段として、ハードウェアの面からエラー判定しない機構を設けているものがある（特許文献１、２参照）。これらの手段は、ＥＣＣ初期化の実施の有無を示すフラグの機構を備えている。
【０００６】
【特許文献１】特開２００５−６３５４７号公報
【特許文献２】特開平１１−３２８０４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１、２ではＥＣＣ初期化機構が備わっているが、ＥＣＣ初期化機構を備えないメモリの場合、ソフトウェアにて、ＥＣＣ初期化を実施する必要がある。
【０００８】
また、ＥＣＣのエラーチェックは、書込みで初期化、読み出しでチェックを実施する。自動車制御装置におけるエンジン制御装置の場合、イグニッションスイッチのＯＮでマイコン動作開始し、そのときにメモリを初期化するが、前回のイグニッションスイッチがＯＮのときの状態をメモリに保存しているため、毎回のイグニッションスイッチＯＮ時で、ＥＣＣ初期化のために、適当なデータを書き込んでの初期化を実施すると、保存されていた値が上書きされてしまう。
【０００９】
また、バッテリ接続後の初回のイグニッションスイッチＯＮ時では、メモリは初期化されていないため、読み出してしまうと、ＥＣＣエラーが発生する。ＥＣＣ初期化の実施済み情報を利用して、ＥＣＣ初期化済みの判定を入れた場合、ＥＣＣ未初期化時に本判定を実施するとＥＣＣエラーが発生してしまう。
【課題を解決するための手段】
【００１０】
本発明では、上記のような課題を解決するために、次のように構成される。
【００１１】
ＥＣＣエラー発生時にＥＣＣエラー情報などを格納したりするＥＣＣエラー時割り込み処理と、ＥＣＣエラー発生しても、ＥＣＣエラーを無視するＥＣＣエラー無効時割り込み処理と、メモリを読み出して書き戻す、読み出し書き戻しメモリ初期化処理とを備え、ＥＣＣ初期化時は、ＥＣＣエラー無効時割り込み処理が起動されるようにし、メモリ保存領域のＥＣＣ初期化には、読み出し書き戻しメモリ初期化処理を実施し、ＥＣＣ初期化処理後は、ＥＣＣエラー時割り込み処理が起動されるようにする。
【発明の効果】
【００１２】
本発明によれば、ＥＣＣ初期化実施の有無の判定をすることなく、ＥＣＣ初期化できる。
【発明を実施するための最良の形態】
【００１３】
本発明の実施例について、図を引用して以下に説明する。
【実施例１】
【００１４】
図１０は、ＥＣＣ機能を具備したメモリ搭載のマイクロコントローラ９の構成を示す。
【００１５】
マイクロコントローラ９は、ＣＰＵ９１と、プログラムやデータを格納したフラッシュＲＯＭ９２と、ランダムアクセスメモリ（ＲＡＭ）９３と、ダイレクトメモリアクセス機能（ＤＭＡ）９４やアナログデジタル変換器（ＡＤ変換器）９５などの周辺機器を搭載する。ここではＲＡＭ９３にＥＣＣ機能が搭載されたものとする。
【００１６】
図１１は、ＲＡＭ９３の構成図を示す。
【００１７】
ＲＡＭ９３は値を記憶する値記憶部９３１とエラー訂正のための情報を格納するエラー情報格納部９３２と値記憶部の値とエラー情報格納部からの情報とからエラー有無をチェックするエラー検出部９３３とからなる。
【００１８】
エラー情報は、値を書き込むと同時に更新され、値を読み出すときにチェックする。エラー訂正できる場合は、自動で訂正された値を出力し、エラー訂正できない場合はＣＰＵに対して割り込みを発生する。初回電源投入時は値記憶部およびエラー方法格納部は未初期化のため、初期化する前に値を読み出すとエラー訂正できずに割り込みが発生する可能性がある。
【００１９】
図１は、ＥＣＣ初期化のフロー図である。
【００２０】
ＥＣＣ初期化処理スタート１１１に続く、処理１１１で、ＥＣＣエラーを無効化する。処理１１２でＥＣＣ初期化を実施する。処理１１３で、ＥＣＣエラーを有効化し、ＥＮＤ１１４になる。
【００２１】
この処理フローにより、ＥＣＣ初期化時のＥＣＣエラーは無視し、ＥＣＣエラー発生の履歴を残さない。
【００２２】
図２は、ＥＣＣ初期化処理のフロー図である。
【００２３】
スタート１１２１に続く、処理１１２２では、メモリ保存領域外で、メモリ書込みによるＥＣＣ初期化を実施する。処理１１２３では、メモリ保存領域に対して、読み出し書き戻し処理を実施し、ＥＮＤ１１２４になる。
【００２４】
この処理フローにより、保存された値がそのまま保持されるとともに、書込み処理を実施しているのでＥＣＣ初期化される。
【００２５】
なお、ＥＣＣ未初期化時に本処理を実施すると、ＥＣＣエラー発生するが、処理１１１によりＥＣＣエラー無効にしているため、この時点でのＥＣＣエラーは無視される。さらに、読み出された値は、不定値となっているが、初期化は実施されていないため、その値（不定値）を使って書き戻しても問題ない。
【００２６】
図３は、書込み初期化処理１１２２のフロー図である。
【００２７】
ＳＴＡＲＴ１１２２１に続く、処理１１２２２では、ＲＯＭに初期値を持った領域からの初期値コピーによる初期化を実施する。初期値が格納されているＲＯＭの先頭番地であるＳＴＡＲＴ＿ＲＯＭ＿ＡＤＤＲから、コピーする先のメモリの先頭番地である、ＳＴＡＲＴ＿ＲＡＭ＿ＡＤＤＲへ、ＲＡＭ＿ＩＮＩＴ＿ＳＩＺＥのサイズ長分、コピーする。この際には、読み出しはＲＯＭの方なので、ＥＣＣの初期化の実施／未実施に関係なく、ＥＣＣエラーは発生しない。
【００２８】
さらに、ＥＣＣ機能のない、通常のＲＡＭの初期化処理もあわせて実施しており効率的である。処理１１２２３では、ゼロクリアする領域の初期化を実施し、ＥＮＤ１１２２４になる。
【００２９】
この場合も、メモリの読み出しは不要であり、ＥＣＣの初期化の実施／未実施に関係なく、ＥＣＣエラーは発生しない。さらに、ＥＣＣ機能のない、通常のＲＡＭの初期化処理もあわせて実施しており効率的である。
【００３０】
図４は、読み出し書き戻し処理１１２３のフロー図である。
【００３１】
ＳＴＡＲＴ１１２３１に続く、処理１１２３２では、コピー元のデータのアドレスとコピー先のアドレスを同じにして、メモリ保存領域のサイズ、ＲＡＭ＿ＮＣＬＲ＿ＳＩＺＥ分コピーを繰り返し、ＥＮＤ１１２３３になる。
【００３２】
この処理フローにより、ＥＣＣ実施後では、メモリ値は保持される。ＥＣＣ初期化未実施時は読み出し時にエラー発生するが、処理１１１により無視される。
【００３３】
図５は、ＥＣＣエラー割り込み処理とＥＣＣエラー無効時の割り込み処理のフロー図である。
【００３４】
ＳＴＡＲＴ２１１に続く、ＥＣＣエラー割り込み処理では、処理２１２にて、割り込みの前処理を実施する。たとえば、レジスタなどのスタック退避である。処理２１３では、ＥＣＣエラー情報を保存し、ＥＣＣエラー発生を履歴として残す。また、必要に応じて、メモリのリカバ処理を実施する。
【００３５】
処理２１４では、割り込みの後処理を実施する。たとえば、レジスタなどの戻しである。なお、処理２１４を経てＥＮＤ２１５になる。
【００３６】
一方、ＳＴＡＲＴ２２１に続く、ＥＣＣエラー無効時割り込み処理では、処理２２２にて、割り込みの前処理を実施する。たとえば、レジスタなどのスタック退避である。処理２２３では、割り込みの後処理を実施する。たとえば、レジスタなどの戻しである。なお、処理２２３を経てＥＮＤ２２４になる。
【００３７】
図６は、ＥＣＣエラー無効化とＥＣＣエラー有効化のフロー図である。
【００３８】
ＳＴＡＲＴ１１１１に続く、ＥＣＣエラー無効化では、処理１１１２では、ＥＣＣエラー割り込みベクターテーブルをＥＣＣエラー無効時割り込み処理の先頭にセットする。これにより、ＥＣＣエラー発生時では、ＥＣＣの処理は実施されず、無視される。なお、処理１１１２を経てＥＮＤ１１１１３になる。
【００３９】
一方、ＳＴＡＲＴ１１３１に続く、ＥＣＣエラー有効化では、処理１１３２では、ＥＣＣエラー割り込みベクターテーブルをＥＣＣエラー割り込み処理の先頭にセットする。これにより、ＥＣＣエラー発生時では、ＥＣＣエラー情報が保存され、ＥＣＣエラー発生の履歴が残る。なお、処理１１３２を経てＥＮＤ１１３３になる。
【００４０】
図７は、ＲＯＭとＥＣＣ機能付きＲＡＭのメモリマップを示す。
【００４１】
ＲＯＭ４１のメモリマップには、初期値が格納されている先頭番地ＳＴＡＲＴ＿ＲＯＭ＿ＡＤＤＲとそのデータサイズＲＡＭ＿ＩＮＩＴ＿ＳＩＺＥを示している。
【００４２】
ＲＡＭ４２のメモリマップには、メモリ保存領域の先頭番地であるＳＴＡＲＴ＿ＮＣＬＲ＿ＲＡＭ＿ＡＤＤＲとそのサイズＲＡＭ＿ＮＣＬＲ＿ＳＩＺＥを示している。
【００４３】
また、初期値のコピー先の先頭アドレスであるＳＴＡＲＴ＿ＲＡＭ＿ＡＤＤＲとそのデータサイズＲＡＭ＿ＩＮＩＴ＿ＳＩＺＥを示している。さらに、ゼロクリアする領域の先頭番地であるＳＴＡＲＴ＿ＣＬＲ＿ＲＡＭとそのデータサイズＲＡＭ＿ＣＬＲ＿ＳＩＺＥを示している。
【実施例２】
【００４４】
実施例１では、ＥＣＣ初期化をＥＣＣ初期化実施有無の判定無しとしたが、バックアップ領域を含む部分は、判定を入れてもよい。その場合は、ＥＣＣエラー無効化処理およびＥＣＣエラー無効時割り込みは不要とできる。また、実施結果をＲＡＭ読み出ししない手段として、ＥＣＣ機能を有しない別のメモリを使用すればよい。
【００４５】
図８にＥＣＣ初期化済み判定処理をつけたＥＣＣ初期化処理を示す。
【００４６】
ＥＣＣ初期化処理３２では、スタート処理３１に続きＥＣＣ初期化処理３２を実施し、ＥＮＤ３３になる。
【００４７】
スタート３２１に続き、書込み初期化３２２を行い、判定処理３２３で、ＥＣＣ初期化済みの判定をし、ＥＣＣ初期化していなければ、処理３２４にて書込みによる初期化を実施し、初期化済みであれば処理３２４をスキップする。処理３２５では、実施済みフラグ値として、０ｘ５５５５５５５５を判定用ＲＡＭにセットし、ＥＮＤ３２６になる。
【００４８】
なお、フラグセット用ＲＡＭは、バッテリバックアップされているＲＡＭである。
【実施例３】
【００４９】
実施例２では、ＥＣＣ初期化の実施の有無をＥＣＣ機能を有しないメモリに記憶していたが、たとえば、特開２００５−１１４５５５号公報に記載のイグニッションオフタイマーの機能を備えた制御装置であれば、イグニッションオフタイマーの機能を使っても良い。
【００５０】
この場合、イグニッションオフタイマーの値が０であれば、バッテリ接続後の初回のＲＡＭ初期化であるため、ＥＣＣ未初期化と判断できる。
【００５１】
ＥＣＣ初期化後は、イグニッションオフタイマーをスタートさせると、それ以降は１以上の値が返るので、イグニッションオン時のＥＣＣ初期化処理時には、イグニッションオフタイマー値が０でないので、ＥＣＣ実施済みと判断できる。
【００５２】
イグニッションオフタイマー値によるＥＣＣ初期化済判定のＥＣＣ初期化のフローを図９に示す。
【００５３】
スタート３４１に続き、書込み初期化３４２を行い、処理判定３４３でイグニッションオフタイマー値が０か否かを判定する。０であれば、処理３４４で書込み初期化処理にてＥＣＣ初期化する。イグニッションオフタイマーをスタートは、イグニッションスイッチをオフしたタイミングでスタートさせ、これにより、イグニッションオフタイマー値が１以上になるようにする。なお、処理３４４を経てＥＮＤ３４６になる。
【産業上の利用可能性】
【００５４】
本発明は、自動車制御をはじめとして、通信機能を内蔵した制御装置に適用可能である。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施例に係わるＥＣＣ初期化のフロー図。
【図２】本発明の実施例に係わるＥＣＣ初期化処理のフロー図。
【図３】本発明の実施例に係わる書込み初期化処理のフロー図。
【図４】本発明の実施例に係わる読み出し書き戻し処理のフロー図。
【図５】本発明の実施例に係わるＥＣＣエラー割り込み処理とＥＣＣエラー無効時の割り込み処理のフロー図。
【図６】本発明の実施例に係わるＥＣＣエラー無効化とＥＣＣエラー有効化のフロー図。
【図７】本発明の実施例に係わるメモリマップ。
【図８】本発明の実施例に係わるＥＣＣ初期化済み判定ありＥＣＣ初期化のフロー図。
【図９】本発明の実施例に係わるイグニッションオフタイマー値によるＥＣＣ初期化済判定のＥＣＣ初期化のフロー図。
【図１０】本発明の実施例に係わるもので、ＥＣＣ機能を具備したメモリ搭載のマイクロコントローラの構成を示す図。
【図１１】本発明の実施例に係わるもので、ＲＡＭの構成図を示す図。
【符号の説明】
【００５６】
１１１…ＥＣＣエラー無効化処理、１１２…ＥＣＣ初期化処理、１１３…ＥＣＣエラー有効化処理、１１２２…書込み初期化処理、１１２３…読み出し書き戻し処理、２１…ＥＣＣエラー割り込み処理、２２…ＥＣＣエラー無効時割り込み処理、４１…ＲＯＭメモリマップ、４２…ＲＡＭメモリマップ、９…マイクロコントローラ、９１…ＣＰＵ、９２…フラッシュＲＯＭ、９３…ＲＡＭ、９４…ＤＭＡ、９５…ＡＤ変換器、９３１…値記憶部、９３２…エラー情報格納部、９３３…エラー検出部。
【図１】
0005042766.tif 000002
【図２】
0005042766.tif 000003
【図３】
0005042766.tif 000004
【図４】
0005042766.tif 000005
【図５】
0005042766.tif 000006
【図６】
0005042766.tif 000007
【図７】
0005042766.tif 000008
【図８】
0005042766.tif 000009
【図９】
0005042766.tif 000010
【図１０】
0005042766.tif 000011
【図１１】
0005042766.tif 000012