(57)【特許請求の範囲】
【請求項１】
エンジンのクランク軸の回転に伴い所定の角度間隔で発生するクランク角信号の信号周期を逓倍数で割った周期の逓倍信号が表わすクランク角度に同期して、内燃機関の気筒内の圧力を検出する筒内圧センサの出力信号をＡＤ変換するＡＤ変換手段（３２、Ｓ４１０）と、
前記ＡＤ変換手段によるＡＤ変換データを記憶装置（２６）の変換データ領域（２００）に記憶する記憶手段（２０、Ｓ４１２）と、
各クランク角度における前記ＡＤ変換データが前記変換データ領域に記憶されているか否か、あるいは前後に隣接する前記クランク角度において前の前記クランク角度における前記ＡＤ変換データの一部が後の前記クランク角度における前記ＡＤ変換データにより上書きされているか否かを判定する結果判定手段（２０、Ｓ４３４）と、
前記結果判定手段により前記ＡＤ変換データが記憶されていないか、あるいは前記ＡＤ変換データの一部が上書きされていると判定された場合、前記変換データ領域に記憶されている前記ＡＤ変換データを前記記憶装置の公開データ領域（２１０、２１２）に記憶するときに、記憶されていないか上書きされている前記ＡＤ変換データを記憶する前記公開データ領域の該当記憶位置に異常を示す異常値を設定する設定手段（２０、Ｓ４２０、Ｓ４４０〜Ｓ４４６）と、
を備えることを特徴とするＡＤ変換処理装置。
【請求項２】
前記記憶手段（２０、Ｓ４１４）は、前記ＡＤ変換手段が前記筒内圧センサの出力信号をＡＤ変換するときの前記クランク角度を前記記憶装置のクランク角度領域（２０２）に記憶し、
前記結果判定手段（２０、Ｓ４６０）は、前記クランク角度領域に記憶されている前記クランク角度に抜けがある場合、抜けが生じている前記クランク角度における前記ＡＤ変換データが前記変換データ領域に記憶されていないと判定する、
ことを特徴とする請求項１に記載のＡＤ変換処理装置。
【請求項３】
前記記憶手段（２０、Ｓ４１８）は、前記クランク角度の順番に前記ＡＤ変換データを前記変換データ領域に記憶し、各クランク角度における前記ＡＤ変換データを前記変換データ領域に記憶する記憶位置を前記記憶装置の記憶位置領域（２０６）に記憶し、
前記結果判定手段（２０、Ｓ４６４）は、前記記憶位置領域に記憶されている前記記憶位置に基づいて、前後に隣接する前記クランク角度において前の前記クランク角度における前記ＡＤ変換データの一部が後の前記クランク角度における前記ＡＤ変換データにより上書きされているか否かを判定する、
ことを特徴とする請求項１または２に記載のＡＤ変換処理装置。
【請求項４】
前記設定手段（２０、Ｓ４６４、Ｓ４６６）は、前記結果判定手段により一部が上書きされていると判定された前記ＡＤ変換データを前記公開データ領域に記憶する場合、該当する前記ＡＤ変換データの上書きされていないデータはそのまま記憶し、上書きされている部分に前記異常値を設定する、
ことを特徴とする請求項３に記載のＡＤ変換処理装置。
【請求項５】
前記記憶手段（２０、Ｓ４１６）は、前記クランク角度に同期して前記ＡＤ変換手段がＡＤ変換を実行する変換時刻を前記記憶装置の変換時刻領域（２０４）に記憶し、
前記変換データ領域に記憶されている前記ＡＤ変換データを前記公開データ領域に記憶するときに、前記変換時刻領域に記憶されている前記変換時刻に基づいて、前後に隣接するクランク角度の間でエンジン回転速度の加速度が所定値以上になる加速が行なわれたか否かを判定する加速判定手段（２０、Ｓ４３０、Ｓ４５０〜Ｓ４５８）を備え、
前記設定手段（２０、Ｓ４３２）は、前記所定値以上の加速が行なわれたと前記加速判定手段が判定すると、加速が開始されたときの前記ＡＤ変換データを記憶する前記公開データ領域の該当記憶位置に前記異常値を設定する、
ことを特徴とする請求項１から４のいずれか一項に記載のＡＤ変換処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クランク角信号の逓倍信号が表わすクランク角度に同期して筒内圧センサの出力信号をＡＤ変換した結果の異常を検出するＡＤ変換処理装置に関する。
【背景技術】
【０００２】
従来、例えばエンジンに過給すると気筒内の温度が過度に上昇し、点火プラグで点火するときの点火タイミングよりも進角したタイミングで混合気が異常着火するプレイグニションが発生することがある。
【０００３】
エンジン制御装置は、エンジンの回転に伴い所定の角度間隔で発生するクランク角信号に基づいて燃料噴射および点火時期を制御しているので、プレイグニションの発生を防止するために、プレイグニションが発生するクランク角度を検出し、検出したクランク角度に基づいて燃料噴射および点火時期を制御することが考えられる。
【０００４】
プレイグニション等の異常燃焼が発生するクランク角度は、気筒内の圧力（筒内圧）を検出する筒内圧センサの出力信号をクランク角度に同期してＡＤ変換し、ＡＤ変換データが示す筒内圧の変化に基づいて気筒内の燃焼状態を解析することにより検出できる。
【０００５】
異常燃焼が発生するクランク角度の検出精度を向上させる構成として、クランク角信号が発生する角度間隔を小さくすることが考えられる。クランク角信号の角度間隔を小さくせずに検出精度を向上させる構成としては、特許文献１に記載されているように、クランク角信号の信号周期を逓倍数で割った周期の逓倍信号を生成することが知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１３３６１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
逓倍信号は、クランク角信号が発生したときに前回と今回とのクランク角信号の周期を逓倍数で割った周期の信号として生成されるので、エンジンが急激に加速すると、今回と次回とのクランク角信号の間で逓倍数の逓倍信号が発生する前に次のクランク角信号が発生することがある。すると、今回と次回とのクランク角信号の間で逓倍信号が表わすクランク角度の一部においてＡＤ変換が実行されず抜けることになる。
【０００８】
また、今回の逓倍信号のタイミングにおけるＡＤ変換の時間が何らかの原因で長くなり、ＡＤ変換の途中で次の逓倍信号が発生すると、今回の逓倍信号におけるＡＤ変換データが次の逓倍信号におけるＡＤ変換データによって途中から上書きされることになる。
【０００９】
このように、ＡＤ変換データが抜けたり、ＡＤ変換データの一部が上書きされていたりすると、逓倍信号が表わすクランク角度とＡＤ変換データとの対応がずれる。このようなＡＤ変換結果の異常を検出する技術は従来知られていない。
【００１０】
そのため、クランク角度に対応しないＡＤ変換データに基づいてプレイグニション等の異常燃焼の有無を判定することになるので、異常燃焼の有無を誤判定する恐れがある。その結果、筒内圧を表わすＡＤ変換データに基づいて誤った噴射制御および点火時期制御を実行する恐れがある。
【００１１】
本発明は、上記課題を解決するためになされたものであり、逓倍信号が表わすクランク角度に同期して筒内圧センサの出力信号をＡＤ変換した結果の異常を検出するＡＤ変換処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明のＡＤ変換処理装置によると、クランク角信号の信号周期を逓倍数で割った周期の逓倍信号が表わすクランク角度に同期して、内燃機関の気筒内の圧力を検出する筒内圧センサの出力信号をＡＤ変換し、ＡＤ変換データを記憶装置の変換データ領域に記憶する。
【００１３】
そして、クランク角度におけるＡＤ変換データが変換データ領域に記憶されていないか、あるいは前後に隣接するクランク角度において前のクランク角度におけるＡＤ変換データの一部が後のクランク角度におけるＡＤ変換データにより上書きされている場合、クランク角度とＡＤ変換データとが対応せず、クランク角度に対してＡＤ変換データがずれるＡＤ変換結果の異常が発生していると判断する。
【００１４】
この場合、変換データ領域に記憶されているＡＤ変換データを記憶装置の公開データ領域にコピーして記憶するときに、ＡＤ変換データを記憶する公開データ領域の該当記憶位置に異常を示す異常値を設定し、ＡＤ変換の異常を通知する。
【００１５】
これにより、ＡＤ変換データを参照する処理は、例えば公開データ領域のＡＤ変換データの値に基づいてＡＤ変換データが異常であるか否かを判定し、正常であればＡＤ変換データを異常燃焼の判定処理に利用し、異常値であれば異常判定処理を中断するか、あるいは異常値に該当するクランク角度におけるＡＤ変換データを前後のクランク角度における正常なＡＤ変換データにより補間するなどの適切な処置を実行できる。その結果、異常なＡＤ変換データに基づいて異常燃焼の有無を誤判定することを防止できる。
【００１６】
また、本発明のＡＤ変換処理装置によると、逓倍信号が表わすクランク角度に同期して筒内圧センサの出力信号をＡＤ変換するときのクランク角度をクランク角度領域に記憶するので、クランク角度領域に記憶されているクランク角度に抜けがある場合、抜けが生じているクランク角度におけるＡＤ変換データが変換データ領域に記憶されていないと容易に判定できる。
【００１７】
ここで、各クランク角度において筒内圧センサの出力信号をＡＤ変換した結果のデータ長は同じである。したがって、クランク角度の順番にＡＤ変換データを変換データ領域に記憶する場合、前後に隣接するクランク角度において前のクランク角度おけるＡＤ変換データの一部が後のクランク角度におけるＡＤ変換データにより上書きされているか否かは、後のクランク角度におけるＡＤ変換データを記憶する記憶位置が、前のクランク角度におけるＡＤ変換データに重なる位置であるか否かにより判定できる。
【００１８】
そこで、本発明のＡＤ変換処理装置によると、クランク角度の順番にＡＤ変換データを変換データ領域に記憶し、各クランク角度におけるＡＤ変換データを変換データ領域に記憶する記憶位置を記憶装置の記憶位置領域に記憶するので、記憶位置領域に記憶されている記憶位置に基づいて、前後に隣接するクランク角度において前のクランク角度におけるＡＤ変換データの一部が後のクランク角度におけるＡＤ変換データにより上書きされているか否かを容易に判定できる。
【００１９】
尚、本発明に備わる複数の手段の各機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、またはそれらの組み合わせにより実現される。また、これら複数の手段の各機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。
【図面の簡単な説明】
【００２０】
【図１】本実施形態によるエンジン制御システムを示すブロック図。
【図２】クランク角信号を示すタイムチャート。
【図３】ＡＤ変換の抜けを示す説明図。
【図４】ＡＤ変換データの上書を示す説明図。
【図５】加速判定を説明するタイムチャート。
【図６】起動時処理を示すフローチャート。
【図７】角度同期処理を示すフローチャート。
【図８】データチェック処理を示すフローチャート。
【図９】公開データ初期化処理を示すフローチャート。
【図１０】加速判定処理を示すフローチャート。
【図１１】データコピー処理を示すフローチャート。
【図１２】データコピー先を示すマップ。
【図１３】ＡＤ変換に関連するデータの記憶領域を説明するブロック図。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態を図に基づいて説明する。
図１に示すエンジン制御システム２は、例えばガソリン用エンジンの運転状態を制御するシステムである。エンジン制御システム２は、エンジン制御用の電子制御装置（ＥＣＵ：Electronic Control Unit）１０、燃料噴射弁６０、点火プラグ６２、回転数（ＮＥ）センサ６４、筒内圧センサ（ＣＰＳ）６６等から構成されている。
【００２２】
エンジンＥＣＵ１０は、マイクロコンピュータ（以下、マイコンとも言う。）２０、４０および入出力回路５０から構成されている。マイコン２０は、ＣＰＵ２２、ＲＯＭ２４、ＲＡＭ２６、ハードクランク２８、タイマ３０、ＡＤコンバータ（ＡＤＣ）３２から構成されている。マイコン４０はマイコン２０と実質的に同一構成である。
【００２３】
マイコン２０、４０は、それぞれのＲＯＭ２４に記憶されている制御プログラムを実行することにより、入出力回路５０を介してＮＥセンサ６４、ＣＰＳ６６および図示しない他のセンサの出力信号を入力し、互いに通信しながらハードクランク２８が生成する逓倍信号に基づいて、燃料噴射弁６０の噴射時期、点火プラグ６２の点火時期等のエンジン制御を実行する。
【００２４】
マイコン２０のハードクランク２８は、図２に示すように、クランク軸の回転に伴い所定の角度間隔、例えば１０°ＣＡ周期で入力されるクランク角信号（ＮＥ信号）をハード的に処理する回路部である。ＮＥ信号には、３６０°ＣＡに１箇所、気筒判別に使用される２歯分（３０°ＣＡ分）の欠歯部が設けられている。
【００２５】
ハードクランク２８は、１０°ＣＡ周期で発生する前回と今回とのＮＥ信号の時間間隔をクロックに同期したカウンタ等で計測し、計測した時間間隔をＮＥ信号の立ち上がり毎に逓倍数ｎを用いて１／ｎし、逓倍信号を生成する。本実施形態では逓倍数を２とし、５°ＣＡ周期の逓倍信号を生成する。
【００２６】
ＡＤＣ３２は、各気筒に設置されたＣＰＳ６６からの筒内圧力を示す出力信号を逓倍信号の立ち上がりに同期してＡＤ変換する。このとき、ＣＰＳ６６の出力信号をそのままＡＤ変換したデータと、ＣＰＳ６６の出力信号を増幅してからＡＤ変換したデータとが、ＡＤＣ３２からＤＭＡ転送によりＲＡＭ２６の所定領域に順次書き込まれる。
【００２７】
本実施形態では、ＣＰＳ６６の出力信号をそのままＡＤ変換したデータと増幅したデータとはそれぞれ２バイトである。したがって、１気筒で４バイト、４気筒で１６バイトのデータが逓倍信号で表わされるクランク角度におけるＡＤ変換データになる。
【００２８】
ＡＤＣ３２でＡＤ変換された筒内圧力に基づいて、マイコン２０、４０はプレイグニション、失火等の異常燃焼を検出する。
（ＡＤ変換抜け）
次に、逓倍信号に同期して実行されるＡＤ変換の抜けについて説明する。前述したように、逓倍信号は、前回と今回との１０°ＣＡのＮＥ信号の時間間隔を計測し、次回のＮＥ信号までの間で５°ＣＡ周期の逓倍信号を生成する。本実施形態では、５°ＣＡ周期の逓倍信号が表わすクランク角度に同期してＡＤＣ３２がＣＰＳ６６の出力信号をＡＤ変換する。そして、ＡＤ変換データと、ＡＤ変換が実行されるクランク角度と、逓倍信号に同期してＡＤ変換が実行されるときの変換時刻と、各クランク角度におけるＡＤ変換データを記憶する記憶アドレスとをＲＡＭ２６に記憶する。
【００２９】
図３において、３０°ＣＡ分の欠歯部を経て１２０°ＣＡと１５０°ＣＡとの間の逓倍信号は、１１０°ＣＡと１２０°ＣＡとの間の時間間隔に基づいて生成される。したがって、１１０°ＣＡと１２０°ＣＡとの間のエンジン回転速度に対し、１２０°ＣＡと１５０°ＣＡとの間の欠歯部の間でエンジン回転速度が加速すると、１４５°ＣＡに相当する逓倍信号が立ち上がってオンの状態で１５０°ＣＡのＮＥ信号が発生することがある。
【００３０】
この場合、１５０°ＣＡのＮＥ信号を入力したときに、１２０°ＣＡと１５０°ＣＡとの間の３０°ＣＡの時間間隔から５°ＣＡ周期の逓倍信号が生成されるが、１４５°ＣＡで立ち上がった逓倍信号のオン中であるため、１５０°ＣＡで逓倍信号は立ち上がらない。
【００３１】
したがって、１５０°ＣＡではＡＤ変換は実行されず、次の１５５°ＣＡの逓倍信号の立ち上がりでＡＤ変換が実行される。その結果、１５０°ＣＡにおけるＡＤ変換が抜けるので、１５０°ＣＡにおけるＡＤ変換データ、クランク角度、変換時刻、記憶アドレスはＲＡＭ２６の所定領域に記憶されない。
【００３２】
正常であれば、逓倍信号に同期して５°ＣＡ毎に順番にクランク角度が記憶されるので、記憶されていないクランク角度がある場合には、そのクランク角度におけるＡＤ変換が抜けていることを容易に判定できる。
【００３３】
（ＡＤ変換データの上書）
クランク角度におけるＡＤ変換が完全に抜けなくても、ＡＤ変換データの一部が次のクランク角度におけるＡＤ変換データによって上書きされることがある。
【００３４】
図４に示すように、ｎ番目の逓倍信号におけるＡＤ変換の時間が何らかの理由で長くなりｎ番目のＡＤ変換の途中で次の（ｎ＋１）番目の逓倍信号が立ち上がると、ＡＤＣ３２は新たに（ｎ＋１）番目の逓倍信号におけるＡＤ変換を実行するので、ｎ番目のＡＤ変換データは（ｎ＋１）番目のＡＤ変換データで途中から上書きされる。
【００３５】
５°ＣＡ毎に実行されるＡＤ変換のデータ長は正常であれば固定長である。本実施形態では、前述したように、クランク角度における４気筒分のＡＤ変換データは１６バイトである。したがって、前のクランク角度におけるＡＤ変換データの記憶位置を示す記憶アドレスと、後のクランク角度におけるＡＤ変換データの記憶アドレスとに基づいて、前のクランク角度におけるＡＤ変換データが後のクランク角度におけるＡＤ変換データに上書きされているか否かを判定できる。
【００３６】
例えば、図４において、（ｎ＋１）番目のＡＤ変換データの記憶アドレスである＃（ｎ＋１）とｎ番目のＡＤ変換データの記憶アドレスである＃ｎとに基づいて、ｎ番目のＡＤ変換データが（ｎ＋１）番目のＡＤ変換データにより一部を上書きされていると判定できる。また、上書きされておらず正常なＡＤ変換データが残っている部分も分かる。
【００３７】
（加速判定）
本実施形態では、逓倍信号は、ＮＥ信号を入力する毎に前回と今回とのＮＥ信号の周期を（１／２）倍して生成する信号であるから、ＮＥ信号と一致するタイミングの逓倍信号は正確なクランク角度を表わしている。これに対し、５°ＣＡ、１５°ＣＡのように、１０°ＣＡ周期のＮＥ信号の間に生成される逓倍信号が表わす５°ＣＡ、１５°ＣＡのようなクランク角度のタイミング（このタイミングを「逓倍タイミング」とも言う。）は、推定されたタイミングである。
【００３８】
エンジンが一定速度で回転しているときは、ＮＥ信号のタイミングと同様に、逓倍タイミングも正確なクランク角度のタイミングを表わしており、ＮＥ信号の周期をＴ０、逓倍信号の周期をＴ１とすると、Ｔ１＝Ｔ０／２となる。
【００３９】
エンジンが加速するとＮＥ信号の周期は短くなるので、加速前のＮＥ信号の周期に基づいて生成された逓倍信号において、図５に示すように、１０ｎ°ＣＡにおけるＮＥ信号のタイミングと（１０ｎ＋５）°ＣＡにおける逓倍タイミングとの時間間隔Ｔ１は、加速しているときのＮＥ信号の周期Ｔ０の１／２よりも長くなる。
【００４０】
このときの逓倍タイミングのＡＤ変換により取得されるＡＤ変換データは、適切なクランク角度からずれた角度位置でＡＤ変換されたデータである。このように、適切な角度位置からずれた筒内圧力のＡＤ変換データに基づいて燃焼状態を判定すると、燃焼状態を誤判定する恐れがある。
【００４１】
そこで、本実施形態では、逓倍タイミングにおいて所定の加速状態であれば、逓倍タイミングで取得したＡＤ変換データを公開するときに、ＣＰＳ６６が取り得ない値として「０」を設定する。
【００４２】
加速判定は、例えば次のようにして行う。図５に示すように、（１０ｎ＋５）°ＣＡで表わされる逓倍タイミングの前後のＮＥ信号のタイミングを表わす１０ｎ°ＣＡと１０（ｎ＋１）°ＣＡとの周期Ｔ０、ならびに１０ｎ°ＣＡのＮＥタイミングと（１０ｎ＋５）°ＣＡの逓倍タイミングとの時間間隔Ｔ１をそれぞれ計測し、Ｔ０／２Ｔ１の値が所定値以下であれば、（１０ｎ＋５）°ＣＡの逓倍タイミングにおいて加速状態であると判定する。
【００４３】
次に、図６〜図１１に、ＡＤ変換結果の異常を検出してＡＤ変換データを公開するためにマイコン２０が実行するＡＤ変換処理のフローチャートを示す。各フローチャートにおいて「Ｓ」はステップを表わしている。
【００４４】
（起動時処理）
エンジンＥＣＵ１０が起動すると、図６の起動時処理が実行される。まず、１０°ＣＡ周期のＮＥ信号から５°ＣＡ周期の逓倍信号を生成できるように、ハードクランク２８の設定を行う（Ｓ４００）。
【００４５】
次に、逓倍信号に同期して、５°ＣＡ毎に実行されるＡＤ変換のデータ、そのときのクランク角度、ＡＤ変換を実行する変換時刻、ＡＤ変換データを記憶する記憶アドレスを記憶するための設定を行う（Ｓ４０２）。例えば、データを記憶する領域の先頭アドレスを書き込みポインタに設定する。
【００４６】
そして、ＡＤ変換に抜けがあるか否か、あるいは前のクランク角度におけるＡＤ変換データの一部が後のクランク角度におけるＡＤ変換データで上書きされているか否かのデータチェックを開始するクランク角度をデータチェック角度として気筒毎に設定する（Ｓ４０４）。データチェック角度は、各気筒において燃焼行程の上死点を過ぎた所定のクランク角度に設定される。例えば、第１気筒は１４０°ＣＡ、第２気筒は６８０°ＣＡ、第３筒は３２０°ＣＡ、第４気筒は５００°ＣＡに設定される。
【００４７】
（角度同期処理）
図７の角度同期処理は、逓倍信号に同期して実行される。各気筒におけるＣＰＳ６６の出力信号と、出力信号を増幅した信号とをそれぞれＡＤ変換し（Ｓ４１０）、ＡＤ変換した結果であるＡＤ変換データを図１３に示す変換データ領域２００にＣＰＳ出力値Ａ、Ｂとして気筒毎に記憶する（Ｓ４１２）。
【００４８】
さらに、ＡＤ変換を実行するときのクランク角度、変換時刻、ＡＤ変換データを記憶する先頭の記憶アドレスを、それぞれ図１３に示すクランク角度領域２０２、変換時刻領域２０４、記憶アドレス領域２０６に記憶する（Ｓ４１４、Ｓ４１６、Ｓ４１８）。
【００４９】
（データチェック処理）
図８のデータチェック処理は、図６のＳ４０４で気筒毎に設定されたデータチェック角度になると実行される。
【００５０】
まず、データチェック角度に該当する処理気筒について、図１３に示す対応する公開データ領域２１０、２１２を初期化する。図１３では＃ｎ気筒の公開データ領域として２面の公開データ領域２１０、２１２を示しているが、実際には、気筒毎にＣＰＳ出力値Ａ、Ｂに対応して２面、４気筒の合計で８面の公開データ領域がＲＡＭ２６に設けられている。公開データの初期値としては、筒内圧力を検出するＣＰＳ６６の出力信号が取り得ない値として「０」が設定される（Ｓ４２０）。公開データ領域の初期化処理については、図９で詳細に説明する。
【００５１】
次に、１燃焼サイクルに相当する７２０°ＣＡにおいて５°ＣＡ周期で実行されるＡＤ変換回数として１４４をｕ１ｔ＿ｃｈｋｃｎｔに設定し、ｕ１ｔ＿ｉｎｄｅｘに０を設定する（Ｓ４２２）。ｕ１ｔ＿ｉｎｄｅｘは、図１３に示す公開データ領域２１０、２１２を除いた各領域に逓倍信号に同期して５°ＣＡ毎に記憶されるデータの位置を示している。ｕ１ｔ＿ｉｎｄｅｘに０が設定されることにより、該当する領域の先頭から処理が開始される。
【００５２】
そして、Ｓ４２４〜Ｓ４３４の処理により、各気筒においてＡＤ変換データの取得を開始する角度から終了する角度の間で、変換データ領域２００に記憶されているＡＤ変換データを、気筒毎に確保されている公開データ領域にコピーして記憶する。
【００５３】
まず、Ｓ４２４において、ｕ１ｔ＿ｉｎｄｅｘがｕ１ｔ＿ｃｈｋｃｎｔよりも小さいか否かを判定する。ｕ１ｔ＿ｉｎｄｅｘがｕ１ｔ＿ｃｈｋｃｎｔ以上になると（Ｓ４２４：Ｎｏ）、変換データ領域２００のすべてのＡＤ変換データが処理されたと判断し、本処理を終了する。
【００５４】
次に、ｕ１ｔ＿ｉｎｄｅｘが示すクランク角度領域２０２のクランク角度をｕ２ｔ＿ｃｒｎｋに設定し（Ｓ４２６）、ｕ２ｔ＿ｃｒｎｋに設定されたクランク角度が処理気筒のＡＤ変換データの取得角度の範囲内であるか否かを判定する（Ｓ４２８）。
【００５５】
各気筒においてＡＤ変換データの取得開始角度と取得終了角度とにより決定されるＡＤ変換データの取得角度範囲は、第１気筒：６２０°ＣＡ〜１４０°ＣＡ、第２気筒：４４０°ＣＡ〜６８０°ＣＡ、第３気筒：８０°ＣＡ〜３２０°ＣＡ、第４気筒：２６０°ＣＡ〜５００°ＣＡである。
【００５６】
クランク角度がＡＤ変換データの取得角度の範囲から外れている場合（Ｓ４２８：Ｎｏ）、Ｓ４３０〜Ｓ４３４の処理を実行せずＳ４３６に処理を移行する。つまり、処理気筒において取得対象ではないクランク角度のＡＤ変換データは読み飛ばされる。
【００５７】
クランク角度がＡＤ変換データの取得角度の範囲内である場合（Ｓ４２８：Ｙｅｓ）、Ｓ４３０の加速判定処理において今回の逓倍信号のタイミングでエンジン回転速度が加速されたか否かを判定する。加速判定処理については、図１０で詳細に説明する。
【００５８】
図１０の加速判定処理において、今回の逓倍信号のタイミングでエンジン回転速度が加速されたと判定され加速判定フラグがオンの場合（Ｓ４３２：Ｙｅｓ）、Ｓ４３４のデータコピー処理を実行せずＳ４３６に処理を移行する。Ｓ４３４のデータコピー処理では、変換データ領域２００に記憶されている処理気筒のＡＤ変換データが公開データ領域にコピーされる。データコピー処理については、図１１において詳細に説明する。
【００５９】
したがって、今回の逓倍信号のタイミングでエンジン回転速度が加速された場合にＳ４３４のデータコピー処理が実行されないことにより、公開データ領域において加速時のＡＤ変換データは初期値のままである。
【００６０】
図１０の加速判定処理において、今回の逓倍信号のタイミングでエンジン回転速度が加速されていないと判定され加速判定フラグがオフの場合（Ｓ４３２：Ｎｏ）、Ｓ４３４のデータコピー処理が実行される。
【００６１】
Ｓ４３６では、ｕ１ｔ＿ｉｎｄｅｘが＋１され、Ｓ４２４に処理が移行されので、次の逓倍信号のタイミングでＡＤ変換されて記憶されたＡＤ変換データがチェックされる。
（公開データ初期化処理）
図９に図８のＳ４２０で実行される公開データ初期化処理を示す。
【００６２】
まず、処理気筒の公開データ領域のデータ位置を示すｕ１ｔ＿ｃｏｐｙｉｄｘに０を設定する（Ｓ４４０）。これにより、処理気筒の公開データ領域の先頭位置が示される。次に、Ｓ４４２〜Ｓ４４６の処理により、処理気筒の公開データ領域のデータが初期化される。
【００６３】
Ｓ４４２において、処理気筒において逓倍信号に同期してＡＤ変換され、公開データ領域にコピーされる公開データエントリー数よりもｕ１ｔ＿ｃｏｐｙｉｄｘが小さいか否かが判定される。ｕ１ｔ＿ｃｏｐｙｉｄｘが公開データエントリー数以上の場合（Ｓ４４２：Ｎｏ）、処理気筒の公開データ領域がすべて初期化されたと判断し本処理を終了する。
【００６４】
ｕ１ｔ＿ｃｏｐｙｉｄｘが公開データエントリー数よりも小さい場合（Ｓ４４２：Ｙｅｓ）、ｕ１ｔ＿ｃｏｐｙｉｄｘが示す処理気筒の公開データ領域のエントリー位置に初期値として０を設定し（Ｓ４４４）、ｕ１ｔ＿ｃｏｐｙｉｄｘを＋１し（Ｓ４４６）、Ｓ４４２に処理を移行する。
【００６５】
（加速判定処理）
図１０に図８のＳ４３０で実行される加速判定処理を示す。
まず、今回、公開データ領域にコピーするＡＤ変換データのクランク角度が、１０°ＣＡの倍数のＮＥ信号のタイミングではなく、ＮＥ信号とＮＥ信号との間で逓倍信号により推定される５°ＣＡ、１５°ＣＡ、・・・７０５°ＣＡ、７１５°ＣＡが表わす逓倍タイミングであるか否かを判定する。
【００６６】
逓倍タイミングではなくＮＥ信号タイミングであれば（Ｓ４５０：Ｎｏ）、１０°ＣＡ周期の適切なクランク角度位置でＡＤ変化が実行されたと判断し、加速判定フラグをオフにし（Ｓ４５２）、本処理を終了する。加速判定フラグがオフの場合、図８のＳ４３４が実行され、該当する逓倍タイミングのクランク角度におけるＡＤ変換データが公開データ領域にコピーされる。
【００６７】
逓倍タイミングであれば（Ｓ４５０：Ｙｅｓ）、今回の逓倍タイミングの前後のＮＥ信号の時間間隔Ｔ０、ならびに今回の逓倍タイミングの前のＮＥ信号タイミングと今回の逓倍タイミングとの時間間隔Ｔ１を、次式（１）、（２）から算出する（Ｓ４５４）。
Ｔ０＝変換時刻［ｕ１ｔ＿ｉｎｄｅｘ＋１］−変換時刻［ｕ１ｔ＿ｉｎｄｅｘ−１］
・・・（１）
Ｔ１＝変換時刻［ｕ１ｔ＿ｉｎｄｅｘ］−変換時刻［ｕ１ｔ＿ｉｎｄｅｘ−１］
・・・（２）
そして、Ｔ１に対するＴ０／２の比であるＴ０／２Ｔ１が所定の加速判定値以下であるか否かを判定する（Ｓ４５６）。加速判定値は１より小さい値である。
【００６８】
Ｔ０／２Ｔ１が加速判定値より大きい場合（Ｓ４５６：Ｎｏ）、今回の逓倍タイミングにおいてエンジンは加速状態ではないと判断し、Ｓ４５２に処理を移行して加速判定フラグをオフに設定する。加速判定フラグがオフであることは、今回のクランク角度におけるＡＤ変換データは公開すべきデータであることを示している。
【００６９】
Ｔ０／２Ｔ１が加速判定値以下であれば（Ｓ４５６：Ｙｅｓ）、今回の逓倍タイミングにおいてエンジンは加速状態にあると判断し、加速判定フラグをオンに設定する（Ｓ４５８）。
【００７０】
加速判定フラグがオンであることは、今回の逓倍タイミングのＡＤ変換により取得されたＡＤ変換データは、適切なクランク角度からずれたデータであることを示している。適切なクランク角度からずれた筒内圧力のＡＤ変換データに基づいて燃焼状態を判定すると、燃焼状態を誤判定する恐れがある。したがって、加速判定フラグがオンの場合、図８のＳ４３４は実行されないので、公開データ領域の該当する逓倍タイミングのクランク角度におけるＡＤ変換データは初期値のままである。
【００７１】
（データコピー処理）
図１１に図８のＳ４３４で実行されるデータコピー処理を示す。また、各気筒において、１燃焼サイクル中において逓倍信号に同期して５°ＣＡ周期でＡＤ変換されたデータを公開データ領域にコピーする対象となるクランク角度と、コピー対象のクランク角度におけるＡＤ変換データを公開データ領域中にコピーするオフセット位置とを、図１２のコピー先算出マップに示す。
【００７２】
例えば、第１気筒（＃１）のコピー対象角度範囲は前述したように６２０°ＣＡ〜１４０°ＣＡであり、１００°ＣＡのＡＤ変換データは、第１気筒の公開データ領域において先頭を０番とすると４０番目のオフセット位置にコピーされる。処理気筒のコピー対象であるクランク角度を表わすｕ２ｔ＿ｃｒｎｋは、図８のＳ４２６において選択されている。
【００７３】
まずＳ４６０において、今回ＡＤ変換データを公開データ領域にコピーする処理気筒と、コピー対象となるクランク角度を表わすｕ２ｔ＿ｃｒｎｋとにより、図１２のコピー先算出マップから、処理気筒の公開データ領域にＡＤ変換データをコピーするオフセット位置をｕ１ｔ＿ｃｏｐｙｉｄｘに設定する。
【００７４】
次に、変換データ領域において今回のコピー対象であるクランク角度におけるＡＤ変換データが記憶されている先頭アドレスをｕ１ｔ＿ｉｎｄｅｘにより記憶アドレス領域２０６から取得してｕ４ｔ＿ｃｏｐｙａｄｒに設定し、次のコピー対象であるクランク角度におけるＡＤ変換データが記憶されている先頭アドレスを（ｕ１ｔ＿ｉｎｄｅｘ＋１）により記憶アドレス領域２０６から取得してｕ４ｔ＿ｎｅｘｔａｄｒに設定する（Ｓ４６２）。
【００７５】
アドレスオフセットは、変換データ領域２００においてコピー対象であるクランク角度におけるＡＤ変換データが記憶されている先頭アドレスから、今回の処理気筒のＣＰＳ出力値Ａ、Ｂがどの位置にあるかを示している。各気筒のＣＰＳ出力値Ａ、Ｂのそれぞれのアドレスオフセットは、第１気筒は０と２、第２気筒は４と６、第３気筒は８と１０、第４気筒は１２と１４である。
【００７６】
次に、処理気筒のＣＰＳ出力値Ａ、Ｂのアドレスオフセットについて、それぞれｕ４ｔ＿ｃｏｐｙａｄｒ＋アドレスオフセットがｕ４ｔ＿ｎｅｘｔａｄｒより小さいか否かを判定する（Ｓ４６４）。
【００７７】
ＣＰＳ出力値Ａ、Ｂのアドレスオフセットについて、（ｕ４ｔ＿ｃｏｐｙａｄｒ＋アドレスオフセット）がｕ４ｔ＿ｎｅｘｔａｄｒより小さい場合（Ｓ４６４：Ｙｅｓ）、アドレスオフセットに該当するＡＤ変換データは、次のコピー対象であるクランク角度におけるＡＤ変換データにより上書きされていないと判断する。
【００７８】
そして、（ｕ４ｔ＿ｃｏｐｙａｄｒ＋アドレスオフセット）が示すアドレスに記憶されており上書きされていないと判断された変換データ領域２００の２バイトまたは４バイトのデータを、公開データ領域においてｕ１ｔ＿ｃｏｐｙｉｄｘが示すオフセット位置にコピーする。
【００７９】
（ｕ４ｔ＿ｃｏｐｙａｄｒ＋アドレスオフセット）がｕ４ｔ＿ｎｅｘｔａｄｒ以上、つまり処理気筒のＣＰＳ出力値ＡまたはＣＰＳ出力値Ｂの記憶アドレスが次のクランク角度におけるＡＤ変換データの先頭の記憶アドレス以上の場合（Ｓ４６４：Ｎｏ）、コピー対象であるＡＤ変換データは次のクランク角度におけるＡＤ変換データにより上書きされていると判断する。
【００８０】
この場合、上書きされたＡＤ変換データはコピーできないので本処理を終了する。つまり、公開データ領域において該当する処理気筒のＡＤ変換データには初期値が設定された状態になる。この初期値は、以上説明した異常検出処理により、ＣＰＳ６６の出力として取り得ない値である「０」に設定されている。
【００８１】
以上説明したように、ＡＤ変換処理が公開データ領域にコピーした筒内圧の公開データを、ＡＤ変換処理以外の他の処理、例えば異常燃焼の判定処理が参照して初期値であることが分かると、異常判定を中断するか、あるいは異常値に該当するクランク角度におけるＡＤ変換データを前後のクランク角度における正常なＡＤ変換データにより補間するなどの適切な処理を実行できる。その結果、異常なＡＤ変換データに基づいて異常燃焼の有無を誤判定することを防止できる。
【００８２】
［他の実施形態］
上記実施形態では、ＡＤ変換の抜けと、前後に隣接するクランク角度において前のクランク角度におけるＡＤ変換データの一部が後のクランク角度におけるＡＤ変換データにより上書きされているときとの両方において、抜けている場合には公開データ領域の該当するクランク角度のデータ、上書きされている場合にはクランク角度の上書きされている部分に、ＣＰＳ６６の出力信号のＡＤ変換データとしてあり得ない異常値を設定した。
【００８３】
これに対し、本発明では、抜けている場合または上書きされている場合の一方においてだけ、公開データ領域の該当部分に異常値を設定してもよい。
また、上書きされている場合には、上書きされていない部分も含め該当するクランク角度のデータをすべて異常値に設定してもよい。
【００８４】
上記実施形態では、記憶手段、結果判定手段、設定手段、および加速判定手段の機能を、制御プログラムにより機能が特定されるエンジンＥＣＵ１０により実現している。これに対し、上記複数の手段の機能の少なくとも一部を、回路構成自体で機能が特定されるハードウェアで実現してもよい。
【００８５】
このように、本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。
【符号の説明】
【００８６】
１０：エンジンＥＣＵ（ＡＤ変換処理装置）、２０：マイコン（ＡＤ変換手段、記憶手段、結果判定手段、設定手段、加速判定手段）、２６：ＲＡＭ（記憶装置）、３２：ＡＤＣ（ＡＤ変換手段）、２００：変換データ領域、２０２：クランク角度領域、２０４：変換時刻領域、２０６：記憶アドレス領域（記憶位置領域）、２１０、２１２：公開データ領域
【図１】
0005799891.tif 000002
【図２】
0005799891.tif 000003
【図３】
0005799891.tif 000004
【図４】
0005799891.tif 000005
【図５】
0005799891.tif 000006
【図６】
0005799891.tif 000007
【図７】
0005799891.tif 000008
【図８】
0005799891.tif 000009
【図９】
0005799891.tif 000010
【図１０】
0005799891.tif 000011
【図１１】
0005799891.tif 000012
【図１２】
0005799891.tif 000013
【図１３】
0005799891.tif 000014