(57)【要約】【課題】  クランク軸センサからの信号に有効エッジが発生するクランク角度間隔よりも短いクランク角度間隔毎に特定の処理を実行するのに好適な処理装置を提供する。【解決手段】  １０°ＣＡ毎に立ち上がりエッジが生じるＮＥ信号が入力されるマイコンでは、そのＮＥ信号が立ち上がる毎のインプットキャプチャ割り込みの処理により、ＮＥ信号の今回の立ち上がりエッジ間隔時間を算出すると共に、その時間を１０で割って１°ＣＡ分の時間Ｔ１を算出し、更に、故意の遅延時間Ｔｚが経過したときにタイマ割り込みを発生させる設定を行う。そして、そのタイマ割り込みの処理である測定開始処理で、上記Ｔ１毎にＰＷＭ割り込みを発生させる設定と、燃焼圧センサからの信号値を読み取る測定処理とを行い、更に、ＰＷＭ割り込み処理でも同じ測定処理を行う。このため、ＮＥ信号の立ち上がり時からＴｚ後のタイミングを基準としてＴ１毎に測定処理が行われる。【選択図】  図８
2005315169.tif 000002
【特許請求の範囲】
【請求項１】
エンジンのクランク軸の回転に応じて該クランク軸が所定角度回転する毎にパルスエッジが発生する回転信号をクランク軸センサから入力し、該回転信号に前記所定角度毎のパルスエッジ（以下、有効エッジという）が発生する毎に、該有効エッジが前回発生してから今回発生するまでの１パルス間隔時間を計測すると共に、該計測値に基づき前記クランク軸が前記所定角度よりも小さい一定角度回転する時間を算出し、その算出した時間毎に特定の処理を実行するマイコンからなる処理装置であって、
前記回転信号に前記有効エッジが発生する毎に、インプットキャプチャ割り込みが発生し、
該インプットキャプチャ割り込みの処理により、
当該インプットキャプチャ割り込みが前回発生した時刻から今回発生した時刻までの時間を前記１パルス間隔時間として算出する第１の時間算出処理と、
該第１の時間算出処理により算出された前記１パルス間隔時間に基づいて、前記クランク軸が前記一定角度回転する時間を算出する第２の時間算出処理と、
所定の遅延時間が経過したときに当該インプットキャプチャ割り込み以外の他の割り込み（以下、初回割り込みという）を発生させるための設定を行う初回割り込み設定処理とが実行され、
更に、前記初回割り込みの処理が実行されることで、以後、その初回割り込みの処理が次に実行されるまでの間、前記第２の時間算出処理で算出された時間毎に前記インプットキャプチャ割り込み以外の他の割り込み（以下、２回目以降割り込みという）が発生するようになっており、
前記初回割り込みの処理と、前記２回目以降割り込みの処理との各々で、前記特定の処理が実行されること、
を特徴とするクランク軸回転同期の処理装置。
【請求項２】
請求項１に記載のクランク軸回転同期の処理装置において、
前記インプットキャプチャ割り込みの処理のうちの前記初回割り込み設定処理では、前記第１の時間算出処理により算出された前記１パルス間隔時間に基づいて、前記クランク軸が所定のオフセット角度回転するのに要する時間であるオフセット時間を算出すると共に、前記初回割り込みが発生してから前記特定の処理が実行されるまでの処理遅れ時間を前記オフセット時間から引いた時間を、前記遅延時間とすること、
を特徴とするクランク軸回転同期の処理装置。
【請求項３】
請求項１又は請求項２に記載のクランク軸回転同期の処理装置において、
当該処理装置としてのマイコンは、設定された周期及びデューティ比のＰＷＭ信号を出力すると共に、前記ＰＷＭ信号の１周期毎にＰＷＭ割り込みを繰り返し発生させるＰＷＭ機能部を有しており、
前記２回目以降割り込みは、前記ＰＷＭ割り込みであり、
更に、前記初回割り込みの処理では、
前記特定の処理と、
前記ＰＷＭ機能部に前記周期として前記第２の時間算出処理で算出された時間を設定すると共に、前記ＰＷＭ機能部の作動を許可することにより、以後、前記第２の時間算出処理で算出された時間毎に前記２回目以降割り込みとしてのＰＷＭ割り込みを発生させる２回目以降割り込み設定処理とを実行すること、
を特徴とするクランク軸回転同期の処理装置。
【請求項４】
請求項１ないし請求項３の何れか１項に記載のクランク軸回転同期の処理装置において、
前記初回割り込みと前記２回目以降割り込みとが、同じ割り込みであること、
を特徴とするクランク軸回転同期の処理装置。
【請求項５】
請求項１ないし請求項４の何れか１項に記載のクランク軸回転同期の処理装置において、
前記回転信号に基づいて、前記エンジンの１サイクルにおける前記クランク軸の回転位置であるクランク位置を検出するクランク位置検出手段を備え、
前記インプットキャプチャ割り込みの処理のうちの前記初回割り込み設定処理では、前記クランク位置検出手段により検出されている現在のクランク位置が、前記エンジンの気筒毎に設定された各クランク位置範囲のうちの何れに入っているかを判別し、その判別したクランク位置範囲毎に前記遅延時間を設定するようになっていること、
を特徴とするクランク軸回転同期の処理装置。
【請求項６】
請求項１ないし請求項５の何れか１項に記載のクランク軸回転同期の処理装置において、
前記特定の処理は、
前記エンジンの気筒の燃焼圧を検出する燃焼圧センサからの信号値と、前記エンジンのノッキングを検出するノックセンサからの信号値と、前記エンジンの燃焼によって生じるイオン電流を検出するイオン電流センサからの信号値とのうちの、少なくとも何れか１つを読み取る測定処理であること、
を特徴とするクランク軸回転同期の処理装置。
【請求項７】
請求項６に記載のクランク軸回転同期の処理装置を備え、
前記特定の処理としての測定処理で読み取られた信号値を用いて前記エンジンを制御すること、
を特徴とするエンジン制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジン制御に関し、特にクランク軸の回転に同期して処理を行う技術に関するものである。
【背景技術】
【０００２】
従来より、エンジン制御の分野においては、エンジンのシリンダヘッド側に燃焼室内（気筒内）の圧力を検出するための燃焼圧センサ（燃焼室圧センサとも呼ばれる）を設け、そのセンサからの燃焼圧信号を取り込こんで、点火時期や空燃比の制御に用いることが知られている（例えば、特許文献１参照）。
【０００３】
そして、燃焼圧センサからの燃焼圧信号は、失火検出、リーンリミットの設定、燃焼変動抑制、ＭＢＴ（Minimum Advance for the Best Torque）の設定、ノック制御、ＥＧＲ制御、バルブタイミング制御、気筒判別などにも用いることができる。
【０００４】
ここで特に、エンジンを制御する制御装置の開発時においては、例えば、環境面での法規強化に対応するためや、制御に用いる適合定数を最適化して削減するために、燃焼圧センサからの燃焼圧信号を、エンジンのクランク軸の回転に同期し且つ波形をトレースするような細かいタイミングで測定したいという要望がある。
【０００５】
具体的には、例えば１°ＣＡ毎（クランク軸が１°回転する毎）程度の細かいタイミングで燃焼圧信号の信号値（つまり、燃焼圧）を測定して、横軸＝クランク位置、縦軸＝燃焼圧のグラフを作成するようなイメージである。尚、「ＣＡ」とは、クランク角度を意味しており、クランク位置とは、エンジンの１サイクルにおけるクランク軸の回転位置である。
【０００６】
また、こうした要望は、燃焼圧信号についてのみならず、例えばエンジンのノッキングを検出するノックセンサからの信号などについても同様に存在する。
つまり、高機能、高精度、低コストなエンジン制御装置を開発し実現するためには、各種センサからの信号を、クランク軸の回転に同期しつつ出来るだけ細かいタイミングで測定することが欠かせないと考えられる。
【０００７】
一方、エンジン制御の分野においては、クランク軸の回転に応じて回転信号を出力するクランク軸センサがエンジン側に設けられると共に、その回転信号には、クランク軸が所定角度回転する毎（換言すれば、所定クランク角度毎であり、例えば１０°ＣＡ毎）にパルスエッジが発生するようになっている。
【０００８】
そして、このような回転信号から、該回転信号に有効エッジが発生するクランク角度間隔（上記例では１０°ＣＡ）よりも小さいクランク角度間隔毎のタイミングを発生させる回路として、例えば特許文献２には、回転信号に有効エッジが発生する間隔を計測するエッジ時間計測カウンタと、回転信号に有効エッジが発生すると上記エッジ時間計測カウンタによる今回の計測値を逓倍数Ｎで除算した値がセットされるエッジ時間記憶レジスタと、そのエッジ時間記憶レジスタに記憶された時間毎に、逓倍クロック（詳しくは、周期が回転信号の周期の逓倍数Ｎ分の１であるクロック）としてのパルスを発生させる逓倍カウンタと、からなるものが記載されている。
【０００９】
このため、上記逓倍カウンタからパルスが出力される毎に、センサからの信号値を読み取る測定処理などを行えば、その処理を、クランク軸の回転に同期し、且つ、回転信号に有効エッジが発生するクランク角度間隔（＝Ｚ）よりも短いクランク角度間隔（＝Ｚ÷Ｎ）毎のタイミングで実行することができる。
【特許文献１】特開平９−２７３４３７号公報
【特許文献２】特開２００１−２００７４７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記特許文献２に記載されているようなハードウェア回路では、処理タイミングの発生するクランク角度間隔（＝Ｚ÷Ｎ）が固定となってしまう上に、クランク軸センサからの回転信号に有効エッジが発生した時点から任意のクランク角度（＜Ｚ）後のタイミングを基準として上記Ｚよりも短い一定のクランク角度間隔毎に所望の処理を実行したい、という要望を満足することができない。
【００１１】
そこで本発明は、クランク軸センサからの回転信号に有効エッジが発生するクランク角度間隔よりも短いクランク角度間隔毎に特定の処理を実行するのに好適な処理装置の提供を目的としている。
【課題を解決するための手段】
【００１２】
上記目的を達成するためになされた請求項１に記載のクランク軸回転同期の処理装置は、マイコンからなる。そして、このマイコンからなる処理装置は、エンジンのクランク軸の回転に応じて該クランク軸が所定角度回転する毎（所定クランク角度毎）にパルスエッジが発生する回転信号をクランク軸センサから入力し、その回転信号に前記所定角度毎のパルスエッジである有効エッジが発生する毎に、該有効エッジが前回発生してから今回発生するまでの１パルス間隔時間Ｔａを計測すると共に、該計測値に基づきクランク軸が前記所定角度よりも小さい一定角度回転する時間Ｔｂを算出し、その算出した時間Ｔｂ毎に特定の処理を実行する。
【００１３】
ここで特に、この処理装置では、回転信号に有効エッジが発生する毎に、インプットキャプチャ割り込みが発生し、そのインプットキャプチャ割り込みの処理により、当該インプットキャプチャ割り込みが前回発生した時刻から今回発生した時刻までの時間を回転信号の１パルス間隔時間Ｔａとして算出する第１の時間算出処理と、該第１の時間算出処理により算出された１パルス間隔時間Ｔａに基づいて、クランク軸が前記一定角度回転する時間Ｔｂを算出する第２の時間算出処理と、所定の遅延時間Ｔｚが経過したときに当該インプットキャプチャ割り込み以外の他の割り込みである初回割り込みを発生させるための設定を行う初回割り込み設定処理とが実行される。
【００１４】
尚、インプットキャプチャ割り込みとは、マイコンに備えられたインプットキャプチャ機能によって発生される割り込みであり、具体的には、ある端子に入力される信号に特定のエッジが発生すると、その時のフリーランタイマの値が内部のインプットキャプチャレジスタに現在時刻として記憶（キャプチャ）されると共に、その時に発生する割り込みである。このため、第１の時間算出処理では、インプットキャプチャレジスタに今回記憶された時刻から前回記憶された時刻を引くことで、回転信号の１パルス間隔時間Ｔａを算出することができる。また、上記所定角度をＣＡａとし、上記一定角度をＣＡｂとすると、「ＣＡａ÷ＣＡｂ」が逓倍数Ｎであり、第２の時間算出処理では、「Ｔａ÷（ＣＡａ÷ＣＡｂ）」の値を、上記Ｔｂとして算出することができる。
【００１５】
そして更に、この処理装置では、インプットキャプチャ割り込みの処理のうちの初回割り込み設定処理で設定される初回割り込みの処理が実行されることで、以後、その初回割り込みの処理が次に実行されるまでの間、前記第２の時間算出処理で算出された時間Ｔｂ毎にインプットキャプチャ割り込み以外の他の割り込みである２回目以降割り込みが発生するようになっており、前記初回割り込みの処理と、前記２回目以降割り込みの処理との各々で、前記特定の処理が実行される。
【００１６】
つまり、この処理装置では、回転信号に有効エッジが発生すると、インプットキャプチャ割り込みが発生し、それから所定の遅延時間Ｔｚが経過した時に、初回割り込みが発生して、その初回割り込みの処理中で特定の処理（即ち、１回目の特定の処理）が行われ、更に、その後は、クランク軸が一定角度ＣＡｂ（＜ＣＡａ）回転する時間Ｔｂ毎に、２回目以降割り込みが発生して、その各２回目以降割り込みの処理中で特定の処理（即ち、２回目以降の特定の処理）が行われることとなる。よって、この処理装置では、回転信号に有効エッジが発生した時点から、いわば故意の位相ずれ時間である遅延時間Ｔｚが経過したタイミングを基準として、クランク軸が一定角度ＣＡｂ回転する時間Ｔｂ毎に特定の処理を実行することとなる。
【００１７】
このような本発明の処理装置によれば、下記（１）〜（３）の効果が得られる。
（１）特定の処理の実行タイミングであって、クランク軸センサからの回転信号に有効エッジが発生するクランク角度間隔（ＣＡａ）よりも短いクランク角度間隔（ＣＡｂ）毎のタイミングを、ソフトウェアだけで発生させることができ、先行文献２に記載されているようなタイミング発生用の専用ハードウェア回路が不要であるため、装置を安価に構成することができる。
【００１８】
（２）ソフトウェアで実現できるため、逓倍数Ｎ（つまり、タイミングを発生させるクランク角度間隔ＣＡｂ）を、簡単に、しかも動的にも変更することができる。
（３）インプットキャプチャ割り込みの処理のうちの初回割り込み設定処理で設定する遅延時間Ｔｚにより、回転信号に有効エッジが発生した時点から特定の処理が１回目に実行される基準タイミングを、任意のクランク角度後のタイミングに設定することができる。
【００１９】
特に、請求項２に記載の如く、初回割り込み設定処理では、第１の時間算出処理により算出された１パルス間隔時間Ｔａに基づいて、クランク軸が所定のオフセット角度ＯＳＡ回転するのに要する時間であるオフセット時間Ｔｏｓを算出すると共に、初回割り込みが発生してから特定の処理が実行されるまでの処理遅れ時間Ｔｄをオフセット時間Ｔｏｓから引いた時間（＝Ｔｏｓ−Ｔｄ）を、上記遅延時間Ｔｚとして設定すれば、回転信号に有効エッジが発生した時点から１回目の特定の処理が実行される基準タイミングを、回転信号に有効エッジが発生した時点からクランク軸がオフセット角度ＯＳＡだけ回転したタイミングに正確に設定することができる。
【００２０】
このように本発明の処理装置によれば、回転信号に有効エッジが発生した時点から任意のクランク角度後のタイミングを基準として、回転信号に有効エッジが発生するクランク角度間隔よりも短い一定のクランク角度間隔毎に所望の処理を実行したい、という要望を満足することができる。
【００２１】
ところで、初回割り込みと２回目以降割り込みとの各々としては、タイマ割り込みを用いることができる。尚、ここで言うタイマ割り込みとは、時刻が設定されるとその時刻に発生することとなる割り込みの総称であり、基本的なコンペアタイマ割り込み（コンペアレジスタにセットされた時刻の値とフリーランタイマ値とが一致すると発生する割り込み）だけではなく、例えば、そのようなコンペアタイマ割り込みの機能に加えて、割り込みの発生と共に外部へ信号を出力するものや、割り込みの発生と共にＡ／Ｄ変換器を起動するものなど、割り込みの発生時に他の何らかの動作が行われるものも含む。また、初回割り込みとして用いるタイマ割り込みと、２回目以降割り込みとして用いるタイマ割り込みは、同じ割り込みであっても良いし、異なる割り込みであっても良い。
【００２２】
そして、２回目以降割り込みとして、タイマ割り込みを用いた場合には、その２回目以降割り込みの処理中で、次回の２回目以降割り込みの発生時刻を再設定する処理を行えばよい。
【００２３】
また、２回目以降割り込みの処理で次回の割り込み発生時刻を再設定しなくても済むようにするには、請求項３の構成を採ればよい。
即ち、請求項３の処理装置では、当該処理装置としてのマイコンがＰＷＭ機能部を備えている。尚、ＰＷＭ機能部は、作動が許可されると、設定された周期及びデューティ比のＰＷＭ信号を出力すると共に、そのＰＷＭ信号の１周期毎にＰＷＭ割り込みを繰り返し発生させるものである。
【００２４】
そして、この処理装置では、２回目以降割り込みとして、そのＰＷＭ機能部によるＰＷＭ割り込みを用いている。
そして更に、初回割り込みの処理では、前記特定の処理と、ＰＷＭ機能部に周期として第２の時間算出処理で算出された時間Ｔｂを設定すると共に、そのＰＷＭ機能部の作動を許可することにより、以後、時間Ｔｂ毎に２回目以降割り込みとしてのＰＷＭ割り込みを発生させる２回目以降割り込み設定処理とを実行する。
【００２５】
このような請求項３の処理装置によれば、２回目以降割り込みの処理で次回の２回目以降割り込みが発生するように再設定しなくても良く、処理負荷を低減させることができる。
【００２６】
一方、請求項４に記載のように、初回割り込みと２回目以降割り込みとの各々として、同じ割り込みを用いれば、リソース（即ち、使用する割り込み）を節約できるという面で有利である。
【００２７】
次に、請求項５の処理装置は、回転信号に基づいてエンジンの１サイクルにおけるクランク軸の回転位置であるクランク位置を検出するクランク位置検出手段を備えている。
そして、この処理装置において、インプットキャプチャ割り込みの処理のうちの初回割り込み設定処理では、クランク位置検出手段により検出されている現在のクランク位置が、エンジンの気筒毎に設定された各クランク位置範囲のうちの何れに入っているかを判別すると共に、その判別したクランク位置範囲毎に遅延時間Ｔｚを設定するようになっている。
【００２８】
このような処理装置によれば、例えば、クランク位置が第１気筒用のクランク位置範囲に入っている場合には、遅延時間Ｔｚが第１気筒用の遅延時間Ｔｚ１に設定され、クランク位置が第２気筒用のクランク位置範囲に入っている場合には、遅延時間Ｔｚが第２気筒用の遅延時間Ｔｚ２に設定される、といった具合に、遅延時間Ｔｚが各気筒のクランク位置範囲毎に設定されることとなる。よって、回転信号に有効エッジが発生した時点から１回目の特定の処理が実行されるタイミングを、各気筒のクランク位置範囲毎に設定することができる。尚、請求項２の処理装置では、オフセット角度を各気筒のクランク位置範囲毎に設定するように構成すれば良い。
【００２９】
このため、例えば、各気筒毎に燃焼圧センサ等のセンサが設けられており、特定の処理として、各気筒毎のクランク位置範囲のうちで現在のクランク位置が入っているクランク位置範囲に該当する気筒のセンサから信号値を読み取る、といった処理を行う場合には、各センサの個体差等をも考慮した適切なクランク位置のタイミングで、そのセンサからの信号値を読み取ることができるようになる。尚、センサからの信号値を読み取るとは、そのセンサから出力される信号の値を読み取る、という意味である。
【００３０】
また、請求項１〜５の処理装置において、特定の処理としては、請求項６に記載のように、エンジンの気筒の燃焼圧を検出する燃焼圧センサからの信号値と、エンジンのノッキングを検出するノックセンサからの信号値と、エンジンの燃焼によって生じるイオン電流を検出するイオン電流センサからの信号値とのうちの、少なくとも何れか１つを読み取る測定処理を行うのが好ましい。
【００３１】
つまり、特定の処理として、燃焼圧センサからの信号値を読み取る測定処理を行えば、その測定処理で読み取った結果の計測データは、エンジンの点火時期制御、空燃比制御、失火検出、リーンリミットの設定、燃焼変動抑制、ＭＢＴの設定、ノック制御、ＥＧＲ制御、バルブタイミング制御、気筒判別などに用いることができ、高機能、高精度、低コストなエンジン制御装置を開発し実現するのに有効であるからである。
【００３２】
また、特定の処理として、ノックセンサからの信号値を読み取る測定処理を行えば、その測定処理で読み取った結果の計測データは、ノック制御に用いることができ、この場合にも、高機能、高精度、低コストなエンジン制御装置を開発し実現するのに有効であるからである。
【００３３】
また、特定の処理として、イオン電流センサからの信号値を読み取る測定処理を行っても、そのイオン電流センサの信号値（即ち、イオン電流）からは、エンジンのノッキングや失火等を検出することができるため、この場合にも、高機能、高精度、低コストなエンジン制御装置を開発し実現するのに有効である。
【００３４】
このため、請求項６の処理装置をエンジン制御装置に設けて、そのエンジン制御装置が、前記特定の処理としての測定処理で読み取られた信号値を用いてエンジンを制御するように構成すれば、高機能、高精度、低コストなエンジン制御装置を実現できる。
【発明を実施するための最良の形態】
【００３５】
以下に、本発明が適用された実施形態の燃焼圧計測装置について、図面を用いて説明する。尚、本実施形態の燃焼圧計測装置は、複数気筒（ここでは例えば４気筒）の４ストローク１サイクルエンジンについて、その各気筒毎に設けられた燃焼圧センサからの信号値を一定のクランク角度毎（本実施形態では１°ＣＡ毎）に読み取って、その読み取った各信号値を計測データとして計測機器へ出力するものである。
【００３６】
図１に示すように、本実施形態の燃焼圧計測装置１は、マイコン（マイクロコンピュータ）３と、入力回路５，７と、外部の計測機器８と通信するための通信回路９とを備えている。
【００３７】
そして、この燃焼圧計測装置１では、エンジンに取り付けられたクランク軸センサ１１からの回転信号（以下、ＮＥ信号という）が、入力回路５を介してマイコン３に入力され、また、エンジンに取り付けられたカム軸センサ１３からの気筒判別用信号（以下、Ｇ信号という）が、入力回路７を介してマイコン３に入力される。
【００３８】
ここで、クランク軸センサ１１は、エンジンのクランク軸に固定されたロータ１１ａと、そのロータ１１ａの外周に対向して設けられ、該ロータ１１ａの外周に所定角度（本実施形態では１０°）毎の間隔で形成された歯を検出してパルスを出力する電磁ピックアップ式やホールＩＣ式等の信号出力部１１ｂとからなる。そして、上記ロータ１１ａの外周には、歯が２個欠損した歯欠損部Ｋが１つ設けられている。
【００３９】
このため、クランク軸センサ１１（詳しくは、その信号出力部１１ｂ）から入力回路５を介してマイコン３に入力されるＮＥ信号は、クランク軸が１０°回転する毎（１０°ＣＡ毎）にローレベル→ハイレベル→ローレベルといった具合にパルス状に変化すると共に、クランク軸の回転位置が、上記ロータ１１ａの歯欠損部Ｋが信号出力部１１ｂに対向することとなる基準位置に来た時には、該ＮＥ信号の立ち上がりエッジ間隔が３倍長くなる。よって、ＮＥ信号には、１０°ＣＡ毎に有効エッジとしての立ち上がりエッジが発生すると共に、クランク軸の回転位置が基準位置に来ると、立ち上がりエッジが２個欠落した欠歯部が現れることとなる。
【００４０】
一方、カム軸センサ１３は、クランク軸の回転に対して１／２の比率で回転するエンジンのカム軸に固定されたロータ１３ａと、そのロータ１３ａの外周に対向して設けられ、該ロータ１３ａの外周における凹凸に応じてハイレベルとローレベルとに変化するＧ信号を出力する磁気抵抗素子（ＭＲＥ）式の信号出力部１３ｂとからなる。また、ロータ１３ａの外周は、半周分（１８０°分）が凸で、他の半周分が凹となっている。
【００４１】
そして、カム軸センサ１３（詳しくは、その信号出力部１３ｂ）から入力回路７を介してマイコン３に入力されるＧ信号は、クランク軸センサ１１からのＮＥ信号が１０°ＣＡ毎に立ち上がるパルス信号となっている期間中に論理レベルが１回反転し、ＮＥ信号に欠歯部が現れるタイミングでは、その各タイミング毎に交互に異なったレベルとなる。
【００４２】
よって、ＮＥ信号に欠歯部が現れたときのＧ信号のレベルから、そのときのクランク位置を正確に特定することができる。例えば、ＮＥ信号に欠歯部が現れたときのＧ信号がハイレベルならば、現在のクランク位置が基準のクランク位置（ここではＲ°ＣＡとする）であると特定することができ、逆にＧ信号がローレベルならば、現在のクランク位置がＲ°ＣＡから３６０°ＣＡだけ進んだクランク位置であると特定することができる。そして、このようにしてクランク位置を特定した後は、ＮＥ信号に立ち上がりエッジが発生した回数を計数していくことで、現在のクランク位置を１０°ＣＡ単位で把握することができる。尚、こうしたクランク位置の検出技術は、例えば特開２００１−９０６００号公報等に記載されている。
【００４３】
また、マイコン３には、各気筒の燃焼圧センサ１５＃１〜１５＃４からそれぞれ出力される４つの燃焼圧信号が入力される。そして、その各燃焼圧信号は、マイコン３に内蔵されたＡ／Ｄ変換器１７によってそれぞれＡ／Ｄ変換される。尚、燃焼圧センサの各符号における＃１〜＃４の添え字は、それが１番気筒（＃１）〜４番気筒（＃４）のうちの何れに対応するものかを示している。そして、以下の説明において、燃焼圧センサについて、何れの気筒に対応するものかを特に区別しない場合には、それらの符号として、＃１〜＃４の添え字を省略したもの（つまり、１５）を用いる。
【００４４】
次に、マイコン３の構成及び動作の概要について説明する。
図１に示すように、マイコン３は、前述したＡ／Ｄ変換器１７の他に、フリーランタイマ（ＦＲＴ）１８と、インプットキャプチャ部１９と、遅延機能部２１と、ＰＷＭ機能部２３とを備えている。
【００４５】
そして更に、マイコン３は、図示しないプログラムメモリ（例えばＥＥＰＲＯＭやフラッシュＲＯＭ）に記憶されたプログラムを当該マイコン３が実行することで実現される機能手段として、１０°ＣＡ間隔時間算出手段２５と、クランク位置検出手段２７と、１°ＣＡ間隔時間算出手段２９と、測定開始時刻算出手段３１と、測定開始手段３３と、燃焼圧測定手段３５とを備えている。尚、これら各手段２５〜３５の実体はプログラムである。
【００４６】
ここで、インプットキャプチャ部１９は、既述した周知のインプットキャプチャ機能を実現するハードウェア部分であり、マイコン３の端子のうちの特定端子に入力される信号にエッジ（本実施形態では立ち上がりエッジ）が発生すると、その時のフリーランタイマ１８の値を当該インプットキャプチャ部１９内のインプットキャプチャレジスタ（図示省略）に現在時刻として記憶（キャプチャ）すると共に、インプットキャプチャ割り込みを発生させる。
【００４７】
そして、本実施形態において、マイコン３の上記特定端子には、入力回路５からのＮＥ信号が入力されるようになっている。
このため、ＮＥ信号に立ち上がりエッジが発生する毎に、インプットキャプチャ割り込みが発生すると共に、その時のフリーランタイマ１８の値が現在時刻としてインプットキャプチャレジスタに記憶される。
【００４８】
遅延機能部２１は、周知のコンペアタイマ割り込み機能を実現するハードウェア部分であり、ソフトウェアによって当該遅延機能部２１内のコンペアレジスタ（図示省略）にセットされた時刻の値と、フリーランタイマ１８の値とを常時比較し、その両値が一致すると、コンペアタイマ割り込み（以下単に、タイマ割り込みという）を発生させる。
【００４９】
ＰＷＭ機能部２３は、ソフトウェアによって設定された周期及びデューティ比のＰＷＭ信号をマイコン３の外部へ繰り返し出力するためのハードウェア部分であり、ソフトウェアによって作動が許可されると、設定された周期及びデューティ比のＰＷＭ信号を出力すると共に、そのＰＷＭ信号の１周期毎にＰＷＭ割り込みを発生させる。尚、少なくともＰＷＭ信号の周期（つまり、ＰＷＭ割り込みの発生周期）は、任意のタイミングで変更可能である。
【００５０】
１０°ＣＡ間隔時間算出手段２５は、ＮＥ信号に立ち上がりエッジが発生してインプットキャプチャ割り込みが発生する毎に起動し、インプットキャプチャレジスタに今回記憶された時刻から前回記憶された時刻を引いた時間を、ＮＥ信号の立ち上がりエッジ間隔の時間（回転信号の１パルス間隔時間に相当し、以下、１０°ＣＡ間隔時間Ｔ１０という）として算出する。
【００５１】
クランク位置検出手段２７も、インプットキャプチャ割り込みが発生する毎に動作し、下記（ａ）〜（ｃ）の手順によりクランク位置を検出する。
（ａ）１０°ＣＡ間隔時間算出手段２５によって今回算出された１０°ＣＡ間隔時間Ｔ１０と、１０°ＣＡ間隔時間算出手段２５によって前回算出された１０°ＣＡ間隔時間Ｔｏｌｄとを比較して、その両時間Ｔ１０，Ｔｏｌｄの比（＝Ｔ１０／Ｔｏｌｄ）が所定の欠歯判定比Ｈ以上であるか否かを判定し、「（Ｔ１０／Ｔｏｌｄ）≧Ｈ」であれば、ＮＥ信号に欠歯部が現れた（即ち、ＮＥ信号の今回の立ち上がりエッジ間が欠歯部である）と判定する。
【００５２】
（ｂ）上記（ａ）の判定で、ＮＥ信号に欠歯部が現れたと判定した場合には、そのときのＧ信号のレベルを読み取る。そして、Ｇ信号のレベルがハイならば、現在のクランク位置が、ある基準のクランク位置（ここではＲ°ＣＡとする）であると特定して、クランク位置を示すクランクカウンタの値を、「Ｒ°ＣＡ」を示す値に設定し、また、Ｇ信号のレベルがローならば、現在のクランク位置が上記Ｒ°ＣＡから３６０°ＣＡだけ進んだクランク位置であると特定して、クランクカウンタの値を、「（Ｒ＋３６０）°ＣＡ」を示す値に設定する。
【００５３】
（ｃ）上記（ａ）の判定で、ＮＥ信号に欠歯部が現れていないと判定した場合、エンジンが始動されてから未だ上記（ｂ）の動作でクランク位置が特定されていなければ、そのまま動作を終了するが、上記（ｂ）の動作でクランク位置が特定されていれば、クランクカウンタの値を１０°ＣＡ分だけカウントアップさせる。また、このカウントアップ処理では、クランクカウンタの値が７２０°ＣＡを示す最大値になると該クランクカウンタの値を０°ＣＡを示す値に戻すことも行う。
【００５４】
そして、こうしたクランク位置検出手段２７の動作により、クランク位置を１０°ＣＡ単位で表すクランクカウンタの値が確定して更新され、延いては、クランク位置が１０°ＣＡ単位で検出されることとなる。
【００５５】
１°ＣＡ間隔時間算出手段２９も、インプットキャプチャ割り込みが発生する毎に動作する。そして、１°ＣＡ間隔時間算出手段２９は、１０°ＣＡ間隔時間算出手段２５によって今回算出された１０°ＣＡ間隔時間Ｔ１０を１０で割ることにより、クランク軸が１°回転するのに要する時間（１°ＣＡ分の時間）である１°ＣＡ間隔時間Ｔ１（＝Ｔ１０÷１０）を算出する。
【００５６】
測定開始時刻算出手段３１も、インプットキャプチャ割り込みが発生する毎に動作する。そして、測定開始時刻算出手段３１は、今回のインプットキャプチャ割り込みの発生時から測定開始手段３３が起動されるまでのディレイ時間（遅延時間）を、１０°ＣＡ間隔時間算出手段２５によって今回算出された１０°ＣＡ間隔時間Ｔ１０、クランク位置検出手段２７により検出されているクランク位置（クランクカウンタの値）、及び処理遅れ時間等に応じて算出し、今回のインプットキャプチャ割り込みの発生時から上記算出したディレイ時間だけ後の時刻を、遅延機能部２１のコンペアレジスタにセットする。すると、そのセットされた時刻にタイマ割り込みが発生することとなる。
【００５７】
測定開始手段３３は、遅延機能部２１によるタイマ割り込みが発生すると起動する。そして、測定開始手段３３は、ＰＷＭ機能部２３に、ＰＷＭ信号の周期として、１°ＣＡ間隔時間算出手段２９で算出されている１°ＣＡ間隔時間Ｔ１をセットすると共に、ＰＷＭ信号のデューティ比として所定値（本実施形態では５０％）をセットした上で、そのＰＷＭ機能部２３の作動を許可する。すると、その時点から１°ＣＡ間隔時間Ｔ１が経過する毎に、ＰＷＭ割り込みが発生することとなる。そして更に、測定開始手段３３は、燃焼圧測定手段３５を起動させる。
【００５８】
燃焼圧測定手段３５は、測定開始手段３３によって起動される他に、ＰＷＭ機能部２３によるＰＷＭ割り込みが発生する毎にも起動する。つまり、燃焼圧測定手段３５は、ＮＥ信号に立ち上がりエッジが生じると、測定開始時刻算出手段３１によって算出されるディレイ時間の経過後に、測定開始手段３３によって最初に起動され、その後は、１°ＣＡ間隔時間算出手段２９で算出された１°ＣＡ間隔時間Ｔ１毎に、ＰＷＭ割り込みが発生して起動されることとなる。そして、燃焼圧測定手段３５は、起動する毎に、Ａ／Ｄ変換器１７から燃焼圧信号のＡ／Ｄ変換値（即ち、燃焼圧センサ１５からの燃焼圧信号の信号値）を読み取って、マイコン３内の図示しない作業用メモリ（例えばＲＡＭ）に順次記憶する。尚、作業用メモリに記憶された各Ａ／Ｄ変換値は、計測データとして、通信回路９から外部の計測機器８へ出力される。また、ＰＷＭ機能部２３によってマイコン３から出力されるＰＷＭ信号は、該マイコン３の動作状態を確認するためのタイミングモニタ信号として、本燃焼圧計測装置１の外部へ出力される。
【００５９】
次に、マイコン３が実行する上記各手段２５〜３５としての処理について、図２〜図７のフローチャートに基づき説明する。
まず図２は、マイコン３が動作を開始した時に実行するイニシャル処理を表すフローチャートである。尚、マイコン３は、車両のイグニッションスイッチがオンされて図示しない電源回路からの動作電圧が供給されることにより動作を開始する。
【００６０】
マイコン３がこのイニシャル処理を開始すると、まずＳ１１０にて、ＰＷＭ割り込みを禁止し、続くＳ１２０にて、ＰＷＭ機能部２３によるＰＷＭ信号の出力を停止させることで、該ＰＷＭ機能部２３の作動を禁止する。
【００６１】
そして、続くＳ１３０にて、ＰＷＭ割り込みの処理を有効にしているか否かを示す動作フラグをオフし（即ち、動作フラグにオフを示す０をセットし）、続くＳ１４０にて、制御上必要な処理を行った後、当該イニシャル処理を終了する。
【００６２】
尚、本実施形態において、Ｓ１４０では、Ａ／Ｄ変換器１７をループモードで起動する処理を行う。すると、以後、Ａ／Ｄ変換器１７は、燃焼圧センサ１５＃１〜１５＃４からの燃焼圧信号を常時繰り返しＡ／Ｄ変換することとなる。
【００６３】
次に、図３は、ＮＥ信号の立ち上がり時に発生するインプットキャプチャ割り込みの処理（以下、ＮＥ割り込み処理という）を表すフローチャートである。
マイコン３がこのＮＥ割り込み処理を開始すると、まずＳ２１０にて、インプットキャプチャ部１９のインプットキャプチャレジスタから、今回記憶された時刻（即ち、ＮＥ信号が今回立ち上がった時刻であり、以下、今回キャプチャ時刻という）を読み出し、その今回キャプチャ時刻から、インプットキャプチャレジスタに前回記憶された時刻（即ち、ＮＥ信号が前回立ち上がった時刻であり、以下、前回キャプチャ時刻という）を引いた時間を、１０°ＣＡ間隔時間Ｔ１０として算出する。
【００６４】
尚、このＳ２１０で用いられる前回キャプチャ時刻は、当該ＮＥ割り込み処理が前回に実行された際に、後述するＳ２７０で、そのときの今回キャプチャ時刻が前回キャプチャ時刻として記憶されたものである。また、イグニッションスイッチがオンされてマイコン３が始めて本ＮＥ割り込み処理を実行した場合、Ｔ１０は初期値としての最大値に設定される。
【００６５】
そして、続くＳ２１５にて、今回のＳ２１０で算出された１０°ＣＡ間隔時間（以下、今回の１０°ＣＡ間隔時間という）Ｔ１０と、前回のＳ２１０で算出された１０°ＣＡ間隔時間（以下、前回の１０°ＣＡ間隔時間という）Ｔｏｌｄとを比較して、その両時間Ｔ１０，Ｔｏｌｄの比（＝Ｔ１０／Ｔｏｌｄ）が所定の欠歯判定比Ｈ（例えばＨ＝２．４）以上である、という欠歯判定条件が成立しているか否かを判定し、その欠歯判定条件が成立していないと判定した場合には、Ｓ２２０に移行する。
【００６６】
尚、イグニッションスイッチがオンされてからマイコン３が始めて本ＮＥ割り込み処理を実行した場合、Ｔｏｌｄは初期値としての最大値に設定されている。よって、その場合、Ｓ２１５では、必ず上記欠歯判定条件が成立していないと判定することとなる。
【００６７】
Ｓ２２０では、後述するＳ２８０の処理によってクランク位置が特定済みであるか否かを判定し、クランク位置が未だ特定されていなければ、Ｓ２７０へ移行する。
そして、Ｓ２７０では、上記Ｓ２１０でインプットキャプチャレジスタから読み出した今回キャプチャ時刻を、前回キャプチャ時刻として記憶し、続くＳ２７５にて、今回の１０°ＣＡ間隔時間Ｔ１０を、前回の１０°ＣＡ間隔時間Ｔｏｌｄとして記憶し、その後、当該ＮＥ割り込み処理を終了する。
【００６８】
また、上記Ｓ２２０にて、クランク位置が特定済みであると判定した場合には、Ｓ２２５に進んで、クランクカウンタの値を１０°ＣＡ分だけカウントアップさせる。
そして、続くＳ２３０にて、今回の１０°ＣＡ間隔時間Ｔ１０を逓倍数である１０で割ることにより、１°ＣＡ間隔時間Ｔ１を算出する。
【００６９】
一方、上記Ｓ２１５にて、欠歯判定条件が成立していると判定した場合には、ＮＥ信号に欠歯部が現れた（即ち、今回のＮＥ信号の立ち上がりエッジ間が欠歯部であり、換言すれば、今回のＮＥ信号の立ち上がりエッジが欠歯部の終了タイミングであった）と判断して、Ｓ２８０に移行する。
【００７０】
Ｓ２８０では、前述した（ｂ）の手順により、クランク位置を特定して、クランクカウンタの値を、「Ｒ°ＣＡ」又は「（Ｒ＋３６０）°ＣＡ」を示す値に設定する。
そして、続くＳ２８５にて、今回の１０°ＣＡ間隔時間Ｔ１０を３で割った値を、改めて、今回の１０°ＣＡ間隔時間Ｔ１０として記憶し直す。つまり、この場合、今回のＮＥ信号の立ち上がりエッジ間は欠歯部であり、今回のＳ２１０で算出された１０°ＣＡ間隔時間Ｔ１０は、実際には３０°ＣＡ分の時間であるため、そのＴ１０を３で割ることにより、１０°ＣＡ分の時間に直している。そして、このＳ２８５の処理の後、前述したＳ２３０に進み、１０°ＣＡ分の時間に直された１０°ＣＡ間隔時間Ｔ１０から１°ＣＡ間隔時間Ｔ１を算出する。
【００７１】
上記Ｓ２２５とＳ２８５との何れかからＳ２３０に進んで１°ＣＡ間隔時間Ｔ１が算出されると、次にＳ２４０へ進む。そして、このＳ２４０にて、今回のインプットキャプチャ割り込みの発生時（即ち、今回のＮＥ信号の立ち上がり時）から後述する図５の測定開始処理（前述の測定開始手段３３に相当）が起動されるまでのディレイ時間（遅延時間）Ｔｚを算出するために、図４に示すディレイ時間算出処理を実行する。
【００７２】
マイコン３がディレイ時間算出処理を開始すると、まずＳ３１０にて、ＮＥ信号が立ち上がってから燃焼圧信号の測定（詳しくは、燃焼圧信号のＡ／Ｄ変換値の読み取り）を開始するまでのクランク角度であるオフセット角度を、デフォルト値としての０に設定し、続くＳ３２０にて、気筒番号をデフォルト値としての０に設定する。
【００７３】
そして、本実施形態においては、例えば各気筒のＢＴＤＣ４０°ＣＡ（圧縮行程の上死点より４０°ＣＡだけ前）〜ＡＴＤＣ４０°ＣＡ（圧縮行程の上死点から４０°ＣＡだけ後）のクランク位置範囲を、各気筒の所定区間（各気筒毎のクランク位置範囲に相当）として設定しており、上記Ｓ３２０に続くＳ３３０では、クランクカウンタの値から、現在のクランク位置が１番気筒の所定区間に入っているか否かを判定する。
【００７４】
このＳ３３０にて、現在のクランク位置が１番気筒の所定区間に入っていると判定した場合には、Ｓ３４０に進んで、オフセット角度を、１番気筒用のオフセット角度に設定し、続くＳ３５０にて、気筒番号を、１番気筒を示す１に設定する。
【００７５】
また、上記Ｓ３３０にて、現在のクランク位置が１番気筒の所定区間に入っていないと判定した場合には、Ｓ３６０に移行して、今度は、クランクカウンタの値から、現在のクランク位置が２番気筒の所定区間に入っているか否かを判定する。
【００７６】
そして、このＳ３６０にて、現在のクランク位置が２番気筒の所定区間に入っていると判定した場合には、Ｓ３７０に進んで、オフセット角度を、２番気筒用のオフセット角度に設定し、続くＳ３８０にて、気筒番号を、２番気筒を示す２に設定する。
【００７７】
また、上記Ｓ３６０にて、現在のクランク位置が２番気筒の所定区間に入っていないと判定した場合には、Ｓ３９０に移行して、今度は、クランクカウンタの値から、現在のクランク位置が３番気筒の所定区間に入っているか否かを判定する。
【００７８】
そして、このＳ３９０にて、現在のクランク位置が３番気筒の所定区間に入っていると判定した場合には、Ｓ４００に進んで、オフセット角度を、３番気筒用のオフセット角度に設定し、続くＳ４１０にて、気筒番号を、３番気筒を示す３に設定する。
【００７９】
また、上記Ｓ３９０にて、現在のクランク位置が３番気筒の所定区間に入っていないと判定した場合には、Ｓ４２０に移行して、今度は、クランクカウンタの値から、現在のクランク位置が４番気筒の所定区間に入っているか否かを判定する。
【００８０】
そして、このＳ４２０にて、現在のクランク位置が４番気筒の所定区間に入っていると判定した場合には、Ｓ４３０に進んで、オフセット角度を、４番気筒用のオフセット角度に設定し、続くＳ４４０にて、気筒番号を、４番気筒を示す４に設定する。
【００８１】
次に、上記Ｓ３５０，Ｓ３８０，Ｓ４１０，及びＳ４４０のうちの何れかの処理を行った後、或いは、上記Ｓ４２０で現在のクランク位置が４番気筒の所定区間に入っていないと判定した場合には、Ｓ４５０に進み、その時点で設定されているオフセット角度を、今回の１０°ＣＡ間隔時間Ｔ１０を用いて、下記の式１により、ＮＥ信号が立ち上がってから燃焼圧信号の測定を開始するまでの時間であるオフセット時間Ｔｏｓに換算する。
【００８２】
オフセット時間Ｔｏｓ＝オフセット角度×（Ｔ１０÷１０）  …式１
尚、式１における「（Ｔ１０÷１０）」に代えて、図３のＳ２３０で算出されている１°ＣＡ間隔時間Ｔ１を用いても同じことである。
【００８３】
そして、続くＳ４６０にて、上記Ｓ４５０で算出したオフセット時間Ｔｏｓを用いて、ディレイ時間Ｔｚを下記の式２により算出し、その後、当該ディレイ時間算出処理を終了する。
【００８４】
ディレイ時間Ｔｚ＝オフセット時間Ｔｏｓ−ソフト処理遅れ時間Ｔｄ  …式２
尚、式２におけるソフト処理遅れ時間Ｔｄは、タイマ割り込みが発生してから後述する図５の測定開始処理におけるＳ５７０で図６の燃焼圧測定処理（更に詳しくは、その燃焼圧測定処理におけるＳ６２０，Ｓ６４０，Ｓ６６０，及びＳ６８０のうちの何れかの処理）が実行されるまでの遅れ時間である。
【００８５】
このようなディレイ時間算出処理が終了すると、図３のＳ２５０へ進んで、今回キャプチャ時刻にディレイ時間算出処理のＳ４６０で算出したディレイ時間Ｔｚを加算した時刻（つまり、今回キャプチャ時刻からディレイ時間Ｔｚだけ後の時刻）を、測定開始時刻として算出する。
【００８６】
そして、続くＳ２６０にて、上記Ｓ２５０で算出した測定開始時刻にタイマ割り込みを発生させるための処理を行う。つまり、Ｓ２６０では、遅延機能部２１のコンペアレジスタに上記Ｓ２５０で算出した測定開始時刻をセットする。そして、その後、前述したＳ２７０とＳ２７５の処理を行い、当該ＮＥ割り込み処理を終了する。
【００８７】
次に、図５は、測定開始処理を表すフローチャートである。
この測定開始処理は、図３のＳ２６０で遅延機能部２１のコンペアレジスタにセットされた測定開始時刻に発生するタイマ割り込みの処理である。
【００８８】
そして、この測定開始処理が開始されると、まずＳ５１０にて、ＰＷＭ割り込みを禁止し、続くＳ５２０にて、ＰＷＭ機能部２３によるＰＷＭ信号の出力を停止させることで、該ＰＷＭ機能部２３の作動を禁止する。
【００８９】
そして、次のＳ５３０にて、ＰＷＭ機能部２３を作動させるための基本項目（例えば、ＰＷＭ信号のアクティブレベルをハイとローの何れにするかや、ＰＷＭ機能部２３の動作クロック）を設定し、続くＳ５４０にて、ＰＷＭ機能部２３に、ＰＷＭ信号の周期として、図３のＳ２３０で算出されている最新の１°ＣＡ間隔時間Ｔ１をセットすると共に、ＰＷＭ信号のデューティ比として５０％をセットした上で、そのＰＷＭ機能部２３の作動を許可する。すると、その時点から１°ＣＡ間隔時間Ｔ１毎に、ＰＷＭ割り込みが発生することとなる。
【００９０】
そして、次のＳ５５０にて、動作フラグをオンし（即ち、動作フラグにオンを示す１をセットし）、続くＳ５６０にて、ＮＥ信号が立ち上がってからの割り込み発生回数をカウントするための割り込みカウンタに、１回目を示す１をセットする。
【００９１】
次に、Ｓ５７０にて、図６に示す燃焼圧測定処理を実行する。
マイコン３が燃焼圧測定処理を開始すると、まずＳ６１０にて、気筒番号が１であるか否かを判定し、気筒番号が１であれば、現在のクランク位置が１番気筒の所定区間に入っていることから、Ｓ６２０に進む。そして、そのＳ６２０にて、１番気筒に設けられた燃焼圧センサ１５＃１からの燃焼圧信号のＡ／Ｄ変換値をＡ／Ｄ変換器１７から読み取り、その読み取ったＡ／Ｄ変換値を、作業用メモリの記憶領域のうち、１番気筒用の記憶領域に格納する。
【００９２】
また、上記Ｓ６１０にて、気筒番号が１ではないと判定した場合には、Ｓ６３０に移行して、今度は、気筒番号が２であるか否かを判定し、気筒番号が２であれば、現在のクランク位置が２番気筒の所定区間に入っていることから、Ｓ６４０に進む。そして、そのＳ６４０にて、２番気筒に設けられた燃焼圧センサ１５＃２からの燃焼圧信号のＡ／Ｄ変換値をＡ／Ｄ変換器１７から読み取り、その読み取ったＡ／Ｄ変換値を、作業用メモリの記憶領域のうち、２番気筒用の記憶領域に格納する。
【００９３】
また、上記Ｓ６３０にて、気筒番号が２ではないと判定した場合には、Ｓ６５０に移行して、今度は、気筒番号が３であるか否かを判定し、気筒番号が３であれば、現在のクランク位置が３番気筒の所定区間に入っていることから、Ｓ６６０に進む。そして、そのＳ６６０にて、３番気筒に設けられた燃焼圧センサ１５＃３からの燃焼圧信号のＡ／Ｄ変換値をＡ／Ｄ変換器１７から読み取り、その読み取ったＡ／Ｄ変換値を、作業用メモリの記憶領域のうち、３番気筒用の記憶領域に格納する。
【００９４】
また、上記Ｓ６５０にて、気筒番号が３ではないと判定した場合には、Ｓ６７０に移行して、今度は、気筒番号が４であるか否かを判定し、気筒番号が４であれば、現在のクランク位置が４番気筒の所定区間に入っていることから、Ｓ６８０に進む。そして、そのＳ６８０にて、４番気筒に設けられた燃焼圧センサ１５＃４からの燃焼圧信号のＡ／Ｄ変換値をＡ／Ｄ変換器１７から読み取り、その読み取ったＡ／Ｄ変換値を、作業用メモリの記憶領域のうち、４番気筒用の記憶領域に格納する。
【００９５】
そして、上記Ｓ６２０，Ｓ６４０，Ｓ６６０，及びＳ６８０のうちの何れかの処理を行った後、或いは、上記Ｓ６７０で気筒番号が４ではないと判定した場合には、当該燃焼圧測定処理を終了する。
【００９６】
つまり、燃焼圧測定処理では、前述した各気筒の所定区間（ＢＴＤＣ４０°ＣＡ〜ＡＴＤＣ４０°ＣＡ）のうちで現在のクランク位置が入っている所定区間に該当する気筒の燃焼圧センサ１５からの信号値を読み取って、その気筒用の記憶領域に格納するようにしている。尚、上記Ｓ６２０，Ｓ６４０，Ｓ６６０，及びＳ６８０の各処理によって各気筒用の記憶領域に格納されるＡ／Ｄ変換値は、その格納時毎に外部の計測機器８へ送信するようにしても良いし、また、ある時間分だけ上記記憶領域に格納しておいて、任意のタイミングでまとめて計測機器８へ送信するようにしても良い。
【００９７】
そして、図５のＳ５７０で上記の燃焼圧測定処理が終了すると、図５のＳ５８０に進んで、ＰＷＭ割り込み要求をクリアし、続くＳ５９０にて、ＰＷＭ割り込みを許可する。そして、その後、当該測定開始処理を終了する。
【００９８】
次に、図７は、ＰＷＭ割り込みの発生時に起動されるＰＷＭ割り込み処理（ＰＷＭ割り込みの処理）を表すフローチャートである。
このＰＷＭ割り込み処理が開始されると、まずＳ７１０にて、動作フラグがオンされているか否かを判定し、動作フラグがオンされていないと判定した場合には、そのまま当該ＰＷＭ割り込み処理を終了する。
【００９９】
また、上記Ｓ７１０にて、動作フラグがオンされていると判定した場合には、Ｓ７２０に進んで、前述した図６の燃焼圧測定処理を実行する。
その燃焼圧測定処理が終了すると、次のＳ７３０にて、割り込みカウンタを１インクリメントし、続くＳ７４０にて、割り込みカウンタの値が１０になったか否かを判定する。
【０１００】
そして、割り込みカウンタの値が１０でなければ（Ｓ７４０：ＮＯ）、そのまま当該ＰＷＭ割り込み処理を終了するが、割り込みカウンタの値が１０であれば（Ｓ７４０：ＹＥＳ）、Ｓ７５０に進んで、ＰＷＭ割り込みを禁止し、続くＳ７６０にて、ＰＷＭ機能部２３によるＰＷＭ信号の出力を停止させることで、該ＰＷＭ機能部２３の作動を禁止する。そして更に、続くＳ７７０にて、動作フラグをオフした後、当該ＰＷＭ割り込み処理を終了する。
【０１０１】
尚、上記図２〜図７の処理と図１における各手段２５〜３５との対応としては、まず、図３のＮＥ割り込み処理のうち、Ｓ２１０，Ｓ２７０及びＳ２８５が１０°ＣＡ間隔時間算出手段２５に該当し、Ｓ２１５〜Ｓ２２５，Ｓ２７５及びＳ２８０がクランク位置検出手段２７に該当し、Ｓ２３０が１°ＣＡ間隔時間算出手段２９に該当し、Ｓ２４０〜Ｓ２６０が測定開始時刻算出手段３１に該当している。そして、図５の測定開始処理が測定開始手段３３に該当し、図６の燃焼圧測定処理が燃焼圧測定手段３５に該当している。
【０１０２】
また、本実施形態では、マイコン３が、クランク軸回転同期の処理装置に相当している。そして、図３のＮＥ割り込み処理のうち、Ｓ２１０，Ｓ２７０及びＳ２８５の処理が、第１の時間算出処理に相当し、Ｓ２３０の処理が、第２の時間算出処理に相当し、Ｓ２４０〜Ｓ２６０の処理が、初回割り込み設定処理に相当し、Ｓ２１５〜Ｓ２２５，Ｓ２７５及びＳ２８０の処理が、請求項５のクランク位置検出手段としての処理に相当している。そして更に、図３のＮＥ割り込みにおけるＳ２６０で発生時刻がセットされるタイマ割り込みが、初回割り込みに相当し、そのタイマ割り込みの処理である図５の測定開始処理のうち、Ｓ５４０の処理が、２回目以降割り込み設定処理に相当している。また、ＰＷＭ割り込みが、２回目以降割り込みとして用いられている。そして、図５のＳ５７０と図７のＳ７２０との各々で起動される図６の燃焼圧測定処理が、特定の処理に相当している。
【０１０３】
以上のような燃焼圧計測装置１のマイコン３では、図８（Ａ）に示すように、ＮＥ信号に立ち上がりエッジが発生すると、インプットキャプチャ割り込みが発生して、そのインプットキャプチャ割り込みの処理である図３のＮＥ割り込み処理が実行され、そのＮＥ信号の立ち上がりタイミングから故意の遅延時間Ｔｚが経過した時に、タイマ割り込みが発生して、そのタイマ割り込みの処理である図５の測定開始処理が実行され、その測定開始処理中（図５のＳ５７０）で、図６の燃焼圧測定処理が行われる。
【０１０４】
そして更に、その後は、図５の測定開始処理が次に実行されるまでの間、クランク軸が１°回転する１°ＣＡ間隔時間（１°ＣＡ分の時間）Ｔ１毎に、ＰＷＭ割り込みが最大で９回まで発生すると共に、その各ＰＷＭ割り込みの処理中（図７のＳ７２０）でも、図６の燃焼圧測定処理が行われることとなる。
【０１０５】
このように、マイコン３では、ＮＥ信号に立ち上がりエッジが発生した時点から、遅延時間Ｔｚが経過したタイミングを基準として、１°ＣＡ間隔時間Ｔ１毎に、燃焼圧測定処理（燃焼圧センサ１５からの信号値を読み取る処理）が行われることとなる。
【０１０６】
尚、図７のＰＷＭ割り込み処理におけるＳ７３０〜Ｓ７７０の処理は、図５の測定開始処理が実行されてから、その測定開始処理が次に実行されるまでの間に、ＰＷＭ割り込みが最大で９回までしか発生しないようにするためのものである。つまり、Ｓ７３０〜Ｓ７７０の処理は、クランク軸の回転速度が低下して、ＮＥ信号の立ち上がりエッジ間の時間が前回より伸びても、その伸びたＮＥ信号の立ち上がりエッジ間において、図６の燃焼圧測定処理が、最大で１０回までしか実行されないようにするためのガード機能用の処理である。よって、そのようなガード機能が不要な場合には、Ｓ７３０〜Ｓ７７０の処理を省略するこができる。
【０１０７】
また、図５の測定開始処理におけるＳ５１０及びＳ５２０の処理は、クランク軸の回転速度が上昇して、ＮＥ信号の立ち上がりエッジ間の時間が前回よりも短くなり、当該測定開始処理が前回実行されてから今回開始されるまでの間にＰＷＭ割り込みが未だ９回発生していなくても、もはや前回の当該測定開始処理で設定した周期のＰＷＭ割り込みが発生しないようにするための処理である。同様に、図５の測定開始処理におけるＳ５８０及びＳ５９０の処理は、当該測定開始処理の最後でＰＷＭ割り込み要求をクリアし、該ＰＷＭ割り込みを許可することで、クランク軸の回転速度が上昇した場合の不要なＰＷＭ割り込み要求を削除して誤動作を防止するためのものである。
【０１０８】
以上のような本実施形態のマイコン３によれば、燃焼圧測定処理（図６）の実行タイミングであって、ＮＥ信号に立ち上がりエッジが発生するクランク角度間隔（１０°ＣＡ）よりも短いクランク角度間隔（上記例では１°ＣＡ）毎のタイミングを、ソフトウェアだけで発生させることができ、そのようなタイミングを発生させるための専用ハードウェア回路が不要であるため、装置を安価に構成することができる。
【０１０９】
また、図３のＮＥ割り込み処理におけるＳ２３０で用いる逓倍数（即ち、Ｔ１０を割る数）を変えるだけで、タイミングを発生させるクランク角度間隔を変更することができ、しかも、その逓倍数を動的にも変更することができる。
【０１１０】
そして更に、ＮＥ割り込み処理におけるＳ２４０で算出するディレイ時間Ｔｚ（つまり、Ｓ２６０でセットする測定開始時刻）により、ＮＥ信号に立ち上がりエッジが発生した時点から燃焼圧測定処理が１回目に実行される基準タイミングを、任意のオフセット角度後のタイミングに設定することができる。
【０１１１】
特に、ＮＥ割り込み処理のＳ２４０〜Ｓ２６０では、Ｓ２１０で今回算出された１０°ＣＡ間隔時間Ｔ１０に基づいて、クランク軸が所定のオフセット角度ＯＳＡ回転するのに要する時間であるオフセット時間Ｔｏｓを算出すると共に（図４のＳ４５０）、そのオフセット時間Ｔｏｓから、タイマ割り込みが発生してから測定開始処理のＳ５７０で燃焼圧測定処理が実行されるまでのソフト処理遅れ時間Ｔｄを引いた時間（＝Ｔｏｓ−Ｔｄ）を、上記ディレイ時間Ｔｚとして算出している（図４のＳ４６０）。
【０１１２】
このため、図８（Ａ）における点線楕円部分を拡大して表す図８（Ｂ）に示すように、ＮＥ信号に立ち上がりエッジが発生した時点から１回目の燃焼圧測定処理が実行される基準タイミングを、そのＮＥ信号の立ち上がり時からクランク軸がオフセット角度ＯＳＡだけ回転したタイミングに正確に設定することができる。
【０１１３】
このように本実施形態のマイコン３によれば、ＮＥ信号に立ち上がりエッジが発生した時点から任意のオフセット角度後のタイミングを基準として、ＮＥ信号に立ち上がりエッジが発生する１０°ＣＡ毎よりも短いクランク角度間隔（上記例では１°ＣＡ）毎に、燃焼圧測定処理を実行することができる。
【０１１４】
また、このため、例えば図９（Ａ）に示すように、最初は、オフセット角度を０．１°ＣＡにし、次のサイクルにおける同じクランク位置範囲では、図９（Ｂ）に示すように、オフセット角度を０．２°ＣＡにする、といった具合に、オフセット角度を０．１°ＣＡ刻みで増加させて行けば、最終的には、図９（Ｃ）に示すように、燃焼圧信号を０．１°ＣＡ刻みで測定した非常に細かい測定結果を得ることができる。
【０１１５】
また更に、本実施形態のマイコン３では、ＮＥ割り込み処理のＳ２４０で実行されるディレイ時間算出処理にて、現在のクランク位置が、各気筒毎の所定区間のうちの何れに入っているかを判別すると共に（Ｓ３３０，Ｓ３６０，Ｓ３９０，Ｓ４２０）、その判別した所定区間に該当する気筒用のオフセット角度を設定して、そのオフセット角度からディレイ時間Ｔｚを算出するようにしている。
【０１１６】
このため、例えば、クランク位置が１番気筒の所定区間に入っている場合には、ディレイ時間Ｔｚが１番気筒用のオフセット角度に応じた値に設定され、クランク位置が２番気筒の所定区間に入っている場合には、ディレイ時間Ｔｚが２番気筒用のオフセット角度に応じた値に設定される、といった具合に、ディレイ時間Ｔｚが各気筒の所定区間毎に設定されることとなる。
【０１１７】
よって、図６の燃焼圧測定処理では、各気筒毎の所定区間のうちで現在のクランク位置が入っている所定区間に該当する気筒の燃焼圧センサ１５から信号値を読み取る、といった処理を行っているが、そのような燃焼圧測定処理において、各気筒の燃焼圧センサ１５の個体差等をも考慮した適切なクランク位置のタイミングで、その各燃焼圧センサ１５からの信号値を読み取ることができるようになる。ＮＥ信号の立ち上がり時から１回目の燃焼圧測定処理が実行されるタイミングを、各気筒の所定区間毎に設定することができるからである。
【０１１８】
また、本実施形態では、Ａ／Ｄ変換器１７をループモードで作動させているため、そのＡ／Ｄ変換器１７を図６の燃焼圧測定処理で毎回起動する必要が無く、処理を軽減することができる。
【０１１９】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【０１２０】
例えば、上記実施形態のマイコン３において、ＰＷＭ割り込みの代わりに、遅延機能部２１によるタイマ割り込みを用いても良い。
この場合、図５の測定開始処理では、Ｓ５７０の処理と、１°ＣＡ間隔時間Ｔ１後に再びタイマ割り込みが発生して当該測定開始処理が起動されるように遅延機能部２１のコンペアレジスタへ時刻をセットする処理とを行えば良く、必要であれば、図７のＳ７３０〜Ｓ７５０と同様に、ＮＥ割り込み処理が実行されてから当該測定開始処理が１０回実行されたなら、次にＮＥ割り込み処理が実行されるまで、タイマ割り込みが発生するのを禁止するための処理を行うようにすれば良い。そして、このようにすれば、使用する割り込みの数を節約することができる。尚、タイマ割り込みとしては、遅延機能部２１によるタイマ割り込み以外の他のタイマ割り込み（例えば、割り込みの発生と共に外部へ信号を出力するタイマ割り込みや、割り込みの発生と共にＡ／Ｄ変換器を起動するタイマ割り込み）を用いても良い。
【０１２１】
但し、上記実施形態のように、ＮＥ割り込み処理が実行されてからの２回目以降の割り込みとして、ＰＷＭ割り込みを用いれば、ＮＥ割り込み処理が実行されてからの１回目（初回）の割り込み処理である図５の測定開始処理にて、ＰＷＭ割り込みを１°ＣＡ間隔時間Ｔ１毎に発生させるための処理を１回行うだけで、その１°ＣＡ間隔時間Ｔ１毎に燃焼圧測定処理を実施することができ、処理負荷を低減できるという面で有利である。
【０１２２】
更に、ＰＷＭ割り込みを用いれば、そのＰＷＭ割り込みの発生と同期して出力されるＰＷＭ信号を、マイコン３の動作状態を確認するためのタイミングモニタ信号として利用することができ、この点においても有利である。尚、上記実施形態では、ＰＷＭ信号のデューティ比を５０％に設定したが、これは、タイミングモニタ信号としての役割を考えた場合、デューティ比が５０％に近いほど信号の周期や発生タイミングを確認し易いからである。
【０１２３】
一方、上記実施形態のマイコン３において、ＮＥ割り込み処理が実行されてからの１回目の割り込みとしても、ＰＷＭ割り込みを用いても良い。
この場合、図３のＮＥ割り込み処理では、Ｓ２６０にて、Ｓ２５０で算出した測定開始時刻にＰＷＭ割り込みを発生させるための処理を行えば良く、また、ＰＷＭ割り込みの処理は、ＮＥ割り込み処理が実行されてから１回目の実行時にだけ、図５の処理と同様の処理を行い、２回目以降の実行時には、図７の処理と同様の処理を行うように構成すれば良い。そして、このようにしても、使用する割り込みの数を節約することができる。
【０１２４】
また、上記実施形態では、１０°ＣＡ毎よりも短いクランク角度間隔毎に実行する特定の処理として、燃焼圧センサ１５からの信号値を読み取る処理を実施したが、例えば、Ａ／Ｄ変換器１７にノックセンサからのノック信号が入力されるようにし、図５のＳ５７０と図７のＳ７２０との各々にて、そのノック信号のＡ／Ｄ変換値をＡ／Ｄ変換器１７から読み取る測定処理を行うようにしても良い。また同様に、エンジンのノッキングや失火を検出するためのイオン電流センサからの信号がＡ／Ｄ変換器１７に入力されるようにし、図５のＳ５７０と図７のＳ７２０との各々にて、その信号のＡ／Ｄ変換値をＡ／Ｄ変換器１７から読み取る測定処理を行うようにしても良い。
【０１２５】
また、特定の処理としては、センサからの信号値を読み取る処理以外の他の処理であっても良い。
一方、上記実施形態のマイコン３を、エンジン制御装置に搭載し、そのエンジン制御装置が、図６の燃焼圧測定処理で読み取られた燃焼圧信号のＡ／Ｄ変換値を用いてエンジンの制御（例えば、燃料噴射制御や点火制御やノッキング制御等）を行うように構成すれば、高機能、高精度、低コストなエンジン制御装置を実現することができる。
【０１２６】
この場合、燃焼圧信号のＡ／Ｄ変換値を用いてエンジンの制御を行う制御手段３７を、マイコン３とは別に設けても良いが、図１における点線で示すように、マイコン３が、エンジン制御用のプログラムを実行して、そのような制御手段３７としても機能するように構成すれば、ハードウェアリソースを節約することができる。
【図面の簡単な説明】
【０１２７】
【図１】実施形態の燃焼圧計測装置の構成を表す構成図である。
【図２】イニシャル処理を表すフローチャートである。
【図３】ＮＥ信号の立ち上がり時に発生するインプットキャプチャ割り込みの処理（ＮＥ割り込み処理）を表すフローチャートである。
【図４】ディレイ時間算出処理を表すフローチャートである。
【図５】タイマ割り込み処理である測定開始処理を表すフローチャートである。
【図６】燃焼圧測定処理を表すフローチャートである。
【図７】ＰＷＭ割り込みの処理を表すフローチャートである。
【図８】マイコンでの処理タイミングを表すタイムチャートである。
【図９】燃焼圧信号の測定例を説明する説明図である。
【符号の説明】
【０１２８】
１…燃焼圧計測装置、３…マイコン、５，７…入力回路、８…計測機器、９…通信回路、１１…クランク軸センサ、１３…カム軸センサ、１１ａ，１３ａ…ロータ、Ｋ…歯欠損部、１１ｂ，１３ｂ…信号出力部、１５（１５＃１〜１５＃４）…燃焼圧センサ、１７…Ａ／Ｄ変換器、１８…フリーランタイマ、１９…インプットキャプチャ部、２１…遅延機能部、２３…ＰＷＭ機能部、２５…１０°ＣＡ間隔時間算出手段、２７…クランク位置検出手段、２９…１°ＣＡ間隔時間算出手段、３１…測定開始時刻算出手段、３３…測定開始手段、３５…燃焼圧測定手段、３７…制御手段
【図１】
2005315169.tif 000003
【図２】
2005315169.tif 000004
【図３】
2005315169.tif 000005
【図４】
2005315169.tif 000006
【図５】
2005315169.tif 000007
【図６】
2005315169.tif 000008
【図７】
2005315169.tif 000009
【図８】
2005315169.tif 000010
【図９】
2005315169.tif 000011