説明

パルス信号検出方法、パルス信号検出回路、内燃機関の点火装置およびプログラム

【課題】安価なマイコンを用いて正確なタイミングを得る。
【解決手段】パルス信号検出方法は、被検出パルス信号の第1被検出パルスP3を検出する第1のステップと、第1被検出パルスが検出された後に、実行中の処理を中断して割り込み処理を開始する第2のステップと、割り込み処理を用いて、タイマ21からタイマ値を第1検出タイマ値T1として取得する第3のステップと、取得された第1検出タイマ値に所定の第1出力時間D1を加算して、その加算結果から、第1被検出パルスが検出されたタイミングと第1検出タイマ値が取得されたタイミングとの差である、予め求められた誤差時間E1を減算した第1目標タイマ値C1を計算する第4のステップと、タイマのタイマ値が第1目標タイマ値に達したか否か判定する第5のステップと、タイマのタイマ値が第1目標タイマ値に達した時に、第1出力信号を出力する第6のステップと、を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パルス信号検出方法、パルス信号検出回路、内燃機関の点火装置およびプログラムに関する。
【背景技術】
【0002】
内燃機関(エンジン)用の点火装置(例えばCDI)は、内燃機関のクランクシャフトに取り付けられたロータと、ロータの外周に設けられた2つのリラクタと、ピックアップコイルと、パルス信号検出回路と、パルス信号検出回路からの点火タイミングに従って内燃機関に点火する点火部と、を備えている。
【0003】
ピックアップコイルは、各リラクタの前端部および後端部を検出して、クランクシャフトの回転に応じた正および負極性の被検出パルスを繰り返し有するエンジン回転パルス信号(クランク角信号)を出力する。パルス信号検出回路は、マイコンを用いてエンジン回転パルス信号の被検出パルスを検出する。このマイコンは、検出された被検出パルスに基づいて、固定点火タイミング、演算点火タイミングおよびエンジン回転数を演算する。具体的には、パルス信号検出回路は、エンジン回転パルス信号の正極性の被検出パルスのみに対応したパルスを有する正パルス信号と、エンジン回転パルス信号の負極性の被検出パルスのみに対応したパルスを有する負パルス信号と、を生成する。
【0004】
正パルス信号はマイコンの割り込み端子に入力され、マイコンは正パルス信号のパルスに基づいて時間計測を行う。負パルス信号はマイコンのインプットキャプチャ端子に入力され、マイコンは負パルス信号のパルスに基づいて時間計測を行う。
【0005】
マイコンは、正パルス信号の所定のパルスが検出されたタイミングで、フリーランタイマからタイマ値を取得して、取得されたタイマ値に基づいてエンジン回転数および演算点火タイミングを演算する。また、マイコンは、負パルス信号の所定のパルスが検出されたタイミングで、フリーランタイマからタイマ値を取得して、取得されたタイマ値に基づいて固定点火タイミングを演算する。
【0006】
時間計測専用のインプットキャプチャ端子で負パルス信号のパルスが検出されると、マイコンは瞬時にタイマ値を取得できる。一方、汎用の割り込み端子で正パルス信号のパルスが検出されると、マイコンは、実行中の処理を中断して割り込み処理を開始して、この割り込み処理を用いてタイマ値を取得する。
【0007】
このようなインプットキャプチャ端子を1つだけ有するマイコンは、複数のインプットキャプチャ端子を有するマイコンより安価である。従って、このマイコンを備える点火装置も安価にできる。
【0008】
上記点火装置に関連して、例えば、特許文献1に記載されている点火装置も知られている。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2004−176625号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、上述した従来のパルス信号検出回路が有するマイコンは、割り込み端子にパルスが入力されると、割り込み処理を用いてタイマ値を取得するので、図8に示すように、パルスが検出されたタイミング(時刻t10)と、タイマ値が取得されたタイミング(時刻t11)との間に、割り込み処理に起因した誤差時間が発生してしまう。即ち、タイマ値が取得されるまでの割り込み処理の実行時間や、これに加えて他の割り込み処理が実行中の場合には他の割り込み処理が終了するまでの待ち時間によって、マイコンがタイマ値を取得できるタイミングは、パルスが検出されたタイミング(時刻t10)から遅れることになる。よって、取得されたタイマ値に基づいて計算される点火タイミングに、目標点火タイミングに対する誤差が発生してしまうという問題がある。
【0011】
そこで、本発明に係る実施例では、安価なマイコンを用いた場合であっても、正確なタイミングを得ることができるパルス信号検出方法、パルス信号検出回路、点火装置およびプログラムを提供する。
【課題を解決するための手段】
【0012】
本発明の一態様に係る実施例に従ったパルス信号検出方法は、
被検出パルス信号が入力される、検出部と、処理部と、タイマと、目標タイマ値計算部と、判定部と、信号出力部とを備えるパルス信号検出回路におけるパルス信号検出方法であって、
前記検出部により、前記被検出パルス信号の第1被検出パルスを検出する第1のステップと、
前記処理部により、前記第1被検出パルスが検出された後に、実行中の処理を中断して割り込み処理を開始する第2のステップと、
前記処理部により、前記割り込み処理を用いて、前記タイマからタイマ値を第1検出タイマ値として取得する第3のステップと、
前記目標タイマ値計算部により、取得された前記第1検出タイマ値に所定の第1出力時間を加算して、その加算結果から、前記第1被検出パルスが検出されたタイミングと前記第1検出タイマ値が取得されたタイミングとの差である、予め求められた誤差時間を減算した第1目標タイマ値を計算する第4のステップと、
前記判定部により、前記タイマの前記タイマ値が前記第1目標タイマ値に達したか否か判定する第5のステップと、
前記信号出力部により、前記タイマの前記タイマ値が前記第1目標タイマ値に達した時に、第1出力信号を出力する第6のステップと、を含む。
【0013】
前記パルス信号検出方法において、
前記被検出パルス信号は、内燃機関の回転に応じて生成され、
前記第1出力信号は、前記内燃機関を点火するための信号であっても良い。
【0014】
前記パルス信号検出方法において、
前記タイマは、前記タイマ値として、初期タイマ値から最終タイマ値までを繰り返しカウントし、
前記第1出力時間は、前記誤差時間より長くても良い。
【0015】
前記パルス信号検出方法において、
前記第1のステップの前に、回転数計算部により、前記被検出パルス信号に基づいて前記内燃機関の回転数を計算する第7のステップをさらに含み、
前記第3のステップと前記第4のステップとの間に、出力時間設定部により、前記回転数に応じて、前記第1出力時間を設定する第8のステップをさらに含んでも良い。
【0016】
前記パルス信号検出方法において、
前記第3のステップと前記第8のステップとの間に、前記処理部により、前記回転数が所定の回転数以上か否か判定する第9のステップをさらに含み、
前記第9のステップにおいて前記回転数が前記所定の回転数以上の場合に、前記第8のステップに進んでも良い。
【0017】
前記パルス信号検出方法において、
前記第9のステップにおいて前記回転数が前記所定の回転数より低い場合に、前記検出部により、前記第1のステップで検出された前記第1被検出パルスとは異なる第2被検出パルスを検出する第10のステップと、
前記処理部により、前記第10のステップで前記第2被検出パルスが検出された後に、実行中の処理を中断して割り込み処理を開始する第11のステップと、
前記処理部により、前記第11のステップの前記割り込み処理を用いて、前記タイマから前記タイマ値を第2検出タイマ値として取得する第12のステップと、
前記目標タイマ値計算部により、前記第12のステップにおいて取得された前記第2検出タイマ値に第2出力時間を加算して、その加算結果から前記誤差時間を減算した第2目標タイマ値を計算する第13のステップと、
前記判定部により、前記タイマの前記タイマ値が前記第2目標タイマ値に達したか否か判定する第14のステップと、
前記信号出力部により、前記タイマの前記タイマ値が前記第2目標タイマ値に達した時に、前記内燃機関を点火する第2出力信号を出力する第15のステップと、をさらに含んでも良い。
【0018】
前記パルス信号検出方法において、前記第2出力時間は、前記回転数によらず一定であっても良い。
【0019】
本発明の一態様に係る実施例に従ったパルス信号検出回路は、
タイマ値により時間を計測するタイマと、
被検出パルス信号の第1被検出パルスを検出する検出部と、
前記第1被検出パルスが検出された後に、実行中の処理を中断して割り込み処理を開始して、前記割り込み処理を用いて、前記タイマから前記タイマ値を第1検出タイマ値として取得する処理部と、
取得された前記第1検出タイマ値に所定の第1出力時間を加算して、その加算結果から、前記第1被検出パルスが検出されたタイミングと前記第1検出タイマ値が取得されたタイミングとの差である、予め求められた誤差時間を減算した第1目標タイマ値を計算する目標タイマ値計算部と、
前記タイマの前記タイマ値が前記第1目標タイマ値に達したか否か判定する判定部と、
前記タイマの前記タイマ値が前記第1目標タイマ値に達した時に、第1出力信号を出力する信号出力部と、を備える。
【0020】
前記パルス信号検出回路において、
前記被検出パルス信号は、内燃機関の回転に応じて生成され、
前記第1出力信号は、前記内燃機関を点火するための信号であっても良い。
【0021】
前記パルス信号検出回路において、
前記タイマは、前記タイマ値として、初期タイマ値から最終タイマ値までを繰り返しカウントし、
前記第1出力時間は、前記誤差時間より長くても良い。
【0022】
前記パルス信号検出回路において、
前記被検出パルス信号に基づいて前記内燃機関の回転数を計算する回転数計算部と、
前記回転数に応じて、前記第1出力時間を設定する出力時間設定部と、をさらに備えても良い。
【0023】
前記パルス信号検出回路において、
前記処理部は、前記回転数が所定の回転数以上か否か判定し、
前記回転数が前記所定の回転数以上の場合に、
前記出力時間設定部は、前記回転数に応じて、前記第1出力時間を設定し、
前記目標タイマ値計算部は、前記第1目標タイマ値を計算しても良い。
【0024】
前記パルス信号検出回路において、
前記回転数が前記所定の回転数より低い場合に、
前記検出部は、前記第1被検出パルスとは異なる第2被検出パルスを検出し、
前記処理部は、前記第2被検出パルスが検出された後、前記割り込み処理を用いて、前記タイマから前記タイマ値を第2検出タイマ値として取得し、
前記目標タイマ値計算部は、前記第2検出タイマ値に第2出力時間を加算して、その加算結果から、前記誤差時間を減算した第2目標タイマ値を計算し、
前記判定部は、前記タイマの前記タイマ値が前記第2目標タイマ値に達したか否か判定し、
前記信号出力部は、前記タイマの前記タイマ値が前記第2目標タイマ値に達した時に、前記内燃機関を点火する第2出力信号を出力しても良い。
【0025】
前記パルス信号検出回路において、前記第2出力時間は、前記回転数によらず一定であっても良い。
【0026】
本発明の一態様に係る実施例に従った内燃機関の点火装置は、
内燃機関により駆動されるロータと、
前記ロータの外周に設けられた被検出素子と、
前記被検出素子の前端部および後端部を検出して、前記前端部に対応した正極性の被検出パルスと前記後端部に対応した負極性の被検出パルスとを有する被検出パルス信号を生成する被検出パルス生成部と、
前記被検出パルス信号が入力される前記パルス信号検出回路と、
前記パルス信号検出回路から出力される前記第1出力信号または前記第2出力信号に基づいて前記内燃機関に点火する点火部と、を備える。
【0027】
本発明の一態様に係る実施例に従ったプログラムは、
コンピュータを、
タイマ値により時間を計測するタイマ手段と、
被検出パルス信号の第1被検出パルスを検出する検出手段と、
前記第1被検出パルスが検出された後に、実行中の処理を中断して割り込み処理を開始して、前記割り込み処理を用いて、前記タイマ手段から前記タイマ値を第1検出タイマ値として取得する処理手段と、
取得された前記第1検出タイマ値に所定の第1出力時間を加算して、その加算結果から、前記第1被検出パルスが検出されたタイミングと前記第1検出タイマ値が取得されたタイミングとの差である、予め求められた誤差時間を減算した第1目標タイマ値を計算する目標タイマ値計算手段と、
前記タイマ手段の前記タイマ値が前記第1目標タイマ値に達したか否か判定する判定手段と、
前記タイマ手段の前記タイマ値が前記第1目標タイマ値に達した時に、第1出力信号を出力する信号出力手段と、として機能させる。
【0028】
また、前記プログラムにおいて、
前記被検出パルス信号は、内燃機関の回転に応じて生成され、
前記第1出力信号は、前記内燃機関を点火するための信号であっても良い。
【発明の効果】
【0029】
本発明の一態様に係るパルス信号検出方法、パルス信号検出回路、内燃機関の点火装置およびプログラムによれば、被検出パルスが検出されたタイミングとタイマ値が取得されたタイミングとの差である誤差時間を予め求めておいて、取得されたタイマ値に出力時間を加算した結果から、その誤差時間を減算した目標タイマ値を算出するようにしている。従って、タイマ値がこの目標タイマ値に達したタイミングを検出することで、被検出パルスが検出されたタイミングから出力時間だけ遅れた正確なタイミングを得ることができる。これにより、安価なマイコンを用いた場合であっても、正確なタイミングを得ることができる。
【図面の簡単な説明】
【0030】
【図1】図1は、本発明の実施例1に係る点火装置の概略図である。
【図2】図2は、本発明の実施例1に係るパルス信号検出回路のブロック図である。
【図3】図3は、本発明の実施例1に係るパルス信号検出回路の動作を表すフローチャートである。
【図4】図4は、本発明の実施例1に係るパルス信号検出回路の動作を表すタイミング図である。
【図5】図5は、本発明の実施例2に係るパルス信号検出回路のブロック図である。
【図6】図6は、本発明の実施例2に係るパルス信号検出回路の動作を表すフローチャートである。
【図7】図7は、本発明の実施例2に係るパルス信号検出回路の動作を表すタイミング図である。
【図8】図8は、従来のパルス信号検出回路の動作を表すタイミング図である。
【発明を実施するための形態】
【0031】
以下、本発明に係る各実施例について図面に基づいて説明する。
【実施例1】
【0032】
図1は、本発明の実施例1に係る点火装置の概略図である。図1に示すように、点火装置は、ロータ10と、2つのリラクタ(被検出素子)11,12と、ピックアップコイル(被検出パルス生成部)13と、パルス信号検出回路14と、点火部15と、を備える。この点火装置は、例えば、自動2輪車用の内燃機関に用いられる。
【0033】
ロータ10は、内燃機関(図示せず)のクランクシャフト(図示せず)に取り付けられており、内燃機関により駆動される。
2つのリラクタ11,12は、ロータ10の外周に所定の間隔を空けて設けられており、リラクタ12は、ロータ10の外周上に沿ってリラクタ11より長い形状を有している。
【0034】
ピックアップコイル13は、リラクタ11の前端部E1および後端部E2と、リラクタ12の前端部E3および後端部E4とを検出して、各前端部E1,E3に対応した正極性の被検出パルスP1,P3と各後端部E2,E4に対応した負極性の被検出パルスP2,P4とを有するエンジン回転パルス信号(被検出パルス信号)を生成する。これにより、ピックアップコイル13は、クランクシャフトの回転に応じた正および負極性の被検出パルスを繰り返し有するエンジン回転パルス信号を出力する。つまり、エンジン回転パルス信号は、1周期に、正極性の被検出パルスP1、負極性の被検出パルスP2、正極性の被検出パルス(第1被検出パルス)P3および負極性の被検出パルス(第2被検出パルス)P4を、この順番に有するように生成される。
【0035】
パルス信号検出回路14は、入力されたエンジン回転パルス信号における所定の被検出パルスを検出すると共に、検出された被検出パルスに基づいて決定した演算点火タイミングに演算点火信号(第1出力信号)を出力し、固定点火タイミングに固定点火信号(第2出力信号)を出力する。
点火部15は、固定点火信号または演算点火信号に基づいて内燃機関に点火する。
【0036】
図2は、本発明の実施例1に係るパルス信号検出回路14のブロック図である。図2に示すように、パルス信号検出回路14は、パルス信号生成部20と、マイコン50とを備える。マイコン50は、タイマ21と、検出部22と、処理部23と、目標タイマ値計算部24と、判定部25と、点火信号出力部(信号出力部)26と、回転数計算部27と、点火出力時間設定部(出力時間設定部)28と、キャプチャ検出部29と、キャプチャ処理部30とを有する。マイコン50は、時間計測専用のインプットキャプチャ端子(負パルス入力端子)IN1と、汎用の割り込み端子(正パルス入力端子)IN2と、を有する。
【0037】
パルス信号生成部20は、内燃機関の回転に応じて生成されたエンジン回転パルス信号の正極性の被検出パルスP1,P3にそれぞれ対応した第1パルスP1xと第3パルスP3xを有する正パルス信号と、エンジン回転パルス信号の負極性の被検出パルスP2,P4にそれぞれ対応した第2パルスP2xと第4パルスP4xとを有する負パルス信号と、を生成する。
【0038】
正パルス信号はマイコン50の割り込み端子IN2に入力され、マイコン50は正パルス信号の第1パルスP1xと第3パルスP3xに基づいて時間計測を行う。
【0039】
負パルス信号はマイコン50のインプットキャプチャ端子IN1に入力され、マイコン50は負パルス信号の第2パルスP2xと第4パルスP4xに基づいて時間計測を行う。
【0040】
タイマ21は、フリーランタイマとして構成されていて、タイマ値により時間を計測する。つまり、タイマ21は、タイマ値として、初期タイマ値から最終タイマ値までを繰り返しカウントする。
【0041】
検出部22は、エンジン回転パルス信号の被検出パルスP1,P3に対応した、正パルス信号の第1パルスP1xと第3パルスP3xを検出する。つまり、検出部22は、エンジン回転パルス信号の被検出パルスP1,P3を検出していることになる。
【0042】
処理部23は、検出部22によって第1パルスP1xと第3パルスP3xの何れかが検出された後に、実行中の処理を中断して割り込み処理を開始して、割り込み処理を用いて、タイマ21からタイマ値を取得する。第3パルスP3xが検出された後に取得されたタイマ値は、第1検出タイマ値T1である。
【0043】
目標タイマ値計算部24は、回転数が所定の回転数以上の場合、処理部23で取得された第1検出タイマ値T1に所定の演算点火出力時間(第1出力時間)D1を加算して、その加算結果から、予め求められた誤差時間Eを減算した演算点火タイマカウント値(第1目標タイマ値)C1を計算する。誤差時間Eは、第1パルスP1xと第3パルスP3xの何れかが検出されたタイミングと、第1検出タイマ値T1が取得されたタイミングと、の差である。
【0044】
この誤差時間Eは、例えば、次の様にして予め求めておく。検出部22は、第1パルスP1xと第3パルスP3xの何れかを検出したタイミングで、パルス検出信号をマイコン50の外部に出力する。また、処理部23は、タイマ21からタイマ値を取得したタイミングで、タイマ値取得信号をマイコン50の外部に出力する。そして、オシロスコープなどの測定器を用いて、上記パルス検出信号と上記タイマ値取得信号とが現れる時間の差を測定する。そして、測定された時間をタイマ21のカウント数に換算して、誤差時間Eとして目標タイマ値計算部24に設定する。この誤差時間Eは、処理部23が他の割り込み処理を実行していない場合、回転数などによらずほぼ一定となる。つまり、工場出荷時等に誤差時間Eを設定しておけば良い。
【0045】
また、目標タイマ値計算部24は、回転数が所定の回転数より低い場合、キャプチャ処理部30で取得された検出タイマ値T2に所定の固定点火出力時間D2を加算した固定点火タイマカウント値C2を計算する。この固定点火出力時間D2は、例えば、回転数によらず一定である。
【0046】
判定部25は、回転数が所定の回転数以上の場合、タイマ21のタイマ値が演算点火タイマカウント値C1に達したか否か判定し、回転数が所定の回転数より低い場合、タイマ21のタイマ値が固定点火タイマカウント値C2に達したか否か判定する。
【0047】
点火信号出力部26は、判定部25の制御に基づき、回転数が所定の回転数以上の場合、タイマ21のタイマ値が演算点火タイマカウント値C1に達した時、内燃機関を点火する演算点火信号を出力する。また、点火信号出力部26は、回転数が所定の回転数より低い場合、タイマ21のタイマ値が固定点火タイマカウント値C2に達した時、内燃機関を点火する固定点火信号を出力する
【0048】
回転数計算部27は、エンジン回転パルス信号に基づいて内燃機関の回転数を計算する。
点火出力時間設定部28は、回転数が所定の回転数以上の場合、回転数に応じて、上記演算点火出力時間D1を設定する。点火出力時間設定部28は、演算点火出力時間D1と回転数とが対応付けられたテーブルを有している。この演算点火出力時間D1は、誤差時間Eより長い。
【0049】
キャプチャ検出部29は、エンジン回転パルス信号の被検出パルスP2,P4に対応した、負パルス信号の第2パルスP2xと第4パルスP4xを検出する。つまり、キャプチャ検出部29は、エンジン回転パルス信号の被検出パルスP2,P4を検出していることになる。
【0050】
キャプチャ処理部30は、キャプチャ検出部29によって第2パルスP2xと第4パルスP4xの何れかが検出された時に、瞬時にタイマ21からタイマ値を取得する。第4パルスP4xが検出された時に取得されたタイマ値は、検出タイマ値T2である。
【0051】
次に、図3,4を参照して、パルス信号検出回路14の動作を説明する。
【0052】
図3は、本発明の実施例1に係るパルス信号検出回路14の動作を表すフローチャートである。
図4は、本発明の実施例1に係るパルス信号検出回路14の動作を表すタイミング図である。
【0053】
図4には、エンジン回転パルス信号と、負パルス信号と、正パルス信号と、タイマ値と、演算点火信号とが示されている。図4には、エンジン回転パルス信号の一部として、ある1周期(時刻t1〜t5)の被検出パルスP1〜P4と、次の1周期(時刻t5以降)の最初の被検出パルスP1とが示されている。
【0054】
また、ここでは、図4の時刻t1より前に、前回の第1パルスP1xが検出された時のタイマ値が得られているとする。
【0055】
まず、検出部22は、図4に示す時刻t1に、正パルス信号の第1パルスP1xを検出する(ステップS1)。
【0056】
処理部23は、検出部22により第1パルスP1xが検出された後に、実行中の処理を中断して割り込み処理を開始する(ステップS2)。そして、処理部23は、この割り込み処理を用いて、タイマ21からタイマ値を取得する(ステップS3)。
【0057】
回転数計算部27は、前回の第1パルスP1xが検出された時のタイマ値と、今回取得されたタイマ値とに基づいて、前回の第1パルスP1xと今回の第1パルスP1xとの間の時間(1周期時間)を算出する(ステップS4)。
【0058】
回転数計算部27は、ステップS4で得られた1周期時間に基づいて内燃機関の回転数を計算する(ステップS5:第7のステップ)。
【0059】
なお、ステップS3で取得されたタイマ値は、割り込み処理に起因した誤差時間Eだけ時刻t1から遅れたタイミングで取得された値であるが、前回の第1パルスP1xが検出された時のタイマ値も誤差時間Eを有しているので、算出された1周期時間の誤差は相殺されて問題とはならない。
【0060】
次に、検出部22は、図4に示す時刻t2に、正パルス信号の第3パルスP3xを検出する(ステップS6:第1のステップ)。
【0061】
処理部23は、検出部22により第3パルスP3xが検出された後に、実行中の処理を中断して割り込み処理を開始する(ステップS7:第2のステップ)。
【0062】
処理部23は、図4に示す時刻t3に、割り込み処理を用いて、タイマ21からタイマ値を第1検出タイマ値T1として取得する(ステップS8:第3のステップ)。ここで、第3パルスP3xが検出されたタイミング(時刻t2)と、第1検出タイマ値T1が取得されたタイミング(時刻t3)と、の差が誤差時間Eである。
【0063】
次に、処理部23は、ステップS5において計算された回転数が所定の回転数以上か否か判定する(ステップS9:第9のステップ)。
【0064】
処理部23は、回転数が所定の回転数以上の場合(ステップS9;Yes)、目標タイマ値計算部24に第1検出タイマ値T1を出力すると共に、点火出力時間設定部28を制御する。そして、点火出力時間設定部28は、回転数に応じて所定の演算点火出力時間D1を設定する(ステップS10:第8のステップ)。
【0065】
次に、目標タイマ値計算部24は、ステップS8で取得された第1検出タイマ値T1に演算点火出力時間D1を加算して、その加算結果から、予め求められた誤差時間Eを減算した演算点火タイマカウント値C1を計算する(ステップS11:第4のステップ)。つまり、C1=T1+D1−Eである。
【0066】
次に、判定部25は、タイマ21のタイマ値が演算点火タイマカウント値C1に達したか否か判定する(ステップS12:第5のステップ)。達していない場合(ステップS12;No)、ステップS12の判定を繰り返す。
【0067】
判定部25は、図4に示す時刻t4に、タイマ21のタイマ値が演算点火タイマカウント値C1に達した時(ステップS12;Yes)、点火信号出力部26を制御する。そして、点火信号出力部26は、内燃機関を点火する演算点火信号を出力する(ステップS13:第6のステップ)。
【0068】
このように、第3パルスP3xが検出されたタイミング(時刻t2)から演算点火出力時間D1だけ遅れた正確な演算点火タイミング(時刻t4)で演算点火信号を出力することができる。
【0069】
なお、目標タイマ値計算部24による誤差時間の補正を上記のように行わない場合、上記時刻t4より遅い時刻t4’(=t2+E+D1)に演算点火信号が出力されてしまう。
【0070】
その後、ステップS1の処理に戻る。つまり、検出部22は、図4に示す時刻t5に、正パルス信号の次の第1パルスP1xを検出する。
【0071】
一方、処理部23は、回転数が所定の回転数より低い場合(ステップS9;No)、キャプチャ処理部30からの検出タイマ値T2を待つように、目標タイマ値計算部24を制御する。なお、以降の処理は、図4のタイミング図への図示を省略する。
【0072】
キャプチャ検出部29は、負パルス信号の第4パルスP4xを検出する(ステップS14)。
【0073】
次に、キャプチャ処理部30は、タイマ21からタイマ値を検出タイマ値T2として取得する(ステップS15)。キャプチャ処理部30は、割り込み処理を用いずに瞬時にタイマ値を取得できる。
【0074】
次に、目標タイマ値計算部24は、ステップS15でキャプチャ処理部30により取得された検出タイマ値T2に所定の固定点火出力時間D2を加算した、固定点火タイマカウント値C2を計算する(ステップS16)。この固定点火出力時間は、例えば、回転数によらず一定である。
【0075】
判定部25は、タイマ21のタイマ値が固定点火タイマカウント値C2に達したか否か判定する(ステップS17)。達していない場合(ステップS17;No)、ステップS17の判定を繰り返す。
【0076】
判定部25は、タイマ21のタイマ値が固定点火タイマカウント値C2に達した時(ステップS17;Yes)、点火信号出力部26を制御する。そして、点火信号出力部26は、内燃機関を点火する固定点火信号を出力する(ステップS18)。
【0077】
この時、キャプチャ処理部30を用いているため、第4パルスP4xが検出されたタイミングから固定点火出力時間D2だけ遅れた正確な固定点火タイミングで固定点火信号を出力することができる。その後、ステップS1の処理に戻る。
【0078】
以上で説明した様に、本実施例によれば、第3パルスP3xが検出されたタイミングと第1検出タイマ値T1が取得されたタイミングとの差である誤差時間Eを予め求めておいて、取得された第1検出タイマ値T1に演算点火出力時間D1を加算した結果から、その誤差時間Eを減算した演算点火タイマカウント値C1を算出するようにしている。従って、タイマ値がこの演算点火タイマカウント値C1に達したタイミングを検出することで、第3パルスP3xが検出されたタイミングから演算点火出力時間D1だけ遅れた正確なタイミングを得ることができる。これにより、1つのインプットキャプチャ端子と1つの割り込み端子とを有する安価なマイコンを用いた場合であっても、正確な演算点火タイミングを得ることができる。
【0079】
また、このように上記誤差時間Eを減算するようにしているので、処理部23が、第3パルスP3xが検出されたタイミングで他の割り込み処理を実行中であったとしても、誤差時間Eの補正を上記のように行わない場合より誤差が少ない演算点火タイミングを得ることができる。
【0080】
さらに、タイマ21はフリーランタイマであるため、第1検出タイマ値T1が誤差時間Eより小さい値となる場合もあるが、第1検出タイマ値T1に、誤差時間Eより長い演算点火出力時間D1を加算した結果から、誤差時間Eを減算しているので、演算処理におけるアンダーフローを防止できる。これにより、演算処理を簡単に行うことができる。
【実施例2】
【0081】
本実施例は、1つの割り込み端子でエンジン回転パルス信号の正極性及び負極性の被検出パルスを検出するようにして、インプットキャプチャ端子を用いない点が実施例1と異なる。
【0082】
図5は、本発明の実施例2に係るパルス信号検出回路14aのブロック図である。図5に示すように、パルス信号検出回路14aは、図2の実施例1のパルス信号検出回路14のキャプチャ検出部29とキャプチャ処理部30の代わりに、負パルス検出部40を備える。また、処理部23aの機能は、図2の実施例1の処理部23の機能とは異なる。マイコン50aは、ポート入力端子(負パルス入力端子)IN3と、割り込み端子(正負パルス入力端子)IN4と、を有する。その他の回路構成は、図2の実施例1と同一であるため、同一の要素に同一の符号を付して説明を省略する。
【0083】
パルス信号生成部20aは、エンジン回転パルス信号の正極性の被検出パルスP1,P2,P3,P4にそれぞれ対応した第1パルスP1x、第2パルスP2x、第3パルスP3x及び第4パルスP4xを有する正負パルス信号と、エンジン回転パルス信号の負極性の被検出パルスP2,P4にそれぞれ対応した第2パルスP2x及び第4パルスP4xを有する負パルス信号と、を生成する。
【0084】
正負パルス信号はマイコン50aの割り込み端子IN4に入力され、マイコン50aは正負パルス信号の第1パルスP1xから第4パルスP4xに基づいて時間計測を行う。
【0085】
負パルス信号はマイコン50aのポート入力端子IN3に入力される。マイコン50aの負パルス検出部40は、負パルス信号の第2パルスP2xと第4パルスP4xの何れかを検出した時、負パルス検出信号を処理部23aに供給する。
【0086】
処理部23aは、検出部22によって第1パルスP1xから第4パルスP4xの何れかが検出された後に、実行中の処理を中断して割り込み処理を開始して、割り込み処理を用いて、タイマ21からタイマ値を取得する。第3パルスP3xが検出された後に取得されたタイマ値は、第1検出タイマ値T1であり、第4パルスP4xが検出された後に取得されたタイマ値は、第2検出タイマ値T2aである。
【0087】
目標タイマ値計算部24は、回転数が所定の回転数以上の場合、実施例1と同様に、処理部23aで取得された第1検出タイマ値T1に所定の演算点火出力時間D1を加算して、その加算結果から、予め求められた誤差時間Eを減算した演算点火タイマカウント値C1を計算する。この誤差時間Eは、実施例1と同様に、予め求めておく。
【0088】
また、目標タイマ値計算部24は、回転数が所定の回転数より低い場合、処理部23aで取得された第2検出タイマ値T2aに所定の固定点火出力時間(第2出力時間)D2aを加算した固定点火タイマカウント値(第2目標タイマ値)C2aを計算する。この固定点火出力時間D2aは、例えば、回転数によらず一定である。
【0089】
判定部25は、実施例1と同様に、回転数が所定の回転数以上の場合、タイマ21のタイマ値が演算点火タイマカウント値C1に達したか否か判定し、回転数が所定の回転数より低い場合、タイマ21のタイマ値が固定点火タイマカウント値C2aに達したか否か判定する。
【0090】
点火信号出力部26は、実施例1と同様に、判定部25の制御に基づき、回転数が所定の回転数以上の場合、タイマ21のタイマ値が演算点火タイマカウント値C1に達した時、内燃機関を点火する演算点火信号を出力する。また、点火信号出力部26は、回転数が所定の回転数より低い場合、タイマ21のタイマ値が固定点火タイマカウント値C2aに達した時、内燃機関を点火する固定点火信号を出力する
【0091】
次に、図6,7を参照して、パルス信号検出回路14aの動作を説明する。
【0092】
図6は、本発明の実施例2に係るパルス信号検出回路14aの動作を表すフローチャートである。
図7は、本発明の実施例2に係るパルス信号検出回路14aの動作を表すタイミング図である。
【0093】
図6のフローチャートのステップS1からステップS13は、実施例1と同様であるため、説明を省略し、実施例1と異なる処理のみを以下に説明する。なお、ステップS2とステップS7において、処理部23aは、負パルス検出部40から負パルス検出信号が供給されないことから、ステップS1とステップS6で検出されたパルスが正極性の被検出パルスP1,P3に対応する第1パルスP1xと第3パルスP3xであることを認識できる。
【0094】
図7には、エンジン回転パルス信号と、負パルス信号と、正負パルス信号と、タイマ値と、固定点火信号とが示されている。図7には、エンジン回転パルス信号の一部として、ある1周期(時刻t1a〜t6a)の被検出パルスP1〜P4と、次の1周期(時刻t6a以降)の最初の被検出パルスP1とが示されている。
【0095】
処理部23aは、回転数が所定の回転数より低い場合(ステップS9;No)、検出部22からの次のパルス検出信号を待つ。
【0096】
検出部22は、図7に示す時刻t3aに、正負パルス信号の第4パルスP4xを検出する(ステップS21:第10のステップ)。つまり、検出部22は、ステップS6で検出された正極性の被検出パルス(第1被検出パルス)P3とは異なる負極性の被検出パルス(第2被検出パルス)P4を検出していることになる。このとき、負パルス検出部40も第4パルスP4xを検出しており、負パルス検出信号を処理部23aに供給する。
【0097】
処理部23aは、第4パルスP4xが検出されて検出部22からパルス検出信号が入力された後に、実行中の処理を中断して割り込み処理を開始する(ステップS22:第11のステップ)。ここで、負パルス検出部40からの負パルス検出信号が供給されることによって、処理部23aは、時刻t3aで検出されたパルスが第4パルスP4xであることを認識できる。
【0098】
処理部23aは、図7に示す時刻t4aに、割り込み処理を用いて、タイマ21からタイマ値を第2検出タイマ値T2aとして取得する(ステップS23:第12のステップ)。ここで、第4パルスP4xが検出されたタイミング(時刻t3a)と第2検出タイマ値T2aが取得されたタイミング(時刻t4a)との差が、誤差時間Eである。この誤差時間Eは、実施例1と同様に、予め求めておく。
【0099】
次に、目標タイマ値計算部24は、ステップS23で取得された第2検出タイマ値T2aに所定の固定点火出力時間D2aを加算して、その加算結果から、予め求められた誤差時間Eを減算した固定点火タイマカウント値C2aを計算する(ステップS24:第13のステップ)。つまり、C2a=T2a+D2a−Eである。
【0100】
次に、判定部25は、タイマ21のタイマ値が固定点火タイマカウント値C2aに達したか否か判定する(ステップS25:第14のステップ)。達していない場合(ステップS25;No)、ステップS25の判定を繰り返す。
【0101】
判定部25は、図7に示す時刻t5aに、タイマ21のタイマ値が固定点火タイマカウント値C2aに達した時(ステップS25;Yes)、点火信号出力部26を制御する。そして、点火信号出力部26は、内燃機関を点火する固定点火信号を出力する(ステップS26:第15のステップ)。
【0102】
このように、第4パルスP4xが検出されたタイミング(時刻t3a)から固定点火出力時間D2aだけ遅れた正確な固定点火タイミング(時刻t5a)で固定点火信号を出力することができる。
【0103】
なお、目標タイマ値計算部24による誤差時間の補正を上記のように行わない場合、上記時刻t5aより遅い時刻t5a’(=t3a+E+D2a)に固定点火信号が出力されてしまう。
【0104】
その後、ステップS1の処理に戻る。つまり、検出部22は、図7に示す時刻t6aに、正負パルス信号の次の第1パルスP1xを検出する。
【0105】
以上で説明した様に、本実施例によれば、インプットキャプチャ端子を用いずに、1つの割り込み端子IN4と、1つのポート入力端子IN3のみを用いるので、実施例1より更に安価なマイコン50aを用いることができる。
【0106】
その上、誤差時間Eを予め求めておいて、取得された第2検出タイマ値T2aに固定点火出力時間D2aを加算した結果から、その誤差時間Eを減算した固定点火タイマカウント値C2aを算出するようにしている。従って、正確な固定点火タイミングを得ることができる。また、実施例1と同様に、正確な演算点火タイミングを得ることもできる。さらに、他の実施例1と同様の効果も得ることができる。
【0107】
(変形例)
上述した実施例1,2に対して様々な変更を加えることが可能である。以下、変形の一例について説明する。以下の説明では、上述した実施例1,2における対応する部分に対して用いた符号と同一の符号を用いており、重複する説明を省略する。
【0108】
上述した実施例1,2では、パルス信号検出回路14,14aを内燃機関の点火装置に適用する一例について説明したが、これに限られず、内燃機関の点火装置以外の、被検出パルスに基づいてあるタイミングを生成する装置にも適用できる。
【0109】
また、上述した実施例1,2では、エンジン回転パルス信号は、1周期に、正極性の被検出パルスP1、負極性の被検出パルスP2、正極性の被検出パルスP3および負極性の被検出パルスP4を、この順番に有する一例について説明したが、これに限られない。つまり、被検出パルスの数や極性は、上記以外でも良い。従って、パルス信号検出回路14,14aは、第3パルスP3x以外のパルスに基づいて演算点火信号を生成し、第4パルスP4x以外のパルスに基づいて固定点火信号を生成しても良い。また、パルス信号検出回路14,14aは、第1パルスP1x以外のパルスに基づいて回転数を計算しても良い。
【0110】
さらに、上述した実施例1,2で説明したマイコン50,50aを構成しているタイマ21と、検出部22と、処理部23,23aと、目標タイマ値計算部24と、判定部25と、点火信号出力部26と、回転数計算部27と、点火出力時間設定部28と、キャプチャ検出部29と、キャプチャ処理部30と、負パルス検出部40との少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、マイコン50,50aを構成している上記各部の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【0111】
また、マイコン50,50aを構成している上記各部の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【符号の説明】
【0112】
10 ロータ
11,12 リラクタ(被検出素子)
13 ピックアップコイル(被検出パルス生成部)
14,14a パルス信号検出回路
15 点火部
20,20a パルス信号生成部
21 タイマ
22 検出部
23,23a 処理部
24 目標タイマ値計算部
25 判定部
26 点火信号出力部(信号出力部)
27 回転数計算部
28 点火出力時間設定部(出力時間設定部)
29 キャプチャ検出部
30 キャプチャ処理部
40 負パルス検出部
50,50a マイコン

【特許請求の範囲】
【請求項1】
被検出パルス信号が入力される、検出部と、処理部と、タイマと、目標タイマ値計算部と、判定部と、信号出力部とを備えるパルス信号検出回路におけるパルス信号検出方法であって、
前記検出部により、前記被検出パルス信号の第1被検出パルスを検出する第1のステップと、
前記処理部により、前記第1被検出パルスが検出された後に、実行中の処理を中断して割り込み処理を開始する第2のステップと、
前記処理部により、前記割り込み処理を用いて、前記タイマからタイマ値を第1検出タイマ値として取得する第3のステップと、
前記目標タイマ値計算部により、取得された前記第1検出タイマ値に所定の第1出力時間を加算して、その加算結果から、前記第1被検出パルスが検出されたタイミングと前記第1検出タイマ値が取得されたタイミングとの差である、予め求められた誤差時間を減算した第1目標タイマ値を計算する第4のステップと、
前記判定部により、前記タイマの前記タイマ値が前記第1目標タイマ値に達したか否か判定する第5のステップと、
前記信号出力部により、前記タイマの前記タイマ値が前記第1目標タイマ値に達した時に、第1出力信号を出力する第6のステップと、を含む
ことを特徴とするパルス信号検出方法。
【請求項2】
前記被検出パルス信号は、内燃機関の回転に応じて生成され、
前記第1出力信号は、前記内燃機関を点火するための信号である
ことを特徴とする請求項1に記載のパルス信号検出方法。
【請求項3】
前記タイマは、前記タイマ値として、初期タイマ値から最終タイマ値までを繰り返しカウントし、
前記第1出力時間は、前記誤差時間より長い
ことを特徴とする請求項2に記載のパルス信号検出方法。
【請求項4】
前記第1のステップの前に、回転数計算部により、前記被検出パルス信号に基づいて前記内燃機関の回転数を計算する第7のステップをさらに含み、
前記第3のステップと前記第4のステップとの間に、出力時間設定部により、前記回転数に応じて、前記第1出力時間を設定する第8のステップをさらに含む
ことを特徴とする請求項2または請求項3に記載のパルス信号検出方法。
【請求項5】
前記第3のステップと前記第8のステップとの間に、前記処理部により、前記回転数が所定の回転数以上か否か判定する第9のステップをさらに含み、
前記第9のステップにおいて前記回転数が前記所定の回転数以上の場合に、前記第8のステップに進む
ことを特徴とする請求項4に記載のパルス信号検出方法。
【請求項6】
前記第9のステップにおいて前記回転数が前記所定の回転数より低い場合に、前記検出部により、前記第1のステップで検出された前記第1被検出パルスとは異なる第2被検出パルスを検出する第10のステップと、
前記処理部により、前記第10のステップで前記第2被検出パルスが検出された後に、実行中の処理を中断して割り込み処理を開始する第11のステップと、
前記処理部により、前記第11のステップの前記割り込み処理を用いて、前記タイマから前記タイマ値を第2検出タイマ値として取得する第12のステップと、
前記目標タイマ値計算部により、前記第12のステップにおいて取得された前記第2検出タイマ値に第2出力時間を加算して、その加算結果から前記誤差時間を減算した第2目標タイマ値を計算する第13のステップと、
前記判定部により、前記タイマの前記タイマ値が前記第2目標タイマ値に達したか否か判定する第14のステップと、
前記信号出力部により、前記タイマの前記タイマ値が前記第2目標タイマ値に達した時に、前記内燃機関を点火する第2出力信号を出力する第15のステップと、をさらに含む
ことを特徴とする請求項5に記載のパルス信号検出方法。
【請求項7】
前記第2出力時間は、前記回転数によらず一定である
ことを特徴とする請求項6に記載のパルス信号検出方法。
【請求項8】
タイマ値により時間を計測するタイマと、
被検出パルス信号の第1被検出パルスを検出する検出部と、
前記第1被検出パルスが検出された後に、実行中の処理を中断して割り込み処理を開始して、前記割り込み処理を用いて、前記タイマから前記タイマ値を第1検出タイマ値として取得する処理部と、
取得された前記第1検出タイマ値に所定の第1出力時間を加算して、その加算結果から、前記第1被検出パルスが検出されたタイミングと前記第1検出タイマ値が取得されたタイミングとの差である、予め求められた誤差時間を減算した第1目標タイマ値を計算する目標タイマ値計算部と、
前記タイマの前記タイマ値が前記第1目標タイマ値に達したか否か判定する判定部と、
前記タイマの前記タイマ値が前記第1目標タイマ値に達した時に、第1出力信号を出力する信号出力部と、を備える
ことを特徴とするパルス信号検出回路。
【請求項9】
前記被検出パルス信号は、内燃機関の回転に応じて生成され、
前記第1出力信号は、前記内燃機関を点火するための信号である
ことを特徴とする請求項8に記載のパルス信号検出回路。
【請求項10】
前記タイマは、前記タイマ値として、初期タイマ値から最終タイマ値までを繰り返しカウントし、
前記第1出力時間は、前記誤差時間より長い
ことを特徴とする請求項9に記載のパルス信号検出回路。
【請求項11】
前記被検出パルス信号に基づいて前記内燃機関の回転数を計算する回転数計算部と、
前記回転数に応じて、前記第1出力時間を設定する出力時間設定部と、をさらに備える
ことを特徴とする請求項9または請求項10に記載のパルス信号検出回路。
【請求項12】
前記処理部は、前記回転数が所定の回転数以上か否か判定し、
前記回転数が前記所定の回転数以上の場合に、
前記出力時間設定部は、前記回転数に応じて、前記第1出力時間を設定し、
前記目標タイマ値計算部は、前記第1目標タイマ値を計算する
ことを特徴とする請求項11に記載のパルス信号検出回路。
【請求項13】
前記回転数が前記所定の回転数より低い場合に、
前記検出部は、前記第1被検出パルスとは異なる第2被検出パルスを検出し、
前記処理部は、前記第2被検出パルスが検出された後、前記割り込み処理を用いて、前記タイマから前記タイマ値を第2検出タイマ値として取得し、
前記目標タイマ値計算部は、前記第2検出タイマ値に第2出力時間を加算して、その加算結果から、前記誤差時間を減算した第2目標タイマ値を計算し、
前記判定部は、前記タイマの前記タイマ値が前記第2目標タイマ値に達したか否か判定し、
前記信号出力部は、前記タイマの前記タイマ値が前記第2目標タイマ値に達した時に、前記内燃機関を点火する第2出力信号を出力する
ことを特徴とする請求項12に記載のパルス信号検出回路。
【請求項14】
前記第2出力時間は、前記回転数によらず一定である
ことを特徴とする請求項13に記載のパルス信号検出回路。
【請求項15】
内燃機関により駆動されるロータと、
前記ロータの外周に設けられた被検出素子と、
前記被検出素子の前端部および後端部を検出して、前記前端部に対応した正極性の被検出パルスと前記後端部に対応した負極性の被検出パルスとを有する被検出パルス信号を生成する被検出パルス生成部と、
前記被検出パルス信号が入力される請求項9から請求項14の何れかに記載のパルス信号検出回路と、
前記パルス信号検出回路から出力される前記第1出力信号または前記第2出力信号に基づいて前記内燃機関に点火する点火部と、を備える
ことを特徴とする内燃機関の点火装置。
【請求項16】
コンピュータを、
タイマ値により時間を計測するタイマ手段と、
被検出パルス信号の第1被検出パルスを検出する検出手段と、
前記第1被検出パルスが検出された後に、実行中の処理を中断して割り込み処理を開始して、前記割り込み処理を用いて、前記タイマ手段から前記タイマ値を第1検出タイマ値として取得する処理手段と、
取得された前記第1検出タイマ値に所定の第1出力時間を加算して、その加算結果から、前記第1被検出パルスが検出されたタイミングと前記第1検出タイマ値が取得されたタイミングとの差である、予め求められた誤差時間を減算した第1目標タイマ値を計算する目標タイマ値計算手段と、
前記タイマ手段の前記タイマ値が前記第1目標タイマ値に達したか否か判定する判定手段と、
前記タイマ手段の前記タイマ値が前記第1目標タイマ値に達した時に、第1出力信号を出力する信号出力手段と、
として機能させるためのプログラム。
【請求項17】
前記被検出パルス信号は、内燃機関の回転に応じて生成され、
前記第1出力信号は、前記内燃機関を点火するための信号である
ことを特徴とする請求項16に記載のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−163044(P2012−163044A)
【公開日】平成24年8月30日(2012.8.30)
【国際特許分類】
【出願番号】特願2011−24049(P2011−24049)
【出願日】平成23年2月7日(2011.2.7)
【出願人】(000002037)新電元工業株式会社 (776)
【Fターム(参考)】