(57)【要約】【課題】  内燃機関（エンジン）の停止時にエンジンの回転位置を検出して、エンジンの始動直後からその制御を速やかに開始する。【解決手段】  電動式の可変バルブタイミング装置（以下ＶＶＴという）を備えたエンジンにおいて、そのＶＶＴを介して回転するカムを備えたカム軸に、カムの回転位置に応じて変化する検出信号を発生するカム角センサを設ける。そして、イグニッションスイッチがオンされてからエンジンが始動されるまでの間に、まずＶＶＴを介してカムをカム軸上で所定の角度だけ進角させてから元の位置に戻し、更に所定の角度だけ遅角させてから元の位置に戻し、進角及び遅角させた際にカム角センサから出力される検出信号を取得する（Ｓ１１０〜Ｓ１４０）。そして、この取得した検出信号の変化波形に基づいてエンジンの回転位置を検出する（Ｓ１５０）。【選択図】  図９
2005330932.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関のカム軸に対するカムの取り付け角度を調整することにより、該カムにて開閉される吸気バルブ若しくは排気バルブの開閉タイミングを調節する電動式の可変バルブタイミング装置、を備えた内燃機関において、当該内燃機関の制御タイミングを決定するのに必要な内燃機関の回転位置を検出する回転位置検出装置であって、
前記カムの回転位置に応じて変化する検出信号を発生するカム角センサと、
前記内燃機関の停止時に、前記可変バルブタイミング装置を介して前記カムを前記カム軸上で回転させると共に、該カムの回転に伴い前記カム角センサから出力される検出信号を取得する検出信号取得手段と、
該検出信号取得手段が取得した検出信号の変化波形に基づき、内燃機関の回転位置を検出する回転位置検出手段と、
を備えたことを特徴とする内燃機関の回転位置検出装置。
【請求項２】
前記内燃機関は、前記可変バルブタイミング装置が設けられたカム軸を複数備え、
前記カム角センサは、前記可変バルブタイミング装置が設けられたカム軸毎に、カムの回転に対する検出信号の変化パターンが互いに異なるようにそれぞれ設けられ、
前記検出信号取得手段は、前記可変バルブタイミング装置を介して前記各カム軸毎にカムを回転させると共に、前記各カム軸に設けられた各カム角センサから出力される検出信号を取得し、
前記回転位置検出手段は、該検出信号取得手段が前記各カム軸のカム角センサから取得した検出信号の変化波形に基づき、内燃機関の回転位置を検出することを特徴とする請求項１に記載の内燃機関の回転位置検出装置。
【請求項３】
前記検出信号取得手段は、前記内燃機関のイグニッションスイッチがオンされたときに、前記可変バルブタイミング装置を介して前記カムを回転させて、前記カム角センサから検出信号を取得することを特徴とする請求項１又は請求項２に記載の内燃機関の回転位置検出装置。
【請求項４】
前記検出信号取得手段は、前記内燃機関の始動用の鍵がキーシリンダに挿入されたときに、前記可変バルブタイミング装置を介して前記カムを回転させて、前記カム角センサから検出信号を取得することを特徴とする請求項１又は請求項２に記載の内燃機関の回転位置検出装置。
【請求項５】
前記内燃機関は、動力源として車両に搭載された車載用内燃機関であり、
前記検出信号取得手段は、前記内燃機関が搭載された車両のドアが、施錠状態から解錠されたときに、前記可変バルブタイミング装置を介して前記カムを回転させて、前記カム角センサから検出信号を取得することを特徴とする請求項１又は請求項２に記載の内燃機関の回転位置検出装置。
【請求項６】
前記検出信号取得手段は、前記内燃機関の運転が停止されたときに、前記可変バルブタイミング装置を介して前記カムを回転させて、前記カム角センサから検出信号を取得することを特徴とする請求項１又は請求項２に記載の内燃機関の回転位置検出装置。
【請求項７】
前記回転位置検出手段は、該検出信号取得手段が取得した検出信号の変化波形に基づき内燃機関の回転位置を検出すると、その後、内燃機関が始動されるまでの間、該回転位置の検出結果を保持する保持手段を備えたことを特徴とする請求項６に記載の内燃機関の回転位置検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の制御タイミングを決定するのに必要な内燃機関の回転位置を検出する回転位置検出装置に関するものである。
【背景技術】
【０００２】
従来より、内燃機関の制御タイミングを決定するのに必要な内燃機関の回転位置を検出するための回転位置検出装置として、例えば、内燃機関のクランク軸の回転に応じてクランク軸回転信号（一般にＮＥ信号とも呼ばれる）を出力するクランク角センサと、クランク軸の回転に対し１／２の比率で回転する内燃機関のカム軸の回転に応じてカム軸回転信号（一般にＧ信号とも呼ばれる）を出力するカム角センサとを備え、これら各センサから出力されるクランク軸回転信号及びカム軸回転信号に基づいて内燃機関の回転位置を検出するものが知られている（例えば、特許文献１参照）。
【０００３】
この装置において、クランク角センサは、クランク軸回転信号として、クランク軸の１回転（３６０°ＣＡ）に１回だけ基準位置を示す欠歯信号を出力するように構成され、カム角センサは、カム軸回転信号として、カム軸が１／２回転（３６０°ＣＡ）する毎にハイレベルとローレベルとに変化する信号を出力するように構成されている。
【０００４】
そして、この装置では、クランク角センサから欠歯信号が出力されたときに、カム軸回転信号の出力レベルがハイレベルであるかローレベルであるかによって、内燃機関の回転位置が全体の７２０°ＣＡのうちのどこの位置にあるかを検出する。尚、「°ＣＡ」はクランクアングル（クランク角度）を示している。
【０００５】
また、この他にも、カム軸の回転に応じて出力レベルが変化する２つのカム角センサを利用して、内燃機関の回転位置を検出するものも知られている（例えば、特許文献２）。
【特許文献１】特開２００１−９０６００号公報
【特許文献２】特開２００３−３９０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、従来の装置は、何れも内燃機関の回転に伴うクランク軸やカム軸の回転を検出し、その検出結果に基づいて内燃機関の回転位置を検出するものであるため、何れも内燃機関の始動後しか回転位置を検出することはできなかった。このため、内燃機関が始動されてから回転位置を検出するまでの間は、内燃機関の制御を開始することができず、その制御開始が遅れてしまうという問題が生じる。
【０００７】
本発明は、上記問題を解決するためになされたものであり、内燃機関の停止時に内燃機関の回転位置を検出して、内燃機関の始動直後からその制御を速やかに開始できるようにすることを目的としている。
【課題を解決するための手段】
【０００８】
上記目的を達成するためになされた請求項１に記載の内燃機関の回転位置検出装置は、電動式の可変バルブタイミング装置を備えた内燃機関の制御タイミングを決定するのに必要な内燃機関の回転位置を検出するものであり、内燃機関のカム軸に取り付けられたカムの回転位置に応じて変化する検出信号を発生するカム角センサを備えている。
【０００９】
そして、内燃機関の停止時に、検出信号取得手段が、可変バルブタイミング装置を介してカムをカム軸上で回転させると共に、このカムの回転に伴いカム角センサから出力される検出信号を取得し、回転位置検出手段が、この検出信号の変化波形に基づき、内燃機関の回転位置を検出する。
【００１０】
つまり、請求項１の回転位置検出装置では、内燃機関が始動される前（動作を停止している時）にその回転位置を検出するために、可変バルブタイミング装置を利用することで内燃機関の停止時にカムを動かし、この時にカム角センサから出力される検出信号に基づいて内燃機関の回転位置を検出する。
【００１１】
このため、請求項１の回転位置検出装置によれば、内燃機関の動作開始前（停止時）に、内燃機関の回転位置を検出することができる。つまり、従来装置よりも早く内燃機関の初期状態における回転位置を検出することができ、その結果、内燃機関の始動直後から速やかに内燃機関の制御を開始できる。
【００１２】
また、請求項１の回転位置検出装置において、内燃機関が可変バルブタイミング装置を設けたカム軸を複数備えている場合には、請求項２に記載の如く、カムの回転に対する検出信号の変化パターンが互いに異なるカム角センサを、可変バルブタイミング装置が設けられたカム軸毎に夫々設けるようにしても良い。
【００１３】
そして、このようにカム角センサを設けた場合、検出信号取得手段は、可変バルブタイミング装置を介して各カム軸上でカムを回転させると共に、各カム軸に設けられた各カム角センサから出力される検出信号を取得するように構成し、回転位置検出手段は、検出信号取得手段が各カム軸のカム角センサから取得した検出信号の変化波形に基づき、内燃機関の回転位置を検出するように構成すれば良い。
【００１４】
以上のような請求項２の回転位置検出装置によれば、複数のカム角センサから出力される検出信号の変化波形を組み合わせることで内燃機関の回転位置を検出することができるため、１つのカム角センサから出力される検出信号の変化波形だけで内燃機関の回転位置を検出する場合に比べて、カム角センサの構造（変化波形）を簡単にすることができる。また、内燃機関の回転位置を複数の変化波形の組み合わせによって検出するため、カムをカム軸上で１回転させることなく、内燃機関の回転位置を検出することができるようになり、内燃機関の回転位置の検出に要する時間を短くすることができる。
【００１５】
ところで、本発明の回転位置検出装置による内燃機関の回転位置の検出タイミング、つまり、検出信号取得手段の動作開始タイミングは、内燃機関の停止時であればいつでも良いが、例えば、請求項３に記載の如く、内燃機関のイグニッションスイッチがオンされたときや、請求項４に記載の如く、内燃機関の始動用の鍵がキーシリンダに挿入されたときにすると良い。
【００１６】
即ち、内燃機関のイグニッションスイッチがオンされたときや内燃機関の始動用の鍵がキーシリンダに挿入されたときは、その後、内燃機関が始動されることが普通であるから、内燃機関のイグニッションスイッチがオンされたときや内燃機関の始動用の鍵がキーシリンダに挿入されたときを、検出信号取得手段の動作開始タイミングにすれば、内燃機関の始動直前に内燃機関の回転位置を検出することができるようになる。
【００１７】
また、内燃機関が動力源として車両に搭載された車載用内燃機関である場合、検出信号取得手段の動作開始タイミングは、請求項５に記載の如く、内燃機関が搭載された車両のドアが、施錠状態から解錠されたときにしても良い。
【００１８】
即ち、車両のドアが施錠状態から解錠されたときは、その後、運転手が乗り込んで内燃機関を始動することが普通であるから、車両のドアが解錠されたときを、検出信号取得手段の動作開始タイミングにすれば、内燃機関の始動前に内燃機関の回転位置を検出することができるようになる。
【００１９】
また更に、検出信号取得手段の動作開始タイミングは、請求項６に記載の如く、内燃機関の運転が停止されたときにしても良い。
但し、請求項６の回転位置検出装置では、内燃機関の回転位置を検出した後、次に内燃機関が始動されるまでの間に当該装置への電源電圧の供給が遮断されてしまうと、回転位置の検出結果を消失してしまうことがある。
【００２０】
そこで、こうした問題を防止するには、請求項７に記載の如く、回転位置検出手段を、検出信号取得手段が取得した検出信号の変化波形に基づき内燃機関の回転位置を検出すると、その後、内燃機関が始動されるまでの間、保持手段にこの回転位置の検出結果を保持するように構成すると良い。つまり、回転位置検出手段をこのように構成すれば、内燃機関の回転位置を検出した後、次に内燃機関が始動されるまでの間に検出結果が消えてしまうことを防止することができる。
【発明を実施するための最良の形態】
【００２１】
以下に、本発明が適用された実施形態を図面に基づいて説明する。尚、図１は、本発明が適用された実施形態の内燃機関（以下、エンジンという）１及びその周辺装置を表す概略構成図である。
【００２２】
図１に示すように、エンジン１は、Ｖ型６気筒の４サイクルエンジンであり、６つの気筒＃１〜＃６のうち、第１気筒＃１，第３気筒＃３，及び第５気筒＃５を有したバンクＡと、第２気筒＃２，第４気筒＃４，及び第６気筒＃６を有したバンクＢと、を備えている。また、各気筒＃１〜＃６には、吸気バルブ，排気バルブ，及び点火プラグ（以上、図示省略）がそれぞれ備えられている。尚、吸気バルブは、混合気（即ち、燃料が混ざった空気）を各気筒＃１〜＃６に吸入するための入口を開閉するものであり、排気バルブは、各気筒＃１〜＃６の点火プラグにより着火された混合気の燃焼ガスをその気筒＃１〜＃６から排出するための出口を開閉するものである。
【００２３】
そして、バンクＡには、第１，第３，第５気筒＃１，＃３，＃５の吸気バルブを開閉するカム３Ａを備えた吸気側カム軸５Ａと、第１，第３，第５気筒＃１，＃３，＃５の排気バルブを開閉するカム７Ａを備えた排気側カム軸９Ａとが設けられている。また、バンクＢにも、第２，第４，第６気筒＃２，＃４，＃６の吸気バルブを開閉するカム３Ｂを備えた吸気側カム軸５Ｂと、第２，第４，第６気筒＃２，＃４，＃６の排気弁を開閉させるカム７Ｂを備えた排気側カム軸９Ｂとが設けられている。尚、吸気側カム軸５Ａ，５Ｂ及び排気側カム軸９Ａ，９Ｂは、エンジン１のクランク軸１１の回転に対し１／２の比率（つまり、クランク軸１１の２回転に１回転の割合）で回転する。
【００２４】
そして、各吸気側カム軸５Ａ，５Ｂには、電動モータによって動作する電動式の可変バルブタイミング装置（以下、ＶＶＴという）１３Ａ，１３Ｂがそれぞれ設けられている。
ＶＶＴ１３Ａ，１３Ｂは、カム３Ａ，３Ｂの取り付け角度を調節することで、吸気バルブの開閉タイミングを、エンジン制御用の電子制御ユニット（以下、ＥＣＵという）１５からの制御信号に応じて制御するためのものであるが、これら各ＶＶＴ１３Ａ，１３Ｂについては、従来より実用化されており、周知であるため、詳細な構成については説明を省略する。
【００２５】
また、バンクＡの吸気側カム軸５Ａ側及びバンクＢの吸気側カム軸５Ｂ側には、吸気側カム軸５Ａ，５Ｂの回転位置に応じて変化する検出信号を出力するカム角センサ１７Ａ，１７Ｂがそれぞれ取り付けられている。
【００２６】
ここで、カム角センサ１７Ａ，１７Ｂは、それぞれ、吸気側カム軸５Ａ，５Ｂに固定されたロータ１８と、そのロータ１８の外周に対向して設けられ、ロータ１８の外周に形成された歯１９による凹凸に応じて、出力が変化する検出信号を発生する磁気抵抗素子（ＭＲＥ）式の信号発生部２０とからなる。
【００２７】
そして、ロータ１８の外周に形成された歯１９は、図２の如く、その外周の形状が図２におけるＰの地点から時計回り方向の順に「３０°分：凸→９０°分：凹→６０°分：凸→６０°分：凹→９０°分：凸→３０°分：凹」となるように形成されている。
【００２８】
また、吸気側カム軸５Ａ，５Ｂ、カム３Ａ，３Ｂ、及びロータ１８は、エンジン１が動作している際には、図２における反時計回り方向に回転する。
また更に、バンクＡ側のロータ１８は、バンクＢ側のロータ１８よりも６０°（換言すると、１２０°ＣＡ）遅角された状態で吸気側カム軸５Ａに固定されている。
【００２９】
尚、図２は、カム角センサ１７Ａ，１７Ｂ（詳しくは、ロータ１８）の構成を説明する説明図であり、図２に示す一点鎖線は、ロータ１８を３０°（６０°ＣＡ）毎に分割した仮想直線である。
【００３０】
次に、エンジン１を制御するＥＣＵ１５について、図３を用い説明する。
ＥＣＵ１５は、ＣＰＵ，ＲＡＭ，ＲＯＭ等からなるマイクロコンピュータ（以下、マイコン）１５ａを中心に構成されており、電源回路２１から供給される電源電圧（例えば、５［Ｖ］）によって動作する。尚、電源回路２１は、イグニッションスイッチ（以下、ＩＧスイッチという）２３がオンされたときにハイレベルとなるＩＧ信号が入力されると、電源電圧を生成して、その電源電圧をＥＣＵ１５に供給する。つまり、ＥＣＵ１５（マイコン１５ａ）は、ＩＧスイッチ２３がオンされたときに起動する。
【００３１】
そして、マイコン１５ａには、カム角センサ１７Ａ，１７Ｂからの検出信号や、クランク角センサ２５からのクランク軸回転信号（以下、ＮＥ信号という）が入力される。尚、クランク角センサ２５は、ＮＥ信号として、クランク軸１１が１０°ＣＡ回転する毎にパルス信号を出力すると共に、クランク軸１１の１回転に１回だけ基準位置を示す欠歯信号を出力する。
【００３２】
また、ＥＣＵ１５には、マイコン１５ａとは別に信号処理回路が内蔵されており、その信号処理回路は、ＮＥ信号に基づき、クランク軸１１が３０°ＣＡ回転する度にパルス状の信号（３０°ＣＡ信号）を生成して、マイコン１５ａに出力する。
【００３３】
また、マイコン１５ａには、エンジン１を始動させるためのスタータスイッチ２７がオンされた時にハイレベルとなるスタータ信号や、スロットルバルブが全閉の時にオンされる図示しないアイドルスイッチからの信号など、エンジン１の運転状態を示す各種スイッチ信号が入力されると共に、吸入空気量を検出するエアフロメータ２９，スロットル操作量を検出するスロットルセンサ３１，及び冷却水温を検出する水温センサ３３などの各種センサからの信号が、ＥＣＵ１５内のＡ／Ｄ変換器を介して入力される。
【００３４】
また、マイコン１５ａには、図４の如く３０°ＣＡ信号の出力タイミング毎に、７２０°ＣＡ分に相当する｛０〜２３｝まで１ずつカウントアップすると共に、その値が｛２３｝になると｛０｝に初期化するカウンタが備えられている。尚、図４における▽印は、各気筒＃１〜＃６の上死点＃１ＴＤＣ〜＃６ＴＤＣとなる位置を示している。例えば、カウント値が｛０〜２３｝のうちの｛２３｝から｛０｝に初期化された時に、第１気筒＃１のピストンが上死点＃１ＴＤＣに達する。
【００３５】
そして、マイコン１５ａは、始動直後にカム角センサ１７Ａ，１７Ｂを利用して、エンジン１の制御タイミングを決定するのに必要なエンジン１の回転位置を検出し、その検出した値をカウンタに初期設定することによって、エンジン１の始動直後（初期状態）における回転位置を、カウンタを用いて検出する。
【００３６】
更に、マイコン１５ａは、カウンタのカウント値(エンジン１の回転位置)と、３０°ＣＡ信号，上記各種スイッチ信号，及び上記各種センサからの信号とに基づいて、エンジン１の最適な点火時期や燃料噴射時期及び噴射量等を演算し、その演算結果に基づき、各気筒＃１〜＃６の燃料噴射弁４１〜４６を駆動したり、イグナイタ５０を駆動して所定の気筒＃１〜＃６の点火コイル５１〜５６に通電したり、或いは、ＶＶＴ１３を駆動したりする。
【００３７】
次に、マイコン１５ａの動作の中で、本発明に係る主要な動作であるエンジン１の始動直後における回転位置を検出する動作について、詳しく説明する。
マイコン１５ａは、ＩＧスイッチ２３がオンされることで起動すると、まずＶＶＴ１３Ａ，１３Ｂを介してロータ１８（詳しくは、ロータ１８及びカム３Ａ，３Ｂ）を、現在位置から進角側及び遅角側へ９０°ＣＡずつ回転させる。このとき、マイコン１５ａは、１０°ＣＡのステップ間隔で回転させると共に、その都度カム角センサ１７Ａ，１７Ｂから検出信号を取得する。
【００３８】
更に、マイコン１５ａは、その取得した検出信号の値から、カム角センサ１７Ａ，１７Ｂの変化波形が凹（谷）から凸（山）若しくは凸から凹に変化したかを判断し、その判断結果に基づいて図５〜図８に示す第１〜第６の回転位置データマップからカウンタのカウント値を１つ特定することによって、エンジン１の始動直後における回転位置を検出する。
【００３９】
第１〜第６の回転位置データマップは、マイコン１５ａがカム角センサ１７Ａ，１７Ｂから取得した検出信号の出力状態の変化に基づきカウント値を特定する際に用いられるものであり、マイコン１５ａのＲＯＭに記憶されている。尚、第１〜第３の回転位置データマップは、マイコン１５ａがカム角センサ１７Ａの検出信号からカウント値を特定する際に用いられるものであり、第４〜第６の回転位置データマップは、マイコン１５ａがカム角センサ１７Ｂの検出信号からカウント値を特定する際に用いられるものである。
【００４０】
具体的に説明すると、第１の回転位置データマップ（図５参照）は、ロータ１８を進角させた際にカム角センサ１７Ａの変化波形が何回目で谷から山もしくは山から谷に変化したかを表す値Ｓｙａｍａ，Ｓｔａｎｉをパラメータとして、カウント値を｛１１｝又は｛１３｝であると特定するか、或いはそれ以外の値を候補値として挙げるために用いられるものである。
【００４１】
また、第２の回転位置データマップ（図６（ａ）参照）は、第１の回転位置データマップを検索することによって得られた候補値と、ロータ１８を遅角させた際にカム角センサ１７Ａの変化波形が何回目で谷から山に変化したかを表す値Ｃｙａｍａとをパラメータとして、カウント値を｛３，４，１２，１４，１７，１８，１９，２０｝のうちの何れかに特定するか、或いはそれ以外の値を候補値として挙げるために用いられるものである。
【００４２】
また、第３の回転位置データマップ（図６（ｂ）参照）は、第１の回転位置データマップを検索することによって得られた候補値と、ロータ１８を遅角させた際にカム角センサ１７Ａの変化波形が何回目で山から谷に変化したかを表す値Ｃｔａｎｉとをパラメータとして、カウント値を｛０，１，７，９，１０，１４，１５，２３｝のうちの何れかに特定するか、或いはそれ以外の値を候補値として挙げるために用いられるものである。
【００４３】
一方、第４の回転位置データマップ（図７参照）は、ロータ１８を進角させた際にカム角センサ１７Ｂの変化波形が何回目で谷から山もしくは山から谷に変化したかを表す値Ｓｙａｍａ，Ｓｔａｎｉをパラメータとして、カウント値を｛７｝又は｛９｝であると特定するか、或いはそれ以外の値を候補値として挙げるために用いられるものである。
【００４４】
また、第５の回転位置データマップ（図８（ａ）参照）は、第４の回転位置データマップを検索することによって得られた候補値と、ロータ１８を遅角させた際にカム角センサ１７Ｂの変化波形が何回目で谷から山に変化したかを表す値Ｃｙａｍａとをパラメータとして、カウント値を｛０，８，１０，１３，１４，１５，１６，２３｝のうちの何れかに特定するか、或いはそれ以外の値を候補値として挙げるために用いられるものである。
【００４５】
また、第６の回転位置データマップ（図８（ｂ）参照）は、第４の回転位置データマップを検索することによって得られた候補値と、ロータ１８を遅角させた際にカム角センサ１７Ｂの変化波形が何回目で山から谷に変化したかを表す値Ｃｔａｎｉとをパラメータとして、カウント値を｛３，５，６，１０，１１，１９，２０，２１｝のうちの何れかに特定するか、或いはそれ以外の値を候補値として挙げるために用いられるものである。
【００４６】
尚、図５〜図８に示した各回転位置データマップにおいて、Ｓｙａｍａ，Ｓｔａｎｉ，Ｃｙａｍａ，及びＣｔａｎｉの値が０となっている部分は、ロータ１８を９０°ＣＡ進角又は遅角させた範囲内でカム角センサ１７Ａ，１７Ｂの変化波形が変化していないことを表す。また、図５〜図８における−印は、マイコン１５ａがカウント値を特定することも候補値を挙げることもできないことを示す。また更に、図６における＊印は、マイコン１５ａが第１の回転位置データマップからカウント値を特定できたことを示し、図８における＊印は、マイコン１５ａが第４の回転位置データマップからカウント値を特定できたことを示している。
【００４７】
次に、ＥＣＵ１５内のマイコン１５ａがエンジン１の始動直後における回転位置を検出するために実行する回転位置検出処理について、図９を用いて説明する。
まず、図９は、ＩＧスイッチ２３がオンされて電源回路２１から電源電圧が供給されることによりマイコン１５ａ（即ち、ＥＣＵ１５）が動作を開始した時に実行される回転位置検出処理を表すフローチャートである。
【００４８】
そして、マイコン１５ａが図９の回転位置検出処理の実行を開始すると、まず、ステップ１１０（以下、ステップをＳと記載する）にて、ＶＶＴ１３Ａ，１３Ｂを駆動することにより各ロータ１８を１０°ＣＡ毎に９回（即ち９０°ＣＡ）進角させ、その進角動作毎に各カム角センサ１７Ａ，１７Ｂから検出信号を取得して、その検出信号の出力状態の変化を検出する、進角側カム波形スキャン処理（図１０参照）を行う。
【００４９】
次いで、Ｓ１２０にて、進角された状態にある各ロータ１８を進角させる前の位置に戻す。つまり、Ｓ１２０では、ＶＶＴ１３Ａ，１３Ｂを介して各ロータ１８を９０°ＣＡ遅角させる。
【００５０】
そして、Ｓ１３０にて、ＶＶＴ１３Ａ，１３Ｂを介して各ロータ１８を１０°ＣＡ毎に９回遅角させ、その遅角動作毎に各カム角センサ１７Ａ，１７Ｂから検出信号を取得して、その検出信号の出力状態の変化を検出する、遅角側カム波形スキャン処理（図１１参照）を行う。
【００５１】
続いて、Ｓ１４０にて、遅角された状態にある各ロータ１８を遅角させる前の位置に戻す。つまり、Ｓ１４０では、ＶＶＴ１３Ａ，１３Ｂを介して各ロータ１８を９０°ＣＡ進角させる。
【００５２】
そして、Ｓ１５０にて、Ｓ１１０の進角側カム波形スキャン処理及びＳ１３０の遅角側カム波形スキャン処理の検出結果に基づいてエンジン１の回転位置を特定する、回転位置特定処理（図１２参照）を行い、当該回転位置検出処理を終了する。
【００５３】
次に、進角側カム波形スキャン処理，遅角側カム波形スキャン処理，及び回転位置特定処理について、詳しく説明する。尚、進角側カム波形スキャン処理は、マイコン１５ａが始動したときに実行される処理であり、遅角側カム波形スキャン処理は、図９のＳ１２０の処理が終了したときに実行される処理であり、回転位置特定処理は、図９のＳ１４０の処理が終了したときに実行される処理である。
【００５４】
まず、進角側カム波形スキャン処理について、図１０を用い説明する。尚、進角側カム波形スキャン処理は、バンクＡ側及びバンクＢ側についてマイコン１５ａが並列して行う処理であるため、この進角側カム波形スキャン処理の説明では、バンクＡ側について説明する。
【００５５】
マイコン１５ａが進角側カム波形スキャン処理を開始すると、図１０に示すように、まずＳ２１０にて、カム角センサ１７Ａから検出信号を取得し、その値を参考値ｖｖｔ０として、ＲＡＭに記憶する。
【００５６】
そして、Ｓ２２０にて、ＶＶＴ１３Ａを介してロータ１８（詳しくは、ロータ１８及びカム３Ａ）を吸気側カム軸５Ａ，５Ｂ上で進角又は遅角させる回数を示す１０°ＣＡ回転値ｉを、ＲＡＭに記憶する。尚、Ｓ２２０では、１０°ＣＡ回転値ｉの初期値として「１」が記憶される。
【００５７】
そして、Ｓ２３０にて、Ｓｙａｍａ及びＳｔａｎｉを「０」としてＲＡＭに記憶する。
次いで、Ｓ２４０にて、ＶＶＴ１３Ａを介してロータ１８を１０°ＣＡだけ進角させ、続くＳ２５０にて、検出信号を取得し、その検出信号の値を現在値ｖｖｔｎとして、ＲＡＭに記憶する。
【００５８】
そして、Ｓ２６０にて、現在値ｖｖｔｎ及び参考値ｖｖｔ０を読み出し、現在値ｖｖｔｎから参考値ｖｖｔ０を引いた差が、第１の所定値ｖｖｔａよりも大きいか否かを判定する。尚、第１の所定値ｖｖｔａは、正の数であり、マイコン１５ａのＲＯＭに記憶されている。
【００５９】
そして、Ｓ２６０にて、現在値ｖｖｔｎから参考値ｖｖｔ０を引いた差が第１の所定値ｖｖｔａよりも大きいと判定した場合には（Ｓ２６０：ＹＥＳ）、カム角センサ１７Ａの変化波形が谷から山に変化したと判断してＳ２７０に移行し、Ｓ２７０では、Ｓｙａｍａを、現在記憶されている値から１０°ＣＡ回転値ｉの値に変更する（書き換える）。
【００６０】
一方、Ｓ２６０にて、現在値ｖｖｔｎから参考値ｖｖｔ０を引いた差が第１の所定値ｖｖｔａよりも大きくないと判定した場合には（Ｓ２６０：ＮＯ）、Ｓ２９０に移行し、上記差が第２の所定値ｖｖｔｂよりも小さいか否かを判定する。尚、第２の所定値ｖｖｔｂは、負の数であり、マイコン１５ａのＲＯＭに記憶されている。
【００６１】
そして、Ｓ２９０にて、上記差が第２の所定値ｖｖｔｂよりも小さいと判定した場合には（Ｓ２９０：ＹＥＳ）、山から谷に変化したと判断してＳ３００に移行し、Ｓｔａｎｉを１０°ＣＡ回転値ｉの値に変更して、Ｓ２８０に進む。また、Ｓ２９０にて、上記差が第２の所定値ｖｖｔｂよりも小さくないと判定した場合には（Ｓ２９０：ＮＯ）、今回谷が検出されなかったと判断して、Ｓ２８０に進む。
【００６２】
そして、Ｓ２８０では、参考値ｖｖｔ０を、現在値ｖｖｔｎの値に変更し、続くＳ３１０にて、１０°ＣＡ回転値ｉの値に「１」を加えて、Ｓ３２０に移行する。
そして、Ｓ３２０にて、ロータ１８を吸気側カム軸５Ａ上で合計９０°ＣＡ進角させたか否かを判定し、合計９０°ＣＡ進角させていないと判定した場合には（Ｓ３２０：ＮＯ）、Ｓ２４０に戻り、合計９０°ＣＡ進角させたと判定した場合には（Ｓ３２０：ＹＥＳ）、当該進角側カムスキャン処理を終了する。
【００６３】
次に、遅角側カムスキャン処理について、図１１を用い説明する。尚、遅角側カム波形スキャン処理も、進角側カム波形スキャン処理と同様に、バンクＡ側及びバンクＢ側についてマイコン１５ａが並列して行う処理であるため、この遅角側カム波形スキャン処理の説明でも、バンクＡ側について説明する。
【００６４】
マイコン１５ａが遅角側カム波形スキャン処理を開始すると、図１１に示すように、まずＳ４１０にて、カム角センサ１７Ａから検出信号を取得し、参考値ｖｖｔ０を、その取得した検出信号の値に変更する。
【００６５】
そして、Ｓ４２０にて、１０°ＣＡ回転値ｉの値を「１」に変更する。
そして、Ｓ４３０にて、Ｃｙａｍａ及びＣｔａｎｉを「０」としてＲＡＭに記憶する。
次いで、Ｓ４４０にて、ＶＶＴ１３Ａを介してロータ１８を吸気側カム軸５Ａ上で１０°ＣＡだけ遅角させ、続くＳ４５０にて、検出信号を取得し、現在値ｖｖｔｎを、今回取得した検出信号の値に変更する。
【００６６】
そして、Ｓ４６０にて、現在値ｖｖｔｎ及び参考値ｖｖｔ０を読み出し、現在値ｖｖｔｎから参考値ｖｖｔ０を引いた差が、第１の所定値ｖｖｔａよりも大きいか否かを判定する。
【００６７】
そして、Ｓ４６０にて、現在値ｖｖｔｎから参考値ｖｖｔ０を引いた差が第１の所定値ｖｖｔａよりも大きいと判定した場合には（Ｓ４６０：ＹＥＳ）、谷から山に変化したと判断してＳ４７０に移行し、Ｓ４７０では、Ｃｙａｍａを、１０°ＣＡ回転値ｉの値に変更して、Ｓ４８０に進む。
【００６８】
一方、Ｓ４６０にて、現在値ｖｖｔｎから参考値ｖｖｔ０を引いた差が第１の所定値ｖｖｔａよりも大きくないと判定した場合には（Ｓ４６０：ＮＯ）、Ｓ４９０に移行し、上記差が第２の所定値ｖｖｔｂよりも小さいか否かを判定する。そして、Ｓ４９０にて、上記差が第２の所定値ｖｖｔｂよりも小さいと判定した場合には（Ｓ４９０）、山から谷に変化したと判断してＳ５００に移行し、Ｃｔａｎｉを１０°ＣＡ回転値ｉの値に変更して、Ｓ４８０に進む。また、Ｓ４９０にて、上記差が第２の所定値ｖｖｔｂよりも小さくないと判定した場合には（Ｓ４９０：ＮＯ）、今回山から谷に変化しなかったと判断して、Ｓ４８０に進む。
【００６９】
そして、Ｓ４８０では、参考値ｖｖｔ０を、現在値ｖｖｔｎの値に変更し、続くＳ５１０にて、１０°ＣＡ回転値ｉの値に「１」を加えて、Ｓ５２０に移行する。
そして、Ｓ５２０では、ロータ１８を吸気側カム軸５Ａ上で合計９０°ＣＡ遅角させたか否かを判定し、合計９０°ＣＡ遅角させていないと判定した場合には（Ｓ５２０：ＮＯ）、Ｓ４４０に戻り、合計９０°ＣＡ進角させたと判定した場合には（Ｓ５２０：ＹＥＳ）、当該遅角側カムスキャン処理を終了する。
【００７０】
次に、回転位置特定処理について、図１２を用い説明する。
マイコン１５ａが回転位置特定処理を開始すると、図１２に示すように、まずＳ６１０にて、バンクＡのＳｙａｍａ及びＳｔａｎｉを読み出し、その値をパラメータとして第１の回転位置データマップを検索し、その検索結果の値ｃｒｎｋ１ＡをＲＡＭに記憶する。
【００７１】
そして、Ｓ６２０にて、ｃｒｎｋ１Ａの値が１つであるか否かを判定し、ｃｒｎｋ１Ａの値が１つであると判定した場合には（Ｓ６２０：ＹＥＳ）、エンジン１の始動直後の回転位置（即ち、カウンタのカウント値）がそのｃｒｎｋ１Ａの値を示す位置にあると判断し、その値をＲＡＭに記憶して当該回転位置特定処理を終了する。一方、ｃｒｎｋ１Ａの値が１つでない（２つ以上である）と判定した場合には（Ｓ６２０：ＮＯ）、Ｓ６３０に進む。
【００７２】
続いて、Ｓ６３０にて、ｃｒｎｋ１Ａ及びバンクＡのＣｙａｍａを読み出し、その値をパラメータとして第２の回転位置データマップを検索し、その検索結果の値ｃｒｎｋ２ＡをＲＡＭに記憶する。
【００７３】
そして、Ｓ６４０にて、ｃｒｎｋ２Ａの値が１つであるか否かを判定し、ｃｒｎｋ２Ａの値が１つであると判定した場合には（Ｓ６４０：ＹＥＳ）、エンジン１の回転位置がそのｃｒｎｋ２Ａの値を示す位置にあると判断し、その値をＲＡＭに記憶して当該回転位置特定処理を終了する。一方、ｃｒｎｋ２Ａの値が１つでないと判定した場合には（Ｓ６４０：ＮＯ）、Ｓ６５０に進む。
【００７４】
続いて、Ｓ６５０にて、ｃｒｎｋ２Ａの値及びバンクＡのＣｔａｎｉの値を読み出し、その値をパラメータとして第３の回転位置データマップを検索し、その検索結果の値ｃｒｎｋ３ＡをＲＡＭに記憶する。
【００７５】
そして、Ｓ６６０にて、ｃｒｎｋ３Ａの値が１つであるか否かを判定し、ｃｒｎｋ３Ａの値が１つであると判定した場合には（Ｓ６６０：ＹＥＳ）、エンジン１の回転位置がそのｃｒｎｋ３Ａの値を示す位置にあると判断し、その値をＲＡＭに記憶して当該回転位置特定処理を終了する。一方、ｃｒｎｋ３Ａの値が１つでないと判定した場合には（Ｓ６６０：ＮＯ）、Ｓ６７０に進む。
【００７６】
即ち、Ｓ６５０では、ｃｒｎｋ１ＡとバンクＡのＣｔａｎｉとではなく、ｃｒｎｋ２ＡとバンクＡのＣｔａｎｉとをパラメータとして、第３の回転位置データマップを検索するため、ｃｒｎｋ３Ａの値が｛０，１，２，７，８，９，１０，１５，１６，２３｝のうちの何れかである場合については、Ｓ６６０にてエンジン１の回転位置を検出することができ、それ以外の値（具体的には｛５，２３｝又は｛６，２２｝）である場合については、Ｓ６６０にて回転位置を検出することができないため、Ｓ６７０に進むこととなる。
【００７７】
そして、Ｓ６７０にて、バンクＢのＳｙａｍａ，Ｓｔａｎｉ，Ｃｙａｍａ，及びＣｔａｎｉに基づき、上述したＳ６１０〜Ｓ６６０の処理と同じ処理を実施し、検索結果の値が１つになったときに、その値を示す位置がエンジン１の回転位置であると判断して、当該回転位置特定処理を終了する。
【００７８】
即ち、Ｓ６７０では、バンクＢのＳｙａｍａ及びＳｔａｎｉをパラメータとして第４の回転位置データマップから検索した結果の値ｃｒｎｋ１Ｂを、ＲＡＭに記憶し、ｃｒｎｋ１Ｂの値及びバンクＢのＣｙａｍａをパラメータとして第５の回転位置データマップから検索した結果の値ｃｒｎｋ２Ｂを、ＲＡＭに記憶し、ｃｒｎｋ５Ｂの値及びバンクＢのＣｔａｎｉをパラメータにして第６の回転位置データマップから検索した結果の値ｃｒｎｋ３Ｂを、ＲＡＭに記憶するが、このうち、例えば、ｃｒｎｋ１Ｂの値が１つだった場合には、その後の検索を行わずに当該処理を終了することとなる。
【００７９】
尚、上述の回転位置検出処理によりエンジン１の回転位置として検出された値は、マイコン１５ａがエンジン１の始動制御を実行したとき（即ち、スタータスイッチがオンされたとき）に、ＲＡＭから読み出され、その値がカウンタのカウント値の初期値となる。また、エンジン始動後の回転位置の検出においては、例えば周知の技術と同様に、マイコン１５ａが検出信号，ＮＥ信号，及び３０°ＣＡ信号に基づいて検出するため、詳細な説明は省略する。
【００８０】
以上のように構成されたＥＣＵ１５では、例えば、エンジン１の回転位置が図４のＡの地点にあるときに起動すると、マイコン１５ａが、まずＶＶＴ１３Ａ，１３Ｂを介してロータ１８及びカム３Ａ，３Ｂを吸気側カム軸上で９０°ＣＡ進角させる。次いで、ロータ１８及びカム３Ａ，３Ｂを元の位置に戻してから、９０°ＣＡ遅角させて、再び元の位置に戻す。このとき、バンクＡのＳｙａｍａ，Ｃｙａｍａ，及びＣｔａｎｉが「０」となり、バンクＡのＳｔａｎｉが「１」となると共に、バンクＢのＳｔａｎｉ，Ｃｙａｍａ，及びＣｔａｎｉが「０」となり、バンクＢのＳｙａｍａが「１」となる。
【００８１】
そして更に、マイコン１５ａは、バンクＡのＳｙａｍａ及びＳｔａｎｉから第１の回転位置データマップを検索し、その検索結果であるｃｒｎｋ１Ａの値｛１，１５｝を候補値として記憶することとなる。ここで、ｃｒｎｋ１Ａの値が１つではないため、マイコン１５ａは、ｃｒｎｋ１Ａの値とバンクＡのＣｙａｍａとから第２の回転位置データマップを検索して、その検索結果の値ｃｒｎｋ２Ａを記憶する。
【００８２】
この場合でも、ｃｒｎｋ２Ａの値｛１，１５｝が２つとなるため、マイコン１５ａは、ｃｒｎｋ２Ａの値とバンクＡのＣｔａｎｉとから第３の回転位置データマップを検索して、その検索結果の値ｃｒｎｋ３Ａを記憶する。
【００８３】
すると、ｃｒｎｋ３Ａの値｛１｝が１つとなるので、マイコン１５ａは、エンジン１の回転位置（カウンタのカウント値）が、ｃｒｎｋ３Ａの値である｛１｝を示す位置にあると判断することとなる。その後、マイコン１５ａがエンジン１の制御を開始すると、カウンタは、カウント値を１からカウントアップしていくこととなる。
【００８４】
以上説明したように本実施形態では、ＩＧスイッチ２３がオンされることによりＥＣＵ１５（マイコン１５ａ）が起動すると、マイコン１５ａは、エンジン１の制御を開始するまでの間に、ＶＶＴ１３Ａ，１３Ｂを介してロータ１８を回転させることで検出信号を取得し、その検出信号の変化波形に基づきエンジン１の回転位置を検出する。
【００８５】
このため、本実施形態によれば、エンジン１の動作開始前（停止時）に、エンジン１の回転位置を検出することができる。つまり、従来装置よりも早くエンジン１の始動直後（初期状態）における回転位置を検出することができ、その結果、エンジン１の始動直後から速やかに制御を開始できる。
【００８６】
また、本ＥＣＵ１５では、２つのカム角センサ１７Ａ，１７Ｂから出力される検出信号の変化波形を組み合わせることでエンジン１の回転位置を検出することができるため、１つのカム角センサ１７Ａから出力される検出信号の変化波形だけでエンジン１の回転位置を検出する場合に比べて、カム角センサ１７Ａ，１７Ｂのロータ１８の構造を簡単にすることができる。
【００８７】
また、エンジン１の回転位置を検出するために実行される進角側カム波形スキャン処理及び遅角側カム波形スキャン処理でロータ１８及びカム３Ａ，３Ｂを回転させる際の回転角度の範囲を、小さく設定することができる。
【００８８】
一例を挙げて説明すると、エンジン１の回転位置が図４のＢの地点又はＣの地点にあるときに、マイコン１５ａが１つのカム角センサ１７Ａからの検出信号だけを用いて回転位置を検出した場合、このときのｃｒｎｋ３Ａの値｛５，２１｝が２つとなるため、マイコン１５ａは、エンジン１の回転位置を検出することができない。この場合、マイコン１５ａがエンジン１の回転位置を検出することができるようにするには、ロータ１８の歯の形状を複雑なものにするか、ＶＶＴ１３Ａを介してロータ１８を回転させる角度を大きくしなければならない。
【００８９】
これに対して、本実施形態では、２つのカム角センサ１７Ａ，１７Ｂからの検出信号を用いて回転位置を検出しているので、上述の如く、１つのカム角センサ１７Ａを用いる場合よりも、ロータ１８の構造を簡単にすることができたり、或いは、進角側カム波形スキャン処理及び遅角側カム波形スキャン処理でロータ１８を回転させる際の回転角度の範囲を小さく設定できたりするのである。
【００９０】
尚、本実施形態では、進角側カム波形スキャン処理及び遅角側カム波形スキャン処理が検出信号取得手段に相当し、回転位置特定処理が回転位置検出手段に相当している。
以上、本発明の一実施形態について説明したが、本発明は、種々の形態を採り得ることは言うまでもない。
【００９１】
本実施形態では、ＩＧスイッチ２３がオンされるとＥＣＵ１５（詳しくは、マイコン１５ａ）が起動して回転位置検出処理を実行していたが、これに限らず、エンジン１が停止しているときであれば、マイコン１５ａは、いつ回転位置検出処理を実行しても良い。
【００９２】
例えば、エンジン１の始動用の鍵がキーシリンダに挿入されたときに、マイコン１５ａが起動するようにしても良い。この場合、キーシリンダに上記鍵が挿入されたときに、電源回路２１が電源電圧を生成して、その電源電圧をＥＣＵ１５に供給ようにすれば良い。
【００９３】
また、エンジン１が停止した時に、マイコン１５ａが回転位置検出処理を実行するようにしても良い。
そして、この場合、マイコン１５ａは、回転位置検出処理を終了した後、次にエンジン1が始動されるまでの間に当該マイコン１５ａへの電源電圧の供給が遮断されてしまうと、回転位置の検出結果を消失してしまうことがあるため、ＥＣＵ１５に不揮発性のメモリ（例えば、ＥＥＰＲＯＭやフラッシュＲＯＭ）を設け、マイコン１５ａを、回転位置検出処理を終了したらその検出結果を上記メモリに記憶し、次回マイコン１５ａが起動してエンジン制御を行うときに、メモリから検出結果を読み出すように構成すれば良い。尚、この場合、不揮発性のメモリが保持手段に相当する。
【００９４】
また更に、エンジン１が動力源として車両に搭載された車載用エンジンである場合には、エンジン１が搭載された車両のドアが、施錠状態から解錠されたときに、マイコン１５ａが回転位置検出処理に実行するようにしても良い。この場合、上記ドアが施錠状態から解錠されたときに、電源回路２１が電源電圧を生成してその電源電圧をＥＣＵ１に供給するようにすれば良い。
【００９５】
また、本実施形態では、第１〜第３の回転位置データマップを用いてエンジン１の回転位置を検出する際に、第１→第２→第３の順で回転位置を検索していたが（Ｓ６１０〜Ｓ６６０）、第１→第３→第２の順で検索するようにしても良い。
【００９６】
このようにしても、本実施形態と同様の結果を得ることができる。
【図面の簡単な説明】
【００９７】
【図１】実施形態のエンジン及びその周辺装置を表す概略図である。
【図２】同実施形態のカム角センサの構成を説明する説明図である。
【図３】同実施形態のＥＣＵを説明する説明図である。
【図４】エンジンの回転位置とロータの形状との関係を説明する説明図である。
【図５】第１の回転位置データマップを説明する説明図である。
【図６】第２の回転位置データマップ及び第３の回転位置データマップを説明する説明図である。
【図７】第４の回転位置データマップを説明する説明図である。
【図８】第５の回転位置データマップ及び第６の回転位置データマップを説明する説明図である。
【図９】エンジンの始動直後における回転位置を検出する回転位置検出処理を表すフローチャートである。
【図１０】回転位置検出処理のＳ１１０にて実行される進角側カム波形スキャン処理を表すフローチャートである。
【図１１】回転位置検出処理のＳ１３０にて実行される遅角側カム波形スキャン処理を表すフローチャートである。
【図１２】回転位置検出処理のＳ１５０にて実行される回転位置特定処理を表すフローチャートである。
【符号の説明】
【００９８】
１…エンジン、３Ａ，３Ｂ，７Ａ，７Ｂ…カム、５Ａ，５Ｂ…吸気側カム軸、９Ａ，９Ｂ…排気側カム軸、１１…クランク軸、１３Ａ，１３Ｂ…ＶＶＴ、１５…ＥＣＵ、１５ａ…マイコン、１７Ａ，１７Ｂ…カム角センサ、１８…ロータ、１９…歯、２０…信号発生部、２１…電源回路、２３…ＩＧスイッチ、２５…クランク角センサ、＃１〜＃６…第１〜第６気筒
【図１】
2005330932.tif 000003
【図２】
2005330932.tif 000004
【図３】
2005330932.tif 000005
【図４】
2005330932.tif 000006
【図５】
2005330932.tif 000007
【図６】
2005330932.tif 000008
【図７】
2005330932.tif 000009
【図８】
2005330932.tif 000010
【図９】
2005330932.tif 000011
【図１０】
2005330932.tif 000012
【図１１】
2005330932.tif 000013
【図１２】
2005330932.tif 000014