(57)【要約】【課題】エンジンの始動時に最初に行われる点火が無効になるのを防いでエンジンの始動性を向上させた２サイクル２気筒直噴エンジンの制御装置を提供する。【解決手段】エンジンと同期回転するリラクタのエッジを検出してリラクタ入り信号Ｐ１及びリラクタ抜け信号Ｐ２を発生する信号発生装置２を設ける。入り信号Ｐ１が発生するクランク角位置をエンジンの始動時の第１気筒の燃料噴射開始時期として許容し得る位置に設定する。エンジンの始動時に最初にリラクタ入り信号Ｐ１が発生したときにこのリラクタ入り信号の発生時に第１気筒に燃料を噴射するように燃料噴射制御手段を構成する。２回目以降の噴射開始時期、及び点火時期は、リラクタ抜け信号Ｐ２を基準にして計測する。【選択図】　　図１
2004084578.tif 000002
【特許請求の範囲】
【請求項１】
燃料噴射装置から各気筒内に直接燃料が噴射される２サイクル直噴エンジンの燃料噴射開始時期と点火時期とを制御する制御装置において、
１つのリラクタを有して前記エンジンのクランク軸に取り付けられたロータと、前記リラクタの回転方向の前端側エッジ及び後端側エッジをそれぞれ検出してリラクタ入り信号及びリラクタ抜け信号を発生するリラクタ入り信号・抜け信号発生部とを備えて、前記エンジンのある気筒の始動時の燃料噴射開始時期として許容される時期に前記リラクタ入り信号が発生するように構成された信号発生装置と、前記リラクタ抜け信号の発生位置を基準にして各気筒の点火時期を検出して各気筒での点火動作を行わせる点火制御手段と、前記リラクタ抜け信号の発生位置を基準にして各気筒の噴射開始時期を検出して各気筒内への燃料噴射を行わせる噴射制御手段とを具備し、
前記噴射制御手段は、前記エンジンの始動時に前記リラクタ入り・抜け信号発生部が最初に発生した信号がリラクタ入り信号であるときに、該最初のリラクタ入り信号の発生時に前記のある気筒で第１回目の燃料噴射を行わせた後、前記エンジンの回転速度がアイドリング速度よりも低く設定された設定速度に達するまでの間に各気筒で行う２回目以降のすべての燃料噴射を、前記リラクタ抜け信号を基準にして検出した始動時の噴射開始時期に行わせ、前記エンジンの始動操作開始後前記リラクタ入り・抜け信号発生部が最初に発生した信号がリラクタ抜け信号であるときには、前記エンジンの回転速度が前記設定速度に達するまでの間に各気筒で行うすべての燃料噴射を、前記リラクタ抜け信号を基準にして検出した始動時の噴射開始時期に行わせるように構成されていること、
を特徴とする２サイクル直噴エンジンの制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、２サイクル直噴エンジンの点火と燃料噴射とを制御する制御装置に関する。
【０００２】
【従来の技術】
スクーター、スノーモービル、バギー等のように、簡便であることを重視する乗り物の原動機として、２サイクルエンジンが多く用いられている。またこれらの乗り物では、スタータモータを備えた始動装置を用いずに、リコイルスタータや、キックスタータ等の、人力により操作する始動装置を用いてエンジンを始動させることが多い。
【０００３】
近年、排気ガスの浄化や、燃費の節約などを図るために、エンジンの制御をきめ細かく行うことが必要になっている。そのため、燃料噴射装置から気筒内に直接燃料を噴射する直噴エンジンが用いられるようになっており、該エンジンの燃料噴射開始時期や点火時期を制御する制御装置として、マイクロプロセッサを備えたものが用いられるようになっている。
【０００４】
マイクロプロセッサを用いてエンジンを制御する場合には、エンジンの回転速度を検出したり、演算された点火時期を検出したりするために、常にマイクロプロセッサにエンジンの回転情報（クランク角情報及び回転速度情報）を与える必要がある。
【０００５】
そのため、マイクロプロセッサを用いたエンジンの制御装置においては、エンジンの回転に同期して信号を発生する信号発生装置をエンジンに取り付けて、この信号発生装置の出力からエンジンの点火時期や燃料の噴射開始時期などを制御するために必要なエンジンの回転情報を得るようにしている。
【０００６】
エンジンに取り付けられる信号発生装置としては、１つのリラクタと、等角度間隔で配置された多数の歯部を有するギアとを備えて、エンジンのクランク軸に取り付けられたロータと、リラクタの回転方向の前端側エッジ及び後端側エッジをそれぞれ検出してリラクタ入り信号及びリラクタ抜け信号を発生するリラクタ入り信号・抜け信号発生部と、上記ギアの各歯部の回転方向の前端側エッジ及び後端側エッジのうちのいずれか一方を検出する毎に（一定のクランク角毎に）ギア信号を発生するギア信号発生部とを備えたものがよく用いられている。
【０００７】
上記入り信号・抜け信号発生部は、リラクタの回転方向の前端側エッジ及び後端側エッジをそれぞれ検出したときに極性が異なる２つのパルス信号を発生する１つのパルサと、このパルサが発生する２つのパルス信号をマイクロプロセッサが認識し得る波形のリラクタ入り信号及びリラクタ抜け信号に変換する波形整形回路とにより構成される。
【０００８】
またギア信号発生部は、ロータに設けられたギアの各歯部の回転方向の前端側エッジ及び後端側エッジをそれぞれ検出したときに極性が異なる２つのパルスを発生するギアセンサ（上記はパルサと同様の構造を有するセンサ）と、該ギアセンサが出力するパルスのうち、各歯部の回転方向の前端側エッジ及び後端側エッジのうちのいずれか一方を検出したときに発生するパルスをマイクロプロセッサが認識し得る波形のギア信号に変換する波形整形回路とにより構成される。ギア信号発生部が発生する一連のギア信号は、一定の角度毎に発生するパルス波形の信号であり、例えば、ギアが３０個の歯部を等角度間隔で有している場合には、クランク軸が１２°回転する毎に発生するパルス波形の信号である。
【０００９】
上記のような信号発生装置を用いる場合には、リラクタ入り信号及びリラクタ抜け信号の発生間隔や、所定個数のギア信号が発生する間の時間（クランク軸が一定角度回転するのに要する時間）からエンジンの回転速度を検出することができる。また、リラクタ入り信号及びリラクタ抜け信号からエンジンの特定のクランク角位置を検出することができ、これらの信号により検出された特定のクランク角位置を基準位置として、該基準位置で各気筒の燃料噴射開始時期及び点火時期の計測を開始させることにより、各気筒の点火時期及び噴射開始時期を検出することができる。
【００１０】
マイクロプロセッサは、信号発生装置の出力から検出した回転速度を含む各種の制御条件に対してエンジンの点火時期及び燃料噴射開始時期を演算し、リラクタ入り信号またはリラクタ抜け信号により基準位置が検出されたときに、演算した噴射開始時期及び点火時期の計測を開始させて、それぞれの計測が完了したときに各気筒での燃料噴射動作及び点火動作を行わせる。
【００１１】
【発明が解決しようとする課題】
各気筒内に直接燃料を噴射する直噴エンジンにおいて、各気筒で点火動作を行わせた際に有効な爆発を生じさせるためには、点火時期よりも前にその気筒内への燃料噴射が行われていなければならない。
【００１２】
ところが、従来の２サイクル直噴エンジン用の制御装置では、エンジンの始動時においても、信号発生装置が発生するリラクタ入り信号またはリラクタ抜け信号の発生位置を基準位置として用いて、この基準位置で、点火時期及び燃料噴射開始時期の計測を開始させるようにしていたため、エンジンの始動開始後、最初に発生したリラクタ入り信号またはリラクタ抜け信号を用いて計測した点火時期において第１回目の点火を行う際に、その点火を行う気筒内に予め燃料を噴射しておくことができなかった。そのため、従来の制御装置を用いた場合には、始動開始後最初に行われる点火動作が無効になり、エンジンの始動性が悪くなるという問題があった。
【００１３】
本発明の目的は、始動操作開始後最初に行われる点火に先だって、その点火が行われる気筒内に必ず燃料を噴射しておくことができるようにして、エンジンの始動性を向上させた２サイクル直噴エンジンの制御装置を提供することにある。
【００１４】
【課題を解決するための手段】
本発明は、燃料噴射装置から各気筒内に直接燃料が噴射される２サイクル直噴エンジンの燃料の噴射開始時期と点火時期とを制御する制御装置に係わるもので、本発明においては、１つのリラクタを有してエンジンのクランク軸に取り付けられたロータと、リラクタの回転方向の前端側エッジ及び後端側エッジをそれぞれ検出してリラクタ入り信号及びリラクタ抜け信号を発生するリラクタ入り信号・抜け信号発生部とを備えて、エンジンのある気筒の始動時の燃料噴射開始時期として許容される時期にリラクタ入り信号が発生するように構成された信号発生装置と、リラクタ抜け信号の発生位置を基準にして各気筒の点火時期を検出して各気筒での点火動作を行わせる点火制御手段と、リラクタ抜け信号の発生位置を基準にして各気筒の噴射開始時期を検出して各気筒内への燃料噴射を行わせる噴射制御手段とが設けられる。
【００１５】
そして、本発明においては、上記噴射制御手段が、エンジンの始動時にリラクタ入り・抜け信号発生部が最初に発生した信号がリラクタ入り信号であるときに、該最初のリラクタ入り信号の発生時にある気筒で第１回目の燃料噴射を行わせた後、エンジンの回転速度がアイドリング速度よりも低く設定された設定速度に達するまでの間に各気筒で行う２回目以降のすべての燃料噴射を、リラクタ抜け信号を基準にして検出した始動時の噴射開始時期に行わせ、エンジンの始動操作開始後前記リラクタ入り・抜け信号発生部が最初に発生した信号がリラクタ抜け信号であるときには、前記エンジンの回転速度が前記設定速度に達するまでの間に各気筒で行うすべての燃料噴射を前記リラクタ抜け信号を基準にして検出した始動時の噴射開始時期に行わせるように構成される。
【００１６】
上記のように構成すると、エンジンの始動時に必ず、各気筒内に燃料を噴射してから各気筒での点火動作を行わせることができるため、始動時に行われる第１回目の点火動作が無効になるのを防ぐことができ、エンジンの始動性を向上させることができる。
【００１７】
【発明の実施の形態】
以下、図面を参照して、本発明を２サイクルエンジンに適用した場合の実施形態を説明する。
【００１８】
本発明の実施形態の説明は下記の目次に従って行う。
【００１９】
（１）ハードウェアの構成及び動作
信号発生装置の構成及び動作
電源部の構成
点火回路の構成及び動作
燃料噴射装置の構成及び動作
（２）マイクロプロセッサにより実現される機能実現手段の構成及び動作
回転速度検出手段
始動時回転方向判定手段
始動時点火制御手段
始動時噴射制御手段
定常時点火制御手段
定常時噴射制御手段
（３）エンジンの始動時から始動完了までの動作
（４）各機能実現手段を実現するためにマイクロプロセッサに実行させるプログラムのアルゴリズム
（１）ハードウェアの構成及び動作
図１ないし図３は本発明に係わる制御装置のハードウェアの構成を示したもので、図１は電気的な構成を示したブロック図、図２及び図３はそれぞれ同実施形態で用いる信号発電機の機械的な構成を示した正面図及び断面図である。
【００２０】
なお以下の説明で用いる図面において、＃１及び＃２の表記は、それぞれエンジンの第１気筒及び第２気筒に係わるものであることを示すものである。
【００２１】
図１において１はＣＰＵ，ＲＯＭ，ＲＡＭ，タイマなどを有するマイクロプロセッサ、２は信号発生装置、３は電源部、４及び５はそれぞれ第１気筒用及び第２気筒用の点火回路、６及び７はそれぞれ第１気筒用及び第２気筒用の燃料噴射装置である。これらの各部の構成は下記の通りである。
【００２２】
［信号発生装置の構成及び動作］
信号発生装置２は、図２及び図３に示したように、ロータ１０、パルサ１１及びギアセンサ１２を備えた信号発電機１３と、パルサ１１が出力する負極性及び正極性のパルス信号Ｖｐ１及びＶｐ２をマイクロプロセッサ１が認識し得る波形の信号Ｐ１及びＰ２に変換する波形整形回路１４及び１５と、ギアセンサ１２が出力する負極性及び正極性のパルスＶｓ１及びＶｓ２のうちのいずれか一方（図示の例ではＶｓ２）をマイクロプロセッサが認識し得る波形の信号Ｐｇ　に変換する波形整形回路１６とにより構成されている。
【００２３】
図２及び図３に示した信号発電機１３において、ロータ１０は、鉄等の強磁性材料によりカップ状に形成されたロータヨーク１７を備えていて、ロータヨーク１７の周壁部１７ａの外周にリラクタ１８が形成されている。図示のリラクタ１８は、ヨーク１７の周壁部の一部を径方向の内側から外側に打ち出すことにより形成された円弧状の突起からなっている。リラクタ１８は、その周方向をロータヨーク１７の周方向に一致させた状態で設けられていて、その極弧角は６０°に設定されている。ロータヨーク１７の周壁部１７ａの外周には、リラクタ１８に対して軸線方向に位置をずらした状態で配置されたリング状のギア１９が、圧力嵌めなどの方法により嵌合固定されている。図示のギア１９は、鉄などの強磁性材料からなっていて、等角度間隔（１２°間隔）で配置された３０個の歯部１９ａ，１９ａ，…を有し、リラクタ１８よりもヨーク１７の底壁部１７ｂ側に寄った位置に固定されている。ロータヨーク１７の底壁部１７ａの中央部に形成された孔に回転軸取り付け用のボス１７ｃが嵌合され、ボス１７ｃの一端に設けられたフランジ部１７ｃ１がリベット１７ｄによりロータヨーク１７の底壁部１７ｂに締結されている。この例では、リラクタ１８が外周に形成されたロータヨーク１７と、ロータヨーク１７に取り付けられたギア１９とによりロータ１０が構成されている。図示のロータ１０は、そのヨーク１７の底壁部１７ｂをエンジンのケースと反対側に向けた状態でエンジンのクランク軸に取り付けられる。
【００２４】
また図示の例では、ロータヨーク１７の周壁部の内周に永久磁石２０が固定されて、ロータヨーク１７と磁石２０とにより磁石回転子が構成されている。この磁石回転子は、エンジンのケースなどに固定された図示しない電機子とともに磁石発電機を構成するために用いられる。
【００２５】
パルサ１１は、リラクタ１８に対向する磁極部１１ａを先端に有する鉄心と、該鉄心に巻回された信号コイル１１ｂ（図１参照）と、該鉄心に磁気結合された永久磁石とを有する公知の誘導子形の信号発電子で、その鉄心の先端の磁極部１１ａがリラクタ１８に対向し得るように配置されて、エンジンのケース等の固定箇所に取り付けられている。
【００２６】
パルサ１１は、リラクタ１８の回転方向の前端側エッジ１８ａが該パルサの磁極部１１ａの位置を通過する際（リラクタ１８の回転方向の前端側エッジを検出した際）及びリラクタ１８の回転方向の後端側エッジ１８ｂが磁極部１１ａの位置を通過する際（リラクタの回転方向の後端側エッジを検出した際）にそれぞれ生じる磁束（信号コイル１１ｂと鎖交する磁束）の変化に応答して、信号コイル１１ｂから極性が異なるパルス信号Ｖｐ１及びＶｐ２（図４Ａ参照）を出力する。
【００２７】
本明細書では、これらのパルス信号のうち、リラクタ１８の回転方向の前端側エッジが検出されたとき（リラクタがパルサの磁極に対向する位置に入る際）に発生するパルス信号Ｖｐ１を「リラクタ入りパルス」と呼び、リラクタ１８の回転方向の後端側エッジが検出されたとき（リラクタがパルサの磁極に対向する位置から抜ける際）に発生するパルス信号Ｖｐ２を「リラクタ抜けパルス」と呼ぶ。
【００２８】
またギアセンサ１２は、パルサ１１と同様の構造を有する信号発電子からなるもので、その鉄心の磁極部１２ａがギア１９の一連の歯部１９ａ，１９ａ，…に対向し得るように配置されて、エンジンのケースなどの固定箇所に取り付けられている。
【００２９】
ギアセンサ１２は、ギア１９の各歯部の回転方向の前端側エッジ及び後端側エッジをそれぞれ検出したときに、その信号コイル１２ｂ（図１参照）から極性が異なるパルス信号Ｖｓ１及びＶｓ２を発生する。
【００３０】
図１に示した波形整形回路１４及び１５はそれぞれ、図４（Ａ）に示したリラクタ入りパルスＶｐ１及びリラクタ抜けパルスＶｐ２をそれぞれ負論理のパルス波形からなるリラクタ入り信号Ｐ１及びリラクタ抜け信号Ｐ２に変換してマイクロプロセッサ１のポートＡ１及びＡ２に入力する。マイクロプロセッサ１は、リラクタ入り信号Ｐ１のダウンエッジを検出したとき及びリラクタ抜け信号Ｐ２のダウンエッジを検出したときにそれぞれリラクタ入りパルス及びリラクタ抜けパルスが発生したことを認識する。
【００３１】
また波形整形回路１６は、ギアセンサ１２が出力するパルス信号Ｖｓ１及びＶｓ２のうちの一方を、図４（Ｄ）に示したようなパルス波形のギア信号Ｐｇに変換してマイクロプロセッサ１のポートＡ３に入力する。マイクロプロセッサは、１２°間隔でギア信号Ｐｇの各ダウンエッジを検出する毎に各ギア信号が発生したことを認識する。
【００３２】
本実施形態では、パルサ１１と、波形整形回路１４及び１５とにより、リラクタの回転方向の前端側エッジ及び後端側エッジをそれぞれ検出してリラクタ入り信号及びリラクタ抜け信号を発生するリラクタ入り信号・抜け信号発生部が構成されている。
【００３３】
またギアセンサ１２と波形整形回路１６とにより、ギアの各歯部の回転方向の前端側エッジ及び後端側エッジのうちのいずれか一方を検出する毎にギア信号を発生するギア信号発生部が構成されている。
【００３４】
図４において、＃１ＴＤＣと表示されたタイミングは、エンジンの第１気筒のピストンの上死点に相当するクランク角位置に対応するタイミングであることを示し、＃２ＴＤＣと表示されたタイミングは、エンジンの第２気筒のピストンの上死点に相当するクランク角位置に対応するタイミングを示している。
【００３５】
またＢＴＤＣＸ°は上死点よりＸ°だけ進角したクランク角位置に対応するタイミングであることを示している。例えば、＃１ＢＴＤＣ７５°と表示されたタイミングは、第１気筒のピストンの上死点よりも７５°進角したクランク角位置に対応するタイミングであることを意味している。
【００３６】
ＢＤＣは、ピストンの下死点に相当するクランク角位置に対応するタイミングであることを示しており、＃１ＢＤＣは、第１気筒のピストンの下死点に相当するクランク角位置に対応するタイミングであることを示している。
【００３７】
本実施形態では、前述のように、リラクタ１８の極弧角が６０°に設定されていて、リラクタ入り信号Ｐ１が第１気筒の上死点前７５°のクランク角位置で発生し、リラクタ抜け信号Ｐ２が第１気筒の上死点前１５°のクランク角位置で発生するように、パルサ１１の設置位置が調整されている。
【００３８】
リラクタ入り信号Ｐ１が発生するクランク角位置（ＢＴＤＣ７５°）は、機関の始動時に第１気筒内に燃料を噴射する位置として許容される範囲の位置である。
【００３９】
また本実施形態では、マイクロプロセッサにより、クランク軸が１回転する間にギア信号発生部が発生する３０個のギア信号Ｐｇに１ないし３０の番号を付けることにより、各ギア信号を特定するようにしている。
【００４０】
図４に示した例では、マイクロプロセッサがリラクタ抜け信号Ｐ２を発生した直後にマイクロコンピュータにより認識されたギア信号Ｐｇに番号１を付け、以後順次発生するギア信号Ｐｇに２ないし３０の番号を付けることにより、各ギア信号を特定している。そして、ギアセンサ１２をパルサ１１から１８０°離れた位置に配置したときに、２番のギア信号Ｐｇが第１気筒の上死点＃１ＴＤＣに相当するクランク角位置で発生し、１番のギア信号Ｐ１が第１気筒の上死点前１２°のクランク角位置で（第１気筒の始動時の点火時期に）発生するように、リラクタ１８とギア１９との位相関係が設定されている。
【００４１】
このように、各部の位置関係を設定した場合は、１７番目のギア信号Ｐｇが発生するクランク角位置が第２気筒の上死点に相当するクランク角位置に一致し、１６番目のギア信号Ｐｇが発生するクランク角位置が第２気筒の上死点前１２°のクランク角位置（第２気筒の始動時の点火時期）に一致する。
【００４２】
［電源部の構成］
電源部３は、バッテリ３Ａと、バッテリ３Ａの出力電圧を点火回路４及び５に印加するのに適した高い電圧まで昇圧する昇圧回路（ＤＣ／ＤＣコンバータ）３Ｂと、バッテリ３Ａの出力電圧ＶＢ　をマイクロプロセッサ１の電源電圧として適した一定の電圧（例えば５Ｖ）に変換する定電圧電源回路３Ｃとからなっており、定電圧電源回路３Ｃの出力電圧Ｖｃｃはマイクロプロセッサ１の電源端子に印加されている。
【００４３】
なお、図示の例では、バッテリ３Ａを電源としているが、バッテリを搭載しない乗り物を駆動するエンジンを制御する制御装置においては、内燃機関に取り付けた磁石発電機の固定子側に設けたエキサイタコイル（発電コイル）と、該エキサイタコイルの半波の出力をマイクロコンピュータなどを駆動するのに適した直流定電圧に変換する定電圧電源回路とにより電源部３を構成するようにしてもよい。
【００４４】
［点火回路の構成及び動作］
本実施形態ではエンジンが２つの気筒を有しているため、第１気筒用の点火回路４と第２気筒用の点火回路５とが設けられている。これらの点火回路は同一の構成を有するので、図１には、一方の点火回路４の構成のみが示されている。
【００４５】
点火回路４は、点火コイルＴｓｆと、該点火コイルの一次側に設けられて昇圧回路３Ｂの出力でダイオードＤｉを通して一方の極性に充電される点火用コンデンサＣｉと、点火信号Ｓｉ１が与えられたときに導通して、点火用コンデンサＣｉの電荷を点火コイルＴｓｆの一次コイルを通して放電させるように設けられた放電用サイリスタＴｈｉとを備えた周知のコンデンサ放電式の回路からなっており、マイクロプロセッサ１のポートＢ１からサイリスタＴｈｉのゲートに点火信号Ｓｉ１が与えられるようになっている。点火コイルの二次コイルにはエンジンの第１気筒に取り付けられた点火プラグＰＬ１が接続されている。
【００４６】
なお図１では、点火回路４の基本構成のみを示している。実際の点火回路においては、サイリスタＴｈｉをトリガする際に昇圧回路３Ｂの昇圧動作を止めるための回路を付加したり、点火コイルの一次コイルに対して並列にフライホイールダイオードを接続したりするが、図１ではこれらの付加的な要素の図示が省略されている。
【００４７】
図示の点火回路４においては、昇圧回路３Ｂの出力により点火用コンデンサＣｉが図示の極性に充電される。マイクロプロセッサ１からサイリスタＴｈｉに点火信号Ｓｉ１が与えられると、サイリスタＴｈｉが導通するため、点火用コンデンサＣｉの電荷がサイリスタＴｈｉと点火コイルＴｓｆの一次コイルとを通して放電し、このとき流れる放電電流の急峻な立ち上がりにより点火コイルの一次コイルに高い電圧が誘起させられる。この電圧は点火コイルの一次、二次間の巻数比により更に昇圧されるため、エンジンの第１気筒に取り付けられた点火プラグＰＬ１で火花放電が生じてエンジンの第１気筒が点火される。
【００４８】
第２気筒用の点火回路５は、第１気筒用の点火回路４と全く同一に構成され、その点火コイルの二次コイルはエンジンの第２気筒に取り付けられた点火プラグＰＬ２が接続されている。またマイクロプロセッサ１のポートＢ２から点火回路５の放電用サイリスタのゲートに点火信号Ｓｉ２が与えられている。
【００４９】
なお電源部３がエキサイタコイルを電源とするように構成される場合には、エンジンの回転に同期して該エキサイタコイルに誘起する交流電圧の一方の半波で点火用コンデンサＣｉを充電し、該エキサイタコイルの他方の半波の出力電圧を入力電圧とする定電圧電源回路から得られる一定の直流電圧でマイクロプロセッサ１などを駆動する。
【００５０】
なお図１に示した点火回路においては、点火用コンデンサＣｉを点火コイルの一次コイルに対して直列に接続し、点火用コンデンサＣｉと点火コイルの一次コイルとの直列回路に対して並列に放電用サイリスタＴｈｉを接続しているが、点火用コンデンサと放電用サイリスタとの位置を入れ替えて、放電用サイリスタを点火コイルの一次コイルに対して直列に接続し、一次コイルと放電用サイリスタとの直列回路に対して並列に点火用コンデンサＣｉを接続する構成をとる場合もある。
【００５１】
［燃料噴射装置の構成及び動作］
本実施形態では、エンジンに燃料を供給するために、エンジンの気筒内に燃料を直接噴射する方式を採用している。そのため、第１気筒に燃料を噴射する第１気筒用燃料噴射装置６と、第２気筒に燃料を噴射する第２気筒用燃料噴射装置７とが設けられている。
【００５２】
第１気筒用燃料噴射装置６は、エンジンのシリンダヘッドに取り付けられて第１気筒内に直接燃料を噴射する第１気筒用のインジェクタと、マイクロプロセッサ１のポートＢ３から与えられる噴射信号Ｓｊ１に応答して、該噴射信号の信号幅に相当する時間の間第１気筒用のインジェクタに駆動電流を流すインジェクタ駆動回路とにより構成される。
【００５３】
同様に、第２気筒用の燃料噴射装置７は、エンジンのシリンダヘッドに取り付けられて第２気筒内に直接燃料を噴射する第２気筒用のインジェクタと、マイクロプロセッサ１のポートＢ４から与えられる噴射信号Ｓｊ２に応答して、該噴射信号の信号幅により決まる噴射時間の間第２気筒用のインジェクタに駆動電流を流すインジェクタ駆動回路とにより構成される。
【００５４】
図示してないが、燃料タンクから第１気筒及び第２気筒用のインジェクタに燃料を供給する燃料ポンプと、該燃料ポンプから第１気筒及び第２気筒用のインジェクタに供給される燃料の圧力を調整する圧力調整器とが設けられていて、各気筒用のインジェクタにほぼ一定の圧力で燃料が供給されるようになっている。
【００５５】
各気筒用のインジェクタは、インジェクタ駆動回路から所定の駆動電流が与えられている間その弁を開いてエンジンの気筒内に燃料を噴射する。各インジェクタに与えられる燃料の圧力は一定に保たれているため、各インジェクタが噴射する燃料の量は各インジェクタの弁が開いている時間（噴射信号Ｓｊ１またはＳｊ２の信号幅により決まる）により管理される。
【００５６】
（２）マイクロプロセッサにより実現される機能実現手段の構成及び動作
マイクロプロセッサ１は、そのＲＯＭに記憶された所定のプログラムを実行することにより、各種の機能実現手段を構成する。本実施形態では、図７に示すように、回転速度検出手段２１と、始動時回転方向判定手段２２と、始動時点火制御手段２３と、始動時噴射制御手段２４と、定常時点火制御手段２５と、定常時噴射制御手段２６とが、マイクロプロセッサ１と該マイクロプロセッサが実行するプログラムとにより構成される。
【００５７】
これらの機能実現手段のうち、回転速度検出手段２１、始動時回転方向判定手段２２、始動時点火制御手段２３及び始動時噴射制御手段２４と、図１に示したハードウェアとにより、本発明に係わる２サイクルエンジンの始動制御装置が構成される。
【００５８】
以下、上記の各機能実現手段について項を分けて説明する。
【００５９】
［回転速度検出手段］
図７において、回転速度検出手段２１は、信号発生装置２が発生するリラクタ入り信号、リラクタ抜け信号及びギア信号を用いて、エンジンの回転速度の情報を含むデータを求める。
【００６０】
本実施形態の回転速度検出手段２１は、図４に示した３番のギア信号が発生してから７番のギア信号が発生するまでの時間を計測してその計測値（３番のギア信号の発生位置からクランク軸が４８°回転するのに要する時間）を、第１気筒の噴射開始時期を検出する際及び第２気筒の点火時期の検出を行う際にそれぞれ用いる回転速度の情報を含むデータＣＮＴＲＶ２として検出する。
【００６１】
回転速度検出手段２１はまた、１８番のギア信号が発生してから２２番のギア信号が発生するまでの時間を計測してその計測値（１８番のギア信号の発生位置からクランク軸が４８°回転するのに要する時間）を第２気筒の噴射開始時期を検出する際及び第１気筒の点火時期を検出する際に用いる回転速度の情報を含むデータＣＮＴＲＶＴ１として検出する。
【００６２】
回転速度検出手段２１は、更に７番のギア信号が発生してから１８番のギア信号が発生するまでの時間をＣＮＴＲ２１として計測し、２２番のギア信号が発生してから３番のギア信号が発生するまでの時間をＣＮＴＲ１２として計測して、ＣＮＴＲＶ２とＣＮＴＲ２１とＣＮＴＲＶ１とＣＮＴＲ１２との和ＣＮＴＲＶ２＋ＣＮＴＲ２１＋ＣＮＴＲＶ１＋ＣＮＴＲ１２（エンジンが１回転するのに要する時間）をエンジンの平均回転速度の情報を含むデータとして検出する。このデータから検出されるエンジンの平均回転速度を用いて、エンジンの点火時期や噴射開始時期を演算する。
【００６３】
［始動時回転方向判定手段］
本発明においては、リラクタ抜け信号が発生してからリラクタ入り信号が発生するまでの間に発生するギア信号のカウント値、各リラクタ入り信号が発生してから次のリラクタ入り信号が発生するまでの間に発生するギア信号のカウント値、リラクタ入り信号が発生してからリラクタ抜け信号が発生するまでの間に発生するギア信号のカウント値、及び各リラクタ抜け信号が発生してから次のリラクタ抜け信号が発生するまでの間に発生するギア信号のカウント値のそれぞれが、エンジンの始動操作開始後エンジンが正回転を継続したときと、エンジンのピストンが上死点を越えることができずにエンジンが逆転したときとで異なることを利用して、エンジンの始動時の回転方向を判定する始動時回転方向判定手段を構成する。
【００６４】
ここで、図４に示した例を用いて、始動時にエンジンが逆転しなかった場合及び逆転した場合にそれぞれ求められる上記カウント値について説明する。
【００６５】
リラクタ入り信号及びリラクタ抜け信号によりカウント期間を定めて、ギア信号をカウンタによりカウントした場合のカウント値を「ＧＣＮＴ」で表し、「入り（ＩＮ）」及び「抜け（ＯＵＴ）」をそれぞれ「Ｉ」及び「Ｏ」で表して、リラクタ抜け信号が発生してからリラクタ入り信号が発生するまでの間にカウントされるギア信号のカウント値を「抜け・入り間カウント値ＧＣＮＴＯＩ」、各リラクタ入り信号が発生してから次のリラクタ入り信号が発生するまでの間にカウントされるギア信号のカウント値を「入り・入り間カウント値ＧＣＮＴＩＩ」、リラクタ入り信号が発生してからリラクタ抜け信号が発生するまでの間にカウントされるギア信号のカウント値を「入り・抜け間カウント値ＧＣＮＴＩＯ」、及び各リラクタ抜け信号が発生してから次のリラクタ抜け信号が発生するまでの間にカウントされるギア信号のカウント値を「抜け・抜け間カウント値ＧＣＮＴＯＯ」とすると、本実施形態において、エンジンが正回転しているときに求められる各カウント値は下記のようになる。
【００６６】
抜け・入り間カウント値ＧＣＮＴＯＩ＝２５
入り・入り間カウント値ＧＣＮＴＩＩ＝３０
入り・抜け間カウント値ＧＣＮＴＩＯ＝５
抜け・抜け間カウント値ＧＣＮＴＯＯ＝３０
これに対し、エンジンが始動時に逆回転した場合には、以下に示すように、上記のカウント値が正回転時と異なる値をとる。
【００６７】
エンジンが始動時に逆回転する場合、その逆回転が起こるきっかけは、いずれかの気筒で行われる点火である。また始動時にエンジンが逆回転したときには、その逆転のきっかけとなった点火が行われた気筒のピストンが上死点を超えることはない。例えば始動時にクランキング速度が不足している状態で第１気筒で点火が行われた際に、エンジンが逆転した場合、その逆転は第１気筒のピストンが上死点を越えることができずに押し戻されることにより生じたものである。
【００６８】
エンジンが始動時に逆転する場合の挙動を、第１気筒の点火でエンジンが逆転した場合と、第２気筒の点火でエンジンが逆転した場合とに分けて示すと下記の通りである。
【００６９】
（ａ）第１気筒の点火でエンジンが逆転した場合。
【００７０】
（ａ．１）　エンジンの始動時にクランク軸の正方向のクランキングにより先ずリラクタ入り信号Ｐ１が発生し、次いでリラクタ抜け信号Ｐ２が発生した後に第１気筒のピストンが上死点を越えることができずにエンジンの回転方向が反転した場合。
【００７１】
この場合には、エンジンが正回転している状態でリラクタ入り信号が発生してからリラクタ抜け信号が発生するまでの間に先ず入り・抜け間カウント値ＧＣＮＴＩＯ＝５がカウントされ、リラクタ抜け信号が発生した後、エンジンの回転方向が反転して、正回転時のリラクタ抜け信号の発生位置でリラクタ入り信号が発生するまでの間に抜け・入り間カウント値ＧＣＮＴＯＩがカウントされる。リラクタ抜け信号が発生した後、エンジンの回転方向が反転して、正回転時のリラクタ抜け信号の発生位置でリラクタ入り信号が発生するまでの間には、ギア信号が２つ発生し得るが、回転方向の反転間際にクランク軸の回転速度が低下しているとギアセンサの出力がしきい値に達しないこともあるため、リラクタ抜け信号が発生した後、エンジンの回転方向が反転して、正回転時のリラクタ抜け信号の発生位置でリラクタ入り信号が発生するまでの間にカウントされる抜け・入り間カウント値ＧＣＮＴＯＩは、２の場合も、１の場合も、０の場合もあり得る。
【００７２】
エンジンが逆転した直後のリラクタ入り信号の発生位置からリラクタ抜け信号の発生位置までの期間においては、カウント値ＧＣＮＴＩＯがカウントされるが、このカウント値ＧＣＮＴＯは最大で５である。
【００７３】
即ち、この場合は、ＧＣＮＴＩＯ＝５，ＧＣＮＴＯＩ≦２，ＧＣＮＴＩＯ≦５が順次カウントされる。
【００７４】
（ａ．２）　エンジンの始動時にクランク軸の正方向のクランキングにより先ずリラクタ入り信号Ｐ１が発生した後、リラクタ抜け信号が発生したタイミングで第１気筒のピストンが押し戻されてエンジンが逆転したたため、逆転時のリラクタ入り信号がしきい値に達することができずに、逆回転時のリラクタの後端側エッジでリラクタ抜け信号が発生した場合。
【００７５】
この場合は、エンジンが正回転している状態で、リラクタ入り信号が発生してからリラクタ抜け信号が発生するまでの間に入り・抜け間カウント値ＧＣＮＴＩＯ＝５がカウントされ、次いで回転方向が反転して正回転時のリラクタ入り信号の発生位置でリラクタ抜け信号が発生するまでの間に抜け・抜け間カウント値ＧＣＮＴＯＯ≦７がカウントされる。
【００７６】
（ａ．３）　エンジンが正回転している状態でリラクタ入り信号が発生した後、リラクタ抜け信号の発生位置付近で回転方向が反転したたため、リラクタ抜け信号がしきい値に達することができなかったが、反転後のリラクタの前端側エッジでリラクタ入り信号が発生した場合。
【００７７】
この場合は、エンジンが正回転している状態でリラクタ入り信号が発生してから、回転方向が反転した後正回転時のリラクタの後端側エッジ（逆回転時のリラクタの前端側エッジ）でリラクタ入り信号が発生するまでの間に入り・入り間カウント値ＧＣＮＴＩＩ≦７がカウントされ、逆回転時のリラクタの前端側エッジでリラクタ入り信号が発生してからリラクタの後端側エッジでリラクタ抜け信号が発生するまでの間に入り・抜け間カウント値ＧＣＮＴＩＯ＝５がカウントされる。
【００７８】
（ａ．４）　エンジンが正回転している状態でリラクタ入り信号が発生した後、リラクタ抜け信号が発生する前に回転方向が反転したため、続いて逆転時のリラクタ抜け信号が発生した場合。
【００７９】
この場合は、正回転時のリラクタの前端側エッジでリラクタ入り信号が発生してから逆回転時のリラクタの後端側エッジでリラクタ抜け信号が発生するまでの間に、入り・抜け間カウント値ＧＣＮＴＩＯ≦１２がカウントされる。
【００８０】
（ｂ）第２気筒の点火時にエンジンが逆転した場合
第２気筒の点火時にエンジンが逆回転した場合には、リラクタの正回転時の後端側エッジでリラクタ抜け信号が発生した後、第２気筒の上死点（１７番のギア信号の発生位置）を越えることができずに回転方向が反転し、リラクタの正回転時の後端側エッジでリラクタ入り信号が発生する。従って、この場合には、抜け・入り間カウント値ＧＣＮＴＯＩ≦３０がカウントされる。
【００８１】
上記のように、エンジンの始動時に回転方向が反転した場合には、抜け・入り間カウント値ＧＣＮＴＯＩ、入り・入り間カウント値ＧＣＮＴＩＩ、入り・抜け間カウント値ＧＣＮＴＩＯ及び抜け・抜け間カウント値ＧＣＮＴＯＯが正回転時にとる正規の値とは異なる値をとるため、これらのカウント値を求めて、それぞに対して設定した判定値と比較することにより、エンジンの始動時にエンジンが逆回転したか否かを判定することができる。
【００８２】
そのため、図７に示した例では、始動時回転方向判定手段を構成するため、リラクタ抜け信号が発生してからリラクタ入り信号が発生するまでの間に発生するギア信号の数を抜け・入り間ギアカウント値として求める抜け・入り間ギア信号カウント手段２２ａと、各リラクタ入り信号が発生してから次のリラクタ入り信号が発生するまでの間に発生したギア信号の数を入り・入り間ギアカウント値として求める入り・入り間ギア信号カウント手段２２ｂと、リラクタ入り信号が発生してからリラクタ抜け信号が発生するまでの間に発生したギア信号の数を入り・抜け間ギアカウント値として求める入り・抜け間ギアカウント手段２２ｃと、各リラクタ抜け信号が発生してから次のリラクタ抜け信号が発生するまでの間に発生したギア信号の数を抜け・抜け間ギアカウント値として求める抜け・抜け間ギアカウント手段２２ｄとを設けている。
【００８３】
上記ＧＣＮＴＯＩ，ＧＣＮＴＩＩ，ＧＣＮＴＩＯ及びＧＣＮＴＯＯをそれぞれカウントするカウント手段は、例えば、ギア信号を計数するギア信号計数用カウンタと、リラクタ入り信号及びリラクタ抜け信号がそれぞれ入力される毎にギア信号計数用カウンタの計数値を読み取るカウンタ計数値読み取り手段と、この読み取り手段により読みとられた計数値から、リラクタ抜け信号−リラクタ入り信号間、リラクタ入り信号−リラクタ入り信号間、リラクタ入り信号−リラクタ抜け信号間及びリラクタ抜け信号−リラクタ抜け信号間にそれぞれ発生したギア信号の数を演算する計数値演算手段とにより構成することができる。
【００８４】
カウント値ＧＣＮＴＯＩ，ＧＣＮＴＩＩ，ＧＣＮＴＩＯ及びＧＣＮＴＯＯから始動時の回転方向を判定する場合の判定手順は種々考えられるが、本実施形態では、リラクタ入り信号Ｐ１が発生したときに抜け・入り間カウント値ＧＣＮＴＯＩと入り・入り間カウント値ＧＣＮＴＩＩが同時に求められ、リラクタ抜け信号が発生したときに入り・抜け間カウント値ＧＣＮＴＩＯと抜け・抜け間カウント値ＧＣＮＴＯＯとが同時に求められることに着目して、始動時の回転方向の判定処理を、リラクタ入り信号の発生時に行う処理と、リラクタ抜け信号の発生時に行う処理とに分けるようにした。
【００８５】
そのため、図７に示した例では、リラクタ入り時回転方向判定手段２２ｅと、リラクタ抜け時回転方向判定手段２２ｆとを設けている。
【００８６】
リラクタ入り時回転方向判定手段２２ｅは、回転速度検出手段２１により検出された回転速度がエンジンのアイドリング速度（この例では１５００ｒ／ｍｉｎ）よりも低く設定された設定速度Ｎ１（例えば１０００ｒ／ｍｉｎ）以下の状態でリラクタ入り信号Ｐ１が発生したときに抜け・入り間ギアカウント値ＧＣＮＴＯＩ及び入り・入り間ギアカウント値ＧＣＮＴＩＩをそれぞれに対して設定した第１の判定値及び第２の判定値と比較して、抜け・入り間ギアカウント値ＧＣＮＯＩが第１の判定値未満で、かつ入り・入り間ギアカウント値ＧＣＮＩＩが第２の判定値を超えているときにエンジンが正回転していると判定し、抜け・入り間ギアカウント値ＧＣＮＴＯＩが第１の判定値以上のとき及び入り・入り間ギアカウント値ＧＣＮＴＩＩが第２の判定値以下のときにエンジンが逆回転していると判定する。
【００８７】
またリラクタ抜け時回転方向判定手段２２ｆは、エンジンの回転速度が設定速度Ｎ１以下の状態でリラクタ抜け信号が発生したときに入り・抜け間ギアカウント値ＧＣＮＴＩＯ及び抜け・抜け間ギアカウント値ＧＣＮＴＯＯをそれぞれに対して設定した第３及び第４の判定値と比較して、入り・抜け間ギアカウント値ＧＣＮＴＩＯが第３の判定値未満でかつ抜け・抜け間ギアカウント値ＧＣＮＴＯＯが第４の判定値を超えているときにエンジンが正回転していると判定し、入り・抜け間ギアカウント値ＧＣＮＴＩＯが第３の判定値以上のとき及び抜け・抜け間ギアカウント値ＧＣＮＴＯＯが第４の判定値以下のときにはエンジンが逆回転していると判定する。
【００８８】
上記設定速度Ｎ１は、エンジンの始動が完了して、回転方向が反転する現象が起こり得ない回転速度範囲の下限付近の速度（始動完了速度）に設定しておく。本実施形態では、この設定速度Ｎ１を１０００ｒ／ｍｉｎに設定しておく。なお本実施形態で制御の対象としている２サイクルエンジンのアイドリング速度は１５００Ｒ／ｍｉｎである。
【００８９】
このように、設定速度Ｎ１を定めて、エンジンの始動時に回転速度が設定速度以下の場合にのみ回転方向の判定を行うようにすると、エンジンの始動が完了して回転方向が反転するおそれがなくなった状態で回転方向の無駄な判定手処理が行われるのを防ぐことができる。
【００９０】
また、エンジンの始動が完了した後に、ノイズなどにより回転方向が反転したとの誤判定が行われて、エンジンが失火させられるのを防ぐことができる。
【００９１】
［始動時点火制御手段］
マイクロプロセッサ１は、エンジンを始動する際に、その回転速度が設定速度（始動完了速度）Ｎ１に達するまでの間制御モードを始動制御モードとして、始動時回転方向判定手段による判定結果に応じて、始動時点火制御手段及び始動時噴射制御手段によりエンジンの点火動作及び燃料噴射動作を制御する。
【００９２】
図７において、始動時点火制御手段２３は、リラクタ入り時回転方向判定手段２２ｅによりエンジンが正回転していると判定されたとき、及びリラクタ抜け時回転方向判定手段２２ｆによりエンジンが正回転していると判定されたときにエンジンを予め定めた始動時の点火時期に点火するために必要な処理を行い、リラクタ入り時回転方向判定手段２２ｅによりエンジンが逆回転していると判定されたとき、及びリラクタ抜け時回転方向判定手段２２ｆよりエンジンが逆回転していると判定されたときには、エンジンを点火させるために必要な処理を行わずにエンジンを失火させる。
【００９３】
エンジンを点火するための処理は、第１気筒及び第２気筒の始動時の点火時期として予め定めたタイミングで発生する所定のギア信号がマイクロプロセッサに入力された時に、マイクロプロセッサのポートＢ１及びＢ２の電位をＨレベル（高レベル）として点火回路４及び５に点火信号を与える処理である。
【００９４】
図４に示したように、本実施形態では、リラクタ抜け信号Ｐ２が発生した直後に１番のギア信号が発生するタイミング［第１気筒のピストンの上死点に相当するクランク角位置より１２°進角したクランク角位置（ＢＴＤＣ１２°）に対応するタイミング］を第１気筒の始動時の点火時期としている。
【００９５】
また１６番のギア信号が発生するタイミング［＃２ＢＴＤＣ１２°に対応するタイミング］をエンジンの第２気筒の始動時の点火時期として、この点火時期に点火回路５に点火信号Ｓｉ２を与える。
【００９６】
従って始動時点火制御手段２３は、始動時回転方向判定手段２２により、エンジンの逆転が検出されてないときに、１番のギア信号（リラクタ抜け信号Ｐ２が発生した直後に発生するギア信号）が発生するタイミングでマイクロプロセッサのポートＢ１をＨレベルとして点火回路４に点火信号を与え、１６番のギア信号が発生するタイミングでポートＢ２をＨレベルとして点火回路５に点火信号Ｓｉ２を与えるように構成される。
【００９７】
上記の始動時の点火時期は、信号発電機の機械的構成により決まるタイミングである。本明細書では、このように、演算により決められる点火時期ではなく、ハードウェアの構成により決まる一定の点火時期に行う点火を「ハード点火」と呼ぶ。これに対し、マイクロプロセッサに所定の演算を行わせることにより求めた（ソフトウェア的に求めた）点火時期に行う点火を「ソフト点火」と呼ぶ。
【００９８】
［始動時噴射制御手段］
始動時噴射制御手段２４は、リラクタ入り時回転方向判定手段２２ｅによりエンジンが正回転していると判定されたとき、及びリラクタ抜け時回転方向判定手段２２ｆによりエンジンが正回転していると判定されたときに予め定められた始動時の噴射開始時期に燃料噴射を行わせるために必要な処理を行い、リラクタ入り時回転方向判定手段２２ｅによりエンジンが逆回転していると判定されたとき、及びリラクタ抜け時回転方向判定手段２２ｆよりエンジンが逆回転していると判定されたときに燃料噴射を中止するために必要な処理を行わせる。
【００９９】
ここで、燃料噴射を行わせるために必要な処理とは、マイクロコンピュータのポートＢ３及びＢ４の電位をＨレベルとして、第１気筒用の燃料噴射装置６及び第２気筒用の燃料噴射装置７に噴射信号を与えるために必要な処理である。
【０１００】
本実施形態では、エンジンの正回転時にパルサがリラクタの前端側エッジを検出して、リラクタ入り信号抜け信号発生部２Ａがリラクタ入り信号Ｐ１を発生するタイミングが、エンジンの始動時に最初に第１気筒に燃料を噴射するタイミングとして許容されるタイミング（図４に示した例では、第１気筒の上死点に相当するクランク角位置から７５゜進角したクランク角位置に対応するタイミング）となるように、リラクタの極弧角と、パルサがリラクタの前端側エッジを検出する位置とが設定されている。
【０１０１】
そして、エンジンの始動時に、信号発生装置のリラクタ入り信号・抜け信号発生部が最初に発生した信号がリラクタ入り信号Ｐ１であるときに、このリラクタ入り信号の発生時に（第１気筒の上死点前７５°のクランク角位置に対応するタイミングで）第１気筒の燃料噴射装置６に噴射信号を与えて、第１気筒に取り付けられたインジェクタからの燃料噴射を行わせる。最初のリラクタ抜け信号Ｐ２が発生してギア信号の番号が確定した後は、始動時の第２気筒の噴射開始時期として最適な位置である６番のギア信号の発生位置（第２気筒の上死点より１３２°進角した位置）で第２気筒用の燃料噴射装置７に噴射信号を与えて、第２気筒のインジェクタからの燃料噴射を行わせ、始動時の第１気筒の噴射開始時期として最適な位置である番号２１のギア信号の発生位置（第１気筒の上死点より１３２°進角した位置）で第１気筒用の燃料噴射装置７に噴射信号を与えて、第１気筒に取り付けたインジェクタからの燃料噴射を行わせる。
【０１０２】
また、エンジンの始動時に信号発生装置のリラクタ入り信号・抜け信号発生部が最初に発生した信号がリラクタ抜け信号Ｐ２であるときには、各ギア信号の番号が特定されるので、６番のギア信号の発生位置（第２気筒の上死点より１３２°進角した位置）で第２気筒用の燃料噴射装置７に噴射信号を与えて、第２気筒のインジェクタからの燃料噴射を行わせ、番号２１のギア信号の発生位置（第１気筒の上死点より１３２°進角した位置）で第１気筒用の燃料噴射装置７に噴射信号を与えて、第１気筒に取り付けたインジェクタからの燃料噴射を行わせる。
上記始動時の噴射開始時期（上死点前７５°または１３２°のクランク角に相当するタイミング）も、信号発電機の機械的構成により決まるタイミングである。本明細書では、このように、演算により決められる噴射開始時期ではなく、ハードウェアの構成により決まる一定の噴射開始時期に行う噴射を「ハード噴射」と呼ぶ。これに対し、マイクロプロセッサに所定の演算を行わせることにより求めた（ソフトウェア的に求めた）噴射開始時期に行う燃料の噴射を「ソフト噴射」と呼ぶ。
【０１０３】
上記のように、リラクタ入り信号が発生するタイミングが始動時に第１気筒への燃料の噴射を行うタイミングとして許容し得るタイミングになるように、リラクタの極弧角とパルサが該リラクタの前端側エッジを検出するタイミングとを設定しておくと、エンジンの始動時に第１回目の点火を第１気筒で点火を行う場合に、該第１回目の点火に先立って第１気筒に燃料を噴射しておくことができるため、第１気筒での最初の点火を有効にすることができ、エンジンの始動性を向上させることができる。
【０１０４】
［定常時点火制御手段］
マイクロプロセッサ１は、エンジンの回転速度が設定速度Ｎ１に達して、始動が完了したと判定されたときに、始動制御モードを終了して、定常時点火制御手段２５及び定常時噴射制御手段２６により点火時期及び噴射開始時期をそれぞれ制御する定常制御モードに移行する。
【０１０５】
定常時点火制御手段２５は、回転速度検出手段２１により検出された回転速度を含む制御条件に対してエンジンの点火時期を演算する点火時期演算手段２５ａと、演算された点火時期を検出する点火時期検出手段２５ｂと、点火時期検出手段２５ｂにより点火時期が検出されたときにマイクロプロセッサのポートＢ１及びＢ２から所定の信号幅の点火信号を点火回路４及び５に与える点火信号発生手段２５ｃとにより構成される。
【０１０６】
定常運転時における点火時期は、エンジンの平均回転速度を含む制御条件に対して、点火動作を行わせるクランク角位置の形で演算される。通常、この点火時期の演算は、所定の制御条件と点火時期との関係を与えるマップを用いて行われる。
【０１０７】
本実施形態で用いる点火時期検出手段２５ｂは、ギア信号をカウントするカウンタとクロックパルスを計数して時間を計測する点火タイマとを併用して（クランク角の計測と時間の計測とを併用して）、点火時期演算手段により演算された点火時期を検出する手段であり、演算された点火時期を検出したときに、点火信号発生手段２５ｃに指令を与えて、該点火信号発生手段から点火回路４または５に与えるための点火信号を発生させる。
【０１０８】
点火時期検出手段２５Ｂは、演算された点火時期に近いギア信号の発生位置を点火タイマをスタートさせる位置として、この点火タイマのスタート位置をギア信号を計数することにより検出し、点火タイマのスタート位置が検出されたときに点火タイマに点火時期を計測するための時間（点火タイマ時間）をセットして、その計測を行わせることにより、点火時期を検出する。
【０１０９】
本実施形態では、エンジンの各気筒毎に特定のギア信号が発生するクランク角位置を点火時期計測用基準クランク角位置として定めておいて、各気筒の基準クランク角位置で発生する基準ギア信号が検出されたときにギアカウンタによるギア信号のカウントを開始し、所定個数のギア信号をカウントすることにより、各気筒の点火時期に近いタイミングで発生するギア信号の発生位置を、点火タイマによる点火時期の計測を開始する点火タイマ時間計測開始クランク角位置として検出する。そして、この計測開始クランク角位置が検出されたときに、点火タイマに所定の点火タイマ時間をセットして該点火タイマによる点火タイマ時間の計測を開始させ、点火タイマが点火タイマ時間の計測を終了するタイミングを点火時期とする。
【０１１０】
上記点火タイマにセットする点火タイマ時間は、クランク軸が、前記点火時期計測用基準クランク角位置から演算された点火時期に相当するクランク角位置まで回転するのに要する時間から、クランク軸が点火時期計測用基準クランク角位置から点火タイマ時間計測開始クランク角位置まで回転するのに要した時間を差し引いた時間である。
【０１１１】
ここで、一例として、２９番のギア信号の発生位置と３０番のギア信号の発生位置との間にあるクランク角位置で第１気筒の点火を行わせる場合を考える。このとき点火時期検出手段は、２２番のギア信号が発生する位置を第１気筒の点火時期計測用基準クランク角位置として、このギア信号が発生したときにギアカウンタをスタートさせ、２９番のギア信号が発生したときに、このギア信号の発生位置を第１気筒の点火タイマ時間計測開始クランク角位置として検出する。そして、この２９番のギア信号が発生したときに、基準クランク角位置から演算された点火時期に相当するクランク角位置までクランク軸が回転するのに要する時間を点火時期計測用時間として演算し、この点火時期計測用時間から、クランク軸が基準クランク角位置（２２番のギア信号の発生位置）から２９番のギア信号の発生位置まで回転するのに要した時間を差し引くことにより点火タイマ時間を演算し、該点火タイマ時間を点火タイマにセットしてその計測を開始させる。点火タイマ時間の演算には、そのときのエンジンの回転速度が必要になるが、この回転速度としては、１８番のギア信号が発生するタイミングから２２番のギア信号が発生するタイミングまでの間の経過時間（クランク軸が４８°回転するのに要した時間）から検出される回転速度を用いる。
【０１１２】
そして上記点火タイマが点火タイマ時間の計測を完了したとき（点火タイマの計測値が０になったとき）に点火信号発生手段２５ｃに指令を与えて、マイクロプロセッサ１のポートＢ１の電位をＨレベルにさせ、第１気筒の点火回路４に点火信号を与える。
【０１１３】
第２気筒の点火時期を検出する際には、７番のギア信号が発生するクランク角位置を点火時期計測用基準クランク角位置として、上記と同様の処理を行わせ、点火タイマが点火時期を検出したときに点火信号発生手段２５ｃに指令を与えてマイクロプロセッサのポートＢ２の電位をＨレベルとすることにより第２気筒の点火回路５に点火信号を与える。第２気筒の点火時期を検出するために点火タイマにセットする点火タイマ時間の演算に用いる回転速度としては、３番のギア信号の発生位置から７番のギア信号の発生位置までクランク軸が回転するのに要した時間から検出される回転速度を用いる。
【０１１４】
［定常時噴射制御手段］
定常時噴射制御手段２６は、回転速度検出手段２１により検出されたエンジンの回転速度、スロットル開度、大気圧、エンジンの冷却水温度などの各種の制御条件に対して燃料の噴射開始時期（気筒内への燃料の噴射を開始する時期）を演算する噴射開始時期演算手段２６ａと、各種の制御条件に対して噴射する燃料の量を演算する噴射量演算手段２６ｃと、演算された噴射開始時期を検出する噴射開始時期検出手段２６ｂと、噴射開始時期検出手段２６ｂにより噴射開始時期が検出されたときにマイクロプロセッサのポートＢ３及びＢ４から演算された噴射量の燃料を噴射するために必要な信号幅の噴射信号を燃料噴射装置６及び７に与える噴射信号発生手段２６ｄとにより構成される。
【０１１５】
定常運転時における噴射開始時期は、燃料の噴射を行わせるクランク角位置の形で演算される。この噴射開始時期の演算は、所定の制御条件と噴射開始時期との関係を与えるマップを用いて行われる。
【０１１６】
噴射開始時期検出手段２６ｂは、ギア信号をカウントするカウンタと噴射タイマとを併用して、噴射開始時期演算手段により演算された噴射開始時期を検出する手段であり、演算された噴射開始時期を検出したときに、噴射信号発生手段２６ｄに指令を与えて、該噴射信号発生手段から燃料噴射装置６または７に与える噴射信号を発生させる。
【０１１７】
本実施形態では、エンジンの各気筒毎に特定のギア信号が発生するクランク角位置を噴射開始時期計測用基準クランク角位置として定めておいて、各気筒の噴射開始時期計測用基準クランク角位置で発生する基準ギア信号が検出されたときにギアカウンタによるギア信号のカウントを開始し、所定個数のギア信号をカウントすることにより、各気筒の噴射開始時期に近いタイミングで発生するギア信号の発生位置を、噴射タイマによる噴射開始時期の計測を開始する噴射タイマ時間計測開始クランク角位置として検出する。そして、この噴射タイマ時間計測開始クランク角位置が検出されたときに、噴射タイマに所定の噴射タイマ時間をセットして該噴射タイマによる噴射タイマ時間の計測を開始させ、噴射タイマが噴射タイマ時間の計測を終了するタイミングを噴射開始時期とする。
【０１１８】
上記噴射タイマにセットする噴射タイマ時間は、クランク軸が、前記噴射開始時期計測用基準クランク角位置から演算された噴射開始時期に相当するクランク角位置まで回転するのに要する時間から、クランク軸が噴射開始時期計測用基準クランク角位置から噴射タイマ時間計測開始クランク角位置まで回転するのに要した時間を差し引いた時間である。
【０１１９】
ここで、一例として、２０番のギア信号の発生位置と２１番のギア信号の発生位置との間にあるクランク角位置で第１気筒の燃料噴射を行わせる場合を考える。このとき噴射開始時期検出手段は、７番のギア信号が発生する位置を第１気筒の噴射開始時期計測用基準クランク角位置として、このギア信号が発生したときにギアカウンタをスタートさせ、２０番のギア信号が発生したときに、このギア信号の発生位置を第１気筒の噴射タイマ時間計測開始クランク角位置として検出する。そして、この２０番のギア信号が発生したときに、噴射開始時期計測用基準クランク角位置から演算された噴射開始時期に相当するクランク角位置までクランク軸が回転するのに要する時間を噴射開始時期計測用時間として演算し、この噴射開始時期計測用時間から、クランク軸が基準クランク角位置（７番のギア信号の発生位置）から２０番のギア信号の発生位置（噴射タイマ時間計測開始クランク角位置）まで回転するのに要した時間を差し引くことにより噴射タイマ時間を演算し、該噴射タイマ時間を噴射タイマにセットしてその計測を開始させる。噴射タイマ時間の演算に用いる回転速度としては、３番のギア信号が発生するタイミングから７番のギア信号が発生するタイミングまでの間の経過時間（クランク軸が４８°回転するのに要した時間）から検出される回転速度を用いる。
【０１２０】
そして上記噴射タイマが噴射タイマ時間の計測を完了したとき（噴射タイマの計測値が０になったとき）に噴射信号発生手段２６ｄに指令を与えて、マイクロプロセッサ１のポートＢ３の電位をＨレベルにさせ、第１気筒の燃料噴射装置６に噴射信号を与える。
【０１２１】
第２気筒の噴射開始時期を検出する際には、２２番のギア信号が発生するクランク角位置を噴射開始時期計測用基準クランク角位置として、上記と同様の処理を行わせ、噴射タイマが噴射開始時期を検出したときに噴射信号発生手段２６ｄに指令を与えてマイクロプロセッサのポートＢ４の電位をＨレベルとすることにより第２気筒の燃料噴射装置７に噴射信号を与える。第２気筒の噴射開始時期を検出するために噴射タイマにセットする噴射タイマ時間の演算に用いる回転速度としては、１８番のギア信号の発生位置から２２番のギア信号の発生位置までクランク軸が回転するのに要した時間から検出される回転速度を用いる。
【０１２２】
（３）エンジンの始動時から始動完了までの動作
本実施形態において、エンジンの始動操作を開始した後、エンジンの始動が完了するまでの間に行われる点火動作及び燃料噴射動作の一例を示すタイミングチャートを図５に示し、図５の各過程で行われる燃料噴射動作及び点火動作と、燃料噴射動作及び点火動作に用いる信号と、点火動作及び噴射動作が行われるクランク角位置とを図６の図表にまとめて示した。
【０１２３】
図６において、左端の「タイミング」の欄に示した丸数字は、図５に示した丸数字に対応している。
【０１２４】
図５の時刻０で始動操作が開始され、クランキングが行われると、エンジンのクランク軸の回転速度が変動を伴いながら上昇していき、パルサ及びギアセンサの出力のレベルが上昇していく。クランク軸の回転速度がある速度以上になると、ギアセンサの出力がしきい値以上になるため、所定のパルス波形のギア信号Ｐｇが発生するようになる。またパルサの出力のレベルがしきい値以上になるため、リラクタ入り信号Ｐ１及びリラクタ抜け信号Ｐ２が発生するようになる。
【０１２５】
エンジンの始動時においては、先ず第１気筒の上死点前７５°のクランク角位置に相応するタイミング（丸数字１のタイミング）で最初のリラクタ入り信号Ｐ１が発生したときにマイクロプロセッサのポートＢ３の電位をＨレベルとすることにより第１気筒用の燃料噴射装置に噴射信号Ｓｊ１を与えて第１気筒のハード噴射（図６参照）を行わせる。
【０１２６】
次いで第１気筒の上死点前１５°のクランク角位置に相当するタイミングでリラクタ抜け信号Ｐ２が発生した後、最初に発生するギア信号Ｐｇを１番のギア信号として特定（以下順次発生するギア信号に２ないし３０の番号を付けて特定する）して、この１番のギア信号が発生する丸数字２のタイミング（第１気筒の上死点前１２°のクランク角位置に相当するタイミング）で、マイクロプロセッサのポートＢ１の電位をＨレベルとすることにより点火回路４に点火信号Ｓｉ１を与えて、第１気筒のハード点火を行わせる。
【０１２７】
次いで第２気筒の上死点前１３２°のクランク角位置に相当する丸数字３のタイミングで６番のギア信号Ｐｇ（図４参照）が発生したときにマイクロプロセッサのポートＢ４の電位をＨレベルとすることにより第２気筒用の燃料噴射装置に噴射信号Ｓｊ２を与えて、第２気筒のハード噴射を行わせ、第２気筒の上死点前１２°の位置で１６番のギア信号が発生したときにマイクロプロセッサのポートＢ２の電位をＨレベルとすることにより第２気筒の点火回路５に点火信号Ｓｉ２を与えて、第２気筒のハード点火を行わせる。
【０１２８】
次いで、第１気筒の上死点前１３２°のクランク角位置に相当する丸数字５のタイミングで２１番のギア信号が発生したときに第１気筒用の燃料噴射装置６に噴射信号Ｓｊ１を与えて第１気筒のハード噴射を行わせ、第１気筒の上死点前１２°のクランク角位置に相当するタイミングで１番のギア信号が発生したときに第１気筒用の点火回路４に点火信号Ｓｉ１を与えて第１気筒のハード点火を行わせる。
【０１２９】
以下同様にして、第２気筒の上死点前１３２°のクランク角位置に相当するタイミング（丸数字７のタイミング）及び第２気筒の上死点前１２°のクランク角位置に相当するタイミング（丸数字８のタイミング）でそれぞれ第２気筒のハード噴射及びハード点火を行わせ、第１気筒の上死点前１３２°のクランク角位置に相当するタイミング（丸数字９のタイミング）及び第２気筒の上死点前１２°のクランク角位置に相当するタイミング（丸数字１０のタイミング）でそれぞれ第１気筒のハード噴射及びハード点火を行わせる。
【０１３０】
図示の例では、丸数字１２のタイミングで第２気筒のハード点火を行った時点でエンジンの回転速度が設定値Ｎ１（＝１０００ｒ／ｍｉｎ）を超えたため、丸数字１２のタイミングでハード点火を行った時点で始動制御モードを終了して定常制御モードに移行している。丸数字１２よりも後に現れる噴射タイミング（丸数字１３や丸数字１５のタイミング）及び点火タイミング（丸数字１４や丸数字１７のタイミング）では、それぞれ各種の制御条件に対して演算された噴射開始時期及び点火時期に燃料噴射及び点火動作を行わせるソフト噴射及びソフト点火を行わせている。
【０１３１】
（４）各機能実現手段を構成するためにマイクロプロセッサに実行させるプログラムのアルゴリズム
上記の各機能実現手段を構成するためにマイクロプロセッサに実行させるプログラムのアルゴリズムの一例を示すフローチャートの要部を図８ないし図２０に示した。
【０１３２】
［リラクタ入り割込みルーチン］（図８）
マイクロプロセッサは、信号発生装置２がリラクタ入り信号Ｐ１を発生する毎に、図８に示すリラクタ入り割込みルーチンを実行する。
【０１３３】
この割込みルーチンでは、先ずステップ１において、回転速度検出手段２１により検出されたエンジンの平均回転速度が設定速度Ｎ１以下であるか否かを判定する。その結果、回転速度が設定速度を超えていると判定された場合には、何もしないでメインルーチンに戻る。回転速度を判定した結果、回転速度が設定速度Ｎ１以下であると判定されたときには、ステップ２に進んで、始動操作開始後初回のリラクタ抜け割込み（後述する）が行われたか否かを判定する。その結果、初回のリラクタ抜け割込みが行われていないと判定されたときには、ステップ３に移行して第１気筒のハード噴射を行わせた後、メインルーチンに戻る。
【０１３４】
ステップ２において、初回のリラクタ抜け割込みが既に行われたと判定されたときには、ステップ５に移行して逆転フラグが１にセットされているか否かを判定する。その結果、逆転フラグが１にセットされている場合には、何もしないでメインルーチンに復帰し、逆転フラグが１にセットされていないと判定されたときには、ステップ４に進んでギア信号Ｐｇをカウントしているギアカウンタ（フリーランカウンタ）のカウント値を読み込んで、このカウント値と、既に読み込まれているカウント値とから、リラクタ抜け信号が発生してから今回のリラクタ入り信号が発生するまでの間にカウントされた抜け・入り間ギアカウント値ＧＣＮＴＯＩと、前回のリラクタ入り信号Ｐ１が発生してから今回のリラクタ入り信号が発生するまでの間にカウントされた入り・入り間ギアカウント値ＧＣＮＴＩＩを求める。この過程により、図７に示した抜け・入り間ギア信号カウント手段２２ａと、入り・入り間ギア信号カウント手段２２ｂが構成される。
【０１３５】
次いで、ステップ６において、抜け・抜け間ギアカウント値ＧＣＮＴＯＩと比較する第１の判定値を２６として、ＧＣＮＴＯＩ≧２６であるか否かの判定を行い、この条件が成立しているときにエンジンが逆転していると判定して、ステップ７に進んで逆転フラグを１にセットする。
【０１３６】
ステップ６において、ＧＣＮＴＯＩ≧２６の条件が成立してないと判定されたときには、次いでステップ８に進んで、入り・入り間ギアカウント値ＧＣＮＴＩＩと比較する第２の判定値を１０として、ＧＣＮＴＩＩ≦１０の条件が成立しているか否かを判定する。その結果この条件が成立しているときには、エンジンが逆転していると判定して、ステップ７に移行し、逆転フラグを１にセットする。ステップ８においてＧＣＮＴＩＩ≦１０の条件が成立していないと判定されたときには、ステップ９に進んで、ギア信号をカウントする第１気筒のｎ３．ＩＧギアカウンタ（ギア信号を計数する点火時期計測用カウンタ）に、リラクタ抜け信号Ｐ２が発生した後、最初に発生するギア信号（１番のギア信号）を検出するために必要な計数値（＝６）をセットして、その計数動作を行わせる。
【０１３７】
［リラクタ抜け割込みルーチン］（図９）
信号発生装置２がリラクタ抜け信号Ｐ２を発生する毎に、図９に示したリラクタ抜け割込みルーチンが実行される。
【０１３８】
この割込みルーチンでは、先ずステップ１において、回転速度検出手段２１により検出されたエンジンの平均回転速度が設定速度Ｎ１以下であるか否かを判定する。その結果、回転速度が設定速度を超えていると判定された場合には、何もしないでメインルーチンに戻る。回転速度を判定した結果、回転速度が設定速度Ｎ１以下であると判定されたときには、ステップ２に進んで、今回の割込みが始動操作開始後初回のリラクタ抜け割込みであるか否かを判定する。その結果、初回のリラクタ抜け割込みである場合には、ステップ３に進んで第１気筒のｎ３．ＩＧギアカウンタ（ギア信号を計数する第１気筒用の点火時期計測用ギアカウンタ）に、リラクタ抜け信号が発生した後１回目に発生するギア信号（＃１ＢＴＤＣ１２°の位置で発生する１番のギア信号）を検出するための計数値（＝１）をセットして、その計数を行わせ、ステップ４において、第２気筒のｎ３．ＩＮＪギアカウンタ（ギア信号を計数する第２気筒用の噴射開始時期計測用ギアカウンタ）に、リラクタ抜け信号が発生した後６回目に発生するギア信号（＃２ＢＴＤＣ１３２°の位置で発生する６番のギア信号）を検出するために必要な計数値（＝６）をセットして、その計数動作を開始させる。またステップ５において、第１気筒のｎ３．ＩＮＪギアカウンタ（ギア信号を計数する第１気筒用の噴射開始時期計測用ギアカウンタ）に、リラクタ抜け信号が発生した後２１回目に発生するギア信号（＃１ＢＴＤＣ１３２°の位置で発生する２１番のギア信号）を検出するために必要な計数値（＝２１）をセットして、その計数動作を開始させた後メインルーチンに復帰する。
【０１３９】
ステップ２において、今回の割込みが初回のリラクタ抜け割込みでないと判定されたときには、ステップ６に移行して、逆転フラグが１にセットされているか否かを判定する。その結果、逆転フラグが１にセットされている場合には、何もしないでメインルーチンに復帰し、逆転フラグが１にセットされていないと判定されたときには、ステップ７に進んでギア信号Ｐｇをカウントしているギアカウンタ（フリーランカウンタ）のカウント値を読み込んで、このカウント値と、既に読み込まれているカウント値とから、リラクタ入り信号が発生してから今回のリラクタ抜け信号が発生するまでの間にカウントされた入り・抜け間ギアカウント値ＧＣＮＴＩＯと、前回のリラクタ抜け信号Ｐ２が発生してから今回のリラクタ抜け信号Ｐ２が発生するまでの間にカウントされた抜け・抜け間ギアカウント値ＧＣＮＴＯＯとを求める。この過程により、図７に示した入り・抜け間ギア信号カウント手段２２ｃと、抜け・抜け間ギア信号カウント手段２２ｄとが構成される。
【０１４０】
次いで、ステップ８において、入り・抜け間ギアカウント値ＧＣＮＴＩＯと比較する第３の判定値を７として、ＧＣＮＴＩＯ≧７であるか否かの判定を行い、この条件が成立しているときにエンジンが逆転していると判定して、ステップ９に進んで逆転フラグを１にセットする。
【０１４１】
ステップ８においてＧＣＮＴＩＯ≧７の条件が成立してないと判定されたときには、ステップ１０に進み、抜け・抜け間ギアカウント値ＧＣＮＴＯＯと比較する第４の判定値を１０として、ＧＣＮＴＯＯ≦１０の条件が成立しているか否かを判定する。その結果この条件が成立しているときには、エンジンが逆転していると判定して、ステップ９に移行し、逆転フラグを１にセットする。ステップ１０においてＧＣＮＴＯＯ≦１０の条件が成立していないと判定されたときには、エンジンは逆転していないと判定してメインルーチンに復帰する。
【０１４２】
この例では、図８の割込みルーチンのステップ１，２，４及び５ないし８とによりリラクタ入り時回転方向判定手段２２ｅが構成され、図９の割込みルーチンのステップ１，２及び６ないし１０により、リラクタ抜け時回転方向判定手段２２ｆが構成されている。
【０１４３】
また図８の割込みルーチン及び図９の割込みルーチンにより、始動時回転方向判定手段２２が構成されている。
［ギア割込み］（図１０）
マイクロプロセッサ１はまた、所定のギア信号が発生したときに図１０に示す割込みを実行する。この割込みルーチンでは、ステップ１において、予め定めたギア割込みスケジュールに従って、予め実行順序が定められた一連のギア割込み＃２＿ｎ１，＃２＿ｎ２，＃１＿ｎ１及び＃１＿ｎ２のうち、今回実行させるべき割込みがいずれであるかを判断し、実行すべきであると判断した割込みを実行させる。
【０１４４】
本実施形態では、図４に示したように、今回発生したギア信号が３番のギア信号であるときに、図１１の＃２＿ｎ１割込みを実行させ、今回発生したギア信号が７番のギア信号であるときに、図１２に示した＃２＿ｎ２割込みを実行させる。また今回発生したギア信号が１８番のギア信号であるときに、図１３に示した＃１＿ｎ１割込みを実行させ、今回発生したギア信号が２２番のギア信号であるときに図１４に示した＃１＿ｎ２割込みを実行させる。
【０１４５】
［＃２＿ｎ１割込み］（図１１）
マイクロプロセッサは、３番目のギア信号を検出したときに図１１に示す＃２＿ｎ１割込みを実行する。この割込みでは、ステップ１において２２番のギア信号が発生してから今回の３番のギア信号が発生するまでの間に経過した時間ＣＮＴＲ１２を求め、次いでステップ２において、＃２＿ｎ２割込みを実行するタイミングを与える７番のギア信号を検出するために必要なカウント値（＝４）をギアカウンタにセットしてメインルーチンに戻る。
【０１４６】
［＃２＿ｎ２割込み］（図１２）
マイクロプロセッサは、７番目のギア信号が発生したときに図１２に示した割込みルーチンを実行する。この割込みルーチンでは、先ずステップ１において、３番のギア信号が発生してから７番のギア信号が発生するまでの時間ＣＮＴＲＶ２を演算し、次いでステップ２において、メインルーチン等の他のルーチンで既に検出されている回転速度（エンジンが１回転するのに要した時間から検出した平均回転速度）を読み込む。次いで、ステップ３において、次のギア割込みである＃１＿ｎ１割込みを実行するタイミングを与えるギア信号（１８番のギア信号）を検出するために計数すべきカウント値（＝１１）をギアカウンタにセットしてその計数を行わせる。
【０１４７】
またステップ４において、平均回転速度が設定速度Ｎ１以下であるか否かを判定し、平均回転速度が設定速度Ｎ１以下である場合には、ステップ５に進んでハードフラグを０とする。次いでステップ６において第２気筒のハード噴射を行うタイミングで発生する６番のギア信号を検出するために計数する必要があるカウント値（＝３０）を第２気筒の噴射開始時期計測用ギアカウンタ（ｎ３．ＩＮＪカウンタ）にセットする。その後ステップ７において逆転フラグが１であるか否かを判定し、その結果、逆転フラグが１であるとき（始動制御モードが終了しているとき）には、何もしないでメインルーチンに戻る。
【０１４８】
ステップ７において、逆転フラグが１でないと判定されたとき（始動制御モードであると判定されたとき）には、ステップ８に進んで第２気筒のハード点火を行わせる１６番のギア信号を検出するために計数する必要があるカウント値（＝１０）を点火時期計測用ギアカウンタ（ｎ３．ＩＧギアカウンタ）にセットしてその計数を開始させた後メインルーチンに戻る。
【０１４９】
図１２のステップ４において平均回転速度が設定速度Ｎ１を超えていると判定されたときには、ステップ９に進んでハードフラグを１にセットし、次いでステップ２０においてメインルーチンで演算されている点火時期を検算する。その後、ステップ１１において、ステップ１０で読み込んだ点火時期に最も近いタイミングで発生するギア信号を検出するために計数する必要があるカウント値を第２気筒の点火時期計測用ギアカウンタ（ｎ３．ＩＧギアカウンタ）にセットしてその計数を開始させる。
【０１５０】
次いでステップ１２において、他のルーチンで演算されている噴射開始時期を読み込み、ステップ１３において、第２気筒の噴射開始時期に最も近いタイミングで発生するギア信号を検出するために計数する必要があるカウント値を第２気筒の噴射時期計測用ギアカウンタ（ｎ３．ＩＮＪギアカウンタ）にセットしてその計数を開始させた後、メインルーチンに復帰する。
【０１５１】
［＃１＿ｎ１割込み］（図１３）
マイクロプロセッサは、１８番のギア信号が発生したことを検出したときに図１３に示す＃１＿ｎ１割込みを実行する。この割込みでは、ステップ１において７番のギア信号が発生してから１８番のギア信号が発生するまでの時間ＣＴＲ２１を演算し、ステップ２において、＃１＿ｎ２割込みを行わせるタイミングを与える２２番のギア信号を検出するために計数する必要があるカウント値（＝４）をギアカウンタにセットしてメインルーチンに復帰する。
【０１５２】
［＃１＿ｎ２割込み］（図１４）
マイクロプロセッサは、２２番のギア信号が発生したことを検出したとき（ギアカウンタが図１３の割込みによりセットされたカウント値を計数したとき）に図１４に示した割込みルーチンを実行する。
【０１５３】
この割込みでは、ステップ１において、１８番のギア信号が発生してから今回の２２番のギア信号が発生するまでの時間ＣＴＲＶ１を演算し、次いでステップ２において、次の＃２＿ｎ１割込み（図１１の割込み）を実行するタイミングを与える３番のギア信号を検出するために計数すべきカウント値（＝１１）をギアカウンタにセットしてその計数を開始させる。またステップ３においてハードフラグが１にセットされているか否かを判定し、ハードフラグが１でない場合には、ステップ４に進んで第１気筒の噴射時期計測用ギアカウンタ（ｎ３．ＩＮＪギアカウンタ）に始動時の第１気筒の噴射開始時期を与える２１番のギア信号を検出するために計数する必要があるカウント値をギアカウンタにセットしてその計数を開始させる。
【０１５４】
またステップ３においてハードフラグが１にセットされていると判定されたときには、ステップ５に進んで、メインルーチンで演算されている第１気筒の点火時期を読み込み、ステップ６において、第１気筒の点火時期に最も近いタイミングで発生するギア信号を検出するために計数する必要があるカウント値を点火時期計測用ギアカウンタ（ｎ３．ＩＧギアカウンタ）にセットして、その計数を開始させる。次いで、ステップ７において、メインルーチンで演算されている第１気筒の噴射開始時期を読み込み、ステップ８において、その噴射回時期に最も近いタイミングで発生するギア信号を検出するために計数する必要があるカウント値を第１気筒の噴射開始時期計測用ギアカウンタ（ｎ３．ＩＮＪギアカウンタ）にセットしてその計数を開始させた後メインルーチンに戻る。
【０１５５】
［ｎ３．ＩＧ割込み］（図１５）
マイクロコンピュータは、点火時期計測用ギアカウンタ（ｎ３．ＩＧギアカウンタ）がセットされたカウント値を計数したときに図１５に示す割込みルーチンを実行する。この割込みでは、ステップ１において今回点火を行うのは第１気筒であるか否かを判定し、第１気筒である場合には、ステップ２に進んでハードフラグが１であるか否かを判定する。その結果ハードフラグが１でない場合には、ステップ３に進んで第１気筒のハード点火を行わせ、ハードフラグが１である場合には、ステップ４においてソフト点火を行う点火時期を検出するために計測する必要がある点火タイマ時間を第１気筒の点火タイマにセットしてメインルーチンに復帰する。
【０１５６】
またステップ１において今回点火を行う気筒が第１気筒でないと判定されたときには、ステップ５においてハードフラグ１であるか否かを判定し、その結果ハードフラグが１でない場合には、ステップ６に進んで第２気筒のハード点火を行わせる。ステップ５においてハードフラグが１であると判定されたときには、ステップ７に進んで第２気筒の点火時期を検出するために計測する必要がある点火タイマ時間を第２気筒の点火タイマにセットしてメインルーチンに戻る。
【０１５７】
［＃１＿ｎ３．ＩＮＪ割込み］（図１６）
マイクロプロセッサは、第１気筒の噴射開始時期計測用ギアカウンタ（ｎ３．ＩＮＪギアカウンタ）がセットされたカウント値の計数を行う毎に図１６に示す＃１＿ｎ３．ＩＮＪ割込みを実行する。
【０１５８】
この割込みでは、先ずステップ１においてハードフラグが１であるか否かを判定し、ハードフラグが１である場合には、ステップ２に移行して第１気筒のハード噴射を行わせる。またステップ１においてハードフラグが１であると判定されたときには、ステップ３に移行して第１気筒のソフト噴射を行うタイミングを検出するために計測する必要がある噴射タイマ時間を噴射タイマにセットしてその計測を開始させた後、メインルーチンに戻る。
【０１５９】
［＃２＿ｎ３．ＩＮＪ割込み］（図１７）
マイクロプロセッサは、第２気筒の噴射開始時期計測用ギアカウンタ（ｎ３．ＩＮＪギアカウンタ）がセットされたカウント値を計数する毎に図１７の割込みルーチンを実行させる。
【０１６０】
この割込みルーチンでは、先ずステップ１においてハードフラグが１であるか否かを判定し、ハードフラグが１である場合には、ステップ２に移行して第２気筒のハード噴射を行わせる。またステップ１においてハードフラグが１であると判定されたときには、ステップ３に移行して第２気筒のソフト噴射を行うタイミングを検出するために計測する必要がある噴射タイマ時間を噴射タイマにセットしてその計測を開始させた後、メインルーチンに戻る。
【０１６１】
［点火タイマ割込み］（図１８）
マイクロプロセッサは、点火タイマがセットされた点火タイマ時間を計測する毎に図１８に示した点火タイマ割込みを実行する。
【０１６２】
この割込みでは、ステップ１において、既に点火信号が発生しているか否か（点火中であるか否か）を判定し、点火信号が発生していないと判定されたときにステップ２に進んでマイクロコンピュータのポートＢ１またはＢ２をＨレベルにすることにより、点火回路４または５に点火信号を与える。
【０１６３】
次いでステップ３において点火タイマに点火信号停止時間（点火信号の信号幅に相当する時間）をセットしてその計測を開始させる。点火信号を発生した後、点火タイマが点火信号停止時間を計測して再びこの割込みが実行されたときには、ステップ１において点火中であると判定されるため、ステップ４に移行して点火信号の出力を停止させる。これにより、点火回路のサイリスタに与える点火信号の信号幅を所定の幅に制限する。
【０１６４】
［＃１．ＩＮＪタイマ割込み］（図１９）
マイクロプロセッサは、第１気筒用の噴射タイマがセットされた噴射タイマ時間を計測したときに図１９の割込みを実行する。
【０１６５】
この割込みにおいては、ステップ１において第１気筒の燃料噴射装置が噴射中であるか否かを判定し、この判定により、噴射中でないと判定されたときに、ステップ２に進んでマイクロプロセッサのポートＢ３をＨレベルにすることにより、第１気筒の燃料噴射装置に噴射信号を与える。次いでステップ３において噴射タイマに噴射量演算手段により演算されている噴射量により決まる噴射時間をセットして、メインルーチンに戻る。噴射タイマが噴射時間を計測して、再びこの割込みが実行されたときには、ステップ１において噴射中であると判定されるため、ステップ４に移行して、噴射信号の出力を停止させる。これにより、第１気筒用の燃料噴射装置に与える噴射信号の信号幅を噴射量に相応した幅とする。
【０１６６】
［＃２．ＩＮＪタイマ割込み］（図２０）
マイクロプロセッサは、第２気筒用の噴射タイマがセットされた噴射タイマ時間を計測したときに図２０の割込みを実行する。
【０１６７】
この割込みにおいては、ステップ１において第２気筒の燃料噴射装置が噴射中であるか否かを判定し、この判定により、噴射中でないと判定されたときに、ステップ２に進んでマイクロプロセッサのポートＢ４をＨレベルにすることにより、第２気筒の燃料噴射装置に噴射信号を与える。次いでステップ３において噴射タイマに噴射量演算手段により演算されている噴射量により決まる噴射時間をセットして、メインルーチンに戻る。噴射タイマが噴射時間を計測して、再びこの割込みが実行されたときには、ステップ１において噴射中であると判定されるため、ステップ４に移行して、噴射信号の出力を停止させる。これにより、第２気筒用の燃料噴射装置に与える噴射信号の信号幅を、噴射量に相応した幅とする。
【０１６８】
本実施形態においては、図１２のステップ４，５及び９により、回転速度が設定速度Ｎ１以下であるときに制御モードを始動モードとし、回転速度が設定速度を超えているときに制御モードを定常制御モードとする制御モード切替手段が構成される。
【０１６９】
また図１２の割込みルーチンのステップ４ないし６と、図１４の割込みルーチンのステップ３及び４と、図１６の割込みルーチンのステップ１及び２と、図１７の割込みルーチンのステップ１及び２と、図１９及び図２０の割込みルーチンとにより、始動時噴射制御手段が構成される。
【０１７０】
更に、図８の割込みルーチンのステップ７及び９と、図９の割込みルーチンのステップ２ないし５及びステップ９と、図１２のステップ４，５，７及び８と、図１５の割込みルーチンのステップ２，３，５及び６とにより、始動時点火制御手段が構成される。
【０１７１】
また図１４の割込みルーチンのステップ３，５，６と、図１５の割込みルーチンにのステップ４及び７と、図１８の割込みルーチンとにより、定常時点火制御手段が構成される。
【０１７２】
更に図１２の割込みルーチンのステップ１２及び１３と、図１４の割込みルーチンのステップ７及び８と、図１６の割込みルーチンのステップ１及び３と、図１７の割込みルーチンのステップ１及び３と、図１９及び図２０の割込みルーチンとにより、定常時噴射制御手段が構成される。
【０１７３】
また本実施形態では、始動時噴射制御手段２４と定常時噴射制御手段２６とにより、リラクタ抜け信号の発生位置を基準にして各気筒の噴射開始時期を検出して各気筒内への燃料噴射を行わせる噴射制御手段が構成され、始動時点火制御手段２３と、定常時点火制御手段２６とにより、リラクタ抜け信号の発生位置を基準にして各気筒の点火時期を検出して各気筒での点火動作を行わせる点火制御手段が構成されている。
【０１７４】
上記の説明では、メインルーチンの構成に触れなかったが、メインルーチンでは、一連のギア信号を特定するための処理、割込みの制御、回転速度検出用の時間ＣＮＴＲＶ１，ＣＮＴＲＶ２，ＣＮＴＲ２１，ＣＮＴＲ２２から回転速度を求めるための演算、演算された回転速度に対して点火時期や噴射開始時期を求めるマップ演算、大気圧やスロットル開度などの各種の制御条件に対して行う燃料噴射量の演算などが行われる。
【０１７５】
上記の実施形態では、信号発生装置のロータに設けるギアの歯数を３０としたが、このギアの歯数は任意であり、クランク角の検出の分解能を高めるために、更に多くの（例えば６０個の）歯を有するギアを設けてもよい。
【０１７６】
【発明の効果】
以上のように、本発明によれば、エンジンのある気筒の始動時の燃料噴射開始時期として許容される時期にリラクタ入り信号を発生させるように信号発生装置を構成するとともに、エンジンの始動時に最初にリラクタ入り信号が発生したときに、該リラクタ入り信号の発生時にある気筒内への燃料噴射を行わせるように燃料噴射制御手段を構成したので、エンジンの始動時に必ず、各気筒内に燃料を噴射してから各気筒での点火動作を行わせることができる。従って、始動時に行われる第１回目の点火動作が無効になるのを防ぐことができ、エンジンの始動性を向上させることができる。
【図面の簡単な説明】
【図１】本発明に係わる制御装置のハードウェアの構成例を示したブロック図である。
【図２】本発明の実施形態で用いる信号発電機の構成例を示した正面図である。
【図３】図２の信号発電機の断面図である。
【図４】本発明の実施形態において、エンジンの始動時に各部に得られる信号波形を模式的に示したタイミングチャートである。
【図５】本発明の実施形態の始動操作開始時から始動完了時までの動作を説明するためのタイミングチャートである。
【図６】図５のタイミングチャートの各部において行われる点火動作及び噴射動作と、各点火動作及び噴射動作に用いられる信号と点火動作及び噴射動作が行われるクランク角位置とをまとめて示した図表である。
【図７】本発明の実施形態においてマイクロプロセッサが実現する機能実現手段を示した機能ブロック図である。
【図８】本発明の実施形態においてマイクロプロセッサが実行するリラクタ入り割込みのアルゴリズムを示したフローチャートである。
【図９】本発明の実施形態においてマイクロプロセッサが実行するリラクタ抜け割込みのアルゴリズムを示したフローチャートである。
【図１０】本発明の実施形態においてマイクロプロセッサが実行するギア割込みルーチンのアルゴリズムを示したフローチャートである。
【図１１】本発明の実施形態において、マイクロプロセッサが実行する他の割込みルーチンを示したフローチャートである。
【図１２】本発明の実施形態において、マイクロプロセッサが実行する更に他の割込みルーチンを示したフローチャートである。
【図１３】本発明の実施形態において、マイクロプロセッサが実行する更に他の割込みルーチンを示したフローチャートである。
【図１４】本発明の実施形態において、マイクロプロセッサが実行する更に他の割込みルーチンを示したフローチャートである。
【図１５】本発明の実施形態において、マイクロプロセッサが実行する更に他の割込みルーチンを示したフローチャートである。
【図１６】本発明の実施形態において、マイクロプロセッサが実行する更に他の割込みルーチンを示したフローチャートである。
【図１７】本発明の実施形態において、マイクロプロセッサが実行する更に他の割込みルーチンを示したフローチャートである。
【図１８】本発明の実施形態において、マイクロプロセッサが実行する更に他の割込みルーチンを示したフローチャートである。
【図１９】本発明の実施形態において、マイクロプロセッサが実行する更に他の割込みルーチンを示したフローチャートである。
【図２０】本発明の実施形態において、マイクロプロセッサが実行する更に他の割込みルーチンを示したフローチャートである。
【符号の説明】
１…マイクロプロセッサ、２…信号発生装置、２Ａ…リラクタ入り信号・抜け信号発生部、２Ｂ…ギア信号発生部、３…電源部、４…第１気筒用の点火回路、５…第２気筒用の点火回路、６…第１気筒用燃料噴射装置、７…第２気筒用燃料噴射装置、１０…ロータ、１１…パルサ、１２…ギアセンサ、１３…信号発電機、１８…リラクタ、１９…ギア、２２…始動時回転方向判定手段、２２ａ…抜け・入り間ギア信号カウント手段、２２ｂ…入り・入り間ギア信号カウント手段、２２ｃ…入り・抜け間ギア信号カウント手段、２２ｄ…抜け・抜け間ギア信号カウント手段、２２ｅ…リラクタ入り時回転方向判定手段、２２ｆ…リラクタ抜け時回転方向判定手段、２３…始動時点火制御手段、２４…始動時噴射制御手段、２５…定常時点火制御手段、２６…定常時噴射制御手段。
【図１】
2004084578.tif 000003
【図２】
2004084578.tif 000004
【図３】
2004084578.tif 000005
【図４】
2004084578.tif 000006
【図５】
2004084578.tif 000007
【図６】
2004084578.tif 000008
【図７】
2004084578.tif 000009
【図８】
2004084578.tif 000010
【図９】
2004084578.tif 000011
【図１０】
2004084578.tif 000012
【図１１】
2004084578.tif 000013
【図１２】
2004084578.tif 000014
【図１３】
2004084578.tif 000015
【図１４】
2004084578.tif 000016
【図１５】
2004084578.tif 000017
【図１６】
2004084578.tif 000018
【図１７】
2004084578.tif 000019
【図１８】
2004084578.tif 000020
【図１９】
2004084578.tif 000021
【図２０】
2004084578.tif 000022