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