(57)【要約】【課題】ノックセンサ信号のＡ／Ｄ変換精度を保障し、正確なノック判定を実現可能なノックセンサ信号処理装置を提供する。【解決手段】ノックセンサから出力される信号（ノックセンサ信号）を、少なくともエンジンの各気筒毎のノック判定区間においてＡ／Ｄ変換器に一定時間毎にＡ／Ｄ変換させ、そのＡ／Ｄ変換値であるセンサＡ／Ｄ値に対して、ノック判定のためのデジタルフィルタ処理を実施する信号処理装置では、前回の気筒のノック判定区間が終了した後、次の気筒についてのＡ／Ｄ変換器によるノックセンサ信号のＡ／Ｄ変換を開始するまでの間に、Ａ／Ｄ変換器に既知の基準電圧（基準Ｂ，基準Ａ，基準Ｃ）を順次Ａ／Ｄ変換させ、その基準電圧のＡ／Ｄ変換値から、センサＡ／Ｄ値を補正するための補正係数を算出する。そして、デジタルフィルタ処理対象の各センサＡ／Ｄ値を上記補正係数を用いて補正する。【選択図】  図４
2007171142.tif 000002
【特許請求の範囲】
【請求項１】
アナログ信号をＡ／Ｄ変換するＡ／Ｄ変換器と、
エンジンのノッキングを検出するためのノックセンサから出力されるアナログ信号（以下、ノックセンサ信号という）を、前記Ａ／Ｄ変換器に一定時間毎にＡ／Ｄ変換させるＡ／Ｄ変換制御手段と、
前記Ａ／Ｄ変換器に既知の基準電圧をＡ／Ｄ変換させ、その基準電圧のＡ／Ｄ変換値から、前記Ａ／Ｄ変換器による前記ノックセンサ信号のＡ／Ｄ変換値（以下、センサＡ／Ｄ値という）を補正するための補正係数を算出する補正値算出手段と、
前記センサＡ／Ｄ値を、前記補正値算出手段により算出された補正係数を用いて補正する補正手段と、
前記補正手段により補正されたセンサＡ／Ｄ値に対してデジタルフィルタ処理を実施するフィルタ手段とを備え、
前記Ａ／Ｄ変換制御手段は、少なくとも前記エンジンの各気筒毎のノック判定区間において、前記ノックセンサ信号を前記Ａ／Ｄ変換器に一定時間毎にＡ／Ｄ変換させ、
前記補正値算出手段は、前回の気筒のノック判定区間が終了した後、次の気筒についての前記Ａ／Ｄ変換器による前記ノックセンサ信号の一定時間毎のＡ／Ｄ変換が開始されるまでの間に動作すること、
を特徴とするノックセンサ信号処理装置。
【請求項２】
請求項１に記載のノックセンサ信号処理装置において、
前記補正値算出手段は、前回の気筒のノック判定区間が終了した後、次の気筒についての前記Ａ／Ｄ変換器による前記ノックセンサ信号の一定時間毎のＡ／Ｄ変換が開始される直前に動作すること、
を特徴とするノックセンサ信号処理装置。
【請求項３】
請求項１に記載のノックセンサ信号処理装置において、
前記補正値算出手段は、前回の気筒のノック判定区間が終了した直後に動作すること、
を特徴とするノックセンサ信号処理装置。
【請求項４】
請求項１ないし請求項３の何れか１項に記載のノックセンサ信号処理装置において、
前記補正値算出手段は、前記エンジンの１点火につき１回は動作すること、
を特徴とするノックセンサ信号処理装置。
【請求項５】
請求項１ないし請求項３の何れか１項に記載のノックセンサ信号処理装置において、
前記補正値算出手段は、前記エンジンのｎ回（ｎは２以上の整数）の点火につき１回動作すること、
を特徴とするノックセンサ信号処理装置。
【請求項６】
請求項５に記載のノックセンサ信号処理装置において、
前記ｎは、前記エンジンの回転数に応じて、該回転数が高い場合ほど大きい値に設定されること、
を特徴とするノックセンサ信号処理装置。
【請求項７】
請求項１ないし請求項６の何れか１項に記載のノックセンサ信号処理装置において、
前記補正手段は、１回のノック判定区間におけるセンサＡ／Ｄ値に対しては、補正係数を変更することなく、同じ補正係数を用いて補正すること、
を特徴とするノックセンサ信号処理装置。
【請求項８】
請求項１ないし請求項７の何れか１項に記載のノックセンサ信号処理装置において、
前記基準電圧は、前記ノックセンサ信号の振幅が大きい場合よりも小さい場合の方が、前記補正手段により補正されたセンサＡ／Ｄ値の精度が良くなる電圧に設定されていること、
を特徴とするノックセンサ信号処理装置。
【請求項９】
請求項８に記載のノックセンサ信号処理装置において、
前記基準電圧は、前記Ａ／Ｄ変換器の電源電圧の高電位側と低電位側との各々ではない電圧であって、その高電位側と低電位側との間の電圧であること、
を特徴とするノックセンサ信号処理装置。
【請求項１０】
請求項８又は請求項９に記載のノックセンサ信号処理装置において、
前記基準電圧は２つ以上あり、そのうちの１つは、前記ノックセンサ信号の中心電圧であること、
を特徴とするノックセンサ信号処理装置。
【請求項１１】
請求項１ないし請求項１０の何れか１項に記載のノックセンサ信号処理装置において、
当該ノックセンサ信号処理装置は、前記Ａ／Ｄ変換器、前記Ａ／Ｄ変換制御手段、前記補正値算出手段、及び前記補正手段を備えた第１装置と、前記フィルタ手段を備えた第２装置とからなると共に、前記補正手段により補正されたセンサＡ／Ｄ値が前記第１装置から前記第２装置へ供給されるようになっており、
更に、前記補正値算出手段が動作を開始してから前記補正係数の算出を完了する前に、前記第２装置から前記第１装置へ前記センサＡ／Ｄ値を要求する要求コマンドが出力されても、前記Ａ／Ｄ変換制御手段は、前記補正係数の算出が完了するまでは、前記Ａ／Ｄ変換器に前記ノックセンサ信号のＡ／Ｄ変換を開始させないこと、
を特徴とするノックセンサ信号処理装置。
【請求項１２】
請求項１ないし請求項１０の何れか１項に記載のノックセンサ信号処理装置において、
当該ノックセンサ信号処理装置は、前記Ａ／Ｄ変換器、前記Ａ／Ｄ変換制御手段、前記補正値算出手段、及び前記補正手段を備えた第１装置と、前記フィルタ手段を備えた第２装置とからなると共に、前記補正手段により補正されたセンサＡ／Ｄ値が前記第１装置から前記第２装置へ供給されるようになっており、
更に、前記補正値算出手段が動作を開始してから前記補正係数の算出を完了する前に、前記第２装置から前記第１装置へ前記センサＡ／Ｄ値を要求する要求コマンドが出力された場合には、前記補正値算出手段が動作を中断すると共に、前記Ａ／Ｄ変換制御手段が前記Ａ／Ｄ変換器による前記ノックセンサ信号の一定時間毎のＡ／Ｄ変換を開始し、前記補正手段は前記補正値算出手段により前回算出された補正係数を用いて前記センサＡ／Ｄ値を補正すること、
を特徴とするノックセンサ信号処理装置。
【請求項１３】
請求項１ないし請求項１２の何れか１項に記載のノックセンサ信号処理装置において、
前記Ａ／Ｄ変換器には、ゲインがＭ倍（Ｍは正の数）のアンプを通してＡ／Ｄ変換対象のアナログ信号が入力されるようになっており、
前記補正値算出手段は、前記アンプに入力した際に該アンプの出力電圧が理論上前記基準電圧になると考えられる電圧を生成し、その電圧を前記アンプを介して前記Ａ／Ｄ変換器に入力させることにより、前記基準電圧のＡ／Ｄ変換を実施すること、
を特徴とするノックセンサ信号処理装置。
【請求項１４】
請求項１ないし請求項１３の何れか１項に記載のノックセンサ信号処理装置において、
当該ノックセンサ信号処理装置は、前記Ａ／Ｄ変換器、前記Ａ／Ｄ変換制御手段、前記補正値算出手段、及び前記補正手段を備えた第１装置と、前記フィルタ手段を備えた第２装置とからなると共に、前記補正手段により補正されたセンサＡ／Ｄ値が前記第１装置から前記第２装置へ供給されるようになっており、
更に、前記第２装置から前記第１装置へ出力されるコマンドであって、複数の入力チャンネルのうちの何れの入力チャンネルに入力されるアナログ信号を前記Ａ／Ｄ変換器にＡ／Ｄ変換させるかと、前記Ａ／Ｄ変換器に入力されるアナログ信号を増幅するアンプのゲインとの少なくとも一方を指示するコマンドが、前記第２装置から前記第１装置へ出力されることで、前記補正値算出手段が起動すること、
を特徴とするノックセンサ信号処理装置。
【請求項１５】
請求項１ないし請求項１４の何れか１項に記載のノックセンサ信号処理装置において、
前記補正値算出手段は、前記Ａ／Ｄ変換器に前記基準電圧を複数回Ａ／Ｄ変換させると共に、その複数回のＡ／Ｄ変換値を平均化した値を用いて前記補正係数を算出すること、
を特徴とするノックセンサ信号処理装置。
【請求項１６】
請求項１ないし請求項１５の何れか１項に記載のノックセンサ信号処理装置において、
前記補正手段は、前記補正値算出手段が算出した複数の補正係数を平均化した値を用いて、前記センサＡ／Ｄ値を補正すること、
を特徴とするノックセンサ信号処理装置。
【請求項１７】
請求項１ないし請求項１６の何れか１項に記載のノックセンサ信号処理装置において、
前記ノックセンサ信号の中心電圧は、一定電圧を抵抗で分圧した電圧が入力されたバッファ回路の出力電圧であり、
前記補正手段は、前記Ａ／Ｄ変換器によるセンサＡ／Ｄ値を前記ノックセンサ信号の振幅を表す値に変換するために、前記バッファ回路の出力電圧を前記Ａ／Ｄ変換器でＡ／Ｄ変換した値を前記センサＡ／Ｄ値から減算する処理を行い、その減算後のセンサＡ／Ｄ値を前記補正係数を用いて補正すること、
を特徴とするノックセンサ信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノックセンサから出力されるノックセンサ信号をＡ／Ｄ変換してデジタルフィルタ処理を行うノックセンサ信号処理装置に関するものである。
【背景技術】
【０００２】
従来より、自動車の内燃機関型エンジンを制御する装置では、各気筒毎のノック判定区間において、ノックセンサから出力されるアナログのノックセンサ信号を一定時間毎にＡ／Ｄ変換すると共に、そのノックセンサ信号のＡ／Ｄ変換値（以下、センサＡ／Ｄ値という）に対してデジタルフィルタ処理を行い、そのフィルタ処理結果を用いてノッキングの有無を判定（いわゆるノック判定）している（例えば、特許文献１参照）。
【０００３】
また、このようにノックセンサ信号をＡ／Ｄ変換してデジタルフィルタ処理を行う信号処理装置の形態としては、例えば、Ａ／Ｄ変換器を有した第１装置と、その第１装置と通信ラインを介し一定時間毎に通信してＡ／Ｄ変換器によるセンサＡ／Ｄ値を順次取得し、その取得した時系列のセンサＡ／Ｄ値に対しデジタルフィルタ処理を行う第２装置とからなり、第２装置が、第１装置へ複数種類のコマンドのうちのＡ／Ｄ変換要求コマンドを一定時間毎に送信し、第１装置が、そのＡ／Ｄ変換要求コマンドを受信する毎に、Ａ／Ｄ変換器によるセンサＡ／Ｄ値を第２装置へ返送することで、第１装置から第２装置へ一定時間毎のセンサＡ／Ｄ値が転送される、といった形態が考えられる（例えば、本願出願人による特願２００４−３０１６６７号）。
【０００４】
また、エンジンの複数の気筒のうち、第１気筒群と第２気筒群との各々について、ノックセンサを設け、その複数のノックセンサを切り替えて用いることも行われている（例えば、特許文献２参照）。
【０００５】
一方、この種のノックセンサ信号処理装置に用いられるＡ／Ｄ変換器としては、高速で高分解能なＡ／Ｄ変換器が好ましい。そして、そのようなＡ／Ｄ変換器としては、２つのパルス信号の位相差をデジタルデータに変換するパルス位相差符号化回路を用いたものであって、そのパルス位相差符号化回路を構成するパルス周回回路（パルスを周回させる複数の反転回路からなるリングディレイライン）の電源電圧として、Ａ／Ｄ変換対象の電圧信号を入力するようにした構成のＡ／Ｄ変換器がある（例えば特許文献３，４参照）。
【特許文献１】特開２００４−３０９２６７号公報
【特許文献２】特開平９−６０５６８号公報
【特許文献３】特開平５−２５９９０７号公報
【特許文献４】特開２００５−２２３８１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、特許文献３，４に記載されているようなパルス位相差符号化回路を用いたＡ／Ｄ変換器は、高速且つ高分解能であるが、動作環境温度によってＡ／Ｄ変換特性が変化し易い。これは、パルス周回回路を構成する反転回路の動作速度と電源電圧との関係が、温度によって変化するためである。また、特許文献４の図１に示されているように、Ａ／Ｄ変換器への入力電圧をアンプにより基準電圧ＶＲを中心にして増幅する構成の場合、基準電圧ＶＲを作り出す電源電圧が変動して、その基準電圧ＶＲが変動しても、Ａ／Ｄ変換特性が変化してしまう。
【０００７】
そして、ノックセンサ信号処理装置において、Ａ／Ｄ変換器のＡ／Ｄ変換特性が変化すると、デジタルフィルタ処理対象のセンサＡ／Ｄ値の精度が悪化し、延いては、正確なノック判定を行うことが困難になる。
【０００８】
そこで、本発明は、ノックセンサ信号のＡ／Ｄ変換精度を保障し、正確なノック判定を実現可能なノックセンサ信号処理装置の提供を目的としている。
【課題を解決するための手段】
【０００９】
上記目的を達成するためになされた請求項１のノックセンサ信号処理装置では、Ａ／Ｄ変換制御手段が、少なくともエンジンの各気筒毎のノック判定区間（ノッキングの有無を判定する対象の区間）において、ノックセンサ信号をＡ／Ｄ変換器に一定時間毎にＡ／Ｄ変換させる。
【００１０】
また、補正値算出手段が、前回の気筒のノック判定区間が終了した後、次の気筒についてのＡ／Ｄ変換器によるノックセンサ信号の一定時間毎のＡ／Ｄ変換が開始されるまでの間に動作して、Ａ／Ｄ変換器に既知の基準電圧をＡ／Ｄ変換させ、その基準電圧のＡ／Ｄ変換値から、Ａ／Ｄ変換器によるノックセンサ信号のＡ／Ｄ変換値であるセンサＡ／Ｄ値を補正するための補正係数を算出する。例えば、補正値算出手段は、２つの異なる基準電圧Ｖａ，ＶｂをＡ／Ｄ変換器にそれぞれＡ／Ｄ変換させ、その基準電圧Ｖａ，ＶｂのＡ／Ｄ変換値の理論値Ｘａ，Ｘｂ同士の差と、その基準電圧Ｖａ，Ｖｂの実際のＡ／Ｄ変換値Ｙａ，Ｙｂ同士の差との比「（Ｘａ−Ｘｂ）／（Ｙａ−Ｔｂ）」を、補正係数として算出するように構成することができる。
【００１１】
そして、補正手段が、Ａ／Ｄ変換器によるセンサＡ／Ｄ値を、補正値算出手段により算出された補正係数を用いて補正し、フィルタ手段が、その補正手段により補正されたセンサＡ／Ｄ値に対してデジタルフィルタ処理を実施する。
【００１２】
このようなノックセンサ信号処理装置によれば、ノックセンサ信号の取り込み（即ち、一定時間毎のＡ／Ｄ変換）を開始する前に、Ａ／Ｄ変換精度を確保するための補正係数を学習演算して、その補正係数によりデジタルフィルタ処理対象のセンサＡ／Ｄ値を補正するようにしているため、ノックセンサ信号の取り込みに影響を及ぼすことなく、且つ、温度や電源電圧が変化した場合においても、ノックセンサ信号の良好なＡ／Ｄ変換精度を確保することができる。このため、フィルタ手段によるデジタルフィルタ処理結果を用いてノッキングの有無を判定することにより、正確なノック判定が可能となる。
【００１３】
ところで、補正値算出手段は、請求項２に記載のように、前回の気筒のノック判定区間が終了した後、次の気筒についてのＡ／Ｄ変換器によるノックセンサ信号の一定時間毎のＡ／Ｄ変換が開始される直前に動作するように構成することができる。
【００１４】
そして、このように構成すれば、前回の気筒のノック判定区間が終了してから次の気筒についてのノックセンサ信号の取り込みを開始するまでに時間がある場合でも、次の気筒についてのノックセンサ信号の取り込み開始直前に、最新の補正係数を算出することとなるため、次の気筒のノック判定区間におけるデジタルフィルタ処理対象のセンサＡ／Ｄ値の精度を、一層確実に保障することができるようになる。
【００１５】
また、補正値算出手段は、請求項３に記載のように、前回の気筒のノック判定区間が終了した直後に動作するように構成することもできる。
そして、このように構成すれば、エンジンの回転変動などにより、前回の気筒のノック判定区間が終了してから、急に次の気筒についてのノックセンサ信号の取り込みを開始する場合でも、確実に最新の補正係数を算出して適切な補正を実施することができるようになる。
【００１６】
一方、請求項４に記載のように、補正値算出手段は、エンジンの１点火につき１回は動作するように構成することができる。
そして、このように構成すれば、温度や電源電圧変動などの影響を最小限にすることができる。例えば、エンジンの点火毎にオルタネータによる発電電圧の変動に起因した電源電圧の変動があったとしても、そのような電圧変動によってデジタルフィルタ処理対象のセンサＡ／Ｄ値の精度が悪化してしまうことを確実に防止することができる。
【００１７】
また、請求項５に記載のように、補正値算出手段は、エンジンのｎ回（ｎは２以上の整数）の点火につき１回動作するように構成することもできる。
そして、この構成によれば、補正係数を算出する処理の実施頻度を最小限にしつつ、温度変化の影響を回避することができる。例えば、エンジン始動時のように温度変化が大きいと考えられる場合には上記ｎを小さくし、エンジン始動から一定時間が経過して温度が安定していると考えられる場合には上記ｎを大きくする、といった構成が考えられる。
【００１８】
また、例えば請求項６に記載のように、上記ｎは、エンジンの回転数に応じて、回転数が高い場合ほど大きい値に設定するように構成することもできる。つまり、高回転時は、ノック判定区間の終了から次の気筒のノック判定区間までの時間が短いため、上記ｎを大きい値にして補正係数を算出する処理の実施頻度を小さくするのである。また、単位時間当たりで考えた場合、例えば、エンジン回転数が５００ｒｐｍの場合に１点火につき１回の割合で補正係数の算出を実施するのならば、エンジン回転数が５０００ｒｐｍの場合には、１０点火につき１回の割合で補正係数の算出を実施するように構成することで、補正係数の更新周期を一定にすることができ、延いては、温度変化に対する補正性能を一定にすることができる。
【００１９】
一方、請求項７に記載のように、補正手段は、１回のノック判定区間におけるセンサＡ／Ｄ値に対しては、補正係数を変更することなく、同じ補正係数を用いて補正するように構成することが好ましい。補正後のセンサＡ／Ｄ値に対してデジタルフィルタ処理を行うため、途中で補正係数を変えてしまうと、フィルタ処理結果が連続しなくなるためである。
【００２０】
また、補正係数を算出するための基準電圧は、請求項８に記載のように、ノックセンサ信号の振幅が大きい場合よりも小さい場合の方が、補正手段により補正されたセンサＡ／Ｄ値の精度が良くなる電圧に設定することが好ましい。ノック判定をより正確に行うためには、振幅が小さい場合のノックセンサ信号の特徴をとらえる必要があるからである。
【００２１】
具体的には、請求項９に記載のように、基準電圧は、Ａ／Ｄ変換器の電源電圧の高電位側と低電位側との各々ではない電圧であって、その高電位側と低電位側との間の電圧であることが好ましい。例えば、Ａ／Ｄ変換器の電源電圧が５Ｖならば、一般に、ノックセンサ信号は、０〜５Ｖの範囲内で変化すると共に、その中心電圧（ノックセンサ信号の波形の中心となる電圧）が２．５Ｖに設定されるが、そのような場合には、補正係数を算出するための基準電圧を、０Ｖと５Ｖとの何れでもない１．２５Ｖや３．７５Ｖに設定することで、中心電圧からの振幅が小さい小信号に対するＡ／Ｄ変換精度（補正精度）を良好にすることができる。
【００２２】
また、基準電圧を２つ以上設ける場合には、請求項１０に記載のように、その基準電圧のうちの１つは、ノックセンサ信号の中心電圧に設定すると良い。中心電圧付近のノックセンサ信号について、Ａ／Ｄ変換値を精度良く補正することができるようになるからである。
【００２３】
次に、請求項１１のノックセンサ信号処理装置は、請求項１〜１０のノックセンサ信号処理装置において、前記Ａ／Ｄ変換器、Ａ／Ｄ変換制御手段、補正値算出手段、及び補正手段を備えた第１装置と、前記フィルタ手段を備えた第２装置とからなり、補正手段により補正されたセンサＡ／Ｄ値が第１装置から第２装置へ供給されるようになっている。
【００２４】
そして更に、このノックセンサ信号処理装置において、Ａ／Ｄ変換制御手段は、補正値算出手段が動作を開始してから補正係数の算出を完了する前に、第２装置から第１装置へセンサＡ／Ｄ値を要求する要求コマンドが出力されても、補正値算出手段による補正係数の算出が完了するまでは、Ａ／Ｄ変換器にノックセンサ信号のＡ／Ｄ変換を開始させないようになっている。
【００２５】
このような構成によれば、例えば、エンジンの急加速などにより、前回の気筒のノック判定区間が終了してから、急に次の気筒についてのノックセンサ信号の取り込みを開始するべく第２装置から第１装置へ上記要求コマンドが出力されたとしても、補正係数を確実に求めた後で、通常のノックセンサ信号のＡ／Ｄ変換を開始することとなり、センサＡ／Ｄ値を適切に補正して、そのセンサＡ／Ｄ値の精度を確保することができる。
【００２６】
また、請求項１２のノックセンサ信号処理装置は、請求項１〜１０のノックセンサ信号処理装置において、請求項１１のノックセンサ信号処理装置と同様の第１装置及び第２装置からなっている。
【００２７】
そして、このノックセンサ信号処理装置では、補正値算出手段が動作を開始してから補正係数の算出を完了する前に、第２装置から第１装置へセンサＡ／Ｄ値を要求する要求コマンドが出力された場合には、補正値算出手段が動作を中断すると共に、Ａ／Ｄ変換制御手段がＡ／Ｄ変換器によるノックセンサ信号の一定時間毎のＡ／Ｄ変換を開始し、補正手段は補正値算出手段により前回算出された補正係数を用いてセンサＡ／Ｄ値を補正するようになっている。
【００２８】
このような構成によれば、例えば、エンジンの急加速などにより、前回の気筒のノック判定区間が終了してから、急に次の気筒についてのノックセンサ信号の取り込みを開始するべく第２装置から第１装置へ上記要求コマンドが出力された場合には、Ａ／Ｄ変換器によるノックセンサ信号のＡ／Ｄ変換を速やかに開始して、第１装置から第２装置へのセンサＡ／Ｄ値の供給を開始することができる。尚、急加速時などは限定的であるため、センサＡ／Ｄ値の補正に前回の補正係数を用いても影響は少ないと考えられる。
【００２９】
次に、請求項１３のノックセンサ信号処理装置では、請求項１〜１２のノックセンサ信号処理装置において、Ａ／Ｄ変換器には、ゲインがＭ倍（Ｍは正の数）のアンプを通してＡ／Ｄ変換対象のアナログ信号が入力されるようになっている。そして、補正値算出手段は、前記アンプに入力した際に該アンプの出力電圧が理論上前記基準電圧になると考えられる電圧を生成し、その電圧を前記アンプを介してＡ／Ｄ変換器に入力させることにより、前記基準電圧のＡ／Ｄ変換を実施するようになっている。
【００３０】
このような構成によれば、センサＡ／Ｄ値の補正を、アンプのゲインまで含めて行うことができる。補正係数として、アンプのゲインのばらつきまでも補正可能なものを算出することができるからである。
【００３１】
次に、請求項１４のノックセンサ信号処理装置は、請求項１〜１３のノックセンサ信号処理装置において、前記Ａ／Ｄ変換器、Ａ／Ｄ変換制御手段、補正値算出手段、及び補正手段を備えた第１装置と、前記フィルタ手段を備えた第２装置とからなり、補正手段により補正されたセンサＡ／Ｄ値が第１装置から第２装置へ供給されるようになっている。
【００３２】
そして更に、このノックセンサ信号処理装置においては、第２装置から第１装置へ出力されるコマンドであって、複数の入力チャンネルのうちの何れの入力チャンネルに入力されるアナログ信号をＡ／Ｄ変換器にＡ／Ｄ変換させるかと、Ａ／Ｄ変換器に入力されるアナログ信号を増幅するアンプのゲインとの少なくとも一方を指示するコマンドが、第２装置から第１装置へ出力されることで、補正値算出手段が起動するようになっている。
【００３３】
このような構成によれば、第２装置から第１装置へのコマンドによって補正値算出手段を動作させる形態をとった場合に、その補正値算出手段の起動を指示するための特別なコマンドを用意する必要がなく有利である。
【００３４】
一方、請求項１５に記載のように、補正値算出手段は、Ａ／Ｄ変換器に前記基準電圧を複数回Ａ／Ｄ変換させると共に、その複数回のＡ／Ｄ変換値を平均化した値を用いて補正係数を算出するように構成することができる。
【００３５】
そして、このような構成によれば、基準電圧のＡ／Ｄ変換時において、Ａ／Ｄ変換器への入力電圧にノイズが乗ったとしても、そのノイズの影響（即ち、算出される補正係数への影響）を小さく抑えることができ、延いては、センサＡ／Ｄ値の補正精度を向上させることができる。
【００３６】
また、請求項１６に記載のように、補正手段は、補正値算出手段が算出した複数の補正係数を平均化した値を用いて、センサＡ／Ｄ値を補正するように構成することができる。つまり、算出された複数の補正係数を平均化した値を、実際の補正係数として使用するのである。そして、このような構成によっても、請求項１５の構成と同様の効果を得ることができる。
【００３７】
次に、請求項１７のノックセンサ信号処理装置では、請求項１〜１６のノックセンサ信号処理装置において、ノックセンサ信号の中心電圧は、一定電圧を抵抗で分圧した電圧が入力されたバッファ回路の出力電圧となっている。
【００３８】
そして、補正手段は、Ａ／Ｄ変換器によるセンサＡ／Ｄ値をノックセンサ信号の振幅を表す値に変換するために、前記バッファ回路の出力電圧をＡ／Ｄ変換器でＡ／Ｄ変換した値をセンサＡ／Ｄ値から減算する処理を行い、その減算後のセンサＡ／Ｄ値を前記補正係数を用いて補正するようになっている。
【００３９】
このような構成によれば、センサＡ／Ｄ値をノックセンサ信号の振幅を表す値に変換する処理（即ち、センサＡ／Ｄ値の基準値変換）を、上記バッファ回路の特性（例えばオフセット電圧など）に影響されずに行うことができる。
【発明を実施するための最良の形態】
【００４０】
以下に、本発明が適用された実施形態のノックセンサ信号処理装置について説明する。尚、本実施形態のノックセンサ信号処理装置（以下単に、信号処理装置という）は、自動車に搭載される例えばＶ型６気筒エンジンのノック判定に用いられるものである。
［第１実施形態］
まず図１に示すように、第１実施形態の信号処理装置は、第１装置としての入力ＩＣ１１と、第２装置としての処理ＩＣ１３とからなり、その入力ＩＣ１１と処理ＩＣ１３は、後述する５本の信号線１〜５によって通信可能に接続されている。
【００４１】
入力ＩＣ１１には、処理ＩＣ１３と通信するための通信部１５と、Ａ／Ｄ変換器１７と、複数の入力チャンネルｃｈ０，ｃｈ１，…のうちの何れか１つを選択して、その選択した入力チャンネルに入力されているアナログ信号を出力するマルチプレクサ（ＭＰＸ）１９と、マルチプレクサ１９の出力を所定のゲインで増幅してＡ／Ｄ変換器１７にＡ／Ｄ変換対象として入力させるアンプ（Ａｍｐ）２１と、Ａ／Ｄ変換器１７の起動間隔（即ちＡ／Ｄ変換間隔）及びＩＣ１１，１３間の通信間隔を決定する一定時間Ｔｃ毎（本実施形態では１０μｓ毎）のタイミング信号を生成して出力するタイマ（Ｔｉｍｅｒ）２３と、それらを制御する制御部２５とが備えられている。尚、Ａ／Ｄ変換器１７は、パルス位相差符号化回路を用いたＡ／Ｄ変換器である。
【００４２】
そして、マルチプレクサ１９の入力チャンネルｃｈ０，ｃｈ１，…のうち、チャンネルｃｈ０には、エンジンにおける右バンクの各気筒（第１気筒＃１、第３気筒＃３、及び第５気筒＃５）のノッキングを検出するために設けられた第１ノックセンサ２７からのノックセンサ信号が入力回路５１を介して入力され、チャンネルｃｈ１には、エンジンにおける左バンクの各気筒（第２気筒＃２、第４気筒＃４、及び第６気筒＃６）のノッキングを検出するために設けられた第２ノックセンサ２９からのノックセンサ信号が入力回路５３を介して入力される。尚、この例において、ノックセンサ２７，２９は、エンジンの振動に応じたアナログ信号を出力する振動式のセンサである。
【００４３】
更に、入力ＩＣ１１には、当該ＩＣ１１の電源電圧（Ａ／Ｄ変換器１７をはじめとする各部への電源電圧であり、本実施形態では５Ｖ）を分圧する４つの直列な抵抗Ｒ１〜Ｒ４が備えられており、その抵抗Ｒ１〜Ｒ４の抵抗値は全て同じ値に設定されている。そして、抵抗Ｒ１と抵抗Ｒ２との接続点に生じる３．７５（＝５×３／４）Ｖの電圧が基準電圧Ａ（以下、基準Ａという）として、また、抵抗Ｒ２と抵抗Ｒ３との接続点に生じる２．５（＝５×１／２）Ｖの電圧が基準電圧Ｂ（以下、基準Ｂという）として、また、抵抗Ｒ３と抵抗Ｒ４との接続点に生じる１．２５（＝５×１／４）Ｖの電圧が基準電圧Ｃ（以下、基準Ｃという）として、マルチプレクサ１９の他の入力チャンネルにそれぞれ入力されている。
【００４４】
ここで、入力回路５１，５３は同じ構成のものであるため、入力回路５３の方を例に挙げて説明すると、入力回路５３は、一端が電源電圧（５Ｖ）に接続され、他端がノックセンサ２９に接続されたプルアップ用の抵抗５５と、その抵抗５５のノックセンサ２９側の端部に一端が接続された抵抗５６と、その抵抗５６の他端に一端が接続された微分用のコンデンサ５７と、そのコンデンサ５７の他端に一端が接続された抵抗５８と、その抵抗５８の他端に一端が接続された抵抗５９とから構成されている。そして、抵抗５８と抵抗５９との接続点からマルチプレクサ１９の入力チャンネルへ、ノックセンサ信号が入力されるようになっている。更に、入力ＩＣ１１内において、上記基準Ｂは、増幅率が１のバッファ回路２０に入力され、そのバッファ回路２０の出力端子が、入力ＩＣ１１の外部において、入力回路５１，５３を構成する抵抗５９の抵抗５８側とは反対側の端部に接続されている。
【００４５】
このため、ノックセンサ２７，２９のそれぞれからマルチプレクサ１９に入力されるノックセンサ信号は、基準Ｂ（＝２．５Ｖ）を中心に、０Ｖから５Ｖまでの範囲で変化する振動波となる。
【００４６】
尚、入力ＩＣ１１内において、バッファ回路２０の出力電圧はアンプ２１へ増幅動作の基準電圧として供給され、アンプ２１は、そのバッファ回路２０の出力電圧（＝２．５Ｖ）を基準にして、マルチプレクサ１９からの電圧を増幅する。
【００４７】
また、処理ＩＣ１３には、入力ＩＣ１１と通信するための通信部３１と、エンジンのクランク軸の回転に同期して回転センサにより発生される周知の回転パルス信号（図示省略）に基づいてクランク位置（クランク軸の回転位置）を検出する回転処理部３３と、デジタルフィルタ処理を行うデジタルフィルタ３５と、そのデジタルフィルタ３５の処理結果が順次格納されるメモリ３７と、通信部３１及びデジタルフィルタ３５の起動／停止等の処理を行うＣＰＵ３９とが備えられている。
【００４８】
そして、通信部３１には、処理ＩＣ１３から入力ＩＣ１１へ送信するコマンド（図中では「ｃｍｄ」と記している）のうち、後述するコマンドＡ（ｃｍｄＡ）の送信個数が書き込まれるレジスタ４１と、コマンドＡとして送信されるデータ（コマンドＡ送信データ）が書き込まれるレジスタ４２と、後述するコマンドＢ（ｃｍｄＢ）として送信されるデータ（コマンドＢ送信データ）が書き込まれるレジスタ４３と、コマンドＡに対する入力ＩＣ１１からの応答データを受信したデータ（コマンドＡ受信データ）が格納される第１格納部としてのレジスタ４４と、コマンドＢに対する入力ＩＣ１１からの応答データを受信したデータ（コマンドＢ受信データ）が格納される第２格納部としてのレジスタ４５とが備えられている。
【００４９】
尚、入力ＩＣ１１側の通信部１５にも、入力ＩＣ１１から処理ＩＣ１３へ送信するデータが格納される送信データレジスタ４６と、処理ＩＣ１３からの受信データが格納される受信データレジスタ４７とが備えられている。
【００５０】
一方、入力ＩＣ１１と処理ＩＣ１３を結ぶ信号線１〜５のうち、信号線１は、入力ＩＣ１１に対するチップセレクト信号ＣＳ用の信号線である。そして、処理ＩＣ１３の通信部３１が、その信号線１のレベル（つまり、チップセレクト信号ＣＳのレベル）をアクティブレベル（本実施形態ではローレベル）にすると、入力ＩＣ１１の通信部１５が通信動作を行う通信許可状態となる。
【００５１】
また、信号線２は、処理ＩＣ１３の通信部３１から入力ＩＣ１１の通信部１５へ、通信クロックＣＬＫを供給するための信号線である。そして、両ＩＣ１１，１３の通信部１５，３１は、その通信クロックＣＬＫに同期してデータを１ビットずつ送受信し合う。
【００５２】
そして、信号線３は、処理ＩＣ１３の通信部３１から入力ＩＣ１１の通信部１５へデータを送信するための通信ラインであり、信号線４は、入力ＩＣ１１の通信部１５から処理ＩＣ１３の通信部３１へデータを送信するための通信ラインである。
【００５３】
また、信号線５は、タイマ２３から上記タイミング信号が出力される毎にハイレベルとなるトリガ信号（つまり、１０μｓ毎に立ち上がるトリガ信号）Ｔｇを、入力ＩＣ１１の通信部１５から処理ＩＣ１３の通信部３１へ供給するための信号線である。
【００５４】
次に、入力ＩＣ１１と処理ＩＣ１３との間でやり取りされる通信データのフォーマットについて、図２を用いて説明する。
まず、本実施形態において、両ＩＣ１１，１３間の１回の通信でやり取りされる通信データは、例えば１６ビットとなっている。
【００５５】
そして、処理ＩＣ１３から入力ＩＣ１１へは、図２（ａ）に示すように、コマンドＡとコマンドＢとの２種類のコマンドが送信される。
コマンドＡは、機能設定用のコマンドであり、入力ＩＣ１１に対して、少なくとも、マルチプレクサ１９に選択させる入力チャンネル（ｃｈ）と、アンプ２１のゲインとを指示するコマンドである。
【００５６】
そして、コマンドＡは、そのコマンドがコマンドＡであることを示す２ビットのコマンドコード“１０”と、マルチプレクサ１９に選択させる入力チャンネルを示す複数ビット（この例では３ビット）と、アンプ２１のゲインを示す複数ビット（この例では３ビット）と、その他の情報を示す複数ビット（この例では３ビットであり、以下、この３ビットを「その他１」という）と、残りのビット（この例では５ビット）とからなり、その残りのビットは未使用で常に“０”に設定される。
【００５７】
また、コマンドＢは、要求コマンドに相当し、入力ＩＣ１１に対して、Ａ／Ｄ変換器１７によるアナログ信号のＡ／Ｄ変換及びそのＡ／Ｄ変換値を要求するコマンドである。
そして、コマンドＢは、そのコマンドがコマンドＢであることを示す２ビットのコマンドコード“０１”と、残りの１４ビットとからなり、その残りの１４ビットは未使用で常に“０”に設定される。
【００５８】
一方、入力ＩＣ１１から処理ＩＣ１３へは、図２（ｂ）に示すように、処理ＩＣ１３からのコマンドＡに対する設定結果を報告するための応答データ（以下、コマンドＡ応答データという）と、処理ＩＣ１３からのコマンドＢに対する応答データ（以下、コマンドＢ応答データという）とが送信される。
【００５９】
そして、コマンドＡ応答データは、その応答データがコマンドＡに対するものであることを示す２ビットのコマンドコード“１０”と、マルチプレクサ１９に実際に選択させたチャンネルを示す複数ビット（この例では３ビット）と、実際に設定したアンプ２１のゲインを示す複数ビット（この例では３ビット）と、その他の情報を示す複数ビット（この例では３ビットであり、図２では「その他２」と記している）と、残りのビット（この例では５ビット）とからなり、その残りのビットは未使用で常に“０”に設定される。
【００６０】
また、コマンドＢ応答データは、その応答データがコマンドＢに対するものであることを示す２ビットのコマンドコード“０１”と、Ａ／Ｄ変換器１７によるＡ／Ｄ変換値である１４ビットとからなる。
【００６１】
次に、入力ＩＣ１１と処理ＩＣ１３とで実施される通信の概要について、図３及び図４を用いて説明する。尚、以下の説明において、「ＣＡ」とはエンジンのクランク軸の回転角度（クランクアングル）を意味し、「ＴＤＣ」とは気筒の上死点のことである。そして、図３の最上段は、エンジンの３０°ＣＡ毎（クランク軸が３０°回転する毎）のタイミングを示している。また、図４は、図３において点線の四角枠Ｋ１で囲んだ期間の通信状態を表したものである。
【００６２】
まず、図３に示すように、本実施形態では、各気筒のＴＤＣのタイミングからＡＴＤＣ９０°ＣＡ（ＴＤＣから９０°ＣＡだけ後）のタイミングまでが、その気筒についてのノック判定区間（ノッキングの有無を判定する対象の区間）となっている。
【００６３】
（１）そして、何れかの気筒のＡＴＤＣ９０°ＣＡのタイミングであって、その気筒のノック判定区間の終了タイミングになると、処理ＩＣ１３から入力ＩＣ１１へのチップセレクト信号ＣＳがローレベルからハイレベル（非アクティブレベル）になって、両ＩＣ１１，１３間の通信が一旦終了し、その後、処理ＩＣ１３にて次の通信期間のための準備処理が終了すると、この時点は次の気筒のノック判定区間が始まるＴＤＣタイミングよりも十分に前であり、その時点で処理ＩＣ１３から入力ＩＣ１１へのチップセレクト信号ＣＳがローレベルに切り替えられて、両ＩＣ１１，１３間の通信が再び開始される。
【００６４】
このため、チップセレクト信号ＣＳは、何れかの気筒のＡＴＤＣ９０°ＣＡタイミングでローレベルからハイレベルとなり、次の気筒のＴＤＣタイミングよりも十分に前のタイミングでハイレベルからローレベルになる。
【００６５】
（２）ここで、チップセレクト信号ＣＳがハイレベルからローレベルになると、図４に示すように、処理ＩＣ１３の通信部３１が、入力ＩＣ１１へ、信号線２を介して通信クロックＣＬＫを出力すると共に、その通信クロックＣＬＫに同期して、レジスタ４２内のコマンドＡ（コマンドＡ送信データ）を信号線３を介して１ビットずつ送信する。更に、これと並行して、処理ＩＣ１３の通信部３１は、上記通信クロックＣＬＫに同期して、入力ＩＣ１１から信号線４を介して送られてくるデータを１ビットずつ受信しレジスタ４４に格納する。尚、本実施形態において、処理ＩＣ１３から入力ＩＣ１１へ送信されるコマンドＡの先頭から３〜５ビット目（即ち、マルチプレクサ１９に選択させるチャンネルを示す３ビット）は、２つのノックセンサ２７，２９のうち、次にＴＤＣを迎える気筒が設けられたバンク側のノックセンサからの信号が入力されているチャンネル（ｃｈ０又はｃｈ１）を選択する値に設定される。
【００６６】
（３）そして、入力ＩＣ１１の通信部１５は、上記通信クロックＣＬＫに同期して、処理ＩＣ１３から信号線３を介して送られてくるコマンドＡを１ビットずつ受信し受信データレジスタ４７に格納すると共に、その通信クロックＣＬＫに同期して、送信データレジスタ４６内の送信データを信号線４を介して１ビットずつ処理ＩＣ１３へ送信する。
【００６７】
このため、通信クロックＣＬＫに同期して、処理ＩＣ１３の通信部３１におけるレジスタ４２内のコマンドＡが、入力ＩＣ１１の通信部１５における受信データレジスタ４７へ転送されると共に、入力ＩＣ１１の通信部１５における送信データレジスタ４６内の送信データが、処理ＩＣ１３の通信部３１におけるレジスタ４４に転送されることとなる。
【００６８】
尚、チップセレクト信号ＣＳがローレベルになった直後において、入力ＩＣ１１の通信部１５における送信データレジスタ４６内には、有効なデータが格納されていないため、入力ＩＣ１１から処理ＩＣ１３へ最初に送信されるデータは、デフォルト値のダミーデータとなる。また、チップセレクト信号ＣＳがローレベルになってから、上記（２），（３）による両ＩＣ１１，１３間の１回目の通信（データ送受信）が完了するまでの時間は、１０μｓ未満である。
【００６９】
（４）一方、チップセレクト信号ＣＳがローレベルになると、入力ＩＣ１１では、タイマ２３が起動されて、以後、１０μｓ毎に、そのタイマ２３からタイミング信号が出力される。尚、図４における「Ｔｉｍｅｒ」の段（下から２段目）において、上向き矢印（↑）は、タイマ２３からタイミング信号が出力される１０μｓ毎のタイミングを示している。
【００７０】
（５）そして、タイマ２３からタイミング信号が出力される毎に、入力ＩＣ１１から処理ＩＣ１３へのトリガ信号Ｔｇがハイレベルとなると共に、入力ＩＣ１１においては、Ａ／Ｄ変換器１７が、マルチプレクサ１９からアンプ２１を介して入力されるアナログ信号をＡ／Ｄ変換する。
【００７１】
ここで、入力ＩＣ１１において、マルチプレクサ１９が選択する入力チャンネルとアンプ２１のゲインは、基本的には、処理ＩＣ１３から受信したコマンドＡの指示内容に従って設定されるが、チップセレクト信号ＣＳがローレベルになってから、タイマ２３からタイミング信号が３回出力されて、後述する（６）〜（８）の動作により４回目の通信が終わるまでは、アンプ２１のゲインが１倍に固定されると共に、マルチプレクサ１９が一定のパターンで入力チャンネルを切り替える。即ち、図４の最下段に示すように、マルチプレクサ１９は、１回目のタイミング信号の出力時には、基準Ｂを選択（詳しくは、基準Ｂが入力された入力チャンネルを選択）してＡ／Ｄ変換器１７にＡ／Ｄ変換させ、２回目のタイミング信号の出力時には、基準Ａを選択してＡ／Ｄ変換器１７にＡ／Ｄ変換させ、３回目のタイミング信号の出力時には、基準Ｃを選択してＡ／Ｄ変換器１７にＡ／Ｄ変換させる。
【００７２】
（６）また、タイマ２３からタイミング信号が出力されて入力ＩＣ１１から処理ＩＣ１３へのトリガ信号Ｔｇがハイレベルになると、処理ＩＣ１３では、通信部３１が、上記（２）と同様に、入力ＩＣ１１へレジスタ４２内のコマンドＡを送信すると共に、入力ＩＣ１１から送られてくるデータをレジスタ４４に格納する。
【００７３】
（７）そして、入力ＩＣ１１の通信部１５も、上記（３）と同様の手順で、処理ＩＣ１３からのコマンドＡを受信データレジスタ４７に格納すると共に、送信データレジスタ４６内の送信データを処理ＩＣ１３へ送信する。
【００７４】
（８）その後、上記（６），（７）による両ＩＣ１１，１３間の通信が完了すると、入力ＩＣ１１から処理ＩＣ１３へのトリガ信号Ｔｇがローレベルに戻る。尚、本実施形態では、通信クロックＣＬＫが２ＭＨｚであり、通信データが１６ビットであるため、１回の通信に要する時間は８μｓ（＝０．５μｓ×１６）であり、また、トリガ信号Ｔｇがハイレベルになってから通信が開始されるまでの遅れは１μｓ以下となっている。また更に、Ａ／Ｄ変換器１７がＡ／Ｄ変換に要する時間は８μｓ以内となっている。よって、両ＩＣ１１，１３の通信間隔である１０μｓ以内に、１回の通信とＡ／Ｄ変換とが全て完了する。
【００７５】
（９）そして、以後は、処理ＩＣ１３からのコマンドＡの送信回数が所定回数（本実施形態では、５回）となるまで、上記（６）〜（８）の動作が繰り返されることとなる。
尚、入力ＩＣ１１においては、チップセレクト信号ＣＳがローレベルになった後、処理ＩＣ１３との４回目の通信が終了してからは、前述したように、処理ＩＣ１３から受信したコマンドＡの指示内容に従って、マルチプレクサ１９が選択する入力チャンネルが、チャンネルｃｈ０，ｃｈ１の何れかに設定されると共に、アンプ２１のゲインが設定される。よって、５回目以降の通信中において、Ａ／Ｄ変換器１７は、チャンネルｃｈ０，ｃｈ１のうち、コマンドＡが示す方に入力されるノックセンサ信号をＡ／Ｄ変換することとなる。
【００７６】
また、入力ＩＣ１１がコマンドＡを受信すると、その入力ＩＣ１１側の送信データレジスタ４６には、現在の設定状況を表すコマンドＡ応答データが格納される。このため、入力ＩＣ１１から５回目以降の通信時に送信されるコマンドＡ応答データは、前回受信したコマンドＡに対する設定結果を処理ＩＣ１３へ報告するものとなる。
【００７７】
また更に、入力ＩＣ１１では、処理ＩＣ１３との４回目の通信が終了した際に、１〜３回目の各通信中にＡ／Ｄ変換器１７によりＡ／Ｄ変換した基準Ａ，Ｂ，Ｃの各Ａ／Ｄ変換値を用いて、ノックセンサ信号のＡ／Ｄ変換値（以下、センサＡ／Ｄ値という）を補正するための補正係数を算出する。尚、補正係数の算出手法については、後で詳しく説明する。
【００７８】
そして、上記（２）〜（９）が、図４において点線の四角枠Ｋ２で囲まれた期間の動作である。
（１０）処理ＩＣ１３から送信されたコマンドＡが５個目に達し、その後、入力ＩＣ１１から処理ＩＣ１３へのトリガ信号Ｔｇがハイレベルになると、処理ＩＣ１３の通信部３１と入力ＩＣ１１の通信部１５とが、上記（６），（７）と同様に通信を行うが、この場合、処理ＩＣ１３の通信部３１は、入力ＩＣ１１へ、レジスタ４３内のコマンドＢを送信し、それと並行して、入力ＩＣ１１から送られてくるデータをレジスタ４４に格納する。
【００７９】
このため、５個目のコマンドＡの転送が終了した後の最初の通信では、処理ＩＣ１３から入力ＩＣ１１へ、コマンドＢが送信され、入力ＩＣ１１から処理ＩＣ１３へは、前回のコマンドＡに対する設定結果を報告するためのコマンドＡ応答データが送信されて、そのコマンドＡ応答データがレジスタ４４に格納されることとなる。
【００８０】
尚、この（１０）が、図４において点線の四角枠Ｋ３で囲まれた期間の動作である。
（１１）そして、その後、次の１０μｓ毎のタイミングが到来して、入力ＩＣ１１から処理ＩＣ１３へのトリガ信号Ｔｇがハイレベルになった場合にも、処理ＩＣ１３の通信部３１と入力ＩＣ１１の通信部１５とが、上記（６），（７）と同様に通信を行うが、この場合、処理ＩＣ１３の通信部３１は、入力ＩＣ１１へレジスタ４３内のコマンドＢを送信すると共に、入力ＩＣ１１から送られてくるデータを、レジスタ４４ではなく、レジスタ４５へ格納する。
【００８１】
そして更に、入力ＩＣ１１の通信部１５は、処理ＩＣ１３から送られてくるコマンドＢを受信データレジスタ４７に格納すると共に、送信データレジスタ４６内の送信データを処理ＩＣ１３へ送信するが、この場合において、送信データレジスタ４６には、前回受信したコマンドＢに対する応答データとして、Ａ／Ｄ変換器１７による最新のセンサＡ／Ｄ値（即ち、前回の通信中にノックセンサ信号をＡ／Ｄ変換したＡ／Ｄ変換値）を上記補正係数で補正した後のセンサＡ／Ｄ値を含んだコマンドＢ応答データが格納されている。
【００８２】
より詳しく説明すると、入力ＩＣ１１では、処理ＩＣ１３からのコマンドＢを受信すると、まず、その回の通信時にＡ／Ｄ変換したセンサＡ／Ｄ値を、ノックセンサ信号の振幅を表す値に変換（つまり、基準値変換）するために、そのセンサＡ／Ｄ値から基準ＢのＡ／Ｄ変換値を減算する処理を行い、その減算後の値を上記補正係数により補正する。そして、その補正後のセンサＡ／Ｄ値を含ませたコマンドＢ応答データを、送信データレジスタ４６にセットする。尚、上記減算に用いる基準ＢのＡ／Ｄ変換値は、処理ＩＣ１３との２回目の通信中にＡ／Ｄ変換した値である。
【００８３】
このため、処理ＩＣ１３から入力ＩＣ１１へは、前回と同じコマンドＢが送信され、入力ＩＣ１１から処理ＩＣ１３へは、最新且つ補正後のセンサＡ／Ｄ値を含んだコマンドＢ応答データ（図４中では「ＡＤ値」とされている）が送信されることとなる。
【００８４】
（１２）以後は、処理ＩＣ１３から入力ＩＣ１１へのチップセレクト信号ＣＳがハイレベルになるまで、上記（１１）の動作が繰り返されることとなる。
そして、上記（１１），（１２）が、図４において点線の四角枠Ｋ４で囲まれた期間の動作である。
【００８５】
尚、上記（１１）にて、処理ＩＣ１３側では、通信部３１のレジスタ４５に格納された入力ＩＣ１１からのセンサＡ／Ｄ値が、デジタルフィルタ３５へそのまま転送されてデジタルフィルタ処理される。そして、そのデジタルフィルタ３５による１０μｓ毎のフィルタ処理結果はメモリ３７に順次格納される。また、メモリ３７には、１０μｓ毎のフィルタ処理結果を、そのまま記憶するようにしても良いが、所定のクランク角度分や所定個数分ずつ積算するなどして、データ圧縮した形態で記憶するようにしても良い。一方、図４における「Ａ／Ｄ変換処理」の段（最下段）において、左から４つ目のＡ／Ｄ変換値に（）を付けて「（ＡＤ変換）」と記載しているのは、その４つ目のＡ／Ｄ変換値（即ち、５回目の通信中のＡ／Ｄ変換値）がデジタルフィルタ処理に使用されない（つまり、処理ＩＣ１３へは送信されない）ことを表している。
【００８６】
次に、上記のようなＩＣ１１，１３間の通信を実現するために、処理ＩＣ１３のＣＰＵ３９と、処理ＩＣ１３の通信部３１と、入力ＩＣ１１とで、それぞれ実行される処理の内容について、図５〜図９を用いて説明する。
【００８７】
まず図５は、処理ＩＣ１３のＣＰＵ３９にて３０°ＣＡ毎に実行される３０°ＣＡ割込処理の内容を表すフローチャートである。尚、この３０°ＣＡ割込処理は、回転処理部３３からの指令によって起動される。
【００８８】
図５に示すように、処理ＩＣ１３のＣＰＵ３９が３０°ＣＡ割込処理を開始すると、まずＳ１１０にて、回転処理部３３により検出されている現在のクランク位置を参照して、今回の３０°ＣＡ毎のタイミングが何れかの気筒のＡＴＤＣ９０°ＣＡのタイミングであるか否か（つまり、現在のクランク位置が何れかの気筒のＡＴＤＣ９０°ＣＡであるか否か）を判定する。
【００８９】
ここで、何れかの気筒のＡＴＤＣ９０°ＣＡのタイミングでなければ（Ｓ１１０：ＮＯ）、そのまま処理を終了するが、何れかの気筒のＡＴＤＣ９０°ＣＡのタイミングであれば（Ｓ１１０：ＹＥＳ）、Ｓ１２０に進んで、デジタルフィルタ３５と通信部３１に停止指示を出して、それらの作動を停止させる。すると、通信部３１は、後述する図６のＳ２２０にて、入力ＩＣ１１へのチップセレクト信号ＣＳをハイレベルにすることとなり、これに伴い、入力ＩＣ１１の通信部１５も通信動作を停止することとなる。
【００９０】
そして、続くＳ１３０にて、メモリ３７からデジタルフィルタ３５によるフィルタ処理結果を読み出す。尚、ここで読み出されるフィルタ処理結果のうち、前回のＴＤＣタイミングから今回のＡＴＤＣ９０°ＣＡタイミングまでのフィルタ処理結果が、当該ＣＰＵ３９或いは他のＣＰＵによるノック判定（ノッキングの有無の判定）に用いられ、更に、そのノック判定結果がエンジンの点火時期制御にフィードバックされる。
【００９１】
次にＳ１４０にて、通信部３１のレジスタ４４から受信データを読み出す。尚、この時にレジスタ４４から読み出される受信データは、前回の通信期間中において、入力ＩＣ１１が送信した最後のコマンドＡ応答データ（つまり、処理ＩＣ１３がコマンドＢを最初に送信した時に、入力ＩＣ１１が送信したコマンドＡ応答データ）を受信したデータであって、図４の四角枠Ｋ３で囲まれた期間において入力ＩＣ１１から受信したデータである。
【００９２】
そして、次のＳ１５０にて、次の通信期間のための準備処理として、次の通信期間において入力ＩＣ１１へ送信するコマンドＡのデータ（コマンドＡ送信データ）を通信部３１のレジスタ４２に書き込むと共に、入力ＩＣ１１へ送信するコマンドＢのデータ（コマンドＢ送信データ）を通信部３１のレジスタ４３に書き込み、更に、コマンドＡの送信個数（本実施形態では“５”）を通信部３１のレジスタ４１に書き込む。
【００９３】
尚、このときにレジスタ４２へ書き込むコマンドＡ送信データの各ビットのうち、マルチプレクサ１９に選択させるチャンネルを示す３ビット（先頭から３〜５ビット目）は、前述したように、２つのノックセンサ２７，２９のうち、次にＴＤＣを迎える気筒が設けられたバンク側のノックセンサからの信号が入力されているチャンネルを選択する値に設定される。よって、例えば、今回のＡＴＤＣ９０°ＣＡタイミングが、第６気筒＃６のＡＴＤＣ９０°ＣＡタイミングであった場合、次にＴＤＣを迎えるのは第１気筒＃１であるため、レジスタ４２へ書き込まれるコマンドＡ送信データの先頭から３〜５ビット目は、右バンク側のノックセンサ２７に対応したチャンネルｃｈ０を選択する値に設定される（図３参照）。
【００９４】
次にＳ１６０にて、デジタルフィルタ３５を初期化すると共に、そのデジタルフィルタ３５と通信部３１に起動指示を出して、それらを起動させる。すると、通信部３１は、後述する図６のＳ２３０にて、入力ＩＣ１１へのチップセレクト信号ＣＳをハイレベルからローレベルにし、入力ＩＣ１１との通信動作を開始することとなる。
【００９５】
次にＳ１７０にて、上記Ｓ１４０でレジスタ４４から読み出した受信データ（コマンドＡ受信データ）の内容が正常であるか否かをチェックする。つまり、レジスタ４４から読み出したコマンドＡ受信データが表す入力ＩＣ１１側での設定結果内容と、前回の通信期間に入力ＩＣ１１へ送信したコマンドＡの設定指示内容とを比較して、両内容が一致していたならば正常と判定し、不一致ならば異常と判定する。
【００９６】
そして、このＳ１７０にて、正常と判定した場合には、そのまま当該３０°ＣＡ割込処理を終了するが、異常と判定した場合には、Ｓ１８０に進んで、例えば、入力ＩＣ１１をリセットするとか、上記Ｓ１３０でメモリ３７から読み出したフィルタ処理結果をノック判定に用いずに破棄する、といったフェイルセーフ用の異常処理を実施し、その後、当該３０°ＣＡ割込処理を終了する。
【００９７】
次に、図６に示すように、処理ＩＣ１３の通信部３１は、まずＳ２１０にて、ＣＰＵ３９が上記Ｓ１２０の処理で出す停止指示と、ＣＰＵ３９が上記Ｓ１６０の処理で出す起動指示との、何れかを受けるまで待機し、停止指示を受けたならば、Ｓ２２０へ進んで、入力ＩＣ１１へのチップセレクト信号ＣＳをハイレベルにする。そして、その後、Ｓ２１０に戻る。
【００９８】
また、ＣＰＵ３９からの起動指示を受けたならば、Ｓ２１０からＳ２３０へ移行して、入力ＩＣ１１へのチップセレクト信号ＣＳをローレベルにし、次のＳ２４０へ進む。
そして、Ｓ２４０では、上記（２）で述べたように、入力ＩＣ１１へ、信号線２を介して通信クロックＣＬＫを出力すると共に、その通信クロックＣＬＫに同期して、レジスタ４２内のコマンドＡ送信データ（即ち、ＣＰＵ３９が図５のＳ１５０でレジスタ４２に書き込んだコマンドＡのデータ）を信号線３を介して１ビットずつ送信し、更に、これと並行して、入力ＩＣ１１から信号線４を介して送られてくるデータを１ビットずつ受信し、レジスタ４４にコマンドＡ受信データとして格納する。但し、前述したように、チップセレクト信号ＣＳがローレベルになってから最初の通信時において、入力ＩＣ１１から送信されてくるデータは、デフォルト値のダミーデータである。
【００９９】
次にＳ２５０にて、ＣＰＵ３９からの停止指示を受けたか否かを判定し、停止指示を受けたならばＳ２２０へ移行するが、停止指示を受けていなければ、次のＳ２６０に進んで、入力ＩＣ１１からのトリガ信号Ｔｇがハイレベルか否かを判定する。
【０１００】
そして、トリガ信号Ｔｇがハイレベルでなければ（ローレベルであれば）、Ｓ２５０へ戻るが、トリガ信号Ｔｇがハイレベルになったならば（Ｓ２６０：ＹＥＳ）、Ｓ２７０に進む。
【０１０１】
Ｓ２７０では、レジスタ４１内の送信個数（即ち、ＣＰＵ３９が図５のＳ１５０でレジスタ４１に書き込んだコマンドＡの送信個数＝５）を読み出して、その読み出した送信個数を、“コマンドＡ個数”という変数として記憶すると共に、そのコマンドＡ個数の値をデクリメント（−１）する。
【０１０２】
そして、次のＳ２８０にて、コマンドＡ個数の値が０になったか否かを判定し、コマンドＡ個数の値が０でなければ、Ｓ２４０へ戻る。また、上記Ｓ２８０にて、コマンドＡ個数値が０であると判定した場合には、Ｓ２４０へ戻らずにＳ２９０へ進む。
【０１０３】
よって、処理ＩＣ１３の通信部３１は、上記Ｓ２３０でチップセレクト信号ＣＳをローレベルにしてから、Ｓ２４０〜Ｓ２８０の処理を５回実施することとなり、これにより、入力ＩＣ１１へのコマンドＡの送信及び入力ＩＣ１１からのデータ受信を５回実施することとなる。そして、このＳ２４０〜Ｓ２８０の処理により、上記（２）〜（９）で述べた図４の四角枠Ｋ２内の期間における通信動作が実現されている。
【０１０４】
次にＳ２９０では、Ｓ２４０と同様のデータ送受信動作を行うが、入力ＩＣ１１へは、レジスタ４２内のコマンドＡ送信データではなく、レジスタ４３内のコマンドＢ送信データ（即ち、ＣＰＵ３９が図５のＳ１５０でレジスタ４３に書き込んだコマンドＢのデータ）を送信する。
【０１０５】
そして、続くＳ３００にて、ＣＰＵ３９からの停止指示を受けたか否かを判定し、停止指示を受けたならばＳ２２０へ移行するが、停止指示を受けていなければ、次のＳ３１０に進んで、入力ＩＣ１１からのトリガ信号Ｔｇがハイレベルか否かを判定する。そして、トリガ信号Ｔｇがハイレベルでなければ（ローレベルであれば）、Ｓ３００へ戻るが、トリガ信号Ｔｇがハイレベルになったならば（Ｓ３１０：ＹＥＳ）、Ｓ３２０に進む。
【０１０６】
よって、処理ＩＣ１３の通信部３１は、５個目のコマンドＡを送信した後の最初の通信（即ち、６回目の通信）では、コマンドＢを送信することとなり、レジスタ４４には、前回送信したコマンドＡ（即ち、５個目のコマンドＡ）に対する設定結果を報告するための入力ＩＣ１１からのコマンドＡ応答データが、コマンドＡ受信データとして格納されることとなる。
【０１０７】
そして、このＳ２９０〜Ｓ３１０の処理により、上記（１０）で述べた図４の四角枠Ｋ３内の期間における通信動作が実現されている。
次にＳ３２０では、Ｓ２９０と同様のデータ送受信動作を行って、入力ＩＣへ前回と同じコマンドＢを送信するが、入力ＩＣ１１から送られてくるデータは、レジスタ４４ではなく、レジスタ４５にコマンドＢ受信データとして格納する。そして、そのレジスタ４５に格納したデータのうち、先頭の２ビットを除く１４ビット（即ち、入力ＩＣ１１からのセンサＡ／Ｄ値）を、デジタルフィルタ３５へ転送する。
【０１０８】
次にＳ３３０にて、ＣＰＵ３９からの停止指示を受けたか否かを判定し、停止指示を受けたならばＳ２２０へ移行するが、停止指示を受けていなければ、Ｓ３４０に進んで、入力ＩＣ１１からのトリガ信号Ｔｇがハイレベルか否かを判定する。そして、トリガ信号Ｔｇがハイレベルでなければ（ローレベルであれば）、Ｓ３３０へ戻り、トリガ信号Ｔｇがハイレベルになったならば（Ｓ３４０：ＹＥＳ）、Ｓ３２０に戻って、再び、データの送受信（詳しくは、入力ＩＣ１１へのコマンドＢの送信及び入力ＩＣ１１からのコマンドＢ応答データの受信）を行う。
【０１０９】
そして、このＳ３２０〜Ｓ３４０の処理により、上記（１１），（１２）で述べた図４の四角枠Ｋ４内の期間における通信動作が実現されている。
次に、図７及び図８は、入力ＩＣ１１で行われる処理を表すフローチャートである。尚、この処理は、通信部１５と制御部２５とが共同して実施するものである。
【０１１０】
図７に示すように、入力ＩＣ１１では、まずＳ４１０にて、処理ＩＣ１３からのチップセレクト信号ＣＳがローレベルか否かを判定し、チップセレクト信号ＣＳがローレベルになるまで動作を停止する。
【０１１１】
そして、チップセレクト信号ＣＳがローレベルになったと判定すると（Ｓ４１０：ＹＥＳ）、Ｓ４１５に進んで、チップセレクト信号ＣＳがローレベルになってからの通信回数を計数するためのカウンタＣｎｔを０に初期化する。
【０１１２】
次に、Ｓ４２０に進み、処理ＩＣ１３から信号線２を介して供給される通信クロックＣＬＫに同期して、データの送受信を行う。
即ち、上記（３）で述べたように、処理ＩＣ１３から信号線３を介して送られてくる１６ビットのデータを１ビットずつ受信して受信データレジスタ４７に格納すると共に、送信データレジスタ４６内の１６ビットの送信データを信号線４を介して１ビットずつ処理ＩＣ１３へ送信する。但し、前述したように、チップセレクト信号ＣＳがローレベルになってから最初に送信する送信データは、デフォルト値のダミーデータである。
【０１１３】
そして、このような１６ビット分のデータ送受信が終わると、次のＳ４３０にて、処理ＩＣ１３へのトリガ信号Ｔｇをローレベルに設定する。尚、チップセレクト信号ＣＳがハイレベルからローレベルに変化した時点でのトリガ信号Ｔｇの初期値はローレベルであるため、最初の通信時において、トリガ信号Ｔｇは継続してローレベルのままとなる（図４参照）。
【０１１４】
そして、続くＳ４３５にて、上記Ｓ４２０で今回受信した受信データレジスタ４７内の受信データにおける先頭の２ビット（コマンドコード）が“１０”であるか否かにより、その受信データがコマンドＡであるか否かを判定し、コマンドＡであれば、Ｓ４４０に進んで、カウンタＣｎｔの値が０〜４の何れであるかを判定する。
【０１１５】
そして、上記Ｓ４４０でカウンタＣｎｔの値が０であると判定した場合には、上記Ｓ４２０による今回の通信が１回目の通信であることから、Ｓ４４１に進んで、アンプ２１のゲインを１倍に設定すると共に、マルチプレクサ１９に、基準Ｂが入力された入力チャンネルを選択させる。つまり、基準ＢをＡ／Ｄ変換器１７に入力させる。次にＳ４４２へ進んで、カウンタＣｎｔの値をインクリメント（＋１）した後、Ｓ４６０へ移行する。
【０１１６】
また、上記Ｓ４４０でカウンタＣｎｔの値が１であると判定した場合には、上記Ｓ４２０による今回の通信が２回目の通信であることから、Ｓ４４３に進んで、その２回目の通信中にＡ／Ｄ変換器１７によってＡ／Ｄ変換されたＡ／Ｄ変換値（即ち、基準ＢのＡ／Ｄ変換値）を、ｒａｍＢとして記憶する。そして、続くＳ４４４にて、マルチプレクサ１９に、基準Ａが入力された入力チャンネルを選択させる。つまり、基準ＡをＡ／Ｄ変換器１７に入力させる。次にＳ４４２へ移行して、カウンタＣｎｔの値をインクリメントした後、Ｓ４６０へ移行する。
【０１１７】
また、上記Ｓ４４０でカウンタＣｎｔの値が２であると判定した場合には、上記Ｓ４２０による今回の通信が３回目の通信であることから、Ｓ４４５に進んで、その３回目の通信中にＡ／Ｄ変換器１７によってＡ／Ｄ変換されたＡ／Ｄ変換値（即ち、基準ＡのＡ／Ｄ変換値）を、ｒａｍＡとして記憶する。そして、続くＳ４４６にて、マルチプレクサ１９に、基準Ｃが入力された入力チャンネルを選択させる。つまり、基準ＣをＡ／Ｄ変換器１７に入力させる。次にＳ４４２へ移行して、カウンタＣｎｔの値をインクリメントした後、Ｓ４６０へ移行する。
【０１１８】
また、上記Ｓ４４０でカウンタＣｎｔの値が３であると判定した場合には、上記Ｓ４２０による今回の通信が４回目の通信であることから、Ｓ４４７に進んで、その４回目の通信中にＡ／Ｄ変換器１７によってＡ／Ｄ変換されたＡ／Ｄ変換値（即ち、基準ＣのＡ／Ｄ変換値）を、ｒａｍＣとして記憶する。次にＳ４４８にて、後述する図９（Ａ）の補正係数算出処理を実行することにより、ｒａｍＡ，ｒａｍＢ，ｒａｍＣ（基準Ａ，Ｂ，ＣのＡ／Ｄ変換値）に基づきセンサＡ／Ｄ値を補正するための補正係数を算出する。そして、次のＳ４４９にて、カウンタＣｎｔの値を最大ガード値である４に設定した後、Ｓ４５０に進む。
【０１１９】
また、上記Ｓ４４０でカウンタＣｎｔの値が４であると判定した場合には、上記Ｓ４２０による今回の通信が５回目の通信であると判断して、そのままＳ４５０へ移行する。
Ｓ４５０では、今回のＳ４２０で受信したコマンドＡの指示内容に従って、マルチプレクサ１９が選択する入力チャンネルやアンプ２１のゲインを設定し、その後、Ｓ４６０へ進む。尚、このＳ４５０での設定により、ノックセンサ信号をＡ／Ｄ変換する準備が整う。
【０１２０】
Ｓ４６０では、次回の送信準備として、入力ＩＣ１１における現在の設定状況（つまり、マルチプレクサ１９に実際に選択させているチャンネルや実際に設定したアンプ２１のゲインなど）を処理ＩＣ１３へ報告するためのコマンドＡ応答データを作成して、送信データレジスタ４６に格納する。
【０１２１】
そして、続くＳ４７０にて、チップセレクト信号ＣＳがローレベルのままか否かを判定し、チップセレクト信号ＣＳがローレベルでなければ（ハイレベルになったならば）、Ｓ４１０へ戻るが、チップセレクト信号ＣＳがローレベルのままならば、Ｓ４８０に進んで、タイマ２３から１０μｓ毎のタイミング信号が出力されたか否かを判定する。そして、タイミング信号が出力されていなければ、Ｓ４７０に戻るが、タイミング信号が出力されたならば、Ｓ４９０に進む。
【０１２２】
Ｓ４９０では、処理ＩＣ１３へのトリガ信号Ｔｇを、それまでのローレベルからハイレベルに設定し、次のＳ５００にて、Ａ／Ｄ変換器１７にＡ／Ｄ変換を開始させる。そして、その後、Ｓ４２０に戻る。
【０１２３】
すると、トリガ信号Ｔｇがハイレベルになったことにより、Ｓ４２０にて、処理ＩＣ１３との通信が再び行われるが、この場合のＳ４２０では、前回のＳ４６０で送信データレジスタ４６に格納しておいたコマンドＡ応答データを処理ＩＣ１３へ送信することとなる。また、Ｓ５００でＡ／Ｄ変換器１７が起動されることにより、２回目の通信中には基準ＢがＡ／Ｄ変換され、３回目の通信中には基準ＡがＡ／Ｄ変換され、４回目の通信中に基準ＣがＡ／Ｄ変換され、５回目の通信中には、チャンネルｃｈ０，ｃｈ１のうち、処理ＩＣ１３から受信したコマンドＡが指示する方に入力されるノックセンサ信号がＡ／Ｄ変換されることとなる。
【０１２４】
そして、処理ＩＣ１３からコマンドＡが送信され続けて、上記Ｓ４３５で受信データがコマンドＡであると判定している間は、Ｓ４４０〜Ｓ５００の処理が繰り返されることとなり、このＳ４４０〜Ｓ５００の処理により、図４の四角枠Ｋ２，Ｋ３内の期間における通信動作が実現される。
【０１２５】
一方、上記Ｓ４３５にて、Ｓ４２０で今回受信した受信データがコマンドＡではないと判定した場合には（Ｓ４４０：ＮＯ）、今回受信したデータがコマンドＢであると判断して、図８に示すＳ５１０へ移行する。尚、このような判断ができるのは、本実施形態では、処理ＩＣ１３から入力ＩＣ１１へ送信されるのが、コマンドＡかコマンドＢの何れか一方であるからである。
【０１２６】
そして、図８に示すように、Ｓ５１０では、今回受信した受信データレジスタ４７内の受信データがコマンドＢであるか否かを、その受信データにおける先頭の２ビット（コマンドコード）に基づいて念のため確認する。即ち、受信データにおける先頭の２ビットが“０１”であるか否かを確認する。尚、もし、受信データがコマンドＢでなかったならば、不定コマンドを受信したという異常（即ち、コマンドＢを受信するはずなのに、コマンドＢではないコマンドを受信したという異常）が発生したことを示す異常情報を記憶しておく。
【０１２７】
次に、Ｓ５１５にて、後述する図９（Ｂ）の補正処理を実行することにより、Ａ／Ｄ変換器１７による最新のセンサＡ／Ｄ値を補正する。つまり、この段階では、Ｓ４４８での補正係数の算出が完了していると共に、今回終了した通信中において、Ａ／Ｄ変換器１７はノックセンサ信号をＡ／Ｄ変換しているので、そのノックセンサ信号のＡ／Ｄ変換値であるセンサＡ／Ｄ値を補正係数により補正する。
【０１２８】
そして、次のＳ５２０にて、次回の送信準備として、今回受信したコマンドＢに対する応答データとして、上記Ｓ５１５で補正したセンサＡ／Ｄ値を含んだコマンドＢ応答データを作成し、それを送信データレジスタ４６に格納する。
【０１２９】
そして、続くＳ５３０にて、チップセレクト信号ＣＳがローレベルのままか否かを判定し、チップセレクト信号ＣＳがローレベルでなければ（ハイレベルになったならば）、図７のＳ４１０へ戻るが、チップセレクト信号ＣＳがローレベルのままならば、Ｓ５４０に進んで、タイマ２３から１０μｓ毎のタイミング信号が出力されたか否かを判定する。そして、タイミング信号が出力されていなければ、Ｓ５３０に戻るが、タイミング信号が出力されたならば、Ｓ５５０に進む。
【０１３０】
Ｓ５５０では、処理ＩＣ１３へのトリガ信号Ｔｇを、それまでのローレベルからハイレベルに設定し、次のＳ５６０にて、Ａ／Ｄ変換器１７にＡ／Ｄ変換を開始させる。
そして、その後、Ｓ５７０に進み、上記Ｓ４２０と同様に、処理ＩＣ１３から信号線２を介して供給される通信クロックＣＬＫに同期して、データの送受信を行う。但し、この場合には、前回のＳ５２０で送信データレジスタ４６に格納しておいたコマンドＢ応答データを処理ＩＣ１３へ送信することとなる。また、このＳ５７０での通信中においても、Ａ／Ｄ変換器１７は、チャンネルｃｈ０，ｃｈ１のうち、コマンドＡで指示された方のチャンネルに入力されたノックセンサ信号をＡ／Ｄ変換することとなる。
【０１３１】
そして、Ｓ５７０にて１６ビット分のデータ送受信が終わると、Ｓ５８０に進んで、処理ＩＣ１３へのトリガ信号Ｔｇをローレベルに設定し、その後、Ｓ５１０へ戻る。
このため、Ｓ４３５にて受信データがコマンドＡではない（コマンドＢである）と判定して、Ｓ５１０へ移行した後は、Ｓ５３０にてチップセレクト信号ＣＳがハイレベルになったと判定するまで、Ｓ５１０〜Ｓ５８０の処理が繰り返され、タイマ２３からタイミング信号が出力される毎に、処理ＩＣ１３からのコマンドＢを受信すると共に、処理ＩＣ１３へ１０μｓ毎の最新且つ補正後のセンサＡ／Ｄ値をコマンドＢ応答データとして送信することとなる。そして、このＳ５１０〜Ｓ５８０の処理により、図４の四角枠Ｋ４内の期間における通信動作が実現される。
【０１３２】
次に、図９（Ａ）は、図７のＳ４４８で実行される補正係数算出処理を表すフローチャートである。
図９（Ａ）に示すように、補正係数算出処理では、まずＳ６１０にて、下記の式１により、正側の補正係数Ｐを算出する。そして、次のＳ６２０にて、下記の式２により、負側の補正係数Ｎを算出し、その後、図７のＳ４４９へ進む。
【０１３３】
補正係数Ｐ＝理論カウント値／（ｒａｍＡ−ｒａｍＢ）  …式１
補正係数Ｎ＝理論カウント値／（ｒａｍＢ−ｒａｍＣ）  …式２
ここで、正側の補正係数Ｐとは、Ａ／Ｄ変換器１７によるセンサＡ／Ｄ値を、ノックセンサ信号の振幅（中心電圧からの変化分の電圧）を表す正負の値に変換した場合に、正になった方の値（つまり、中心電圧よりも高い分の電圧を表す値）を補正するための補正係数である。そして、負側の補正係数Ｎとは、上記変換により負になった方の値（つまり、中心電圧よりも低い分の電圧を表す値）を補正するための補正係数である。
【０１３４】
また、ｒａｍＡは、図７のＳ４４５で記憶された基準Ａの実際のＡ／Ｄ変換値であり、ｒａｍＢは、図７のＳ４４３で記憶された基準Ｂの実際のＡ／Ｄ変換値であり、ｒａｍＣは、図７のＳ４４７で記憶された基準Ｃの実際のＡ／Ｄ変換値である。
【０１３５】
更に、式１における「理論カウント値」とは、基準ＡのＡ／Ｄ変換値の理論値Ｘａから基準ＢのＡ／Ｄ変換値の理論値Ｘｂを引いた値であり、換言すれば、基準Ａと基準Ｂとの差である１．２５（＝３．７５−２．５）Ｖ分のＡ／Ｄ変換器１７の理論上のカウント数である。同様に、式２における「理論カウント値」とは、基準ＢのＡ／Ｄ変換値の理論値Ｘｂから基準ＣのＡ／Ｄ変換値の理論値Ｘｃを引いた値であり、換言すれば、基準Ｂと基準Ｃとの差である１．２５（＝２．５−１．２５）Ｖ分のＡ／Ｄ変換器１７の理論上のカウント数である。このため、本実施形態では、式１における「理論カウント値」と式２における「理論カウント値」は同じ値である。
【０１３６】
例えば、Ａ／Ｄ変換器１７によるＡ／Ｄ変換値が１４ビットではなく１６ビットである場合を例に挙げて説明すると、図９（Ａ）の右側に記載しているように、基準Ａの実際のＡ／Ｄ変換値（＝ｒａｍＡ）が４５０３１で、基準Ｂの実際のＡ／Ｄ変換値（＝ｒａｍＢ）が３００００で、基準Ｃの実際のＡ／Ｄ変換値（＝ｒａｍＣ）が１５１０５であった場合には、補正係数Ｐ＝１．０９となり、補正係数＝１．１０となる。尚、Ａ／Ｄ変換器１７がＡ／Ｄ変換可能な電圧範囲は、Ａ／Ｄ変換器１７の電源電圧の低電位側（＝０Ｖ）から高電位側（＝５Ｖ）までの５Ｖであり、この例では、Ａ／Ｄ変換値の１ビット（１カウント）が７６μＶに相当することとなる。
【０１３７】
次に、図９（Ｂ）は、図８のＳ５１５で実行される補正処理を表すフローチャートである。
図９（Ｂ）に示すように、補正処理では、まずＳ６３０にて、今回のＡ／Ｄ変換器１７によるセンサＡ／Ｄ値を、ノックセンサ信号の振幅を表す値ＡＤａｍに変換するために、下記式３の演算を行う。
【０１３８】
ＡＤａｍ＝センサＡ／Ｄ値−ｒａｍＢ  …式３
つまり、ノックセンサ信号の中心電圧である基準ＢをＡ／Ｄ変換器１７でＡ／Ｄ変換した値（＝ｒａｍＢ）を、センサＡ／Ｄ値から減算することにより、そのセンサＡ／Ｄ値を、０Ｖを基準にした値から、中心電圧を基準にした値へと変換（基準値変換）するようにしており、その減算後の値を、基準値変換後のセンサＡ／Ｄ値ＡＤａｍとして記憶する。
【０１３９】
そして、次のＳ６４０にて、ＡＤａｍが０以上であるか否かを判定し、０以上ならば、Ｓ６５０に進んで、そのＡＤａｍに、上記Ｓ６１０で算出した正側の補正係数Ｐを乗じ、その乗算後の値（＝ＡＤａｍ×Ｐ）を、処理ＩＣ１３へ送信する補正後のセンサＡ／Ｄ値として記憶する。そして、その後、図８のＳ５２０へ進む。
【０１４０】
また、上記Ｓ６４０にて、ＡＤａｍが０以上ではない（負である）と判定した場合には、Ｓ６６０に移行して、そのＡＤａｍに、上記Ｓ６２０で算出した負側の補正係数Ｎを乗じ、その乗算後の値（＝ＡＤａｍ×Ｎ）を、処理ＩＣ１３へ送信する補正後のセンサＡ／Ｄ値として記憶する。そして、その後、図８のＳ５２０へ進む。
【０１４１】
例えば、図９（Ｂ）の右側に記載しているように、図９（Ａ）の右側に記載した例において、Ａ／Ｄ変換器１７への入力電圧が３．１２５Ｖであり、その入力電圧の実際のＡ／Ｄ変換値（センサＡ／Ｄ値）が３７５１６であったとすると、「ＡＤａｍ＝３７５１６−３００００＝７５１６≧０」となり、この場合には、Ｓ６５０の処理により、補正後のセンサＡ／Ｄ値は、８１９２（＝７５１６×１．０９）となる。
【０１４２】
そして、上記Ｓ６５０，Ｓ６６０の何れかで求められた補正後のセンサＡ／Ｄ値は、上記Ｓ５２０にて、次回のＳ５７０で送信するコマンドＢ応答データの構成要素として、送信データレジスタ４６に格納される。
【０１４３】
以上のような第１実施形態の信号処理装置では、各気筒のノック判定区間が始まる前からそのノック判定区間が終わるまでの間、ノックセンサ信号を入力ＩＣ１１のＡ／Ｄ変換器１７により一定時間毎にＡ／Ｄ変換すると共に、その時系列のセンサＡ／Ｄ値を、処理ＩＣ１３側のデジタルフィルタ３５によりデジタルフィルタ処理し、そのフィルタ処理結果を用いてノック判定を行うが、特に、前回の気筒のノック判定区間が終了した後、次の気筒についてのＡ／Ｄ変換器１７によるノックセンサ信号の一定時間毎のＡ／Ｄ変換が開始されるまでの間に、Ａ／Ｄ変換器１７に既知の基準電圧である基準Ａ，Ｂ，ＣをＡ／Ｄ変換させ、その基準Ａ，Ｂ，ＣのＡ／Ｄ変換値から、センサＡ／Ｄ値を補正するための補正係数Ｐ，Ｎを算出するようにしている。そして、Ａ／Ｄ変換器１７によるノックセンサ信号の一定時間毎のＡ／Ｄ変換が開始されると、各センサＡ／Ｄ値を、補正係数Ｐ，Ｎを用いて補正し、その補正後のセンサＡ／Ｄ値を処理ＩＣ１３へ送信して、その補正後のセンサＡ／Ｄ値に対しデジタルフィルタ処理を行っている。
【０１４４】
つまり、ノックセンサ信号の取り込み（即ち、一定時間毎のＡ／Ｄ変換）を開始する前に、Ａ／Ｄ変換精度を確保するための補正係数Ｐ，Ｎを学習演算して、その補正係数Ｐ，Ｎによりデジタルフィルタ処理対象のセンサＡ／Ｄ値を補正するようにしている。
【０１４５】
このため、ノックセンサ信号の取り込みに影響を及ぼすことなく、且つ、温度や電源電圧が変化した場合においても、ノックセンサ信号の良好なＡ／Ｄ変換精度を確保することができる。よって、デジタルフィルタ３５によるフィルタ処理結果を用いて正確なノック判定が可能となる。
【０１４６】
そして特に、本第１実施形態では、次の気筒についてのＡ／Ｄ変換器１７によるノックセンサ信号の一定時間毎のＡ／Ｄ変換が開始される直前に、補正係数Ｐ，Ｎの算出動作（即ち、基準Ａ〜ＣのＡ／Ｄ変換と図９（Ａ）の補正係数算出処理）を行うようにしているため、もし、前回の気筒のノック判定区間が終了してから次の気筒についてのノックセンサ信号の取り込みを開始するまでに時間があったとしても、次の気筒についてのノックセンサ信号の取り込み開始直前に最新の補正係数Ｐ，Ｎを算出することとなる。よって、次の気筒のノック判定区間におけるデジタルフィルタ処理対象のセンサＡ／Ｄ値の精度を、一層確実に保障することができる。
【０１４７】
また、本第１実施形態では、補正係数Ｐ，Ｎの算出動作をエンジンの１点火につき１回の割合で行うようにしているため、常に最新の補正係数Ｐ，Ｎを用いることができ、温度や電源電圧変動などの影響を最小限にすることができる。
【０１４８】
また、本第１実施形態では、１回のノック判定区間におけるセンサＡ／Ｄ値に対しては、補正係数Ｐ，Ｎを変更することなく、同じ補正係数Ｐ，Ｎを用いて補正するようにしているため、フィルタ処理結果の連続性を確保することができる。
【０１４９】
一方、ノック判定を正確に行うためには、振幅が小さい場合のノックセンサ信号の特徴を精度良くとらえる必要があるが、本第１実施形態では、補正係数Ｐ，Ｎを求めるための基準電圧の１つとして、ノックセンサ信号の中心電圧である基準Ｂ（＝２．５Ｖ）を用いているため、その中心電圧付近の振幅の小さいノックセンサ信号について、センサＡ／Ｄ値を精度良く補正することができ、その結果、ノック判定精度を良好にすることができる。
【０１５０】
更に、本第１実施形態では、補正係数Ｐ，Ｎを求めるための基準Ｂ以外の基準電圧（基準Ａ，基準Ｃ）としても、Ａ／Ｄ変換器１７の電源電圧の高電位側（＝５Ｖ）と低電位側（＝０）との間の電圧である３．７５Ｖと１．２５Ｖとを用いている。このため、中心電圧からの振幅が小さいノックセンサ信号に対するＡ／Ｄ変換精度（補正精度）を一層良好にして、ノック判定精度を向上させることができる。
【０１５１】
具体的に説明すると、まず通常、Ａ／Ｄ変換器１７の電源電圧（即ち、Ａ／Ｄ変換可能な電圧範囲）と、ノックセンサ信号が変化する電圧範囲とは、同じに設定される。そして、Ａ／Ｄ変換器１７は、パルス位相差符号化回路を用いたＡ／Ｄ変換器であるが、この種のＡ／Ｄ変換器では、一般に、Ａ／Ｄ変換対象の入力電圧とＡ／Ｄ変換誤差との関係が、図１０における実線波形のようになる。尚、電源電圧は５Ｖとしている。
【０１５２】
ここで、もし、基準Ａを電源電圧の高電位側である５Ｖとし、基準Ｃを電源電圧の低電位側である０Ｖとして、補正係数Ｐ，Ｎを求めたならば、その補正係数Ｐ，Ｎにより補正された後のＡ／Ｄ変換値の誤差と入力電圧との関係は、図１０における破線の波形で示すようになる。この場合、その破線波形から分かるように、入力電圧が電源電圧の高電位側と低電位側との何れかに近い場合には、Ａ／Ｄ変換誤差が小さくなるものの、入力電圧が電源電圧の１／２である２．５Ｖ（即ち、ノックセンサ信号の中心電圧）付近である場合には、Ａ／Ｄ変換精度があまり向上しない。
【０１５３】
これに対して、本第１実施形態のように、基準Ａ，Ｃを３．７５Ｖと１．２５Ｖとのそれぞれに設定して補正係数Ｐ，Ｎを求めたならば、その補正係数Ｐ，Ｎにより補正された後のＡ／Ｄ変換値の誤差と入力電圧との関係は、図１０における一点鎖線の波形のようになる。そして、その一点鎖線波形から分かるように、入力電圧が２．５Ｖ付近である場合において、高いＡ／Ｄ変換精度が得られる。このように、基準Ａ，Ｃを、電源電圧の高電位側と低電位側との間の電圧に設定することで、ノックセンサ信号の振幅が大きい場合よりも小さい場合の方が、補正後のセンサＡ／Ｄ値の精度を良好にすることができるのである。
【０１５４】
また、本第１実施形態の信号処理装置では、処理ＩＣ１３から入力ＩＣ１１へ送信されるコマンドのうち、複数の入力チャンネルのうちの何れの入力チャンネルに入力されるアナログ信号をＡ／Ｄ変換器１７にＡ／Ｄ変換させるかと、Ａ／Ｄ変換器１７に入力されるアナログ信号を増幅するアンプ２１のゲインとを指示するコマンドＡが、入力ＩＣ１１へ送信されることで、補正係数の算出動作が行われるようになっているため、入力ＩＣ１１に補正係数の算出動作を行わせるための特別なコマンドを用意する必要がなく有利である。尚、入力チャンネル選択用のコマンドとゲイン指示用のコマンドとが別々に設けられているのであれば、入力ＩＣ１１は、チップセレクト信号ＣＳがローになってから、その２つのコマンドのうちの何れか一方を受けると補正係数の算出動作を行う、というように構成しても良い。
【０１５５】
一方、上記第１実施形態では、図７のＳ４４０〜Ｓ４４８及びＳ４７０〜Ｓ５００が補正値算出手段としての処理に相当し、図７のＳ４５０が実行されてからのＳ４７０〜Ｓ５００と、図８のＳ５３０〜Ｓ５６０とがＡ／Ｄ変換制御手段としての処理に相当している。そして、図８のＳ５１５が補正手段としての処理に相当し、また、デジタルフィルタ３５がフィルタ手段に相当している。
［第２実施形態］
次に、第２実施形態の信号処理装置について説明する。
【０１５６】
第２実施形態の信号処理装置では、第１実施形態と比較すると、処理ＩＣ１３の通信部３１で行われる処理が、図６から図１１（Ａ）のように変更されており、入力ＩＣ１１で行われる処理が、図７から図１１（Ｂ）のように変更されている。そこで以下、相違する部分について説明する。
【０１５７】
まず、図１１（Ａ）に示すように、本第２実施形態では、図６の処理に対して、Ｓ２０５，Ｓ２３１〜Ｓ２３４の処理が追加されている。
即ち、処理ＩＣ１３の通信部３１は、動作を開始すると、最初のＳ２０５にて、カウンタＣＮの値を０に初期化し、その後、前述のＳ２１０へ進む。そして、Ｓ２１０でＣＰＵ３９からの起動指示を受けたと判定して、Ｓ２３０で入力ＩＣ１１へのチップセレクト信号ＣＳをローレベルにしたならば、Ｓ２３１へ進む。
【０１５８】
Ｓ２３１では、カウンタＣＮの値が０であるか否かを判定し、０であると判定したならば、Ｓ２３２に進み、レジスタ４２に書き込まれているコマンドＡ送信データ（図２（ａ）参照）における「その他１」の最下位ビットを“１”に設定する。
【０１５９】
また、Ｓ２３１にて、カウンタＣＮの値が０ではないと判定したならば、Ｓ２３３に移行して、レジスタ４２に書き込まれているコマンドＡ送信データにおける「その他１」の）の最下位ビットを“０”に設定する。
【０１６０】
そして、上記Ｓ２３２，Ｓ２３３の何れかを実行した後、Ｓ２３４に進み、カウンタＣＮをインクリメント（＋１）するが、もし、そのインクリメントによりカウンタＣＮの値が規定値ｎになったならば、カウンタＣＮの値を０に戻す。その後、前述のＳ２４０へ進む。
【０１６１】
このため、チップセレクト信号ＣＳのハイからローへの変化がｎ回発生するにつき１回の割合（即ち、エンジンのｎ回の点火につき１回の割合）で、処理ＩＣ１３から入力ＩＣ１１へ送信されるコマンドＡ中の「その他１」の最下位ビットが“１”になる。
【０１６２】
次に、図１１（Ｂ）に示すように、本第２実施形態では、図７の処理に対して、Ｓ４３７の処理が追加されている。
即ち、入力ＩＣ１１では、前述のＳ４３５にて、今回受信した受信データがコマンドＡであると判定した場合には、Ｓ４３７に進む。そして、そのＳ４３７では、今回受信したコマンドＡ中の「その他１」の最下位ビットが“１”であるか否かを判定し、“１”であれば、前述のＳ４４０に進むが、“１”でなければ（“０”であれば）、Ｓ４４０〜Ｓ４４９の処理を行うことなく、そのまま前述のＳ４５０へ進む。
【０１６３】
以上のような本第２実施形態において、入力ＩＣ１１は、エンジンのｎ回の点火につき１回の割合で、補正係数Ｐ，Ｎの算出動作を行うこととなる。
よって、本第２実施形態によれば、補正係数Ｐ，Ｎの算出頻度を最小限にしつつ、温度変化によるＡ／Ｄ変換精度への影響を抑制することができる。
【０１６４】
例えば、６気筒エンジンの場合、上記ｎを６に設定すれば、エンジンの１サイクルに１回の割合で、補正係数Ｐ，Ｎの算出動作が行われることとなる。
また例えば、上記ｎは、図１２に示すように、エンジン回転数に応じて、回転数が高い場合ほど大きい値に設定されるように構成しても良い。
【０１６５】
そして、この構成によれば、ノック判定区間の終了から次の気筒のノック判定区間までの時間が短くなる高回転時においては、上記ｎを大きい値にして補正係数Ｐ，Ｎの算出頻度を小さくすることができ有利である。
【０１６６】
また、エンジン回転数によらず、補正係数Ｐ，Ｎの算出周期（更新周期）を一定にすることができ、温度変化に対する補正性能を一定にすることができる。例えば、６気筒エンジンの場合、１０００ｒｐｍ時には１２０°ＣＡ分の時間が２０ｍｓとなり、５０００ｒｐｍ時には１２０°ＣＡ分の時間が４ｍｓとなるので、１０００ｒｐｍ時には「ｎ＝６」とし、５０００ｒｐｍ時には「ｎ＝３０」とすることにより、回転数によらず１２０ｍｓ毎に補正係数Ｐ，Ｎを更新することができる。つまり、ｎの値は、「補正係数の算出周期／１点火当りの時間」として求めることができる。
［第３実施形態］
次に、第３実施形態の信号処理装置について説明する。
【０１６７】
第３実施形態の信号処理装置では、第１実施形態と比較すると、入力ＩＣ１１で行われる処理が、図７から図１３のように変更されている。そこで以下、相違する部分について説明する。
【０１６８】
図１３に示すように、本第２実施形態では、図７の処理に対して、Ｓ４３５の処理が削除されており、Ｓ４３０からＳ４４０へそのまま進むようになっている。
また、その代わりに、Ｓ５０５の処理が追加されており、上記Ｓ４４０でカウンタＣｎｔの値が４であると判定した場合には、そのＳ５０５へ移行する。そして、Ｓ５０５では、Ｓ４２０で今回受信した受信データがコマンドＡであるか否かを判定し、コマンドＡであればＳ４５０に進み、コマンドＡでなければ、今回受信したデータがコマンドＢであると判断して、図８のＳ５１０へ移行する。
【０１６９】
更に、本第３実施形態では、図１４に示すように、処理ＩＣ１３から入力ＩＣ１１へ送信されるコマンドＢにおけるコマンドコード（先頭２ビット）以外のビットが、コマンドＡと同じ構成になっている（図２（ａ）参照）。つまり、入力ＩＣ１１に対しては、コマンドＢによっても、マルチプレクサ１９に選択させる入力チャンネルとアンプ２１のゲインなどを指示することができるようになっている。
【０１７０】
このような第３実施形態において、入力ＩＣ１１では、チップセレクト信号ＣＳがローになってから、Ｓ４４８で補正係数Ｐ，Ｎが算出されるよりも前に、もし、処理ＩＣ１３がコマンドＢの送信を開始したとしても（つまり、コマンドＡの送信回数が４回未満であったとしても）、Ａ／Ｄ変換器１７によるノックセンサ信号のＡ／Ｄ変換は開始されず、基準Ａ，Ｂ，ＣのＡ／Ｄ変換及びＳ４４８での補正係数Ｐ，Ｎの算出が完了してから、ノックセンサ信号のＡ／Ｄ変換が開始されることとなる。
【０１７１】
尚、この場合、入力ＩＣ１１では、Ｓ４４０でカウンタＣｎｔの値が３であると判定した場合（つまり、４回目の通信が終わった場合）に実行されるＳ４５０にて、その４回目の通信で受信したコマンドＢに従い、マルチプレクサ１９が選択する入力チャンネルやアンプ２１のゲインが設定され、これにより、ノックセンサ信号をＡ／Ｄ変換する準備が整うこととなる。
【０１７２】
このような第３実施形態によれば、仮に、エンジンの急加速などにより、前回の気筒のノック判定区間が終了してから、急に次の気筒についてのノックセンサ信号の取り込みを開始するべく処理ＩＣ１３から入力ＩＣ１１へコマンドＢが出力されたとしても、最新の補正係数Ｐ，Ｎを確実に求めた後で、通常のノックセンサ信号のＡ／Ｄ変換を開始することとなり、センサＡ／Ｄ値を適切に補正して、そのセンサＡ／Ｄ値の精度を確保することができる。
［第４実施形態］
次に、第４実施形態の信号処理装置について説明する。
【０１７３】
まず、第４実施形態の信号処理装置では、第１実施形態と比較すると、コマンドＢのデータフォーマットが、第３実施形態と同じになっている（図１４参照）。
そして、入力ＩＣ１１で行われる図７及び図８の処理において、Ｓ４３５からＳ５１０へ移行した際の、その回のＳ５１０では、今回受信したデータがコマンドＢであるか否かの確認に加えて、図７のＳ４５０と同様の処理を行う。即ち、今回のＳ４２０で受信したコマンドＢの指示内容に従って、マルチプレクサ１９が選択する入力チャンネルとアンプ２１のゲインを設定する。
【０１７４】
このような第４実施形態において、入力ＩＣ１１では、チップセレクト信号ＣＳがローになってから、Ｓ４４８で補正係数Ｐ，Ｎが算出されるよりも前に、もし、処理ＩＣ１３がコマンドＢの送信を開始した場合（つまり、コマンドＡの送信回数が４回未満であった場合）には、Ｓ４３５からＳ５１０へ移行するため、補正係数Ｐ，Ｎの算出動作を中断して、Ａ／Ｄ変換器１７によるノックセンサ信号の一定時間毎のＡ／Ｄ変換を開始することとなる。また、この場合、Ｓ５１５の補正処理では、ｒａｍＢ及び補正係数Ｐ，Ｎとして、前回に算出された値を用いる。
【０１７５】
このような第４実施形態によれば、仮に、エンジンの急加速などにより、前回の気筒のノック判定区間が終了してから、急に次の気筒についてのノックセンサ信号の取り込みを開始するべく処理ＩＣ１３から処理ＩＣ１１へコマンドＢが出力された場合には、Ａ／Ｄ変換器１７によるノックセンサ信号のＡ／Ｄ変換を速やかに開始して、入力ＩＣ１１から処理ＩＣ１３へのセンサＡ／Ｄ値の供給を開始することができる。
［第５実施形態］
ところで、上記第１実施形態の入力ＩＣ１１では、補正係数Ｐ，Ｎを算出するための基準Ａ，Ｂ，ＣのＡ／Ｄ変換を終えるまでは、アンプ２１のゲインを１倍に固定設定するようにしていたが、図７のＳ４４１にて、Ｓ４２０で受信したコマンドＡに従いアンプ２１のゲインを設定するように構成しても良い。つまり、基準Ａ，Ｂ，ＣのＡ／Ｄ変換を行う段階から、アンプ２１のゲインを処理ＩＣ１３から指示されるゲインに設定するのである。尚、この場合、図７のＳ４５０でアンプ２１のゲインを設定し直す必要はない。
【０１７６】
そして、この場合、基準Ａ，Ｂ，Ｃ（３．７５Ｖ，２．５Ｖ，１．２５Ｖ）のＡ／Ｄ変換を行う際には、アンプ２１に入力したとするとアンプ２１からＡ／Ｄ変換器１７への電圧が理論上３．７５Ｖ，２．５Ｖ，１．２５Ｖのそれぞれになると考えられる各電圧を、マルチプレクサ１９からアンプ２１に切り替えて入力させるように構成すれば良い。
【０１７７】
例えば、アンプ２１のゲインが１倍と５倍との何れかに切り替えられることを想定した場合を例に挙げて説明する。
まず、アンプ２１のゲインが５倍に設定された場合、アンプ２１の出力電圧が理論上基準Ａ（３．７５Ｖ）となるアンプ２１への入力電圧は、２．７５Ｖ（＝２．５Ｖ＋（３．７５−２．５）／５）であり、アンプ２１の出力電圧が理論上基準Ｃ（１．２５Ｖ）となるアンプ２１への入力電圧は、２．２５Ｖ（＝２．５Ｖ−（２．５−１．２５）／５）である。また、アンプ２１の出力電圧が理論上基準Ｂ（２．５Ｖ）となるアンプ２１への入力電圧は、そのまま２．５Ｖである。
【０１７８】
このため、まず図１５に示すように、電源電圧を６つの直列な抵抗Ｒ１〜Ｒ６によって分圧することにより、３．７５Ｖと２．７５Ｖと２．５Ｖと２．２５Ｖと１．２５Ｖとのそれぞれを生成して、その各電圧をマルチプレクサ１９の異なるチャンネルにそれぞれ入力しておく。尚、図１５では、２．７５Ｖを基準Ｄと記載し、２．２５Ｖを基準Ｅと記載している。また、この例では、抵抗Ｒ１〜Ｒ６とマルチプレクサ１９が補正値算出手段の一部に相当する。
【０１７９】
そして、図７のＳ４４１にて、アンプ２１のゲインが５倍に設定された場合、図７のＳ４４４では、マルチプレクサ１９に２．７５Ｖ（基準Ｄ）が入力されたチャンネルを選択させることで、基準Ａに該当する３．７５ＶがＡ／Ｄ変換器１７に入力されるようにし、図７のＳ４４６では、マルチプレクサ１９に２．２５Ｖ（基準Ｅ）が入力されたチャンネルを選択させることで、基準Ｃに該当する１．２５ＶがＡ／Ｄ変換器１７に入力されるようにすれば良い。
【０１８０】
また、図７のＳ４４１にて、アンプ２１のゲインが１倍に設定された場合には、図７に示されている通り、Ｓ４４４では、マルチプレクサ１９に３．７５Ｖ（基準Ａ）が入力されたチャンネルを選択させ、Ｓ４４６では、マルチプレクサ１９に１．２５Ｖ（基準Ｃ）が入力されたチャンネルを選択させるようにすれば良い。
【０１８１】
以上のような構成によれば、センサＡ／Ｄ値の補正を、アンプ２１のゲインまで含めて行うことができる。図７のＳ４４８（図９（Ａ）の補正係数算出処理）で算出される補正係数Ｐ，Ｎが、アンプ２１のゲインのばらつきまでも含めてセンサＡ／Ｄ値を補正可能なものとなるからである。
［変形例１］
上記各実施形態の信号処理装置において、ノックセンサ信号の振動の中心電圧は、電源電圧を抵抗で分圧した２．５Ｖが入力されたバッファ回路２０の出力電圧となっている。
【０１８２】
このため、上記各実施形態の信号処理装置は、以下のように変形することができる。
まず、図１５に示すように、入力ＩＣ１１において、バッファ回路２０の出力電圧をマルチプレクサの何れかのチャンネルに入力しておく。尚、図１５では、バッファ回路２０の出力電圧を基準Ｆと記載している。
【０１８３】
そして、入力ＩＣ１１では、例えばチップセレクト信号ＣＳがローになってから処理ＩＣ１３との最初の通信時に、バッファ回路２０の出力電圧をマルチプレクサ１９に選択させてＡ／Ｄ変換器１７によりＡ／Ｄ変換し、そのＡ／Ｄ変換値をｒａｍＦとして記憶する。
【０１８４】
そして更に、図７のＳ５１５で実行される図９（Ｂ）の補正処理におけるＳ６３０では、式３に代えて、下記式４の演算を行う。
ＡＤａｍ＝センサＡ／Ｄ値−ｒａｍＦ  …式４
つまり、ノックセンサ信号の中心電圧として、それの本当の値であるバッファ回路２０の出力電圧を、Ａ／Ｄ変換器１７でＡ／Ｄ変換し、そのＡ／Ｄ変換値（＝ｒａｍＦ）を、センサＡ／Ｄ値から減算することにより、そのセンサＡ／Ｄ値を、ノックセンサ信号の振幅を表す値（中心電圧を基準にした値）ＡＤａｍへと変換するのである。
【０１８５】
そして、このようにすれば、センサＡ／Ｄ値の基準値変換を、バッファ回路２０の特性（例えばオフセット電圧など）に影響されずに正確に行うことができる。
［変形例２］
上記各実施形態の信号処理装置では、前回の気筒のノック判定区間が終了した後、次の気筒についてのノックセンサ信号のＡ／Ｄ変換が開始される直前に、補正係数Ｐ，Ｎの算出動作（即ち、基準Ａ〜ＣのＡ／Ｄ変換と補正係数算出処理）を行うようにしていたが、補正係数Ｐ，Ｎの算出動作は、図１６に例示するように、前回の気筒のノック判定区間が終了した直後に行うように構成することもできる。
【０１８６】
そして、このように構成すれば、エンジンの回転変動などにより、前回の気筒のノック判定区間が終了してから、急に次の気筒についてのノックセンサ信号の取り込みを開始する場合でも、確実に最新の補正係数Ｐ，Ｎを算出して適切な補正を実施することができるようになる。
【０１８７】
尚、図１６の例では、各気筒のノック判定区間が終了すると、処理ＩＣ１３から入力ＩＣ１１へ第３のコマンドであるコマンドＣ（ｃｍｄＣ）が送信され、入力ＩＣ１１では、そのコマンドＣを受けると、補正係数Ｐ，Ｎの算出動作を開始する。そして、補正係数Ｐ，Ｎの算出が終了した後、処理ＩＣ１３から入力ＩＣ１１へのチップセレクト信号ＣＳがローからハイになり、その後、処理ＩＣ１３にて、図５のＳ１２０〜Ｓ１６０に相当する処理などが終了すると、チップセレクト信号ＣＳがローになる。そして、チップセレクト信号ＣＳがローになると、処理ＩＣ１３から入力ＩＣ１１へ、コマンドＡが１回送信され、その後は、次のノック判定区間が終了するまでの間、処理ＩＣ１３から入力ＩＣ１１へコマンドＢが送信されると共に、その各通信と並行して、ノックセンサ信号のＡ／Ｄ変換が実施される。
［変形例３］
図１７（Ａ），（Ｂ）のそれぞれに例示するように、入力ＩＣ１１では、Ａ／Ｄ変換器１７に基準Ａ，Ｂ，Ｃをそれぞれ複数回Ａ／Ｄ変換させると共に、その複数回のＡ／Ｄ変換値を平均化した値を用いて、補正係数Ｐ，Ｎを算出するように構成しても良い。つまり、基準Ｂの複数回のＡ／Ｄ変換値を平均化した値をｒａｍＢとし、基準Ａの複数回のＡ／Ｄ変換値を平均化した値をｒａｍＡとし、基準Ｃの複数回のＡ／Ｄ変換値を平均化した値をｒａｍＣとして、図９（Ａ），（Ｂ）に示した各処理を行うようにする。
【０１８８】
そして、このような構成によれば、基準Ａ，Ｂ，ＣのＡ／Ｄ変換時において、Ａ／Ｄ変換器１７への入力電圧にノイズが乗ったとしても、そのノイズの影響（即ち、算出される補正係数への影響）を小さく抑えることができる。
【０１８９】
尚、図１７（Ａ）は、基準Ｂを連続３回Ａ／Ｄ変換し、次に基準Ａを連続３回Ａ／Ｄ変換し、次に基準Ｃを連続３回Ａ／Ｄ変換する場合を示している。また、図１７（Ｂ）は、基準Ａ，Ｂ，Ｃを、基準Ｂ，基準Ａ，基準Ｃの順に３回繰り返してＡ／Ｄ変換する場合を示している。
［変形例４］
図１８に例示するように、入力ＩＣ１１では、図９（Ａ）の処理によって算出した複数の補正係数Ｐ，Ｎを、ＰとＮ毎にそれぞれ平均化し、その平均化した補正係数（平均補正係数）Ｐ，Ｎを用いて、図９（Ｂ）の補正処理を実施するように構成しても良い。そして、このような構成によっても、上記変形例３と同様の効果を得ることができる。
【０１９０】
尚、図１８は、前回の気筒のノック判定区間が終了した後、次の気筒のノック判定区間が始まる前に、基準Ａ，Ｂ，Ｃを、図１７（Ｂ）のように、基準Ｂ，基準Ａ，基準Ｃの順に３回繰り返してＡ／Ｄ変換すると共に、その各サイクル毎に補正係数Ｐ，Ｎの算出を行い、その３回分の補正係数Ｐ，Ｎを平均化する場合を示している。
【０１９１】
一方、図１８とは異なる手法として、前回の気筒のノック判定区間が終了した後、次の気筒のノック判定区間が始まる前に、補正係数Ｐ，Ｎを１回だけ算出すると共に、その今回の補正係数Ｐ，Ｎと過去に算出した補正係数Ｐ，Ｎとを平均化するようにしても良い。また、この場合、平均化する処理としては、単に平均値を求める処理に限らず、いわゆるなまし処理でも良い。
【０１９２】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【０１９３】
例えば、ノックセンサは、振動式センサに限らず、気筒内の圧力を検出する筒内圧センサ（ＣＰＳ）や、イオン電流を表す信号を出力するセンサでも良い。
また、基準電圧（基準Ａ，Ｂ，Ｃ）をＡ／Ｄ変換する順序は、図４のような基準Ｂ→基準Ａ→基準Ｃの順に限らず、例えば、基準Ａ→基準Ｂ→基準Ｃなどとしても良い。
【０１９４】
一方、図５の処理は、３０°ＣＡ毎に限らず、他の一定クランク角度毎（例えば１０°ＣＡ毎）に実行されるようにしても良い。また、図５の処理は、角度を時間に換算しフリーランタイマを使って起動されるものとしても良い。つまり、一定クランク角度分の時間（クランク軸が一定角度回転するのに要する時間）を推定し、その時間毎にフリーランタイマを利用したタイマ割込みなどにより図５の処理が起動されるように構成することもできる。
【図面の簡単な説明】
【０１９５】
【図１】第１実施形態のノックセンサ信号処理装置を表す構成図である。
【図２】通信データのフォーマットを表す図である。
【図３】入力ＩＣと処理ＩＣとで実施される通信の概要を表すタイムチャートである。
【図４】入力ＩＣの動作及び入力ＩＣと処理ＩＣとで実施される通信の概要を表すタイムチャートである。
【図５】処理ＩＣのＣＰＵで実行される３０°ＣＡ割込処理を表すフローチャートである。
【図６】処理ＩＣの通信部で実行される処理を表すフローチャートである。
【図７】入力ＩＣで実行される処理を表すフローチャートの、その１である。
【図８】入力ＩＣで実行される処理を表すフローチャートの、その２である。
【図９】補正係数算出処理と補正処理を表すフローチャートである。
【図１０】Ａ／Ｄ変換誤差の特性を表すグラフである。
【図１１】第２実施形態を説明するフローチャートである。
【図１２】第２実施形態を説明するグラフである。
【図１３】第３実施形態を説明するフローチャートである。
【図１４】第３実施形態のコマンドＢ（ｃｍｄＢ）を説明する説明図である。
【図１５】第５実施形態及び変形例１を説明する説明図である。
【図１６】変形例２を説明する説明図である。
【図１７】変形例３を説明する説明図である。
【図１８】変形例４を説明する説明図である。
【符号の説明】
【０１９６】
１〜５…信号線、１１…入力ＩＣ（第１装置）、１３…処理ＩＣ（第２装置）、１５，３１…通信部、１７…Ａ／Ｄ変換器、１９…マルチプレクサ（ＭＰＸ）、２０…バッファ回路、２１…アンプ、２３…タイマ、２５…制御部、２７，２９…ノックセンサ、３３…回転処理部、３５…デジタルフィルタ、３７…メモリ、４１〜４５…レジスタ、４６…送信データレジスタ、４７…受信データレジスタ、５１，５３…入力回路、Ｒ１〜Ｒ６…抵抗
【図１】
2007171142.tif 000003
【図２】
2007171142.tif 000004
【図３】
2007171142.tif 000005
【図４】
2007171142.tif 000006
【図５】
2007171142.tif 000007
【図６】
2007171142.tif 000008
【図７】
2007171142.tif 000009
【図８】
2007171142.tif 000010
【図９】
2007171142.tif 000011
【図１０】
2007171142.tif 000012
【図１１】
2007171142.tif 000013
【図１２】
2007171142.tif 000014
【図１３】
2007171142.tif 000015
【図１４】
2007171142.tif 000016
【図１５】
2007171142.tif 000017
【図１６】
2007171142.tif 000018
【図１７】
2007171142.tif 000019
【図１８】
2007171142.tif 000020