(57)【要約】【課題】Ａ／Ｄ変換器の異常検出装置の信頼性を向上させる。【解決手段】ＥＣＵ１は、センサ３からの同じアナログ信号を２つのＡ／Ｄ変換器５，１５でＡ／Ｄ変換した各Ａ／Ｄ変換結果が入力される異常判定部２１を備え、その異常判定部２１は、入力される２つのＡ／Ｄ変換結果を比較することにより、Ａ／Ｄ変換器５，１５のうちの何れかに異常が生じているＡ／Ｄ異常状態であるか否かを判定する。そして更に、ＥＣＵ１は、異常判定部２１が正常に機能するか否かを検査する手段として、一方のＡ／Ｄ変換器５によるＡ／Ｄ変換結果の代わりに、異常判定部２１がＡ／Ｄ異常状態であると判定するはずのＮＧデータを、異常判定部２１に入力して、異常判定部２１がＡ／Ｄ異常状態であると判定するか否かを確認するデータ選択部２３及び異常判定保証部２５を備える。このため、異常判定部２１の正常性を保証することができる。【選択図】図１
2014107632.tif 000002
【特許請求の範囲】
【請求項１】
同じアナログ信号を複数のＡ／Ｄ変換器（５，１５）でＡ／Ｄ変換した各Ａ／Ｄ変換結果が入力され、その入力される複数のＡ／Ｄ変換結果を比較することにより、前記複数のＡ／Ｄ変換器のうちの何れかに異常が生じている異常状態であるか否かを判定する異常判定手段（９，２１，Ｓ１０１〜Ｓ１０５）と、
前記異常判定手段が正常に機能するか否かを検査する検査手段（９，２３，２５，Ｓ１１０，Ｓ１２０，Ｓ１７０〜Ｓ２６０）と、
を備えていることを特徴とするＡ／Ｄ変換器の異常検出装置。
【請求項２】
請求項１に記載のＡ／Ｄ変換器の異常検出装置において、
前記検査手段は、
前記異常判定手段に入力される前記複数のＡ／Ｄ変換結果のうちの少なくとも１つの代わりに、前記異常判定手段が前記異常状態であると判定するはずの検査用データを、前記異常判定手段に入力して、前記異常判定手段が前記異常状態であると判定するか否かを判定し、前記異常判定手段が前記異常状態であると判定しないことを条件にして、前記異常判定手段が異常であると判定すること、
を備えていることを特徴とするＡ／Ｄ変換器の異常検出装置。
【請求項３】
請求項２に記載のＡ／Ｄ変換器の異常検出装置において、
前記検査手段は、定期的に動作すること、
を特徴とするＡ／Ｄ変換器の異常検出装置。
【請求項４】
請求項２又は請求項３に記載のＡ／Ｄ変換器の異常検出装置において、
前記検査手段により前記異常判定手段が異常であると判定されておらず、且つ、前記検査手段が動作していない状態で前記異常判定手段が前記異常状態であると判定したことを条件にして、真の前記異常状態であると判定する最終判定手段（９，Ｓ１４０，Ｓ２８０〜Ｓ３００）を備えること、
を特徴とするＡ／Ｄ変換器の異常検出装置。
【請求項５】
請求項４に記載のＡ／Ｄ変換器の異常検出装置において、
前記検査手段により前記異常判定手段が異常であると判定された場合、あるいは、前記最終判定手段により真の前記異常状態であると判定された場合に、前記複数のＡ／Ｄ変換結果のうちの何れかを用いて制御対象を制御するための処理を行う制御部（９，１９）に対し、前記何れかのＡ／Ｄ変換結果に代えて、予め定められたフェイルセーフ用のデータを供給するフェイルセーフ手段（９，Ｓ２７０，Ｓ３１０）を備えること、
を特徴とするＡ／Ｄ変換器の異常検出装置。
【請求項６】
請求項２ないし請求項５の何れか１項に記載のＡ／Ｄ変換器の異常検出装置において、
前記検査手段は、
前記複数のＡ／Ｄ変換結果のうちの何れかの、全ビットを反転させたデータを、前記検査用データとして、前記異常判定手段に入力すること、
を特徴とするＡ／Ｄ変換器の異常検出装置。
【請求項７】
請求項２ないし請求項５の何れか１項に記載のＡ／Ｄ変換器の異常検出装置において、
前記検査手段は、
前記アナログ信号の変動範囲を超えた電圧を表すデータを、前記検査用データとして、前記異常判定手段に入力すること、
を特徴とするＡ／Ｄ変換器の異常検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ａ／Ｄ変換器の異常検出装置に関する。
【背景技術】
【０００２】
Ａ／Ｄ変換器の異常を検出する装置として、同じアナログ信号を２つのＡ／Ｄ変換器でＡ／Ｄ変換（アナログ／デジタル変換）するようにし、その２つのＡ／Ｄ変換器によるＡ／Ｄ変換結果を比較して、それらに所定値以上の差があれば、Ａ／Ｄ変換器の何れかに異常が生じていると判定するものがある（例えば、特許文献１参照）。尚、Ａ／Ｄ変換結果とは、Ａ／Ｄ変換した結果のデータである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２２５３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の装置においては、２つのＡ／Ｄ変換器によるＡ／Ｄ変換結果を比較して異常の有無を判定する異常判定機能（異常検出機能でもある）に異常が生じてしまうと、Ａ／Ｄ変換器の異常を正しく検出することができなくなる。
【０００５】
特に、異常判定機能に異常が生じて、２つのＡ／Ｄ変換結果に所定値以上の差があっても異常と判定しなくなってしまうと、Ａ／Ｄ変換器に異常が生じた場合に、その異常を検出することができなくなる。すると、何れかのＡ／Ｄ変換器によるＡ／Ｄ変換結果を制御対象の制御に用いる制御システムにおいて、正しくないＡ／Ｄ変換結果に基づき制御対象が制御されてしてしまう可能性が生じる。
【０００６】
そこで、本発明は、Ａ／Ｄ変換器の異常検出装置の信頼性を向上させること、を目的としている。
【課題を解決するための手段】
【０００７】
本発明のＡ／Ｄ変換器の異常検出装置は、同じアナログ信号を複数のＡ／Ｄ変換器でＡ／Ｄ変換した各Ａ／Ｄ変換結果が入力される異常判定手段を備える。そして、異常判定手段は、入力される複数のＡ／Ｄ変換結果を比較することにより、複数のＡ／Ｄ変換器のうちの何れかに異常が生じている異常状態であるか否かを判定する。
【０００８】
更に、この異常検出装置は、異常判定手段が正常に機能するか否かを検査する検査手段を備えている。このため、その検査手段により、異常判定手段が正常に機能しなくなったこと（即ち、異常判定手段の異常）を検出することができ、異常になった異常判定手段の判定結果を無効化する処置を行うことができる。よって、Ａ／Ｄ変換器の異常を正しく検出することについて、当該異常検出装置の信頼性を向上させることができる。
【０００９】
また、検査手段によって異常判定手段が異常であると判定されていない状態において、異常判定手段が前記異常状態であると判定した場合には、本当に前記異常状態であると結論付けることができる。検査手段により異常判定手段の正常性が保証されているからである。よって、Ａ／Ｄ変換器の異常検出について正確性を確保することができる。
【００１０】
また、検査手段により異常判定手段が異常であると判定された場合には、複数のＡ／Ｄ変換器のうちの何れかに異常が生じても、そのことを検出できる保証はないことから、複数のＡ／Ｄ変換器による何れのＡ／Ｄ変換結果も制御対象を制御するための処理に用いられないようにして、正しくないかも知れないＡ／Ｄ変換結果に基づき制御対象が制御されてしまうことを防止することができる。換言すれば、正しくないＡ／Ｄ変換結果に基づき制御対象が制御されてしまう可能性をなくすことができる。
【００１１】
一方、構成例として、例えば検査手段は、異常判定手段に入力される複数のＡ／Ｄ変換結果のうちの少なくとも１つの代わりに、異常判定手段が前記異常状態であると判定するはずの検査用データを、異常判定手段に入力して、異常判定手段が前記異常状態であると判定するか否かを判定し、異常判定手段が前記異常状態であると判定しないことを条件にして、異常判定手段が異常であると判定するように構成することができる。そして、このように構成することで、異常判定手段が正常に機能するか否かの検査を、確実に実施することができる。また、検査手段は、定期的に動作するように構成することができる。また、検査手段により異常判定手段が異常であると判定されておらず、且つ、検査手段が動作していない状態で異常判定手段が前記異常状態であると判定したことを条件にして、真の前記異常状態である（つまり、本当に前記異常状態である）と判定する最終判定手段を備えれば、前述したように、Ａ／Ｄ変換器の異常検出について正確性を確保することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態の電子制御装置（ＥＣＵ）を表す構成図である。
【図２】マイコンのＣＰＵが行う処理のうち、異常判定部としての処理を表すフローチャートである。
【図３】マイコンのＣＰＵが行う処理のうち、データ選択部及び異常判定保証部としての処理を表すフローチャートである。
【図４】電子制御装置の作用表す第１のタイムチャートである。
【図５】電子制御装置の作用表す第２のタイムチャートである。
【図６】電子制御装置の作用表す第３のタイムチャートである。
【図７】電子制御装置の作用表す第４のタイムチャートである。
【発明を実施するための形態】
【００１３】
以下に、本発明が適用された実施形態の電子制御装置について説明する。尚、本実施形態の電子制御装置（以下、ＥＣＵという）は、例えば、自動車のエンジンを制御する装置である。
【００１４】
図１に示すように、本実施形態のＥＣＵ１には、エンジンの制御に用いられるセンサ３からのアナログ信号（以下、センサ信号という）が入力される。尚、本実施形態において、センサ３は、例えば、自動車の運転者によるアクセルペダルの操作量を検出するアクセルセンサであり、センサ信号は、アクセルペダルの操作量に応じた電圧の信号であるが、センサ３は、他のセンサであっても勿論良い。例えば、センサ３が、エンジンへの吸入空気量を検出する吸気量センサであれば、センサ信号は、吸入空気量に応じた電圧の信号となる。
【００１５】
そして、ＥＣＵ１は、センサ３からのセンサ信号をＡ／Ｄ変換するＡ／Ｄ変換器（ＡＤＣ）５と、マイコン７とを備えている。
また、マイコン７は、ＣＰＵ９と、ＣＰＵ９が実行するプログラムや固定の制御データ等が記憶されたＲＯＭ１１と、ＣＰＵ９による演算結果や演算対象のデータ等が記憶されるＲＡＭ１３と、センサ信号をＡ／Ｄ変換するＡ／Ｄ変換器（ＡＤＣ）１５と、を備えている。
【００１６】
つまり、ＥＣＵ１において、センサ信号は、マイコン７の外部のＡ／Ｄ変換器５と、マイコン７の内部のＡ／Ｄ変換器１５とにより、Ａ／Ｄ変換される。
そして、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果は、マイコン７に入力される。そして更に、マイコン７の内部において、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果と、Ａ／Ｄ変換器１５によるＡ／Ｄ変換結果とが比較されることにより、Ａ／Ｄ変換器５，１５の異常（詳しくは、Ａ／Ｄ変換器５，１５のうちの何れかに異常が生じていること）が検出される。
【００１７】
次に、マイコン７のＣＰＵ９が行う処理について説明する。
マイコン７は、ＣＰＵ９がＲＯＭ１１内のプログラムを実行することで実現される機能ブロックとして、物理値変換部１７と、制御部１９と、異常判定部２１と、データ選択部２３と、異常判定保証部２５とを備えている。そして、データ選択部２３には、ＮＧデータ生成部２４が含まれている。換言すれば、ＣＰＵ９は、ＲＯＭ１１内のプログラムを実行することにより、物理値変換部１７と、制御部１９と、異常判定部２１と、ＮＧデータ生成部２４を含むデータ選択部２３と、異常判定保証部２５との、各々として機能する。
【００１８】
物理値変換部１７は、Ａ／Ｄ変換器５，１５のうちの何れか（本実施形態ではＡ／Ｄ変換器５）によるＡ／Ｄ変換結果を入力して、そのＡ／Ｄ変換結果が表す電圧値を、検出対象の物理値(本実施形態ではアクセルペダルの操作量）に変換する。
【００１９】
制御部１９は、物理値変換部１７によって変換された物理値を用いてエンジンを制御するための処理を行う。例えば、制御部１９は、アクセルペダルの操作量に応じて、エンジンの出力を増減させる。
【００２０】
異常判定部２１には、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果と、Ａ／Ｄ変換器１５によるＡ／Ｄ変換結果とが、入力データとして入力される。そして、異常判定部２１は、図２に示すように、２つの入力データを比較して、両入力データの差（詳しくは、差の絶対値）が所定値Ｎｔｈ以上であるか否かを判定し（Ｓ１０１）、差が所定値Ｎｔｈ以上でなければ（Ｓ１０１：ＮＯ）、Ａ／Ｄ変換器５，１５は正常であると判定する（Ｓ１０３）。また、上記差が所定値Ｎｔｈ以上であれば（Ｓ１０１：ＹＥＳ）、Ａ／Ｄ変換器５，１５のうちの何れかが異常である（換言すれば、Ａ／Ｄ変換器５，１５のうちの何れかに異常が生じている異常状態である）と判定する（Ｓ１０５）。
【００２１】
尚、以下では、Ａ／Ｄ変換器５，１５のうちの何れかに異常が生じている異常状態のことを、Ａ／Ｄ異常状態という。また、異常判定部２１は、例えば、一定時間毎に動作して図２の処理を行う。
【００２２】
データ選択部２３は、異常判定部２１への入力データの一方（本実施形態では、Ａ／Ｄ変換器１５によるＡ／Ｄ変換結果でない方）を、所定の頻度で、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果から、異常判定部２１がＡ／Ｄ異常状態であると判定するはずの検査用データ（以下、ＮＧデータという）に切り替える。
【００２３】
つまり、Ａ／Ｄ変換器５，１５による各Ａ／Ｄ変換結果のうち、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果の方は、データ選択部２３を介して、異常判定部２１に入力されるようになっている。そして、データ選択部２３は、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果と、ＮＧデータとを、切り替えて、異常判定部２１に入力する。本実施形態では、例えば、データ選択部２３は、異常判定部２１が３回動作するうちの１回の割合で、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果の代わりに、ＮＧデータを異常判定部２１に入力する。
【００２４】
また、データ選択部２３は、ＮＧデータを、ＮＧデータ生成部２４によって生成する。そして、ＮＧデータ生成部２４は、例えば、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果の全ビットを反転させたデータを、ＮＧデータとして生成する。
【００２５】
尚、他の例として、ＮＧデータ生成部２４は、他方のＡ／Ｄ変換器１５によるＡ／Ｄ変換結果の全ビットを反転させたデータを、ＮＧデータとして生成するようになっていても良い。また、ＮＧデータ生成部２４は、Ａ／Ｄ変換器５，１５によるＡ／Ｄ変換結果を用いずに、センサ信号の変動範囲を超えた電圧を表すデータを、ＮＧデータとして生成するようになっていても良い。例えば、センサ信号の変動範囲が０Ｖ〜５Ｖであるとすると、５Ｖよりも大きい例えば６Ｖを表すデータを、ＮＧデータとすることができる。また例えば、ＮＧデータ生成部２４は、Ａ／Ｄ変換器５，１５の何れかによるＡ／Ｄ変換結果に上記所定値Ｎｔｈよりも大きい値を加算または減算した値を、ＮＧデータとして生成するようになっていても良い。
【００２６】
異常判定保証部２５は、データ選択部２３が異常判定部２１にＮＧデータを入力した場合に、異常判定部２１が、正しく、Ａ／Ｄ異常状態であると判定するか否かを確認することにより、異常判定部２１の異常を検出する。
【００２７】
本実施形態では、前述したように、異常判定部２１には、該異常判定部２１が３回動作するうちの１回の割合でＮＧデータが入力されるため、異常判定保証部２５は、異常判定部２１の判定結果が「“正常”→“正常”→“異常”→“正常”→“正常”→“異常”…」と変化することを確認する。尚、異常判定部２１の判定結果が“正常”とは、「異常判定部２１が、Ａ／Ｄ変換器５，１５は正常であると判定した」ということであり、異常判定部２１の判定結果が“異常”とは、「異常判定部２１が、Ａ／Ｄ異常状態である（Ａ／Ｄ変換器５，１５のうちの何れかが異常である）と判定した」ということである。
【００２８】
次に、ＣＰＵ９が行う処理のうち、データ選択部２３及び異常判定保証部２５としての処理について、図３を用い説明する。尚、図３の処理は、異常判定部２１の動作周期と同じ一定時間毎（例えば、４ｍｓ毎）に実行される。また、図３の処理のうち、Ｓ１１０〜Ｓ１３０及びＳ１７０〜Ｓ１９０の処理が、データ選択部２３としての処理であり、Ｓ１４０〜Ｓ１６０及びＳ２００〜Ｓ３１０の処理が、異常判定保証部２５としての処理である。
【００２９】
図３に示すように、ＣＰＵ９は、データ選択部２３及び異常判定保証部２５としての処理を開始すると、まずＳ１１０にて、サイクルカウンタの値が２であるか否かを判定する。
【００３０】
サイクルカウンタは、今回の処理において、異常判定部２１にＮＧデータを入力するか否かを決定するためのカウンタである。そして、本実施形態では、サイクルカウンタを０〜２の範囲でラップラウンドさせており（図４参照）、サイクルカウンタの値が２から０に戻る回において、異常判定部２１へ、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果の代わりに、ＮＧデータを入力するようになっている。
【００３１】
また、以下の説明において、異常判定部２１に、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果と、Ａ／Ｄ変換器１５によるＡ／Ｄ変換結果とを入力する場合のことを、ＯＫパターンといい、異常判定部２１への入力データの少なくとも一方として、ＮＧデータを入力する場合のことを、ＮＧパターンという。そして、Ａ／Ｄ変換器５，１５及び異常判定部２１が正常であれば、ＯＫパターンでは、異常判定部２１の判定結果が“正常”になる。また、異常判定部２１が正常であれば、ＮＧパターンでは、異常判定部２１の判定結果が“異常”になる。ＮＧデータは、異常判定部２１の判定結果が“異常”になることを期待した検査用データであるからである。
【００３２】
図３に戻り、ＣＰＵ９は、Ｓ１１０にて、サイクルカウンタの値が２でないと判定した場合には、今回がＯＫパターンであると判断して、Ｓ１２０に進み、サイクルカウンタをインクリメント（＋１）する。
【００３３】
次に、ＣＰＵ９は、Ｓ１３０にて、異常判定部２１への入力データの一方として、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果を選択する。そして、異常判定部２１を起動する。すると、ＣＰＵ９は、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果と、Ａ／Ｄ変換器１５によるＡ／Ｄ変換結果とを、２つの入力データとして、前述した図２の処理（即ち、異常判定部２１としての処理）を行うこととなる。
【００３４】
そして、ＣＰＵ９は、次のＳ１４０にて、異常判定部２１の判定結果が“正常”であるか否かを判定し、異常判定部２１の判定結果が“正常”であれば、次のＳ１５０にて、異常判定保証部２５の判定結果を‘正常’に設定する。そして更に、次のＳ１６０にて、Ａ／Ｄ変換器用異常カウンタをクリアし（０にし）、その後、当該図３の処理を終了する。尚、本実施形態において、異常判定保証部２５の判定結果が‘正常’とは、「異常判定保証部２５が、異常判定部２１は正常と判定した」ということを意味する。また、Ａ／Ｄ変換器用異常カウンタは、Ａ／Ｄ異常状態の検出回数を計数するためのカウンタである。
【００３５】
一方、ＣＰＵ９は、上記Ｓ１１０にて、サイクルカウンタの値が２であると判定した場合には、今回がＮＧパターンであると判断して、Ｓ１７０に移行し、サイクルカウンタをクリアする（０にする）。
【００３６】
そして、ＣＰＵ９は、次のＳ１８０にて、ＮＧデータ生成部２４として機能して、ＮＧデータを、前述した何れかの方法により生成し、続くＳ１９０にて、異常判定部２１への入力データの一方として、ＮＧデータを選択する。そして、異常判定部２１を起動する。すると、ＣＰＵ９は、ＮＧデータと、Ａ／Ｄ変換器１５によるＡ／Ｄ変換結果とを、２つの入力データとして、前述した図２の処理を行うこととなる。
【００３７】
そして、ＣＰＵ９は、次のＳ２００にて、異常判定部２１の判定結果が“異常”であるか否かを判定し、異常判定部２１の判定結果が“異常”であれば、次のＳ２１０にて、異常判定保証部２５の判定結果を‘正常’に設定する。そして更に、次のＳ２２０にて、異常判定部用異常カウンタをクリアし（０にし）、その後、当該図３の処理を終了する。尚、異常判定部用異常カウンタは、異常判定部２１の異常を検出した回数を計数するためのカウンタである。
【００３８】
また、ＣＰＵ９は、上記Ｓ２００にて、異常判定部２１の判定結果が“異常”ではない（“正常”である）と判定した場合には、Ｓ２３０に移行して、異常判定保証部２５の判定結果を‘異常’に設定する。尚、本実施形態において、異常判定保証部２５の判定結果が‘異常’とは、「異常判定保証部２５が、異常判定部２１の異常を検出した」ということを意味する。
【００３９】
そして、ＣＰＵ９は、次のＳ２４０にて、異常判定部用異常カウンタをインクリメントし、続くＳ２５０にて、その異常判定部用異常カウンタの値が、所定の閾値Ｎａ（本実施形態では例えば３）以上になったか否かを判定する。そして、異常判定部用異常カウンタの値が閾値Ｎａ以上でなければ、当該図３の処理を終了する。
【００４０】
また、上記Ｓ２５０にて、異常判定部用異常カウンタの値が閾値Ｎａ以上であると判定した場合には、Ｓ２６０に進み、異常判定部用異常確定フラグを初期値の「０」から「１」に設定すると共に、異常判定部用異常カウンタをクリアする。
【００４１】
尚、異常判定部用異常確定フラグを「１」に設定するということは、異常判定部２１が本当に異常であると判定したことを意味する。つまり、Ｓ２３０で異常判定保証部２５の判定結果を‘異常’に設定してから、異常判定部用異常カウンタの値が閾値Ｎａに達するまでは、異常判定部２１が異常であると仮の判定をしている段階であり、異常判定部用異常カウンタの値が閾値Ｎａに達したなら、Ｓ２６０にて、異常判定部用異常確定フラグを「１」に設定することにより、異常判定部２１が異常であるとの判定を確定させている。
【００４２】
そして、ＣＰＵ９は、次のＳ２７０にて、以後は、制御部１９に、物理値変換部１７からの物理値に代えて、予め定められたフェイルセーフ値（フェイルセーフ用のデータ）が供給されるようにする、フェイルセーフ手段としての処理を行う。
【００４３】
具体的には、制御部１９としての処理で参照するＲＡＭ１３の記憶領域のうち、物理値変換部１７からの物理値が記憶される記憶領域に、その物理値が書き込まれることを禁止すると共に、フェイルセーフ値を書き込む。また、フェイルセーフ値は、本実施形態では、エンジンの出力を制限するためのデータであり、例えば、アクセルペダルの操作量が所定値以下（例えば０）であることを示すデータである。また、上記物理値の元のデータは、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果であるため、Ｓ２７０では、制御部１９に、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果に代えて、フェイルセーフ用のデータが供給されるようにしていることになる。
【００４４】
そして、ＣＰＵ９は、Ｓ２７０の処理を行った後、当該図３の処理を終了する。
尚、Ｓ２６０で異常判定部用異常確定フラグが「１」に設定されると、以後は、特定の復帰条件が成立するまでは、当該図３の処理は行われず、Ｓ２７０で実施した設定（即ち、制御部１９へのフェイルセーフ値の供給）が継続する。つまり、異常判定部２１が異常であると判定して、異常判定部用異常確定フラグを「１」に設定した場合には、信憑性のない異常判定部２１の判定結果を無効化するための処置として、異常判定部２１を動作させないようにしている。また、無効化の他の処置例としては、例えば、異常判定部２１は動作させるが（異常判定部２１としての処理は行うが）、その判定結果を参照しないようにしても良い。また、復帰条件としては、例えば、ＥＣＵ１への電源供給が停止されてマイコン７がリセットされたという条件や、ＥＣＵ１の外部の装置からマイコン７へ復帰指令が与えられたという条件等、適宜設定することができる。
【００４５】
一方、ＣＰＵ９は、ＯＫパターンにおける上記Ｓ１４０にて、異常判定部２１の判定結果が“正常”でない（“異常”である）と判定した場合には、Ｓ２８０に移行する。
そして、Ｓ２８０にて、Ａ／Ｄ変換器用異常カウンタをインクリメント（＋１）し、続くＳ２９０にて、そのＡ／Ｄ変換器用異常カウンタの値が、所定の閾値Ｎｂ（本実施形態では例えば３）以上になったか否かを判定する。そして、Ａ／Ｄ変換器用異常カウンタの値が閾値Ｎｂ以上でなければ、当該図３の処理を終了する。
【００４６】
また、上記Ｓ２９０にて、Ａ／Ｄ変換用異常カウンタの値が閾値Ｎｂ以上であると判定した場合には、Ｓ３００に進み、Ａ／Ｄ変換器用異常確定フラグを初期値の「０」から「１」に設定すると共に、Ａ／Ｄ変換器用異常カウンタをクリアする。
【００４７】
尚、Ａ／Ｄ変換器用異常確定フラグを「１」に設定するということは、Ａ／Ｄ変換器５，１５の何れかが本当に異常であると判定したことを意味する。つまり、ＯＫパターンにおいて異常判定部２１の判定結果が“異常”になってから、Ａ／Ｄ変換器用異常カウンタの値が閾値Ｎｂに達するまでは、Ａ／Ｄ異常状態であると仮の判定をしている段階であり、Ａ／Ｄ変換器用異常カウンタの値が閾値Ｎｂに達したなら、Ｓ３００にて、Ａ／Ｄ変換器用異常確定フラグを「１」に設定することにより、Ａ／Ｄ異常状態であるとの判定を確定させている。換言すれば、このＳ３００にて、真のＡ／Ｄ異常状態であると判定している。
【００４８】
そして、ＣＰＵ９は、次のＳ３１０にてＳ２７０と同じ処理（制御部１９にフェイルセーフ値が供給されるようにする処理）を行い、その後、当該図３の処理を終了する。尚、Ｓ３００及びＳ３１０の処理が行われた場合にも、Ｓ２６０及びＳ２７０の処理が行われた場合と同様に、前述の復帰条件が成立するまでは、当該図３の処理は行われず、Ｓ３１０で実施した設定が継続する。
【００４９】
次に、図３の処理によるＥＣＵ１の作用について、図４〜図７を用い説明する。
図４に示すように、サイクルカウンタの値は、図３の処理が実行される一定時間毎に、１ずつ増加するが、２の次は０に戻る。そして、図３の処理が実行される各回のうち、サイクルカウンタの値がインクリメントによって１と２の各々に増加する各回は、ＯＫパターンになり、サイクルカウンタの値が２から０に戻る回は、ＮＧパターンになる。
【００５０】
ここで、異常判定部２１及びＡ／Ｄ変換器５，１５が正常である場合には、図４に示すように、ＯＫパターンにおいては、異常判定部２１の判定結果が“正常”になり、ＮＧパターンにおいては、異常判定部２１の判定結果が正しく“異常”になる。このため、異常判定部２１の判定結果は「“正常”→“正常”→“異常”→“正常”→“正常”→“異常”…」と変化することとなる。
【００５１】
そして、ＯＫパターンにおいては、図３におけるＳ１４０で「ＹＥＳ」と判定されてＳ１５０及びＳ１６０の処理が行われ、また、ＮＧパターンにおいては、図３におけるＳ２００で「ＹＥＳ」と判定されてＳ２１０及びＳ２２０の処理が行われることとなる。
【００５２】
よって、図４に示すように、異常判定保証部２５の判定結果は‘正常’のままとなり、Ａ／Ｄ変換器用異常カウンタと異常判定部用異常カウンタは０のままとなる。そして、図３のＳ２６０の処理は行われないため、異常判定部用異常確定フラグは、異常無しを示す「０」のままとなる。
【００５３】
一方、異常判定部２１が異常になって、Ａ／Ｄ異常状態であると判定しなくなった場合には、図５に示すように、ＮＧパターンにおいても、異常判定部２１の判定結果が“正常”になる。よって、ＮＧパターンにおいて、図３におけるＳ２００で「ＮＯ」と判定されることとなる。
【００５４】
このため、図５に示すように、ＮＧパターンにおいて、異常判定保証部２５の判定結果が‘異常’に設定されると共に（図３のＳ２３０）、異常判定部用異常カウンタがインクリメントされる（図３のＳ２４０）。そして、ＮＧパターンで異常判定部２１の判定結果が“正常”になる状態が続いて、異常判定部用異常カウンタの値が閾値Ｎａ（この例では３）に達すると、異常判定部２１が異常であるとの判定が確定して、異常判定部用異常確定フラグが「１」に設定されると共に、異常判定部用異常カウンタが０にクリアされる（Ｓ２６０）。
【００５５】
そして更に、図３におけるＳ２７０の処理が行われることにより、以後は、制御部１９に、物理値変換部１７からの物理値（換言すれば、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果）に代えてフェイルセーフ値が供給される。このため、異常判定部２１が正常に機能しない状態でＡ／Ｄ変換器５が異常になったとしても、エンジンの出力が過剰になってしまうことが防止される。
【００５６】
一方また、異常判定部２１がＡ／Ｄ異常状態であると判定しなくなって、ＮＧパターンでの異常判定部２１の判定結果が“正常”になっても、異常判定部用異常カウンタの値が閾値Ｎａになる前に、異常判定部２１が正常に戻ったならば、図６のようになる。
【００５７】
図６に示すように、異常判定部２１が正常に戻って、ＮＧパターンでの異常判定部２１の判定結果が“異常”になれば、その回のＮＧパターン（図６の例では右から２つ目のＮＧパターン）において、異常判定保証部２５の判定結果が‘正常’に設定されると共に（図３のＳ２１０）、異常判定部用異常カウンタが０にクリアされることとなる（図３のＳ２２０）。そして、この場合には、図３のＳ２６０の処理が行われないため、異常判定部用異常確定フラグは、異常無しを示す「０」のままとなる。
【００５８】
また、図７に示すように、Ａ／Ｄ変換器５，１５の何れかが異常になった場合には、ＯＫパターンにおいて、異常判定部２１の判定結果が“異常”になる。このため、ＯＫパターンにおいて、図３におけるＳ１４０で「ＮＯ」と判定され、ＡＤ変換器用の異常カウンタがインクリメントされる（図３のＳ２８０）。
【００５９】
そして、図７に示すように、ＯＫパターンで異常判定部２１の判定結果が“異常”になる状態が続いて、Ａ／Ｄ変換器用異常カウンタの値が閾値Ｎｂ（この例では３）に達すると、Ａ／Ｄ変換器用異常確定フラグが「１」に設定されると共に、Ａ／Ｄ変換器用異常カウンタが０にクリアされる（Ｓ３００）。
【００６０】
そして更に、図３におけるＳ３１０の処理が行われることにより、以後は、制御部１９に、物理値変換部１７からの物理値に代えてフェイルセーフ値が供給される。このため、異常になったのが、Ａ／Ｄ変換器５，１５のうち、エンジンの制御に用いられるＡ／Ｄ変換器５の方であっても、エンジンの出力が過剰になってしまうことが防止される。
【００６１】
以上のようなＥＣＵ１では、Ａ／Ｄ異常状態の有無を判定する異常判定部２１が正常に機能するか否かを検査する機能であって、図３におけるＳ１１０，Ｓ１２０，Ｓ１７０〜Ｓ２６０の処理によって実現される機能（以下、検査機能という）を備えている。
【００６２】
このため、その検査機能により、異常判定部２１の異常を検出して、異常な異常判定部２１の判定結果（即ち、信憑性のない判定結果）を無効化する処置を行うことができ、Ａ／Ｄ変換器５，１５の異常検出についての信頼性を向上させることができる。
【００６３】
また、検査機能によって異常判定部２１が異常であると判定していない状態においては、異常判定部２１の正常性が保証されているため、その異常判定部２１がＡ／Ｄ異常状態であると判定した場合には、本当にＡ／Ｄ異常状態であると結論付けることができる。
【００６４】
このため、図３におけるＳ１４０，Ｓ２８０〜Ｓ３００の処理では、検査機能により異常判定部２１が異常であると判定されておらず、且つ、異常判定部２１にＮＧデータを入力していないＯＫパターンにおいて、異常判定部２１がＡ／Ｄ異常状態であると判定したことを条件にして、真のＡ／Ｄ異常状態であると判定している。よって、Ａ／Ｄ変換器５，１５の異常検出について正確性を確保することができる。
【００６５】
また、ＥＣＵ１では、検査機能によって異常判定部２１が異常であると判定した場合（Ｓ２５０：ＹＥＳ→Ｓ２６０）、あるいは、真のＡ／Ｄ異常状態であると判定した場合（Ｓ２９０：ＹＥＳ→Ｓ３００）に、制御部１９に対して、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果に基づく物理値に代えて、フェイルセーフ値を供給している（Ｓ２７０，Ｓ３１０）。このため、制御対象としてのエンジンが、正しくないかも知れないＡ／Ｄ変換結果に基づいて制御されてしまうことを防止することができる。
【００６６】
また、検査機能では、異常判定部２１にＮＧデータを入力して（Ｓ１９０）、その異常判定部２１がＡ／Ｄ異常状態であると判定するか否かを判定し（Ｓ２００）、異常判定部２１がＡ／Ｄ異常状態であると判定しないこと（Ｓ２００：ＮＯ）を条件にして、異常判定部２１が異常であると判定するようになっている（Ｓ２４０〜Ｓ２６０）。そして、このようにすることで、異常判定部２１が正常に機能するか否かの検査を、確実に実施することができる。
【００６７】
また、ＣＰＵ９は、検査機能を実現する処理を、異常判定部２１が３回動作するうちの１回の割合というように、定期的に行うようになっている。このため、ＥＣＵ１及びマイコン７の動作中において、異常判定部２１が異常になった場合に、そのことをできるだけ早く検出することができる。
【００６８】
また、前述したように、Ａ／Ｄ変換器５又はＡ／Ｄ変換器１５によるＡ／Ｄ変換結果の全ビットを反転させたデータ、あるいは、センサ信号の変動範囲を超えた電圧を表すデータを、ＮＧデータとすれば、適切なＮＧデータを簡単に用意することができる。前者であれば、ＮＧデータを簡単な処理で生成することができ、後者であれば、予めＲＯＭ１１等にＮＧデータを記憶しておくことができる。
【００６９】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。以下に、変形例を記載するが、それらの変形例及び上記実施形態は適宜組み合わせることができる。
【００７０】
例えば、データ選択部２３は、異常判定部２１に、Ａ／Ｄ変換器１５によるＡ／Ｄ変換結果に代えて、ＮＧデータを入力するように構成しても良い。
また、データ選択部２３は、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果と、Ａ／Ｄ変換器１５によるＡ／Ｄ変換結果との、両方に代えて、ＮＧデータを入力するように構成しても良い。その場合、２つのＮＧデータは、それらの差が前述した所定値Ｎｔｈ以上であるデータであれば良い。例えば、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果に代えて異常判定部２１に入力するＮＧデータは、Ａ／Ｄ変換器５によるＡ／Ｄ変換結果に所定値Ｎｔｈ以上の値を加算したデータとし、Ａ／Ｄ変換器１５によるＡ／Ｄ変換結果に代えて異常判定部２１に入力するＮＧデータは、Ａ／Ｄ変換器１５によるＡ／Ｄ変換結果から所定値Ｎｔｈ以上の値を減算したデータとすることができる。
【００７１】
また、図３のＳ２５０で用いる閾値Ｎａと、図３のＳ２９０で用いる閾値Ｎｂとの各々は、３に限らず、１又は２又は４以上であっても良い。また勿論、閾値Ｎａ，Ｎｂは、異なる値であっても良い。
【００７２】
また、Ａ／Ｄ変換器は３つ以上であっても良い。例えば、Ａ／Ｄ変換器が３つであれば、異常判定部２１は、３つのＡ／Ｄ変換器によるＡ／Ｄ変換結果を２つずつ比較して、その２つの差が所定値Ｎｔｈ以上であれば、３つのＡ／Ｄ変換器のうちの何れかに異常が生じているＡ／Ｄ異常状態であると判定するように構成することができる。そして、ＮＧパターンでは、異常判定部２１に、３つのＡ／Ｄ変換結果のうちの少なくとも１に代えて、該異常判定部２１がＡ／Ｄ異常状態であると判定するはずのＮＧデータを入力し、その異常判定部２１が本当にＡ／Ｄ異常状態であると判定するか否かを確認すれば良い。
【符号の説明】
【００７３】
５，１５…Ａ／Ｄ変換器、９…ＣＰＵ、２１…異常判定部、２３…データ選択部、２５…異常判定保証部
【図１】
2014107632.tif 000003
【図２】
2014107632.tif 000004
【図３】
2014107632.tif 000005
【図４】
2014107632.tif 000006
【図５】
2014107632.tif 000007
【図６】
2014107632.tif 000008
【図７】
2014107632.tif 000009