(57)【特許請求の範囲】
【請求項１】
内燃機関のクランク軸の回転角度であるクランク角度を検出するクランク角度センサと、前記クランク軸の２回転に対応して１回転するカム軸の回転角度に応じたカム軸回転信号を出力するカム角度センサと、前記クランク角度センサによって検出されるクランク角度及び前記カム軸回転信号に基づいて、前記機関の回転位相を判定する回転位相判定手段とを備える内燃機関の制御装置において、
前記カム角度センサは、前記カム軸回転信号が、基準角度位置からクランク角度３６０度の第１角度期間に対応する第１角度期間二値信号と、前記第１角度期間に続くクランク角度３６０度の第２角度期間に対応する第２角度期間二値信号とからなり、前記第２角度期間二値信号は、前記第１角度期間二値信号を反転させた信号となるように構成されており、
前記回転位相判定手段は、前記機関のイグニッションスイッチがオンされた時点における前記カム軸回転信号の値と、前記機関の始動開始後の前記カム軸回転信号と、前記クランク角度センサにより検出されるクランク角度とに基づいて、前記機関の始動開始時点における始動開始クランク角度からクランク角度１８０度の期間内において、前記機関回転位相を判定し、
前記機関の気筒数は「６」であり、
前記第１角度期間二値信号は、前記基準角度位置からクランク角度１２０度に相当する第１期間において第１の値をとり、前記第１期間に続く、第１所定角度に相当する第２期間において第２の値をとり、前記第２期間に続く、第２所定角度に相当する第３期間において前記第１の値をとり、前記第３期間に続く、第３所定角度に相当する第４期間において前記第２の値をとり、前記第４期間に続く、第４所定角度に相当する第５期間において前記第１の値をとる信号であり、前記第１及び第３所定角度はともに６０度未満の異なる値に設定され、前記第２所定角度は１２０度から前記第１所定角度を減算した値に設定され、前記第４所定角度は１２０度から前記第３所定角度を減算した値に設定されることを特徴とする内燃機関の制御装置。
【請求項２】
前記第１所定角度は前記第３所定角度より小さな値に設定され、
前記回転位相判定手段は、
Ａ）前記カム軸回転信号が始動開始後最初に変化した時点における、前記始動開始クランク角度を基準とした第１判定角度が前記第２所定角度以上であるときは、直ちに前記機関回転位相を特定し、
Ｂ）前記第１判定角度が前記第２所定角度より小さいときは、前記第１判定角度を基準とした第２判定角度に応じて、前記機関回転位相を特定することを特徴とする請求項１に記載の内燃機関の制御装置。
【請求項３】
前記回転位相判定手段は、前記ステップＢ）においては、
Ｂ１）前記第２判定角度が前記第１所定角度を超える前に前記カム軸回転信号が変化したときは、その時点で前記機関回転位相を特定し、
Ｂ２）前記第２判定角度が前記第１所定角度を超えた後であって前記第３所定角度を超える前に前記カム軸回転信号が変化したときは、その時点で前記機関回転位相を特定し、
Ｂ３）前記第２判定角度が前記第３所定角度を超えた後であって前記第４所定角度を超える前に前記カム軸回転信号が変化したときは、その時点で前記機関回転位相を特定し、
Ｂ４）前記第２判定角度が前記第４所定角度を超えた後であって前記第２所定角度を超える前に前記カム軸回転信号が変化したときは、その時点で前記機関回転位相を特定し、
Ｂ５）前記第１判定角度が前記第３所定角度より大きく、かつ前記カム軸回転信号が変化する前に前記第２判定角度が前記第３所定角度を超えたときは、その時点で前記機関回転位相を特定し、
Ｂ６）前記第１判定開度が前記第３所定角度以下で、かつ前記カム軸回転信号が変化する前に前記第２判定角度が前記第２所定角度を超えたときは、その時点で前記機関回転位相を特定することを特徴とする請求項２に記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の制御装置に関し、特にクランク軸の回転角度を検出するクランク角度センサと、カム軸の回転角度に応じたカム軸回転信号を出力するカム角度センサとを用いて機関作動位相を判定する制御装置に関する。
【背景技術】
【０００２】
特許文献１には、同文献の図３の最上段に示されるカム軸回転信号を出力するカム角度センサと、同図の２段目に示されるクランク角度１０度周期のパルス信号であるクランク軸回転信号を出力するクランク角度センサとを用いて、機関回転位相（制御基準位置）を判定する装置が示されている。この装置では、カム角度センサは、カム軸回転信号の、各気筒の上死点近傍における発生パルス数が異なるように構成され、クランク角度センサは、１８０度毎に１パルス欠けるようなクランク軸回転信号を出力するように構成される。そして、このように構成されたカム角度センサ及びクランク角度センサを用いることによって、機関始動開始時において比較的短時間で機関回転位相を特定することを可能としている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３７８２８８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献１に示された装置は、カム角度センサ及びクランク角度センサの構成が比較的複雑であり、より簡単な構成のセンサを使用して、機関始動開始時において早期に機関作動位相を判定する技術が求められていた。
【０００５】
本発明はこの点に着目してなされたものであり、比較的簡単な構成のセンサを使用して、機関始動開始時において機関回転位相を早期に精度良く判定することができる内燃機関の制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため請求項１に記載の発明は、内燃機関のクランク軸の回転角度であるクランク角度を検出するクランク角度センサと、前記クランク軸の２回転に対応して１回転するカム軸の回転角度に応じたカム軸回転信号を出力するカム角度センサと、前記クランク角度センサによって検出されるクランク角度及び前記カム軸回転信号に基づいて、前記機関の回転位相を判定する回転位相判定手段とを備える内燃機関の制御装置において、前記カム角度センサは、前記カム軸回転信号（ＳＣＡＭ）が、基準角度位置（ＰＲＥＦ）からクランク角度３６０度の第１角度期間（Ｔ１〜Ｔ５）に対応する第１角度期間二値信号と、前記第１角度期間に続くクランク角度３６０度の第２角度期間（Ｔ６〜Ｔ１０）に対応する第２角度期間二値信号とからなり、前記第２角度期間二値信号は、前記第１角度期間二値信号を反転させた信号となるように構成されており、前記回転位相判定手段は、前記機関のイグニッションスイッチがオンされた時点における前記カム軸回転信号の値（ＣＡＭＰＯＲＴＩＮＩ）と、前記機関の始動開始後の前記カム軸回転信号（ＳＣＡＭ）と、前記クランク角度センサにより検出されるクランク角度（ＣＲＫＩＮＴＣＮＴ）とに基づいて、前記機関の始動開始時点における始動開始クランク角度（ＰＳ）からクランク角度１８０度の期間内において、前記機関回転位相（ＣＡＣＹＬ）を判定し、前記機関の気筒数は「６」であり、前記第１角度期間二値信号は、前記基準角度位置（ＰＲＥＦ）からクランク角度１２０度に相当する第１期間（Ｔ１）において第１の値（Ｈ）をとり、前記第１期間（Ｔ１）に続く、第１所定角度（ＣＡ１）に相当する第２期間（Ｔ２）において第２の値（Ｌ）をとり、前記第２期間（Ｔ２）に続く、第２所定角度（ＣＡ２）に相当する第３期間（Ｔ３）において前記第１の値（Ｈ）をとり、前記第３期間（Ｔ３）に続く、第３所定角度（ＣＡ３）に相当する第４期間（Ｔ４）において前記第２の値（Ｌ）をとり、前記第４期間（Ｔ４）に続く、第４所定角度（ＣＡ４）に相当する第５期間（Ｔ５）において前記第１の値（Ｈ）をとる信号であり、前記第１及び第３所定角度（ＣＡ１，ＣＡ３）はともに６０度未満の異なる値（１８度，４２度）に設定され、前記第２所定角度（ＣＡ２）は１２０度から前記第１所定角度（ＣＡ１）を減算した値（１０２度）に設定され、前記第４所定角度（ＣＡ４）は１２０度から前記第３所定角度（ＣＡ３）を減算した値（７８度）に設定されることを特徴とする。
【０００７】
請求項２に記載の発明は、請求項１に記載の内燃機関の制御装置において、前記第１所定角度（ＣＡ１）は前記第３所定角度（ＣＡ３）より小さな値に設定され、前記回転位相判定手段は、Ａ）前記カム軸回転信号が始動開始後最初に変化した時点（ｔＣ１）における、前記始動開始クランク角度を基準とした第１判定角度（ＣＡＤ１）が前記第２所定角度（ＣＡ２：１０２度））以上であるときは、直ちに前記機関回転位相を特定し（領域Ａ）、Ｂ）前記第１判定角度（ＣＡＤ１）が前記第２所定角度（ＣＡ２：１０２度）より小さいときは、前記第１判定角度（ＣＡＤ１）を基準とした第２判定角度（ＣＡＤ２）に応じて、前記機関回転位相を特定する（領域Ｂ〜Ｇ）ことを特徴とする。
【０００８】
請求項３に記載の発明は、請求項２に記載の内燃機関の制御装置において、前記回転位相判定手段は、前記ステップＢ）においては、Ｂ１）前記第２判定角度（ＣＡＤ２）が前記第１所定角度（ＣＡ１：１８度）を超える前に前記カム軸回転信号が変化したときは、その時点（ｔＤＢ）で前記機関回転位相を特定し（領域Ｂ）、Ｂ２）前記第２判定角度（ＣＡＤ２）が前記第１所定角度（ＣＡ１：１８度）を超えた後であって前記第３所定角度（ＣＡ３：４２度）を超える前に前記カム軸回転信号が変化したときは、その時点（ｔＤＤ）で前記機関回転位相を特定し（領域Ｄ）、Ｂ３）前記第２判定角度（ＣＡＤ２）が前記第３所定角度（ＣＡ３：４２度）を超えた後であって前記第４所定角度（ＣＡ４：７８度）を超える前に前記カム軸回転信号が変化したときは、その時点（ｔＤＥ）で前記機関回転位相を特定し（領域Ｅ）、Ｂ４）前記第２判定角度（ＣＡＤ２）が前記第４所定角度（ＣＡ４：７８度）を超えた後であって前記第２所定角度（ＣＡ２：１０２度）を超える前に前記カム軸回転信号が変化したときは、その時点（ｔＤＣ）で前記機関回転位相を特定し（領域Ｃ）、Ｂ５）前記第１判定角度（ＣＡＤ１）が前記第３所定角度（ＣＡ３：４２度）より大きく、かつ前記カム軸回転信号が変化する前に前記第２判定角度（ＣＡＤ２）が前記第３所定角度（ＣＡ３：４２度）を超えたときは、その時点（ｔＤＦ）で前記機関回転位相を特定し（領域Ｆ）、Ｂ６）前記第１判定角度（ＣＡＤ１）が前記第３所定角度（ＣＡ３：４２度）以下で、かつ前記カム軸回転信号が変化する前に前記第２判定角度（ＣＡＤ２）が前記第２所定角度（ＣＡ２：１０２度）を超えたときは、その時点（ｔＤＧ）で前記機関回転位相を特定する（領域Ｇ）ことを特徴とする。
【発明の効果】
【０００９】
請求項１に記載の発明によれば、カム角度センサは、カム軸回転信号が、基準角度位置からクランク角度３６０度の第１角度期間に対応する第１角度期間二値信号と、第１角度期間に続くクランク角度３６０度の第２角度期間に対応する第２角度期間二値信号とからなり、第２角度期間二値信号は、第１角度期間二値信号を反転させた信号となるように構成されているので、イグニッションスイッチがオンされた時点におけるカム軸回転信号の値によって、始動開始クランク角度が含まれる角度領域（始動開始領域）が、第１角度期間または第２角度期間のいずれにあるかを判定することができる（第１判定結果）。また始動開始後のカム軸回転信号及び検出クランク角度に基づいて、始動開始領域（ＲＳ）が第１または第２角度期間に含まれるより狭い領域（Ａ〜Ｇ）のいずれに相当するかを判定することができる（第２判定結果）。第１判定結果及び第２判定結果を用いることにより、始動開始クランク角度からクランク角度１８０度の期間内において、機関回転位相を正確に判定することができる。具体的には、６気筒機関において、第１角度期間二値信号は、基準角度位置（ＰＲＥＦ）からクランク角度１２０度に相当する第１期間（Ｔ１）において第１の値（Ｈ）をとり、第１期間（Ｔ１）に続く、第１所定角度（ＣＡ１）に相当する第２期間（Ｔ２）において第２の値（Ｌ）をとり、第２期間（Ｔ２）に続く、第２所定角度（ＣＡ２）に相当する第３期間（Ｔ３）において第１の値（Ｈ）をとり、第３期間（Ｔ３）に続く、第３所定角度（ＣＡ３）に相当する第４期間（Ｔ４）において第２の値（Ｌ）をとり、第４期間（Ｔ４）に続く、第４所定角度（ＣＡ４）に相当する第５期間（Ｔ５）において第１の値（Ｈ）をとる信号であり、第１及び第３所定角度（ＣＡ１，ＣＡ３）はともに６０度未満の異なる値（１８度，４２度）に設定され、第２所定角度（ＣＡ２）は１２０度から第１所定角度（ＣＡ１）を減算した値（１０２度）に設定され、第４所定角度（ＣＡ４）は１２０度から第３所定角度（ＣＡ３）を減算した値（７８度）に設定されるので、クランク角度センサに、基準となる角度位置を特定するための構成（例えばパルサーの歯の欠損部）を設けることなく、迅速かつ正確な位相判定が可能となる。クランク角度センサのパルサーの歯の欠損部を設けて、その欠損部とカム軸回転信号との相対関係に基づいて機関回転位相を判定する場合には、両者の相対関係のずれ（製造時の特性ばらつき、あるいは急激な回転変動によって発生する欠損部の検出漏れなどに起因する）によって判定精度が低下するおそれがあるが、本発明ではクランク角度センサに、基準となる角度位置を特定するための構成を設ける必要がなく、安定的に高い判定精度が得られる。
【００１０】
請求項２に記載の発明によれば、第１所定角度は第３所定角度より小さな値に設定され、カム軸回転信号が始動開始後最初に変化した時点における、始動開始クランク角度を基準とした第１判定角度が第２所定角度（１０２）以上であるときは、始動開始領域が領域Ａ（図１２参照）であることが判定できるので、直ちに機関回転位相を特定することができる。一方、第１判定角度が第２所定角度より小さいときは、始動開始領域を直ちに判定できないため、第１判定角度を基準とした第２判定角度を用いることにより、機関回転位相を特定することができる。
【００１１】
請求項３に記載の発明によれば、第１判定角度が第２所定角度より小さいときは、以下のように機関回転位相が特定される。第２判定角度が第１所定角度を超える前にカム軸回転信号が変化したときは、第２判定角度は第１所定角度にほぼ等しく、始動開始領域が領域Ｂであると判定できるので、その時点で機関回転位相を特定することができ、第２判定角度が第１所定角度を超えた後であって第３所定角度を超える前にカム軸回転信号が変化したときは、始動開始領域が領域Ｄであると判定できるので、その時点で機関回転位相を特定することができ、第２判定角度が第３所定角度を超えた後であって第４所定角度を超える前にカム軸回転信号が変化したときは、始動開始領域が領域Ｅであると判定できるので、その時点で機関回転位相を特定することができ、第２判定角度が第４所定角度を超えた後であって第２所定角度を超える前にカム軸回転信号が変化したときは、始動開始領域が領域Ｃであると判定できるので、その時点で機関回転位相を特定することができる。また第１判定角度が第３所定角度より大きく、かつカム軸回転信号が変化する前に第２判定角度が第３所定角度を超えたときは、始動開始領域が領域Ｆであると判定できるので、その時点で機関回転位相を特定することができ、第１判定角度が第３所定角度以下で、かつカム軸回転信号が変化する前に第２判定角度が第２所定角度を超えたときは、始動開始領域が領域Ｇであると判定できるので、その時点で機関回転位相を特定することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態にかかる内燃機関及びその制御装置を示す図である。
【図２】カム軸回転信号を示すタイムチャートである（第１の実施形態）。
【図３】カム軸回転信号、クランク角度センサの出力パルス、機関回転位相（ＣＡＣＹＬ）、及び機関回転位相の判定に使用される角度領域（Ａ〜Ｅ）を示すタイムチャートである（第１の実施形態）。
【図４】機関回転位相の判定手法を説明するためのタイムチャートである（第１の実施形態）。
【図５】イグニッションスイッチがオンされたときに実行される初期化処理のフローチャートである。
【図６】クランク角度センサの出力パルスに応じた割り込み処理のフローチャートである（第１の実施形態）。
【図７】カム軸回転信号に応じた割り込み処理のフローチャートである（第１の実施形態）。
【図８】図６及び図７の処理で実行される位相判定処理のフローチャートである。
【図９】図６及び図７の処理で実行される位相判定処理のフローチャートである。
【図１０】クランク角度センサの出力パルスの変形例を示すタイムチャートである。
【図１１】カム軸回転信号を示すタイムチャートである（第２の実施形態）。
【図１２】カム軸回転信号、クランク角度センサの出力パルス、機関回転位相（ＣＡＣＹＬ）、及び機関回転位相の判定に使用される角度領域（Ａ〜Ｇ）を示すタイムチャートである（第２の実施形態）。
【図１３】機関回転位相の判定手法を説明するためのタイムチャートである（第２の実施形態）。
【図１４】機関回転位相の判定手法を説明するためのタイムチャートである（第２の実施形態）。
【図１５】クランク角度センサの出力パルスに応じた割り込み処理のフローチャートである（第２の実施形態）。
【図１６】カム軸回転信号に応じた割り込み処理のフローチャートである（第２の実施形態）。
【図１７】図１５及び図１６の処理で実行される位相判定処理のフローチャートである。
【図１８】図１５及び図１６の処理で実行される位相判定処理のフローチャートである。
【発明を実施するための形態】
【００１３】
以下本発明の実施の形態を図面を参照して説明する。
［第１の実施形態］
図１は本発明の一実施形態にかかる内燃機関及びその制御装置の構成を示す図である。内燃機関（以下単に「エンジン」という）１は、４気筒を有し、吸気管２を備えている。吸気管２にはスロットル弁３が設けられている。
【００１４】
燃料噴射弁６はエンジン１とスロットル弁３との間かつ吸気管２の図示しない吸気弁の少し上流側に各気筒毎に設けられており、各噴射弁は図示しない燃料ポンプに接続されていると共に電子制御ユニット（以下「ＥＣＵ」という）５に電気的に接続されてＥＣＵ５からの制御信号により燃料噴射弁６の開弁時期及び開弁時間（燃料噴射時期及び燃料噴射時間）が制御される。エンジン１の各気筒の点火プラグ７は、ＥＣＵ５に接続されており、ＥＣＵ５からの点火信号により点火時期が制御される。
【００１５】
吸気管２のスロットル弁３の下流には吸気圧ＰＢＡを検出する吸気圧センサ９が設けられており、その検出信号はＥＣＵ５に供給される。
ＥＣＵ５には、エンジン１のクランク軸８の回転角度を検出するクランク角度センサ１０と、エンジン１の吸気弁及び排気弁を駆動するカムが固定されるカム軸（図示せず）の回転角度を検出するカム角度センサ１１とが接続されている。クランク角度センサ１０は、比較的短い一定クランク角周期（例えば６度周期）で１パルス（以下「ＣＲＫパルス」という）を発生し、ＥＣＵ５に供給する。カム軸は、クランク軸８の２回転に対応して１回転する。
【００１６】
カム角度センサ１１は、図２に示すカム軸回転信号ＳＣＡＭを出力する。すなわち、カム角度センサ１１は、カム軸回転信号ＳＣＡＭが基準角度位置ＰＲＥＦからクランク角度１８０度に相当する第１期間Ｔ１において高レベルＨ（第１の値）をとり、第１期間Ｔ１に続く、第１所定角度ＣＡ１（例えばクランク角度２４度）に相当する第２期間Ｔ２において低レベルＬ（第２の値）をとり、第２期間Ｔ２に続く、第２所定角度ＣＡ２（例えばクランク角度１５６度）に相当する第３期間Ｔ３において高レベルＨをとり、第３期間Ｔ３に続くクランク角度１８０度に相当する第４期間Ｔ４において低レベルＬをとり、第４期間Ｔ４に続く、第１所定角度ＣＡ１に相当する第５期間Ｔ５において高レベルＨをとり、第５期間Ｔ５に続く、第２所定角度ＣＡ２に相当する第６期間Ｔ３において低レベルＬをとるように構成されている。
【００１７】
すなわちカム角度センサ１１は、第４〜第６期間Ｔ４〜Ｔ６におけるカム軸回転信号ＳＣＡＭは、第１〜第３期間Ｔ１〜Ｔ３におけるカム軸回転信号ＳＣＡＭを反転させた信号となるように構成されている。また第１所定角度ＣＡ１と第２所定角度ＣＡ２との和は１８０度となるように設定されている。
【００１８】
なお、カム角度センサ１１は検出素子としてホール素子を使用しており、イグニッションスイッチがオンされた時点（エンジン制御装置に電源が供給された時点）における回転位相に対応した値（高レベルＨまたは低レベルＬ）を出力する。
【００１９】
ＥＣＵ５のＣＰＵは、クランク角度センサ１０及びカム角度センサ１１の出力信号に基づいて、エンジン１の回転位相判定（気筒判別）を行う。ＣＲＫパルスは、燃料噴射時期、点火時期等の各種タイミング制御、エンジン回転数（エンジン回転速度）ＮＥの検出に使用される。
【００２０】
図３は、本実施形態におけるエンジン回転位相判定（エンジン始動直後）の手法を説明するためのタイムチャートである。図３（ａ）及び（ｂ）は、それぞれカム角度センサ１１及びクランク角度センサ１０の出力信号を示す。図の上部に示すＣＡＣＹＬは、エンジン１の７２０度周期（１燃焼サイクル）の回転位相（以下「エンジン回転位相」という）であり、ＣＲＫＣＮＴは対応するＣＲＫパルス（６度周期）のカウント値（以下「回転位相カウント値」という）である。図３に示すエンジン回転位相ＣＡＣＹＬと、各気筒の行程との関係は予め設定されているので、エンジン回転位相ＣＡＣＹＬを判定することにより、各気筒に対応した燃料噴射及び点火を適切なタイミングで実行することができる。
【００２１】
本実施形態におけるカム角度センサ１１は、上述したように第４〜第６期間Ｔ４〜Ｔ６におけるカム軸回転信号ＳＣＡＭは、第１〜第３期間Ｔ１〜Ｔ３におけるカム軸回転信号ＳＣＡＭを反転させた信号となるように構成されているので、イグニッションスイッチがオンされたときの信号値（以下「初期信号値」という）ＳＣＩＮＩ（高レベルＨであるか低レベルＬであるか）と、始動開始位置ＰＳが同図（ｃ）に示す領域Ａ〜Ｅのいずれに含まれているかの判定結果とに基づいて、エンジン回転位相判定が行われる。例えば、始動開始位置ＰＳが領域Ａにあると判定された場合、初期信号値ＳＣＩＮＩが「Ｈ」であれば、始動開始位置ＰＳが図３に示すエンジン回転位相０度直後の領域Ａにあるとが判別でき、初期信号値ＳＣＩＮＩが「Ｌ」であれば、エンジン回転位相３６０度直後の領域Ａにあるとが判別できる。始動開始位置ＰＳが含まれている領域（以下「始動開始領域」という）ＲＳが特定されると、その始動開始領域ＲＳの判定時点ｔＲＳＤにおいてエンジン回転位相ＣＡＣＹＬを特定することができ、その判定時点ｔＲＳＤ以後の燃料噴射及び点火を正しい順序で実行することが可能となる。
【００２２】
そこで、次に始動開始領域ＲＳが領域Ａ〜Ｅのいずれであるかの判定手法について図４を参照して説明する。
１）始動開始領域ＲＳが領域Ａであるときは、始動開始位置ＰＳから始動開始後最初にカム軸回転信号ＳＣＡＭが変化する時点（以下「第１変化タイミング」という）ｔＣ１までの第１判定角度ＣＡＤ１（Ａ）は、第２所定角度ＣＡ２以上となる（図４（ａ），ＲＳ＝Ａ）。したがって、第１変化タイミングｔＣ１において、第１判定角度ＣＡＤ１が第２所定角度ＣＡ２以上であるときは、始動開始領域ＲＳは領域Ａであると判定できる（時刻ｔＤＡ＝ｔＣ１）。
【００２３】
２）第１判定角度ＣＡＤ１が第２所定角度ＣＡ２より小さいときは、第１判定角度ＣＡＤ１を基準とした（第１変化タイミングｔＣ１におけるクランク角度を「０」度とした）第２判定角度ＣＡＤ２に応じて、下記３）〜６）の条件を判別することにより、始動開始領域ＲＳが領域Ｂ〜Ｅの何れであるかを判定することができる。以下の説明では、第１変化タイミングｔＣ１の次にカム軸回転信号ＳＣＡＭが変化する時点を「第２変化タイミングｔＣ２」という。
【００２４】
３）始動開始領域ＲＳが領域Ｂであるときは、第１判定角度ＣＡＤ１（Ｂ）は、第２所定角度ＣＡ２より小さくなり、第２変化タイミングｔＣ２における第２判定角度ＣＡＤ２（Ｂ）が、第１所定角度ＣＡ１と等しくなる（図４（ａ），ＲＳ＝Ｂ）。換言すれば、第２判定角度ＣＡＤ２（Ｂ）が第１所定角度ＣＡ１を超える前に、カム軸回転信号ＳＣＡＭが変化する。
【００２５】
４）始動開始領域ＲＳが領域Ｃであるときは、第１判定角度ＣＡＤ１（Ｃ）は第１所定角度以下であり、かつ第２変化タイミングｔＣ２における第２判定角度ＣＡＤ２（Ｃ）が、第２所定角度ＣＡ２と等しくなる（図４（ｂ））。換言すれば、第２判定角度ＣＡＤ２（Ｃ）が第１所定角度ＣＡ１を超えた後であって第２所定角度ＣＡ２を超える前に、カム軸回転信号ＳＣＡＭが変化する。
【００２６】
５）始動開始領域ＲＳが領域Ｄであるときは、第１判定角度ＣＡＤ１（Ｄ）は、第１所定角度ＣＡ１より大きくなり、かつ第２変化タイミングｔＣ２より前に第２判定角度ＣＡＤ２（Ｄ）が第１所定角度ＣＡ１を超える（図４（ｃ），ＲＳ＝Ｄ）。
【００２７】
６）始動開始領域ＲＳが領域Ｅであるときは、第１判定角度ＣＡＤ１（Ｅ）は、第１所定角度ＣＡ１以下であり、かつ第２変化タイミングｔＣ２より前に第２判定角度ＣＡＤ２（Ｄ）が第２所定角度ＣＡ２を超える（図４（ｃ），ＲＳ＝Ｅ）。
【００２８】
図４から明らかなように、上記３）〜６）の条件を判別することにより、それぞれ時刻ｔＤＢ，ｔＤＣ，ｔＤＤ，及びｔＤＥにおいて、始動開始領域ＲＳを判定することができる。したがって、始動開始領域ＲＳが領域Ａ〜Ｅのいずれであっても、始動開始位置ＰＳからクランク角度１８０度以内で、エンジン回転位相ＣＡＣＹＬの判定を完了することができる。
【００２９】
次に図５〜図９を参照して、エンジン回転位相ＣＡＣＹＬの判定処理を説明する。これらの図に示す処理は、ＥＣＵ５のＣＰＵで実行される。本実施形態では、クランク角度の検出は、６度周期のＣＲＫパルスをカウントすることにより行われる。したがって、ＣＲＫパルスのカウント値が上述した判定角度ＣＡＤ１及びＣＡＤ２に対応するパラメータとして使用される。
【００３０】
図５は、初期化処理のフローチャートである。初期化処理は、イグニッションスイッチがオンされたときに１回だけ実行される。
ステップＳ１１では、カム軸回転信号ＳＣＡＭの値が高レベルＨか否かを判別し、その答が肯定（ＹＥＳ）であるときは、初期値フラグＣＡＭＰＯＲＴＩＮＩを「１」に設定する（ステップＳ１２）。カム軸回転信号ＳＣＡＭの値が低レベルＬであるときは、初期値フラグＣＡＭＰＯＲＴＩＮＩを「０」に設定する（ステップＳ１３）。その後、第１判定実行フラグＣＲＫＩＮＴＣＨＫ、始動開始領域パラメータＣＹＬＰＡＴＮ、クランク角度判定パラメータＣＲＫＣＮＴＪＵＧ、クランク角度パラメータＣＲＫＩＮＣＮＴ、及びカム角度パラメータＣＡＭＩＮＴＣＮＴを「０」に設定する初期化を実行する（ステップＳ１４）。これらのフラグ及びパラメータは、図６及び／または図７の処理で使用されるものである。
【００３１】
図６は、ＣＲＫパルスの発生に同期して実行されるＣＲＫ割り込み処理のフローチャートである。
ステップＳ２１では、クランク角度パラメータＣＲＫＩＮＴＣＮＴを「１」だけ増加させ、ステップＳ２２では、第１判定実行フラグＣＲＫＩＮＴＣＨＫが「１」であるか否かを判別する。第１判定実行フラグＣＲＫＩＮＴＣＨＫは、図７に示すＣＡＭ割り込み処理で設定されるフラグであり（ステップＳ３５，Ｓ３６，Ｓ４２）、最初はステップＳ２２の答は否定（ＮＯ）であるので、直ちに処理を終了する。ＣＡＭ割り込み処理は、カム軸回転信号ＳＣＡＭの値が変化するタイミングで実行される処理であり、始動開始後最初のＣＡＭ割り込み処理（以下単に「最初のＣＡＭ割り込み処理」という）で、始動開始領域ＲＳの判定が完了しないとき、第１判定実行フラグＣＲＫＩＮＴＣＨＫが「１」に設定される。前述したように、最初のＣＡＭ割り込み処理で始動開始領域の判定が完了するのは、始動開始領域ＲＳが領域Ａである場合のみである。
【００３２】
ステップＳ２２の答が肯定（ＹＥＳ）、すなわち第１判定実行フラグＣＲＫＩＮＴＣＨＫが「１」であるときは、クランク角度パラメータＣＲＫＩＮＴＣＮＴが第１所定値ｎＣＲＫ１に「２」を加算した値と等しいか否かを判別する（ステップＳ２３）。第１所定値ｎＣＲＫ１は、第１所定角度ＣＡ１（２４度）に対応するＣＲＫパルス数であり、本実施形態では「４」である。「２」を加算するのは、誤差を考慮して判定精度を高めるためである。
【００３３】
ステップＳ２３の答が肯定（ＹＥＳ）であるときは、クランク角度判定パラメータＣＲＫＣＮＴＪＵＧの値が「１」であるか否かを判別する（ステップＳ２４）。クランク角度判定パラメータＣＲＫＣＮＴＪＵＧは、最初のＣＡＭ割込処理で設定されるパラメータであり、クランク角度パラメータＣＲＫＩＮＴＣＮＴの値が（ｎＣＲＫ１＋１）より大きいとき「１」に設定され（ステップＳ３５）、（ｎＣＲＫ１＋１）以下であるとき「２」に設定される（ステップＳ３６）。
【００３４】
ステップＳ２４の答が否定（ＮＯ）であるときは、直ちにステップＳ２９に進む。一方、クランク角度判定パラメータＣＲＫＣＮＴＪＵＧが「１」であるときは、最初のＣＡＭ割り込み処理におけるクランク角度パラメータＣＲＫＩＮＴＣＮＴの値が、（ｎＣＲＫ１＋１）より大きく、かつ次のＣＡＭ割り込み処理が実行される前に（第２変化タイミングｔＣ２より前に）クランク角度パラメータＣＲＫＩＮＴＣＮＴが第１所定値ｎＣＲＫ１を超えたことを示すので、始動開始領域ＲＳは領域Ｄであると判定し、始動開始領域パラメータＣＹＬＰＡＴＮを、領域Ｄを示す領域Ｄ指示値ＮＰＤに設定する（ステップＳ２５）。ステップＳ２５実行後は、ステップＳ２９に進む。
【００３５】
ステップＳ２３の答が否定（ＮＯ）であるときは、クランク角度パラメータＣＲＫＩＮＴＣＮＴが第２所定値ｎＣＲＫ２に「１」を加算した値と等しいか否かを判別する（ステップＳ２６）。第２所定値ｎＣＲＫ２は、第２所定角度ＣＡ２（１５６度）に対応するＣＲＫパルス数であり、本実施形態では「２６」である。「１」を加算するのは、誤差を考慮して判定精度を高めるためである。
【００３６】
ステップＳ２６の答が肯定（ＹＥＳ）であるときは、クランク角度判定パラメータＣＲＫＣＮＴＪＵＧの値が「２」であるか否かを判別する（ステップＳ２７）。ステップＳ２６またはＳ２７の答が否定（ＮＯ）であるときは直ちにステップＳ２９に進む。ステップ２７の答が肯定（ＹＥＳ）であるときは、最初のＣＡＭ割り込み処理におけるクランク角度パラメータＣＲＫＩＮＴＣＮＴの値が、（ｎＣＲＫ１＋１）以下であり、かつ次のＣＡＭ割り込み処理が実行される前に（第２変化タイミングｔＣ２より前に）クランク角度パラメータＣＲＫＩＮＴＣＮＴが第２所定値ｎＣＲＫ２を超えたことを示すので、始動開始領域ＲＳは領域Ｅであると判定し、始動開始領域パラメータＣＹＬＰＡＴＮを、領域Ｅを示す領域Ｅ指示値ＮＰＥに設定する（ステップＳ２８）。ステップＳ２８実行後は、ステップＳ２９に進む。
ステップＳ２９では、図８及び図９に示す位相判定処理を実行する。
【００３７】
図７は、ＣＡＭ割り込み処理のフローチャートである。
ステップＳ３１では、カム角度パラメータＣＡＭＩＮＴＣＮＴが「０」であるか否かを判別する。最初はこの答は肯定（ＹＥＳ）であるので、ステップＳ３２に進み、クランク角度パラメータＣＲＫＩＮＣＮＴが第２所定値ｎＣＲＫより大きいか否かを判別する。この答が肯定（ＹＥＳ）であるときは、始動開始領域ＲＳは領域Ａであると判定し、始動開始領域パラメータＣＹＬＰＡＴＮを、領域Ａを示す領域Ａ指示値ＮＰＡに設定する（ステップＳ３３）。その後ステップＳ４３に進む。
【００３８】
ステップＳ３２の答が否定（ＮＯ）であるときは、クランク角度パラメータＣＲＫＩＮＴＣＮＴが第１所定値ｎＣＲＫ１に「１」を加算した値より大きいか否かを判別する（ステップＳ３４）。この答が肯定（ＹＥＳ）、すなわち（ｎＣＲＫ１＋１）＜ＣＲＫＩＮＴＣＮＴ≦（ｎＣＲＫ２−１）であるときは、第１判定実行フラグＣＲＫＩＮＴＣＨＫを「１」に設定するとともに、クランク角度判定パラメータＣＲＫＣＮＴＪＵＧを「１」に設定する（ステップＳ３５）。その後ステップＳ４３に進む。
【００３９】
ステップＳ３４の答が否定（ＮＯ）、すなわちＣＲＫＩＮＴＣＮＴ≦（ｎＣＲＫ１＋１）であるときは、第１判定実行フラグＣＲＫＩＮＴＣＨＫを「１」に設定するとともに、クランク角度判定パラメータＣＲＫＣＮＴＪＵＧを「２」に設定する（ステップＳ３６）。その後ステップＳ４３に進む。
【００４０】
ステップＳ４３では、カム角度パラメータＣＡＭＩＮＴＣＮＴを「１」だけ増加させるとともに、クランク角度パラメータＣＲＫＩＮＴＣＮＴを「０」に戻す。その後ステップＳ４４に進み、図８及び図９に示す位相判定処を実行する。
【００４１】
ステップＳ３１の答が否定（ＮＯ）、すなわちカム角度パラメータＣＡＭＩＮＴＣＮＴが「１」以上であるときは、カム角度パラメータＣＡＭＩＮＴＣＮＴが「１」であるか否かを判別する（ステップＳ３７）。その答が否定（ＮＯ）であるときは、直ちにステップＳ４３に進む。
【００４２】
ステップＳ３７の答が肯定（ＹＥＳ）、すなわち始動開始後２回目のＣＡＭ割り込み処理であるときは、クランク角度パラメータＣＲＫＩＮＣＮＴが第１所定値ｎＣＲＫ１から「１」を減算した値以上で、かつ第１所定値ｎＣＲＫ１に「１」を加算した値以下であるか否かを判別する（ステップＳ３８）。その答が肯定（ＹＥＳ）であるときは、始動開始領域ＲＳは領域Ｂであると判定し、始動開始領域パラメータＣＹＬＰＡＴＮを領域Ｂ指示値ＮＰＢに設定する（ステップＳ３９）。その後ステップＳ４２に進む。
【００４３】
ステップＳ３８の答が否定（ＮＯ）であるときは、クランク角度判定パラメータＣＲＫＣＮＴＪＵＧが「２」であるか否かを判別する（ステップＳ４０）。その答が否定（ＮＯ）であるときは直ちにステップＳ４３に進む。一方、ステップＳ３８の答が否定（ＮＯ）でかつステップＳ４０の答が肯定（ＹＥＳ）であるとき、すなわちクランク角度パラメータＣＲＫＩＮＴＣＮＴが（第１所定値ｎＣＲＫ１±１）の範囲外であって、かつ第１判定角度ＣＡＤ１が（ｎＣＲＫ１＋１）以下であるときは、始動開始領域ＲＳは領域Ｃであると判定し、始動開始領域パラメータＣＹＬＰＡＴＮを領域Ｃ指示値ＮＰＣに設定する（ステップＳ４１）。その後ステップＳ４２に進む。
【００４４】
ステップＳ４２では、第１判定実行フラグＣＲＫＩＮＴＣＨＫを「０」に戻し、ステップＳ４３に進む。ステップＳ３９の答が否定（ＮＯ）であるときは直ちにステップＳ４３に進む。
【００４５】
図８及び図９は、図６のステップＳ２９及び図７のステップＳ４４で実行される位相判定処理のフローチャートである。
ステップＳ５１では、始動開始領域パラメータＣＹＬＰＡＴＮの値が領域Ａ指示値ＮＰＡであるか否かを判別し、その答が肯定（ＹＥＳ）であるときは、初期値フラグＣＡＭＰＯＲＴＩＮＩが「１」であるか否かを判別する（ステップＳ５２）。その答が肯定（ＹＥＳ）であるときは、エンジン回転位相ＣＡＣＹＬが１８０度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「３０」に設定する（図３参照）（ステップＳ５３）。一方、ステップＳ５２の答が否定（ＮＯ）であるときは、エンジン回転位相ＣＡＣＹＬが５４０度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「９０」に設定する（ステップＳ５４）。
【００４６】
ステップＳ５１の答が否定（ＮＯ）であるときは、始動開始領域パラメータＣＹＬＰＡＴＮの値が領域Ｂ指示値ＮＰＢであるか否かを判別し（ステップＳ５５）、その答が肯定（ＹＥＳ）であるときは、初期値フラグＣＡＭＰＯＲＴＩＮＩが「１」であるか否かを判別する（ステップＳ５６）。その答が肯定（ＹＥＳ）であるときは、エンジン回転位相ＣＡＣＹＬが２０４度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「３４」に設定する（ステップＳ５７）。一方、ステップＳ５６の答が否定（ＮＯ）であるときは、エンジン回転位相ＣＡＣＹＬが５６４度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「９４」に設定する（ステップＳ５８）。
【００４７】
ステップＳ５５の答が否定（ＮＯ）であるときは、始動開始領域パラメータＣＹＬＰＡＴＮの値が領域Ｅ指示値ＮＰＣであるか否かを判別し（ステップＳ５９）、その答が肯定（ＹＥＳ）であるときは、初期値フラグＣＡＭＰＯＲＴＩＮＩが「１」であるか否かを判別する（ステップＳ６０）。その答が肯定（ＹＥＳ）であるときは、エンジン回転位相ＣＡＣＹＬが０度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「０」に設定する（ステップＳ６１）。一方、ステップＳ６０の答が否定（ＮＯ）であるときは、エンジン回転位相ＣＡＣＹＬが３６０度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「６０」に設定する（ステップＳ６２）。
【００４８】
ステップＳ５９の答が否定（ＮＯ）であるときは、始動開始領域パラメータＣＹＬＰＡＴＮの値が領域Ｄ示値ＮＰＤであるか否かを判別し（ステップＳ６３）、その答が肯定（ＹＥＳ）であるときは、初期値フラグＣＡＭＰＯＲＴＩＮＩが「１」であるか否かを判別する（ステップＳ６４）。その答が肯定（ＹＥＳ）であるときは、エンジン回転位相ＣＡＣＹＬが３９６度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「６６」に設定する（ステップＳ６５）。一方、ステップＳ６４の答が否定（ＮＯ）であるときは、エンジン回転位相ＣＡＣＹＬが３６度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「６」に設定する（ステップＳ６６）。ステップＳ６５及びＳ６６における回転位相カウント値ＣＲＫＣＮＴの設定は、図６のステップＳ２３における「＋２」が考慮されている。
【００４９】
ステップＳ６３の答が否定（ＮＯ）であるときは、始動開始領域パラメータＣＹＬＰＡＴＮの値が領域Ｅ指示値ＮＰＥであるか否かを判別し（ステップＳ６７）、その答が肯定（ＹＥＳ）であるときは、初期値フラグＣＡＭＰＯＲＴＩＮＩが「１」であるか否かを判別する（ステップＳ６８）。その答が肯定（ＹＥＳ）であるときは、エンジン回転位相ＣＡＣＹＬが５２２度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「８７」に設定する（ステップＳ６９）。一方、ステップＳ６８の答が否定（ＮＯ）であるときは、エンジン回転位相ＣＡＣＹＬが１６２度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「２７」に設定する（ステップＳ７０）。ステップＳ６９及びＳ７０における回転位相カウント値ＣＲＫＣＮＴの設定は、図６のステップＳ２６における「＋１」が考慮されている。ステップＳ６７の答が否定（ＮＯ）であるときは直ちに処理を終了する。
【００５０】
以上のように本実施形態では、カム角度センサ１１は、カム軸回転信号ＳＣＡＭが、基準角度位置ＰＲＥＦからクランク角度３６０度の第１角度期間（Ｔ１〜Ｔ３）に対応する第１角度期間二値信号と、第１角度期間（Ｔ１〜Ｔ３）に続くクランク角度３６０度の第２角度期間（Ｔ４〜Ｔ６）に対応する第２角度期間二値信号とからなり、第２角度期間二値信号は、第１角度期間二値信号を反転させた信号となるように構成されているので、イグニッションスイッチがオンされた時点におけるカム軸回転信号ＳＣＡＭの値を示す初期値フラグＣＡＭＰＯＲＴＩＮＩによって、始動開始位置ＰＳが含まれる始動開始領域ＲＳが、第１角度期間（Ｔ１〜Ｔ３）または第２角度期間（Ｔ４〜Ｔ６）のいずれにあるかを判定することができる（第１判定結果）。また始動開始後のカム軸回転信号ＳＣＡＭと、検出クランク角度を示すクランク角度パラメータＣＲＫＩＮＴＣＮＴとに基づいて、始動開始領域ＲＳが第１または第２角度期間に含まれるより狭い領域Ａ〜Ｅのいずれであるかを判定することができる（第２判定結果）。第１判定結果及び第２判定結果を用いることにより、始動開始位置ＰＳからクランク角度１８０度の期間内において、エンジン回転位相ＣＡＣＹＬを正確に判定することができる。
【００５１】
より具体的には、第１角度期間二値信号は、基準角度位置ＰＲＥＦからクランク角度１８０度に相当する第１期間Ｔ１において高レベルＨをとり、第１期間Ｔ１に続く、第１所定角度ＣＡ１に相当する第２期間Ｔ２において低レベルＬをとり、第２期間Ｔ２に続く、第２所定角度ＣＡ２に相当する第３期間Ｔ３において高レベルＨをとるように構成され、第１所定角度ＣＡ１は２４度に設定され、第２所定角度ＣＡ２は１８０度から第１所定角度ＣＡ１を減算した１５６度に設定される。この設定により、クランク角度センサ１０に、基準となる角度位置を特定するための構成（例えばパルサーの歯の欠損部）を設けることなく、迅速かつ正確な位相判定が可能となる。クランク角度センサにおいてパルサーの歯の欠損部を設けて、その欠損部とカム軸回転信号との相対関係に基づいてエンジン回転位相ＣＡＣＹＬを判定する場合には、両者の相対関係のずれ（製造時の特性ばらつき、あるいは急激な回転変動によって発生する欠損部の検出漏れなどに起因する）によって判定精度が低下するおそれがあるが、本実施形態ではクランク角度センサ１０に基準となる角度位置を特定するための構成を設ける必要がなく、安定的に高い判定精度が得られる。
【００５２】
またカム軸回転信号ＳＣＡＭが始動開始後最初に変化した第１変化タイミングｔＣ１における、第１判定角度ＣＡＤ１が第２所定角度ＣＡ２以上であるときは、始動開始領域ＲＳが領域Ａであると判定できる（図４（ａ），ＲＳ＝Ａ）ので、直ちにエンジン回転位相ＣＡＣＹＬを特定することができる（ｔＤＡ＝ｔＣ１）。一方、第１判定角度ＣＡＤ１が第２所定角度ＣＡ２より小さいときは、始動開始領域ＲＳを直ちに判定できないため、第１判定角度ＣＡＤ１を基準とした第２判定角度ＣＡＤ２を用いることにより、以下のようにエンジン回転位相ＣＡＣＹＬを特定することができる。
【００５３】
すなわち、第２判定角度ＣＡＤ２が第１所定角度ＣＡ１を超える前にカム軸回転信号ＳＣＡＭが変化したときは（図４（ａ），ｔＣ２）、第２変化タイミングｔＣ２における第２判定角度ＣＡＤ２が第１所定角度ＣＡ１とほぼ等しく、始動開始領域ＲＳが領域Ｂであると判定できるので（図４（ａ），ＲＳ＝Ｂ）、その時点ｔＤＢ（＝ｔＣ２）でエンジン回転位相ＣＡＣＹＬを特定することができる。また、第１判定角度ＣＡＤ１が第１所定角度ＣＡＤ１以下で、かつ第２判定角度ＣＡＤ２が第１所定角度ＣＡ１を超えた後であって第２所定角度ＣＡ２を超える前にカム軸回転信号ＳＣＡＭが変化したときは、第２変化タイミングｔＣ２における第２判定角度ＣＡＤ２が第２所定角度ＣＡ２とほぼ等しく、始動開始領域ＲＳが領域Ｃであることを判定できるので（図４（ｂ））、その時点ｔＤＣ（＝ｔＣ２）でエンジン回転位相ＣＡＣＹＬを特定することができる。
【００５４】
また、第１判定角度ＣＡＤ１が第１所定角度ＣＡ１より大きく、かつカム軸回転信号ＳＣＡＭが変化する前に（ｔＣ２より前に）第２判定角度ＣＡＤ２が第１所定角度ＣＡ１を超えたときは、始動開始領域が領域Ｄであると判定できる（図４（ｃ），ＲＳ＝Ｄ）ので、その時点（ｔＤＤ）でエンジン回転位相ＣＡＣＹＬを特定することができる。また、第１判定角度ＣＡＤ１が第１所定角度ＣＡ１以下で、かつカム軸回転信号ＳＣＡＭが変化する前に（ｔＣ２より前に）第２判定角度ＣＡＤ２が第２所定角度ＣＡ２を超えたときは、始動開始領域ＲＳが領域Ｅであると判定できる（図４（ｃ），ＲＳ＝Ｅ）ので、その時点（ｔＤＥ）でエンジン回転位相ＣＡＣＹＬを特定することができる。
【００５５】
本実施形態では、ＥＣＵ５のＣＰＵが、回転位相判定手段を構成し、図５〜図９の処理が回転位相判定手段に相当する。
【００５６】
なお上述した実施形態では、ＣＲＫパルスがクランク角度６度毎に常に発生するように構成されたクランク角度センサ１０を使用したが、図１０（ｂ）に示すように３６０度毎に欠け部ＣＴ（例えば２パルスの欠け）を含むＣＲＫパルス列を生成するクランク角度センサを使用しても、上述した実施形態と同様に始動開始位置ＰＳからクランク角度１８０度以内でエンジン回転位相ＣＡＣＹＬを判定することができる。
【００５７】
また上述した実施形態では、第１所定角度ＣＡ１を２４度に設定し、第２所定角度ＣＡ２を１５６度に設定したが、第１所定角度ＣＡ１を９０度未満の値に設定することにより、上述した実施形態と同様に始動開始位置ＰＳからクランク角度１８０度以内でエンジン回転位相ＣＡＣＹＬを判定することができる。
【００５８】
［第２の実施形態］
本実施形態は、６気筒エンジンの制御装置に本発明を適用したものである。以下に説明する点以外は、第１の実施形態と同一である。
【００５９】
本実施形態では、カム角度センサ１１は、図１１（ａ）に示すカム軸回転信号ＳＣＡＭを出力する。カム角度センサ１１は、カム軸回転信号ＳＣＡＭが基準角度位置ＰＲＥＦからクランク角度１２０度に相当する第１期間Ｔ１において高レベルＨ（第１の値）をとり、第１期間Ｔ１に続く、第１所定角度ＣＡ１（例えばクランク角度１８度）に相当する第２期間Ｔ２において低レベルＬ（第２の値）をとり、第２期間Ｔ２に続く、第２所定角度ＣＡ２（例えばクランク角度１０２度）に相当する第３期間Ｔ３において高レベルＨをとり、第３期間Ｔ３に続く第３所定角度ＣＡ３（例えば４２度）に相当する第４期間Ｔ４において低レベルＬをとり、第４期間Ｔ４に続く、第４所定角度ＣＡ４（例えば７８度）に相当する第５期間Ｔ５において高レベルＨをとり、第５期間Ｔ５に続く、クランク角度１２０度に相当する第６期間Ｔ６において低レベルＬをとり、第６期間Ｔ６に続く、第１所定角度ＣＡ１に相当する第７期間Ｔ７において高レベルＨをとり、第７期間Ｔ７に続く、第２所定角度ＣＡ２に相当する第８期間Ｔ８において低レベルＬをとり、第８期間Ｔ８に続く第３所定角度ＣＡ３に相当する第９期間Ｔ９において高レベルＨをとり、第９期間Ｔ９に続く、第４所定角度ＣＡ４に相当する第１０期間Ｔ１０において低レベルＬをとるように構成されている。
【００６０】
すなわちカム角度センサ１１は、第６〜第１０期間Ｔ６〜Ｔ１０におけるカム軸回転信号ＳＣＡＭは、第１〜第５期間Ｔ１〜Ｔ５におけるカム軸回転信号ＳＣＡＭを反転させた信号となるように構成されている。また第１所定角度ＣＡ１と第２所定角度ＣＡ２との和、及び第３所定角度ＣＡ３と第４所定角度ＣＡ４との和は、ともに１２０度となるように設定されている。
【００６１】
図１２は、本実施形態におけるエンジン回転位相判定（エンジン始動直後）の手法を説明するためのタイムチャートである。図１２（ａ）及び（ｂ）は、それぞれカム角度センサ１１及びクランク角度センサ１０の出力信号を示す。
【００６２】
本実施形態におけるカム角度センサ１１は、上述したように第６〜第１０期間Ｔ６〜Ｔ１０におけるカム軸回転信号ＳＣＡＭは、第１〜第５期間Ｔ１〜Ｔ５におけるカム軸回転信号ＳＣＡＭを反転させた信号となるように構成されているので、初期信号値ＳＣＩＮＩと、始動開始領域ＲＳが同図（ｃ）に示す領域Ａ〜Ｇのいずれであるかの判定結果とに基づいて、エンジン回転位相判定が行われる。
【００６３】
そこで、次に始動開始領域ＲＳが領域Ａ〜Ｇのいずれであるかの判定手法について図１３及び図１４を参照して説明する。
１）始動開始領域ＲＳが領域Ａであるときは、始動開始位置ＰＳから始動開始後最初にカム軸回転信号ＳＣＡＭが変化する第１変化タイミングｔＣ１までの第１判定角度ＣＡＤ１（Ａ）は、第２所定角度ＣＡ２以上となる（図１３（ａ），ＲＳ＝Ａ）。したがって、第１変化タイミングｔＣ１において、第１判定角度ＣＡＤ１が第２所定角度ＣＡ２以上であるときは、始動開始領域ＲＳは領域Ａであると判定できる（時刻ｔＤＡ）。
【００６４】
２）第１判定角度ＣＡＤ１が第２所定角度ＣＡ２より小さいときは、第１判定角度ＣＡＤ１を基準とした第２判定角度ＣＡＤ２に応じて、下記３）〜８）の条件を判別することにより、始動開始領域ＲＳが領域Ｂ〜Ｇの何れであるかを判定することができる。
【００６５】
３）始動開始領域ＲＳが領域Ｂであるときは、第１判定角度ＣＡＤ１（Ｂ）は、第２所定角度ＣＡ２より小さくなり、第２変化タイミングｔＣ２における第２判定角度ＣＡＤ２（Ｂ）が、第１所定角度ＣＡ１と等しくなる（図１３（ａ），ＲＳ＝Ｂ）。換言すれば、第２判定角度ＣＡＤ２（Ｂ）が第１所定角度ＣＡ１を超える前に、カム軸回転信号ＳＣＡＭが変化する。
【００６６】
４）始動開始領域ＲＳが領域Ｃであるときは、第１判定角度ＣＡＤ１（Ｃ）は、第１所定角度ＣＡ１以下であり、かつ第２変化タイミングｔＣ２における第２判定角度ＣＡＤ２（Ｃ）が、第２所定角度ＣＡ２と等しくなる（図１３（ｂ））。換言すれば、第２判定角度ＣＡＤ２（Ｃ）が第４所定角度ＣＡ４を超えた後であって第２所定角度ＣＡ２を超える前に、カム軸回転信号ＳＣＡＭが変化する。
【００６７】
５）始動開始領域ＲＳが領域Ｄであるときは、第２変化タイミングｔＣ２における第２判定角度ＣＡＤ２（Ｄ）が、第３所定角度ＣＡ３と等しくなる（図１３（ｃ），ＲＳ＝Ｄ）。換言すれば、第２判定角度ＣＡＤ２（Ｄ）が第１所定角度ＣＡ１を超えた後であって第３所定角度ＣＡ３を超える前に、カム軸回転信号ＳＣＡＭが変化する。
【００６８】
６）始動開始領域ＲＳが領域Ｅであるときは、第２変化タイミングｔＣ２における第２判定角度ＣＡＤ２（Ｅ）が、第４所定角度ＣＡ４と等しくなる（図１４（ａ））。換言すれば、第２判定角度ＣＡＤ２（Ｄ）が第３所定角度ＣＡ３を超えた後であって第４所定角度ＣＡ４を超える前に、カム軸回転信号ＳＣＡＭが変化する。
【００６９】
７）始動開始領域ＲＳが領域Ｆであるときは、第１判定角度ＣＡＤ１（Ｆ）は、第３所定角度ＣＡ１より大きくなり、かつ第２変化タイミングｔＣ２より前に第２判定角度ＣＡＤ２（Ｆ）が第３所定角度ＣＡ３を超える（図１４（ｂ），ＲＳ＝Ｆ）。
【００７０】
８）始動開始領域ＲＳが領域Ｇであるときは、第１判定角度ＣＡＤ１（Ｇ）は、第３所定角度ＣＡ３以下であり、かつ第２変化タイミングｔＣ２より前に第２判定角度ＣＡＤ２（Ｇ）が第２所定角度ＣＡ２を超える（図４（ｂ），ＲＳ＝Ｇ）。
【００７１】
図１３及び図１４から明らかなように、上記３）〜８）の条件を判別することにより、それぞれ時刻ｔＤＢ，ｔＤＣ，ｔＤＤ，ｔＤＥ，ｔＤＦ，及びｔＤＧにおいて、始動開始領域ＲＳを判定することができる。上記条件８）の判定は、始動開始位置ＰＳから最大でクランク角度（ＣＡ２＋ＣＡ３）（１４４度）の期間を必要とし、他の条件３）〜７）の判定は、これより短い期間で行うことができる。したがって、本実施形態では、始動開始位置ＰＳからクランク角度（ＣＡ２＋ＣＡ３）以内で、エンジン回転位相ＣＡＣＹＬの判定を完了することができる。
【００７２】
次に図１５〜図１８を参照して、本実施形態におけるエンジン回転位相ＣＡＣＹＬの判定処理を説明する。これらの図に示す処理は、第１の実施形態における図６〜図９の処理に相当する処理である。本実施形態においても、図５に示す初期化処理が実行され、始動開始時におけるカム軸回転信号ＳＣＡＭの値に応じて初期値フラグＣＡＭＰＯＲＴＩＮＩの設定、及び他のパラメータの初期化が行われる。
【００７３】
図１５は、ＣＲＫパルスの発生に同期して実行されるＣＲＫ割り込み処理のフローチャートである。
ステップＳ８１では、クランク角度パラメータＣＲＫＩＮＴＣＮＴを「１」だけ増加させ、ステップＳ８２では、第１判定実行フラグＣＲＫＩＮＴＣＨＫが「１」であるか否かを判別する。第１判定実行フラグＣＲＫＩＮＴＣＨＫは、図１６に示すＣＡＭ割り込み処理で設定されるフラグであり（ステップＳ１０５，Ｓ１０６，Ｓ１１５）、最初はステップＳ８２の答は否定（ＮＯ）であるので、直ちに処理を終了する。
【００７４】
ステップＳ８２の答が肯定（ＹＥＳ）、すなわち第１判定実行フラグＣＲＫＩＮＴＣＨＫが「１」であるときは、カム角度パラメータＣＡＭＩＮＴＣＮＴが「１」であるか否かを判別する（ステップＳ８３）。最初はこの答は否定（ＮＯ）であるので、直ちに処理を終了する。
【００７５】
最初のＣＡＭ割り込み処理が実行され、ステップＳ１０５またはＳ１０６が実行されると、ステップＳ８２及びＳ８３の答がともに肯定（ＹＥＳ）となり、ステップＳ８４に進んで、クランク角度パラメータＣＲＫＩＮＴＣＮＴが第３所定値ｎＣＲＫ３に「１」を加算した値と等しいか否かを判別する。第３所定値ｎＣＲＫ３は、第３所定角度ＣＡ３（４２度）に対応するＣＲＫパルス数であり、本実施形態では「７」である。「１」を加算するのは、誤差を考慮して判定精度を高めるためである。
【００７６】
ステップＳ８４の答が肯定（ＹＥＳ）であるときは、クランク角度判定パラメータＣＲＫＣＮＴＪＵＧの値が「１」であるか否かを判別する（ステップＳ８５）。クランク角度判定パラメータＣＲＫＣＮＴＪＵＧは、最初のＣＡＭ割り込み処理でクランク角度パラメータＣＲＫＩＮＴＣＮＴの値が第３所定値ｎＣＲＫ３より大きいとき「１」に設定され（ステップＳ１０５）、第３所定値ｎＣＲＫ３以下であるとき「２」に設定される（ステップＳ１０６）。
【００７７】
ステップＳ８５の答が否定（ＮＯ）であるときは、直ちにステップＳ９０に進む。一方、クランク角度判定パラメータＣＲＫＣＮＴＪＵＧが「１」であるときは、最初のＣＡＭ割り込み処理におけるクランク角度パラメータＣＲＫＩＮＴＣＮＴの値が、第３所定値ｎＣＲＫ３より大きく、かつ次のＣＡＭ割り込み処理が実行される前に（第２変化タイミングｔＣ２より前に）クランク角度パラメータＣＲＫＩＮＴＣＮＴが第３所定値ｎＣＲＫ３を超えたことを示すので、始動開始領域ＲＳは領域Ｆであると判定し、始動開始領域パラメータＣＹＬＰＡＴＮを、領域Ｆを示す領域Ｆ指示値ＮＰＦに設定する（ステップＳ８６）。ステップＳ８６実行後は、ステップＳ９０に進む。
【００７８】
ステップＳ８４の答が否定（ＮＯ）であるときは、クランク角度パラメータＣＲＫＩＮＴＣＮＴが第２所定値ｎＣＲＫ２に「１」を加算した値と等しいか否かを判別する（ステップＳ８７）。第２所定値ｎＣＲＫ２は、第２所定角度ＣＡ２（１０２度）に対応するＣＲＫパルス数であり、本実施形態では「１７」である。「１」を加算するのは、誤差を考慮して判定精度を高めるためである。
【００７９】
ステップＳ８７の答が肯定（ＹＥＳ）であるときは、クランク角度判定パラメータＣＲＫＣＮＴＪＵＧの値が「２」であるか否かを判別する（ステップＳ８８）。ステップＳ８７またはＳ８８の答が否定（ＮＯ）であるときは直ちにステップＳ９０に進む。ステップ８８の答が肯定（ＹＥＳ）、すなわち最初のＣＡＭ割り込み処理におけるクランク角度パラメータＣＲＫＩＮＴＣＮＴの値が、第３所定値ｎＣＲＫ３以下であり、かつ次のＣＡＭ割り込み処理が実行される前に（第２変化タイミングｔＣ２より前に）クランク角度パラメータＣＲＫＩＮＴＣＮＴが第２所定値ｎＣＲＫ２を超えたことを示すので、始動開始領域ＲＳは領域Ｇであると判定し、始動開始領域パラメータＣＹＬＰＡＴＮを、領域Ｇを示す領域Ｇ指示値ＮＰＧに設定する（ステップＳ８９）。ステップＳ８９実行後は、ステップＳ９０に進む。
ステップＳ９０では、図１７及び図１８に示す位相判定処理を実行する。
【００８０】
図１６は、ＣＡＭ割り込み処理のフローチャートである。
ステップＳ１０１では、カム角度パラメータＣＡＭＩＮＴＣＮＴが「０」であるか否かを判別する。この答が肯定（ＹＥＳ）であるときは、クランク角度パラメータＣＲＫＩＮＣＮＴが第２所定値ｎＣＲＫ２より大きいか否かを判別する（ステップＳ１０２）。この答が肯定（ＹＥＳ）であるときは、始動開始領域ＲＳは領域Ａであると判定し、始動開始領域パラメータＣＹＬＰＡＴＮを、領域Ａを示す領域Ａ指示値ＮＰＡに設定する（ステップＳ１０３）。その後ステップＳ１１６に進む。
【００８１】
ステップＳ１０２の答が否定（ＮＯ）であるときは、クランク角度パラメータＣＲＫＩＮＣＮＴが第３所定値ｎＣＲＫ１より大きいか否かを判別する（ステップＳ１０４）。この答が肯定（ＹＥＳ）、すなわちｎＣＲＫ３＜ＣＲＫＩＮＴＣＮＴ≦（ｎＣＲＫ２−１）であるときは、第１判定実行フラグＣＲＫＩＮＴＣＨＫを「１」に設定するとともに、クランク角度判定パラメータＣＲＫＣＮＴＪＵＧを「１」に設定する（ステップＳ１０５）。その後ステップＳ１１６に進む。
【００８２】
ステップＳ１０４の答が否定（ＮＯ）、すなわちＣＲＫＩＮＴＣＮＴ≦ｎＣＲＫ３であるときは、第１判定実行フラグＣＲＫＩＮＴＣＨＫを「１」に設定するとともに、クランク角度判定パラメータＣＲＫＣＮＴＪＵＧを「２」に設定する（ステップＳ１０６）。その後ステップＳ１１６に進む。
【００８３】
ステップＳ１１６では、カム角度パラメータＣＡＭＩＮＴＣＮＴを「１」だけ増加させるとともに、クランク角度パラメータＣＲＫＩＮＴＣＮＴを「０」に戻す。その後ステップＳ１１７に進み、図１７及び図１８に示す位相判定処を実行する。
【００８４】
ステップＳ１０１の答が否定（ＮＯ）、すなわちカム角度パラメータＣＡＭＩＮＴＣＮＴが「１」以上であるときは、カム角度パラメータＣＡＭＩＮＴＣＮＴが「１」であるか否かを判別する（ステップＳ１０７）。その答が否定（ＮＯ）であるときは、直ちにステップＳ１１６に進む。
【００８５】
ステップＳ１０７の答が肯定（ＹＥＳ）、すなわち始動開始後２回目のＣＡＭ割り込み処理であるときは、クランク角度パラメータＣＲＫＩＮＣＮＴが第１所定値ｎＣＲＫ１から「１」を減算した値以上で、かつ第１所定値ｎＣＲＫ１に「１」を加算した値以下であるか否かを判別する（ステップＳ１０８）。第１所定値ｎＣＲＫ１は、第１所定角度ＣＡ１（１８度）に対応するＣＲＫパルス数であり、本実施形態では「３」である。
【００８６】
ステップＳ１０８の答が肯定（ＹＥＳ）であるときは、始動開始領域ＲＳは領域Ｂであると判定し、始動開始領域パラメータＣＹＬＰＡＴＮを領域Ｂ指示値ＮＰＢに設定する（ステップＳ１０９）。その後ステップＳ１１５に進む。
【００８７】
ステップＳ１０８の答が否定（ＮＯ）であるときは、クランク角度パラメータＣＲＫＩＮＴＣＮＴが第３所定値ｎＣＲＫ３から「１」を減算した値以上で、かつ第３所定値ｎＣＲＫ３に「１」を加算した値以下であるか否かを判別する（ステップＳ１１０）。その答が肯定（ＹＥＳ）であるときは、始動開始領域ＲＳは領域Ｄであると判定し、始動開始領域パラメータＣＹＬＰＡＴＮを領域Ｄ指示値ＮＰＤに設定する（ステップＳ１１１）。その後ステップＳ１１５に進む。
【００８８】
ステップＳ１１０の答が否定（ＮＯ）であるときは、クランク角度パラメータＣＲＫＩＮＴＣＮＴが第４所定値ｎＣＲＫ４から「１」を減算した値以上で、かつ第４所定値ｎＣＲＫ４に「１」を加算した値以下であるか否かを判別する（ステップＳ１１２）。その答が肯定（ＹＥＳ）であるときは、始動開始領域ＲＳは領域Ｅであると判定し、始動開始領域パラメータＣＹＬＰＡＴＮを領域Ｅ指示値ＮＰＥに設定する（ステップＳ１１３）。その後ステップＳ１１５に進む。
【００８９】
ステップＳ１１２の答が否定（ＮＯ）であるときは、クランク角度パラメータＣＲＫＩＮＴＣＮＴが第２所定値ｎＣＲＫ２と等しく、始動開始領域ＲＳは領域Ｃあると判定し、始動開始領域パラメータＣＹＬＰＡＴＮを領域Ｃ指示値ＮＰＣに設定する（ステップＳ１１４）。その後ステップＳ１１５に進む。
【００９０】
ステップＳ１１５では、第１判定実行フラグＣＲＫＩＮＴＣＨＫを「０」に戻し、その後ステップＳ１１６に進む。
【００９１】
図１７及び図１８は、図１５のステップＳ９０及び図１６のステップＳ１１７で実行される位相判定処理のフローチャートである。
ステップＳ１３１では、始動開始領域パラメータＣＹＬＰＡＴＮの値が領域Ａ指示値ＮＰＡであるか否かを判別し、その答が肯定（ＹＥＳ）であるときは、初期値フラグＣＡＭＰＯＲＴＩＮＩが「１」であるか否かを判別する（ステップＳ１３２）。その答が肯定（ＹＥＳ）であるときは、エンジン回転位相ＣＡＣＹＬが１２０度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「２０」に設定する（図１２参照）（ステップＳ１３３）。一方、ステップＳ１３２の答が否定（ＮＯ）であるときは、エンジン回転位相ＣＡＣＹＬが４８０度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「８０」に設定する（ステップＳ１３４）。
【００９２】
ステップＳ１３１の答が否定（ＮＯ）であるときは、始動開始領域パラメータＣＹＬＰＡＴＮの値が領域Ｂ指示値ＮＰＢであるか否かを判別し（ステップＳ１３５）、その答が肯定（ＹＥＳ）であるときは、初期値フラグＣＡＭＰＯＲＴＩＮＩが「１」であるか否かを判別する（ステップＳ１３６）。その答が肯定（ＹＥＳ）であるときは、エンジン回転位相ＣＡＣＹＬが１３８度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「２３」に設定する（ステップＳ１３７）。一方、ステップＳ１３６の答が否定（ＮＯ）であるときは、エンジン回転位相ＣＡＣＹＬが４６８度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「８３」に設定する（ステップＳ１３８）。
【００９３】
ステップＳ１３５の答が否定（ＮＯ）であるときは、始動開始領域パラメータＣＹＬＰＡＴＮの値が領域Ｃ指示値ＮＰＣであるか否かを判別し（ステップＳ１３９）、その答が肯定（ＹＥＳ）であるときは、初期値フラグＣＡＭＰＯＲＴＩＮＩが「１」であるか否かを判別する（ステップＳ１４０）。その答が肯定（ＹＥＳ）であるときは、エンジン回転位相ＣＡＣＹＬが６００度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「１００」に設定する（ステップＳ１４１）。一方、ステップＳ１４０の答が否定（ＮＯ）であるときは、エンジン回転位相ＣＡＣＹＬが２４０度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「４０」に設定する（ステップＳ１４２）。
【００９４】
ステップＳ１３９の答が否定（ＮＯ）であるときは、始動開始領域パラメータＣＹＬＰＡＴＮの値が領域Ｄ示値ＮＰＤであるか否かを判別し（ステップＳ１４３）、その答が肯定（ＹＥＳ）であるときは、初期値フラグＣＡＭＰＯＲＴＩＮＩが「１」であるか否かを判別する（ステップＳ１４４）。その答が肯定（ＹＥＳ）であるときは、エンジン回転位相ＣＡＣＹＬが２８２度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「４７」に設定する（ステップＳ１４５）。一方、ステップＳ１４４の答が否定（ＮＯ）であるときは、エンジン回転位相ＣＡＣＹＬが６４２度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「１０７」に設定する（ステップＳ１４６）。
【００９５】
ステップＳ１４３の答が否定（ＮＯ）であるときは、始動開始領域パラメータＣＹＬＰＡＴＮの値が領域Ｅ指示値ＮＰＥであるか否かを判別し（ステップＳ１４７）、その答が肯定（ＹＥＳ）であるときは、初期値フラグＣＡＭＰＯＲＴＩＮＩが「１」であるか否かを判別する（ステップＳ１４８）。その答が肯定（ＹＥＳ）であるときは、エンジン回転位相ＣＡＣＹＬが０度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「０」に設定する（ステップＳ１４９）。一方、ステップＳ１４８の答が否定（ＮＯ）であるときは、エンジン回転位相ＣＡＣＹＬが３６０度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「６０」に設定する（ステップＳ１５０）。
【００９６】
ステップＳ１４７の答が否定（ＮＯ）であるときは、始動開始領域パラメータＣＹＬＰＡＴＮの値が領域Ｆ指示値ＮＰＦであるか否かを判別し（ステップＳ１５１）、その答が肯定（ＹＥＳ）であるときは、初期値フラグＣＡＭＰＯＲＴＩＮＩが「１」であるか否かを判別する（ステップＳ１５２）。その答が肯定（ＹＥＳ）であるときは、エンジン回転位相ＣＡＣＹＬが４０８度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「６８」に設定する（ステップＳ１５３）。一方、ステップＳ１５２の答が否定（ＮＯ）であるときは、エンジン回転位相ＣＡＣＹＬが４８度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「８」に設定する（ステップＳ１５４）。ステップＳ１５３及びＳ１５４における回転位相カウント値ＣＲＫＣＮＴの設定は、図１５のステップＳ８４における「＋１」が考慮されている。
【００９７】
ステップＳ１５１の答が否定（ＮＯ）であるときは、始動開始領域パラメータＣＹＬＰＡＴＮの値が領域Ｇ指示値ＮＰＧであるか否かを判別し（ステップＳ１５５）、その答が肯定（ＹＥＳ）であるときは、初期値フラグＣＡＭＰＯＲＴＩＮＩが「１」であるか否かを判別する（ステップＳ１５６）。その答が肯定（ＹＥＳ）であるときは、エンジン回転位相ＣＡＣＹＬが４６８度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「７８」に設定する（ステップＳ１５７）。一方、ステップＳ１５６の答が否定（ＮＯ）であるときは、エンジン回転位相ＣＡＣＹＬが１０８度であると判定し、回転位相カウント値ＣＲＫＣＮＴを「１８」に設定する（ステップＳ１５８）。ステップＳ１５７及びＳ１５８における回転位相カウント値ＣＲＫＣＮＴの設定は、図１５のステップＳ８７における「＋１」が考慮されている。ステップＳ１５５の答が否定（ＮＯ）であるときは直ちに処理を終了する。
【００９８】
以上のように本実施形態において、カム角度センサ１１は、カム軸回転信号ＳＣＡＭが、基準角度位置ＰＲＥＦからクランク角度３６０度の第１角度期間（Ｔ１〜Ｔ５）に対応する第１角度期間二値信号と、第１角度期間（Ｔ１〜Ｔ５）に続くクランク角度３６０度の第２角度期間（Ｔ６〜Ｔ１０）に対応する第２角度期間二値信号とからなり、第２角度期間二値信号は、第１角度期間二値信号を反転させた信号となるように構成されているので、イグニッションスイッチがオンされた時点におけるカム軸回転信号ＳＣＡＭの値を示す初期値フラグＣＡＭＰＯＲＴＩＮＩによって、始動開始位置ＰＳが含まれる始動開始領域ＲＳが、第１角度期間（Ｔ１〜Ｔ５）または第２角度期間（Ｔ６〜Ｔ１０）のいずれにあるかを判定することができる（第１判定結果）。また始動開始後のカム軸回転信号ＳＣＡＭ、及び検出クランク角度を示すクランク角度パラメータＣＲＫＩＮＴＣＮＴとに基づいて、始動開始領域ＲＳが第１または第２角度期間に含まれるより狭い領域Ａ〜Ｇのいずれであるかを判定することができる（第２判定結果）。第１判定結果及び第２判定結果を用いることにより、始動開始位置ＰＳからクランク角度１４４度の期間内において、エンジン回転位相ＣＡＣＹＬを正確に判定することができる。
【００９９】
より具体的には、第１角度期間二値信号は、カム軸回転信号ＳＣＡＭが基準角度位置ＰＲＥＦからクランク角度１２０度に相当する第１期間Ｔ１において高レベルＨをとり、第１期間Ｔ１に続く、第１所定角度ＣＡ１に相当する第２期間Ｔ２において低レベルＬをとり、第２期間Ｔ２に続く、第２所定角度ＣＡ２に相当する第３期間Ｔ３において高レベルＨをとり、第３期間Ｔ３に続く第３所定角度ＣＡ３に相当する第４期間Ｔ４において低レベルＬをとり、第４期間Ｔ４に続く、第４所定角度ＣＡ４に相当する第５期間Ｔ５において高レベルＨをとるように構成され、第１〜第４所定角度ＣＡ１〜ＣＡ４は、それぞれ１８度、１０２度、４２度、及び７８度に設定される。この設定により、クランク角度センサ１０に、基準となる角度位置を特定するための構成を設けることなく、迅速かつ正確な位相判定が可能となる。
【０１００】
またカム軸回転信号ＳＣＡＭが始動開始後最初に変化した第１変化タイミングｔＣ１における、第１判定角度ＣＡＤ１が第２所定角度ＣＡ２以上であるときは、始動開始領域ＲＳが領域Ａであると判定できる（図１３（ａ），ＲＳ＝Ａ）ので、直ちにエンジン回転位相ＣＡＣＹＬを特定することができる（ｔＤＡ＝ｔＣ１）。一方、第１判定角度ＣＡＤ１が第２所定角度ＣＡ２より小さいときは、始動開始領域ＲＳを直ちに判定できないため、第１判定角度ＣＡＤ１を基準とした第２判定角度ＣＡＤ２を用いることにより、以下のようにエンジン回転位相ＣＡＣＹＬを特定することができる。
【０１０１】
すなわち、第２判定角度ＣＡＤ２が第１所定角度ＣＡ１を超える前にカム軸回転信号ＳＣＡＭが変化したときは（図１３（ａ），ｔＣ２）、第２変化タイミングｔＣ２における第２判定角度ＣＡＤ２が第１所定角度ＣＡ１にほぼ等しく、始動開始領域ＲＳが領域Ｂであると判定できるので（図１３（ａ），ＲＳ＝Ｂ）、その時点ｔＤＢ（＝ｔＣ２）でエンジン回転位相ＣＡＣＹＬを特定することができ、第２判定角度ＣＡＤ２が第１所定角度ＣＡ１を超えた後であって第３所定角度ＣＡ３を超える前にカム軸回転信号ＳＣＡＭが変化したときは、第２変化タイミングｔＣ２における第２判定角度ＣＡＤ２が第３所定角度ＣＡ３にほぼ等しく、始動開始領域ＲＳが領域Ｄであると判定できるので（図１３（ｃ））、その時点ｔＤＤでエンジン回転位相ＣＡＣＹＬを特定することができ、第２判定角度ＣＡＤ２が第３所定角度ＣＡ３を超えた後であって第４所定角度ＣＡ４を超える前にカム軸回転信号ＳＣＡＭが変化したときは、第２変化タイミングｔＣ２における第２判定角度ＣＡＤ２が第４所定角度ＣＡ４にほぼ等しく、始動開始領域ＲＳが領域Ｅであると判定できるので（図１４（ａ））、その時点ｔＤＥでエンジン回転位相ＣＡＣＹＬを特定することができ、第２判定角度ＣＡＤが第４所定角度ＣＡ４を超えた後であって第２所定角度ＣＡ２を超える前にカム軸回転信号ＳＣＡＭが変化したときは、第２変化タイミングｔＣ２における第２判定角度ＣＡＤ２が第２所定角度ＣＡ２にほぼ等しく、始動開始領域ＲＳが領域Ｃであると判定できるので（図１３（ｂ））、その時点ｔＤＣでエンジン回転位相ＣＡＣＹＬを特定することができる。
【０１０２】
また第１判定角度ＣＡＤ１が第３所定角度ＣＡ３より大きく、かつカム軸回転信号ＳＣＡＭが変化する前に（第２変化タイミングｔＣ２より前に）第２判定角度ＣＡＤ２が第３所定角度ＣＡ３を超えたときは、始動開始領域ＲＳが領域Ｆであると判定できるので（図１４（ｂ），ＲＳ＝Ｆ）、その時点ｔＤＦでエンジン回転位相ＣＡＣＹＬを特定することができ、第１判定角度ＣＡＤ１が第３所定角度ＣＡ３以下で、かつカム軸回転信号ＳＣＡＭが変化する前に第２判定角度ＣＡＤ２が第２所定角度ＣＡ２を超えたときは、始動開始領域ＲＳが領域Ｇであると判定できるので（図１４（ｂ），ＲＳ＝Ｇ）、その時点ｔＤＧでエンジン回転位相ＣＡＣＹＬを特定することができる。
本実施形態では、図１５〜図１８の処理が回転位相判定手段に相当する。
【０１０３】
なお、６気筒エンジンにおいても、図１０（ｂ）に示すようにパルスの欠けがあるＣＲＫパルス列を出力するクランク角度センサを使用してもよい。
【０１０４】
またカム軸回転信号ＳＣＡＭは、図１１（ａ）に示すもの（ＣＡ１＜ＣＡ３）に代えて、図１１（ｂ）に示すように第１所定角度ＣＡ１及び第３所定角度ＣＡ３がともに６０度未満であって、ＣＡ１＞ＣＡ３を満たすように構成されたものを使用してもよい。
【０１０５】
なお、本発明は上述した実施形態に限るものではなく、種々の変形が可能である。例えば、上述した実施形態では、６度周期のＣＲＫパルスを出力するクランク角度センサを使用したが、これに限るものではなく、クランク軸８の回転角度を検出可能なものであればどのようなセンサでも使用することができる。
【０１０６】
また上述した実施形態では、カム軸回転信号ＳＣＡＭの「第１の値」を高レベルＨとし、「第２の値」を低レベルＬとしたが、逆に「第１の値」を低レベルＬとし、「第２の値」を高レベルＨとしてもよい。
【０１０７】
また本発明は、クランク軸を鉛直方向とした船外機などのような船舶推進機用エンジンなどの制御にも適用が可能である。
【符号の説明】
【０１０８】
１  内燃機関
５  電子制御ユニット（回転位相判定手段）
１０  クランク角度センサ
１１  カム角度センサ
【図１】
0005458201.tif 000002
【図２】
0005458201.tif 000003
【図３】
0005458201.tif 000004
【図４】
0005458201.tif 000005
【図５】
0005458201.tif 000006
【図６】
0005458201.tif 000007
【図７】
0005458201.tif 000008
【図８】
0005458201.tif 000009
【図９】
0005458201.tif 000010
【図１０】
0005458201.tif 000011
【図１１】
0005458201.tif 000012
【図１２】
0005458201.tif 000013
【図１３】
0005458201.tif 000014
【図１４】
0005458201.tif 000015
【図１５】
0005458201.tif 000016
【図１６】
0005458201.tif 000017
【図１７】
0005458201.tif 000018
【図１８】
0005458201.tif 000019