JP2005315169A - クランク軸回転同期の処理装置及びエンジン制御装置 - Google Patents
クランク軸回転同期の処理装置及びエンジン制御装置 Download PDFInfo
- Publication number
- JP2005315169A JP2005315169A JP2004133972A JP2004133972A JP2005315169A JP 2005315169 A JP2005315169 A JP 2005315169A JP 2004133972 A JP2004133972 A JP 2004133972A JP 2004133972 A JP2004133972 A JP 2004133972A JP 2005315169 A JP2005315169 A JP 2005315169A
- Authority
- JP
- Japan
- Prior art keywords
- time
- interrupt
- signal
- processing
- crankshaft
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Combined Controls Of Internal Combustion Engines (AREA)
Abstract
【課題】 クランク軸センサからの信号に有効エッジが発生するクランク角度間隔よりも短いクランク角度間隔毎に特定の処理を実行するのに好適な処理装置を提供する。
【解決手段】 10°CA毎に立ち上がりエッジが生じるNE信号が入力されるマイコンでは、そのNE信号が立ち上がる毎のインプットキャプチャ割り込みの処理により、NE信号の今回の立ち上がりエッジ間隔時間を算出すると共に、その時間を10で割って1°CA分の時間T1を算出し、更に、故意の遅延時間Tzが経過したときにタイマ割り込みを発生させる設定を行う。そして、そのタイマ割り込みの処理である測定開始処理で、上記T1毎にPWM割り込みを発生させる設定と、燃焼圧センサからの信号値を読み取る測定処理とを行い、更に、PWM割り込み処理でも同じ測定処理を行う。このため、NE信号の立ち上がり時からTz後のタイミングを基準としてT1毎に測定処理が行われる。
【選択図】 図8
【解決手段】 10°CA毎に立ち上がりエッジが生じるNE信号が入力されるマイコンでは、そのNE信号が立ち上がる毎のインプットキャプチャ割り込みの処理により、NE信号の今回の立ち上がりエッジ間隔時間を算出すると共に、その時間を10で割って1°CA分の時間T1を算出し、更に、故意の遅延時間Tzが経過したときにタイマ割り込みを発生させる設定を行う。そして、そのタイマ割り込みの処理である測定開始処理で、上記T1毎にPWM割り込みを発生させる設定と、燃焼圧センサからの信号値を読み取る測定処理とを行い、更に、PWM割り込み処理でも同じ測定処理を行う。このため、NE信号の立ち上がり時からTz後のタイミングを基準としてT1毎に測定処理が行われる。
【選択図】 図8
Description
本発明は、エンジン制御に関し、特にクランク軸の回転に同期して処理を行う技術に関するものである。
従来より、エンジン制御の分野においては、エンジンのシリンダヘッド側に燃焼室内(気筒内)の圧力を検出するための燃焼圧センサ(燃焼室圧センサとも呼ばれる)を設け、そのセンサからの燃焼圧信号を取り込こんで、点火時期や空燃比の制御に用いることが知られている(例えば、特許文献1参照)。
そして、燃焼圧センサからの燃焼圧信号は、失火検出、リーンリミットの設定、燃焼変動抑制、MBT(Minimum Advance for the Best Torque)の設定、ノック制御、EGR制御、バルブタイミング制御、気筒判別などにも用いることができる。
ここで特に、エンジンを制御する制御装置の開発時においては、例えば、環境面での法規強化に対応するためや、制御に用いる適合定数を最適化して削減するために、燃焼圧センサからの燃焼圧信号を、エンジンのクランク軸の回転に同期し且つ波形をトレースするような細かいタイミングで測定したいという要望がある。
具体的には、例えば1°CA毎(クランク軸が1°回転する毎)程度の細かいタイミングで燃焼圧信号の信号値(つまり、燃焼圧)を測定して、横軸=クランク位置、縦軸=燃焼圧のグラフを作成するようなイメージである。尚、「CA」とは、クランク角度を意味しており、クランク位置とは、エンジンの1サイクルにおけるクランク軸の回転位置である。
また、こうした要望は、燃焼圧信号についてのみならず、例えばエンジンのノッキングを検出するノックセンサからの信号などについても同様に存在する。
つまり、高機能、高精度、低コストなエンジン制御装置を開発し実現するためには、各種センサからの信号を、クランク軸の回転に同期しつつ出来るだけ細かいタイミングで測定することが欠かせないと考えられる。
つまり、高機能、高精度、低コストなエンジン制御装置を開発し実現するためには、各種センサからの信号を、クランク軸の回転に同期しつつ出来るだけ細かいタイミングで測定することが欠かせないと考えられる。
一方、エンジン制御の分野においては、クランク軸の回転に応じて回転信号を出力するクランク軸センサがエンジン側に設けられると共に、その回転信号には、クランク軸が所定角度回転する毎(換言すれば、所定クランク角度毎であり、例えば10°CA毎)にパルスエッジが発生するようになっている。
そして、このような回転信号から、該回転信号に有効エッジが発生するクランク角度間隔(上記例では10°CA)よりも小さいクランク角度間隔毎のタイミングを発生させる回路として、例えば特許文献2には、回転信号に有効エッジが発生する間隔を計測するエッジ時間計測カウンタと、回転信号に有効エッジが発生すると上記エッジ時間計測カウンタによる今回の計測値を逓倍数Nで除算した値がセットされるエッジ時間記憶レジスタと、そのエッジ時間記憶レジスタに記憶された時間毎に、逓倍クロック(詳しくは、周期が回転信号の周期の逓倍数N分の1であるクロック)としてのパルスを発生させる逓倍カウンタと、からなるものが記載されている。
このため、上記逓倍カウンタからパルスが出力される毎に、センサからの信号値を読み取る測定処理などを行えば、その処理を、クランク軸の回転に同期し、且つ、回転信号に有効エッジが発生するクランク角度間隔(=Z)よりも短いクランク角度間隔(=Z÷N)毎のタイミングで実行することができる。
特開平9−273437号公報
特開2001−200747号公報
しかしながら、上記特許文献2に記載されているようなハードウェア回路では、処理タイミングの発生するクランク角度間隔(=Z÷N)が固定となってしまう上に、クランク軸センサからの回転信号に有効エッジが発生した時点から任意のクランク角度(<Z)後のタイミングを基準として上記Zよりも短い一定のクランク角度間隔毎に所望の処理を実行したい、という要望を満足することができない。
そこで本発明は、クランク軸センサからの回転信号に有効エッジが発生するクランク角度間隔よりも短いクランク角度間隔毎に特定の処理を実行するのに好適な処理装置の提供を目的としている。
上記目的を達成するためになされた請求項1に記載のクランク軸回転同期の処理装置は、マイコンからなる。そして、このマイコンからなる処理装置は、エンジンのクランク軸の回転に応じて該クランク軸が所定角度回転する毎(所定クランク角度毎)にパルスエッジが発生する回転信号をクランク軸センサから入力し、その回転信号に前記所定角度毎のパルスエッジである有効エッジが発生する毎に、該有効エッジが前回発生してから今回発生するまでの1パルス間隔時間Taを計測すると共に、該計測値に基づきクランク軸が前記所定角度よりも小さい一定角度回転する時間Tbを算出し、その算出した時間Tb毎に特定の処理を実行する。
ここで特に、この処理装置では、回転信号に有効エッジが発生する毎に、インプットキャプチャ割り込みが発生し、そのインプットキャプチャ割り込みの処理により、当該インプットキャプチャ割り込みが前回発生した時刻から今回発生した時刻までの時間を回転信号の1パルス間隔時間Taとして算出する第1の時間算出処理と、該第1の時間算出処理により算出された1パルス間隔時間Taに基づいて、クランク軸が前記一定角度回転する時間Tbを算出する第2の時間算出処理と、所定の遅延時間Tzが経過したときに当該インプットキャプチャ割り込み以外の他の割り込みである初回割り込みを発生させるための設定を行う初回割り込み設定処理とが実行される。
尚、インプットキャプチャ割り込みとは、マイコンに備えられたインプットキャプチャ機能によって発生される割り込みであり、具体的には、ある端子に入力される信号に特定のエッジが発生すると、その時のフリーランタイマの値が内部のインプットキャプチャレジスタに現在時刻として記憶(キャプチャ)されると共に、その時に発生する割り込みである。このため、第1の時間算出処理では、インプットキャプチャレジスタに今回記憶された時刻から前回記憶された時刻を引くことで、回転信号の1パルス間隔時間Taを算出することができる。また、上記所定角度をCAaとし、上記一定角度をCAbとすると、「CAa÷CAb」が逓倍数Nであり、第2の時間算出処理では、「Ta÷(CAa÷CAb)」の値を、上記Tbとして算出することができる。
そして更に、この処理装置では、インプットキャプチャ割り込みの処理のうちの初回割り込み設定処理で設定される初回割り込みの処理が実行されることで、以後、その初回割り込みの処理が次に実行されるまでの間、前記第2の時間算出処理で算出された時間Tb毎にインプットキャプチャ割り込み以外の他の割り込みである2回目以降割り込みが発生するようになっており、前記初回割り込みの処理と、前記2回目以降割り込みの処理との各々で、前記特定の処理が実行される。
つまり、この処理装置では、回転信号に有効エッジが発生すると、インプットキャプチャ割り込みが発生し、それから所定の遅延時間Tzが経過した時に、初回割り込みが発生して、その初回割り込みの処理中で特定の処理(即ち、1回目の特定の処理)が行われ、更に、その後は、クランク軸が一定角度CAb(<CAa)回転する時間Tb毎に、2回目以降割り込みが発生して、その各2回目以降割り込みの処理中で特定の処理(即ち、2回目以降の特定の処理)が行われることとなる。よって、この処理装置では、回転信号に有効エッジが発生した時点から、いわば故意の位相ずれ時間である遅延時間Tzが経過したタイミングを基準として、クランク軸が一定角度CAb回転する時間Tb毎に特定の処理を実行することとなる。
このような本発明の処理装置によれば、下記(1)〜(3)の効果が得られる。
(1)特定の処理の実行タイミングであって、クランク軸センサからの回転信号に有効エッジが発生するクランク角度間隔(CAa)よりも短いクランク角度間隔(CAb)毎のタイミングを、ソフトウェアだけで発生させることができ、先行文献2に記載されているようなタイミング発生用の専用ハードウェア回路が不要であるため、装置を安価に構成することができる。
(1)特定の処理の実行タイミングであって、クランク軸センサからの回転信号に有効エッジが発生するクランク角度間隔(CAa)よりも短いクランク角度間隔(CAb)毎のタイミングを、ソフトウェアだけで発生させることができ、先行文献2に記載されているようなタイミング発生用の専用ハードウェア回路が不要であるため、装置を安価に構成することができる。
(2)ソフトウェアで実現できるため、逓倍数N(つまり、タイミングを発生させるクランク角度間隔CAb)を、簡単に、しかも動的にも変更することができる。
(3)インプットキャプチャ割り込みの処理のうちの初回割り込み設定処理で設定する遅延時間Tzにより、回転信号に有効エッジが発生した時点から特定の処理が1回目に実行される基準タイミングを、任意のクランク角度後のタイミングに設定することができる。
(3)インプットキャプチャ割り込みの処理のうちの初回割り込み設定処理で設定する遅延時間Tzにより、回転信号に有効エッジが発生した時点から特定の処理が1回目に実行される基準タイミングを、任意のクランク角度後のタイミングに設定することができる。
特に、請求項2に記載の如く、初回割り込み設定処理では、第1の時間算出処理により算出された1パルス間隔時間Taに基づいて、クランク軸が所定のオフセット角度OSA回転するのに要する時間であるオフセット時間Tosを算出すると共に、初回割り込みが発生してから特定の処理が実行されるまでの処理遅れ時間Tdをオフセット時間Tosから引いた時間(=Tos−Td)を、上記遅延時間Tzとして設定すれば、回転信号に有効エッジが発生した時点から1回目の特定の処理が実行される基準タイミングを、回転信号に有効エッジが発生した時点からクランク軸がオフセット角度OSAだけ回転したタイミングに正確に設定することができる。
このように本発明の処理装置によれば、回転信号に有効エッジが発生した時点から任意のクランク角度後のタイミングを基準として、回転信号に有効エッジが発生するクランク角度間隔よりも短い一定のクランク角度間隔毎に所望の処理を実行したい、という要望を満足することができる。
ところで、初回割り込みと2回目以降割り込みとの各々としては、タイマ割り込みを用いることができる。尚、ここで言うタイマ割り込みとは、時刻が設定されるとその時刻に発生することとなる割り込みの総称であり、基本的なコンペアタイマ割り込み(コンペアレジスタにセットされた時刻の値とフリーランタイマ値とが一致すると発生する割り込み)だけではなく、例えば、そのようなコンペアタイマ割り込みの機能に加えて、割り込みの発生と共に外部へ信号を出力するものや、割り込みの発生と共にA/D変換器を起動するものなど、割り込みの発生時に他の何らかの動作が行われるものも含む。また、初回割り込みとして用いるタイマ割り込みと、2回目以降割り込みとして用いるタイマ割り込みは、同じ割り込みであっても良いし、異なる割り込みであっても良い。
そして、2回目以降割り込みとして、タイマ割り込みを用いた場合には、その2回目以降割り込みの処理中で、次回の2回目以降割り込みの発生時刻を再設定する処理を行えばよい。
また、2回目以降割り込みの処理で次回の割り込み発生時刻を再設定しなくても済むようにするには、請求項3の構成を採ればよい。
即ち、請求項3の処理装置では、当該処理装置としてのマイコンがPWM機能部を備えている。尚、PWM機能部は、作動が許可されると、設定された周期及びデューティ比のPWM信号を出力すると共に、そのPWM信号の1周期毎にPWM割り込みを繰り返し発生させるものである。
即ち、請求項3の処理装置では、当該処理装置としてのマイコンがPWM機能部を備えている。尚、PWM機能部は、作動が許可されると、設定された周期及びデューティ比のPWM信号を出力すると共に、そのPWM信号の1周期毎にPWM割り込みを繰り返し発生させるものである。
そして、この処理装置では、2回目以降割り込みとして、そのPWM機能部によるPWM割り込みを用いている。
そして更に、初回割り込みの処理では、前記特定の処理と、PWM機能部に周期として第2の時間算出処理で算出された時間Tbを設定すると共に、そのPWM機能部の作動を許可することにより、以後、時間Tb毎に2回目以降割り込みとしてのPWM割り込みを発生させる2回目以降割り込み設定処理とを実行する。
そして更に、初回割り込みの処理では、前記特定の処理と、PWM機能部に周期として第2の時間算出処理で算出された時間Tbを設定すると共に、そのPWM機能部の作動を許可することにより、以後、時間Tb毎に2回目以降割り込みとしてのPWM割り込みを発生させる2回目以降割り込み設定処理とを実行する。
このような請求項3の処理装置によれば、2回目以降割り込みの処理で次回の2回目以降割り込みが発生するように再設定しなくても良く、処理負荷を低減させることができる。
一方、請求項4に記載のように、初回割り込みと2回目以降割り込みとの各々として、同じ割り込みを用いれば、リソース(即ち、使用する割り込み)を節約できるという面で有利である。
次に、請求項5の処理装置は、回転信号に基づいてエンジンの1サイクルにおけるクランク軸の回転位置であるクランク位置を検出するクランク位置検出手段を備えている。
そして、この処理装置において、インプットキャプチャ割り込みの処理のうちの初回割り込み設定処理では、クランク位置検出手段により検出されている現在のクランク位置が、エンジンの気筒毎に設定された各クランク位置範囲のうちの何れに入っているかを判別すると共に、その判別したクランク位置範囲毎に遅延時間Tzを設定するようになっている。
そして、この処理装置において、インプットキャプチャ割り込みの処理のうちの初回割り込み設定処理では、クランク位置検出手段により検出されている現在のクランク位置が、エンジンの気筒毎に設定された各クランク位置範囲のうちの何れに入っているかを判別すると共に、その判別したクランク位置範囲毎に遅延時間Tzを設定するようになっている。
このような処理装置によれば、例えば、クランク位置が第1気筒用のクランク位置範囲に入っている場合には、遅延時間Tzが第1気筒用の遅延時間Tz1に設定され、クランク位置が第2気筒用のクランク位置範囲に入っている場合には、遅延時間Tzが第2気筒用の遅延時間Tz2に設定される、といった具合に、遅延時間Tzが各気筒のクランク位置範囲毎に設定されることとなる。よって、回転信号に有効エッジが発生した時点から1回目の特定の処理が実行されるタイミングを、各気筒のクランク位置範囲毎に設定することができる。尚、請求項2の処理装置では、オフセット角度を各気筒のクランク位置範囲毎に設定するように構成すれば良い。
このため、例えば、各気筒毎に燃焼圧センサ等のセンサが設けられており、特定の処理として、各気筒毎のクランク位置範囲のうちで現在のクランク位置が入っているクランク位置範囲に該当する気筒のセンサから信号値を読み取る、といった処理を行う場合には、各センサの個体差等をも考慮した適切なクランク位置のタイミングで、そのセンサからの信号値を読み取ることができるようになる。尚、センサからの信号値を読み取るとは、そのセンサから出力される信号の値を読み取る、という意味である。
また、請求項1〜5の処理装置において、特定の処理としては、請求項6に記載のように、エンジンの気筒の燃焼圧を検出する燃焼圧センサからの信号値と、エンジンのノッキングを検出するノックセンサからの信号値と、エンジンの燃焼によって生じるイオン電流を検出するイオン電流センサからの信号値とのうちの、少なくとも何れか1つを読み取る測定処理を行うのが好ましい。
つまり、特定の処理として、燃焼圧センサからの信号値を読み取る測定処理を行えば、その測定処理で読み取った結果の計測データは、エンジンの点火時期制御、空燃比制御、失火検出、リーンリミットの設定、燃焼変動抑制、MBTの設定、ノック制御、EGR制御、バルブタイミング制御、気筒判別などに用いることができ、高機能、高精度、低コストなエンジン制御装置を開発し実現するのに有効であるからである。
また、特定の処理として、ノックセンサからの信号値を読み取る測定処理を行えば、その測定処理で読み取った結果の計測データは、ノック制御に用いることができ、この場合にも、高機能、高精度、低コストなエンジン制御装置を開発し実現するのに有効であるからである。
また、特定の処理として、イオン電流センサからの信号値を読み取る測定処理を行っても、そのイオン電流センサの信号値(即ち、イオン電流)からは、エンジンのノッキングや失火等を検出することができるため、この場合にも、高機能、高精度、低コストなエンジン制御装置を開発し実現するのに有効である。
このため、請求項6の処理装置をエンジン制御装置に設けて、そのエンジン制御装置が、前記特定の処理としての測定処理で読み取られた信号値を用いてエンジンを制御するように構成すれば、高機能、高精度、低コストなエンジン制御装置を実現できる。
以下に、本発明が適用された実施形態の燃焼圧計測装置について、図面を用いて説明する。尚、本実施形態の燃焼圧計測装置は、複数気筒(ここでは例えば4気筒)の4ストローク1サイクルエンジンについて、その各気筒毎に設けられた燃焼圧センサからの信号値を一定のクランク角度毎(本実施形態では1°CA毎)に読み取って、その読み取った各信号値を計測データとして計測機器へ出力するものである。
図1に示すように、本実施形態の燃焼圧計測装置1は、マイコン(マイクロコンピュータ)3と、入力回路5,7と、外部の計測機器8と通信するための通信回路9とを備えている。
そして、この燃焼圧計測装置1では、エンジンに取り付けられたクランク軸センサ11からの回転信号(以下、NE信号という)が、入力回路5を介してマイコン3に入力され、また、エンジンに取り付けられたカム軸センサ13からの気筒判別用信号(以下、G信号という)が、入力回路7を介してマイコン3に入力される。
ここで、クランク軸センサ11は、エンジンのクランク軸に固定されたロータ11aと、そのロータ11aの外周に対向して設けられ、該ロータ11aの外周に所定角度(本実施形態では10°)毎の間隔で形成された歯を検出してパルスを出力する電磁ピックアップ式やホールIC式等の信号出力部11bとからなる。そして、上記ロータ11aの外周には、歯が2個欠損した歯欠損部Kが1つ設けられている。
このため、クランク軸センサ11(詳しくは、その信号出力部11b)から入力回路5を介してマイコン3に入力されるNE信号は、クランク軸が10°回転する毎(10°CA毎)にローレベル→ハイレベル→ローレベルといった具合にパルス状に変化すると共に、クランク軸の回転位置が、上記ロータ11aの歯欠損部Kが信号出力部11bに対向することとなる基準位置に来た時には、該NE信号の立ち上がりエッジ間隔が3倍長くなる。よって、NE信号には、10°CA毎に有効エッジとしての立ち上がりエッジが発生すると共に、クランク軸の回転位置が基準位置に来ると、立ち上がりエッジが2個欠落した欠歯部が現れることとなる。
一方、カム軸センサ13は、クランク軸の回転に対して1/2の比率で回転するエンジンのカム軸に固定されたロータ13aと、そのロータ13aの外周に対向して設けられ、該ロータ13aの外周における凹凸に応じてハイレベルとローレベルとに変化するG信号を出力する磁気抵抗素子(MRE)式の信号出力部13bとからなる。また、ロータ13aの外周は、半周分(180°分)が凸で、他の半周分が凹となっている。
そして、カム軸センサ13(詳しくは、その信号出力部13b)から入力回路7を介してマイコン3に入力されるG信号は、クランク軸センサ11からのNE信号が10°CA毎に立ち上がるパルス信号となっている期間中に論理レベルが1回反転し、NE信号に欠歯部が現れるタイミングでは、その各タイミング毎に交互に異なったレベルとなる。
よって、NE信号に欠歯部が現れたときのG信号のレベルから、そのときのクランク位置を正確に特定することができる。例えば、NE信号に欠歯部が現れたときのG信号がハイレベルならば、現在のクランク位置が基準のクランク位置(ここではR°CAとする)であると特定することができ、逆にG信号がローレベルならば、現在のクランク位置がR°CAから360°CAだけ進んだクランク位置であると特定することができる。そして、このようにしてクランク位置を特定した後は、NE信号に立ち上がりエッジが発生した回数を計数していくことで、現在のクランク位置を10°CA単位で把握することができる。尚、こうしたクランク位置の検出技術は、例えば特開2001−90600号公報等に記載されている。
また、マイコン3には、各気筒の燃焼圧センサ15#1〜15#4からそれぞれ出力される4つの燃焼圧信号が入力される。そして、その各燃焼圧信号は、マイコン3に内蔵されたA/D変換器17によってそれぞれA/D変換される。尚、燃焼圧センサの各符号における#1〜#4の添え字は、それが1番気筒(#1)〜4番気筒(#4)のうちの何れに対応するものかを示している。そして、以下の説明において、燃焼圧センサについて、何れの気筒に対応するものかを特に区別しない場合には、それらの符号として、#1〜#4の添え字を省略したもの(つまり、15)を用いる。
次に、マイコン3の構成及び動作の概要について説明する。
図1に示すように、マイコン3は、前述したA/D変換器17の他に、フリーランタイマ(FRT)18と、インプットキャプチャ部19と、遅延機能部21と、PWM機能部23とを備えている。
図1に示すように、マイコン3は、前述したA/D変換器17の他に、フリーランタイマ(FRT)18と、インプットキャプチャ部19と、遅延機能部21と、PWM機能部23とを備えている。
そして更に、マイコン3は、図示しないプログラムメモリ(例えばEEPROMやフラッシュROM)に記憶されたプログラムを当該マイコン3が実行することで実現される機能手段として、10°CA間隔時間算出手段25と、クランク位置検出手段27と、1°CA間隔時間算出手段29と、測定開始時刻算出手段31と、測定開始手段33と、燃焼圧測定手段35とを備えている。尚、これら各手段25〜35の実体はプログラムである。
ここで、インプットキャプチャ部19は、既述した周知のインプットキャプチャ機能を実現するハードウェア部分であり、マイコン3の端子のうちの特定端子に入力される信号にエッジ(本実施形態では立ち上がりエッジ)が発生すると、その時のフリーランタイマ18の値を当該インプットキャプチャ部19内のインプットキャプチャレジスタ(図示省略)に現在時刻として記憶(キャプチャ)すると共に、インプットキャプチャ割り込みを発生させる。
そして、本実施形態において、マイコン3の上記特定端子には、入力回路5からのNE信号が入力されるようになっている。
このため、NE信号に立ち上がりエッジが発生する毎に、インプットキャプチャ割り込みが発生すると共に、その時のフリーランタイマ18の値が現在時刻としてインプットキャプチャレジスタに記憶される。
このため、NE信号に立ち上がりエッジが発生する毎に、インプットキャプチャ割り込みが発生すると共に、その時のフリーランタイマ18の値が現在時刻としてインプットキャプチャレジスタに記憶される。
遅延機能部21は、周知のコンペアタイマ割り込み機能を実現するハードウェア部分であり、ソフトウェアによって当該遅延機能部21内のコンペアレジスタ(図示省略)にセットされた時刻の値と、フリーランタイマ18の値とを常時比較し、その両値が一致すると、コンペアタイマ割り込み(以下単に、タイマ割り込みという)を発生させる。
PWM機能部23は、ソフトウェアによって設定された周期及びデューティ比のPWM信号をマイコン3の外部へ繰り返し出力するためのハードウェア部分であり、ソフトウェアによって作動が許可されると、設定された周期及びデューティ比のPWM信号を出力すると共に、そのPWM信号の1周期毎にPWM割り込みを発生させる。尚、少なくともPWM信号の周期(つまり、PWM割り込みの発生周期)は、任意のタイミングで変更可能である。
10°CA間隔時間算出手段25は、NE信号に立ち上がりエッジが発生してインプットキャプチャ割り込みが発生する毎に起動し、インプットキャプチャレジスタに今回記憶された時刻から前回記憶された時刻を引いた時間を、NE信号の立ち上がりエッジ間隔の時間(回転信号の1パルス間隔時間に相当し、以下、10°CA間隔時間T10という)として算出する。
クランク位置検出手段27も、インプットキャプチャ割り込みが発生する毎に動作し、下記(a)〜(c)の手順によりクランク位置を検出する。
(a)10°CA間隔時間算出手段25によって今回算出された10°CA間隔時間T10と、10°CA間隔時間算出手段25によって前回算出された10°CA間隔時間Toldとを比較して、その両時間T10,Toldの比(=T10/Told)が所定の欠歯判定比H以上であるか否かを判定し、「(T10/Told)≧H」であれば、NE信号に欠歯部が現れた(即ち、NE信号の今回の立ち上がりエッジ間が欠歯部である)と判定する。
(a)10°CA間隔時間算出手段25によって今回算出された10°CA間隔時間T10と、10°CA間隔時間算出手段25によって前回算出された10°CA間隔時間Toldとを比較して、その両時間T10,Toldの比(=T10/Told)が所定の欠歯判定比H以上であるか否かを判定し、「(T10/Told)≧H」であれば、NE信号に欠歯部が現れた(即ち、NE信号の今回の立ち上がりエッジ間が欠歯部である)と判定する。
(b)上記(a)の判定で、NE信号に欠歯部が現れたと判定した場合には、そのときのG信号のレベルを読み取る。そして、G信号のレベルがハイならば、現在のクランク位置が、ある基準のクランク位置(ここではR°CAとする)であると特定して、クランク位置を示すクランクカウンタの値を、「R°CA」を示す値に設定し、また、G信号のレベルがローならば、現在のクランク位置が上記R°CAから360°CAだけ進んだクランク位置であると特定して、クランクカウンタの値を、「(R+360)°CA」を示す値に設定する。
(c)上記(a)の判定で、NE信号に欠歯部が現れていないと判定した場合、エンジンが始動されてから未だ上記(b)の動作でクランク位置が特定されていなければ、そのまま動作を終了するが、上記(b)の動作でクランク位置が特定されていれば、クランクカウンタの値を10°CA分だけカウントアップさせる。また、このカウントアップ処理では、クランクカウンタの値が720°CAを示す最大値になると該クランクカウンタの値を0°CAを示す値に戻すことも行う。
そして、こうしたクランク位置検出手段27の動作により、クランク位置を10°CA単位で表すクランクカウンタの値が確定して更新され、延いては、クランク位置が10°CA単位で検出されることとなる。
1°CA間隔時間算出手段29も、インプットキャプチャ割り込みが発生する毎に動作する。そして、1°CA間隔時間算出手段29は、10°CA間隔時間算出手段25によって今回算出された10°CA間隔時間T10を10で割ることにより、クランク軸が1°回転するのに要する時間(1°CA分の時間)である1°CA間隔時間T1(=T10÷10)を算出する。
測定開始時刻算出手段31も、インプットキャプチャ割り込みが発生する毎に動作する。そして、測定開始時刻算出手段31は、今回のインプットキャプチャ割り込みの発生時から測定開始手段33が起動されるまでのディレイ時間(遅延時間)を、10°CA間隔時間算出手段25によって今回算出された10°CA間隔時間T10、クランク位置検出手段27により検出されているクランク位置(クランクカウンタの値)、及び処理遅れ時間等に応じて算出し、今回のインプットキャプチャ割り込みの発生時から上記算出したディレイ時間だけ後の時刻を、遅延機能部21のコンペアレジスタにセットする。すると、そのセットされた時刻にタイマ割り込みが発生することとなる。
測定開始手段33は、遅延機能部21によるタイマ割り込みが発生すると起動する。そして、測定開始手段33は、PWM機能部23に、PWM信号の周期として、1°CA間隔時間算出手段29で算出されている1°CA間隔時間T1をセットすると共に、PWM信号のデューティ比として所定値(本実施形態では50%)をセットした上で、そのPWM機能部23の作動を許可する。すると、その時点から1°CA間隔時間T1が経過する毎に、PWM割り込みが発生することとなる。そして更に、測定開始手段33は、燃焼圧測定手段35を起動させる。
燃焼圧測定手段35は、測定開始手段33によって起動される他に、PWM機能部23によるPWM割り込みが発生する毎にも起動する。つまり、燃焼圧測定手段35は、NE信号に立ち上がりエッジが生じると、測定開始時刻算出手段31によって算出されるディレイ時間の経過後に、測定開始手段33によって最初に起動され、その後は、1°CA間隔時間算出手段29で算出された1°CA間隔時間T1毎に、PWM割り込みが発生して起動されることとなる。そして、燃焼圧測定手段35は、起動する毎に、A/D変換器17から燃焼圧信号のA/D変換値(即ち、燃焼圧センサ15からの燃焼圧信号の信号値)を読み取って、マイコン3内の図示しない作業用メモリ(例えばRAM)に順次記憶する。尚、作業用メモリに記憶された各A/D変換値は、計測データとして、通信回路9から外部の計測機器8へ出力される。また、PWM機能部23によってマイコン3から出力されるPWM信号は、該マイコン3の動作状態を確認するためのタイミングモニタ信号として、本燃焼圧計測装置1の外部へ出力される。
次に、マイコン3が実行する上記各手段25〜35としての処理について、図2〜図7のフローチャートに基づき説明する。
まず図2は、マイコン3が動作を開始した時に実行するイニシャル処理を表すフローチャートである。尚、マイコン3は、車両のイグニッションスイッチがオンされて図示しない電源回路からの動作電圧が供給されることにより動作を開始する。
まず図2は、マイコン3が動作を開始した時に実行するイニシャル処理を表すフローチャートである。尚、マイコン3は、車両のイグニッションスイッチがオンされて図示しない電源回路からの動作電圧が供給されることにより動作を開始する。
マイコン3がこのイニシャル処理を開始すると、まずS110にて、PWM割り込みを禁止し、続くS120にて、PWM機能部23によるPWM信号の出力を停止させることで、該PWM機能部23の作動を禁止する。
そして、続くS130にて、PWM割り込みの処理を有効にしているか否かを示す動作フラグをオフし(即ち、動作フラグにオフを示す0をセットし)、続くS140にて、制御上必要な処理を行った後、当該イニシャル処理を終了する。
尚、本実施形態において、S140では、A/D変換器17をループモードで起動する処理を行う。すると、以後、A/D変換器17は、燃焼圧センサ15#1〜15#4からの燃焼圧信号を常時繰り返しA/D変換することとなる。
次に、図3は、NE信号の立ち上がり時に発生するインプットキャプチャ割り込みの処理(以下、NE割り込み処理という)を表すフローチャートである。
マイコン3がこのNE割り込み処理を開始すると、まずS210にて、インプットキャプチャ部19のインプットキャプチャレジスタから、今回記憶された時刻(即ち、NE信号が今回立ち上がった時刻であり、以下、今回キャプチャ時刻という)を読み出し、その今回キャプチャ時刻から、インプットキャプチャレジスタに前回記憶された時刻(即ち、NE信号が前回立ち上がった時刻であり、以下、前回キャプチャ時刻という)を引いた時間を、10°CA間隔時間T10として算出する。
マイコン3がこのNE割り込み処理を開始すると、まずS210にて、インプットキャプチャ部19のインプットキャプチャレジスタから、今回記憶された時刻(即ち、NE信号が今回立ち上がった時刻であり、以下、今回キャプチャ時刻という)を読み出し、その今回キャプチャ時刻から、インプットキャプチャレジスタに前回記憶された時刻(即ち、NE信号が前回立ち上がった時刻であり、以下、前回キャプチャ時刻という)を引いた時間を、10°CA間隔時間T10として算出する。
尚、このS210で用いられる前回キャプチャ時刻は、当該NE割り込み処理が前回に実行された際に、後述するS270で、そのときの今回キャプチャ時刻が前回キャプチャ時刻として記憶されたものである。また、イグニッションスイッチがオンされてマイコン3が始めて本NE割り込み処理を実行した場合、T10は初期値としての最大値に設定される。
そして、続くS215にて、今回のS210で算出された10°CA間隔時間(以下、今回の10°CA間隔時間という)T10と、前回のS210で算出された10°CA間隔時間(以下、前回の10°CA間隔時間という)Toldとを比較して、その両時間T10,Toldの比(=T10/Told)が所定の欠歯判定比H(例えばH=2.4)以上である、という欠歯判定条件が成立しているか否かを判定し、その欠歯判定条件が成立していないと判定した場合には、S220に移行する。
尚、イグニッションスイッチがオンされてからマイコン3が始めて本NE割り込み処理を実行した場合、Toldは初期値としての最大値に設定されている。よって、その場合、S215では、必ず上記欠歯判定条件が成立していないと判定することとなる。
S220では、後述するS280の処理によってクランク位置が特定済みであるか否かを判定し、クランク位置が未だ特定されていなければ、S270へ移行する。
そして、S270では、上記S210でインプットキャプチャレジスタから読み出した今回キャプチャ時刻を、前回キャプチャ時刻として記憶し、続くS275にて、今回の10°CA間隔時間T10を、前回の10°CA間隔時間Toldとして記憶し、その後、当該NE割り込み処理を終了する。
そして、S270では、上記S210でインプットキャプチャレジスタから読み出した今回キャプチャ時刻を、前回キャプチャ時刻として記憶し、続くS275にて、今回の10°CA間隔時間T10を、前回の10°CA間隔時間Toldとして記憶し、その後、当該NE割り込み処理を終了する。
また、上記S220にて、クランク位置が特定済みであると判定した場合には、S225に進んで、クランクカウンタの値を10°CA分だけカウントアップさせる。
そして、続くS230にて、今回の10°CA間隔時間T10を逓倍数である10で割ることにより、1°CA間隔時間T1を算出する。
そして、続くS230にて、今回の10°CA間隔時間T10を逓倍数である10で割ることにより、1°CA間隔時間T1を算出する。
一方、上記S215にて、欠歯判定条件が成立していると判定した場合には、NE信号に欠歯部が現れた(即ち、今回のNE信号の立ち上がりエッジ間が欠歯部であり、換言すれば、今回のNE信号の立ち上がりエッジが欠歯部の終了タイミングであった)と判断して、S280に移行する。
S280では、前述した(b)の手順により、クランク位置を特定して、クランクカウンタの値を、「R°CA」又は「(R+360)°CA」を示す値に設定する。
そして、続くS285にて、今回の10°CA間隔時間T10を3で割った値を、改めて、今回の10°CA間隔時間T10として記憶し直す。つまり、この場合、今回のNE信号の立ち上がりエッジ間は欠歯部であり、今回のS210で算出された10°CA間隔時間T10は、実際には30°CA分の時間であるため、そのT10を3で割ることにより、10°CA分の時間に直している。そして、このS285の処理の後、前述したS230に進み、10°CA分の時間に直された10°CA間隔時間T10から1°CA間隔時間T1を算出する。
そして、続くS285にて、今回の10°CA間隔時間T10を3で割った値を、改めて、今回の10°CA間隔時間T10として記憶し直す。つまり、この場合、今回のNE信号の立ち上がりエッジ間は欠歯部であり、今回のS210で算出された10°CA間隔時間T10は、実際には30°CA分の時間であるため、そのT10を3で割ることにより、10°CA分の時間に直している。そして、このS285の処理の後、前述したS230に進み、10°CA分の時間に直された10°CA間隔時間T10から1°CA間隔時間T1を算出する。
上記S225とS285との何れかからS230に進んで1°CA間隔時間T1が算出されると、次にS240へ進む。そして、このS240にて、今回のインプットキャプチャ割り込みの発生時(即ち、今回のNE信号の立ち上がり時)から後述する図5の測定開始処理(前述の測定開始手段33に相当)が起動されるまでのディレイ時間(遅延時間)Tzを算出するために、図4に示すディレイ時間算出処理を実行する。
マイコン3がディレイ時間算出処理を開始すると、まずS310にて、NE信号が立ち上がってから燃焼圧信号の測定(詳しくは、燃焼圧信号のA/D変換値の読み取り)を開始するまでのクランク角度であるオフセット角度を、デフォルト値としての0に設定し、続くS320にて、気筒番号をデフォルト値としての0に設定する。
そして、本実施形態においては、例えば各気筒のBTDC40°CA(圧縮行程の上死点より40°CAだけ前)〜ATDC40°CA(圧縮行程の上死点から40°CAだけ後)のクランク位置範囲を、各気筒の所定区間(各気筒毎のクランク位置範囲に相当)として設定しており、上記S320に続くS330では、クランクカウンタの値から、現在のクランク位置が1番気筒の所定区間に入っているか否かを判定する。
このS330にて、現在のクランク位置が1番気筒の所定区間に入っていると判定した場合には、S340に進んで、オフセット角度を、1番気筒用のオフセット角度に設定し、続くS350にて、気筒番号を、1番気筒を示す1に設定する。
また、上記S330にて、現在のクランク位置が1番気筒の所定区間に入っていないと判定した場合には、S360に移行して、今度は、クランクカウンタの値から、現在のクランク位置が2番気筒の所定区間に入っているか否かを判定する。
そして、このS360にて、現在のクランク位置が2番気筒の所定区間に入っていると判定した場合には、S370に進んで、オフセット角度を、2番気筒用のオフセット角度に設定し、続くS380にて、気筒番号を、2番気筒を示す2に設定する。
また、上記S360にて、現在のクランク位置が2番気筒の所定区間に入っていないと判定した場合には、S390に移行して、今度は、クランクカウンタの値から、現在のクランク位置が3番気筒の所定区間に入っているか否かを判定する。
そして、このS390にて、現在のクランク位置が3番気筒の所定区間に入っていると判定した場合には、S400に進んで、オフセット角度を、3番気筒用のオフセット角度に設定し、続くS410にて、気筒番号を、3番気筒を示す3に設定する。
また、上記S390にて、現在のクランク位置が3番気筒の所定区間に入っていないと判定した場合には、S420に移行して、今度は、クランクカウンタの値から、現在のクランク位置が4番気筒の所定区間に入っているか否かを判定する。
そして、このS420にて、現在のクランク位置が4番気筒の所定区間に入っていると判定した場合には、S430に進んで、オフセット角度を、4番気筒用のオフセット角度に設定し、続くS440にて、気筒番号を、4番気筒を示す4に設定する。
次に、上記S350,S380,S410,及びS440のうちの何れかの処理を行った後、或いは、上記S420で現在のクランク位置が4番気筒の所定区間に入っていないと判定した場合には、S450に進み、その時点で設定されているオフセット角度を、今回の10°CA間隔時間T10を用いて、下記の式1により、NE信号が立ち上がってから燃焼圧信号の測定を開始するまでの時間であるオフセット時間Tosに換算する。
オフセット時間Tos=オフセット角度×(T10÷10) …式1
尚、式1における「(T10÷10)」に代えて、図3のS230で算出されている1°CA間隔時間T1を用いても同じことである。
尚、式1における「(T10÷10)」に代えて、図3のS230で算出されている1°CA間隔時間T1を用いても同じことである。
そして、続くS460にて、上記S450で算出したオフセット時間Tosを用いて、ディレイ時間Tzを下記の式2により算出し、その後、当該ディレイ時間算出処理を終了する。
ディレイ時間Tz=オフセット時間Tos−ソフト処理遅れ時間Td …式2
尚、式2におけるソフト処理遅れ時間Tdは、タイマ割り込みが発生してから後述する図5の測定開始処理におけるS570で図6の燃焼圧測定処理(更に詳しくは、その燃焼圧測定処理におけるS620,S640,S660,及びS680のうちの何れかの処理)が実行されるまでの遅れ時間である。
尚、式2におけるソフト処理遅れ時間Tdは、タイマ割り込みが発生してから後述する図5の測定開始処理におけるS570で図6の燃焼圧測定処理(更に詳しくは、その燃焼圧測定処理におけるS620,S640,S660,及びS680のうちの何れかの処理)が実行されるまでの遅れ時間である。
このようなディレイ時間算出処理が終了すると、図3のS250へ進んで、今回キャプチャ時刻にディレイ時間算出処理のS460で算出したディレイ時間Tzを加算した時刻(つまり、今回キャプチャ時刻からディレイ時間Tzだけ後の時刻)を、測定開始時刻として算出する。
そして、続くS260にて、上記S250で算出した測定開始時刻にタイマ割り込みを発生させるための処理を行う。つまり、S260では、遅延機能部21のコンペアレジスタに上記S250で算出した測定開始時刻をセットする。そして、その後、前述したS270とS275の処理を行い、当該NE割り込み処理を終了する。
次に、図5は、測定開始処理を表すフローチャートである。
この測定開始処理は、図3のS260で遅延機能部21のコンペアレジスタにセットされた測定開始時刻に発生するタイマ割り込みの処理である。
この測定開始処理は、図3のS260で遅延機能部21のコンペアレジスタにセットされた測定開始時刻に発生するタイマ割り込みの処理である。
そして、この測定開始処理が開始されると、まずS510にて、PWM割り込みを禁止し、続くS520にて、PWM機能部23によるPWM信号の出力を停止させることで、該PWM機能部23の作動を禁止する。
そして、次のS530にて、PWM機能部23を作動させるための基本項目(例えば、PWM信号のアクティブレベルをハイとローの何れにするかや、PWM機能部23の動作クロック)を設定し、続くS540にて、PWM機能部23に、PWM信号の周期として、図3のS230で算出されている最新の1°CA間隔時間T1をセットすると共に、PWM信号のデューティ比として50%をセットした上で、そのPWM機能部23の作動を許可する。すると、その時点から1°CA間隔時間T1毎に、PWM割り込みが発生することとなる。
そして、次のS550にて、動作フラグをオンし(即ち、動作フラグにオンを示す1をセットし)、続くS560にて、NE信号が立ち上がってからの割り込み発生回数をカウントするための割り込みカウンタに、1回目を示す1をセットする。
次に、S570にて、図6に示す燃焼圧測定処理を実行する。
マイコン3が燃焼圧測定処理を開始すると、まずS610にて、気筒番号が1であるか否かを判定し、気筒番号が1であれば、現在のクランク位置が1番気筒の所定区間に入っていることから、S620に進む。そして、そのS620にて、1番気筒に設けられた燃焼圧センサ15#1からの燃焼圧信号のA/D変換値をA/D変換器17から読み取り、その読み取ったA/D変換値を、作業用メモリの記憶領域のうち、1番気筒用の記憶領域に格納する。
マイコン3が燃焼圧測定処理を開始すると、まずS610にて、気筒番号が1であるか否かを判定し、気筒番号が1であれば、現在のクランク位置が1番気筒の所定区間に入っていることから、S620に進む。そして、そのS620にて、1番気筒に設けられた燃焼圧センサ15#1からの燃焼圧信号のA/D変換値をA/D変換器17から読み取り、その読み取ったA/D変換値を、作業用メモリの記憶領域のうち、1番気筒用の記憶領域に格納する。
また、上記S610にて、気筒番号が1ではないと判定した場合には、S630に移行して、今度は、気筒番号が2であるか否かを判定し、気筒番号が2であれば、現在のクランク位置が2番気筒の所定区間に入っていることから、S640に進む。そして、そのS640にて、2番気筒に設けられた燃焼圧センサ15#2からの燃焼圧信号のA/D変換値をA/D変換器17から読み取り、その読み取ったA/D変換値を、作業用メモリの記憶領域のうち、2番気筒用の記憶領域に格納する。
また、上記S630にて、気筒番号が2ではないと判定した場合には、S650に移行して、今度は、気筒番号が3であるか否かを判定し、気筒番号が3であれば、現在のクランク位置が3番気筒の所定区間に入っていることから、S660に進む。そして、そのS660にて、3番気筒に設けられた燃焼圧センサ15#3からの燃焼圧信号のA/D変換値をA/D変換器17から読み取り、その読み取ったA/D変換値を、作業用メモリの記憶領域のうち、3番気筒用の記憶領域に格納する。
また、上記S650にて、気筒番号が3ではないと判定した場合には、S670に移行して、今度は、気筒番号が4であるか否かを判定し、気筒番号が4であれば、現在のクランク位置が4番気筒の所定区間に入っていることから、S680に進む。そして、そのS680にて、4番気筒に設けられた燃焼圧センサ15#4からの燃焼圧信号のA/D変換値をA/D変換器17から読み取り、その読み取ったA/D変換値を、作業用メモリの記憶領域のうち、4番気筒用の記憶領域に格納する。
そして、上記S620,S640,S660,及びS680のうちの何れかの処理を行った後、或いは、上記S670で気筒番号が4ではないと判定した場合には、当該燃焼圧測定処理を終了する。
つまり、燃焼圧測定処理では、前述した各気筒の所定区間(BTDC40°CA〜ATDC40°CA)のうちで現在のクランク位置が入っている所定区間に該当する気筒の燃焼圧センサ15からの信号値を読み取って、その気筒用の記憶領域に格納するようにしている。尚、上記S620,S640,S660,及びS680の各処理によって各気筒用の記憶領域に格納されるA/D変換値は、その格納時毎に外部の計測機器8へ送信するようにしても良いし、また、ある時間分だけ上記記憶領域に格納しておいて、任意のタイミングでまとめて計測機器8へ送信するようにしても良い。
そして、図5のS570で上記の燃焼圧測定処理が終了すると、図5のS580に進んで、PWM割り込み要求をクリアし、続くS590にて、PWM割り込みを許可する。そして、その後、当該測定開始処理を終了する。
次に、図7は、PWM割り込みの発生時に起動されるPWM割り込み処理(PWM割り込みの処理)を表すフローチャートである。
このPWM割り込み処理が開始されると、まずS710にて、動作フラグがオンされているか否かを判定し、動作フラグがオンされていないと判定した場合には、そのまま当該PWM割り込み処理を終了する。
このPWM割り込み処理が開始されると、まずS710にて、動作フラグがオンされているか否かを判定し、動作フラグがオンされていないと判定した場合には、そのまま当該PWM割り込み処理を終了する。
また、上記S710にて、動作フラグがオンされていると判定した場合には、S720に進んで、前述した図6の燃焼圧測定処理を実行する。
その燃焼圧測定処理が終了すると、次のS730にて、割り込みカウンタを1インクリメントし、続くS740にて、割り込みカウンタの値が10になったか否かを判定する。
その燃焼圧測定処理が終了すると、次のS730にて、割り込みカウンタを1インクリメントし、続くS740にて、割り込みカウンタの値が10になったか否かを判定する。
そして、割り込みカウンタの値が10でなければ(S740:NO)、そのまま当該PWM割り込み処理を終了するが、割り込みカウンタの値が10であれば(S740:YES)、S750に進んで、PWM割り込みを禁止し、続くS760にて、PWM機能部23によるPWM信号の出力を停止させることで、該PWM機能部23の作動を禁止する。そして更に、続くS770にて、動作フラグをオフした後、当該PWM割り込み処理を終了する。
尚、上記図2〜図7の処理と図1における各手段25〜35との対応としては、まず、図3のNE割り込み処理のうち、S210,S270及びS285が10°CA間隔時間算出手段25に該当し、S215〜S225,S275及びS280がクランク位置検出手段27に該当し、S230が1°CA間隔時間算出手段29に該当し、S240〜S260が測定開始時刻算出手段31に該当している。そして、図5の測定開始処理が測定開始手段33に該当し、図6の燃焼圧測定処理が燃焼圧測定手段35に該当している。
また、本実施形態では、マイコン3が、クランク軸回転同期の処理装置に相当している。そして、図3のNE割り込み処理のうち、S210,S270及びS285の処理が、第1の時間算出処理に相当し、S230の処理が、第2の時間算出処理に相当し、S240〜S260の処理が、初回割り込み設定処理に相当し、S215〜S225,S275及びS280の処理が、請求項5のクランク位置検出手段としての処理に相当している。そして更に、図3のNE割り込みにおけるS260で発生時刻がセットされるタイマ割り込みが、初回割り込みに相当し、そのタイマ割り込みの処理である図5の測定開始処理のうち、S540の処理が、2回目以降割り込み設定処理に相当している。また、PWM割り込みが、2回目以降割り込みとして用いられている。そして、図5のS570と図7のS720との各々で起動される図6の燃焼圧測定処理が、特定の処理に相当している。
以上のような燃焼圧計測装置1のマイコン3では、図8(A)に示すように、NE信号に立ち上がりエッジが発生すると、インプットキャプチャ割り込みが発生して、そのインプットキャプチャ割り込みの処理である図3のNE割り込み処理が実行され、そのNE信号の立ち上がりタイミングから故意の遅延時間Tzが経過した時に、タイマ割り込みが発生して、そのタイマ割り込みの処理である図5の測定開始処理が実行され、その測定開始処理中(図5のS570)で、図6の燃焼圧測定処理が行われる。
そして更に、その後は、図5の測定開始処理が次に実行されるまでの間、クランク軸が1°回転する1°CA間隔時間(1°CA分の時間)T1毎に、PWM割り込みが最大で9回まで発生すると共に、その各PWM割り込みの処理中(図7のS720)でも、図6の燃焼圧測定処理が行われることとなる。
このように、マイコン3では、NE信号に立ち上がりエッジが発生した時点から、遅延時間Tzが経過したタイミングを基準として、1°CA間隔時間T1毎に、燃焼圧測定処理(燃焼圧センサ15からの信号値を読み取る処理)が行われることとなる。
尚、図7のPWM割り込み処理におけるS730〜S770の処理は、図5の測定開始処理が実行されてから、その測定開始処理が次に実行されるまでの間に、PWM割り込みが最大で9回までしか発生しないようにするためのものである。つまり、S730〜S770の処理は、クランク軸の回転速度が低下して、NE信号の立ち上がりエッジ間の時間が前回より伸びても、その伸びたNE信号の立ち上がりエッジ間において、図6の燃焼圧測定処理が、最大で10回までしか実行されないようにするためのガード機能用の処理である。よって、そのようなガード機能が不要な場合には、S730〜S770の処理を省略するこができる。
また、図5の測定開始処理におけるS510及びS520の処理は、クランク軸の回転速度が上昇して、NE信号の立ち上がりエッジ間の時間が前回よりも短くなり、当該測定開始処理が前回実行されてから今回開始されるまでの間にPWM割り込みが未だ9回発生していなくても、もはや前回の当該測定開始処理で設定した周期のPWM割り込みが発生しないようにするための処理である。同様に、図5の測定開始処理におけるS580及びS590の処理は、当該測定開始処理の最後でPWM割り込み要求をクリアし、該PWM割り込みを許可することで、クランク軸の回転速度が上昇した場合の不要なPWM割り込み要求を削除して誤動作を防止するためのものである。
以上のような本実施形態のマイコン3によれば、燃焼圧測定処理(図6)の実行タイミングであって、NE信号に立ち上がりエッジが発生するクランク角度間隔(10°CA)よりも短いクランク角度間隔(上記例では1°CA)毎のタイミングを、ソフトウェアだけで発生させることができ、そのようなタイミングを発生させるための専用ハードウェア回路が不要であるため、装置を安価に構成することができる。
また、図3のNE割り込み処理におけるS230で用いる逓倍数(即ち、T10を割る数)を変えるだけで、タイミングを発生させるクランク角度間隔を変更することができ、しかも、その逓倍数を動的にも変更することができる。
そして更に、NE割り込み処理におけるS240で算出するディレイ時間Tz(つまり、S260でセットする測定開始時刻)により、NE信号に立ち上がりエッジが発生した時点から燃焼圧測定処理が1回目に実行される基準タイミングを、任意のオフセット角度後のタイミングに設定することができる。
特に、NE割り込み処理のS240〜S260では、S210で今回算出された10°CA間隔時間T10に基づいて、クランク軸が所定のオフセット角度OSA回転するのに要する時間であるオフセット時間Tosを算出すると共に(図4のS450)、そのオフセット時間Tosから、タイマ割り込みが発生してから測定開始処理のS570で燃焼圧測定処理が実行されるまでのソフト処理遅れ時間Tdを引いた時間(=Tos−Td)を、上記ディレイ時間Tzとして算出している(図4のS460)。
このため、図8(A)における点線楕円部分を拡大して表す図8(B)に示すように、NE信号に立ち上がりエッジが発生した時点から1回目の燃焼圧測定処理が実行される基準タイミングを、そのNE信号の立ち上がり時からクランク軸がオフセット角度OSAだけ回転したタイミングに正確に設定することができる。
このように本実施形態のマイコン3によれば、NE信号に立ち上がりエッジが発生した時点から任意のオフセット角度後のタイミングを基準として、NE信号に立ち上がりエッジが発生する10°CA毎よりも短いクランク角度間隔(上記例では1°CA)毎に、燃焼圧測定処理を実行することができる。
また、このため、例えば図9(A)に示すように、最初は、オフセット角度を0.1°CAにし、次のサイクルにおける同じクランク位置範囲では、図9(B)に示すように、オフセット角度を0.2°CAにする、といった具合に、オフセット角度を0.1°CA刻みで増加させて行けば、最終的には、図9(C)に示すように、燃焼圧信号を0.1°CA刻みで測定した非常に細かい測定結果を得ることができる。
また更に、本実施形態のマイコン3では、NE割り込み処理のS240で実行されるディレイ時間算出処理にて、現在のクランク位置が、各気筒毎の所定区間のうちの何れに入っているかを判別すると共に(S330,S360,S390,S420)、その判別した所定区間に該当する気筒用のオフセット角度を設定して、そのオフセット角度からディレイ時間Tzを算出するようにしている。
このため、例えば、クランク位置が1番気筒の所定区間に入っている場合には、ディレイ時間Tzが1番気筒用のオフセット角度に応じた値に設定され、クランク位置が2番気筒の所定区間に入っている場合には、ディレイ時間Tzが2番気筒用のオフセット角度に応じた値に設定される、といった具合に、ディレイ時間Tzが各気筒の所定区間毎に設定されることとなる。
よって、図6の燃焼圧測定処理では、各気筒毎の所定区間のうちで現在のクランク位置が入っている所定区間に該当する気筒の燃焼圧センサ15から信号値を読み取る、といった処理を行っているが、そのような燃焼圧測定処理において、各気筒の燃焼圧センサ15の個体差等をも考慮した適切なクランク位置のタイミングで、その各燃焼圧センサ15からの信号値を読み取ることができるようになる。NE信号の立ち上がり時から1回目の燃焼圧測定処理が実行されるタイミングを、各気筒の所定区間毎に設定することができるからである。
また、本実施形態では、A/D変換器17をループモードで作動させているため、そのA/D変換器17を図6の燃焼圧測定処理で毎回起動する必要が無く、処理を軽減することができる。
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
例えば、上記実施形態のマイコン3において、PWM割り込みの代わりに、遅延機能部21によるタイマ割り込みを用いても良い。
この場合、図5の測定開始処理では、S570の処理と、1°CA間隔時間T1後に再びタイマ割り込みが発生して当該測定開始処理が起動されるように遅延機能部21のコンペアレジスタへ時刻をセットする処理とを行えば良く、必要であれば、図7のS730〜S750と同様に、NE割り込み処理が実行されてから当該測定開始処理が10回実行されたなら、次にNE割り込み処理が実行されるまで、タイマ割り込みが発生するのを禁止するための処理を行うようにすれば良い。そして、このようにすれば、使用する割り込みの数を節約することができる。尚、タイマ割り込みとしては、遅延機能部21によるタイマ割り込み以外の他のタイマ割り込み(例えば、割り込みの発生と共に外部へ信号を出力するタイマ割り込みや、割り込みの発生と共にA/D変換器を起動するタイマ割り込み)を用いても良い。
この場合、図5の測定開始処理では、S570の処理と、1°CA間隔時間T1後に再びタイマ割り込みが発生して当該測定開始処理が起動されるように遅延機能部21のコンペアレジスタへ時刻をセットする処理とを行えば良く、必要であれば、図7のS730〜S750と同様に、NE割り込み処理が実行されてから当該測定開始処理が10回実行されたなら、次にNE割り込み処理が実行されるまで、タイマ割り込みが発生するのを禁止するための処理を行うようにすれば良い。そして、このようにすれば、使用する割り込みの数を節約することができる。尚、タイマ割り込みとしては、遅延機能部21によるタイマ割り込み以外の他のタイマ割り込み(例えば、割り込みの発生と共に外部へ信号を出力するタイマ割り込みや、割り込みの発生と共にA/D変換器を起動するタイマ割り込み)を用いても良い。
但し、上記実施形態のように、NE割り込み処理が実行されてからの2回目以降の割り込みとして、PWM割り込みを用いれば、NE割り込み処理が実行されてからの1回目(初回)の割り込み処理である図5の測定開始処理にて、PWM割り込みを1°CA間隔時間T1毎に発生させるための処理を1回行うだけで、その1°CA間隔時間T1毎に燃焼圧測定処理を実施することができ、処理負荷を低減できるという面で有利である。
更に、PWM割り込みを用いれば、そのPWM割り込みの発生と同期して出力されるPWM信号を、マイコン3の動作状態を確認するためのタイミングモニタ信号として利用することができ、この点においても有利である。尚、上記実施形態では、PWM信号のデューティ比を50%に設定したが、これは、タイミングモニタ信号としての役割を考えた場合、デューティ比が50%に近いほど信号の周期や発生タイミングを確認し易いからである。
一方、上記実施形態のマイコン3において、NE割り込み処理が実行されてからの1回目の割り込みとしても、PWM割り込みを用いても良い。
この場合、図3のNE割り込み処理では、S260にて、S250で算出した測定開始時刻にPWM割り込みを発生させるための処理を行えば良く、また、PWM割り込みの処理は、NE割り込み処理が実行されてから1回目の実行時にだけ、図5の処理と同様の処理を行い、2回目以降の実行時には、図7の処理と同様の処理を行うように構成すれば良い。そして、このようにしても、使用する割り込みの数を節約することができる。
この場合、図3のNE割り込み処理では、S260にて、S250で算出した測定開始時刻にPWM割り込みを発生させるための処理を行えば良く、また、PWM割り込みの処理は、NE割り込み処理が実行されてから1回目の実行時にだけ、図5の処理と同様の処理を行い、2回目以降の実行時には、図7の処理と同様の処理を行うように構成すれば良い。そして、このようにしても、使用する割り込みの数を節約することができる。
また、上記実施形態では、10°CA毎よりも短いクランク角度間隔毎に実行する特定の処理として、燃焼圧センサ15からの信号値を読み取る処理を実施したが、例えば、A/D変換器17にノックセンサからのノック信号が入力されるようにし、図5のS570と図7のS720との各々にて、そのノック信号のA/D変換値をA/D変換器17から読み取る測定処理を行うようにしても良い。また同様に、エンジンのノッキングや失火を検出するためのイオン電流センサからの信号がA/D変換器17に入力されるようにし、図5のS570と図7のS720との各々にて、その信号のA/D変換値をA/D変換器17から読み取る測定処理を行うようにしても良い。
また、特定の処理としては、センサからの信号値を読み取る処理以外の他の処理であっても良い。
一方、上記実施形態のマイコン3を、エンジン制御装置に搭載し、そのエンジン制御装置が、図6の燃焼圧測定処理で読み取られた燃焼圧信号のA/D変換値を用いてエンジンの制御(例えば、燃料噴射制御や点火制御やノッキング制御等)を行うように構成すれば、高機能、高精度、低コストなエンジン制御装置を実現することができる。
一方、上記実施形態のマイコン3を、エンジン制御装置に搭載し、そのエンジン制御装置が、図6の燃焼圧測定処理で読み取られた燃焼圧信号のA/D変換値を用いてエンジンの制御(例えば、燃料噴射制御や点火制御やノッキング制御等)を行うように構成すれば、高機能、高精度、低コストなエンジン制御装置を実現することができる。
この場合、燃焼圧信号のA/D変換値を用いてエンジンの制御を行う制御手段37を、マイコン3とは別に設けても良いが、図1における点線で示すように、マイコン3が、エンジン制御用のプログラムを実行して、そのような制御手段37としても機能するように構成すれば、ハードウェアリソースを節約することができる。
1…燃焼圧計測装置、3…マイコン、5,7…入力回路、8…計測機器、9…通信回路、11…クランク軸センサ、13…カム軸センサ、11a,13a…ロータ、K…歯欠損部、11b,13b…信号出力部、15(15#1〜15#4)…燃焼圧センサ、17…A/D変換器、18…フリーランタイマ、19…インプットキャプチャ部、21…遅延機能部、23…PWM機能部、25…10°CA間隔時間算出手段、27…クランク位置検出手段、29…1°CA間隔時間算出手段、31…測定開始時刻算出手段、33…測定開始手段、35…燃焼圧測定手段、37…制御手段
Claims (7)
- エンジンのクランク軸の回転に応じて該クランク軸が所定角度回転する毎にパルスエッジが発生する回転信号をクランク軸センサから入力し、該回転信号に前記所定角度毎のパルスエッジ(以下、有効エッジという)が発生する毎に、該有効エッジが前回発生してから今回発生するまでの1パルス間隔時間を計測すると共に、該計測値に基づき前記クランク軸が前記所定角度よりも小さい一定角度回転する時間を算出し、その算出した時間毎に特定の処理を実行するマイコンからなる処理装置であって、
前記回転信号に前記有効エッジが発生する毎に、インプットキャプチャ割り込みが発生し、
該インプットキャプチャ割り込みの処理により、
当該インプットキャプチャ割り込みが前回発生した時刻から今回発生した時刻までの時間を前記1パルス間隔時間として算出する第1の時間算出処理と、
該第1の時間算出処理により算出された前記1パルス間隔時間に基づいて、前記クランク軸が前記一定角度回転する時間を算出する第2の時間算出処理と、
所定の遅延時間が経過したときに当該インプットキャプチャ割り込み以外の他の割り込み(以下、初回割り込みという)を発生させるための設定を行う初回割り込み設定処理とが実行され、
更に、前記初回割り込みの処理が実行されることで、以後、その初回割り込みの処理が次に実行されるまでの間、前記第2の時間算出処理で算出された時間毎に前記インプットキャプチャ割り込み以外の他の割り込み(以下、2回目以降割り込みという)が発生するようになっており、
前記初回割り込みの処理と、前記2回目以降割り込みの処理との各々で、前記特定の処理が実行されること、
を特徴とするクランク軸回転同期の処理装置。 - 請求項1に記載のクランク軸回転同期の処理装置において、
前記インプットキャプチャ割り込みの処理のうちの前記初回割り込み設定処理では、前記第1の時間算出処理により算出された前記1パルス間隔時間に基づいて、前記クランク軸が所定のオフセット角度回転するのに要する時間であるオフセット時間を算出すると共に、前記初回割り込みが発生してから前記特定の処理が実行されるまでの処理遅れ時間を前記オフセット時間から引いた時間を、前記遅延時間とすること、
を特徴とするクランク軸回転同期の処理装置。 - 請求項1又は請求項2に記載のクランク軸回転同期の処理装置において、
当該処理装置としてのマイコンは、設定された周期及びデューティ比のPWM信号を出力すると共に、前記PWM信号の1周期毎にPWM割り込みを繰り返し発生させるPWM機能部を有しており、
前記2回目以降割り込みは、前記PWM割り込みであり、
更に、前記初回割り込みの処理では、
前記特定の処理と、
前記PWM機能部に前記周期として前記第2の時間算出処理で算出された時間を設定すると共に、前記PWM機能部の作動を許可することにより、以後、前記第2の時間算出処理で算出された時間毎に前記2回目以降割り込みとしてのPWM割り込みを発生させる2回目以降割り込み設定処理とを実行すること、
を特徴とするクランク軸回転同期の処理装置。 - 請求項1ないし請求項3の何れか1項に記載のクランク軸回転同期の処理装置において、
前記初回割り込みと前記2回目以降割り込みとが、同じ割り込みであること、
を特徴とするクランク軸回転同期の処理装置。 - 請求項1ないし請求項4の何れか1項に記載のクランク軸回転同期の処理装置において、
前記回転信号に基づいて、前記エンジンの1サイクルにおける前記クランク軸の回転位置であるクランク位置を検出するクランク位置検出手段を備え、
前記インプットキャプチャ割り込みの処理のうちの前記初回割り込み設定処理では、前記クランク位置検出手段により検出されている現在のクランク位置が、前記エンジンの気筒毎に設定された各クランク位置範囲のうちの何れに入っているかを判別し、その判別したクランク位置範囲毎に前記遅延時間を設定するようになっていること、
を特徴とするクランク軸回転同期の処理装置。 - 請求項1ないし請求項5の何れか1項に記載のクランク軸回転同期の処理装置において、
前記特定の処理は、
前記エンジンの気筒の燃焼圧を検出する燃焼圧センサからの信号値と、前記エンジンのノッキングを検出するノックセンサからの信号値と、前記エンジンの燃焼によって生じるイオン電流を検出するイオン電流センサからの信号値とのうちの、少なくとも何れか1つを読み取る測定処理であること、
を特徴とするクランク軸回転同期の処理装置。 - 請求項6に記載のクランク軸回転同期の処理装置を備え、
前記特定の処理としての測定処理で読み取られた信号値を用いて前記エンジンを制御すること、
を特徴とするエンジン制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004133972A JP2005315169A (ja) | 2004-04-28 | 2004-04-28 | クランク軸回転同期の処理装置及びエンジン制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004133972A JP2005315169A (ja) | 2004-04-28 | 2004-04-28 | クランク軸回転同期の処理装置及びエンジン制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005315169A true JP2005315169A (ja) | 2005-11-10 |
Family
ID=35442856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004133972A Pending JP2005315169A (ja) | 2004-04-28 | 2004-04-28 | クランク軸回転同期の処理装置及びエンジン制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005315169A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012225254A (ja) * | 2011-04-20 | 2012-11-15 | Honda Motor Co Ltd | 内燃機関の制御装置 |
JP2014227892A (ja) * | 2013-05-21 | 2014-12-08 | トヨタ自動車株式会社 | クランク角センサ、クランク角検出装置 |
JP2016145558A (ja) * | 2015-02-09 | 2016-08-12 | 株式会社デンソー | センサ信号処理装置 |
US9760163B2 (en) | 2012-03-14 | 2017-09-12 | Denso Corporation | Sensor signal processor |
-
2004
- 2004-04-28 JP JP2004133972A patent/JP2005315169A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012225254A (ja) * | 2011-04-20 | 2012-11-15 | Honda Motor Co Ltd | 内燃機関の制御装置 |
US9760163B2 (en) | 2012-03-14 | 2017-09-12 | Denso Corporation | Sensor signal processor |
JP2014227892A (ja) * | 2013-05-21 | 2014-12-08 | トヨタ自動車株式会社 | クランク角センサ、クランク角検出装置 |
JP2016145558A (ja) * | 2015-02-09 | 2016-08-12 | 株式会社デンソー | センサ信号処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4687481B2 (ja) | エンジン制御装置 | |
JP4274253B2 (ja) | エンジン制御装置およびプログラム | |
JP2007171142A (ja) | ノックセンサ信号処理装置 | |
JP2009257182A (ja) | 内燃機関の停止判定装置 | |
JP2008014287A (ja) | 内燃エンジンの逆転検出装置及び逆転検出方法 | |
JP4031428B2 (ja) | 内燃機関の点火制御装置 | |
JP6911627B2 (ja) | Ad変換処理装置 | |
JP2003161245A (ja) | 内燃機関の燃焼検出装置 | |
JP2005315169A (ja) | クランク軸回転同期の処理装置及びエンジン制御装置 | |
JPH0765556B2 (ja) | 内燃機関の点火制御装置 | |
EP2667199B1 (en) | Semiconductor data processing apparatus and engine control apparatus | |
JPH0475397B2 (ja) | ||
US6553965B2 (en) | Control system for internal combustion engine | |
JP2015021392A (ja) | 内燃機関用電子制御装置 | |
US9760163B2 (en) | Sensor signal processor | |
JP2016130452A (ja) | 内燃機関の制御装置 | |
JP4556690B2 (ja) | エンジン用点火装置 | |
JP3777963B2 (ja) | エンジン制御装置 | |
JP2019214977A (ja) | 車載制御装置 | |
JPS6314766B2 (ja) | ||
JPH0510242A (ja) | 点火信号発生装置 | |
JP5025789B2 (ja) | 内燃機関の停止判定装置 | |
JP6003869B2 (ja) | エンジン制御装置 | |
JP2013108478A (ja) | エンジン制御装置 | |
JP4407816B2 (ja) | エンジン用点火装置 |