(57)【特許請求の範囲】
【請求項１】
回転体の回転に同期してカウント動作すると共に、カウント値が前記回転体の回転角度を示す角度カウンタと、
前記角度カウンタの値と比較される値がセットされる第１レジスタと、
前記角度カウンタの値と前記第１レジスタの値とを比較し、前記角度カウンタの値が前記第１レジスタの値に達すると、第１一致信号を出力する第１比較回路と、
一定時間毎にカウント動作する時間カウンタと、
前記時間カウンタの値と比較される値がセットされる第２レジスタと、
前記時間カウンタの値と前記第２レジスタの値とを比較し、前記時間カウンタの値が前記第２レジスタの値に達すると、第２一致信号を出力する第２比較回路と、
を備えた信号出力装置であって、前記第１比較回路から前記第１一致信号が出力され、且つ、前記第２比較回路から前記第２一致信号が出力されると、出力信号の出力レベルを、ハイレベルとローレベルとのうちの一方である特定レベルから反対のレベルに反転させるように構成されている信号出力装置と、
前記出力信号の出力レベルを前記特定レベルから反転させるべき前記回転体の回転角度である出力反転角度の値を、前記第１レジスタにセットすると共に、特定の基準タイミングでの前記時間カウンタの値に、前記時間カウンタの規定時間分のカウント値を加えた加算値を、前記第２レジスタにセットするレジスタ値設定処理手段と、
を備えていることを特徴とする電子制御装置。
【請求項２】
請求項１に記載の電子制御装置において、
前記信号出力装置には、前記第１比較回路から前記第１一致信号が出力されたときに、前記時間カウンタの値をキャプチャするキャプチャレジスタが備えられていること、
を特徴とする電子制御装置。
【請求項３】
請求項２に記載の電子制御装置において、
前記基準タイミングは、前記回転体の回転角度が前記出力反転角度よりも前の特定角度となったタイミングであり、
前記レジスタ値設定処理手段は、
前記基準タイミングが到来する前に、前記第１レジスタに前記特定角度の値をセットしておくと共に、前記基準タイミングが到来してから前記回転体の回転角度が前記出力反転角度になるまでの間に、前記キャプチャレジスタの値を読み出し、その読み出した値に前記時間カウンタの規定時間分のカウント値を加えた値を、前記加算値として、前記第２レジスタにセットすること、
を特徴とする電子制御装置。
【請求項４】
請求項１ないし請求項３の何れか１項に記載の電子制御装置において、
前記特定レベルは、前記出力信号によって制御される制御対象への通電を停止する方のレベルであり、前記反対のレベルは、前記制御対象へ通電する方のレベルであること、
を特徴とする電子制御装置。
【請求項５】
請求項１ないし請求項３の何れか１項に記載の電子制御装置において、
前記特定レベルは、前記出力信号によって制御される制御対象へ通電する方のレベルであり、前記反対のレベルは、前記制御対象への通電を停止する方のレベルであること、
を特徴とする電子制御装置。
【請求項６】
回転体の回転に同期してカウント動作すると共に、カウント値が前記回転体の回転角度を示す角度カウンタと、
前記角度カウンタの値と比較される値がセットされる第１レジスタと、
前記角度カウンタの値と前記第１レジスタの値とを比較し、前記角度カウンタの値が前記第１レジスタの値に達すると、第１一致信号を出力する第１比較回路と、
一定時間毎にカウント動作する時間カウンタと、
前記時間カウンタの値と比較される値がセットされる第２レジスタと、
前記時間カウンタの値と前記第２レジスタの値とを比較し、前記時間カウンタの値が前記第２レジスタの値に達すると、第２一致信号を出力する第２比較回路と、
を備え、
前記第１比較回路から前記第１一致信号が出力され、且つ、前記第２比較回路から前記第２一致信号が出力されると、出力信号の出力レベルを、ハイレベルとローレベルとのうちの一方である特定レベルから反対のレベルに反転させるように構成されており、
更に、前記第１比較回路から前記第１一致信号が出力されたときに、前記時間カウンタの値をキャプチャするキャプチャレジスタを備えていること、
を特徴とする信号出力装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力信号の出力レベルを回転体の回転角度に応じて変化させる技術に関するものである。
【背景技術】
【０００２】
従来より、車両のエンジンを制御する電子制御装置では、エンジンのクランク軸の回転に応じて所定角度毎にエッジが生じるクランク信号をクランクセンサから入力して、エンジンの１サイクルにおけるクランク軸の回転角度（いわゆるクランク角）を表す角度カウンタを、上記クランク信号に基づきカウント動作させ、その角度カウンタのカウント値によりクランク角を把握するようになっており、その角度カウンタのカウント値が目的のクランク角に該当する設定値と一致したら、燃料噴射弁や点火装置を作動させるための信号の出力を行うようになっている（例えば、特許文献１，２，３参照）。
【０００３】
ここで、一例として、燃料噴射弁を作動させる噴射パルス信号を出力するための構成及び手法について、図１３を用い具体的に説明する。
まず、図１３（Ａ）に示すように、噴射パルス信号を出力するためのハードウェアとしては、角度カウンタ１０１の他に、その角度カウンタ１０１の値と比較される値がＣＰＵ（図示省略）によりセットされるコンペアマッチレジスタ１０３と、角度カウンタ１０１の値とコンペアマッチレジスタ１０３の値とを比較して、角度カウンタ１０１の値がコンペアマッチレジスタ１０３の値に達すると、コンペアマッチ信号を出力する比較回路１０５と、一定周波数のクロックを受けてダウンカウント動作すると共に、ＣＰＵにより任意の時間に相当する値（データ）がプリセット可能なダウンカウンタ１０７とを備えている。
【０００４】
また、ダウンカウンタ１０７には、比較回路１０５からのコンペアマッチ信号が、噴射パルス信号としての出力信号の出力レベルをアクティブレベル（即ち、燃料噴射弁に通電して該燃料噴射弁を開弁作動させる方のレベル）に変化させるためのパルスＯＮトリガ信号として入力される。
【０００５】
そして、噴射パルス信号のアクティブレベルがハイであるとすると、ダウンカウンタ１０７は、比較回路１０５からコンペアマッチ信号が出力されると、出力信号をローからハイに反転させると共に、事前にプリセットされている値からのダウンカウント動作を開始し、そのカウント値が０になると（即ち、プリセットされていた値に相当するタイマ時間が経過すると）、出力信号をハイからローに戻す。
【０００６】
このため、図１３（Ｂ）に示すように、ＣＰＵは、燃料噴射弁の開弁作動を開始すべきクランク角（即ち、噴射パルス信号をローからハイに反転させるべきクランク角であり、以下、噴射開始角度という）ａｎ１のタイミングが到来する前に、その噴射開始角度ａｎ１をコンペアマッチレジスタ１０３にセットすると共に、燃料噴射時間（即ち、噴射パルス信号のハイ継続時間であり、燃料噴射弁の開弁継続時間）Ｔｆ１に相当する値をダウンカウンタ１０７にプリセットしておく。
【０００７】
すると、クランク角が上記噴射開始角度ａｎ１になって、比較回路１０５からコンペアマッチ信号が出力されたときに、ダウンカウンタ１０７からの噴射パルス信号（出力信号）がローからハイに反転して燃料噴射が開始され、その後、上記燃料噴射時間Ｔｆ１が経過して、ダウンカウンタ１０７のカウント値が０になると、そのダウンカウンタ１０７からの噴射パルス信号がハイからローに戻って燃料噴射が終了することとなる。
【０００８】
また、エンジン制御においては、図１３（Ｂ）に示すように、各気筒への燃料噴射を複数回（この例では２回）に分けて行う分割噴射がある。
そして、この分割噴射を行う場合、ＣＰＵは、例えば、初回の燃料噴射のための噴射パルス信号がハイからローになったタイミング（図１３（Ｂ）における時刻ｔｏｆ１のタイミング）で、基本的には、２回目の噴射開始角度ａｎ２をコンペアマッチレジスタ１０３にセットすると共に、２回目の燃料噴射時間Ｔｆ２に相当する値をダウンカウンタ１０７にプリセットすることとなる。
【０００９】
但し、この種の分割噴射においては、２つの噴射パルス信号の間隔（ローになってから再びハイになるまでの間隔）を規定時間ＴＬ以上離さなければいけない、という時間制限が設けられる場合がある。
【００１０】
そして、このような時間制限がある場合、ＣＰＵは、初回の燃料噴射のための噴射パルス信号がハイからローになった上記時刻ｔｏｆ１のタイミングにおいて、下記（１）及び（２）の処理を行うこととなる。
【００１１】
（１）まず、その時点で検出しているクランク軸の回転速度に基づいて、現在時刻ｔｏｆ１から上記規定時間ＴＬが経過した時のクランク角ａｎ３を算出する。つまり、規定時間ＴＬ後の時刻をクランク角ａｎ３に換算する。
【００１２】
（２）そして、その算出したクランク角ａｎ３と、２回目の噴射開始角度ａｎ２とを比較して、２回目の噴射開始角度ａｎ２の方が後のクランク角である場合には、その噴射開始角度ａｎ２をコンペアマッチレジスタ１０３にセットするが、算出したクランク角ａｎ３の方が後のクランク角である場合には、その算出したクランク角ａｎ３の方をコンペアマッチレジスタ１０３にセットする。尚、図１３（Ｂ）は、前者の場合を例示している。
【００１３】
そして、このような（１）及び（２）の処理により、クランク角が２回目の噴射開始角度ａｎ２になっても、１回目の噴射パルス信号がローになった時点から規定時間ＴＬが経過するまでは２回目の噴射パルス信号の出力を開始しない、という信号出力開始タイミングのガード機能を実現している。
【００１４】
一方、例えば特許文献４には、燃料噴射開始または燃料噴射終了をタイマ手段の出力で行い、燃料噴射終了または燃料噴射開始をエンジンに同期する信号で行うことが記載されている。
【特許文献１】特開２００１−２００７４７号公報
【特許文献２】特開２００１−２１４７９０号公報
【特許文献３】特開２００１−２７１７００号公報
【特許文献４】特開平４−１３６４５１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
ところで、図１３を用いて説明した従来技術では、ＣＰＵの処理負荷が比較的大きくなる上に、上記（２）の処理を行った時点において、上記算出したクランク角ａｎ３よりも２回目の噴射開始角度ａｎ２の方が後のクランク角であると判定し、その噴射開始角度ａｎ２をコンペアマッチレジスタ１０３にセットしたとしても、その後、クランク軸の回転速度が上昇すると、上記規定時間ＴＬの制限を満たすことができない可能性がある。
【００１６】
つまり、クランク軸の回転速度が上昇すると、初回の燃料噴射のための噴射パルス信号がローになってから上記規定時間ＴＬが経過する前に、実際のクランク角が噴射開始角度ａｎ２になり、２回目の噴射パルス信号がハイになってしまう。
【００１７】
また、こうした回転速度変動による問題を回避するために、コンペアマッチレジスタ１０３との比較対象カウンタを、角度カウンタ１０１ではなく、一定時間毎にカウント動作する時間カウンタとし、上記コンペアマッチレジスタ１０３には、噴射開始角度を時刻に換算した値をセットする、という方法も考えられる。つまり、噴射パルス信号の出力開始タイミング（ハイへの変化タイミング）を、角度カウンタによって把握されるクランク角ではなく、時刻で管理するのである。
【００１８】
しかし、この方法では、上記の時間制限を確実に満足させることが出来るものの、クランク角によって噴射パルス信号の出力開始タイミングを設定することができず、クランク軸の回転速度変化により、噴射パルス信号の出力開始タイミングが目的の噴射開始角度からずれてしまうため、燃料噴射制御の精度が非常に悪くなってしまう。よって現実的ではない。
【００１９】
本発明は、こうした問題に鑑みなされたものであり、クランク軸などの回転体の回転角度が出力信号の出力レベルを反転させるべき目的の角度になっても、特定の基準タイミングから規定時間が経過するまでは出力信号を反転させない、という時間制限機能を、少ないＣＰＵ処理負荷で確実に実現することを目的としている。
【課題を解決するための手段】
【００２０】
上記目的を達成するためになされた請求項１の電子制御装置が備える信号出力装置は、回転体の回転に同期してカウント動作すると共に、カウント値が前記回転体の回転角度を示す角度カウンタと、その角度カウンタの値と比較される値がセットされる第１レジスタと、角度カウンタの値と第１レジスタの値とを比較して、角度カウンタの値が第１レジスタの値に達すると、第１一致信号を出力する第１比較回路と、一定時間毎にカウント動作する時間カウンタと、その時間カウンタの値と比較される値がセットされる第２レジスタと、時間カウンタの値と第２レジスタの値とを比較して、時間カウンタの値が第２レジスタの値に達すると、第２一致信号を出力する第２比較回路とを備えている。
【００２１】
そして、この信号出力装置は、第１比較回路から第１一致信号が出力され、且つ、第２比較回路から第２一致信号が出力されると、出力信号の出力レベルを、ハイレベルとローレベルとのうちの一方である特定レベルから、それとは反対のレベルに反転させるように構成されている。
【００２２】
このような信号出力装置によれば、回転体の回転角度が出力信号の出力レベルを特定レベルから反転させるべき目的の出力反転角度になっても、特定の基準タイミングから規定時間が経過するまでは出力信号を反転させない、という時間制限機能を実現したい場合、その出力反転角度の値を第１レジスタにセットすると共に、特定の基準タイミングでの時間カウンタの値に、時間カウンタの規定時間分のカウント値を加えた加算値（即ち、基準タイミングから規定時間が経過した時になっていると予想される時間カウンタの予想値）を第２レジスタにセットするだけで良い。
【００２３】
つまり、このようなセットを行えば、回転体の回転角度が出力反転角度になると、第１比較回路から第１一致信号が出力され、また、特定の基準タイミングから規定時間が経過した時刻になると、第２比較回路から第２一致信号が出力されることとなる。そして、特定の基準タイミングから規定時間が経過した時刻よりも後に、回転体の回転角度が出力反転角度になった場合には、その出力反転角度になった時（即ち、第１比較回路から第１一致信号が出力された時）に、出力信号が特定レベルから反転することとなるが、特定の基準タイミングから規定時間が経過する時刻よりも前に、回転体の回転角度が出力反転角度になった場合には、特定の基準タイミングから規定時間が経過した時（即ち、第２比較回路から第２一致信号が出力された時）に、出力信号が特定レベルから反転することとなるからである。
【００２４】
よって、このような信号出力装置によれば、上記の時間制限機能を、少ないＣＰＵ処理負荷で、且つ、回転体の回転速度変動に影響されることなく確実に実現することができる。
【００２５】
尚、上記特定レベルが、出力信号によって制御される制御対象への通電を停止する方のレベル（非アクティブレベル）であり、それとは反対のレベルが、制御対象へ通電する方のレベル（アクティブレベル）であれば、上記出力反転角度は、出力信号の出力レベルを非アクティブレベルからアクティブレベルに反転させるべき角度であり、換言すれば、出力信号の出力を開始すべき出力開始角度であると言える。
【００２６】
そして、この場合には、回転体の回転角度が出力信号の出力を開始すべき出力開始角度になっても、特定の基準タイミングから規定時間が経過するまでは出力信号の出力を開始しない、という時間制限機能（換言すれば、信号出力開始タイミングのガード機能）を、少ないＣＰＵ処理負荷で確実に実現することができるようになる。
【００２７】
また、上記特定レベルが、出力信号によって制御される制御対象へ通電する方のレベル（アクティブレベル）であり、それとは反対のレベルが、制御対象への通電を停止する方のレベル（非アクティブレベル）であれば、上記出力反転角度は、出力信号の出力レベルをアクティブレベルから非アクティブレベルに反転させるべき角度であり、換言すれば、出力信号の出力を終了すべき出力終了角度であると言える。
【００２８】
そして、この場合には、回転体の回転角度が出力信号の出力を終了すべき出力終了角度になっても、特定の基準タイミングから規定時間が経過するまでは出力信号の出力を終了しない、という時間制限機能（換言すれば、信号出力終了タイミングのガード機能）を、少ないＣＰＵ処理負荷で確実に実現することができるようになる。
【００２９】
以上のことから、請求項１の電子制御装置では、上記の時間制限機能を実現するために、上記の信号出力装置と、レジスタ値設定処理手段とを備えている。そして、レジスタ値設定処理手段は、出力信号の出力レベルを特定レベルから反転させるべき回転体の回転角度である出力反転角度の値を、第１レジスタにセットすると共に、特定の基準タイミングでの時間カウンタの値に、時間カウンタの規定時間分のカウント値を加えた加算値を、第２レジスタにセットする。
【００３０】
次に、請求項２の電子制御装置では、請求項１の電子制御装置において、信号出力装置が、更に、キャプチャレジスタを備えており、そのキャプチャレジスタは、第１比較回路から第１一致信号が出力されたときに、時間カウンタの値をキャプチャする。
【００３１】
このような信号出力装置を備えた請求項２の電子制御装置によれば、前記基準タイミングが、回転体の回転角度が出力反転角度よりも前の特定角度となったタイミングである場合に、その基準タイミングでの時間カウンタの正確な値をキャプチャレジスタから簡単に取得することができ、延いては、第２レジスタへ正確な値をセットすることができるようになる。
【００３２】
つまり、上記キャプチャレジスタが無い場合、基準タイミングでの時間カウンタの値を知るためには、基準タイミングが到来したことを検知して即座に時間カウンタの値を読み出す、といった処理を行うこととなるが、読み出し処理の実行遅れにより、正確な値を確実に取得することは難しい。
【００３３】
これに対して、請求項２の電子制御装置によれば、基準タイミングが到来する前に、第１レジスタに前記特定角度の値をセットしておけば、回転体の回転角度が上記特定角度になって第１比較回路から第１一致信号が出力されると、その時の時間カウンタの値が、基準タイミングでの時間カウンタの値としてキャプチャレジスタにキャプチャされることとなる。よって、そのキャプチャレジスタの値を読み出すだけで、基準タイミングでの時間カウンタの正確な値を取得することができる。
【００３４】
そこで、請求項２の電子制御装置は、請求項３に記載の如く構成すれば良い。
即ち、請求項３の電子制御装置では、請求項２の電子制御装置において、前記基準タイミングは、回転体の回転角度が出力反転角度よりも前の特定角度となったタイミングである。
【００３５】
そして更に、レジスタ値設定処理手段は、前記基準タイミングが到来する前に、第１レジスタに前記特定角度の値をセットしておくと共に、前記基準タイミングが到来してから回転体の回転角度が出力反転角度になるまでの間に、キャプチャレジスタの値を読み出し、その読み出した値に時間カウンタの規定時間分のカウント値を加えた値を、前記加算値として、第２レジスタにセットする。
【００３６】
このような請求項３の電子制御装置によれば、基準タイミングでの時間カウンタの正確な値を、キャプチャレジスタから確実に取得することができ、延いては、第２レジスタへ正確な値（詳しくは、基準タイミングから規定時間が経過した時の時間カウンタの予想値として正確な値）をセットして、正確な時間制限機能を実現することができるようになる。
一方、請求項６の信号出力装置は、請求項２，３の電子制御装置が備えた信号出力装置と同じものである。このため、請求項６の信号出力装置によれば、請求項２，３の電子制御装置に用いることができ、また、その請求項２，３の電子制御装置について述べた効果を得ることができる。
【発明を実施するための最良の形態】
【００３７】
以下に、本発明が適用された実施形態の電子制御装置について説明する。尚、本実施形態の電子制御装置は、車両の内燃機関型エンジンを制御するエンジン制御装置である。
［第１実施形態］
まず図１は、第１実施形態のエンジン制御装置（以下、ＥＣＵという）１１の構成を表す構成図である。
【００３８】
図１に示すように、ＥＣＵ１１には、エンジン１を制御するための様々な処理を行うマイコン（マイクロコンピュータ）１３と、当該ＥＣＵ１１の外部とマイコン１３との間で信号の入出力を行わせるための外部入出力回路１５とが備えられている。
【００３９】
また、ＥＣＵ１１の外部には、エンジン１に燃料を噴射するインジェクタ（電磁式燃料噴射弁）２、エンジン１の点火プラグを着火させるためのイグナイタ（点火装置）３、エンジン１の吸入空気量を調節する電子スロットル４、エンジン１のクランク軸の回転に応じて所定角度毎（例えば３０°ＣＡ毎）にエッジが生じるクランク信号を出力するクランクセンサ５、エンジン１の冷却水の温度を検出する水温センサ６、及び電子スロットル４の開度を検出するスロットルセンサ７など、エンジン１を運転させるための各種アクチュエータやエンジン１の運転状態を検出するための各種センサが接続されている。
【００４０】
そして、クランクセンサ５からのクランク信号など、ハイレベルとローレベルとに変化する信号については、外部入出力回路１５により波形整形されてマイコン１３に入力され、水温センサ６やスロットルセンサ７からの信号など、アナログ信号については、外部入出力回路１５に備えられたＡ／Ｄ変換器（図示省略）によりデジタル信号に変換されてマイコン１３に入力される。
【００４１】
また、各種アクチュエータには、マイコン１３からの駆動信号に従い外部入出力回路１５を介して駆動電流が供給されるが、特に、インジェクタ２は、マイコン１３から出力される噴射パルス信号がハイレベルのときに通電されて開弁し、イグナイタ３は、マイコン１３から出力される点火パルス信号がハイレベルのときに通電され、その点火パルス信号がローレベルに戻って通電が遮断されたときに、点火プラグに火花を発生させる。
【００４２】
一方、マイコン１３には、周知のＣＰＵ２１、ＲＯＭ２３、ＲＡＭ２５、及び入出力ポート２７などに加え、噴射パルス信号と点火パルス信号を出力するための回路としてタイマ（ＴＩＭＥＲ）モジュール２９が備えられている。
【００４３】
そこで次に、このタイマモジュール２９について説明する。
図２に示すように、タイマモジュール２９は、クランク軸の回転に同期してカウント動作すると共に、それのカウント値がクランク角（エンジン１の１サイクルにおけるクランク軸の回転角度）を示す角度カウンタ３１と、角度カウンタ３１の値と比較される値がセットされる角度コンペアマッチレジスタ３２と、角度カウンタ３１の値と角度コンペアマッチレジスタ３２の値とを比較して、角度カウンタ３１の値が角度コンペアマッチレジスタ３２の値に達すると、角度コンペアマッチ信号を出力する比較回路３３と、一定時間毎にカウント動作する時間カウンタ３４と、時間カウンタ３４の値と比較される値がセットされる時間コンペアマッチレジスタ３５と、時間カウンタ３４の値と時間コンペアマッチレジスタ３５の値とを比較して、時間カウンタ３４の値が時間コンペアマッチレジスタ３５の値に達すると、時間コンペアマッチ信号を出力する比較回路３６と、噴射パルス信号又は点火パルス信号としての出力信号を出力するためのダウンカウンタ３７と、上記角度コンペアマッチ信号及び時間コンペアマッチ信号から、ＣＰＵ２１により設定される動作モードでパルスＯＮトリガ信号とパルスＯＦＦトリガ信号との両方又は一方を生成し、その生成した信号をダウンカウンタ３７へ出力する切り替え回路３８とを備えている。
【００４４】
尚、パルスＯＮトリガ信号は、ダウンカウンタ３７からの出力信号の出力レベルをアクティブレベル（本実施形態ではハイレベル）に変化させるための信号であり、パルスＯＦＦトリガ信号は、その出力信号の出力レベルを非アクティブレベル（本実施形態ではローレベル）に変化させるための信号である。また、本実施形態において、角度コンペアマッチ信号、時間コンペアマッチ信号、パルスＯＮトリガ信号、及びパルスＯＦＦトリガ信号のそれぞれも、ハイアクティブの信号である。
【００４５】
そして、ダウンカウンタ３７は、ＣＰＵ２１により任意の時間に相当する値（データ）がプリセット可能であり、切り替え回路３８からのパルスＯＮトリガ信号を受けると、出力信号をローからハイに反転させると共に、マイコン１３における内部クロックに従いプリセット値からのダウンカウント動作を開始し、そのカウント値が０になる（即ち、プリセット値に相当するタイマ時間が経過する）か、或いは、切り替え回路３８からのパルスＯＦＦトリガ信号を受けると、出力信号をハイからローに戻す。尚、ダウンカウンタ３７の構成については後で述べる。
【００４６】
一方、角度カウンタ３１は、クランクセンサ５からのクランク信号に基づき、そのクランク信号に有効なエッジが生じる上記所定角度よりも小さい分解能でカウント動作して、そのカウント値がクランク角を上記分解能で表すカウンタである。つまり、マイコン１３では、角度カウンタ３１のカウント制御を行うための図示しないカウント制御回路が、クランク信号から、そのクランク信号を逓倍した逓倍クロック（詳しくは、周期がクランク信号の周期の逓倍数分の１であるクロック）を生成し、その逓倍クロックにより角度カウンタ３１を繰り返しカウント動作させている。尚、このようなカウント制御回路の構成や作用については、特許文献１〜３などに記載されており公知であるため、詳細な説明を省略する。
【００４７】
また、時間カウンタ３４は、マイコン１３における内部クロックにより常時カウントアップされてラップラウンドするフリーランカウンタである。
また、比較回路３３は、角度コンペアマッチ信号を出力すると、ＣＰＵ２１によりリセットされるまで、その角度コンペアマッチ信号を出力し続けるラッチ回路（図示省略）を有している。そして、このことは、比較回路３６についても同様である。
【００４８】
次に、切り替え回路３８の構成及び作用について図３を用い説明する。尚、図３（Ａ）は、切り替え回路３８の動作を表す一覧表であり、その一覧表において、「設定値」とは、ＣＰＵ２１によって設定される動作モードの設定値（以下、モード設定値という）である。そして、図３（Ｂ）は、切り替え回路３８の構成を表す構成図である。
【００４９】
まず、図３（Ａ）に示すように、切り替え回路３８は、ＣＰＵ２１から与えられるモード設定値により、０〜５の何れかの動作モードに設定される。そして、その設定された動作モード毎の規則で、角度コンペアマッチ信号及び時間コンペアマッチ信号からパルスＯＮトリガ信号とパルスＯＦＦトリガ信号との両方又は一方を生成して出力する。
【００５０】
即ち、「モード設定値＝１」の場合には、パルスＯＮトリガ信号を出力せずに、比較回路３６からの時間コンペアマッチ信号をパルスＯＦＦトリガ信号として出力し、「モード設定値＝２」の場合には、パルスＯＦＦトリガ信号を出力せずに、比較回路３３からの角度コンペアマッチ信号をパルスＯＮトリガ信号として出力し、「モード設定値＝３」の場合には、角度コンペアマッチ信号をパルスＯＮトリガ信号として出力すると共に、時間コンペアマッチ信号をパルスＯＦＦトリガ信号として出力する。そして、「モード設定値＝４」の場合には、パルスＯＦＦトリガ信号を出力せずに、角度コンペアマッチ信号と時間コンペアマッチ信号との論理積信号をパルスＯＮトリガ信号として出力し、「モード設定値＝５」の場合には、パルスＯＮトリガ信号を出力せずに、角度コンペアマッチ信号と時間コンペアマッチ信号との論理積信号をパルスＯＦＦトリガ信号として出力する。尚、「モード設定値＝０」の場合には、パルスＯＮトリガ信号とパルスＯＦＦトリガ信号を両方共に出力しない。
【００５１】
こうした動作を実現するために、切り替え回路３８には、図３（Ｂ）に示すように、ＣＰＵ２１によりモード設定値が書き込まれるレジスタ４１と、角度コンペアマッチ信号と時間コンペアマッチ信号との論理積信号を出力するアンド回路４２と、パルスＯＮトリガ信号を出力するためのオア回路４３と、パルスＯＦＦトリガ信号を出力するためのオア回路４４と、オンすることで角度コンペアマッチ信号をオア回路４３の一方の入力端子に入力させるスイッチ回路４５と、オンすることでアンド回路４２の出力信号をオア回路４３の他方の入力端子に入力させるスイッチ回路４６と、オンすることで時間コンペアマッチ信号をオア回路４４の一方の入力端子に入力させるスイッチ回路４７と、オンすることでアンド回路４２の出力信号をオア回路４４の他方の入力端子に入力させるスイッチ回路４８と、レジスタ４１に書き込まれたモード設定値に応じて上記スイッチ回路４５〜４８をオン／オフさせるデコード回路４９とが備えられている。
【００５２】
そして、デコード回路４９は、「モード設定値＝０」の場合には、スイッチ回路４５〜４８を全てオフさせ、「モード設定値＝１」の場合には、スイッチ回路４７だけをオンさせ、「モード設定値＝２」の場合には、スイッチ回路４５だけをオンさせ、「モード設定値＝３」の場合には、スイッチ回路４５とスイッチ回路４７をオンさせ、「モード設定値＝４」の場合には、スイッチ回路４６だけをオンさせ、「モード設定値＝５」の場合には、スイッチ回路４８だけをオンさせる。
【００５３】
尚、オア回路４３，４４の入力端子は、図示しない抵抗器によりグランドラインにプルダウンされている。このため、オア回路４３，４４の各入力端子は、その入力端子に接続されているスイッチ回路４５〜４８がオフされている場合には、ローレベルとなる。
【００５４】
次に、ダウンカウンタ３７は、図４に示すように、切り替え回路３８からのパルスＯＮトリガ信号とＣＰＵ２１からのセット信号とを入力としたオア回路５１と、切り替え回路３８からのパルスＯＦＦトリガ信号とＣＰＵ２１からのリセット信号とを入力としたオア回路５２と、オア回路５１の出力信号がハイアクティブのセット端子に入力され、オア回路５２の出力信号がハイアクティブのリセット端子に入力されるラッチ回路５３と、ラッチ回路５３の出力とマイコン１３における内部クロックとを入力としたアンド回路５４と、ＣＰＵ２１により任意の時間に相当する値（データ）がプリセット可能であると共に、アンド回路５４から出力されるクロックによりダウンカウント動作し、更に、そのカウント値が０でなければハイレベルの信号を出力するカウンタ５５と、カウンタ５５の出力とラッチ回路５３の出力との論理積信号を、当該ダウンカウンタ３７の出力信号として出力するアンド回路５６とを備えている。また、カウンタ５５は、オア回路５２の出力信号がハイになると、カウント値が０にリセットされるようになっている。
【００５５】
このようなダウンカウンタ３７では、カウンタ５５に任意の時間に相当する値がプリセットされている状態で、切り替え回路３８からのパルスＯＮトリガ信号がハイになると、ラッチ回路５３がセット状態になって該ラッチ回路５３の出力がハイとなり、アンド回路５６からの出力信号がローからハイになる。また、これと同時に、アンド回路５４からカウンタ５５へクロックが供給され始めて、カウンタ５５がダウンカウント動作を開始する。
【００５６】
そして、このダウンカウント動作によりカウンタ５５のカウント値が０になるか、或いは、切り替え回路３８からのパルスＯＦＦトリガ信号がハイになって、オア回路５２の出力によりラッチ回路５３とカウンタ５５とがリセットされると、アンド回路５６からの出力信号がハイからローに戻る。
【００５７】
尚、ラッチ回路５３は、ＣＰＵ２１からオア回路５１へのセット信号によっても、強制的にセット状態にすることができる。また、ラッチ回路５３とカウンタ５５は、ＣＰＵ２１からオア回路５２へのリセット信号によっても、強制的にリセットすることができる。
【００５８】
次に、ＣＰＵ２１が、上記のタイマモジュール２９を用いて噴射パルス信号を出力するために実行する処理について、図５のフローチャート及び図６，図７のタイムチャートを用いて説明する。この場合、ダウンカウンタ３７の出力信号が噴射パルス信号となる。
【００５９】
尚、本実施形態のＥＣＵ１１においては、各気筒への燃料噴射を複数回（この例では２回）に分けて行う分割噴射を行っている。このため、噴射パルス信号は、図６の最上段に示すように、クランク角が１回目の噴射開始角度ａｎ１になった時点から１回目の燃料噴射時間Ｔｆ１だけハイレベルになり、その後、クランク角が２回目の噴射開始角度ａｎ２になった時点から２回目の燃料噴射時間Ｔｆ２だけ再びハイレベルになる。そして更に、この分割噴射では、１回目と２回目との噴射パルス信号の間隔（ローになってから再びハイになるまでの間隔）を規定時間ＴＬ以上離さなければいけない、という時間制限がある。つまり、クランク角が２回目の噴射開始角度ａｎ２になっても、初回燃料噴射の終了タイミング（即ち、１回目の噴射パルス信号がローになったタイミング）から規定時間ＴＬが経過するまでは噴射パルス信号をハイに反転させない（換言すれば、噴射パルス信号の出力を開始しない）、という時間制限がある。また、ＣＰＵ２１は、図示しない別の制御処理により、各種センサからの信号に基づきエンジン１の運転状態を検出すると共に、その検出結果から、１回目と２回目との噴射開始角度ａｎ１，ａｎ２及び燃料噴射時間Ｔｆ１，Ｔｆ２を算出している。
【００６０】
まず図５（Ａ）は、ＣＰＵ２１が１回目（初回）の噴射パルス信号を出力するために実行する初回パルス設定処理を表すフローチャートである。
尚、この初回パルス設定処理は、クランク角が１回目の噴射開始角度ａｎ１となる前の任意のタイミングで実行される。また、比較回路３３，３６における前述のラッチ回路（角度コンペアマッチ信号と時間コンペアマッチ信号を出力するラッチ回路）と、ダウンカウンタ３７におけるラッチ回路５３は、この初回パルス設定処理の実行が開始される前に、ＣＰＵ２１によりリセットされている。
【００６１】
図５（Ａ）に示すように、ＣＰＵ２１が初回パルス設定処理の実行を開始すると、まずＳ１１０にて、角度コンペアマッチレジスタ３２に１回目の噴射開始角度ａｎ１をセットし、続くＳ１２０にて、ダウンカウンタ３７（詳しくは、そのダウンカウンタ３７を構成するカウンタ５５）に、１回目の燃料噴射時間Ｔｆ１に相当する値をセットする。尚、燃料噴射時間Ｔｆ１に相当する値とは、その燃料噴射時間Ｔｆ１をダウンカウンタ３７のクロックの１周期時間で割った値である。
【００６２】
そして、次のＳ１３０にて、切り替え回路３８のレジスタ４１に、モード設定値として２を書き込み、その後、当該初回パルス設定処理を終了する。
すると、図６に示すように、その後、角度カウンタ３１の値が１回目の噴射開始角度ａｎ１になって、比較回路３３から角度コンペアマッチ信号が出力されたとき（即ち、角度コンペアマッチ信号がハイになったとき）に、切り替え回路３８からのパルスＯＮトリガ信号がハイになって、ダウンカウンタ３７からの噴射パルス信号がローからハイになる。また、これと同時に、ダウンカウンタ３７では、カウンタ５５のダウンカウント動作が開始される。そして、その後、１回目の燃料噴射時間Ｔｆ１が経過して、カウンタ５５のカウント値が０になると、ダウンカウンタ３７からの噴射パルス信号がハイからローに戻ることとなる。このようにして、１回目の噴射パルス信号が出力される。
【００６３】
次に図５（Ｂ）は、ＣＰＵ２１が２回目の噴射パルス信号を出力するために実行するパルスオフ時処理を表すフローチャートである。そして、このパルスオフ時処理は、噴射パルス信号がハイからローになったときに実行される。
【００６４】
図５（Ｂ）に示すように、ＣＰＵ２１がパルスオフ時処理の実行を開始すると、まずＳ２０５にて、そのときの時間カウンタ３４の値を読み込み、その値を、噴射パルス信号がハイからローへ変化した時刻（以下、パルスオフ時刻という）ｔ１として記憶する。
【００６５】
そして、続くＳ２１０にて、比較回路３３，３６における前述のラッチ回路をリセットして、角度コンペアマッチ信号と時間コンペアマッチ信号をクリアすると共に、ダウンカウンタ３７へのリセット信号により、そのダウンカウンタ３７におけるラッチ回路５３もリセットする。
【００６６】
次にＳ２２０にて、次の噴射パルス信号を出力する必要があるか否かを判定し、次の噴射パルス信号を出力する必要がなければ（即ち、今回ローに戻った噴射パルス信号が２回目の噴射パルス信号であった場合には）、そのまま当該パルスオフ時処理を終了する。
【００６７】
また、上記Ｓ２２０にて、次の噴射パルス信号を出力する必要があると判定した場合（即ち、今回ローに戻った噴射パルス信号が１回目の噴射パルス信号であった場合には）、Ｓ２３０に進んで、角度コンペアマッチレジスタ３２に２回目の噴射開始角度ａｎ２をセットする。
【００６８】
そして、続くＳ２４０にて、上記Ｓ２０５で記憶したパルスオフ時刻ｔ１に、時間カウンタ３４の規定時間ＴＬ分のカウント値（具体的には、規定時間ＴＬを時間カウンタ３４のクロックの１周期時間で割った値）を加えた値を、パルスオフ時刻ｔ１から規定時間ＴＬが経過した時刻ｔ２として算出する。つまり、パルスオフ時刻ｔ１から規定時間ＴＬが経過した時になっていると予想される時間カウンタ３４の予想値を、時刻ｔ２として算出する。
【００６９】
次にＳ２５０にて、上記Ｓ２４０で算出した時刻ｔ２を時間コンペアマッチレジスタ３５にセットし、続くＳ２６０にて、ダウンカウンタ３７（詳しくは、そのダウンカウンタ３７を構成するカウンタ５５）に、２回目の燃料噴射時間Ｔｆ２に相当する値をセットする。尚、燃料噴射時間Ｔｆ２に相当する値とは、その燃料噴射時間Ｔｆ２をダウンカウンタ３７のクロックの１周期時間で割った値である。
【００７０】
そして更に、続くＳ２７０にて、切り替え回路３８のレジスタ４１に、モード設定値として４を書き込み、その後、当該パルスオフ時処理を終了する。
このようなパルスオフ時処理により、もし、１回目の噴射パルス信号のパルスオフ時刻ｔ１から規定時間ＴＬが経過した時刻ｔ２よりも後に、クランク角が２回目の噴射開始角度ａｎ２になった場合には、図６に示すように、角度カウンタ３１の値が角度コンペアマッチレジスタ３２にセットされた２回目の噴射開始角度ａｎ２になるよりも先に、時間カウンタ３４の値が時間コンペアマッチレジスタ３５にセットされた時刻ｔ２の値に達して、比較回路３６からの時間コンペアマッチ信号がハイになる。
【００７１】
そして、切り替え回路３８のモード設定値は４にセットされているため、その後、角度カウンタ３１の値が２回目の噴射開始角度ａｎ２になって、比較回路３３からの角度コンペアマッチ信号がハイになった時に、切り替え回路３８からのパルスＯＮトリガ信号がハイになって、ダウンカウンタ３７からの２回目の噴射パルス信号がローからハイになる。また、これと同時に、ダウンカウンタ３７では、カウンタ５５のダウンカウント動作が開始され、その後、２回目の燃料噴射時間Ｔｆ２が経過して、そのカウンタ５５のカウント値が０になると、ダウンカウンタ３７からの２回目の噴射パルス信号がハイからローに戻ることとなる。
【００７２】
一方、もし、クランク軸の回転速度が速くなり、１回目の噴射パルス信号のパルスオフ時刻ｔ１から規定時間ＴＬが経過する時刻ｔ２よりも前に、クランク角が２回目の噴射開始角度ａｎ２になった場合には、図７に示すように、時間カウンタ３４の値が時間コンペアマッチレジスタ３５にセットされた時刻ｔ２の値になるよりも先に、角度カウンタ３１の値が角度コンペアマッチレジスタ３２にセットされた２回目の噴射開始角度ａｎ２に達して、比較回路３３からの角度コンペアマッチ信号がハイになる。
【００７３】
そして、切り替え回路３８のモード設定値は４にセットされているため、その後、時間カウンタ３４の値が時間コンペアマッチレジスタ３５にセットされた時刻ｔ２の値になって、比較回路３６からの時間コンペアマッチ信号がハイになった時（即ち、パルスオフ時刻ｔ１から規定時間ＴＬが経過した時）に、切り替え回路３８からのパルスＯＮトリガ信号がハイになって、ダウンカウンタ３７からの２回目の噴射パルス信号がローからハイになる。また、これと同時に、ダウンカウンタ３７では、カウンタ５５のダウンカウント動作が開始され、その後、２回目の燃料噴射時間Ｔｆ２が経過して、そのカウンタ５５のカウント値が０になると、ダウンカウンタ３７からの２回目の噴射パルス信号がハイからローに戻ることとなる。
【００７４】
このように、ＥＣＵ１１のタイマモジュール２９では、切り替え回路３８のモード設定値を４に設定することにより、比較回路３３と比較回路３６との両方からコンペアマッチ信号（角度コンペアマッチ信号及び時間コンペアマッチ信号）が出力された時点で、ダウンカウンタ３７からの噴射パルス信号としての出力信号が非アクティブレベルのローからアクティブレベルのハイに反転するようになる。
【００７５】
このため、分割噴射の噴射パルス信号に関する時間制限であって、１回目と２回目との噴射パルス信号の間隔を規定時間ＴＬ以上離さなければならず、クランク角が２回目の噴射開始角度ａｎ２になっても、初回燃料噴射の終了タイミングから規定時間ＴＬが経過するまでは次の噴射パルス信号をハイに反転させない（次の噴射パルス信号の出力を開始しない）、という時間制限の機能を、図５（Ｂ）におけるＳ２３０〜Ｓ２５０処理により角度コンペアマッチレジスタ３２と時間コンペアマッチレジスタ３５とのそれぞれに値をセットするだけで、しかも、クランク軸の回転速度変動に影響されることなく確実に実現することができる。
【００７６】
次に、ＣＰＵ２１が、上記のタイマモジュール２９を用いて点火パルス信号を出力するために実行する処理について、図８のフローチャート及び図９のタイムチャートを用いて説明する。この場合、ダウンカウンタ３７の出力信号が点火パルス信号となる。
【００７７】
まず前提として、ＣＰＵ２１は、図示しない別の制御処理により、各種センサからの信号に基づきエンジン１の運転状態を検出すると共に、その検出結果から、点火パルス信号の制御パラメータとして、パルスオフ角度ａｎ１２とパルスオン時間Ｔｏｎを算出し、更に、その２つの制御パラメータａｎ１２，Ｔｏｎをもとにして、パルスオン角度ａｎ１１を算出している。
【００７８】
尚、図９に示すように、パルスオフ角度ａｎ１２とは、点火パルス信号をハイからローに反転させるべきクランク角であり、換言すれば、イグナイタ３への通電を終了すべきクランク角である。そして、パルスオン時間Ｔｏｎとは、点火パルス信号をハイにしている時間であり、換言すれば、イグナイタ３への通電時間である。また、パルスオン角度ａｎ１１とは、点火パルス信号をローからハイに反転させるべきクランク角であり、換言すれば、イグナイタ３への通電を開始すべきクランク角である。
【００７９】
そして、パルスオン角度ａｎ１１は、パルスオフ角度ａｎ１２及びパルスオン時間Ｔｏｎと、その時点で検出されているクランク軸の回転速度とから算出される。具体的に説明すると、ＣＰＵ２１は、クランク軸の回転速度から、パルスオン時間Ｔｏｎの間にクランク軸が何度回転するかを算出し、その算出した角度をＣＡｏｎとすると、パルスオフ角度ａｎ１２からＣＡｏｎだけさかのぼったクランク角を、パルスオン角度ａｎ１１として算出する。つまり、点火パルス信号は、ハイからローになるオフタイミングが重要であるため、そのオフタイミングを決定するパルスオフ角度ａｎ１２をもとにして、パルスオン角度ａｎ１１が算出されるのである。
【００８０】
但し、クランク角がパルスオン角度ａｎ１１になって点火パルス信号がハイに変化した後、クランク軸の回転速度が速くなった場合には、パルスオン角度ａｎ１１からパルスオフ角度ａｎ１２までの実際の時間（即ち、点火パルス信号が実際にハイとなる時間）が、パルスオン時間Ｔｏｎの算出値よりも短くなってしまい、点火プラグに火花を発生させることができなくなる可能性がある。
【００８１】
このため、エンジン１の点火制御においては、クランク角がパルスオフ角度ａｎ１２になっても、パルスオン角度ａｎ１１のタイミング（即ち、点火パルス信号がハイになったタイミング）から規定時間ＴＨが経過するまでは点火パルス信号をローに反転させない（換言すれば、点火パルス信号の出力を終了しない）、という時間制限がある。尚、規定時間ＴＨは、点火プラグに火花を発生させるのに必要なイグナイタ３への最小通電時間である。
【００８２】
そこで、まず図８（Ａ）は、ＣＰＵ２１が点火パルス信号をローからハイに反転させるために実行するパルスオン設定処理を表すフローチャートである。
尚、このパルスオン設定処理は、クランク角がパルスオン角度ａｎ１１となる前の任意のタイミングで実行される。また、比較回路３３，３６における前述のラッチ回路（角度コンペアマッチ信号と時間コンペアマッチ信号を出力するラッチ回路）と、ダウンカウンタ３７におけるラッチ回路５３は、このパルスオン設定処理の実行が開始される前に、ＣＰＵ２１によりリセットされている。
【００８３】
図８（Ａ）に示すように、ＣＰＵ２１がパルスオン設定処理の実行を開始すると、まずＳ３１０にて、角度コンペアマッチレジスタ３２にパルスオン角度ａｎ１１をセットし、続くＳ３２０にて、ダウンカウンタ３７（詳しくは、そのダウンカウンタ３７を構成するカウンタ５５）に、カウント可能な最大値をセットする。
【００８４】
尚、ダウンカウンタ３７のカウント値が最大値から０までダウンカウントされるのに要する時間は、ＣＰＵ２１により算出されるパルスオン時間Ｔｏｎの最大値よりも十分に長い。そして、このＳ３２０でダウンカウンタ３７に最大値をセットする理由は、点火パルス信号の出力制御においては、点火パルス信号をハイからローにさせるために、ダウンカウンタ３７のダウンカウント機能を用いないからである。
【００８５】
次にＳ３３０にて、切り替え回路３８のレジスタ４１に、モード設定値として２を書き込み、その後、当該パルスオン設定処理を終了する。
すると、図９に示すように、その後、角度カウンタ３１の値がパルスオン角度ａｎ１１になって、比較回路３３から角度コンペアマッチ信号が出力されたとき（即ち、角度コンペアマッチ信号がハイになったとき）に、切り替え回路３８からのパルスＯＮトリガ信号がハイになって、ダウンカウンタ３７からの点火パルス信号がローからハイになる。
【００８６】
次に、図８（Ｂ）は、ＣＰＵ２１が点火パルス信号をハイからローに反転させるために実行するパルスオン時処理を表すフローチャートである。そして、このパルスオン時処理は、点火パルス信号がローからハイになったときに実行される。
【００８７】
図８（Ｂ）に示すように、ＣＰＵ２１がパルスオン時処理の実行を開始すると、まずＳ４０５にて、そのときの時間カウンタ３４の値を読み込み、その値を、点火パルス信号がローからハイへ変化した時刻（以下、パルスオン時刻という）ｔ１１として記憶する。
【００８８】
そして、続くＳ４１０にて、比較回路３３，３６における前述のラッチ回路をリセットして、角度コンペアマッチ信号と時間コンペアマッチ信号をクリアする。
次にＳ４２０にて、角度コンペアマッチレジスタ３２にパルスオフ角度ａｎ１２をセットする。
【００８９】
次にＳ４３０にて、上記Ｓ４０５で記憶したパルスオン時刻ｔ１１に、時間カウンタ３４の規定時間ＴＨ分のカウント値（具体的には、規定時間ＴＨを時間カウンタ３４のクロックの１周期時間で割った値）を加えた値を、パルスオン時刻ｔ１１から規定時間ＴＨが経過した時刻ｔ１２として算出する。つまり、パルスオン時刻ｔ１１から規定時間ＴＨが経過した時になっていると予想される時間カウンタ３４の予想値を、時刻ｔ１２として算出する。
【００９０】
そして、続くＳ４４０にて、上記Ｓ４３０で算出した時刻ｔ１２を時間コンペアマッチレジスタ３５にセットし、続くＳ４５０にて、切り替え回路３８のレジスタ４１に、モード設定値として５を書き込む。そして、その後、当該パルスオン時処理を終了する。
【００９１】
このようなパルスオン時処理により、もし、パルスオン時刻ｔ１１から規定時間ＴＨが経過した時刻ｔ１２よりも後に、クランク角がパルスオフ角度ａｎ１２になった場合には、図９における実線で示すように、角度カウンタ３１の値が角度コンペアマッチレジスタ３２にセットされたパルスオフ角度ａｎ１２になるよりも先に、時間カウンタ３４の値が時間コンペアマッチレジスタ３５にセットされた時刻ｔ１２の値に達して、比較回路３６からの時間コンペアマッチ信号がハイになる。
【００９２】
そして、切り替え回路３８のモード設定値は５にセットされているため、その後、角度カウンタ３１の値がパルスオフ角度ａｎ１２になって、比較回路３３からの角度コンペアマッチ信号がハイになった時に、切り替え回路３８からのパルスＯＦＦトリガ信号がハイになって、ダウンカウンタ３７からの点火パルス信号がハイからローになる。
【００９３】
一方、もし、クランク軸の回転速度が速くなり、パルスオン時刻ｔ１１から規定時間ＴＨが経過する時刻ｔ１２よりも前に、クランク角がパルスオフ角度ａｎ１２になった場合には、図９における一点鎖線で示すように、時間カウンタ３４の値が時間コンペアマッチレジスタ３５にセットされた時刻ｔ１２の値になるよりも先に、角度カウンタ３１の値が角度コンペアマッチレジスタ３２にセットされたパルスオフ角度ａｎ１２に達して、比較回路３３からの角度コンペアマッチ信号がハイになる。
【００９４】
そして、切り替え回路３８のモード設定値は５にセットされているため、その後、時間カウンタ３４の値が時間コンペアマッチレジスタ３５にセットされた時刻ｔ１２の値になって、比較回路３６からの時間コンペアマッチ信号がハイになった時（即ち、パルスオン時刻ｔ１１から規定時間ＴＨが経過した時）に、切り替え回路３８からのパルスＯＦＦトリガ信号がハイになって、ダウンカウンタ３７からの点火パルス信号がハイからローになる。
【００９５】
このように、ＥＣＵ１１のタイマモジュール２９では、切り替え回路３８のモード設定値を５に設定することにより、比較回路３３と比較回路３６との両方からコンペアマッチ信号（角度コンペアマッチ信号及び時間コンペアマッチ信号）が出力された時点で、ダウンカウンタ３７からの点火パルス信号としての出力信号がアクティブレベルのハイから非アクティブレベルのローに反転するようになる。
【００９６】
このため、点火パルス信号に関する時間制限であって、クランク角がパルスオフ角度ａｎ１２になっても、パルスオン角度ａｎ１１のタイミングから規定時間ＴＨが経過するまでは点火パルス信号をローに反転させない（点火パルス信号の出力を終了しない）、という時間制限の機能を、図８（Ｂ）におけるＳ４２０〜Ｓ４４０処理により角度コンペアマッチレジスタ３２と時間コンペアマッチレジスタ３５とのそれぞれに値をセットするだけで、しかも、クランク軸の回転速度変動に影響されることなく確実に実現することができる。
【００９７】
以上のように、本実施形態のＥＣＵ１１によれば、分割噴射の噴射パルス信号に関する時間制限と、点火パルス信号に関する時間制限とを、少ないＣＰＵ処理負荷で、且つ、クランク軸の回転速度変動に影響されることなく確実に実現することができる。
【００９８】
尚、上記実施形態では、タイマモジュール２９が信号出力装置に相当し、角度コンペアマッチレジスタ３２が第１レジスタに相当し、比較回路３３が第１比較回路に相当し、時間コンペアマッチレジスタ３５が第２レジスタに相当し、比較回路３６が第２比較回路に相当している。そして、図５（Ｂ）におけるＳ２３０〜Ｓ２５０の処理、或いは、図８（Ｂ）におけるＳ４２０〜Ｓ４４０の処理が、レジスタ値設定処理手段としての処理に相当している。つまり、噴射パルス信号については、２回目の噴射開始角度ａｎ２が出力反転角度に相当しており、初回燃料噴射の終了タイミング（１回目の噴射パルス信号がローになったタイミング）が、特定の基準タイミングに相当している。また、点火パルス信号については、パルスオフ角度ａｎ１２が出力反転角度に相当し、パルスオン角度ａｎ１１のタイミング（点火パルス信号がハイになったタイミング）が、特定の基準タイミングに相当している。
【００９９】
一方、上記実施形態のタイマモジュール２９によれば、ダウンカウンタ３７（図４）のラッチ回路５３がリセットされており、且つ、カウンタ５５のカウント値が０でない状態で、ダウンカウンタ３７へＣＰＵ２１からのセット信号又は切り替え回路３８からのパルスＯＮトリガ信号を与えれば、そのタイミングで、出力信号をローからハイに変化させることができ、その後、カウンタ５５のカウント値が０になる前に、ダウンカウンタ３７へＣＰＵ２１からのリセット信号又は切り替え回路３８からのパルスＯＦＦトリガ信号を与えれば、そのタイミングで、出力信号をハイからローに変化させることができる。
【０１００】
このため、例えば、切り替え回路３８のモード設定値を０に設定すれば、ＣＰＵ２１かからダウンカウンタ３７へのセット信号により、出力信号をローからハイに変化させ、ＣＰＵ２１からダウンカウンタ３７へのリセット信号により、出力信号をハイからローに戻す、といった制御を行うことができる。
【０１０１】
また、切り替え回路３８のモード設定値を１に設定すれば、ＣＰＵ２１からダウンカウンタ３７へのセット信号により、出力信号をローからハイに変化させ、比較回路３６からの時間コンペアマッチ信号により、出力信号をハイからローに戻す、といった制御を行うことができる。
【０１０２】
また、切り替え回路３８のモード設定値を２に設定すれば、比較回路３３からの角度コンペアマッチ信号により、出力信号をローからハイに変化させ、ＣＰＵ２１からダウンカウンタ３７へのリセット信号により、出力信号をハイからローに戻す、といった制御を行うことができる。
【０１０３】
また、切り替え回路３８のモード設定値を３に設定すれば、比較回路３３からの角度コンペアマッチ信号により、出力信号をローからハイに変化させ、比較回路３６からの時間コンペアマッチ信号により、出力信号をハイからローに戻す、といった制御を行うことができる。
［第２実施形態］
次に、第２実施形態のＥＣＵについて説明する。
【０１０４】
第２実施形態のＥＣＵは、第１実施形態のＥＣＵ１１と比較すると、ハードウェア面においては、タイマモジュール２９に代えて、図１０に示す構成のタイマモジュール５９を備えている点が異なっている。
【０１０５】
そして、本第２実施形態のタイマモジュール５９は、第１実施形態のタイマモジュール２９と比較すると、時間コンペアマッチレジスタ３５に代えて、キャプチャ兼時間コンペアマッチレジスタ６１を備えている。
【０１０６】
このキャプチャ兼時間コンペアマッチレジスタ６１は、それの動作モードが２つに切り替え可能なレジスタである。そして、第１の動作モードでは、第１実施形態における時間コンペアマッチレジスタ３５と同様に、レジスタ値が時間カウンタ３４の値と比較される時間コンペアマッチレジスタとして機能し、第２の動作モードは、比較回路３３から角度コンペアマッチ信号が出力されたときに時間カウンタ３４の値をキャプチャする（即ち、取り込んで記憶する）キャプチャレジスタとして機能する。
【０１０７】
更に、第２実施形態のＥＣＵでは、第１実施形態のＥＣＵ１１と比較すると、ソフトウェア面においては、ＣＰＵ２１が、タイマモジュール５９を用いて噴射パルス信号を出力するために、図５の処理に代えて図１１の処理を実行し、また、タイマモジュール５９を用いて点火パルス信号を出力するために、図８の処理に代えて図１２の処理を実行する。
【０１０８】
そこで次に、図１１及び図１２の処理について説明する。
まず、図１１（Ａ）は、第１実施形態の図５（Ａ）と同様に、ＣＰＵ２１が１回目（初回）の噴射パルス信号を出力するために実行する初回パルス設定処理を表すフローチャートである。
【０１０９】
この図１１（Ａ）の初回パルス設定処理では、図５（Ａ）の初回パルス設定処理と比較すると、Ｓ１３０の次にＳ１４０が追加されている。そして、そのＳ１４０にて、キャプチャ兼時間コンペアマッチレジスタ６１をキャプチャレジスタとして機能するように設定する。
【０１１０】
また、図１１（Ｂ）は、第１実施形態の図５（Ｂ）と同様に、ＣＰＵ２１が２回目の噴射パルス信号を出力するために実行するパルスオフ時処理を表すフローチャートであり、このパルスオフ時処理も、噴射パルス信号がハイからローになったときに実行される。
【０１１１】
この図１１（Ｂ）のパルスオフ時処理では、図５（Ｂ）のパルスオン時処理と比較すると、Ｓ２０５の処理が削除されていると共に、Ｓ２４０の代わりにＳ２４３〜Ｓ２４７の処理が行われる。
【０１１２】
そして、まずＳ２４３では、キャプチャ兼時間コンペアマッチレジスタ６１の値を読み込む。つまり、図１１（Ａ）におけるＳ１４０の処理により、キャプチャ兼時間コンペアマッチレジスタ６１はキャプチャレジスタとして機能するように設定されており、そのキャプチャ兼時間コンペアマッチレジスタ６１には、比較回路３３から角度コンペアマッチ信号が出力されて１回目の噴射パルス信号がローからハイへ変化した時（即ち、クランク角が１回目の噴射開始角度ａｎ１になった時）の時間カウンタ３４の値がキャプチャされていることから、そのキャプチャされた値を読み込むのである。
【０１１３】
そして、次のＳ２４５では、上記Ｓ２４３で読み込んだレジスタ値（キャプチャ兼時間コンペアマッチレジスタ６１の値）に、１回目の燃料噴射時間Ｔｆ１と規定時間ＴＬとを加算した時間分の時間カウンタ３４のカウント値（具体的には、「Ｔｆ１＋ＴＬ」を時間カウンタ３４のクロックの１周期時間で割った値）を加えた値を、パルスオフ時刻ｔ１から規定時間ＴＬが経過した時刻ｔ２として算出する。つまり、本第２実施形態では、１回目の噴射パルス信号がハイになった時刻から「Ｔｆ１＋ＴＬ」が経過した時になっていると予想される時間カウンタ３４の予想値を、時刻ｔ２として算出しているのである。
【０１１４】
そして更に、次のＳ２４７では、キャプチャ兼時間コンペアマッチレジスタ６１を時間コンペアマッチレジスタとして機能するように設定し、その後、Ｓ２５０へ進む。
尚、上記Ｓ２４５で算出された時刻ｔ２は、第１実施形態（図５（Ｂ））と同様に、時間コンペアマッチレジスタとして機能するように設定されたキャプチャ兼時間コンペアマッチレジスタ６１へ、Ｓ２５０でセットされる。
【０１１５】
以上のように本第２実施形態では、図１１（Ａ）の初回パルス設定処理により、角度コンペアマッチレジスタ３２に１回目の噴射開始角度ａｎ１をセットすると共に、切り替え回路３８のモード設定値を２に設定した際に、キャプチャ兼時間コンペアマッチレジスタ６１をキャプチャレジスタとして機能するように設定している。
【０１１６】
そして、図１１（Ｂ）のパルスオフ時処理では、そのキャプチャレジスタとしてのキャプチャ兼時間コンペアマッチレジスタ６１から、１回目の噴射パルス信号がローからハイへ変化した時の時間カウンタ３４の値を読み込み、その値から、時間コンペアマッチレジスタとしてのキャプチャ兼時間コンペアマッチレジスタ６１へセットすべき時刻ｔ２を算出するようにしている。
【０１１７】
このため、１回目の噴射パルス信号がローからハイへ変化した時の時間カウンタ３４の正確な値を簡単に取得することができる。よって、時間コンペアマッチレジスタとして機能するように設定したキャプチャ兼時間コンペアマッチレジスタ６１へ、時刻ｔ２として正確な値をセットすることができるようになる。つまり、第１実施形態では、図５（Ｂ）におけるＳ２０５の処理遅れが誤差を生じさせる原因となるが、本第２実施形態では、そのような懸念はない。
【０１１８】
尚、本第２実施形態において、噴射パルス信号に関しては、１回目の噴射開始角度ａｎ１が、出力反転角度よりも前の特定角度に相当しており、１回目の噴射パルス信号がハイになったタイミングが、特定の基準タイミングに相当している。そして、「Ｔｆ１＋ＴＬ」が請求項３記載の規定時間に相当している。そして更に、図１１（Ａ）におけるＳ１１０の処理と図１１（Ｂ）におけるＳ２３０〜Ｓ２５０の処理が、請求項３記載のレジスタ値設定処理手段としての処理に相当している。
【０１１９】
次に、図１２（Ａ）は、第１実施形態の図８（Ａ）と同様に、ＣＰＵ２１が点火パルス信号をローからハイに反転させるために実行するパルスオン設定処理を表すフローチャートである。
【０１２０】
この図１２（Ａ）のパルスオン設定処理では、図８（Ａ）のパルスオン設定処理と比較すると、Ｓ３３０の次にＳ３４０が追加されている。そして、そのＳ３４０にて、キャプチャ兼時間コンペアマッチレジスタ６１をキャプチャレジスタとして機能するように設定する。
【０１２１】
また、図１２（Ｂ）は、第１実施形態の図８（Ｂ）と同様に、ＣＰＵ２１が点火パルス信号をハイからローに反転させるために実行するパルスオン時処理を表すフローチャートであり、このパルスオン時処理は、点火パルス信号がローからハイになったときに実行される。
【０１２２】
この図１２（Ｂ）のパルスオン時処理では、図８（Ｂ）のパルスオン時処理と比較すると、Ｓ４０５の処理が削除されていると共に、Ｓ４３０の代わりにＳ４３３〜Ｓ４３７の処理が行われる。
【０１２３】
そして、まずＳ４３３では、キャプチャ兼時間コンペアマッチレジスタ６１の値を読み込む。つまり、図１２（Ａ）におけるＳ３４０の処理により、キャプチャ兼時間コンペアマッチレジスタ６１はキャプチャレジスタとして機能するように設定されており、そのキャプチャ兼時間コンペアマッチレジスタ６１には、比較回路３３から角度コンペアマッチ信号が出力されて点火パルス信号がローからハイへ変化した時（即ち、パルスオン時刻ｔ１１）の時間カウンタ３４の値がキャプチャされていることから、そのキャプチャされた値を読み込むのである。
【０１２４】
そして、次のＳ４３５では、上記Ｓ４３３で読み込んだレジスタ値（キャプチャ兼時間コンペアマッチレジスタ６１の値）に、時間カウンタ３４の規定時間ＴＨ分のカウント値（具体的には、規定時間ＴＨを時間カウンタ３４のクロックの１周期時間で割った値）を加えた値を、パルスオン時刻ｔ１１から規定時間ＴＨが経過した時刻ｔ１２として算出する。
【０１２５】
そして更に、次のＳ４３７では、キャプチャ兼時間コンペアマッチレジスタ６１を時間コンペアマッチレジスタとして機能するように設定し、その後、Ｓ４４０へ進む。
尚、Ｓ４３５で算出された時刻ｔ１２は、第１実施形態（図８（Ｂ））と同様に、時間コンペアマッチレジスタとして機能するように設定されたキャプチャ兼時間コンペアマッチレジスタ６１へ、Ｓ４４０でセットされる。
【０１２６】
以上のように本第２実施形態では、図１２（Ａ）のパルスオン設定処理により、角度コンペアマッチレジスタ３２にパルスオン角度ａｎ１１をセットすると共に、切り替え回路３８のモード設定値を２に設定した際に、キャプチャ兼時間コンペアマッチレジスタ６１をキャプチャレジスタとして機能するように設定している。
【０１２７】
そして、図１２（Ｂ）のパルスオン時処理では、そのキャプチャレジスタとしてのキャプチャ兼時間コンペアマッチレジスタ６１から、パルスオン時刻ｔ１１での時間カウンタ３４の値を読み込み、その値から、時間コンペアマッチレジスタとしてのキャプチャ兼時間コンペアマッチレジスタ６１へセットすべき時刻ｔ１２を算出するようにしている。
【０１２８】
このため、パルスオン時刻ｔ１１での時間カウンタ３４の正確な値を簡単に取得することができる。よって、時間コンペアマッチレジスタとして機能するように設定したキャプチャ兼時間コンペアマッチレジスタ６１へ、時刻ｔ１２として正確な値をセットすることができるようになる。つまり、第１実施形態では、図８（Ｂ）におけるＳ４０５の処理遅れが誤差を生じさせる原因となるが、本第２実施形態では、そのような懸念はない。
【０１２９】
尚、本第２実施形態において、点火パルス信号に関しては、パルスオン角度ａｎ１１が、出力反転角度よりも前の特定角度に相当しており、パルスオン角度ａｎ１１のタイミング（点火パルス信号がハイになったタイミング）が、特定の基準タイミングに相当している。そして、「ＴＨ」が請求項３記載の規定時間に相当している。そして更に、図１２（Ａ）におけるＳ３１０の処理と図１２（Ｂ）におけるＳ４２０〜Ｓ４４０の処理が、請求項３記載のレジスタ値設定処理手段としての処理に相当している。
【０１３０】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【０１３１】
例えば、回転体はエンジンのクランク軸以外でも良い。
また、第２実施形態においては、キャプチャ兼時間コンペアマッチレジスタ６１を設けるのではなく、時間コンペアマッチレジスタとキャプチャレジスタとを、別々に設けても良い。つまり、図２のタイマモジュール２９に対して、時間コンペアマッチレジスタ３５とは別に、キャプチャレジスタを追加するようにしても良い。この場合、図１１のフローチャートでは、Ｓ１４０とＳ２４７の処理が削除され、図１２のフローチャートでは、Ｓ３４０とＳ４３７の処理が削除されることとなる。
【図面の簡単な説明】
【０１３２】
【図１】第１実施形態のＥＣＵ（エンジン制御装置）の構成を表す構成図である。
【図２】第１実施形態のタイマモジュールの構成を表す構成図である。
【図３】切り替え回路の構成及び作用を表す説明図である。
【図４】ダウンカウンタの構成を表す構成図である。
【図５】第１実施形態においてＣＰＵが噴射パルス信号を出力するために実行する処理を表すフローチャートである。
【図６】図５の処理の作用を表す第１のタイムチャートである。
【図７】図５の処理の作用を表す第２のタイムチャートである。
【図８】第１実施形態においてＣＰＵが点火パルス信号を出力するために実行する処理を表すフローチャートである。
【図９】図８の処理の作用を表すタイムチャートである。
【図１０】第２実施形態のタイマモジュールの構成を表す構成図である。
【図１１】第２実施形態においてＣＰＵが噴射パルス信号を出力するために実行する処理を表すフローチャートである。
【図１２】第２実施形態においてＣＰＵが点火パルス信号を出力するために実行する処理を表すフローチャートである。
【図１３】従来技術の説明図である。
【符号の説明】
【０１３３】
１…エンジン、２…インジェクタ、３…イグナイタ、４…電子スロットル、５…クランクセンサ、６…水温センサ、７…スロットルセンサ、１１…ＥＣＵ、１３…マイコン、１５…外部入出力回路、２１…ＣＰＵ、２３…ＲＯＭ、２５…ＲＡＭ、２７…入出力ポート、２９，５９…タイマモジュール、３１…角度カウンタ、３２…角度コンペアマッチレジスタ、３３，３６…比較回路、３４…時間カウンタ、３５…時間コンペアマッチレジスタ、３７…ダウンカウンタ、３８…切り替え回路、４１…レジスタ、４２，５４，５６…アンド回路、４３，４４，５１，５２…オア回路、４５〜４８…スイッチ回路、４９…デコード回路、５３…ラッチ回路、５５…カウンタ、６１…キャプチャ兼時間コンペアマッチレジスタ
【図１】
0004462147.tif 000002
【図２】
0004462147.tif 000003
【図３】
0004462147.tif 000004
【図４】
0004462147.tif 000005
【図５】
0004462147.tif 000006
【図６】
0004462147.tif 000007
【図７】
0004462147.tif 000008
【図８】
0004462147.tif 000009
【図９】
0004462147.tif 000010
【図１０】
0004462147.tif 000011
【図１１】
0004462147.tif 000012
【図１２】
0004462147.tif 000013
【図１３】
0004462147.tif 000014