(57)【要約】【課題】検出したクランクの位置に基づいてエンジンを短時間で精度良く制御できる制御装置及び制御方法を提供する。【解決手段】  クランク軸に設けたロータと、ロータの回転方向へ第１の所定のクランク角度毎に設けた第１歯と、クランク軸の回転に伴う第１歯の通過を検出する第１検出部と、第１の所定のクランク角度より大きい角度毎に設けた第２歯と、第２歯の通過を検出する第２検出部とを備えるエンジンを制御し、第１検出部と第２検出部からの検出信号の取得タイミングに基づいて判定する第１歯と欠歯と第２歯の相対関係を記憶部に保存する処理と、保存した判定結果とエンジンを再始動する際における第１検出部からの信号に基づいて第１歯の位置を判別すると共に、判別した位置に基づいてエンジン制御を行う処理とを実行する制御部を備える。これによれば短時間で精度良くエンジンを制御できる。【選択図】図７
2009281336.tif 000002
【特許請求の範囲】
【請求項１】
クランク軸に設けられたロータと、ロータの回転方向へ第１の所定のクランク角度毎に設けられた第１歯と、特定のクランク角度には第１歯が欠けている欠歯と、第１歯と対向するように設けられ、クランク軸の回転に伴う第１歯の通過を検出する第１検出部と、ロータの回転方向へ第１の所定のクランク角度より大きい角度毎に設けられた第２歯と、第２歯と対向するように設けられ、クランク軸の回転に伴う第２歯の通過を検出する第２検出部とを備えるエンジンを制御する制御装置であって、
制御に関連する情報を記憶する記憶部と、
第１検出部と第２検出部からの信号に基づき判別する第１歯と欠歯と第２歯の検出タイミングに基づいて、第１歯と欠歯と第２歯の相対関係を判定するとともに判定結果を記憶部に記憶する相対関係判定処理と、
エンジンを始動する際に、相対関係判定処理において記憶部に記憶した判定結果に基づき、クランク軸が１回転するまでの間に第１検出部からの信号に基づき判別する第１歯のクランク角度を判別して、エンジン制御を行うエンジン制御処理とを実行する制御部を備えた制御装置。
【請求項２】
クランク軸に設けられたロータと、ロータの回転方向へ第１の所定のクランク角度毎に設けられた第１歯と、特定のクランク角度において第１歯が欠けている欠歯と、第１歯と対向するように設けられ、クランク軸の回転に伴う第１歯の通過を検出する第１検出部と、ロータの回転方向へ第１の所定のクランク角度よりも大きい角度毎に設けられた第２歯と、第２歯と対向するように設けられ、クランク軸の回転に伴う第２歯の通過を検出する第２検出部とを備えるエンジンを制御する制御装置であって、
制御に関する情報を記憶する記憶部と、
第１検出部からの信号に基づき判別する第１歯と欠歯の検出タイミングと、第２検出部からの信号に基づき判別する第２歯の検出タイミングに基づいて、第１歯が、欠歯が属する第２歯の検出区間に属するか、欠歯が属する検出区間に基づいて設定した順序において何番目の検出区間に属するかを判定する検出区間判定処理と、
エンジン停止に伴ってクランク軸が停止する際の、第１検出部からの信号に基づき判別する第１歯が何番目の検出区間に属するかを検出区間判定処理に基づいて判定し、判定結果を記憶部に記憶する停止区間判定処理と、
エンジンを始動する際に、停止検出区間判定処理において記憶部に記憶した判定結果に基づき、第１検出部からの信号に基づき判別する第１歯が何番目の検出区間に属するかを判定するとともに、次の検出区間から第１歯のクランク角度を判定して、エンジン制御を行うエンジン制御処理とを実行する制御部
を備えた制御装置。
【請求項３】
クランク軸に設けられたロータと、ロータの回転方向へ第１の所定のクランク角度毎に設けられた第１歯と、特定のクランク角度には第１歯が欠けている欠歯と、第１歯と対向するように設けられ、クランク軸の回転に伴う第１歯の通過を検出する第１検出部と、ロータの回転方向へ第１の所定のクランク角度より大きい角度毎に設けられた第２歯と、第２歯と対向するように設けられ、クランク軸の回転に伴う第２歯の通過を検出する第２検出部とを備えるエンジンを制御する制御方法であって、
第１検出部と第２検出部からの信号に基づき判別する第１歯と欠歯と第２歯の検出タイミングに基づいて、第１歯と欠歯と第２歯の相対関係を判定するとともに判定結果を記憶部に記憶する相対関係判定ステップと、
エンジンを始動する際に、相対関係判定ステップにおいて記憶部に記憶した判定結果に基づき、クランク軸が１回転するまでの間に第１検出部からの信号に基づき判別する第１歯のクランク角度を判別して、エンジン制御を行うエンジン制御ステップとを実行する制御方法。
【請求項４】
クランク軸に設けられたロータと、ロータの回転方向へ第１の所定のクランク角度毎に設けられた第１歯と、特定のクランク角度において第１歯が欠けている欠歯と、第１歯と対向するように設けられ、クランク軸の回転に伴う第１歯の通過を検出する第１検出部と、ロータの回転方向へ第１の所定のクランク角度よりも大きい角度毎に設けられた第２歯と、第２歯と対向するように設けられ、クランク軸の回転に伴う第２歯の通過を検出する第２検出部とを備えるエンジンを制御する制御方法であって、
第１検出部からの信号に基づき判別する第１歯と欠歯の検出タイミングと、第２検出部からの信号に基づき判別する第２歯の検出タイミングに基づいて、第１歯が、欠歯が属する第２歯の検出区間に属するか、欠歯が属する検出区間に基づいて設定した順序において何番目の検出区間に属するかを判定する検出区間判定ステップと、
エンジン停止に伴ってクランク軸が停止する際の、第１検出部からの信号に基づき判別する第１歯が何番目の検出区間に属するかを検出区間判定ステップに基づいて判定し、判定結果を記憶部に記憶する停止区間判定ステップと、
エンジンを始動する際に、停止検出区間判定ステップにおいて記憶部に記憶した判定結果に基づき、第１検出部からの信号に基づき判別する第１歯が何番目の検出区間に属するかを判定するとともに、次の検出区間から第１歯のクランク角度を判定して、エンジン制御を行うエンジン制御ステップとを実行する制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジン始動の際におけるロータの回転位置に基づいてエンジンを制御する制御装置及び制御方法に関する。
【背景技術】
【０００２】
従来より、乗用車等の車両に搭載されるエンジンは、例えば、燃費の効率に優れた車両の運転を実現するため、制御装置であるＥＣＵ（Electronic Control Unit）によって動作制御が行われている。また、例えば、車両が排出する二酸化炭素及び排気ガスの量を削減する目的でエンジンのアイドリングを停止するために、ＥＣＵによってエンジンの停止及び始動が制御されている。このＥＣＵは、エンジンの状態を表す情報として、エンジンの回転数、エンジンを構成するクランクの角度及び回転方向を表す情報を用いてエンジンの動作を制御している。
【０００３】
よって、ＥＣＵがエンジンの動作制御を行うために用いる情報であるクランクの回転方向及び回転角度を検出できる回転角検出装置が知られるに至った（例えば、特許文献１）。
【０００４】
この回転角検出装置は、図１に示すように、回転方向に対して等間隔に複数の歯を有するロータ１０と、ロータ１０の回転軸と同軸に設置されたクランク軸１０ｚと、ロータ１０が有する歯と対向する位置に配置された磁石、及び磁石とロータの歯との間に発生する磁界の変化により抵抗値が変化する磁気抵抗素子を有するセンサ２０とを備える。このセンサ２０は、クランク軸１０ｚ及びロータ１０の回転に伴ってロータの歯が通過することで生じる磁界の変化に基づいて、出力する電気信号を変化させる。つまり、この装置はセンサ２０が出力する信号に基づいて、ロータ１０の回転方向を検出することを特徴としている。
【０００５】
また、ロータ１０は歯を欠く部分（つまり、欠歯部分）を有するため、この回転角検出装置は、センサ２０が出力する電気信号の出力周期に基づいて欠歯の通過を判断すると共に、検出した欠歯のロータ１０における位置を用いてロータ１０の回転角度を検出している。
【０００６】
【特許文献１】特開２００６−３８７７３号公報
【特許文献２】特開平６−９３９１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、特許文献１に記載の回転角検出装置では、エンジン停止の際においてロータに発生することがある逆方向の回転を十分に検出できないため、ロータの停止位置を精度良く検出できない。よって、エンジンを再始動しようとする場合に、ロータの停止位置に基づいてエンジンを精度良く制御できないという問題があった。
【０００８】
また、上記の装置は、欠歯がセンサ２０を通過するまでロータ１０の位置を検出できないため、特に、エンジンの回転数が低い始動開始の際において、ロータ１０の位置を検出するために要する時間が長く、いわゆるスムーズなエンジンの始動ができないという問題があった。
【０００９】
本発明は、上記問題に鑑みて成されたものであり、その目的とするところは、短時間で精度良くロータの位置を検出できると共に、検出したロータの位置に基づいて短時間で精度良くエンジンを制御できる制御装置及び制御方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明に係る制御装置は、クランク軸に設けられたロータと、ロータの回転方向へ第１の所定のクランク角度毎に設けられた第１歯と、特定のクランク角度には第１歯が欠けている欠歯と、第１歯と対向するように設けられ、クランク軸の回転に伴う第１歯の通過を検出する第１検出部と、ロータの回転方向へ第１の所定のクランク角度より大きい角度毎に設けられた第２歯と、第２歯と対向するように設けられ、クランク軸の回転に伴う第２歯の通過を検出する第２検出部とを備えるエンジンを制御する制御装置であって、制御に関連する情報を記憶する記憶部と、第１検出部と第２検出部からの信号に基づき判別する第１歯と欠歯と第２歯の検出タイミングに基づいて、第１歯と欠歯と第２歯の相対関係を判定するとともに判定結果を記憶部に記憶する相対関係判定処理と、エンジンを始動する際に、相対関係判定処理において記憶部に記憶した判定結果に基づき、クランク軸が１回転するまでの間に第１検出部からの信号に基づき判別する第１歯のクランク角度を判別して、エンジン制御を行うエンジン制御処理とを実行する制御部を備えたことを特徴としている。
【００１１】
本発明に係る制御装置は、クランク軸に設けられたロータと、ロータの回転方向へ第１の所定のクランク角度毎に設けられた第１歯と、特定のクランク角度において第１歯が欠けている欠歯と、第１歯と対向するように設けられ、クランク軸の回転に伴う第１歯の通過を検出する第１検出部と、ロータの回転方向へ第１の所定のクランク角度よりも大きい角度毎に設けられた第２歯と、第２歯と対向するように設けられ、クランク軸の回転に伴う第２歯の通過を検出する第２検出部とを備えるエンジンを制御する制御装置であって、制御に関する情報を記憶する記憶部と、第１検出部からの信号に基づき判別する第１歯と欠歯の検出タイミングと、第２検出部からの信号に基づき判別する第２歯の検出タイミングに基づいて、第１歯が、欠歯が属する第２歯の検出区間に属するか、欠歯が属する検出区間に基づいて設定した順序において何番目の検出区間に属するかを判定する検出区間判定処理と、エンジン停止に伴ってクランク軸が停止する際の、第１検出部からの信号に基づき判別する第１歯が何番目の検出区間に属するかを検出区間判定処理に基づいて判定し、判定結果を記憶部に記憶する停止区間判定処理と、エンジンを始動する際に、停止検出区間判定処理において記憶部に記憶した判定結果に基づき、第１検出部からの信号に基づき判別する第１歯が何番目の検出区間に属するかを判定するとともに、次の検出区間から第１歯のクランク角度を判定して、エンジン制御を行うエンジン制御処理とを実行する制御部を備えたことを特徴としている。
【００１２】
本発明に係る制御方法は、クランク軸に設けられたロータと、ロータの回転方向へ第１の所定のクランク角度毎に設けられた第１歯と、特定のクランク角度には第１歯が欠けている欠歯と、第１歯と対向するように設けられ、クランク軸の回転に伴う第１歯の通過を検出する第１検出部と、ロータの回転方向へ第１の所定のクランク角度より大きい角度毎に設けられた第２歯と、第２歯と対向するように設けられ、クランク軸の回転に伴う第２歯の通過を検出する第２検出部とを備えるエンジンを制御する制御方法であって、第１検出部と第２検出部からの信号に基づき判別する第１歯と欠歯と第２歯の検出タイミングに基づいて、第１歯と欠歯と第２歯の相対関係を判定するとともに判定結果を記憶部に記憶する相対関係判定ステップと、エンジンを始動する際に、相対関係判定ステップにおいて記憶部に記憶した判定結果に基づき、クランク軸が１回転するまでの間に第１検出部からの信号に基づき判別する第１歯のクランク角度を判別して、エンジン制御を行うエンジン制御ステップとを実行することを特徴としている。
【００１３】
本発明に係る制御方法は、クランク軸に設けられたロータと、ロータの回転方向へ第１の所定のクランク角度毎に設けられた第１歯と、特定のクランク角度において第１歯が欠けている欠歯と、第１歯と対向するように設けられ、クランク軸の回転に伴う第１歯の通過を検出する第１検出部と、ロータの回転方向へ第１の所定のクランク角度よりも大きい角度毎に設けられた第２歯と、第２歯と対向するように設けられ、クランク軸の回転に伴う第２歯の通過を検出する第２検出部とを備えるエンジンを制御する制御方法であって、第１検出部からの信号に基づき判別する第１歯と欠歯の検出タイミングと、第２検出部からの信号に基づき判別する第２歯の検出タイミングに基づいて、第１歯が、欠歯が属する第２歯の検出区間に属するか、欠歯が属する検出区間に基づいて設定した順序において何番目の検出区間に属するかを判定する検出区間判定ステップと、エンジン停止に伴ってクランク軸が停止する際の、第１検出部からの信号に基づき判別する第１歯が何番目の検出区間に属するかを検出区間判定ステップに基づいて判定し、判定結果を記憶部に記憶する停止区間判定ステップと、エンジンを始動する際に、停止検出区間判定ステップにおいて記憶部に記憶した判定結果に基づき、第１検出部からの信号に基づき判別する第１歯が何番目の検出区間に属するかを判定するとともに、次の検出区間から第１歯のクランク角度を判定して、エンジン制御を行うエンジン制御ステップとを実行することを特徴としている。
【発明の効果】
【００１４】
請求項１の構成によれば、エンジン始動の際に、記憶した第１歯、欠歯、及び第２歯の相対関係に基づいてロータの回転位置を検出するため、短時間で精度良くロータの位置を検出できると共に、検出したロータの位置に基づいて短時間で精度良くエンジンを制御できる。
【００１５】
請求項２の構成によれば、エンジン始動の際に、記憶した区間に基づいてロータの回転位置を検出するため、エンジン停止の際に区間内でクランクが逆回転しても、短時間で精度良くロータの位置を検出できると共に、検出したロータの位置に基づいて短時間で精度良くエンジンを制御できる。
【００１６】
請求項３の構成によれば、エンジン始動の際に、記憶した第１歯、欠歯、及び第２歯の相対関係に基づいてロータの回転位置を検出するため、短時間で精度良くロータの位置を検出できると共に、検出したロータの位置に基づいて短時間で精度良くエンジンを制御できる。
【００１７】
請求項４の構成によれば、エンジン始動の際に、記憶した区間に基づいてロータの回転位置を検出するため、エンジン停止の際に区間内でクランクが逆回転しても、短時間で精度良くロータの位置を検出できると共に、検出したロータの位置に基づいて短時間で精度良くエンジンを制御できる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の最良の実施形態について、添付図面を参照しつつ説明する。
【実施例１】
【００１９】
先ず、本発明の制御装置について説明する前に、従来の制御装置を備える位置検出システム１について説明する。
【００２０】
図１に示す位置検出システム１は、ロータ１０、磁気抵抗素子（ＭＲＥ：Magnetic Resistance Element）ＭＲＥセンサ２０、及び従来の制御装置である燃料噴射制御ＥＣＵ（ＥＦＩ−ＥＣＵ：Electronic Fuel Injection Electronic Control Unit）で構成される。
【００２１】
ロータ１０には、ロータ１０の回転軸とほぼ同じ軸を回転軸とするクランク軸１０ｚが挿通する穴を設けている。ロータ１０と挿通するクランク１０ｚとは、互いに固着している。クランク１０ｚは、図示を省略するが、車両が搭載するエンジンを構成するピストンに接続する。クランク軸１０ｚは、ロータ１０の回転に伴って所定の回転方向に回転することで、ピストンを往復運動させてエンジンを始動させる。また、クランク軸１０ｚは、始動したエンジンによって所定の回転方向に回転させられる。
【００２２】
ロータ１０は、回転方向に所定の間隔で磁性を有する歯（以下単に、クランク歯ともいう）が形成されている。本実施例において、歯の間隔は１０クランクアングル（ＣＡ：crank angle）であるとして説明するが、これに限定される訳ではない。また、ロータ１０は、１３０ＣＡ及び１４０ＣＡの位置に歯を欠く欠歯部分を有する。尚、この欠いた歯を、以下単に、欠歯という。
【００２３】
ＭＲＥセンサ２０は、ロータ１０に形成された歯と対向する位置に設置され、ＥＦＩ−ＥＣＵ３０に接続する。ＭＲＥセンサ２０は、ロータ１０の回転に伴った磁性を有する歯の通過により変化する磁界によって変化する電気信号をＥＦＩ−ＥＣＵ３０へ出力する。
【００２４】
ここで、図２を参照して、ＭＲＥセンサ２０の構成について説明する。図２は、ＭＲＥセンサ２０の一例を表す構成図である。
【００２５】
図２（ａ）は、図２（ｂ）に示すＭＲＥセンサ２０をＡＡ方向から示した正面図である。ＭＲＥセンサ２０は、磁石ＭＧと磁気抵抗素子ＭＲ１及びＭＲ２とを備える。磁石ＭＧは、磁界を発生させる。磁気抵抗素子ＭＲ１及びＭＲ２は、磁石ＭＧ等が発生させる磁界の変化に伴って電気抵抗値を変化させる。磁気抵抗素子ＭＲ１及びＭＲ２は、磁石ＭＧの底面に設置されている。
【００２６】
図２（ｂ）は、図２（ａ）に示すＭＲＥセンサ２０をＢＢ方向から示した底面図である。磁気抵抗素子ＭＲ１及びＭＲ２は、ロータ１０に形成された歯が通過する方向と略平行に磁石ＭＧの底面に設置される。つまり、歯の通過に伴って磁気抵抗素子ＭＲ１の抵抗値に影響を与える磁界が変化した後に、磁気抵抗素子ＭＲ２の抵抗値に影響を与える磁界が変化するように、磁気抵抗素子ＭＲ１及びＭＲ２は設置されている。
【００２７】
ここで、図３を参照して、磁界の変化が磁気抵抗素子ＭＲ１及びＭＲ２に与える影響について説明する。図３は、磁界の変化が磁気抵抗素子ＭＲ１及びＭＲ２に与える影響について説明するための図である。
【００２８】
図３（ａ）は、磁界の強さと磁気抵抗素子ＭＲ１及びＭＲ２の電気抵抗値との関係を表す図である。図３（ａ）は、横軸で磁界の強さを表し、縦軸で磁界が無い場合の電気抵抗の値と、有る場合の電気抵抗の値との比を表す。
【００２９】
図３（ａ）に示すように、磁気抵抗素子ＭＲ１及びＭＲ２の電気抵抗の変化は、磁束密度Ｂに対して低磁場で非直線的に変化すると共に、高磁場で直線的に変化する。また、磁気抵抗素子ＭＲ１及びＭＲ２の電気抵抗は、低磁場よりも高磁場の方が大きい値になる。
【００３０】
図３（ｂ）は、電気信号を出力するＭＲＥセンサ２０の一構成を説明するための図である。ＭＲＥセンサ２０を構成する磁気抵抗素子ＭＲ１及びＭＲ２は電気的に接続している。磁気抵抗素子ＭＲ１の片端は接地しており、他の片端は磁気抵抗素子ＭＲ２に接続している。また、磁気抵抗素子ＭＲ２の片端は磁気抵抗素子ＭＲ１に接続しており、他の片端には「Vin」の電圧が加えられている。ＭＲＥセンサ２０は、互いに接続する磁気抵抗素子ＭＲ１及びＭＲ２の端に加えられる電圧により定まる電気信号を出力する。
【００３１】
図３（ｃ）は、ＭＲＥセンサ２０が出力する電圧波形の一例を表す図である。ＭＲＥセンサ２０は、ロータ１０に形成された歯１１（以下単に、クランク歯１１という）が通過する前には所定の電圧を有する電子信号を出力している。次に、クランク歯１１が通過を開始すると、歯１１が磁石ＭＧの発する磁界を弱める。よって、磁気抵抗素子ＭＲ１の抵抗値が減少し、ＭＲＥセンサ２０が出力する電気信号の電圧が「VIn」付近まで上昇する。その後、磁気抵抗素子ＭＲ２の抵抗値が減少するため、ＭＲＥセンサ２０が出力する電気信号の電圧が「GND（グラウンド）」付近まで下降する。次に、クランク歯１１が通過を終了すると、歯１１が磁石ＭＧの発する磁界を強める。よって、磁気抵抗素子ＭＲ１の抵抗値が増加した後に、磁気抵抗素子ＭＲ２の抵抗値が増加するため、ＭＲＥセンサ２０が出力する電気信号の電圧が歯１１の通過前の電圧まで回復する。つまり、ＭＲＥセンサ２０は、歯の通過を表す信号を出力する。
【００３２】
尚、歯１１の通過方向における電気抵抗素子ＭＲ１及びＭＲ２の長さは、通過方向の歯１１における長さとほぼ等しいとして説明するが、これに限定されるわけではない。
【００３３】
ここで、図１に戻り、従来の位置検出システム１の構成について引き続き説明を行う。
【００３４】
ＥＦＩ−ＥＣＵ３０は、ＭＲＥセンサ２０に接続する。ＥＦＩ−ＥＣＵ３０は、ＭＲＥセンサ２０に電源を供給すると共に、ＭＲＥセンサ２０が出力する電気信号を取得する。ＭＲＥセンサ２０は、取得した電気信号に基づいてロータ１０の位置を検出すると共に、検出した位置に基づいてエンジンを制御する。具体例としては、ＥＦＩ−ＥＣＵ３０は、インジェクタ等のエンジンに対する燃料の噴射量を制御する。
【００３５】
ＥＦＩ−ＥＣＵ３０は、波形整形回路３１とマイコン３２とを備える。波形整形回路３１は、ハードウェア回路で構成される。波形整形回路３１は、ＮＥコネクタを介してＭＲＥセンサ２０に接続し、ＮＥ３６ポートを介してマイコン３２に接続する。波形整形回路３１は、ＭＲＥセンサ２０が出力するアナログ信号をデジタル信号に変換する。具体的には、波形整形回路３１は、ＭＲＥセンサ２０が出力する電気信号の電圧波形が所定の閾値１を上回る場合に値「1」のデジタル信号（つまり、「HI」の信号）を出力し、所定の閾値１を下回る場合に値「0」のデジタル信号（つまり、「LO」の信号）を出力する。
【００３６】
ここで、図４を参照して、波形整形回路３１が入出力する信号について説明する。図４は、波形整形回路３１が入出力する信号の一例を表す図である。
【００３７】
図４（ａ）は、波形整形回路３１に信号を入力するＭＲＥセンサ２０を通過する歯を概念的に表す図である。つまり、図４（ａ）は、時刻ｔ１、ｔ２、ｔ５、及びｔ６において、ロータ１０に形成された歯がＭＲＥセンサ２０を通過したことを表す。また、時刻ｔ３及びｔ４においては、歯がＭＲＥセンサ２０を通過しなかった（つまり、欠歯がＭＲＥセンサ２０を通過した）ことを表す。
【００３８】
図４（ｂ）は、波形整形回路３１が、ＮＥコネクタを介して接続するＭＲＥセンサ２０から取得する信号を表す図である。図４（ｂ）は、縦軸で電圧を、横軸で時間を表す。つまり、図４（ｂ）は、歯の通過があった時刻ｔ１、ｔ２、ｔ５、及びｔ６付近において、取得した電圧が所定の閾値１「Vth1」を超えたことを表す。また、欠歯の通過があった時刻ｔ３及びｔ４を含む時刻ｔ２からｔ５においては、取得した電圧が所定の閾値１「Vth1」を超えなかったことを表す。
【００３９】
図４（ｃ）は、波形整形回路３１が、ＮＥ３６ポートを介して接続するマイコン３２へ出力する信号を表す図である。図４（ｃ）は、縦軸でデジタル値を、横軸で時間を表す。つまり、図４（ｃ）は、歯の通過があった時刻ｔ１、ｔ２、ｔ５、及びｔ６付近において、マイコン３２へ出力した信号が「HI」であることを表す。また、欠歯の通過があった時刻を含む時刻ｔ２からｔ５においては、出力した信号が「LO」であることを表す。
【００４０】
ここで図１に戻り、クランク位置検出システム１の構成について引き続き説明を行う。
【００４１】
マイコン３２は、波形整形回路３１に接続する。マイコン３２は、波形整形回路３１が出力するデジタル信号を取得する。波形整形回路３１は、取得した信号の出力周期に基づいてロータ１０に形成された欠歯部分の通過を検出すると共に、検出した欠歯部分の位置を用いてロータ１０の回転位置を検出する欠歯検出機能、及び検出した位置を更新する位置更新機能を実現する。
【００４２】
ここで、マイコン３２が実現する欠歯検出機能について説明する。マイコン３２は、欠歯検出処理を実行することで欠歯検出機能を実現する。よって、以下、マイコン３２が実行する欠歯検出処理の一例について説明する。
【００４３】
先ず、マイコン３２は、波形整形回路３１が出力する信号の出力周期に基づいて、ロータ１０の回転速度（つまり、エンジンの回転数）を算出する。また、マイコン３２は、ロータ１０の回転速度に基づいて、１０ＣＡ回転するために要する時間を予測する。次に、マイコン３２は、波形整形回路３１から「HI」の信号を実際に取得してから次に「HI」の信号を実際に取得するまでの間（つまり、歯の通過から次の歯の通過までの間）に要した時間を算出する。その後、マイコン３２は、算出した時間が２０ＣＡ回転するために要する時間を超えた場合に、２つの欠歯を有する欠歯部分の通過を検出する。ここで、２つの欠歯は１３０ＣＡ及び１４０ＣＡの位置に形成されている。よって、次に、マイコン３２は、ＭＲＥセンサ２０を通過した歯は１５０ＣＡの位置に形成された歯であると判断することで、クランクの回転位置を検出する。その後、マイコン３２は、欠歯検出処理の実行を終了する。
【００４４】
次に、マイコン３２が実現する位置更新機能について説明する。マイコン３２は、位置更新処理を実行することで位置更新機能を実現する。よって、以下、マイコン３２が実行する位置更新処理の一例について説明する。尚、マイコン３２は、位置更新処理を欠歯検出処理の実行直後に実行する。
【００４５】
先ず、マイコン３２は、波形整形回路３１から「HI」の信号を取得すると、１０ＣＡだけロータ１０の位置を進めることで、検出したクランクの位置を更新する。その後、マイコン３２は、位置更新処理の終了まで上記処理を繰り返す。
【００４６】
この構成によれば、エンジンの回転数から予測した時間に基づいて２つの欠歯の通過を検出するため、検出精度が向上しないという問題があった。特に、エンジンの回転数が急変した場合に、マイコン３２が誤判定をするという問題があった。また特に、エンジンを再始動する場合には、エンジンの回転数が一定でないため、欠歯の通過を検出する精度が向上しないという問題があった。
【００４７】
次に、図５を参照して、マイコン３２がソフトウェア処理を実行するために用いるハードウェアの一構成例について説明する。図５は、ソフトウェア処理を実行するために用いるマイコン３２の一構成例を表すハードウェア構成図である。
【００４８】
マイコン３２は、例えば、ＣＰＵ（Central Processing Unit）３２ａ、ＥＰＲＯＭ（Erasable Programmable Read-Only Memory）又はＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）等の読み出し専用メモリであるＲＯＭ３２ｂ（Read-Only Memory ）、ＤＲＡＭ（Dynamic  RAM）又はＳＲＡＭ（Static  RAM）等の揮発性メモリ及びＮＶＲＡＭ（Non Volatile RAM）等の不揮発性メモリで構成されるＲＡＭ３２ｃ（Random Access Memory）、及び入出力ポートに相当するインタフェース部３２ｅ（以下単に、ＩＦ部３２ｅという）で構成され、ＣＰＵ３２ａ、ＲＯＭ３２ｂ、ＲＡＭ３２ｃ、及びＩＦ部３２ｅは互いにバス３２ｆによって接続している。
【００４９】
ソフトウェア処理は、ＣＰＵ３２ａが、ＲＯＭ３２ｂに格納したプログラムを読み込み、読み込んだプログラムに従って演算を行うことにより実現される。なお、ＲＡＭ３２ｃには、演算結果のデータが書き込まれ、特にＮＶＲＡＭには、電源オフする場合にバックアップが必要なデータが保存される。また、演算結果は、ＩＦ部３２ｅを介して接続する他の部又は装置との間で入出力される。
【００５０】
次に、図６を参照して、従来のクランク位置検出システム１の問題点について詳細に説明する。図６は、従来のクランク位置検出システム１の問題点について詳細に説明するための図である。
【００５１】
図６（ａ）は、従来のクランク位置検出システム１を構成するロータ１０に形成された歯について説明するための図である。ロータ１０は、１０ＣＡ毎に回転方向に形成された歯を有する。
【００５２】
図６（ｂ）は、図６（ａ）に示すロータ１０で構成されるエンジンが停止する場合及びエンジンが始動する場合に、従来のクランク位置検出システム１が検出するロータ１０の位置と、実際のロータ１０の位置とを比較するための図である。
【００５３】
図６（ｂ）は、エンジンが停止する場合に、ロータ１０が、所定の方向に向かって２４０ＣＡから２７０ＣＡまで回転した後に、所定の方向とは逆の方向に１０ＣＡだけ回転した後に停止したことを表す。また、エンジンを再始動する場合には、前回の停止位置である２６０ＣＡにあるロータ１０が回転を開始したことを表す。
【００５４】
ここで、ソフトウェア処理を実行することで位置検出処理を実行するマイコン３２は、位置更新処理の実行により、波形整形回路３１から「HI」の信号を取得するとロータ１０の位置を１０ＣＡだけ進める。ここで、マイコン３２は、ＭＲＥセンサ２０を一旦通過した歯が逆回転により再度通過した場合にも「HI」の信号を波形整形回路３１から取得する。このため、マイコン３２は、ロータ１０の停止位置を１０ＣＡだけ更に進めて検出してしまうという問題があった。よって、エンジンを停止する場合に検出したクランクの停止位置に誤りがあるため、エンジンを再始動しようとする場合に、エンジンを精度良く制御できないという問題があった。
【００５５】
また、マイコン３２は、エンジンを再始動しようとする場合には、１３０ＣＡ及び１４０ＣＡにある欠歯を検出するまでロータ１０の位置を検出できない。よって、特に、エンジン始動開始の際に、エンジンの回転数が低いため、ロータ１０の位置を検出するために要する時間が長く、いわゆるスムーズなエンジンの始動ができないという問題があった。
【００５６】
よって、以下、図７を参照して、上記問題を解決する本件発明の制御装置を備えるクランク位置検出システム２の構成について説明する。図７は、本件発明の制御装置を備えるクランク位置検出システム２の一例を表すシステム構成図である
【００５７】
クランク位置検出システム２は、ロータ１１０、ＭＲＥセンサ１２０、及び本件発明の制御装置であるＥＦＩ−ＥＣＵ１３０で構成される。以下、主に、従来のクランク位置検出システム１を構成するロータ１０、ＭＲＥセンサ２０、及びＥＦＩ−ＥＣＵ３０と、ロータ１１０、ＭＲＥセンサ１２０、及びＥＦＩ−ＥＣＵ１３０との相違点について説明し、一致点に対する説明は省略する。
【００５８】
ロータ１１０について説明する前に、図８を参照して、ＭＲＥセンサ１２０について説明する。図８は、本件発明の制御装置に接続するＭＲＥセンサ１２０の一例を表す図である。
【００５９】
図８（ａ）は、図８（ｂ）に示すＭＲＥセンサ１２０をＧＧ方向から示した正面図である。尚、図８（ａ）は図７のＣ部の部分拡大図でもある。図８（ａ）に示すＭＲＥセンサ１２０は、図２（ａ）に示すＭＲＥセンサ２０と同様に、磁石ＭＧ１と、磁石ＭＧ１の底面に設置された磁気抵抗素子ＭＲ１１及びＭＲ１２とを有する。
【００６０】
図８（ｂ）は、ＭＲＥセンサ１２０の底面図である。図８（ｂ）に示すＭＲＥセンサ１２０は、図２（ｂ）に示すＭＲＥセンサ２０と異なり、磁気抵抗素子ＭＲ１１及びＭＲ１２を、歯が通過する方向と略平行ではなく、段違いに設置される。本実施例において、磁気抵抗素子ＭＲ１１は手前に設置され、磁気抵抗素子ＭＲ１２は奥に設置されるとして説明するが、これに限定される訳ではなく、磁気抵抗素子ＭＲ１１は奥に設置され、磁気抵抗素子ＭＲ１２は手前に設置される構成を採用できる。
【００６１】
次に、ＭＲＥセンサ１２０が出力する電気信号について説明する前に、図９を参照して、ロータ１１０の構成について説明する。図９は、本件発明の制御装置が制御するロータ１１０の一構成例を表す図である。
【００６２】
図９（ａ）に示すロータ１１０は、ロータ１０と同様に、回転面に対して１０ＣＡ間隔で磁性を有する歯を有する。また、ロータ１１０は、ロータ１０と同様に、１３０ＣＡ及び１４０ＣＡに欠歯を有する。ロータ１１０は、磁性を有する形状の異なる第１の歯と第２の歯とを有する。第２の歯は、３０ＣＡから９０ＣＡ間隔でロータ１１０に形成されている。また、第１の歯は、０ＣＡから１０ＣＡ間隔で、第２の歯が形成されていないロータ１１０の部分に形成されている。ここで、ロータ１１０には、３０ＣＡに形成された第２の歯と１２０ＣＡに形成された第２の歯とで区切られた区間０から開始する８つの区間が定められている。よって、ロータ１１０は、第２の歯で区切られた区間に、原則、８個の第１の歯を有する。ただし、例外として、ロータ１１０は、１２０ＣＡから２１０ＣＡの区間１においては、１３０ＣＡ及び１４０ＣＡに２つの欠歯を有するので、６個の第１の歯を有する。
【００６３】
次に、図９（ｂ）を参照して、ロータ１１０に定められた区間と、区間を区分する歯の位置との関係について説明する。図９（ｂ）に示す表は、ロータ１１０に定められた区間と、区間を区分する歯の位置を識別するカウンタとの関係を示す表である。図１１（ｂ）に示す表は、区間フィールドとクランクカウンタフィールドを有する。区間フィールドは区間番号を保存する。クランクカウンタフィールドは、同一行に保存された区間の終わりに形成された第２の歯の位置をクランクアングルを用いて表すクランクカウンタを保存する。クランクカウンタは、その値を１０倍することで、クランクアングルを表す。
【００６４】
次に、図１０を参照して、第１の歯及び第２の歯の形状について説明する。図１０は、第１の歯及び第２の歯の形状について説明するための図である。
【００６５】
図１０（ａ）は、第１の歯の一例を表す図である。尚、図１０（ａ）は、図８をＥＥ方向から示す側面図である。図１０（ａ）に示すように、第１の歯は、回転軸から見た第１の歯の厚みが磁気抵抗素子ＭＲ１１の厚みと略一致する形状を有する。また、第１の歯は、磁気抵抗素子ＭＲ１１の下を通過するが、磁気抵抗素子ＭＲ１２の下を通過しない。これによって、第１の歯は、ＭＲＥセンサ１２０を通過することで、磁気抵抗素子ＭＲ１１の抵抗値を変化させるが、磁気抵抗素子ＭＲ１２の抵抗値をほとんど変化させない。
【００６６】
図１０（ｂ）は、第２の歯の一例を表す図である。尚、図１０（ｂ）は、図８をＦＦ方向から示す側面図である。図１０（ｂ）に示すように、第２の歯は、回転軸から見た第２の歯の厚みが磁気抵抗素子ＭＲ１１の厚みと磁気抵抗素子ＭＲ１２の厚みの和よりも大きい形状を有する。また、第２の歯は、磁気抵抗素子ＭＲ１１の下を通過した後に、磁気抵抗素子ＭＲ１２の下を通過する。これによって、第２の歯は、ＭＲＥセンサ１２０を通過することで、磁気抵抗素子ＭＲ１１の抵抗値を変化させた後に、磁気抵抗素子ＭＲ１２の抵抗値を変化させる。
【００６７】
次に、図１０（ｃ）及び（ｄ）を参照して、ＭＲＥセンサ１２０が出力する電気信号について説明する。
【００６８】
図１０（ｃ）は、第１の歯が通過する場合にＭＲＥセンサ１２０が出力する電圧波形の一例を表す図である。ロータ１１０に形成された第１の歯が通過する前に、ＭＲＥセンサ１２０は、所定の電圧を有する電子信号を出力している。次に、第１の歯が通過を開始すると、磁気抵抗素子ＭＲ１１の抵抗値が減少し、ＭＲＥセンサ１２０が出力する電気信号の電圧が「VIn」付近まで上昇する。その後、第１の歯が磁気抵抗素子ＭＲ１１の通過を終了すると、磁気抵抗素子ＭＲ１１の抵抗値が増加した後に、ＭＲＥセンサ２０が出力する電気信号の電圧が第１の歯の通過前の電圧まで回復する。尚、磁気抵抗素子ＭＲ１２の抵抗値は殆ど変化しないため、ＭＲＥセンサ１２０が出力する電気信号の電圧が「GND（グラウンド）」付近まで下降することはない。
【００６９】
図１０（ｄ）は、第２の歯が通過する場合にＭＲＥセンサ１２０が出力する電圧波形の一例を表す図である。第２の歯は、磁気抵抗素子ＭＲ１１の抵抗値を変化させた後に、磁気抵抗素子ＭＲ１２の抵抗値を変化させるため、図３（ｃ）を参照して説明した従来のＭＲＥセンサ２０が出力する信号と同様の信号を出力する。
【００７０】
この構成によれば、ロータ１１０の回転に伴って歯が通過することで引き起こす磁界の変化の違いに基づいて、歯の厚みの違いを検出できる。
【００７１】
また、この構成によれば、ロータ１１０の回転に伴って形状の異なる第１の歯と第２の歯とが通過することで引き起こす磁界の変化の違いに基づいて、例えば、図１０（ｃ）及び（ｄ）に示したように、第１の歯の通過を表す第１の信号と第２の歯の通過を表す第２の信号とをＭＲＥセンサ１２０が出力することができる。
【００７２】
ここで、図７に戻り、クランク位置検出システム２の構成について引き続き説明する。
【００７３】
ＥＦＩ−ＥＣＵ１３０は、従来のＥＦＩ−ＥＣＵ１３０と同様に、波形整形回路１３１及びマイコン１３２を備える。波形整形回路１３１は、従来の波形整形回路３１と異なり、ＮＥ３６ポート１とＮＥ３６ポート２との２ポートでマイコン１３２に接続して整形した信号を出力する。
【００７４】
ここで、図１１を参照して、波形整形回路１３１が入出力する信号について説明する。図１１は、波形整形回路１３１が入出力する信号の一例を表す図である。
【００７５】
図１１（ａ）は、図４（ａ）と同様に、波形整形回路１３１に信号を入力するＭＲＥセンサ１２０を通過する歯を概念的に表す図である。つまり、図１１（ａ）は、時刻ｔ４を除く時刻ｔ１からｔ６において、ロータ１１０に形成された第１の歯がＭＲＥセンサ１２０を通過したことを表す。また、時刻ｔ４においては、第２の歯がＭＲＥセンサ１２０を通過したことを表す。
【００７６】
図１１（ｂ）は、図４（ｂ）と同様に、波形整形回路１３１が、ＮＥコネクタを介して取得する信号を表す図である。図１１（ｂ）は、縦軸で電圧を、横軸で時間を表す。つまり、図１１（ｂ）は、第１の歯及び第２の歯の通過があった時刻ｔ１から６において取得した電圧が、図１０（ｃ）に示す波形を描いて所定の閾値１「Vth1」を超えたことを表す。また、第２の歯の通過があった時刻ｔ４付近においては、取得した電圧が、図１０（ｄ）に示す波形を描いて所定の閾値２「Vth2」を下回ったことを表す。尚、図１１（ｂ）は、時刻ｔ４付近を除いたその他の時刻において、電圧が閾値２「Vth2」を下回らなかったことを表す。
【００７７】
図１１（ｃ）は、図４（ｃ）と同様に、波形整形回路１３１が、ＮＥ３６ポート１を介して出力する信号を表す図である。図１１（ｃ）は、縦軸でデジタル値を、横軸で時間を表す。つまり、図１１（ｃ）は、第１の歯及び第２の歯の通過があった時刻ｔ１から６付近において、マイコン１３２へ出力した信号が「HI」であることを表す。また、図１１（ｃ）は、その他の時刻において、出力した信号が「LO」であることを表す。
【００７８】
図１１（ｄ）は、図１１（ｃ）と同様に、波形整形回路１３１が、ＮＥ３６ポート２を介して出力する信号を表す図である。図１１（ｄ）は、第２の歯の通過があった時刻ｔ４付近において「HI」、その他の時刻において「LO」の信号を出力したことを表す。
【００７９】
ここで、図１２を参照して、ロータ１１０に形成された歯と、歯の通過に伴って波形整形回路１３１がＮＥ３６ポート１及びＮＥ３６ポート２に出力する信号との関係について説明を行う。図１２は、ロータ１１０と波形整形回路１３１が出力する信号との関係を説明するための図である。
【００８０】
図１２（ａ）及び（ｂ）は、図９（ａ）及び（ｂ）と同様の図であるので説明を省略する。
【００８１】
図１２（ｃ）は、波形整形回路１３１がＮＥ３６ポート１に出力する信号を表す図である。また、図１２（ｄ）は、波形整形回路１３１がＮＥ３６ポート２に出力する信号を表す図である。図１２（ｃ）及び（ｄ）は、縦軸にデジタル値を、横軸に時間を表す。また、図１２（ｃ）及び（ｄ）に示す信号を波形整形回路１３１が出力する際にロータ１１０は所定の速度で回転しているとする。
【００８２】
図１２（ｃ）に示すように、波形整形回路１３１は、ＭＲＥセンサ１２０を第１の歯及び第２の歯が通過する第１の周期で、ＮＥ３６ポート１に「HI」の信号を出力する。第１の周期は、ロータ１１０が１０ＣＡ回転するために要する時間に等しい。尚、ロータ１１０は１３０ＣＡ及び１４０ＣＡに欠歯を有するため、この欠歯がＭＲＥセンサ１２０を通過する間、波形整形回路１３１は、ＮＥ３６ポート１に「LO」の信号を出力し続ける。
【００８３】
図１２（ｄ）に示すように、波形整形回路１３１は、ＭＲＥセンサ１２０を第２の歯が通過する第２の周期で、ＮＥ３６ポート２に「HI」の信号を出力する。第２の周期は、ロータ１１０が９０ＣＡ回転するために要する時間に等しく、第２の歯で区切られた区間がＭＲＥセンサ１２０を通過するための要する時間に等しい。
【００８４】
よって、原則、波形整形回路１３１は、第２の周期において、ＮＥ３６ポート１へ「HI」の信号を９回出力する。これは、区間に形成された第１の歯の数と区間の最初（又は最後のいずれか）に形成された第２の歯の数の合計に等しい。ただし、例外として、欠歯が形成された区間１がＭＲＥセンサ１２０を通過する場合には、波形整形回路１３１は、「HI」の信号を７回出力する。
【００８５】
ここで、図７に戻り、本発明のクランク位置検出システム２の構成について引き続き説明する。
【００８６】
マイコン１３２は、相対関係判定処理及びエンジン制御処理を実行することで、相対関係判定機能及びエンジン制御機能を実現する点で異なる。
【００８７】
相対関係判定機能は、ＮＥ３６ポート１とＮＥ３６ポート２からの信号に基づき判別する第１歯と欠歯と第２歯の検出タイミングに基づいて、第１歯と欠歯と第２歯の相対関係を判定するとともに判定結果を記憶部に記憶する機能をいう。
【００８８】
尚、相対関係判定機能は、従来のマイコン１３２が実現する欠歯検出機能及び位置更新機能の他に、後述する区間初期化機能及び区間更新機能等で構成される。つまり、相対関係判定処理は、欠歯検出処理、位置更新、区間初期化処理、及び区間更新処理で構成される処理である。
【００８９】
エンジン制御機能は、エンジンを始動する際に、相対関係判定処理において記憶部に記憶した判定結果に基づき、クランク軸が１回転するまでの間に第１検出部からの信号に基づき判別する第１歯のクランク角度を判別して、判別した角度に基づいてエンジン制御を行う機能をいう。
【００９０】
尚、エンジン制御機能は、後述する再始動時検出機能及び実制御機能で構成される。つまり、エンジン制御処理は、再始動時検出処理及び実制御処理で構成される処理である。
【００９１】
ここで、図１３を参照して、マイコン１３２の構成について機能に着目して説明する。図１３は、マイコン１３２の一構成例を表す機能ブロック図である。
【００９２】
マイコン１３２は、取得制御部１３２ｇ、始動部１３２ｈ、停止判定部１３２ｉ、欠歯検出部１３２ｊ、位置更新部１３２ｋ、区間初期化部１３２ｌ、区間更新部１３２ｍ、第１フェールセーフ部１３２ｎ、逆転回数算出部１３２ｏ、第２フェールセーフ部１３２ｐ、及び再始動時検出部１３４ｑ、記憶部ｒ、及び実制御部１３４ｓで構成される。尚、取得制御部１３２ｇ等を実現するために用いるマイコン１３２のハードウェア構成は、従来のマイコン３２が欠歯検出機能及び位置更新機能を実現するために用いるハードウェア構成と同様であるので説明を省略する。
【００９３】
取得制御部１３２ｇは、波形整形回路１３１及び始動部１３２ｈから再始動時検出部１３４ｑに接続している。取得制御部１３２ｇは、取得制御処理を実行することで、波形整形回路１３１から電気信号を取得すると共に、取得した電気信号に基づいて各部の実行を制御する。
【００９４】
ここで、取得制御部１３２ｇが実行する取得制御処理について説明する。先ず、取得制御部１３２ｇは、エンジン始動の際に実行する始動処理を実行するよう始動部１３２ｈを制御する。次に、所定周期毎に、エンジンの停止を判定する停止判定処理を実行するよう停止判定部１３２ｉを制御する。尚、停止判定処理を実行する所定周期は１６ｍｓであるとして説明するがこれに限定される訳ではない。
【００９５】
次に、取得制御部１３２ｇは、波形整形回路１３１からＮＥ３６ポート１を介して「HI」の信号を取得する毎に（つまり、原則、ロータ１１０が１０ＣＡ回転する毎に）、必要に応じて所定の処理を実行するよう欠歯検出部１３２ｊ及び位置更新部１３２ｋを制御する。
【００９６】
更に、取得制御部１３２ｇは、波形整形回路１３１からＮＥ３６ポート２を介して「HI」の信号を取得する毎に（つまり、ロータ１１０が９０ＣＡ回転する毎に）、必要に応じて所定の処理を実行するよう区間初期化部１３２ｌ、区間更新部１３２ｍ、第１フェールセーフ部１３２ｎ、逆転回数算出部１３２ｏ、第２フェールセーフ部１３２ｐ、及び再始動時検出部１３２ｑを制御する。
【００９７】
始動部１３２ｈから再始動時検出部１３４ｑは、取得制御部１３２ｇ及び記憶部１３２ｒに接続する。始動部１３２ｈ、停止判定部１３２ｉ、欠歯検出部１３２ｊ、位置更新部１３２ｋ、区間初期化部１３２ｌ、区間更新部１３２ｍ、第１フェールセーフ部１３２ｎ、逆転回数算出部１３２ｏ、第２フェールセーフ部１３２ｐ、及び再始動時検出部１３４ｑは、取得制御部１３２ｇに制御されて、始動処理、停止判定処理、欠歯検出処理、位置更新処理、区間初期化処理、区間更新処理、第１フェールセーフ処理、逆転回数算出処理、第２フェールセーフ処理、及び再始動時検出処理を実行する。
【００９８】
始動処理は、ロータ１１０が所定方向に回転することでエンジンを始動させる際に、記憶部１３２ｒが記憶する変数に所定値を代入する処理である。停止判定処理は、記憶部１３２ｒが記憶する変数に基づいてエンジン及びクランクの停止を判定する処理である。欠歯検出処理及び位置更新処理は、従来のマイコン３２が実行する欠歯検出処理及び位置更新処理とほぼ同様であるため説明を省略する。
【００９９】
区間初期化処理は、区間を識別する区間番号を表す変数（以下単に、区間Ｎｏカウンタという）を初期化する処理である。位置更新処理は、区間Ｎｏ変数の値を更新する処理である。第１フェールセーフ処理は、異常を検出した場合においてフェールセーフ機能を実現するための処理である。
【０１００】
逆転回数算出処理は、エンジン停止の際にロータ１１０が区間を跨いで逆回転した回数を算出する処理である。第２フェールセーフ処理は、所定回数を超えてロータ１１０が逆回転した場合においてフェールセーフ機能を実現するため処理である。再始動時検出処理は、エンジンを再始動した場合にロータ１１０の位置を検出する処理である。
【０１０１】
記憶部１３２ｒは、例えば、ＲＡＭ及びＲＯＭで構成される。記憶部１３２ｒは、始動部１３２ｈから再始動時検出部１３４ｑ及び実制御部１３２ｓに接続している。記憶部１３２ｒを構成するＲＯＭは、図９（ｂ）に示すテーブルを記憶する。また、記憶部１３２ｒを構成するＲＡＭは、始動部１３２ｈから再始動時検出部１３４ｑが処理の実行に用いる各種の変数を記憶する。
【０１０２】
ここで、記憶部１３２ｒが記憶する変数について説明する。記憶部１３２ｒが記憶する変数は、クランク初期化要求フラグ、クランク確定フラグ、停止判定カウンタ、区間Ｎｏカウンタ、区間判定１０ＣＡクランクカウンタ、１０ＣＡクランクカウンタ、禁止フラグ、再始動フラグ、及び逆転カウンタを含む。
【０１０３】
クランク初期化要求フラグは、欠歯検出部１３２ｊが欠歯検出処理を実行することを要求する値と要求しない値とを保持する。尚、クランク初期化要求フラグが、欠歯検出処理の実行を要求する値を保持することを、クランク初期化要求フラグが「ON」であるという。尚、欠歯検出部１３２ｊは、欠歯検出処理を実行することで、検出したクランク位置（つまり、ロータ１１０の回転位置）を表す値を１０ＣＡクランクカウンタに代入して初期化する。
【０１０４】
クランク確定フラグは、クランクの位置を検出して確定したことを表す値と確定していないことを表す値とを保持する。尚、クランク確定フラグが、クランクの位置を検出して確定したことを表す値を保持することを、クランク確定フラグが「ON」であるという。
【０１０５】
停止判定カウンタは、取得制御部１３２ｇがＮＥ３６ポート１から「HI」の信号を最後に取得した時からの経過時間をカウントする値を保持する。停止判定カウンタは、ロータ１１０が停止したか否かを停止判定部１３２ｉが判定するために用いられる。
【０１０６】
区間Ｎｏカウンタは、区間の番号をカウントする値を保持する。区間Ｎｏカウンタは、区間０を表す値「0」から区間７を表す値「7」までの整数値を保持する。区間判定１０ＣＡクランクカウンタは、区間Ｎｏカウンタの値を更新した後に、ＮＥ３６ポート１をから「HI」の信号を取得制御部１３２ｇが取得した回数をカウントする。つまり、区間判定１０ＣＡクランクカウンタは、区間の先頭に形成された第２の歯がＭＲＥセンサ１２０を通過した後に、ＭＲＥセンサ１２０を通過した歯の数を表す。区間判定１０ＣＡクランクカウンタは、区間の終了であるか否かを判定するために用いられる。
【０１０７】
１０ＣＡクランクカウンタは、クランクの位置を表す値を保持する。１０ＣＡクランクカウンタは、クランクアングル「0」を表す値「0」から「720」を表す値「72」までの整数値を保持する。
【０１０８】
禁止フラグは、再始動時検出部１３４ｑが再始動時検出処理を実行することを禁止する値と禁止しない値とを保持する。尚、禁止フラグが、再始動時検出処理の実行を禁止する値を保持することを、禁止フラグが「ON」であるという。
【０１０９】
再始動フラグは、エンジンの再始動を表す値とそうでない値とを保持する。尚、再始動フラグが再始動を表す値を保持することを再始動フラグが「ON」であるという。逆転カウンタは、クランク区間を跨った逆転が生じた回数を表す値を保持する。
【０１１０】
実制御部１３２ｓは、記憶部１３２ｒに接続する。実制御部１３２ｓは、実制御処理を実行することで、記憶部１３２ｒが記憶する変数に基づいて、エンジンを制御する。具体例としては、実制御部１３２ｓは、記憶部１３２ｒが記憶する１０ＣＡクランクカウンタに基づいて、エンジンの点火タイミング等を制御する。
【０１１１】
ここで、図１４を参照して、マイコン１３２が実行する処理とエンジンの状態との関係について説明する。図１４は、マイコン１３２が実行する処理とエンジンの状態との一関係を表す図である。
【０１１２】
図１４は、縦軸でエンジンの回転数を表し、横軸で時間を表す。図１４に示すように、エンジンを始動しようとする場合に、マイコン１３２を構成する始動部１３２ｈは、始動処理を実行する。これにより、始動部１３２ｈは、欠歯検出部１３２ｊが欠歯検出処理を実行することを要求する値をクランク初期化要求フラグに代入する（つまり、クランク初期化要求フラグを「ON」にする）。
【０１１３】
次に、マイコン１３２を構成する欠歯検出部１３２ｊは欠歯検出処理を実行してクランク位置を検出する。その後、欠歯検出部１３２ｊは、１０ＣＡクランクカウンタの値を検出したクランク位置を表す値とする。尚、その後、ＮＥ３６ポート１から「HI」の信号を取得制御部１３２ｇが取得する度に、マイコン１３２を構成する位置更新部１３２ｋは、１０ＣＡクランクカウンタの値をインクリメントする。
【０１１４】
次に、マイコン１３２を構成する区間初期化部１３２ｌは、エンジンの回転数が所定の閾値「100rpm」を超える間、区間初期化処理を実行する。これにより、区間初期化部１３２ｌは、１０ＣＡクランクカウンタの値に基づいて定まる区間番号を、区間Ｎｏカウンタに代入して初期化する。ここで、マイコン１３２を構成する再始動時検出部１３４ｑは、エンジンが停止する場合の区間Ｎｏカウンタに基づいて再始動時検出処理を実行する。このため、区間初期化部１３２ｌは、区間Ｎｏカウンタの値を初期化することで、再始動時検出処理を実行するための条件を満たしたと判断する。よって、区間初期化部１３２ｌは、再始動時検出処理の実行を禁止しない値「OFF」を禁止フラグへ代入する。
【０１１５】
次に、マイコン１３２を構成する区間更新部１３２ｍは、エンジンの回転数が所定の閾値「100rpm」を下回る間、区間判定１０ＣＡカウンタで定まる区間番号を、区間Ｎｏカウンタに代入する。これは、エンジンの回転数が「100rpm」を下回ると、エンジンの逆転が生じや易くなるためである。その後、マイコン１３２を構成する停止判定部１３２ｉは、エンジンが停止したと判定すると、再始動フラグを「ON」にする。
【０１１６】
その後、エンジンを再始動する場合には、マイコン１３２を構成する再始動時検出部１３２ｑは、再始動時検出処理を実行する。これによって、再始動時検出部１３２ｑは、最初に第２の歯がＭＲＥセンサ１２０を通過した際に（つまり、取得制御部１３２ｇが、ＮＥ３６ポート２から「HI」の信号を最初に取得した場合に）、区間Ｎｏカウンタに基づいて定まるクランクの位置を１０ＣＡクランクカウンタに代入する。
【０１１７】
ここで、図１５を参照して、再始動時検出部１３２ｑが実行する再始動時検出処理について概説する。図１５は、再始動時検出部１３２ｑが実行する再始動時検出処理の一例を概説するための図である。尚、図１５（ａ）及び（ｂ）は、図１２（ｃ）及び（ｄ）と同じ図であるため説明を省略する。
【０１１８】
図１５（ｃ）は、図６（ｂ）とほぼ同様であるため、相違点について主に説明する。図１５（ｃ）に示すように、ロータ１１０は、一旦、２７０ＣＡまで回転した後、逆転して２６０ＣＡに戻って停止した。
【０１１９】
ここで、１０ＣＡクランクカウンタの値は、２７０ＣＡから更に１０ＣＡ進んだ２８０ＣＡを表す値になっており、実際のロータ１１０の停止位置２６０ＣＡと異なる。しかし、ロータ１１０の逆転が区間２の内で生じているため、区間Ｎｏカウンタは、実際のロータ１１０の停止区間２を表している。
【０１２０】
よって、再始動時検出部１３２ｑは、ロータ１１０の停止区間２を区分する第２の歯がＭＲＥセンサ１２０を最初に通過した際に、通過した歯の位置である３００ＣＡを、ロータ１１０の位置として検出する。これにより、再始動時検出部１３２ｑは、区間Ｎｏカウンタの値により定まる値を１０ＣＡクランクカウンタに代入する。
【０１２１】
ここで、図１６から２１を参照して、マイコン１３２が実行するソフトウェア処理について説明する。図１６は、マイコン１３２が始動部１３２ｈを実現するために実行する始動処理の一例を表すフローチャートである。尚、マイコン１３２は、エンジンを始動する際に始動処理を実行する。
【０１２２】
先ず、マイコン１３２は、クランク初期化要求フラグを「ON」にする（ステップＳ０１）。欠歯検出処理を実行してロータ１１０の位置を検出するためである。次に、マイコン１３２は、クランク確定フラグを「OFF」にする（ステップＳ０２）。未だ、ロータ１１０の位置が確定していないためである。その後、マイコン１３２は、停止判定カウンタを値「0」とする（ステップＳ０３）。未だ、エンジンは停止していないためである。
【０１２３】
次に、マイコン１３２は、区間判定１０ＣＡカウンタを値「0」とする（ステップＳ０４）。その後、マイコン１３２は、１０ＣＡクランクカウンタを値「0」とする（ステップＳ０５）。初期化するためである。
【０１２４】
次に、マイコン１３２は、禁止フラグを「ON」とする（ステップＳ０６）。再始動時検出処理を実行するために用いる区間Ｎｏカウンタの値を未だ初期化していないため、区間Ｎｏカウンタを用いる再始動時検出処理の実行を禁止するためである。その後、マイコン１３２は、再始動フラグを「OFF」にする（ステップＳ０７）。未だ、エンジンの停止を検出しておらず、再始動する訳ではないためである。
【０１２５】
次に、マイコン１３２は、逆転カウンタの値を「0」とする（ステップＳ０８）。未だ、エンジンの逆回転を検出していないためである。その後、マイコン１３２は、始動処理の実行を終了する。
【０１２６】
ここで、図１７を参照して、マイコン１３２が実行する停止判定処理について説明する。図１７は、マイコン１３２が停止判定部１３２ｉを実現するために実行する停止判定処理の一例を表すフローチャートである。尚、マイコン１３２は、１６ｍｓ毎に停止判定処理を実行する。
【０１２７】
先ず、マイコン１３２は、停止判定カウンタの値を「1」だけインクリメントする（ステップＳ１１）。尚、マイコン１３２がＮＥ３６ポート１から「HI」の信号を取得する度に、停止判定カウンタは値「0」に初期化される。
【０１２８】
次に、マイコン１３２は、停止判定カウンタの値からエンジンが停止したか否かを判断する（ステップＳ１２）。マイコン１３２は、エンジンが停止したと判断する場合にはステップＳ１３の処理を、そうでない場合には停止判定処理の実行を終了する。尚、マイコン１３２は、ロータ１１０が停止してから５００ｍｓ以上の時間が経過した場合にエンジンが停止したと判断する。ロータ１１０が停止した後の経過時間は、停止判定カウンタの値に１６ｍｓを乗算することで得られる。
【０１２９】
ステップＳ１２において、エンジンが停止したと判断した場合には、マイコン１３２は、クランク確定フラグの値を「OFF」とする（ステップＳ１３）。次に、マイコン１３２は、１０ＣＡクランクカウンタに所定の初期値を代入する（ステップＳ１４）。エンジン停止の際にロータ１１０が逆転することがあり、ロータ１１０の正確な停止位置が不明になる（つまり、確定しない状態になる）ためである。その後、マイコン１３２は、再始動フラグを「ON」とする（ステップＳ１５）。エンジンの停止を検出したため、次の始動は再始動となるためである。その後、マイコン１３２は、停止判定処理の実行を終了する。尚、ステップＳ１３からＳ１５の処理は、エンジンの停止を検出した場合に実行される処理であるので、停止時処理という。
【０１３０】
ここで、図１８を参照して、マイコン１３２が実行する第１割込処理について説明する。図１８は、マイコン１３２が欠歯検出部１３２ｊ及び位置更新部１３２ｋを実現するために実行する処理の一例を表すフローチャートである。尚、マイコン１３２は、ＮＥ３６ポート１から「HI」の信号を取得する度（つまり、ロータ１１０が１０ＣＡ回転することで第１の歯及び第２の歯がＭＲＥセンサ１２０を通過する度）に第１割込処理を実行する。
【０１３１】
先ず、マイコン１３２は、区間判定１０ＣＡカウンタをインクリメントする（ステップＳ２１）。区間に形成された歯を検出したためである。次に、マイコン１３２は、停止判定カウンタを値「0」として初期化する（ステップＳ２２）。ロータ１１０の回転を検出したため、ロータ１１０は停止していないとマイコン１３２が判断したためである。その後、マイコン１３２は、クランク確定フラグが「ON」であるか否かを判断する（ステップＳ２３）。マイコン１３２は、クランク確定フラグが「ON」である（つまり、クランクの位置が確定している）と判断する場合にはステップＳ２４の処理を実行し、そうでない場合にはステップＳ２５の処理を実行する。
【０１３２】
ステップＳ２３において、クランク確定フラグが「ON」であると判断した場合には、マイコン１３２は、１０ＣＡクランクカウンタの値を「1」だけインクリメントする（ステップＳ２４）。ロータ１１０が１０ＣＡ回転したためである。また、マイコン１３２は、１０ＣＡクランクカウンタの値が「72」の場合は値「0」とする。尚、ステップＳ２４の処理は、位置更新部１３２ｋを実現するためにマイコン１３２が実行する位置更新処理である。
【０１３３】
ステップＳ２３において、クランク確定フラグが「ON」でないと判断した場合には、マイコン１３２は、１０ＣＡクランクカウンタの値を初期値として初期化する（ステップＳ２５）。
【０１３４】
ステップＳ２４又はＳ２５を実行した後に、マイコン１３２は、クランク初期化要求フラグが「ON」であるか否かを判断する（ステップＳ２６）。マイコン１３２は、クランク初期化要求フラグが「ON」である（つまり、欠歯検出処理の実行を要求する）と判断する場合にはステップＳ２７の処理を実行し、そうでない場合には第１割込処理の実行を終了する。
【０１３５】
ステップＳ２６において、マイコン１３２は、クランク初期化要求フラグが「ON」であると判断した場合には、欠歯検出処理を実行する（ステップＳ２７）。尚、ステップＳ２７の処理は、欠歯検出部１３２ｊを実現するためにマイコン１３２が実行する欠歯検出処理である。
【０１３６】
この構成によれば、クランクにおける欠歯部分に基づいてクランクの位置を確実に検出できる。
【０１３７】
次に、マイコン１３２は、欠歯検出処理の実行により検出したクランクの位置を表す値を、１０ＣＡクランクカウンタに代入する（ステップＳ２８）。その後、マイコン１３２は、クランク確定フラグを「ON」とする（ステップＳ２９）。クランクの位置が確定したためである。
【０１３８】
次に、マイコン１３２は、禁止フラグを「ON」とする（ステップＳ３０）。既にロータ１１０の位置を検出したので、再始動時検出処理の実行を禁止するためである。その後、マイコン１３２は、第１割込処理の実行を終了する。尚、ステップＳ２７からＳ３０の処理を初期化処理という。ステップＳ２７からＳ３０の処理は、ロータ１１０の位置を表す１０ＣＡクランクカウンタの値を検出値で初期化する処理であるからである。
【０１３９】
ここで、初期化処理は、エンジンを始動する場合に実行される。また、初期化処理は、後述するように、マイコン１３２が異常を検出した場合にも実行される。
【０１４０】
この構成によれば、センサが出力する信号等に異常が発生した場合であっても、ロータ１１０における欠歯部分に基づいてロータ１１０の位置を確実に検出できる。
【０１４１】
また、初期化処理は、後述するように、ロータ１１０の逆回転を所定回数を超えて検出した場合にも実行される。
【０１４２】
この構成によれば、クランクが複数回に渡って逆回転した場合であってもクランクの位置を確実に検出できる。
【０１４３】
次に、図１９を参照して、マイコン１３２が実行する第２割込処理について説明する。図１９は、マイコン１３２が区間初期化部１３２ｌから再始動時検出部１３２ｑを実現するために実行する処理の一例を表すフローチャートである。尚、マイコン１３２は、ＮＥ３６ポート２を介して「HI」の信号を取得する度（つまり、第２の歯がＭＲＥセンサ１２０を通過する度）に第２割込処理を実行する。
【０１４４】
先ず、マイコン１３２は、再始動フラグが「ON」であるか否かを判断する（ステップＳ３１）。マイコン１３２は、再始動フラグが「ON」である（つまり、エンジンが再始動を開始した場合である）と判断する場合にはステップＳ３９の処理を、そうでない場合にはステップＳ３２の処理を実行する。
【０１４５】
ステップＳ３１において、再始動フラグが「ON」でないと判断した場合には、マイコン１３２は、エンジンの回転数が所定の閾値「100rpm」を超えるか否かを判断する（ステップＳ３２）。マイコン１３２は、エンジンの回転数が所定の閾値「100rpm」を超えると判断する場合にはステップＳ３８の処理を、そうでない場合にはステップＳ３３の処理を実行する。
【０１４６】
ステップＳ３２において、エンジンの回転数が所定の閾値「100rpm」を超えないと判断する場合には、マイコン１３２は、区間判定１０ＣＡカウンタの値が「9」であるか否かを判断する（ステップＳ３３）。マイコン１３２は、区間判定１０ＣＡカウンタの値が「9」である場合には、区間に形成された歯の数「9」とＭＲＥセンサ１２０がＮＥ３６ポート１へ出力した信号の数とが一致すると判断してステップＳ３７の処理を実行し、そうでない場合にはステップＳ３４の処理を実行する。尚、欠歯が形成された区間１においては、マイコン１３２は、区間判定１０ＣＡカウンタの値が「7」であるか否かを判断する。
【０１４７】
ステップＳ３３において、区間判定１０ＣＡカウンタの値が「9」（又は「7」）でないと判断した場合には、マイコン１３２は、区間判定１０ＣＡカウンタの値が値「9」（又は「7」）より小さいか否かを判断する（ステップＳ３４）。マイコン１３２は、区間判定１０ＣＡカウンタの値が「9」より小さい（つまり、区間に形成された歯の数「9」よりもＭＲＥセンサ１２０がＮＥ３６ポート１へ出力した信号の数が少ない）と判断する場合にはステップＳ３６の処理を実行し、そうでない場合にはステップＳ３５の処理を実行する。
【０１４８】
ステップＳ３４において、区間判定１０ＣＡカウンタの値が「9」（又は「7」）より大きい（つまり、つまり、区間に形成された歯の数「9」よりもＭＲＥセンサ１２０がＮＥ３６ポート１へ出力した信号の数が大きい）と判断した場合には、マイコン１３２は、異常が発生したと判断して、後述する第１フェールセーフ処理を実行する（ステップＳ３５）。
【０１４９】
ステップＳ３４において、区間判定１０ＣＡカウンタの値が「9」（又は「7」）より小さいと判断した場合には、マイコン１３２は、後述する逆転時処理を実行する（ステップＳ３６）。
【０１５０】
ステップＳ３３において、区間判定１０ＣＡカウンタの値が「9」（又は「7」）に等しいと判断した場合には、マイコン１３２は、後述する区間更新処理を実行する（ステップＳ３７）。
【０１５１】
ステップＳ３２において、エンジン回転数が「100rpm」を超えると判断した場合には、マイコン１３２は、後述する区間初期化処理を実行する（ステップＳ３８）。
【０１５２】
ステップＳ３１において、再始動フラグが「ON」であると判断した場合には、マイコン１３２は、後述する再始動時処理を実行する（ステップＳ３９）。
【０１５３】
ステップＳ３５からステップＳ３９の処理を実行した後に、マイコン１３２は、区間判定１０ＣＡカウンタの値を値「0」として初期化する（ステップＳ４０）。区間を区切る第２の歯がＭＲＥセンサ１２０を通過したためである。
【０１５４】
次に、図２０（ａ）を参照して、マイコン１３２が実行する第１フェールセーフ処理について説明する。図２０（ａ）は、マイコン１３２が実行する第１フェールセーフ処理の一例を表すフローチャートである。
【０１５５】
先ず、マイコン１３２は、クランク初期化要求フラグを「ON」とする（ステップＳ４１）。次に、マイコン１３２は、禁止フラグを「ON」にする（ステップＳ４２）。確実にロータ１１０の位置を検出するために欠歯検出処理の実行を要求することで、異常が発生した場合でも安全に機能するためである。
【０１５６】
この構成によれば、区間に形成された歯の数「9」よりもＭＲＥセンサ１２０がＮＥ３６ポート１へ出力した信号の数が大きいために、センサが出力する信号に異常が発生したとマイコン１３２が判断する場合であっても、クランクにおける欠歯部分に基づいてクランクの位置を確実に検出できる。
【０１５７】
その後、マイコン１３２は、第１フェールセーフ処理の実行を終了する。尚、この第１フェールセーフ処理が、第１フェールセーフ部１３２ｎを実現するためにマイコン１３２が実行する処理である。
【０１５８】
次に、図２０（ｂ）を参照して、マイコン１３２が実行する逆転時処理について説明する。図２０（ｂ）は、マイコン１３２が実行する逆転時処理の一例を表すフローチャートである。
【０１５９】
先ず、マイコン１３２は、区間番号を表す区間Ｎｏカウンタの値を「1」だけデクリメントする（ステップＳ５１）。区間に形成された歯の数「9」よりもＭＲＥセンサ１２０がＮＥ３６ポート１へ出力した信号の数が少ないため、マイコン１３２は、ロータ１１０が区間を跨いで逆転したと判断するためである。尚、マイコン１３２は、区間Ｎｏカウンタが値「0」の場合は値「7」とする。
【０１６０】
次に、マイコン１３２は、逆転カウンタの値をインクリメントする（ステップＳ５２）。尚、ステップＳ５２の処理は、逆転回数算出部１３２ｏを実現するためにマイコン１３２が実行する処理である。
【０１６１】
その後、マイコン１３２は、逆転カウンタが所定の回数「2」を超えたか否かを判断する（ステップＳ５３）。マイコン１３２は、逆転カウンタが値「2」を超えたと判断する場合にはステップＳ５４の処理を、そうでない場合には逆転時処理の実行を終了する。
【０１６２】
ステップＳ５３において、マイコン１３２は、逆転カウンタが値「2」を超えたと判断した場合には、クランク初期化要求フラグを「ON」にする（ステップＳ５４）。次に、マイコン１３２は、禁止フラグを「ON」にする（ステップＳ５５）。確実にロータ１１０の位置を検出するために欠歯検出処理の実行を要求することで、所定の回数を超えてロータ１１０の逆転が生じた場合でも安全に機能するためである。
【０１６３】
この構成によれば、クランクが複数回に渡って逆回転した場合であってもクランクの位置を確実に検出できる。
【０１６４】
その後、マイコン１３２は、逆回転カウンタの値を「0」として初期化する（ステップＳ５６）。次に、マイコン１３２は、逆転時処理の実行を終了する。尚、ステップＳ５４からＳ５６の処理は、第２フェールセーフ部１３２ｐを実現するためにマイコン１３２が実行する第２フェールセーフ処理である。
【０１６５】
次に、図２０（ｃ）を参照して、マイコン１３２が実行する区間更新処理について説明する。図２０（ｃ）は、マイコン１３２が実行する区間更新処理の一例を表すフローチャートである。
【０１６６】
先ず、マイコン１３２は、区間Ｎｏカウンタの値をインクリメントする（ステップＳ６１）。尚、区間Ｎｏカウンタの値が「7」の場合は、マイコン１３２は、区間Ｎｏカウンタの値を値「0」とする。区間に形成された第１の歯の通過を全て検出した後に、区間を区分する第２の歯がＭＲＥセンサ１２０を通過しためである。その後、マイコン１３２は、区間更新処理の実行を終了する。
【０１６７】
尚、区間更新処理は、区間更新部１３２ｍを実現するためにマイコン１３２が実行する処理である。また、ステップＳ３２において判断したように、区間更新処理は、ロータ１１０の回転数が「100rpm」を下回ったことで、逆転が生じ易い状況においてに実行される。よって、この構成によれば、エンジンが低回転する場合に精度良く区間を更新できる。
【０１６８】
次に、図２０（ｄ）を参照して、マイコン１３２が実行する区間初期化処理について説明する。図２０（ｄ）は、マイコン１３２が実行する区間初期化処理の一例を表すフローチャートである。
【０１６９】
先ず、マイコン１３２は、区間Ｎｏカウンタの値を、１０ＣＡクランクカウンタの値で定まる値として初期化する（ステップＳ７１）。尚、マイコン１３２は、１０ＣＡクランクカウンタの値に基づいて、記憶部１３２ｒが記憶するテーブルから区間番号を検索すると共に、検索した区間番号の次の番号を区間Ｎｏカウンタの値とする構成を採用できる。記憶部１３２ｒが記憶するテーブルは、区間番号と区間の終わりを表す第２の歯の位置とを関連付けたテーブルだからである。
【０１７０】
次に、マイコン１３２は、禁止フラグを「ON」とする（ステップＳ７２）。その後、マイコン１３２は、逆回転カウンタの値を「0」とする（ステップＳ７３）。その後、マイコン１３２は、区間初期化処理の実行を終了する。
【０１７１】
尚、区間初期化処理は、区間初期化部１３２ｌを実現するためにマイコン１３２が実行する処理である。また、ステップＳ３２において判断したように、区間更新処理は、ロータ１１０の回転数が「100rpm」を上回ったことで、逆転が生じ難い状況において実行される。よって、この構成によれば、エンジンが高回転する場合に効率良く区間を初期化できる。
【０１７２】
次に、図２１を参照して、マイコン１３２が実行する再始動時検出処理について説明する。図２１は、マイコン１３２が実行する再始動時検出処理の一例を表すフローチャートである。
【０１７３】
先ず、マイコン１３２は、禁止フラグが「ON」であるか否かを判断する（ステップＳ８１）。マイコン１３２は、禁止フラグが「ON」である（つまり、再始動時検出処理の実行を禁止する）と判断する場合にはステップＳ８５の処理を実行し、そうでない場合にはステップＳ８２の処理を実行する。
【０１７４】
ステップＳ８１において、マイコン１３２は、禁止フラグが「ON」でないと判断する場合には、区間Ｎｏカウンタの値に基づいて１０ＣＡクランクカウンタを設定する（ステップＳ８２）。尚、マイコン１３２は、区間Ｎｏカウンタの値に基づいて、記憶部１３２ｒが記憶するテーブルから区間の終わりに形成された第２の歯の位置を表す１０ＣＡクランクカウンタの値を検索する。次に、マイコン１３２は、検索した１０ＣＡクランクカウンタの値を１０ＣＡクランクカウンタに代入する構成を採用できる。
【０１７５】
その後、マイコン１３２は、クランク確定フラグを「ON」とする（ステップＳ８３）。ロータ１１０の位置を検出して確定したためである。次に、マイコン１３２は、再始動フラグを「OFF」とする（ステップＳ８４）。既に再始動したためである。その後、マイコン１３２は、再始動時検出処理の実行を終了する。
【０１７６】
この構成によれば、エンジン停止の際にセンサを通過した第２の歯が区分する区間に基づいてエンジン始動の際のクランクの位置を検出するため、エンジン停止の際に区間内でクランクが逆回転しても、エンジン始動の際に短時間で精度良くクランクの位置を検出できる。
【０１７７】
ステップＳ８１において、マイコン１３２は、禁止フラグが「ON」であると判断する場合には、クランク初期化要求フラグの値を「ON」として、欠歯検出処理の実行を要求する（ステップＳ８５）。その後、マイコン１３２は、再始動時検出処理の実行を終了する。
【実施例２】
【０１７８】
第２の実施例においては、スタンバイＲＡＭが記憶する区間番号に基づいてクランクの位置を検出するクランク位置検出システム２について説明する。
【０１７９】
実施例２で説明するクランク位置検出システム３は、ロータ２１０、ＭＲＥセンサ２２０、及びＥＦＩ−ＥＣＵ２３０で構成される。また、ＥＦＩ−ＥＣＵ２３０は、波形整形回路２３１及びマイコン２３２で構成される。実施例２で説明するクランク位置検出システム３は、実施例１で説明したクランク位置検出システム２とほぼ同様の構成を有するため、以下主に、相違点について説明する。
【０１８０】
マイコン２３２は、電源が供給される間において、区間番号を表す区間Ｎｏカウンタを記憶し続けるスタンバイＲＡＭ２３２ｃを備える点で、実施例１で説明したマイコン１３２と異なる。スタンバイＲＡＭ２３２ｃは、例えば、ＳＲＡＭ（Static  RAM）等の揮発性メモリで構成される。
【０１８１】
ここで、図２２を参照して、実施例２において、マイコン２３２が実行する始動処理について説明する。図２２は、実施例２において、マイコン２３２が実行する始動処理の一例を表すフローチャートである。
【０１８２】
先ず、マイコン２３２は、ステップＳ９１からＳ９８の処理を実行する（ステップＳ９１からＳ９８）。ステップＳ９１からＳ９８の処理は、実施例１で説明したステップＳ０１からＳ０８の処理とほぼ同様であるため説明を省略する。
【０１８３】
ステップＳ９８を実行した後に、マイコン２３２は、バッテリクリアが無かったか否かを判断する（ステップＳ９９）。マイコン２３２は、バッテリクリアが無かったと判断する場合にはステップＳ１００の処理を実行し、そうでない場合には始動処理の実行を終了する。尚、バッテリクリアとは、車両が搭載するバッテリが行うスタンバイＲＡＭ２３２ｃに対する電源の供給が、前回のエンジン停止から現在までに途絶えることで、スタンバイＲＡＭ２３２ｃの記憶するエンジン停止の際の区間Ｎｏカウンタの値がクリアされることをいう。
【０１８４】
ステップＳ９９において、マイコン２３２は、バッテリクリアが無かったと判断する場合には、禁止フラグをＯＦＦとする（ステップＳ１００）。次に、マイコン２３２は、再始動フラグを「ON」にする（ステップＳ１０１）。スタンバイＲＡＭ２３２ｃが記憶する区間Ｎｏカウンタを用いて再始動時検出処理を実行することで、短時間で精度良くクランクの位置を検出するためである。尚、図示を省略したが、マイコン２３２は、スタンバイＲＡＭ２３２ｃが記憶する値を、区間Ｎｏカウンタへ代入する。その後、マイコン２３２は、始動処理の実行を終了する。
【０１８５】
次に、図２３を参照して、実施例２において、マイコン２３２が実行する第２割込処理について説明する。図２３は、実施例２において、マイコン２３２が実行する第２割込処理の一例を表すフローチャートである。
【０１８６】
先ず、マイコン２３２は、ステップＳ１１１からＳ１２０の処理を実行する（ステップＳ１１１からＳ１２０）。尚、ステップＳ１１１からＳ１２０の処理は、実施例１で説明したステップＳ３１からＳ４０の処理と同様であるので説明を省略する。
【０１８７】
ステップＳ１２０を実行した後に、マイコン２３２は、区間Ｎｏカウンタの値をスタンバイＲＡＭ２３２ｃへ保存する（ステップＳ１２１）。
【０１８８】
ここで、例えば、エンジン停止後に車両からキーが抜き取られるなどして、マイコン２３２に対する電源の供給が停止した場合であっても、例えば、ボタン電池等がスタンバイＲＡＭ２３２ｃに電源を供給する限り（つまり、バッテリクリアが生じない限り）、スタンバイＲＡＭ２３２ｃは、区間Ｎｏカウンタの値を記憶する。よって、この構成によれば、マイコン２３２に対する電源の供給が停止した場合であっても、スタンバイＲＡＭ２３２ｃが記憶する区間Ｎｏカウンタを用いて再始動時検出処理を実行できるため、短時間で精度良くクランクの位置を検出できる。
【実施例３】
【０１８９】
第３の実施例においては、欠歯の代わりに、第１の歯及び第２の歯と異なる形状の第３の歯を検出することでクランクの位置を検出するクランク位置検出システム４について説明する。
【０１９０】
実施例３で説明するクランク位置検出システム４は、ロータ３１０、ＭＲＥセンサ３２０、及びＥＦＩ−ＥＣＵ３３０で構成される。また、ＥＦＩ−ＥＣＵ３３０は、波形整形回路３３１及びマイコン３３２で構成される。実施例３で説明するクランク位置検出システム４は、実施例１で説明したクランク位置検出システム２とほぼ同様の構成を有するため、以下主に、相違点について説明する。
【０１９１】
先ず、図２４を参照して、ロータ３１０及びＭＲＥセンサ３２０について説明する。図２４は、実施例３におけるロータ３１０及びＭＲＥセンサ３２０の一例を表す図である。
【０１９２】
図２４（ａ）は、図２４（ｂ）のＭＲＥセンサ１２０をＧＧ方向から示す正面図である。尚、図２４（ａ）は、実施例１で参照した図８（ａ）とほぼ同様の内容を図示する。図２４（ａ）に示すＭＲＥセンサ３２０は、実施例１のＭＲＥセンサ１２０と同様であるため説明を省略する。つまり、ＭＲＥセンサ３２０は、ＭＲＥセンサ１２０が有する磁気抵抗素子ＭＲ１２及びＭＲ１２に相当する磁気抵抗素子ＭＲ３２及びＭＲ３２を有する。
【０１９３】
図２４（ａ）に示すロータ３１０は、回転方向に９０ＣＡ間隔で第１の歯が形成され、第１の歯の間に１０ＣＡ間隔で第２の歯が形成されている点で、実施例１のロータ１１０と異なる。また、ロータ３１０は、欠歯の代わりに第３の歯が形成されている点で実施例１のロータ１１０と異なる。
【０１９４】
図２４（ｂ）は、第３の歯の一例を表す図である。また、図２４（ｂ）は、図２４（ａ）のロータ２１０をＨＨ方向から示した側面図である。図２４（ｂ）に示すように、第３の歯は、回転軸から見た第３の歯の厚みが磁気抵抗素子ＭＲ３２の厚みと略一致する形状を有する。また、第３の歯は、磁気抵抗素子ＭＲ３２の下を通過するが、磁気抵抗素子ＭＲ３１の下を通過しない。これによって、第３の歯は、ＭＲＥセンサ３２０を通過することで、磁気抵抗素子ＭＲ３２の抵抗値を変化させるが、磁気抵抗素子ＭＲ３１の抵抗値をほとんど変化させない。この点で、磁気抵抗素子ＭＲ３１の抵抗値を変化させるが、磁気抵抗素子ＭＲ３２の抵抗値をほとんど変化させない第１の歯と相違する。
【０１９５】
次に、図２５を参照して、波形整形回路３３１が入出力する信号について説明する。図２５は、波形整形回路３３１が入出力する信号の一例を表す図である。尚、図２５は、実施例１で説明した図１１とほぼ同様の内容を図示する。
【０１９６】
図２５（ａ）は、波形整形回路３３１に信号を入力するＭＲＥセンサ３２０を通過する歯を概念的に表す図である。つまり、図２５（ａ）は、時刻ｔ４を除く時刻ｔ１からｔ６において、ロータ３１０に形成された第２の歯がＭＲＥセンサ３２０を通過したことを表す。また、時刻ｔ４においては、第３の歯がＭＲＥセンサ３２０を通過したことを表す。
【０１９７】
図２５（ｂ）は、波形整形回路３３１が、ＮＥコネクタを介して接続するＭＲＥセンサ３２０から取得する信号を表す図である。図２５（ｂ）は、第２の歯の通過があった時刻ｔ１、ｔ２、ｔ３、ｔ５、及びｔ６付近において、取得した電圧が、図１０（ｄ）に示す波形を描いて所定の閾値１「Vth1」を超え、かつ所定の閾値２「Vth2」を下回ったことを表す。また、第３の歯の通過があった時刻ｔ４においては、波形整形回路３３１が取得した電圧は、所定の閾値２「Vth2」を下回ったが、所定の閾値１「Vth1」を上回わらなかったことを表す。
【０１９８】
図２５（ｃ）は、波形整形回路３３１が、ＮＥ３６ポート１を介して接続するマイコン３３２へ出力する信号を表す図である。図２５（ｃ）は、第２の歯の通過があった時刻ｔ１、ｔ２、ｔ３、ｔ５、及びｔ６付近において、出力した信号が「HI」であることを表す。また、図２５（ｃ）は、その他の時刻において、出力した信号が「LO」であるを表す。
【０１９９】
図２５（ｄ）は、波形整形回路３３１が、ＮＥ３６ポート２を介してマイコン３３２へ出力する信号を表す図である。図２５（ｄ）は、第２の歯及び第３の歯の通過があった時刻ｔ１から６付近において「HI」を、その他の時刻において「LO」を出力したことを表す。
【０２００】
この構成によれば、ＮＥ３６ポート１が「LO」の信号を出力し、かつＮＥ３６ポート２が「HI」の信号を出力した場合に、マイコン３３２は、欠歯に代わる第３の歯がＭＲＥセンサ３２０を通過したことを検出できる。
【０２０１】
また、この構成によれば、ＮＥ３６ポート１が「HI」の信号を出力し、かつＮＥ３６ポート２が「HI」の信号を出力した場合に、マイコン３３２は、非欠歯である第２の歯がＭＲＥセンサ３２０を通過したことを検出できる。
【０２０２】
よって、この構成によれば、欠歯に代わる第３の歯がＭＲＥセンサ３２０を通過したことを検出できるため、エンジンの回転数が変化した場合であっても、精度良くロータ３１０の位置を検出できる。
【０２０３】
マイコン１３２、２３２、及び３３２が実現する機能は、演算部がＲＯＭ及びＲＡＭの少なくともひとつに格納されたプログラムを実行することによって実現される。また、このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供できる。
【０２０４】
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【図面の簡単な説明】
【０２０５】
【図１】従来の制御装置を備えるクランク位置検出システムの一例を表すシステム構成図である。
【図２】ＭＲＥセンサの一例を表す構成図である。
【図３】磁界の変化が磁気抵抗素子の電気抵抗に与える影響について説明するための図である。
【図４】波形整形回路が入出力する信号の一例を表す図である。
【図５】マイコンの一構成例を表すハードウェア構成図である。
【図６】従来の制御装置を備えるクランク位置検出システムの問題点について説明するための図である。
【図７】本件発明の制御装置を備えるクランク位置検出システムの一例を表すシステム構成図である
【図８】本件発明の制御装置に接続するＭＲＥセンサの一例を表す図である。
【図９】本件発明の制御装置が制御するロータの一構成例を表す図である。
【図１０】第１の歯及び第２の歯の形状について説明するための図である。
【図１１】本件発明の制御装置を構成する波形整形回路が入出力する信号の一例を表す図である。
【図１２】ロータと波形整形回路が出力する信号との関係を説明するための図である。
【図１３】本件発明の制御装置を構成するマイコンの一構成例を表す機能ブロック図である。
【図１４】マイコンが実行する処理とエンジンの状態との一関係を表す図である。
【図１５】再始動時検出部が実行する再始動時検出処理の一例を概説するための図である。
【図１６】マイコンが実行する始動処理の一例を表すフローチャートである。
【図１７】マイコンが実行する停止判定処理の一例を表すフローチャートである。
【図１８】マイコンが実行する第１割込処理の一例を表すフローチャートである。
【図１９】マイコンが実行する第２割込処理の一例を表すフローチャートである。
【図２０】マイコンが実行する区間更新処理等の一例を表すフローチャートである。
【図２１】マイコンが実行する再始動時処理等の一例を表すフローチャートである。
【図２２】実施例２において、マイコンが実行する始動処理の一例を表すフローチャートである。
【図２３】実施例２において、マイコンが実行する第２割込処理の一例を表すフローチャートである。
【図２４】実施例３におけるロータ及びＭＲＥセンサの一例を表す図である。
【図２５】実施例３において波形整形回路が入出力する信号の一例を表す図である。
【符号の説明】
【０２０６】
１…クランク位置検出システム  ２…クランク位置検出システム  
１０…ロータ                  １０ｚ…クランク軸            
１１…クランク歯              
２０…ＭＲＥセンサ（第１検出部・第２検出部）
３０…ＥＦＩ−ＥＣＵ          ３１…波形整形回路            
３２…マイコン                ３２ａ…ＣＰＵ                
３２ｂ…ＲＯＭ                ３２ｃ…ＲＡＭ                
３２ｅ…Ｉ／Ｆ                ３２ｆ…バス                  
１１０…ロータ                １１０ｚ…クランク軸          
１１１…第１の歯（第１歯）    １１２…第２の歯（第２歯）    
１２０…ＭＲＥセンサ（第１検出部・第２検出部）          
１３０…ＥＦＩ−ＥＣＵ        １３１…波形整形回路          
１３２…マイコン              １３２ｇ…制御部              
１３２ｈ…始動部              １３２ｉ…停止判定部          
１３２ｊ…欠歯検出部          １３２ｋ…位置更新部          
１３２ｌ…区間初期化部        １３２ｍ…区間更新部          
１３２ｎ…第１フェールセーフ部１３２ｏ…逆転回数算出部      
１３２ｐ…第２フェールセーフ部１３２ｑ…再始動検出部        
１３２ｒ…記憶部              １３２ｓ…実制御部            
３１０…ロータ                ３１０ｚ…クランク軸          
３１２…第２の歯（第２歯）    ３１３…第３の歯（第３歯）    
３２０…ＭＲＥセンサ（第１検出部・第２検出部）          
ＭＧ…磁石                    ＭＧ１…磁石                  
ＭＧ３…磁石                  ＭＲ１…磁気抵抗素子          
ＭＲ１１…磁気抵抗素子        ＭＲ１２…磁気抵抗素子        
ＭＲ２…磁気抵抗素子          ＭＲ３１…磁気抵抗素子        
ＭＲ３２…磁気抵抗素子        
【図１】
2009281336.tif 000003
【図２】
2009281336.tif 000004
【図３】
2009281336.tif 000005
【図４】
2009281336.tif 000006
【図５】
2009281336.tif 000007
【図６】
2009281336.tif 000008
【図７】
2009281336.tif 000009
【図８】
2009281336.tif 000010
【図９】
2009281336.tif 000011
【図１０】
2009281336.tif 000012
【図１１】
2009281336.tif 000013
【図１２】
2009281336.tif 000014
【図１３】
2009281336.tif 000015
【図１４】
2009281336.tif 000016
【図１５】
2009281336.tif 000017
【図１６】
2009281336.tif 000018
【図１７】
2009281336.tif 000019
【図１８】
2009281336.tif 000020
【図１９】
2009281336.tif 000021
【図２０】
2009281336.tif 000022
【図２１】
2009281336.tif 000023
【図２２】
2009281336.tif 000024
【図２３】
2009281336.tif 000025
【図２４】
2009281336.tif 000026
【図２５】
2009281336.tif 000027