以下に、本発明の実施例について図面に基づいて説明する。
図1は、内燃エンジン、吸気系、排気系及び内燃エンジンの制御部の構成を示す。
内燃エンジン1の吸気系2には、車輌の外部から吸入する空気の吸気量を制御するスロットルバルブ3が設けられている。スロットルバルブ3には、スロットルバルブ3の開度を検出するスロットルバルブ開度センサ11が設けられている。更に、吸気系2には、吸気の圧力を検出する吸気管圧力センサ12、吸気の温度を検出する吸気温度センサ13も設けられている。また、燃料を噴射する為の燃料噴射装置4も設けられており、内燃エンジン1は吸気と燃料噴射装置4から噴射された燃料との混合気を吸入し、吸入した混合気を燃焼させてピストン6を往復駆動せしめてクランクシャフト7を回転駆動する。この内燃エンジン1には、内燃エンジンを冷却するための冷却水の温度を検出する冷却水温度センサ14が設けられている。また、クランクシャフト7の近傍には、クランクシャフト7の角度を検出するクランクパルスセンサ15が設けられている。更に、内燃エンジン1にはクランクシャフト7に所定の回転数比、例えば2:1をもって連動するカムシャフト(図示せず)が設けられており、カムシャフト近傍にはカムシャフトの回転角度位置を検出するカムパルスセンサ16が設けられている。内燃エンジン1において燃焼した混合気は、排気ガスとして、排気系5へ排出される。排気系5には、排気ガス中の酸素濃度を検出する酸素濃度センサ17が設けられている。更に、内燃エンジン1の近傍には大気の圧力を検出する大気圧センサ18が設けられている。
上述した如き各種センサ11〜14及び17と18とから発せられる出力信号は、電子制御ユニット(以下、ECUと称する)30に供給される。スロットルバルブ開度センサ11、吸気管圧力センサ12、吸気温度センサ13、冷却水温度センサ14、酸素濃度センサ17及び大気圧センサ18から発せられる出力信号は、レベル変換回路群21に供給されて、所定の電圧信号に変換された後、ECU30内のマルチプレクサ(以下、MPXと称する)31に供給される。MPX31は、所定のタイミングでCPU34から発せられる命令に応じて、スロットルバルブ開度センサ11、吸気管圧力センサ12、吸気温度センサ13、冷却水温度センサ14、酸素濃度センサ17及び大気圧センサ18から発せられる出力信号のうちのいずれか1つを選択的にA/D変換器32に供給するスイッチである。A/D変換器32は、供給された信号をディジタル信号へ変換し、入出力バス33に供給する。入出力バス33は、CPU34にデータ信号又はアドレス信号が入出力されるようになされている。
一方、クランクパルスセンサ15から発せられる信号、例えばクランク角30度毎に発せられるパルス信号は、波形整形回路22に供給されて波形を整形した後、CPU34の割り込み入力及び回転数カウンタ37へ供給される。回転数カウンタ37は、内燃エンジンの回転数に応じたディジタル値が出力されるようになされており、回転数カウンタ37から発せられる出力信号は、入出力バス33へ供給される。また、カムパルスセンサ16から発せられるパルス信号は、波形整形回路23に供給されて波形を整形した後、CPU34の割り込み入力へ供給される。上述した如き構成とすることにより、CPU34は、クランクシャフト7の基準位置、内燃エンジンの回転数及びクランク角度を検出することができるのである。
上述した入出力バス33には、ROM35、RAM36及び燃料噴射装置4を駆動するための駆動回路24が接続されている。CPU34から燃料噴射制御指令が燃料噴射装置4に供給されると、燃料噴射装置4の燃料噴射弁(図示せず)を制御し、燃料供給量が制御されるのである。また、ROM35は、図4、5、17及び18において説明するフローチャートに従ってクランクシャフトの回転角度位置を検出するプログラムを記憶している。
図2は、本発明の第1の実施例である第1回転体における磁気突起の配置と第2回転体における磁気突起の配置とを示す。
図2(a)に示す如く、クランクシャフト7上には円型の第1回転体9がクランクシャフト7の回転運動に連動するように設けられている。図中の矢印に示す如くクランクシャフト7が反時計方向に回転した場合には、第1回転体9も反時計方向に回転する。また、第1回転体9の外周には、被検出部としての8個の磁気突起40a〜40hが回転方向に45度毎間隔で設けられている。磁気突起40a〜40hの回転軌跡近傍には磁気突起が近傍を通過する毎に磁気突起から生ずる磁束の変化に応じたパルス信号(以下、クランクパルス信号と称する。)を発するクランクパルスセンサ15が設けられている。
一方、図2(b)に示す如く、カムシャフト8上には円型の第2回転体10がクランクシャフト7の回転運動に連動するように設けられており、第1回転体と同様に図中の矢印に示す如き方向に第2回転体10も反時計方向に回転する。カムシャフト8は、図示しないチェーンスプロケットを介してクランクシャフト7に連結されており、クランクシャフト7の回転は、所定の減速比、例えば2で減速されてカムシャフト8に伝達される。カムシャフト8の外周には、被検出部としての7個の磁気突起42A〜42Gが所定の間隔毎、本第1の実施例においては、42A〜42B間は22.5度、42B〜42C間は67.5度、42C〜42D間は45.0度、42D〜42E間は45.0度、42E〜42F間は67.5度、42F〜42G間は22.5度、42G〜42A間は90.0度の如く、磁気突起間の2つの連続する角度間隔の順列が全て互いに異なるように設けられている。また、第1回転体と同様に磁気突起42A〜42Gの回転軌跡近傍にはカムパルスセンサ16が設けられている。
上述した第1の実施例においては、第1回転体の被検出部としての磁気突起は45度毎に等間隔に設けられているが故、第1回転体に設けられた相隣り合う被検出部の最大間隔は45度である。一方、第2回転体に設けられた相隣り合う被検出部の最小間隔は、42A〜42B又は42F〜42Gにおける22.5度である。また、上述した如く第1回転体の回転数と第2回転体の回転数との比は2である。従って、この第1の実施例においては、第2回転体の最小間隔である22.5度に回転数の比である2を乗じた値は、第1回転体の最大間隔である45度に等しくなるという関係を満たすのである。更に、クランクパルスセンサ15から発せられるパルス信号とカムパルスセンサ16から発せられるパルス信号(以下、カムパルス信号と称する。)とが同時に発しないようにすべく、第1回転体9はクランクシャフト7に対して所定の角度θだけ回転方向に偏倚した位置に設けられている。
図3は、上述したカムパルス信号が発せられたことを検出したときに割り込み処理により実行されるサブルーチンを示すフローチャートである。
このサブルーチンにおいては、フラグF_CAMの値を1に設定して(ステップS1)終了する。尚、割り込み要求信号としてのカムパルス信号が発せられて本サブルーチンが割り込み処理により実行されたときには、フラグF_CAMの値は1に設定される。一方、割り込み要求信号としてのクランクパルス信号が発せられて後述する図4に示すサブルーチンが割り込み処理により実行されたときには、フラグF_CAMの値は図4のステップS12において初期化、例えば0に設定される。
図4は、クランクパルス信号が発せられたときに割り込み処理により実行されて前回値と今回値とを得るサブルーチンを示す。
まず、上述したフラグF_CAMの値が1であるか否かを判断する(ステップS11)。このフラグF_CAMの値が1である状態とは、割り込み要求信号としてのクランクパルス信号が前回発せられて本サブルーチンが実行されたときからクランクパルス信号が今回発せられて本サブルーチンが実行されるときまでの間に、図3に示したカムパルス信号による割り込み処理のサブルーチンが実行されたことを示す。一方、このフラグF_CAMの値が0である状態とは、クランクパルス信号が前回発せられて本サブルーチンが実行されたときからクランクパルス信号が今回発せられて本サブルーチンが実行されるときまでの間に、図3に示したサブルーチンが実行されなかったことを示す。
上述したフラグF_CAMの値に応じて処理すべく、ステップS11においてフラグF_CAMの値が1であると判別した場合には、後述する如く前回値と今回値とからステップS18〜S26に示す行程判別の処理を実行した後、フラグF_CAMの値を0に設定する(ステップS12)。一方、ステップS11においてフラグF_CAMの値が0であると判別した場合には、直ちにフラグF_CAMの値を初期化すべく0に設定する(ステップS12)。ステップS12の処理の後、カウント値を所定値、例えば1だけ増加せしめた(ステップS13)後、ステージ番号の値を所定値、例えば1だけ増加せしめる(ステップS14)。次いで、ステージ番号の値が16未満であるか否かを判断する(ステップS15)。ステージ番号の値が16未満であると判別した場合には、直ちに本サブルーチンを終了し、一方、ステージ番号の値が16以上であると判別した場合には、ステージ番号の値を初期値、例えば0に設定した(ステップS16)後、断線判別サブルーチンを実行して(ステップS17)、本サブルーチンを終了する。
一方、カムパルス信号が発せられた場合には、上述したステップS11においてフラグF_CAMの値が1であると判別した後、フラグF_1stの値が1であるか否かを判断する(ステップS18)。このフラグF_1stは、第1のカムパルス信号を既に検出したか否かを示すフラグであり、第1のカムパルス信号を既に検出した場合にはフラグF_1stの値は1に設定され、第1のカムパルス信号を未だに検出していない場合にはフラグF_1stの値は0に設定される。ステップS18においてフラグF_1stの値が0であると判別した場合には、カウント値を初期値、例えば0に初期化した(ステップS19)後、フラグF_1stの値を1に設定する(ステップS20)。この後、上述した如きステップS12〜S17の処理を実行して本サブルーチンを終了する。尚、上述したカウント値とは、最新のカムパルス信号が発せられてから現時点までの間において発せられたクランクパルス信号のパルス数を計数した値である。
また、上述したステップS18においてフラグF_1stの値が1であると判別した場合には、今回値を前回値に代入して(ステップS21)、カウント値を今回値に代入した(ステップS22)後、カウント値を初期値、例えば0に初期化する(ステップS23)。上述した今回値とは、前回のカムパルス信号が発せられた時点から今回のカムパルス信号が発せられた時点までの間においてクランクパルス信号のパルス数を計数した値である。一方、前回値とは、前前回のカムパルス信号が発せられた時点から前回のカムパルス信号が発せられた時点までの間においてクランクパルス信号のパルス数を計数した値である。次に、フラグF_2ndの値が1であるか否かを判断する(ステップS24)。このフラグF_2ndは、第2のカムパルス信号を既に検出したか否かを示すフラグであり、第2のカムパルス信号を既に検出した場合にはフラグF_1stの値は1に設定され、第2のカムパルス信号を未だに検出していない場合にはフラグF_1stの値は0に設定される。ステップS24においてフラグF_2ndの値が0であると判別した場合には、フラグF_2ndの値を1に設定した(ステップS25)後、ステップS12〜S17の処理を実行して本サブルーチンを終了する。また、ステップS24においてフラグF_2ndの値が1であると判別した場合には、後述する行程判別ルーチンを実行した(ステップS26)後、ステップS12〜S17の処理を実行して本サブルーチンを終了する。
図5は、図4に示したサブルーチンを実行して得られた前回値及び今回値に基づいて内燃エンジンの行程判別の処理をするサブルーチンを示す。
最初に、今回値が4より大きいか否かを判断する(ステップS31)。今回値が4より大きいと判別した場合には、フラグF_1stの値を0に設定し(ステップS32)、フラグF_2ndの値を0に設定し(ステップS33)、フラグF_fixの値を0に設定した(ステップS34)後、本サブルーチンを終了する。今回値が4より大きいと判別する場合とは、例えばノイズ信号が発生してノイズ信号がクランクパルス信号に重畳したようなときに、パルスの数を誤って多くカウントした場合である。また、フラグF_fixとは、本サブルーチンを実行することにより内燃エンジンの行程を示すステージ番号を確定できたか否かを表すフラグであり、ステージ番号を確定できた場合にはフラグF_fixの値を1に設定し、ステージ番号を確定できなかった場合にはフラグF_fixの値を0に設定する。
上述したステップS31において、今回値が4以下であると判別した場合には、前回値が1である否かを判断する(ステップS35)。前回値が1である判別した場合には、今回値が3であるか否かを判断する(ステップS36)。今回値が3であると判別した場合にはステージ番号を3に設定し(ステップS37)、今回値が3でないと判別した場合には、今回値が4であるか否かを判断する(ステップS38)。今回値が4であると判別した場合にはステージ番号を15に設定する(ステップS39)。ステージ番号を確定できた場合には、フラグF_fixの値を1とし(ステップS54)、本サブルーチンを終了する。また、ステップS38において、今回値が4でないと判別した場合には上述したステップS32〜S34の処理をして本サブルーチンを終了する。
ステップS35において、前回値が1でないと判別した場合には前回値が2であるか否かを判断する(ステップS40)。前回値が2であると判別した場合には、今回値が2であるか否かを判断する(ステップS41)。今回値が2であると判別した場合にはステージ番号を7に設定し(ステップS42)、今回値が2でないと判別した場合には、今回値が3であるか否かを判断する(ステップS43)。今回値が3であると判別した場合には、ステージ番号を10に設定する(ステップS44)。ステージ番号を確定できた場合には、フラグF_fixの値を1とし(ステップS54)、本サブルーチンを終了する。一方、ステップS43において、今回値が3でないと判別した場合には上述したステップS32〜S34の処理をして本サブルーチンを終了する。
ステップS40において、前回値が2でないと判別した場合には前回値が3であるか否かを判断する(ステップS45)。前回値が3であると判別した場合には、今回値が1であるか否かを判断する(ステップS46)。今回値が1であると判別した場合にはステージ番号を11に設定し(ステップS47)、今回値が1でないと判別した場合には、今回値が2であるか否かを判断する(ステップS48)。今回値が2であると判別した場合には、ステージ番号を5と設定する(ステップS49)。ステージ番号を確定できた場合には、フラグF_fixの値を1とし(ステップS54)、本サブルーチンを終了する。一方、ステップS48において、今回値が2でないと判別した場合には上述したステップS32〜S34の処理をして本サブルーチンを終了する。
上述したステップS45において、前回値が3でないと判別した場合には前回値が1より大きいか否かを判断する(ステップS50)。前回値が1以下であると判別した場合には、断線判別ルーチンを実行した後(ステップS51)、フラグF_fixの値を0とし(ステップS52)、本サブルーチンを終了する。前回値が1より大きいと判別した場合には、前回値は4であることからステージ番号を0に設定した(ステップS53)後、フラグF_fixの値を1とし(ステップS54)、本サブルーチンを終了する。
図6は、図2に示した第1回転体と第2回転体とを4気筒の内燃エンジンに用いた場合の内燃エンジン始動時におけるエンジン行程の1つの例を示す。
内燃エンジンが始動されることによりクランクシャフト7とカムシャフト8とが回転し始める。内燃エンジンの始動直後においては、図6(b)に示す如く最初に第1回転体の磁気突起40hが検出されて、クランクパルス信号がクランクパルスセンサ15から発せられる。この時点においては、図6(c)に示す第2回転体の磁気突起は検出されておらずカムパルス信号は発せられていない。従って、上述したフラグF_CAMの値は0であるが故に、図4に示したサブルーチンにおいては、ステップS11→S12→S13→S14→S15と実行されるのである。
この後、クランクシャフトとカムシャフトとが回転するに従って、図6(c)に示す如く第2回転体の磁気突起42Eが検出されると、カムパルス信号がカムパルスセンサ16から発せられて、図3のサブルーチンが実行されることによりF_CAMの値は1になる。次いで、図6(b)に示す第1回転体の磁気突起40Aが検出されると、図4に示したサブルーチンのステップS11→S18→S19→S20→S12→S13→S14→S15が実行され、ステップS20においてフラグF_1stの値を1に設定する。この例においては、上述した第1のカムパルス信号とは、磁気突起42Eの検出により発せられたカムパルスを示す。次に、第1回転体の磁気突起40bが検出されたときには、フラグF_CAMの値は0に設定されているが故に、図4に示したサブルーチンは、ステップS11→S12→S13→S14→S15と実行される。上述したステップS13の処理を実行することによりカウンタ値はクランクパルス信号が発せられる毎に1ずつ増加する。
次に、図6(c)の第2回転体の磁気突起42Fが検出された時点においては、カウンタ値は、図6(b)の40a〜40cを計数しているが故に3となる。磁気突起42Fが検出されると、フラグF_CAMの値は1に設定される。次いで、第1回転体の磁気突起40dが検出されると、フラグF_CAMの値は1に設定され、かつF_1stの値は1に設定されているが故に、図4に示したサブルーチンは、ステップS11→S18→S21→S22→S23→S24→S25→S12→S13→S14→S15の如く実行される。このステップS25においてフラグF_2ndの値を1に設定する。この図6に示した例においては、上述した第2のカムパルス信号とは、磁気突起42Fの検出により発せられたカムパルスを示すのである。また、この時点においては、今回値は所定の初期値のままであり、ステップS21においては前回値も初期値が代入される。一方、ステップS22においては、上述したカウント値である3を今回値に代入する。従って、この時点における今回値とは、第1回転体の40a〜40cの3つのパルスを計数したものとなる。更に、ステップS23においてカウント値を初期化し、ステップS13においてカウント値を1だけ加算するが故に、カウント値は1となる。このカウント値は、第1回転体の40dを検出したことによるものである。
更に、図6(c)の第2回転体の磁気突起42Gが検出されると、フラグF_CAMの値は1に設定され、図6(b)の第1回転体の磁気突起40eが検出されると、フラグF_CAMの値は1に設定され、F_1stの値は1に設定され、F_2ndの値は1に設定されているが故に、図4に示したサブルーチンは、ステップS11→S18→S21→S22→S23→S24→S26→S12→S13→S14→S15の如く実行される。上述した如く、今回値は3に設定されているのでステップS21において前回値は3となる。一方、カウント値は1に設定されているのでステップS22において今回値は1となる。この時点における前回値とは、第1回転体の40a〜40cの3つのパルスを計数した数であり、今回値とは、第1回転体の40dの1つのパルスを計数した数である。上述したステップS26においては、前回値=3かつ今回値=1として図5に示した行程判別のサブルーチンを実行する。前回値=3かつ今回値=1の場合には、図5のステップS47からステージ番号の値は11に設定される。更に、図4のステップS14においてステージ番号の値を1だけ加算することにより、第1回転体の磁気突起40eが検出された時点おけるステージ番号は12であると確定することができるのである。
上述したことから明らかな如く、カムパルス信号を3個検出することによりステージ番号を確定することができ、内燃エンジンの各気筒の行程を判別することができるのである。図6(a)に示す如くステージ番号が確定された以降においては、図6(d)に示すように各気筒の上死点位置(以下、TDCと称する)を判別することができる。例えば、ステージ番号が13のときは第3気筒のTDCであり、ステージ番号が1のときは第1気筒のTDCであり、ステージ番号が5のときは第2気筒のTDCであり、ステージ番号が9のときは第4気筒のTDCであることを判別することができ、燃料噴射のタイミングや点火のタイミングを的確に制御することができるのである。
図7は、図2(b)に示した第2回転体の磁気突起の角度間隔とその区間においてカウント値として計数されるクランクパルスの数との関係、及び前回値と今回値とから確定されるステージ番号を示す。
第2回転体における相隣り合う連続した2つの磁気突起の区間を図7(a)の第1列に示す。この磁気突起の区間の各々における角度間隔を図7(a)の第2列に示す如く設定した場合には、図4に示したサブルーチンを実行することにより第2回転体におけるこれらの2つの磁気突起を検出する間において第3列に示した如きクランクパルス信号のパルスの数を計数することとなるのである。
また、図7(b)の第1列には、現時点において検出する第2回転体における磁気突起の番号を示した。この番号の磁気突起の各々を検出した場合における前回値を第2列に示し、今回値を第3列に示した。尚、前回値と今回値との後に示した括弧内の区間は、その前回値と今回値とが得られた区間を示す。また、図7(b)の第4列は、後述する前回値と今回値との和を示す。上述した如く、図4に示したサブルーチンを実行することにより計数したクランクパルス信号のパルスの数から前回値及び今回値を得ることができ、この前回値と今回値との数値の並び、即ち順列に基づいて図5に示したサブルーチンを実行して図7(b)の第5列に示すステージ番号を得ることができるのである。尚、この第5列に示したステージ番号は、図5のサブルーチンのステップS37、S39、S42、S44、S47、S49及びS52において得られる数値を示したものである。また、上述した順列とは、前回値と今回値との数値の並びを称することとしてもよく、また、連続する2つの角度間隔の並び、例えば、第2回転体の磁気突起42Aを検出した時点においては、42F〜42Gと42G〜42Aとの各々における22.5度と90度との2つの角度間隔の並びを順列と称してもよい。
図8は、本発明の第2の実施例である第1回転体における磁気突起の配置と第2回転体における磁気突起の配置とを示す。尚、図2に示した構成要素と対応する構成要素には同一の符号を付した。
図8(a)に示す如く、クランクシャフト7上の第1回転体9の外周には、被検出部としての14個の磁気突起50a〜50nが回転方向に略等しい間隔で設けられている。但し、この第2の実施例においては、磁気突起50eと50fとの角度間隔は22度であり、その他の全ての相隣り合う磁気突起の角度間隔は26度である。また、図8(b)に示す如く、クランクシャフト7に連動して回転するカムシャフト8上の第2回転体10の外周には、被検出部としての7個の磁気突起52A〜52Gが設けられており、52A〜52B間は26度、52B〜52C間は50度、52C〜52D間は78度、52D〜52E間は52度、52E〜52F間は63度、52F〜52G間は39度、52G〜52A間は52度の如く、磁気突起間の2つの連続する角度間隔の順列が全て互いに異なるように設けられている。また、第1回転体9はクランクシャフト7に対して所定の角度θだけ回転方向に偏倚した位置に設けられている。尚、図2に示したものと同様にクランクシャフト7の回転は、所定の減速比、例えば2で減速されてカムシャフト8に伝達される。
上述した第2の実施例においては、第1回転体に設けられた相隣り合う被検出部の最大間隔は、50e〜50fの区間を除いた区間における26度である。一方、第2回転体に設けられた相隣り合う被検出部の最小間隔は、52A〜22Bにおける26度である。また、上述した如く第1回転体の回転数と第2回転体の回転数との比は2である。従って、この第2の実施例においては、第2回転体の最小間隔である26度に回転数の比である2を乗じた値は、第1回転体の最大間隔より大きいという関係を満たすのである。
図9は、図8に示した第2回転体の磁気突起の角度間隔とその区間においてカウント値として計数されるクランクパルスの数との関係、及び前回値と今回値とから確定されるステージ番号を示す。尚、図9(a)及び(b)に示した表の各列は図7に示したものと同様のものである。
図8(b)に示した第2回転体の相隣り合う連続した2つの磁気突起の角度間隔を図9(a)の第2列に示す。図4に示したサブルーチンと同様のクランクパルス割り込みルーチンを実行することにより相隣り合う2つの磁気突起を検出する間において第3列に示した如きクランクパルス信号のパルスの数を計数する。尚、この第2の実施例においては、図4に示したクランクパルス割り込みルーチンのステップS15は、ステージ番号の値が28未満であるか否かを判断することとして、クランクパルス割り込みルーチンを実行するのである。第2回転体の磁気突起の角度間隔を上述した如き間隔とすることにより第1回転体の磁気突起の間隔が一部において異なる場合においても的確にクランクパルスの数を計数することができるのである。
また、図9(b)に示す如く、クランクパルス信号のパルスの数から得られる前回値及び今回値に基づいて図10に示す如き行程判別ルーチンを実行することによりステージ番号を確定することができるのである。尚、この図10に示した行程判別ルーチンは、図5に示したサブルーチンと同様のものであり、図8に示した第1回転体と第2回転体とを後述するV型2気筒の内燃エンジンに用いた場合において実行されるものである。
図11は、図8に示した第1回転体と第2回転体とをV型2気筒の内燃エンジンにおけるエンジン行程の1つの例を示す。
この場合においてもカムパルス信号のパルスを3個、例えば、図11(c)に示す磁気突起52A、52B及び52Cを検出すると内燃エンジンのステージ番号を確定することができる。例えば、ステージ番号が2のときはリア気筒のTDCであり、ステージ番号が18のときはフロント気筒のTDCであることを判別することができるのである。
図12は、本発明の第3の実施例である第1回転体における磁気突起の配置と第2回転体における磁気突起の配置とを示す。尚、図2に示した構成要素と対応する構成要素には同一の符号を付した。
図12(a)に示す如く、クランクシャフト7上の第1回転体9の外周には、被検出部としての12個の磁気突起60a〜60lが回転方向に30度毎間隔で設けられている。また、図12(b)に示す如く、クランクシャフト7に連動して回転するカムシャフト8上の第2回転体10の外周には、被検出部としての7個の磁気突起62A〜62Gが設けられており、62A〜62B間は90度、62B〜62C間は30度、62C〜62D間は60度、62D〜62E間は60度、62E〜62F間は30度、62F〜62G間は45度、62G〜62A間は45度の如く、磁気突起間の2つの連続する角度間隔の順列が全て互いに異なるように設けられている。尚、図2に示した第1回転体と第2回転体と同様に、第1回転体9はクランクシャフト7に対して所定の角度θだけ回転方向に偏倚した位置に設けられている。また、図2に示したものと同様にクランクシャフト7の回転は、所定の減速比、例えば2で減速されてカムシャフト8に伝達される。
上述した第3の実施例においては、第1回転体の被検出部は等間隔に設けられており、相隣り合う被検出部の最大間隔は30度である。一方、第2回転体に設けられた相隣り合う被検出部の最小間隔は、62B〜62C又は62E〜62Fにおける30度である。また、上述した如く第1回転体の回転数と第2回転体の回転数との比は2である。従って、この第3の実施例においては、第2回転体の最小間隔である30度に回転数の比である2を乗じた値は、第1回転体の最大間隔より大きいという関係を満たすのである。
図13は、図12に示した第2回転体の磁気突起の角度間隔とその区間においてカウント値として計数されるクランクパルス信号のパルス数との関係、及び前回値と今回値とから確定されるステージ番号を示す。尚、図13(a)及び(b)に示した表の各列は図7に示したものと同様のものである。
図12(b)に示した第2回転体の相隣り合う連続した2つの磁気突起の角度間隔を図13(a)の第2列に示す。図4に示したサブルーチンと同様のクランクパルス割り込みルーチンを実行することにより相隣り合う2つの磁気突起を検出する間において第3列に示した如きクランクパルス信号のパルスの数を計数する。尚、この第3の実施例においては、図4に示したクランクパルス割り込みルーチンのステップS15は、ステージ番号の値が24未満であるか否かを判断することとして、クランクパルス割り込みルーチンを実行するのである。第2回転体の磁気突起の角度間隔を上述した如き間隔にしたことにより第1回転体の磁気突起の間隔を30度とした場合においても的確にクランクパルス信号のパルス数を計数することができるのである。
また、図13(b)に示す如く、クランクパルス信号のパルスの数から得られる前回値及び今回値に基づいて図14に示す如き行程判別ルーチンを実行することによりステージ番号を確定することができるのである。尚、この図14に示した行程判別ルーチンは、図5に示したサブルーチンと同様のものであり、図12に示した第1回転体と第2回転体とを後述する4気筒の内燃エンジンに用いた場合において実行されるものである。
図15は、図12に示した第1回転体と第2回転体とを4気筒の内燃エンジンに用いた場合におけるエンジン行程の1つの例を示す。
この場合においてもカムパルス信号のパルスを3個、例えば図15(c)に示す62A、62B及び62Cの磁気突起を検出したときに発せられるパルスを検出した時点で内燃エンジンのステージ番号を確定することができ、例えば、ステージ番号が1のときは第1気筒のTDCであり、ステージ番号が7のときは第2気筒のTDCであり、ステージ番号が13のときは第4気筒のTDCであり、ステージ番号が19のときは第3気筒のTDCであることを判別することができるのである。
図16は、図12に示した第1回転体と第2回転体とを6気筒の内燃エンジンに用いた場合におけるエンジン行程の1つの例を示す。
上述した図15の場合と同様にカムパルス信号のパルスを3個検出した時点で内燃エンジンのステージ番号を確定することができ、例えば、ステージ番号が1のときは第1気筒のTDCであり、ステージ番号が5のときは第4気筒のTDCであり、ステージ番号が9のときは第5気筒のTDCであり、ステージ番号が13のときは第2気筒のTDCであり、ステージ番号が17のときは第3気筒のTDCであり、ステージ番号が21のときは第6気筒のTDCであることを判別することができるのである。
図17は、クランクパルス信号が発せられたときに割り込み処理により実行されて今回値と合計値とを得るサブルーチンを示すフローチャートである。尚、このサブルーチンは、図2に示した第1回転体と第2回転体とを4気筒の内燃エンジンに用いた場合に実行されるものである。
このサブルーチンは、図4に示したサブルーチンと同様のものであり、図4におけるステップS21とステップS22とを各々ステップS71とステップS72とに置き換えたものであり、カウント値から前回値の代わりに前回値と今回値との和である合計値を得るものである。この合計値は、上述した図7(b)、図9(b)及び図13(b)や後述する図20(b)、図25(b)に示す表の各々の第4列に示したものである。
図18は、上述した今回値及び合計値に基づいて内燃エンジンの行程判別の処理をするサブルーチンを示すフローチャートである。尚、このサブルーチンは、図17と同様に図2に示した第1回転体と第2回転体とを4気筒の内燃エンジンに用いた場合に実行されるものである。
最初に、今回値が4より大きいか否かを判断する(ステップS301)。今回値が4より大きいと判別した場合には、フラグF_1stの値を0に設定し(ステップS302)、フラグF_2ndの値を0に設定し(ステップS303)、フラグF_fixの値を0に設定した(ステップS304)後、本サブルーチンを終了する。
ステップS301において、今回値が4以下であると判別した場合には、合計値が5より大きいか否かを判断する(ステップS305)。合計値が5より大きいと判別した場合には、上述したステップS302〜S304の処理を実行して本サブルーチンを終了する。ステップS305において、合計値が5以下であると判別した場合には、合計値が4であるか否かを判断する(ステップS306)。合計値が4であると判別した場合には、今回値が3であるか否かを判断する(ステップS307)。今回値が3であると判別した場合には、ステージ番号を3にする(ステップS308)。ステップS307において今回値が3でないと判別した場合には、今回値が2であるか否かを判断する(ステップS309)。今回値が2であると判別した場合には、ステージ番号を7にする(ステップS310)。ステップS309において今回値が2でないと判別した場合には、今回値が1であるか否かを判断する(ステップS311)。今回値が1であると判別した場合には、ステージ番号を11にする(ステップS312)。ステージ番号が確定した場合には、フラグF_fixの値を1とし(ステップS322)、本サブルーチンを終了する。また、ステップS311において、今回値が1でないと判別した場合には上述したステップS302〜S304の処理をして本サブルーチンを終了する。
上述したステップS306において、合計値が4でないと判別した場合には、合計値が4より小さいか否かを判断する(ステップS313)。合計値が4より小さいと判別した場合には、断線判別ルーチンを実行した(ステップS323)後、上述したステップS302〜S304の処理をして本サブルーチンを終了する。ステップS313において、合計値が4以上であると判別した場合には、今回値が4であるか否かを判断する(ステップS314)。今回値が4であると判別した場合には、ステージ番号を15にする(ステップS321)。ステップS314において今回値が4でないと判別した場合には、今回値が3であるか否かを判断する(ステップS315)。今回値が3であると判別した場合には、ステージ番号を10にする(ステップS316)。ステップS315において今回値が3でないと判別した場合には、今回値が2であるか否かを判断する(ステップS317)。今回値が2であると判別した場合には、ステージ番号を5にする(ステップS318)。ステップS317において今回値が2でないと判別した場合には、今回値が1であるか否かを判断する(ステップS319)。今回値が1であると判別した場合には、ステージ番号を0にする(ステップS320)。ステップS319において今回値が1でないと判別した場合には、上述したステップS302〜S304の処理をして本サブルーチンを終了する。一方、ステージ番号が確定できた場合には、フラグF_fixの値を1とし(ステップS322)、本サブルーチンを終了する。
図19は、本発明の第4の実施例である第1回転体における磁気突起の配置と第2回転体における磁気突起の配置とを示す。尚、図2に示した構成要素と対応する構成要素には同一の符号を付した。
図19(a)に示す如く、クランクシャフト7上の第1回転体9の外周には、被検出部としての9個の磁気突起70a〜70iが回転方向に40度毎に等間隔に設けられている。また、図19(b)に示す如く、クランクシャフト7に連動して回転するカムシャフト8上の第2回転体10の外周には、被検出部としての6個の磁気突起72A〜72Fが設けられており、72A〜72B間は40度、72B〜72C間は80度、72C〜72D間は60度、72D〜72E間は60度、72E〜72F間は80度、72F〜72A間は40度の如く、磁気突起間の2つの連続する角度間隔の順列が全て互いに異なるように設けられている。尚、図2に示した第1回転体と第2回転体と同様に、第1回転体9はクランクシャフト7に対して所定の角度θだけ回転方向に偏倚した位置に設けられている。また、図2に示したものと同様にクランクシャフト7の回転は、所定の減速比、例えば2で減速されてカムシャフト8に伝達される。
上述した第4の実施例においては、第1回転体の被検出部は等間隔に設けられており、相隣り合う被検出部の最大間隔は40度である。一方、第2回転体に設けられた相隣り合う被検出部の最小間隔は、72A〜72B又は72F〜72Aにおける40度である。また、上述した如く第1回転体の回転数と第2回転体の回転数との比は2である。従って、この第4の実施例においては、第2回転体の最小間隔である40度に回転数の比である2を乗じた値は、第1回転体の最大間隔より大きいという関係を満たすのである。
図20は、図19に示した第2回転体の磁気突起の角度間隔とその区間においてカウント値として計数されるクランクパルス信号のパルス数との関係、及び前回値と今回値とから確定されるステージ番号を示す。尚、図20(a)及び(b)に示した表の各列は図7に示したものと同様のものである。
図19(b)に示した第2回転体の相隣り合う連続した2つの磁気突起の角度間隔を図20(a)の第2列に示す。図4又は図17に示したサブルーチンと同様のクランクパルス割り込みルーチンを実行することにより相隣り合う2つの磁気突起を検出する間において第3列に示した如きクランクパルスの数を計数する。尚、この第4の実施例においては、図4又は図17に示したクランクパルス割り込みルーチンのステップS15又はS65は、ステージ番号の値が18未満であるか否かを判断することとして、クランクパルス割り込みルーチンを実行するのである。第2回転体の磁気突起の角度間隔を上述した如き間隔にしたことにより第1回転体の磁気突起の間隔を40度とした場合においても的確にクランクパルスの数を計数することができるのである。
また、図20(b)に示す如く、クランクパルス信号のパルスの数から前回値、今回値及び合計値を得て図21又は22に示す如き行程判別ルーチンを実行することによりステージ番号を確定することができるのである。尚、この図21に示した行程判別ルーチンは、図5に示したサブルーチンと同様のものであり、図22に示した行程判別ルーチンは、図18に示したサブルーチンと同様のものである。また、図21及び22に示した如き行程判別ルーチンは、図19に示した第1回転体と第2回転体とを後述する6気筒の内燃エンジンに用いた場合において実行されるものである。
図23は、図19に示した第1回転体と第2回転体とを6気筒の内燃エンジンに用いた場合におけるエンジン行程の1つの例を示す。
この例においてもカムパルスを3個検出した時点で内燃エンジンのステージ番号を確定することができ、例えば、ステージ番号が1のときは第1気筒のTDCであり、ステージ番号が4のときは第4気筒のTDCであり、ステージ番号が7のときは第5気筒のTDCであり、ステージ番号が10のときは第2気筒のTDCであり、ステージ番号が13のときは第3気筒のTDCであり、ステージ番号が16のときは第6気筒のTDCであることを判別することができるのである。
図24は、本発明の第5の実施例である第1回転体における磁気突起の配置と第2回転体における磁気突起の配置とを示す。尚、図2に示した構成要素と対応する構成要素には同一の符号を付した。
図24(a)に示す如く、クランクシャフト7上の第1回転体9の外周には、被検出部としての10個の磁気突起80a〜80jが回転方向に36度毎に等間隔に設けられている。また、図24(b)に示す如く、クランクシャフト7に連動して回転するカムシャフト8上の第2回転体10の外周には、被検出部としての8個の磁気突起82A〜82Hが設けられており、82A〜82B間は72度、82B〜82C間は18度、82C〜82D間は54度、82D〜82E間は36度、82E〜82F間は36度、82F〜82G間は54度,82G〜82H間は18度、82H〜82A間は72度の如く、磁気突起間の2つの連続する角度間隔の順列が全て互いに異なるように設けられている。尚、図2に示した第1回転体と第2回転体と同様に、第1回転体9はクランクシャフト7に対して所定の角度θだけ回転方向に偏倚した位置に設けられている。また、図2に示したものと同様にクランクシャフト7の回転は、所定の減速比、例えば2で減速されてカムシャフト8に伝達される。
上述した第5の実施例においては、第1回転体の被検出部は等間隔に設けられており、相隣り合う被検出部の最大間隔は36度である。一方、第2回転体に設けられた相隣り合う被検出部の最小間隔は、82B〜82C又は82G〜82Hにおける18度である。また、上述した如く第1回転体の回転数と第2回転体の回転数との比は2である。従って、この第5の実施例においては、第2回転体の最小間隔である18度に回転数の比である2を乗じた値は、第1回転体の最大間隔である36度に等しいという関係を満たすのである。
図25は、図24に示した第2回転体の磁気突起の角度間隔とその区間においてカウント値として計数されるクランクパルス信号のパルス数との関係、及び前回値、今回値及び合計値とから確定されるステージ番号を示す。
図24(b)に示した第2回転体の相隣り合う連続した2つの磁気突起の角度間隔を図25(a)の第2列に示す。図4又は17に示したクランクパルス割り込みルーチンと同様のサブルーチンを実行することにより相隣り合う2つの磁気突起を検出する間において第3列に示した如きクランクパルス信号のパルスの数を計数する。尚、この第5の実施例においては、図4又は17に示したクランクパルス割り込みルーチンのステップS15又はS65は、ステージ番号の値が20未満であるか否かを判断することとして、クランクパルス割り込みルーチンを実行するのである。第2回転体の磁気突起の角度間隔を上述した如き間隔にしたことにより第1回転体の磁気突起の間隔を36度とした場合においても的確にクランクパルスの数を計数することができるのである。
また、図25(b)に示す如く、クランクパルス信号のパルスの数から前回値、今回値及び合計値を得て図26又は27に示す如き行程判別ルーチンを実行することによりステージ番号を確定することができるのである。尚、この図26に示した行程判別ルーチンは、図5に示したサブルーチンと同様のものであり、図27に示した行程判別ルーチンは、図18に示したサブルーチンと同様のものである。また、図26及び27に示した如き行程判別ルーチンは、図24に示した第1回転体と第2回転体とを後述する4気筒の内燃エンジンに用いた場合において実行されるものである。
図28は、図24に示した第1回転体と第2回転体とを4気筒の内燃エンジンに用いた場合におけるエンジン行程の1つの例を示す。
この場合においてもカムパルスを3個検出した時点で内燃エンジンのステージ番号を確定することができ、例えば、ステージ番号が1のときは第1気筒のTDCであり、ステージ番号が6のときは第2気筒のTDCであり、ステージ番号が11のときは第4気筒のTDCであり、ステージ番号が16のときは第3気筒のTDCであることを判別することができるのである。
図29は、本発明の第6の実施例である第1回転体における磁気突起の配置と第2回転体における磁気突起の配置とを示す。尚、図2に示した構成要素と対応する構成要素には同一の符号を付した。
図29(a)に示す如く、クランクシャフト7上の第1回転体9の外周には、被検出部としての16個の磁気突起90a〜90pが回転方向に22.5度毎に等間隔に設けられている。また、図29(b)に示す第2回転体10は、図2(b)に示したものと同様の第2回転体である。また、第1回転体9はクランクシャフト7に対して所定の角度θだけ回転方向に偏倚した位置に設けられている。尚、図2に示したものと同様にクランクシャフト7の回転は、所定の減速比、例えば2で減速されてカムシャフト8に伝達される。
上述した第6の実施例においては、第1回転体の被検出部は等間隔に設けられており、相隣り合う被検出部の最大間隔は22.5度である。一方、第2回転体に設けられた相隣り合う被検出部の最小間隔は、42A〜42B又は42F〜42Gにおける22.5度である。また、上述した如く第1回転体の回転数と第2回転体の回転数との比は2である。従って、この第2の実施例においては、第2回転体の最小間隔である22.5度に回転数の比である2を乗じた値は、第1回転体の最大間隔より大きいという関係を満たすのである。
図30は、本発明の第7の実施例である第1回転体における磁気突起の配置と第2回転体における磁気突起の配置とを示す。尚、図2に示した構成要素と対応する構成要素には同一の符号を付した。
図30(a)に示す如く、クランクシャフト7上の第1回転体9の外周には、被検出部としての24個の磁気突起100a〜100xが回転方向に15度毎に等間隔に設けられている。また、図30(b)に示す第2回転体10は、図2(b)に示したものと同様の第2回転体である。また、第1回転体9はクランクシャフト7に対して所定の角度θだけ回転方向に偏倚した位置に設けられている。尚、図2に示したものと同様にクランクシャフト7の回転は、所定の減速比、例えば2で減速されてカムシャフト8に伝達される。
上述した第7の実施例においては、第1回転体の被検出部は等間隔に設けられており、相隣り合う被検出部の最大間隔は15度である。一方、第2回転体に設けられた相隣り合う被検出部の最小間隔は、42A〜42B又は42F〜42Gにおける22.5度である。また、上述した如く第1回転体の回転数と第2回転体の回転数との比は2である。従って、この第2の実施例においては、第2回転体の最小間隔である22.5度に回転数の比である2を乗じた値は、第1回転体の最大間隔より大きいという関係を満たすのである。
図31は、ノイズが発生したときの処理をするサブルーチンを示す。
最初に、前回値を最小クランクパルス数Nで除算した値を前回除算値として算出する(ステップS101)。ここで、最小クランクパルス数Nとは、第2回転体に設けられた磁気突起の最小の角度間隔において検出されるクランクパルスの数をいい、2以上の自然数である。例えば、図29に示した第1回転体と第2回転体の場合においては、第2回転体に設けられた磁気突起の最小の角度間隔は、42A〜42B又は42F〜42Gの22.5度であり、この角度間隔で計数できるクランクパルスの数は2である。また、図30に示した第1回転体と第2回転体の場合においては、第2回転体の最小の角度間隔42A〜42B又は42F〜42Gで計数できるクランクパルスの数は3である。即ち、図29の場合にはN=2となり、図30の場合にはN=3となるのである。次いで、同様に、今回値を最小クランクパルス数Nで除算した値を今回除算値として算出する(ステップS102)。次に、ステップS101で算出した前回除算値の小数部分の値が0であるか否か、即ち除算の結果の剰余が0であるか否かを判断する(ステップS103)。前回除算値の小数部分の値が0であると判別した場合には、直ちに本サブルーチンを終了する。前回除算値の小数部分の値が0でないと判別した場合には、ステップS102で算出した今回除算値の小数部分の値が0であるか否かを判断する(ステップS104)。今回除算値の小数部分の値が0であると判別した場合には、直ちに本サブルーチンを終了する。今回除算値の小数部分の値が0でないと判別した場合には、前回除算値の整数部分の値、即ち、一の位で切り捨てた値に最小クランクパルス数Nを乗ずることにより訂正した値を訂正前回値に代入した(ステップS105)後、今回除算値の整数部分の値に最小クランクパルス数Nを乗ずることにより訂正した値を訂正今回値に代入する(ステップS106)。
図32は、図29及び30に示した第1回転体と第2回転体とを用いたときにおける訂正前回値と訂正今回値とを算出した値を示す。
図32(a)は、図29に示した第1回転体と第2回転体とを用いたときのものである。第1列に示した突起番号は、現時点において検出している第2回転体の磁気突起の番号を示す。また、第2列及び第3列は、ノイズが発生していない場合の前回値と今回値とであり、各々の行に括弧内に示した区間は、カムパルスを計数することにより前回値と今回値とを得た磁気突起の区間を示す。更に、第4列及び第5列は、ノイズが1回発生した場合に得られた前回値と今回値とである。上述した図31のサブルーチンを実行することにより、図32(a)の第6列と第7列に示した訂正前回値及び訂正今回値が得られ、ノイズが1回発生した場合には、図32(a)の第6列と第7列に示した訂正前回値及び訂正今回値の如く、ノイズが発生しないときの前回値と今回値とに訂正することができるのである。
図32(b)は、図30に示した第1回転体と第2回転体とを用いたときのものである。図32(b)の各列に示したものは、図32(a)と同様のものを表す。この図32(b)の第4列及び第5列の前回値と今回値とは、ノイズが2回発生した場合に得られる前回値と今回値とである。この前回値と今回値とに基づいて、図31に示したサブルーチンを実行することにより、図32(b)の第6列と第7列に示した訂正前回値及び訂正今回値が得られ、ノイズが2回発生した場合においても、ノイズが発生しないときの前回値と今回値に訂正することができるのである。
上述した図29又は30に示した第1回転体と第2回転体を用いて、図31に示したサブルーチンを実行することにより、各角度間隔において(最小クランクパルス数N−1)回以下だけのノイズが発生した場合には、前回値と今回値と訂正することができるのである。
上述した実施例においては、第2回転体の最小間隔においても、少なくとも1個の必ずクランクパルス信号のパルスを検出する構成としている。従って、この第2回転体の最小間隔におけるクランクパルス信号のパルスの数を計数することにより、クランクパルスセンサ15を含む回路及びカムパルスセンサ回路16の断線を判別することができるのである。例えば、図4におけるステップS17、図5におけるステップS51、図17におけるステップS67及び図18におけるステップS323においてクランクパルス信号のパルスの数を計数して断線を判別することとしてもよい。
尚、上述した如き実施例においては、第1回転体及び第2回転体の角度位置を得る方法として磁気突起から発せられる磁束の変化を検出して得る場合を示したが、ホール素子式や光学式によって角度位置を得ることとしてもよい。
以上説明した如く、本発明による内燃エンジンの行程判別装置によれば、第2回転体の被検出部は、1つの回転方向における少なくとも2つの連続する角度間隔の順列が互いに異なり、且つ少なくとも1組の角度間隔が等しくなるように設けられているので、内燃エンジンの行程を短時間に確定することができる。