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