説明

信号処理装置

【課題】回転軸の回転速度変動に影響されにくく且つ必要なメモリ容量を抑えつつ、回転信号の角度分解能より小さい一定角度毎のデータをメモリに記憶する。
【解決手段】装置1には、10°CA毎にタイミングエッジが生じるクランク信号と、センサ信号の一定時間毎のA/D変換データが入力される。この装置1では、記憶制御部9が、タイミングエッジの発生間隔であるパルス間隔毎に、そのパルス間隔で発生したデータをバッファ7の先頭アドレスから順に記憶すると共に、バッファ7に記憶したデータの数を第1カウンタ21で計数する。そして、タイミングエッジが発生する毎に、演算器33が、上記計数されたデータ数を逓倍数で割った除算値を算出し、DMAコントローラ13、ロードアドレス切替部15及び転送要求出力制御部17が、上記除算値を用いて、バッファ7内のデータの中から「10°/逓倍数」毎のデータを選択してRAM11に転送する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、回転軸が一定角度回転したタイミング毎のデータをメモリに記憶するための信号処理装置に関する。
【背景技術】
【0002】
例えば、エンジンを制御する装置においては、シリンダ内の圧力を検出する燃焼圧センサからの燃焼圧信号や、インジェクタに供給される燃料の圧力を検出する燃料圧センサからの燃料圧信号等、エンジンの制御に使用されるアナログセンサ信号を、A/D変換器によりA/D変換し(デジタルデータに変換し)、その変換後のデータをエンジン制御用の制御処理に用いている。
【0003】
また例えば、エンジンを制御する装置においては、エンジンのクランク軸の回転に同期してインジェクタや点火装置等を動作させるために、クランク軸が所定角度回転する毎にそのことを示すタイミングエッジが発生する回転信号が入力される。そして、回転信号としては、例えば、クランクセンサから出力されるクランク信号が知られており、そのクランク信号では、例えば10°CA毎に特定方向のタイミングエッジが発生する。尚、「°」は角度の単位“度”の記号であり、「CA」とは、クランクアングル(クランク軸の回転角度)を意味している。
【0004】
更に、例えば上記燃焼圧信号や燃料圧信号等、クランク軸の回転角度に関連性がある物理量を表す所定のセンサ信号については、回転信号の角度分解能(即ち、上記所定角度であり、回転信号にタイミングエッジが発生する間隔分のクランク角度)よりも小さい一定角度毎のデータを取得して処理することが要求されている。
【0005】
ここで、その要望を実現するための方法としては、例えば、クランク信号から、そのクランク信号を逓倍した逓倍クロック(詳しくは、周期がクランク信号の周期の逓倍数分の1であるクロック)を生成すると共に、その逓倍クロックの想定最小周期よりも短い一定時間毎にセンサ信号をA/D変換器によりA/D変換し、そのA/D変換で一定時間毎に更新されるデータのうち、逓倍クロックの周期タイミング(詳しくは、逓倍クロックの1周期毎のタイミング)でのデータを、処理対象データ格納用のメモリに転送する方法が考えられる。尚、以下では、このような方法のことを、「逓倍クロック同期転送方式」という。
【0006】
そして、逓倍クロックを生成するための手段は、クランク信号に所定角度毎のタイミングエッジが発生してから該タイミングエッジが次に発生するまでのパルス間隔(つまり、所定角度間隔)毎に、そのパルス間隔を計測するエッジ時間計測カウンタと、クランク信号にタイミングエッジが発生すると上記エッジ時間計測カウンタによる今回の計測値を逓倍数で除算した値がセットされるエッジ時間記憶レジスタと、そのエッジ時間記憶レジスタに記憶された時間毎に、逓倍クロックとしてのパルスを発生させる逓倍カウンタとから構成される。つまり、今回計測したクランク信号のパルス間隔時間に基づいて、クランク信号に次のタイミングエッジが発生するまでの逓倍クロックの周期を決定している(例えば特許文献1参照)。
【0007】
しかし、上記の逓倍クロック同期転送方式では、次のような問題がある。尚、ここでは、クランク信号には10°CA毎にタイミングエッジが発生すると共に、逓倍数が10である場合(即ち、逓倍クロックの周期を1°CA分の時間にする場合)を例に挙げて説明する。
【0008】
まず、エンジンが急に加速してクランク信号のパルス間隔が前回よりも短くなった場合には、本来ならばその10°CA分のパルス間隔において、1°CA毎の逓倍クロックとしてのパルスが10回発生しなければならないのに、その発生回数が10回よりも少なくなってしまう。よって、データの転送タイミングに誤差が生じると共に、データの取り込み回数(メモリへの転送回数)が少なくなってしまう(いわゆるデータ抜けが起こる)。
【0009】
逆に、エンジンが急に減速してクランク信号のパルス間隔が前回よりも長くなった場合には、その長くなった10°CA分のパルス間隔において、1°CA毎の逓倍クロックとしてのパルスが10回よりも多く発生してしまう。よって、データ転送のタイミングに誤差が生じると共に、データの取り込み回数が多くなってしまう。また、逓倍クロックが余分に発生しないようにするために、逓倍クロックの発生回数に制限値(いわゆるガード値)が設けられているのであれば、逓倍クロックの発生回数が制限値に達してからクランク信号に次のタイミングエッジが発生するまでは、逓倍クロックが発生しなくなるため、データが無くなってしまう角度領域が生じてしまうこととなる。
【0010】
このように、逓倍クロック同期転送方式では、クランク軸の回転速度変動が生じた場合に、クランク信号の角度分解能(パルス間隔分のクランク角度)よりも小さい一定角度毎のデータをメモリに格納することができなくなってしまう。
【0011】
こうした問題は、例えば特許文献2にも記載されている。そして、このような問題を解決するために、特許文献2には、下記(1)〜(3)からなる方法が記載されている。
(1)所定のクランク角度分の処理対象区間(期間)において、クランク信号に所定角度毎のタイミングエッジが発生する毎に、その時の時刻情報としてのフリーランタイマ値を、それがどのクランク角度での時刻情報であるかを識別可能に第1のメモリに順次記憶していく。
【0012】
(2)上記処理対象区間において、クランク信号のパルス間隔時間の最小値よりも短い一定時間毎に、センサ信号のデータと、その時のフリーランタイマ値とを、対応させて第2のメモリに順次記憶していく。
【0013】
(3)上記処理対象区間が終了したなら、第2のメモリに記憶された各フリーランタイマ値と、第1のメモリに記憶されたタイミングエッジ発生時の各フリーランタイマ値とから、第2のメモリ内の各データが記憶されたときのクランク角度を算出する。つまり、第2のメモリに記憶された各フリーランタイマ値を、第1のメモリの記憶内容(クランク信号にタイミングエッジが発生した時のクランク角度と時刻との関係)を用いて、クランク角度に換算する。
【0014】
そして、このような方法によれば、第2のメモリ内の各データが記憶されたときのクランク角度を、クランク軸の回転速度変動に影響されずに求めることができる。
このため、上記(3)の処理が全て終了した後に、第2のメモリから、クランク信号の角度分解能よりも小さい所望の一定角度毎のデータを探し出して、その各データを処理対象データ格納用のメモリに記憶し、そのメモリ内のデータに対して目的の処理を行えば良い。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】特開2001−200747号公報
【特許文献2】特開2005−220796号公報
【発明の概要】
【発明が解決しようとする課題】
【0016】
しかしながら、特許文献2の方法では、回転軸としてのクランク軸の回転速度変動の影響を回避することができるものの、逓倍クロック同期転送方式と比較すると、少なくとも上記(1)の第1のメモリと上記(2)の第2のメモリとが更に必要になる。そして、その第1及び第2のメモリの必要記憶容量は、処理対象区間(データを収集する回転軸の角度領域)を長く設定すればするほど、大きくなってしまう。
【0017】
そこで、本発明は、回転軸の回転速度変動に影響されにくく、且つ、必要なメモリ容量を抑えつつ、回転信号の角度分解能よりも小さい一定角度毎のデータをメモリに記憶可能な信号処理装置の提供を目的としている。
【課題を解決するための手段】
【0018】
本発明の信号処理装置には、回転軸が所定角度回転する毎に、そのこと(即ち、回転軸が所定角度回転したこと)を示すタイミングエッジが発生する回転信号と、その回転信号にタイミングエッジが発生してから該タイミングエッジが次に発生するまでのパルス間隔の最小時間よりも短い一定時間毎に所定の機器により発生される検出対象のデータとが入力される。そして、この信号処理装置は、記憶制御手段と、除算値設定手段と、転送制御手段とを備えている。
【0019】
記憶制御手段は、所定回数分の前記パルス間隔である単位間隔毎に、その単位間隔において発生した前記データを、該データの発生順が識別可能に第1メモリに記憶すると共に、その単位間隔において第1メモリに記憶したデータの数であるデータ数を計数する。
【0020】
そして、除算値設定手段は、前記単位間隔が終了する毎に動作し、今回終了した単位間隔について記憶制御手段により計数されたデータ数を、所定の逓倍数を前記所定回数倍した値で割った除算値を求める。
【0021】
つまり、前記所定角度を「A」とし、前記所定回数を「n」とすると、単位間隔は、回転軸が「A×n」度回転する分の期間であり、逓倍数を「B」とし、「A×n」度分の単位間隔において第1メモリに記憶されたデータの数を「C」とすると、除算値設定手段は、「C/(B×n)」の値を求めることとなる。
【0022】
また、転送制御手段も、前記単位間隔が終了する毎に動作する。
そして、転送制御手段は、除算値設定手段により求められた除算値を用いて、記憶制御手段により第1メモリに記憶された単位間隔分のデータのなかから、前記所定角度(即ち、回転信号の角度分解能)を前記逓倍数で割った角度(以下、逓倍角度ともいう)だけ回転軸が回転する毎に発生されたデータである逓倍タイミングデータを選択すると共に、その選択した逓倍タイミングデータを第1メモリから第2メモリに転送する。
【0023】
つまり、第1メモリに記憶される単位間隔分で且つ一定時間毎のデータの発生順を考えた場合、除算値設定手段により求められる除算値は、第1メモリに記憶された単位間隔分のデータのうち、逓倍角度(「A/B」度)毎の逓倍タイミングデータが何番目おきに発生したデータであるかを表すこととなる。このため、転送制御手段は、その除算値を用いて、第1メモリに記憶された単位間隔分のデータのなかから逓倍タイミングデータを選択し、その選択した逓倍タイミングデータを第1メモリから第2メモリに転送している。
【0024】
そして、除算値設定手段により求められる除算値は、第1メモリに記憶されたデータが発生したときの単位間隔の長さに応じて変化する(単位間隔が長いほど大きくなる)情報であり、転送制御手段は、その除算値を用いて、第1メモリ内のデータのなかから逓倍タイミングデータを選択する。
【0025】
つまり、転送制御手段は、今回の単位間隔の長さ情報を用いて、その今回の単位間隔において一定時間毎に発生したデータのなかから、逓倍タイミングデータを選択している。このため、回転軸の回転速度変動の影響を受けずに、逓倍タイミングデータを選択して第2メモリに転送することができる。
【0026】
しかも、第1メモリの記憶容量は、単位間隔分の最大個数のデータであって、単位間隔が、想定される最大値になった場合の、単位間隔分のデータを記憶可能な容量であれば良く、このことは、データを収集する対象の回転軸の角度領域(何度から何度までという処理対象区間)が、単位間隔分の角度(上記「A×n」度)の何倍になっても変わらない。
【0027】
よって、このような信号処理装置によれば、回転軸の回転速度変動に影響されにくく、且つ、必要なメモリ容量を抑えつつ、回転信号の角度分解能よりも小さい一定角度(逓倍角度)毎のデータ(逓倍タイミングデータ)をメモリ(第2メモリ)に記憶させることができる。
【0028】
尚、第1メモリと第2メモリとの各々は、物理的に別々のメモリであっても良いし、物理的に同一のメモリにおける異なる記憶領域であっても良い。
また、除算値設定手段は、除算値を、上記「C/(B×n)」の演算を実施することによって求めるようになっていても良いし、マップから求めるようになっていても良い。後者の場合、逓倍数(B)と所定回数(n)は既知であることから、例えば、様々な値のデータ数(C)の各々と、その各データ数について求められるべき除算値とを、対応付けて記憶したデータマップを、所定のマップ記憶部に予め記憶しておき、除算値設定手段は、そのデータマップから、記憶制御手段により計数されたデータ数に対応する除算値を、読み出して求めるように構成しても良い。
【0029】
ところで、転送制御手段は、例えば、記憶制御手段により第1メモリに記憶された単位間隔分のデータのなかから、1番目(最初)に発生したデータと、前記除算値を自然数倍(1倍、2倍、3倍、…)した値を整数化処理した整数値よりも1だけ大きい値の順番で発生したデータを、逓倍タイミングデータとして選択するように構成することができる。
【0030】
このように構成すれば、除算値が整数にならなかった場合でも、逓倍タイミングデータを適切に選択することができる。つまり、逓倍タイミングデータとして妥当なデータを選択することができる。
【0031】
また、整数化処理としては、一般に、切り捨て(小数点以下切り捨て)処理と、切り上げ(小数点以下切り上げ)処理と、四捨五入(小数点以下四捨五入)処理との何れかが考えられるが、そのなかでも、切り捨て処理を採用すれば、処理が簡単になるという利点がある。
【0032】
一方、前記所定回数(n)は、1回でも2回以上(複数回)でも良いが、特に1回ならば、回転信号の角度分解能よりも小さい逓倍角度毎の逓倍タイミングデータを第2メモリに記憶することに関して、回転軸の回転速度変動の影響を最も受けにくくすることができる。尚、所定回数(n)が1回であるということは、単位間隔がパルス間隔であるということである。
【0033】
また、所定回数(n)が1であると共に、回転信号に欠歯部が発生するのであれば、次のように構成することで対応することができる。尚、その欠歯部とは、回転軸の回転位置が基準位置に来たときに、タイミングエッジの発生間隔(パルス間隔)が、前記所定角度の所定数(N)倍の角度だけ回転軸が回転するのに要する時間になる部分である。
【0034】
まず、欠歯部判定手段を設ける。その欠歯部判定手段は、回転信号にタイミングエッジが発生する毎に、今回発生したタイミングエッジが欠歯部の終了に該当する欠歯終了エッジであるか否か(換言すれば、今回のパルス間隔が欠歯部であるか否か)を判定する。
【0035】
そして、除算値設定手段は、欠歯部判定手段によりタイミングエッジが欠歯終了エッジであると判定された場合には、記憶制御手段により計数されたデータ数(この場合、今回終了した欠歯部としてのパルス間隔において第1メモリに記憶されたデータの数)を、逓倍数(B)を前記所定数(N)倍した値(B×N)で割った除算値を求めるように構成する。
【0036】
このように構成すれば、回転信号に欠歯部が発生した場合でも、その欠歯部に該当するパルス間隔において第1メモリに記憶されたデータのなかから、逓倍タイミングデータを精度良く選択して第2メモリに転送することができる。
【0037】
尚、勿論この場合、第1メモリの記憶容量は、欠歯部に該当するパルス間隔に着目して、そのパルス間隔分の最大個数のデータを記憶可能な容量に設定しておけば良い。
また例えば、欠歯部判定手段は、回転信号にタイミングエッジが発生する毎に動作して、今回終了したパルス間隔について記憶制御手段により計数されたデータ数(以下、「今回のデータ数」という)と、前回終了したパルス間隔について記憶制御手段により計数されたデータ数(以下、「前回のデータ数」という)とを比較することにより、今回発生したタイミングエッジが欠歯終了エッジであるか否かを判定するように構成することができる。つまり、記憶制御手段によって計数されるデータ数は、パルス間隔の長さに比例するため、今回のデータ数と前回のデータ数とを比較することで、今回のパルス間隔が欠歯部か否かの判定が可能である。
【0038】
そして、この構成によれば、今回発生したタイミングエッジが欠歯終了エッジであるか否かを、記憶制御手段を利用して判定することができるため、追加構成が少なくて済む。
一方、回転軸としては、例えば、エンジンのクランク軸やモータの回転軸等が考えられる。そして、例えば、回転軸がエンジンのクランク軸であれば、第2メモリに記憶されるデータを、例えばエンジンを制御するために使用することができ、回転軸がモータの回転軸であれば、第2メモリに記憶されるデータを、例えばモータを制御するために使用することができる。
【図面の簡単な説明】
【0039】
【図1】第1実施形態の信号処理装置の構成を表す構成図である。
【図2】第1実施形態の作用の一例を説明する説明図である。
【図3】クランク信号の欠歯部の説明図である。
【図4】第2実施形態の信号処理装置の構成を表す構成図である。
【発明を実施するための形態】
【0040】
以下に、本発明が適用された実施形態の信号処理装置について説明する。
[第1実施形態]
図1に示す本実施形態の信号処理装置1は、自動車のエンジンを制御するエンジン制御装置に設けられる。そして、この信号処理装置1には、エンジンを制御するために使用されるアナログセンサ信号の電圧値を表す検出対象のデータが、一定時間Ts毎に更新されて入力される。
【0041】
本実施形態においては、アナログセンサ信号がA/D変換器(ADC)3により一定時間Ts毎にA/D変換され、そのA/D変換器3から一定時間Ts毎に出力されるデータがデジタルフィルタ(DF)5に順次入力される。そして、デジタルフィルタ5にてフィルタ処理された後のデータであって、一定時間毎に更新されるデータが、そのデジタルフィルタ5から当該信号処理装置1に入力される。つまり、A/D変換器3からデジタルフィルタ5を介して一定時間Ts毎に出力されるアナログセンサ信号のA/D変換データが、信号処理装置1に入力される。
【0042】
尚、A/D変換器3からのデータが、デジタルフィルタ5を介さずに信号処理装置1に入力されるようになっていても良い。また、アナログセンサ信号は、例えば、シリンダ内の圧力を検出する燃焼圧センサからの燃焼圧信号であるが、インジェクタに供給される燃料の圧力を検出する燃料圧センサからの燃料圧信号等でもよい。また、デジタルフィルタ5のフィルタ処理としては、例えば、ローパスフィルタの処理が考えられるが、ハイパスフィルタやバンドパスフィルタ等の処理でも良い。
【0043】
更に、信号処理装置1には、回転信号として、エンジンのクランク軸の回転角度を表すクランクセンサからのクランク信号も入力される。そのクランク信号は、クランク軸が所定角度回転する毎に、そのことを示すタイミングエッジが発生する信号である。
【0044】
尚、本実施形態において、上記所定角度は、例えば10°である。また、タイミングエッジは、立ち上がりエッジと立ち下がりエッジとのうちの、一方であるのが一般的であるが、両方であっても良い。また、上記一定時間Tsは、クランク信号のパルス間隔(即ち、クランク信号にタイミングエッジが発生してから該タイミングエッジが次に発生するまでの10°CA分の間隔)の最小時間よりも、短い時間に設定されており、例えば10μsである。また、以下では、クランク信号のパルス間隔のことを、単に「パルス間隔」ともいい、クランク信号におけるタイミングエッジのことを、単に「クランクエッジ」ともいう。
【0045】
そして、信号処理装置1は、クランク信号のパルス間隔において発生したデジタルフィルタ5からのデータを記憶するためのバッファ7と、バッファ7にパルス間隔分のデータを記憶するための制御を行う記憶制御部9と、バッファ7に記憶されたパルス間隔分のデータのうちの何れかが、クランクエッジが発生する毎に転送されるRAM11と、バッファ7の各アドレスに記憶されているデータのうち、転送要求が与えられたときに入力されているロードアドレスのデータを、バッファ7からRAM11に転送するDMA(Direct Memory Access)コントローラ13と、DMAコントローラ13へのロードアドレスを、バッファ7の先頭アドレスから1アドレスずつ切り替えていく処理を行うロードアドレス切替部15と、バッファ7に記憶されたデータのうちで、クランク信号の角度分解能である上記所定角度(本実施形態では10°)を逓倍数で割った逓倍角度(=10°/逓倍数)だけクランク軸が回転したタイミング毎に発生された逓倍タイミングデータがRAM11に転送されるように、DMAコントローラ13に対して転送要求を出力する転送要求出力制御部17と、を備えている。
【0046】
記憶制御部9は、第1カウンタ21と、ストア制御器23とを有している。
第1カウンタ21は、クランクエッジによってリセットされる。
そして、ストア制御器23は、デジタルフィルタ5からデータが出力される毎(即ち、デジタルフィルタ5からのデータが更新される一定時間Ts毎)に動作して、バッファ7のアドレスのうち、該バッファ7の先頭アドレスに第1カウンタ21の値(以下、単に「第1カウンタ値」ともいう)を加えたアドレスへ、デジタルフィルタ5からのデータを記憶する。更に、ストア制御器23は、バッファ7へのデータ記憶(データのストア)を行う毎に、第1カウンタ21をカウントアップ(+1)する。尚、本実施形態において、バッファ7には、1つのアドレスに1つのデータが記憶されるようになっている。
【0047】
このため、記憶制御部9は、クランク信号のパルス間隔毎に、そのパルス間隔においてデジタルフィルタ5から出力されたデータを、バッファ7の先頭アドレスから順に記憶すると共に、そのパルス間隔においてバッファ7に記憶したデータの数を、第1カウンタ21によって計数することとなる。よって、第1カウンタ値は、バッファ7にデータを記憶する際のアドレスポインタとして使用されると共に、バッファ7に記憶されたパルス間隔分のデータ数を表すこととなる。
【0048】
ロードアドレス切替部15は、第2カウンタ25と、ロードアドレス制御器27とを有している。
また、転送要求出力制御部17は、クランクエッジが発生する毎に、第1カウンタ21のリセット直前の値(以下、「リセット時の第1カウンタ値」という)が記憶される第1レジスタ29を有している。つまり、クランクエッジが発生すると、第1カウンタ値が第1レジスタ29にコピーされてから、第1カウンタ21がリセットされるようになっている。
【0049】
そして、ロードアドレス切替部15において、第2カウンタ25は、クランクエッジによってリセットされると共に、そのリセット時から、データの発生間隔(更新間隔)である一定時間Tsよりも十分に短い一定時間(本実施形態では例えば0.1μs)Tc毎の内部クロックによってカウントアップされる。更に、第2カウンタ25のカウントアップは、該第2カウンタ25の値(以下、「第2カウンタ値」ともいう)が、第1レジスタ29に記憶されている値(リセット時の第1カウンタ値)から1を引いた値に達すると停止される。
【0050】
また、ロードアドレス制御器27は、DMAコントローラ13にロードアドレスを出力する回路である。そして、ロードアドレス制御器27は、クランクエッジが発生すると、DMAコントローラ13へのロードアドレスを、バッファ7の先頭アドレスに第2カウンタ値を加えたアドレスにする。
【0051】
このため、クランクエッジが発生すると、DMAコントローラ13へのロードアドレスは、バッファ7の先頭アドレスから、「リセット時の第1カウンタ値−1」番目のアドレスまで、一定時間Tc毎に順次切り替えられることとなる。
【0052】
尚、第2カウンタ値は、DMAコントローラ13へのロードアドレスのポインタとして使用されるため、その第2カウンタ値により、DMAコントローラ13への現在のロードアドレスを把握することができる。
【0053】
また、転送要求出力制御部17は、上記第1レジスタ29に加えて、逓倍数が記憶される第2レジスタ31と、クランクエッジが発生して第1レジスタ29内のリセット時の第1カウンタ値が更新される毎に動作し、その第1レジスタ29内のリセット時の第1カウンタ値を、第2レジスタ31内の逓倍数で割った除算値を算出する演算器33と、演算器33の演算結果である除算値が記憶される第3レジスタ35と、加算要求が与えられると、そのときに入力されている加数を、第3レジスタ35に記憶されている除算値に加数して、その演算結果である加算値を出力する加算器37と、クランクエッジが発生すると記憶値が0にリセットされると共に、加算器37に上記加算要求が与えられて該加算器37から加算値が出力される毎に、その加算器37からの加算値を記憶し、更に、記憶している値を、加算器37へ上記加数として出力する第4レジスタ39と、DMA転送要求制御器41と、を備えている。
【0054】
そして、DMA転送要求制御器41は、クランクエッジが発生して第2カウンタ25と第4レジスタ39がリセットされると動作を開始し、第4レジスタ39の値(詳しくは、第4レジスタ39に記憶されている値)を整数化処理した整数値と第2カウンタ値とを比較して、その両値が一致していれば、DMAコントローラ13に転送要求を出力すると共に、加算器37に加算要求を出力する。更に、DMA転送要求制御器41は、クランクエッジが発生してからの転送要求及び加算要求の出力回数が、第2レジスタ31内の逓倍数に達すると、次回のクランクエッジが発生するまで動作を休止する。つまり、クランクエッジが発生してからの転送要求及び加算要求の出力回数には制限値があり、その制限値は逓倍数である。
【0055】
尚、本実施形態では、上記整数化処理として、小数点以下を切り捨てる処理を行っている。このため、DMA転送要求制御器41は、第4レジスタ39の値の小数点以下を切り捨てた整数部の値と、第2カウンタ値とを比較する。また、以下では、整数化処理によって得られる整数値のことを「整数化値」という。また、演算器33は、上記除算値を、「リセット時の第1カウンタ値/逓倍数」の演算を実施して求めることに代えて、例えば、マップから求めるように構成しても良い。つまり、逓倍数が既知の固定値であるならば、例えば、様々な値の「リセット時の第1カウンタ値」の各々と、その各値について求められるべき除算値とを、対応付けて記録したデータマップを、所定のマップ記憶部に予め記憶しておき、演算器33は、そのデータマップから、第1レジスタ29内のリセット時の第1カウンタ値に対応する除算値を、読み出して求めるように構成しても良い。
【0056】
このような転送要求出力制御部17において、演算器33で算出された除算値が“D”であったとすると、クランクエッジが発生した時点では、第4レジスタ39とロードアドレス切替部15の第2カウンタ25とが共にリセットされるため、クランクエッジの発生時点において、DMA転送要求制御器41は、第4レジスタ39の値の整数化値(この時点では“0”)と第2カウンタ値(この時点では“0”)とが一致していると判断し、DMAコントローラ13に転送要求を出力すると共に、加算器37に加算要求を出力することとなる。
【0057】
そして、そのとき、第2カウンタ値は“0”であり、ロードアドレス切替部15のロードアドレス制御器27からDMAコントローラ13へのロードアドレスは、バッファ7の先頭アドレスになっているため、DMAコントローラ13に転送要求が出力されると、そのバッファ7の先頭アドレスのデータが、DMAコントローラ13によってRAM11に転送される。
【0058】
また、そのとき、第4レジスタ39の値も“0”であるため、加算器37に加算要求が出力されると、加算器37からの加算値は、第3レジスタ35内の除算値“D”となり、その“D”が第4レジスタ39に記憶される。つまり、第4レジスタ39の値が“0”から“D”に更新される。
【0059】
そして、その後、第2カウンタ25が前述の内部クロックによりカウントアップされて、第2カウンタ値が“D”の整数化値になると、再び、DMA転送要求制御器41は、第4レジスタ39の値の整数化値と第2カウンタ値とが一致していると判断して、DMAコントローラ13に転送要求を出力すると共に、加算器37に加算要求を出力することとなる。
【0060】
すると、そのとき、ロードアドレス制御器27からDMAコントローラ13へのロードアドレスは、バッファ7の先頭アドレスに“D”の整数化値を加えたアドレスになっているため、DMAコントローラ13に転送要求が出力されると、バッファ7に記憶されているデータのうち、バッファ7の先頭アドレスに“D”の整数化値を加えたアドレス(即ち、先頭アドレスを1番目として、「“D”の整数化値+1」番目のアドレス)のデータが、DMAコントローラ13によってRAM11に転送される。
【0061】
また、そのとき、第4レジスタ39の値は“D”であるため、加算器37に加算要求が出力されると、加算器37からの加算値は“D×2”となり、その“D×2”が第4レジスタ39に記憶される。つまり、第4レジスタ39の値が“D”から“D×2”に更新される。
【0062】
更にその後、第2カウンタ25が内部クロックによりカウントアップされて、第2カウンタ値が“D×2”の整数化値になると、再び、DMA転送要求制御器41は、第4レジスタ39の値の整数化値と第2カウンタ値とが一致していると判断して、DMAコントローラ13に転送要求を出力すると共に、加算器37に加算要求を出力することとなる。
【0063】
そして、そのとき、ロードアドレス制御器27からDMAコントローラ13へのロードアドレスは、バッファ7の先頭アドレスに“D×2”の整数化値を加えたアドレスになっているため、DMAコントローラ13に転送要求が出力されると、バッファ7に記憶されているデータのうち、バッファ7の先頭アドレスに“D×2”の整数化値を加えたアドレス(即ち、先頭アドレスを1番目として、「“D×2”の整数化値+1」番目のアドレス)のデータが、DMAコントローラ13によってRAM11に転送される。
【0064】
また、そのとき、第4レジスタ39の値は“D×2”であるため、加算器37に加算要求が出力されると、加算器37からの加算値は“D×3”となり、その“D×3”が第4レジスタ39に記憶される。つまり、第4レジスタ39の値が“D×2”から“D×3”に更新される。
【0065】
そして、上記のDMA転送要求制御器41の動作は、転送要求及び加算要求の出力回数が第2レジスタ31内の逓倍数に達するまで行われる。
つまり、転送要求出力制御部17において、第3レジスタ35、加算器37、第4レジスタ39及びDMA転送要求制御器41は、ロードアドレス切替部15の第2カウンタ25と連携することにより、DMAコントローラ13へのロードアドレスが、バッファ7の先頭アドレスになった時と、その先頭アドレスに除算値“D”を自然数倍(1倍、2倍、3倍…)した値の整数化値を加えたアドレスになった時とに、DMAコントローラ13へ転送要求を出力している。
【0066】
そして、バッファ7には、クランク信号のパルス間隔においてデジタルフィルタ5から出力されたデータが、先頭アドレスから順に記憶される。このため、バッファ7には、パルス間隔における一定時間Ts毎のデータが、発生した順に、先頭アドレスから記憶されていることとなる。
【0067】
よって、信号処理装置1では、転送要求出力制御部17における第3レジスタ35、加算器37、第4レジスタ39及びDMA転送要求制御器41と、ロードアドレス切替部15と、DMAコントローラ13とが、記憶制御部9によりバッファ7に記憶されたパルス間隔分のデータのなかから、1番目に発生したデータと、除算値“D”を自然数倍した値の整数化値よりも1だけ大きい値の順番で発生したデータとの各々を、逓倍タイミングデータとして選択して、その選択した逓倍タイミングデータをバッファ7からRAM11に転送していることになる。
【0068】
尚、この信号処理装置1が設けられるエンジン制御装置には、エンジンを制御するための処理を行うCPU45や、そのCPU45が実行するプログラムが記憶されたROM(図示省略)等からなるマイコンが搭載されている。そして、少なくともRAM11と第2レジスタ31は、そのマイコンのCPU45によってアクセス可能であり、第2レジスタ31には、CPU45によって逓倍数が書き込まれる。また、CPU45は、RAM11に転送された逓倍タイミングデータを読み出してエンジン制御用の処理を行う。例えば、その処理としては、A/D変換対象のアナログセンサ信号が燃焼圧信号であれば、燃焼割合の算出処理や失火検出処理やノック検出処理等が考えられる。一方、信号処理装置1は、上記マイコンの一部として(マイコンと同じチップ内に)構成されていても良い。
【0069】
次に、以上のような信号処理装置1の動作例について、図2を用い説明する。
尚、図2は、クランクエッジが時刻t1と時刻t2とで発生すると共に、その時刻t1から時刻t2までのパルス間隔において、デジタルフィルタ5から信号処理装置1へ新たな4個のデータD1〜D4が入力され、更に、逓倍数が“2”の場合を表している。また、図2において、上から2段目の「ADC,DFタイミング」は、一定時間Ts毎のA/D変換器3によるA/D変換タイミングであり、デジタルフィルタ5からのデータが更新されるタイミングでもある。また、図2及び以下の説明において、A0,A1,A2…の各々は、バッファ7の先頭からの各アドレスであり、A0が先頭アドレスである。
【0070】
図2において、時刻t1に示すように、クランクエッジが発生すると、第1カウンタ21がリセットされる。そして、その後、デジタルフィルタ5から新たなデータが出力される毎に、ストア制御器23により、そのデジタルフィルタ5からの各データ(D1,D2,D3,D4)が、バッファ7の先頭からの各アドレス(A0,A1,A2,A3)に順次記憶され、また、そのバッファ7へのデータ記憶が実施される毎に、第1カウンタ21がカウントアップされる。
【0071】
そして、時刻t2に示すように、次のクランクエッジが発生すると、その時点において、この例では、第1カウンタ値が“4”になっているため、その“4”が、リセット時の第1カウンタ値として第1レジスタ29にコピーされ、そのコピー後に、第1カウンタ21がリセットされる。そして更に、演算器33が動作して、第1レジスタ29に記憶された“4”を、逓倍数の“2”で割った値(=2)が、除算値として求められて第3レジスタ35に記憶される。
【0072】
また、時刻t2でクランクエッジが発生すると、第2カウンタ25と第4レジスタ39がリセットされ、図2における5段目に示すように、第2カウンタ25は、データの更新間隔Tsよりも十分に短い一定時間Tc毎に、「リセット時の第1カウンタ値−1」の値(この例では“3”)になるまでカウントアップされる。その結果、ロードアドレス制御器27からDMAコントローラ13へのロードアドレスが、一定時間Tc毎に「A0」から「A3」まで順次切り替えられることとなる。尚、図2において、上から5段目以降の各々は、時刻t2の付近を拡大して表している。
【0073】
そして、第2カウンタ値が、“0”の時と、第3レジスタ35内の除算値(=2)を自然数倍した値の整数化値になった時(この例では“2”になった時)との各々であって、DMAコントローラ13へのロードアドレスが「A0」の時と「A2」の時とに、DMA転送要求制御器41からDMAコントローラ13へ転送要求が出力される。
【0074】
このため、時刻t2でクランクエッジが発生すると、バッファ7に記憶された今回の(直前の)パルス期間分のデータ(D1,D2,D3,D4)のうち、先頭アドレス(A0)に記憶されているデータ(D1)と、3番目のアドレス(A2)に記憶されているデータ(D3)とが、DMAコントローラ13によってRAM11に転送(即ちDMA転送)されることとなる。
【0075】
また、他の具体例として、例えば、図2において、時刻t1でクランクエッジが発生してから、時刻t2で次のクランクエッジが発生するまでのパルス間隔に、デジタルフィルタ5から信号処理装置1へ、4個ではなく、10個のデータが入力され、更に、逓倍数が“4”がであった場合について説明する。
【0076】
その場合、時刻t1から時刻t2までのパルス間隔において、バッファ7には、一定時間Ts毎に、先頭アドレス(A0)から合計10個のデータが格納されることとなり、第1カウンタ値は“10”になる。
【0077】
そして、時刻t2で次のクランクエッジが発生すると、第1カウンタ21から第1レジスタ29に、リセット時の第1カウンタ値として“10”がコピーされ、そのコピー後に、第1カウンタ21がリセットされる。そして更に、演算器33が動作して、第1レジスタ29に記憶された“10”を、逓倍数の“4”で割った値(=2.5)が、除算値として求められて第3レジスタ35に記憶される。
【0078】
また、時刻t2でクランクエッジが発生すると、第2カウンタ25と第4レジスタ39がリセットされ、第2カウンタ25は一定時間Tc毎に「リセット時の第1カウンタ値−1」の値(この例では“9”)になるまでカウントアップされる。
【0079】
ここで、第2カウンタ値が“0”の時、第4レジスタ39の値も“0”であるため、DMA転送要求制御器41からDMAコントローラ13へ転送要求が出力されて、バッファ7からRAM11へのDMA転送が実施される。そして、以後は、第4レジスタ39の値に除算値(=2.5)が累積加算されて、その第4レジスタ39の値が「0→2.5→5.0→7.5」と推移し、第2カウンタ値が“2”と“5”と“7”になった時にも、DMA転送要求制御器41からDMAコントローラ13へ転送要求が出力されて、バッファ7からRAM11へのDMA転送が実施される。
【0080】
よって、時刻t2でクランクエッジが発生すると、バッファ7に記憶された今回の(直前の)パルス期間分のデータのうち、アドレス「A0」,「A2」,「A5」,「A7」の各々に記憶された4個のデータがRAM11にDMA転送されることとなる。
【0081】
尚、前述したように、DMA転送要求制御器41は、転送要求及び加算要求を、逓倍数の回数しか出力しないため、この例の場合、第4レジスタ39の値は、“10”や“12.5”といった値にまで増加してくことはない。
【0082】
以上のような信号処理装置1において、演算器33により求められる除算値は、バッファ7に記憶されたパルス間隔分のデータのうち、逓倍タイミングデータが何番目おきに発生したデータであるかを表すこととなる。そして、バッファ7には、パルス間隔分のデータが、発生した順に先頭アドレスから記憶されるため、バッファ7におけるデータの記憶位置(アドレス)と発生順とは、一対一に対応している。
【0083】
このため、この信号処理装置1では、演算器33により求められた除算値を用いて、バッファ7に記憶されたパルス間隔分のデータのなかから逓倍タイミングデータ(厳密には、逓倍角度毎に発生したと考えられるデータであり、逓倍タイミングデータとして見なすデータ)を選択し、その選択した逓倍タイミングデータをバッファ7からRAM11に転送している。
【0084】
更に、演算器33により求められる除算値は、バッファ7に記憶されたデータが発生したときのパルス間隔の長さに応じて変化する(即ち、パルス間隔が長いほど大きくなる)情報である。
【0085】
よって、この信号処理装置1では、今回のパルス間隔の長さ情報を用いて、その今回のパルス間隔においてバッファ7に記憶した一定時間Ts毎のデータのなかから、逓倍タイミングデータを選択していることとなる。このため、エンジン(クランク軸)の回転速度変動の影響を受けずに、逓倍タイミングデータを選択してRAM11に転送することができる。
【0086】
しかも、バッファ7の記憶容量は、パルス間隔分の最大個数のデータ(即ち、パルス間隔が、想定される最大値になった場合の、パルス間隔分のデータ)を記憶可能な容量であれば良く、このことは、データを収集する対象のクランク角度領域(処理対象区間)が、パルス間隔分の角度の何倍になっても変わらない。
【0087】
よって、このような本実施形態の信号処理装置1によれば、エンジンの回転速度変動に影響されにくく、且つ、必要なメモリ容量を抑えつつ、クランク信号の角度分解能よりも小さい一定角度(逓倍角度)毎のデータ(逓倍タイミングデータ)をRAM11に記憶させることができる。
【0088】
また、本実施形態の信号処理装置1では、DMA転送要求制御器41が、第4レジスタ39の値の整数化値と第2カウンタ値とが一致したことをトリガとして、DMAコントローラ13への転送要求と加算器37への加算要求とを出力するようになっており、このことにより、前述したように、バッファ7内のパルス間隔分のデータのなかから、1番目に発生したデータと、演算器33により求められた除算値を自然数倍(1倍、2倍、3倍、…)した値の整数化値よりも1だけ大きい値の順番で発生したデータとを、逓倍タイミングデータとして選択している。
【0089】
そして、この構成によれば、除算値が整数にならなかった場合でも、逓倍タイミングデータを適切に選択することができる。つまり、逓倍タイミングデータとして妥当なデータを選択することができる。
【0090】
また、整数化値を得るための整数化処理としては、切り捨て処理以外(例えば、小数点以下の切り上げ処理や四捨五入処理等)でも良いが、本実施形態では、切り捨て処理を採用しているため、他の処理を行う場合よりも、その整数化処理を行うための回路構成を簡単なものにすることができる。
【0091】
尚、本実施形態では、エンジンのクランク軸が、回転軸の一例に相当し、A/D変換器3とデジタルフィルタ5が、検出対象のデータを一定時間毎に発生する機器の一例に相当している。また、本実施形態では、パルス間隔が、所定回数分のパルス間隔である単位間隔の一例になっている。つまり、上記実施形態は、所定回数の一例として、1回を例示した実施形態である。
【0092】
そして、本実施形態では、バッファ7が、第1メモリの一例に相当し、記憶制御部9が、記憶制御手段の一例に相当し、演算器33が、除算値設定手段の一例に相当し、転送要求出力制御部17における第3レジスタ35、加算器37、第4レジスタ39及びDMA転送要求制御器41と、ロードアドレス切替部15と、DMAコントローラ13とが、転送制御手段の一例に相当し、RAM11が、第2メモリの一例に相当している。また、第3レジスタ35は、除算値の設定先である設定部の一例にも相当している。
【0093】
[変形例]
一方、上記実施形態においては、バッファ7に、1回のパルス間隔分のデータを格納するようになっていたが、M回(Mは2以上の整数)のパルス間隔分のデータをバッファ7に格納するように構成しても良い。
【0094】
その場合、下記2点の変形をすれば良い。
第1に、信号処理装置1には、クランク信号のクランクエッジがM回に1回の割合で入力されるようにする。つまり、クランク信号をM分周して信号処理装置1に入力させる。
【0095】
第2に、第2レジスタ31に「逓倍数×M」の値を格納しておくことにより、演算器33が、「リセット時の第1カウンタ値/(逓倍数×M)」の値を除算値として求めるようにする。つまり、この場合の「リセット時の第1カウンタ値」は、上記第1の変形により、M回のパルス間隔においてバッファ7に記憶されたデータの数を表すこととなるため、演算器33は、そのM回のパルス間隔分のデータ数を、「逓倍数×M」の値で割った除算値を求めることとなる。
【0096】
但し、このような変形はせずに、上記実施形態のように構成する方が、逓倍角度毎のデータをRAM11に記憶することに関して、クランク軸の回転速度変動の影響を最も受けにくくすることができるため、有利である。
【0097】
[第2実施形態]
ところで、クランク信号に、いわゆる欠歯部が発生するのであれば、次の第2実施形態のように構成することで対応することができる。
【0098】
尚、クランク信号の欠歯部とは、クランク軸の回転位置が1回転中における基準位置に来たときに、クランクパルスが所定の数だけ欠落する部分であり、クランクエッジの発生間隔(パルス間隔)が、前述の所定角度を所定数(N)倍した角度分の回転所要時間になる部分である。
【0099】
一例として、本第2実施形態では、欠歯部でのクランクパルスの欠落数が“2”であって、上記所定数(N)が“3”であるとする。
このため、図3に示すように、クランク信号には、10°CA毎(クランク軸が所定角度としての10°回転する毎)に、0番から33番までの34個のクランクエッジが発生し、34個目である33番のクランクエッジが発生してから次の0番のクランクエッジが発生するまでの30°CA分の時間が、欠歯部となる。また、以下では、欠歯部の終了に該当する0番のクランクエッジを、「欠歯終了エッジ」といい、欠歯部の開始に該当する33番のクランクエッジを、「欠歯開始エッジ」という。
【0100】
図4に示す第2実施形態の信号処理装置51は、第1実施形態の信号処理装置1と比較すると、下記〈1〉と〈2〉の点が異なっている。
〈1〉転送要求出力制御部17には、第5レジスタ53と、欠歯判定部55と、切替回路57とが設けられている。
【0101】
第5レジスタ53には、クランクエッジが発生する毎に、第1レジスタ29の更新前の値が記憶される。このため、第5レジスタ53には、今回のクランクエッジから見て1回前のクランクエッジが発生した際のリセット時の第1カウンタ値であって、第1レジスタ29に記憶されるリセット時の第1カウンタ値の1つ前の値(以下、「前回リセット時の第1カウンタ値」という)が記憶されることとなる。
【0102】
そして、欠歯判定部55は、クランクエッジが発生して第1レジスタ29と第5レジスタ53の各値が更新される毎に動作し、第1レジスタ29に記憶されたリセット時の第1カウンタ値(以下「C1」と記す)と、第5レジスタ53に記憶された前回リセット時の第1カウンタ値(以下「C0」と記す)とを比較することにより、今回発生したクランクエッジが欠歯終了エッジであるか否かを判定する。
【0103】
つまり、リセット時の第1カウンタ値は、一定時間Tsを分解能としてパルス間隔の長さを測定した値であり、パルス間隔の長さに比例するため、欠歯判定部55は、「C1」と「CO」との比率から、今回のクランクエッジが欠歯終了エッジであるか否か(換言すれば、今回のパルス間隔が欠歯部であるか否か)を判定する。
【0104】
具体的には、欠歯判定部55は、「C1/C0」の値が所定の欠歯判定値以上であれば、今回のクランクエッジが欠歯終了エッジであると判定するように構成することができる。尚、欠歯判定値は、クランク軸の回転速度変動を考慮して、10°CA分のパルス間隔と30°CA分のパルス間隔とが識別可能な値に設定しておけば良い。
【0105】
そして、切替回路57は、欠歯判定部55によって今回のクランクエッジが欠歯終了エッジであると判定されなければ、第2レジスタ31内の逓倍数を、そのまま、演算器33とDMA転送要求制御器41とに出力するが、欠歯判定部55によって今回のクランクエッジが欠歯終了エッジであると判定されると、第2レジスタ31内の逓倍数に上記所定数(N)を乗じた値を、補正後の逓倍数として、演算器33とDMA転送要求制御器41とに出力する。
【0106】
このため、欠歯判定部55によって今回のクランクエッジが欠歯終了エッジであると判定されたなら、演算器33は、第1レジスタ29内のリセット時の第1カウンタ値を、「逓倍数×N」で割った除算値を算出することとなる。つまり、演算器33により求められて第3レジスタ35に記憶される除算値が、「1/N」の値に補正される。また更に、クランクエッジの発生後にDMA転送要求制御器41から転送要求及び加算要求が出力される回数の制限値が、「逓倍数×N」の値に補正される。
【0107】
そして、上記欠歯判定部55及び切替回路57の動作は、クランクエッジが発生してから、第2カウンタ25が最初にカウントアップされるまで(即ち、第2カウンタ値が0から1に増加するまで)よりも前に、完了するようになっている。
【0108】
以上の構成により、クランク信号に欠歯部が発生した場合でも、その欠歯部に該当するパルス間隔においてバッファ7に記憶されたデータのなかから、逓倍タイミングデータを精度良く選択してRAM11に転送することができる。
【0109】
動作例を述べると、例えば、図3に示したように、欠歯部でのクランクパルスの欠落数が“2”であって、上記所定数(N)が“3”であり、また、A/D変換間隔の一定時間Tsが10μsであり、逓倍数が“4”であるとする。
【0110】
そして、クランク軸の回転速度変動がなく、クランクエッジが、100μs、300μs(欠歯部)、100μsの各間隔で発生したとする。
この場合、欠歯部直前の最初の区間(パルス間隔)については バッファ7に10個のデータが記憶されると共に、演算器33の演算結果が「10/4=2.5」となる。このため、第1実施形態において説明した「他の具体例」の場合と同様に、バッファ7に記憶された10個のデータのうち、アドレス「A0」,「A2」,「A5」,「A7」の各々に記憶された4個のデータがRAM11にDMA転送されることとなる。
【0111】
そして、次の欠歯部の区間については、バッファ7に30個のデータが記憶されると共に、演算器33の演算結果が「30/(4×3)=2.5」となる。このため、バッファ7に記憶された30個のデータのうち、アドレス「A0」,「A2」,「A5」,「A7」,「A10」,「A12」,「A15」,「A17」,「A20」,「A22」,「A25」,「A27」の各々に記憶された12個のデータがRAM11にDMA転送されることとなる。
【0112】
また、3つ目の区間については、最初の区間と同様に、バッファ7に10個のデータが記憶され、その10個のデータのうち、アドレス「A0」,「A2」,「A5」,「A7」の各々に記憶された4個のデータがRAM11にDMA転送されることとなる。
【0113】
このように、上記〈1〉の構成を設けることで、30°CA分の欠歯部についても、10°CA分のパルス間隔(非欠歯部)と同様に、逓倍角度(10°/4=2.5°)毎に発生したと考えられるデータを選択して、RAM11に転送することができる。
【0114】
尚、本第2実施形態の場合、バッファ7の記憶容量は、欠歯部に該当するパルス間隔に着目して、そのパルス間隔分の最大個数のデータを記憶可能な容量に設定しておけば良い。
【0115】
〈2〉また更に、信号処理装置51には、欠歯予測回路61が設けられている。
その欠歯予測回路61は、エッジ回数カウンタ63と、エッジ数メモリ65と、比較部67とを備えている。
【0116】
そして、エッジ回数カウンタ63は、クランクエッジによってカウントアップすると共に、欠歯判定部55により今回のクランクエッジが欠歯終了エッジであると判定されるとリセットされる。このため、エッジ回数カウンタ63の値は、クランクエッジが発生する毎に、図3の最下段に示す「エッジ番号」と同じ値に変化する。
【0117】
また、エッジ数メモリ65には、クランク信号において欠歯終了エッジから次の欠歯開始エッジまでの、クランクエッジの発生回数である欠歯間エッジ数(即ち、「360°CA分のクランクエッジの総数−1」であり、本実施形態では“33”)が記憶される。
【0118】
そして、比較部67は、エッジ回数カウンタ63の値と、エッジ数メモリ65に記憶されている欠歯間エッジ数とを比較して、両値が一致したことを検知すると、今回発生したクランクエッジが欠歯開始エッジであること(即ち、クランク信号の次のパルス間隔が欠歯部であり、次のクランクエッジが欠歯終了エッジであること)を示す欠歯予測信号を出力する。
【0119】
このため、比較部67からの上記欠歯予測信号をCPU45や他の制御装置等に供給することで、そのCPU45や他の制御装置等は、現在がクランク信号における欠歯部の期間であることを知ることができ、例えば、その欠歯部の期間に行うべき特定の処理を確実に行うことができるようになる。
【0120】
尚、エッジ数メモリ65は、固定値が書き込まれる書換不能な不揮発性メモリであっても良いが、CPU45によって欠歯間エッジ数が書き込まれるレジスタなどの書換可能なメモリであれば、種類が異なるクランクセンサに対応することができ、汎用性が高くなるという利点がある。
【0121】
また、上記第2実施形態では、欠歯判定部55が、欠歯部判定手段の一例に相当し、演算器33と切替回路57が、除算値設定手段の一例に相当している。
ところで、欠歯判定部55は、例えば、それと同様の判定機能を有する他の装置からの判定結果信号に基づいて、今回発生したクランクエッジが欠歯終了エッジであるか否かを判定するようになっていても良いが、本第2実施形態では、信号処理装置51に備えられている第1カウンタ21を利用して、クランクエッジが欠歯終了エッジであるかの判定を行うため、上記判定結果信号を入力するための回路(例えば通信回路等)を追加しなくても済むという利点がある。
【0122】
一方、上記第2実施形態において、演算器33が、除算値を前述のデータマップから求めるのであれば、欠歯判定部55によって今回のクランクエッジが欠歯終了エッジであると判定された場合に、除算器33がデータマップから求めた除算値を「1/N」にして第3レジスタ35に記憶する、補正演算部を設ければ良い。
【0123】
また、他の構成例として、例えば、前述のデータマップを、第1データマップとして、マップ記憶部に記憶しておくと共に、その第1データマップとは別のデータマップであって、様々な値の「リセット時の第1カウンタ値」の各々と、その各値を「逓倍数×N」で割った除算値とを、対応付けて記録した第2データマップも、マップ記憶部に記憶しておき、演算器33は、欠歯判定部55によって今回のクランクエッジが欠歯終了エッジであると判定された場合には、上記第2データマップの方から除算値を読み出して求めるようになっていても良い。つまり、演算器33は、欠歯判定部55の判定結果に応じて、使用するデータマップを切り替えるように構成しても良い。
【0124】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【0125】
例えば、第1及び第2実施形態の信号処理装置1,51に対して、下記〈a〉と〈b〉の変形を加えても良い。
〈a〉記憶制御部9のストア制御器23は、クランクエッジが発生してから、デジタルフィルタ5からのデータが最初に更新されたタイミング(図2の例においてデータD1が出力されたタイミング)では、今回のクランクエッジが発生する直前にバッファ7に記憶したデータ(図2の例において時刻t1の直前に発生したデータD0)を、バッファ7の先頭アドレス(A0)にコピーすると共に、今回のデータ(図2の例におけるデータD1)を、バッファ7の2番目のアドレス(A1)に記憶し、更に、第1カウンタ21に“2”をセットする。
【0126】
そして、その後、ストア制御器23は、次のクランクエッジが発生するまでは、前述した実施形態と同様に動作する。つまり、デジタルフィルタ5から新たなデータが出力される毎に、バッファ7のアドレスのうち、該バッファ7の先頭アドレスに第1カウンタ値を加えたアドレスへ、デジタルフィルタ5からのデータを記憶すると共に、そのデータ記憶を行う毎に、第1カウンタ21をカウントアップする。
【0127】
〈b〉第1レジスタ29には「リセット時の第1カウンタ値−1」の値が記憶される。
そして、上記〈a〉と〈b〉の変形を加えれば、例えば図2の例において、時刻t2でクランクエッジが発生したときには、バッファ7には、先頭アドレスから順に、D0,D1,D2,D3,D4の5個のデータが記憶されていると共に、第1カウンタ値が“5”になるが、上記〈b〉の変形により、第1レジスタ29には“4”が記憶されて、第2カウンタ25は“0”から“3”まで変化することとなるため、その5個のデータ(D0〜D4)のうち、最後に発生したD4を除く4個のデータ(D0〜D3)が、RAM11に転送するか否かの選択候補となり、その4個のデータ(D0〜D3)のうち、先頭アドレス(A0)に記憶されているデータ(D0)と、3番目のアドレス(A2)に記憶されているデータ(D2)とが、RAM11に転送されることとなる。
【0128】
つまり、クランクエッジの発生時にデジタルフィルタ5から出力されていたデータ(上記の例ではD0)が、必ず選択されてRAM11に転送されるようになる。
一方、回転信号としては、クランクセンサからの信号以外でも良い。例えば、エンジンのカム軸は、クランク軸と連動して回転するため、回転信号としては、そのカム軸の回転に応じてパルスを発生させるカムセンサ(カム軸センサ)からの信号であっても良い。
【0129】
また、回転軸も、クランク軸やカム軸に限らず、他の回転する軸でも良く、例えば、モータの回転軸や発電機の回転軸であっても良い。
また、バッファ7とRAM11との各々は、物理的に別々のメモリであっても良いし、物理的に同一のメモリにおける異なる記憶領域であっても良い。
【符号の説明】
【0130】
1,51…信号処理装置、3…A/D変換器、5…デジタルフィルタ、7…バッファ
9…記憶制御部、13…DMAコントローラ、15…ロードアドレス切替部
17…転送要求出力制御部、21…第1カウンタ、23…ストア制御器
25…第2カウンタ、27…ロードアドレス制御器、29…第1レジスタ
31…第2レジスタ、33…演算器、35…第3レジスタ、37…加算器
39…第4レジスタ、41…DMA転送要求制御器、53…第5レジスタ
55…欠歯判定部、57…切替回路、61…欠歯予測回路、63…エッジ回数カウンタ
65…エッジ数メモリ、67…比較部

【特許請求の範囲】
【請求項1】
回転軸が所定角度回転する毎に、そのことを示すタイミングエッジが発生する回転信号と、該回転信号に前記タイミングエッジが発生してから該タイミングエッジが次に発生するまでのパルス間隔の最小時間よりも短い一定時間毎に所定の機器により発生される検出対象のデータとが、入力される信号処理装置であって、
所定回数分の前記パルス間隔である単位間隔毎に、その単位間隔において発生した前記データを、該データの発生順が識別可能に第1メモリに記憶すると共に、その単位間隔において前記第1メモリに記憶した前記データの数であるデータ数を計数する記憶制御手段と、
前記単位間隔が終了する毎に動作し、今回終了した前記単位間隔について前記記憶制御手段により計数された前記データ数を、所定の逓倍数を前記所定回数倍した値で割った除算値を求める除算値設定手段と、
前記単位間隔が終了する毎に動作し、前記除算値設定手段により求められた前記除算値を用いて、前記記憶制御手段により前記第1メモリに記憶された前記単位間隔分のデータのなかから、前記所定角度を前記逓倍数で割った角度だけ前記回転軸が回転する毎に発生されたデータである逓倍タイミングデータを選択すると共に、その選択した逓倍タイミングデータを前記第1メモリから第2メモリに転送する転送制御手段と、
を備えていることを特徴とする信号処理装置。
【請求項2】
請求項1に記載の信号処理装置において、
前記転送制御手段は、
前記記憶制御手段により前記第1メモリに記憶された前記単位間隔分のデータのなかから、1番目に発生したデータと、前記除算値を自然数倍した値を整数化処理した整数値よりも1だけ大きい値の順番で発生したデータを、前記逓倍タイミングデータとして選択するように構成されていること、
を特徴とする信号処理装置。
【請求項3】
請求項2に記載の信号処理装置において、
前記整数化処理は、切り捨て処理であること、
を特徴とする信号処理装置。
【請求項4】
請求項1ないし請求項3の何れか1項に記載の信号処理装置において、
前記所定回数は、1回であり、
前記回転信号には、前記回転軸の回転位置が基準位置に来たときに、前記タイミングエッジの発生間隔が、前記所定角度の所定数倍の角度だけ前記回転軸が回転するのに要する時間になる欠歯部が発生するようになっており、
前記回転信号に前記タイミングエッジが発生する毎に、今回発生した前記タイミングエッジが前記欠歯部の終了に該当する欠歯終了エッジであるか否かを判定する欠歯部判定手段を備え、
前記除算値設定手段は、前記欠歯部判定手段により前記タイミングエッジが前記欠歯終了エッジであると判定された場合には、前記記憶制御手段により計数された前記データ数を、前記逓倍数を前記所定数倍した値で割った除算値を求めること、
を特徴とする信号処理装置。
【請求項5】
請求項4に記載の信号処理装置において、
前記欠歯部判定手段は、
前記回転信号に前記タイミングエッジが発生する毎に動作し、今回終了した前記パルス間隔について前記記憶制御手段により計数された前記データ数と、前回終了した前記パルス間隔について前記記憶制御手段により計数された前記データ数とを比較することにより、今回発生した前記タイミングエッジが前記欠歯終了エッジであるか否かを判定すること、
を特徴とする信号処理装置。
【請求項6】
請求項1ないし請求項5の何れか1項に記載の信号処理装置において、
前記所定回数は、1回であること、
を特徴とする信号処理装置。
【請求項7】
請求項1ないし請求項6の何れか1項に記載の信号処理装置において、
前記回転軸は、エンジンのクランク軸であること、
を特徴とする信号処理装置。

【図1】
image rotate

【図3】
image rotate

【図4】
image rotate

【図2】
image rotate


【公開番号】特開2013−104337(P2013−104337A)
【公開日】平成25年5月30日(2013.5.30)
【国際特許分類】
【出願番号】特願2011−247722(P2011−247722)
【出願日】平成23年11月11日(2011.11.11)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】