(57)【要約】【課題】ＡＤ変換中にアナログ入力の値が変動したことをより高精度に判別可能なＡ／Ｄコンバータを提供すること。【解決手段】アナログ入力の下限値と上限値が登録された判定テーブル２８と、アナログ入力と、アナログ値に変換された基準値を比較する比較手段２４と、前記比較手段がアナログ入力の方が基準値より大きいと判定するとより大きい基準値に変更し、アナログ入力の方が基準値より小さいと判定するとより小さい基準値に変更する基準値変更手段２６と、比較結果及び基準値を取得し、アナログ入力の方が基準値より小さい場合は前記判定テーブルの前記上限値に基準値を設定し、アナログ入力の方が基準値より大きい場合は前記判定テーブルの前記下限値に基準値を設定するテーブル更新手段２７と、アナログ入力が前記下限値と前記上限値の範囲に入るか否かを判定する異常判定手段２９と、有する。【選択図】図１
2012227623.tif 000002
【特許請求の範囲】
【請求項１】
ホールドされているアナログ入力と基準値との比較を繰り返してアナログ入力をデジタル値に変換するＡ／Ｄ変換装置であって、
アナログ入力の下限値と上限値が登録された判定テーブルと、
アナログ入力と、アナログ値に変換された基準値を比較する比較手段と、
前記比較手段がアナログ入力の方が基準値より大きいと判定するとより大きい基準値に変更し、アナログ入力の方が基準値より小さいと判定するとより小さい基準値に変更する基準値変更手段と、
比較結果及び基準値を取得し、アナログ入力の方が基準値より小さい場合は前記判定テーブルの前記上限値に基準値を設定し、アナログ入力の方が基準値より大きい場合は前記判定テーブルの前記下限値に基準値を設定するテーブル更新手段と、
アナログ入力が前記下限値と前記上限値の範囲に入るか否かを判定する異常判定手段と、を有するＡ／Ｄ変換装置。
【請求項２】
前記判定テーブルには、アナログ入力が取り得る最小下限値と最大上限値が登録されており、
前記異常判定手段は、アナログ入力が前記下限値と前記上限値の範囲に入らないと判定すると、アナログ入力が前記最小下限値と前記最大上限値の範囲に入るか否かを判定する、
ことを特徴とする請求項１記載のＡ／Ｄ変換装置。
【請求項３】
前記判定テーブルに登録された前記下限値と前記上限値をそれぞれアナログ値に変換するＤＡ変換手段を有し、
前記異常判定手段は、アナログ入力が、前記ＤＡ変換手段により変換されたアナログ値の前記下限値と前記上限値の範囲に入るか否かを判定する、
ことを特徴とする請求項１又は２記載のＡ／Ｄ変換装置。
【請求項４】
複数の前記判定テーブルを有し、
変換中のアナログ入力の供給手段に応じて前記判定テーブルを切り替えて使用する、
ことを特徴とする請求項１〜３いずれか1項記載のＡ／Ｄ変換装置。
【請求項５】
アナログ入力が前記下限値と前記上限値の範囲に入らないという第1の判定結果を受け付ける判定結果受け付け手段を有し、
前記判定結果受け付け手段は、前記第１の判定結果を受け付けた場合、ＡＤ変換の終了前に外部のＣＰＵに通知する、
ことを特徴とする請求項２〜４いずれか1項記載のＡ／Ｄ変換装置。
【請求項６】
前記判定結果受け付け手段は、アナログ入力が前記最小下限値と前記最大上限値の範囲に入らないという第２の判定結果を受け付け、
前記第１の判定結果又は前記第２の判定結果のいずれであるかを外部のＣＰＵが識別可能に保持する、
ことを特徴とする請求項５項記載のＡ／Ｄ変換装置。
【請求項７】
請求項１〜６いずれか1項記載のＡ／Ｄ変換装置と、
バスを介して接続されたＣＰＵと、ＲＡＭと、ＲＯＭと、割り込みコントローラと、前記Ａ／Ｄ変換装置とのインタフェースと、
を有するマイコン。
【請求項８】
前記異常判定手段が、アナログ入力が前記下限値と前記上限値の範囲に入らないと判定した場合、前記ＣＰＵは、前記異常判定手段がアナログ入力が前記下限値と前記上限値の範囲に入らないと判定する前にＡＤ変換が終了したデジタル値を読み出す、
ことを特徴とする請求項７記載のマイコン。
【請求項９】
ホールドされているアナログ入力と基準値との比較を繰り返してアナログ入力をデジタル値に変換するＡ／Ｄ変換装置の故障判定方法であって、
比較手段が、アナログ入力と、アナログ値に変換された基準値を比較するステップと、
前記比較手段がアナログ入力の方が基準値より大きいと判定するとより大きい基準値に変更し、アナログ入力の方が基準値より小さいと判定するとより小さい基準値に基準値変更手段が変更するとステップと、
比較結果及び基準値を取得し、アナログ入力の方が基準値より小さい場合、テーブル更新手段が、アナログ入力の下限値と上限値が登録された判定テーブルの、前記上限値に基準値を設定し、アナログ入力の方が基準値より大きい場合は前記判定テーブルの前記下限値に基準値を設定するステップと、
異常判定手段が、アナログ入力が前記下限値と前記上限値の範囲に入るか否かを判定するステップと、を有する故障判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アナログ入力をデジタル値に変換するＡ／Ｄコンバータに関し、特に、変換後のデジタル値を検証可能なＡ／Ｄコンバータ等に関する。
【背景技術】
【０００２】
センサの検出値はアナログであることが多いので、マイコンが利用できるようにＡ／Ｄコンバータなどが検出値をデジタルに変換することが一般的である。センサの検出値に基づきアクチュエータなどを制御するシステムでは、想定外の検出値に基づきアクチュエータをそのまま制御しないように、検出値が想定される範囲に入るか否かの入力判定を行う。このような判定はＩＳＯ２６２６２のon‐line‐monitoringに相当する。
【０００３】
図８は、従来のＡ／Ｄコンバータの構成の一例を、図９はＡ／Ｄ変換の手順を説明するフローチャート図の一例をそれぞれ示す。
【０００４】
まず、アプリケーションが、センサが検出したアナログ入力を必要とすると、ＣＰＵがＡＤコンバータに変換開始依頼を通知する（Ｓ１）。
【０００５】
入力回路にはセンサからのアナログ信号が随時入力され、サンプル＆ホールド回路はＣＰＵからの指示によってアナログ信号をサンプリングし（Ｓ２）、またホールドする（Ｓ３）。
【０００６】
次に変換結果レジスタは基準値レジスタに基準値を設定する（Ｓ４）。Ａ／Ｄコンバータがアナログ信号を４ビットのデジタル値に変換する場合、基準値にまず１０００ｂを設定する。この基準値はアナログ入力値の最大値の約半分に対応する。ＤＡＣは１０００ｂをＤ／Ａ変換してコンパレータに入力する。
【０００７】
コンパレータは、アナログ信号と基準値を比較する（Ｓ５）。コンパレータは、アナログ信号＜基準値の場合、Ｌレベルを変換結果レジスタに設定し、アナログ信号＞基準値の場合、コンパレータはＨレベルを変換結果レジスタに設定する（Ｓ６）。
【０００８】
次に、変換結果レジスタは、比較結果に応じて基準値レジスタのＭＳＢ（最上位bit）と次のビットに“１”又は“０”を設定する（Ｓ７）。すなわち、比較結果がＬレベルの場合は、変換結果レジスタは基準値に０１００ｂを設定する（アナログ入力が基準値より小さかったので次回の比較用の基準値をより小さくする）。また、比較結果がＨレベルの場合は、変換結果レジスタは基準値に１１００ｂを設定する（アナログ入力が基準値以上だったので次回の比較用の基準値をより大きくする）。
【０００９】
基準値に０１００ｂが設定された場合、次回、アナログ入力が基準値０１００ｂより小さければ、基準値は００１０ｂになり、アナログ入力が基準値０１００ｂより大きければ、基準値は０１１０ｂになる。
【００１０】
基準値に０１１０ｂが設定された場合、次回、アナログ入力が基準値０１１０ｂより小さければ、基準値は０１１０ｂになり、アナログ入力が基準値０１１０ｂより大きければ、基準値は０１１１ｂになる。このようにＬＳＢ（最下位bit）が確定するとＡＤ変換が終了する。最終的な基準値はアナログ信号を４ビットの分解能のデジタル値（＝アナログ入力値の最大値×変換結果レジスタの値）で表した値になる。これをＡＤ変換後データとする。
【００１１】
このような比較により、基準値は徐々にアナログ入力に接近していき、アナログ入力と分解能未満の差しかないデジタル値が得られる。
【００１２】
変換結果レジスタは最下位bitまで判定が終わると（Ｓ８）、ＡＤ変換後データをメモリに記憶して、変換の終了をＣＰＵ通知部３０に通知する（Ｓ９）。ＣＰＵ通知部３０はＣＰＵに割り込みするので、ＣＰＵはメモリからＡＤ変換後データを読み出すことができる。以上の処理で、ＣＰＵは、ＡＤ変換後データが想定される範囲に入るか否かの入力判定を行うことができる。
【００１３】
しかし、Ａ／ＤコンバータがＡＤ変換している間にノイズやソフトエラーによりホールド中のアナログ値が、入力された（サンプリングされた）アナログ値と異なる値に変わるおそれがあることが知られている（以下、変換中のホールド値の変化を値化けという）。
【００１４】
例えば、ＣＰＵがモータ駆動電流をモニターしてＰＩＤ制御する場合に、想定されるモータ駆動電流の範囲を０〜１００ｍＡとする。モータが５０ｍＡで定常動作している場合において、ＡＤ変換中に値化けが生じ、ＡＤ変換後データが２ｍＡになったとする。２ｍＡは想定される範囲内なので、ＣＰＵは変換結果は確からしいと判定する。しかし、実際にはこのＡＤ変換後データは値化けによる値なので、ＣＰＵが２ｍＡというＡＤ変換後データに従って急減速などの制御を実行すると、ユーザに違和感を感じさせまた快適な走行が損なわれるおそれがある。
【００１５】
このように、ＡＤ変換後データが想定される範囲に入っているか否かをＣＰＵが判定するだけでは、値化けを検出できず、ＡＤ変換後データを検証するためには不十分といえる。近年の半導体製造技術では微細化が進んでおり、エラー発生率は増加傾向にあるため、ＡＤ変換中にホールドされているアナログ入力が変化（値化け）する懸念も高まっている。ホールドされているアナログ入力が変化してしまえば、ＡＤ変換を繰り返しても正しいＡＤ変換後データは得られない。
【００１６】
ここで、ＡＤ変換による誤変換の可能性を検出する技術が考案されている（例えば、特許文献１参照。）。特許文献１には、入力信号ＡＩＮをＡＤ変換したデータの第０ビットのデータ値とそれよりも上位のビットのデータ値とを順次比較して、最初にデータ値が異なったビットを誤り可能性ビットと判定するＡ／Ｄコンバータが開示されている。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２０００−０４９６０９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
しかしながら、特許文献１の変換エラーの検出方法では、変換エラーが生じた可能性のあるビット位置を推定することができるが、アナログ信号そのものがＡＤ変換中に値化けしたことは検出できないという問題がある。すなわち、変換中にビットエラーが生じたのか、ホールドされているアナログ信号に変化が生じたのか区別できない。また、あくまで推定であって、変換が正しい可能性がゼロではない。
【００１９】
本発明は、上記課題に鑑み、ＡＤ変換中にアナログ入力の値が変動したことをより高精度に判別可能なＡ／Ｄコンバータを提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明は、ホールドされているアナログ入力と基準値との比較を繰り返してアナログ入力をデジタル値に変換するＡ／Ｄ変換装置であって、アナログ入力の下限値と上限値が登録された判定テーブルと、アナログ入力と、アナログ値に変換された基準値を比較する比較手段と、前記比較手段がアナログ入力の方が基準値より大きいと判定するとより大きい基準値に変更し、アナログ入力の方が基準値より小さいと判定するとより小さい基準値に変更する基準値変更手段と、比較結果及び基準値を取得し、アナログ入力の方が基準値より小さい場合は前記判定テーブルの前記上限値に基準値を設定し、アナログ入力の方が基準値より大きい場合は前記判定テーブルの前記下限値に基準値を設定するテーブル更新手段と、アナログ入力が前記下限値と前記上限値の範囲に入るか否かを判定する異常判定手段と、有する。
【発明の効果】
【００２１】
ＡＤ変換中にアナログ入力の値が変動したことをより高精度に判別可能なＡ／Ｄコンバータを提供することができる。
【図面の簡単な説明】
【００２２】
【図１】Ａ／Ｄコンバータによる値化けの検出を説明する図の一例である。
【図２】Ａ／Ｄコンバータを搭載したマイコンの構成図の一例である。
【図３】サンプル＆ホールド回路の一例を示す図である。
【図４】Ａ／ＤコンバータがＡＤ変換及び異常判定する手順を示すフローチャート図の一例である。
【図５】Ａ／Ｄコンバータの故障検出前処理の一例を示すフローチャート図、異常判定部による故障検出処理の一例を示すフローチャート図の一例である。
【図６】ダイナミック値の遷移図の一例である。
【図７】許容値テーブルが複数あるＡ／Ｄコンバータの構成の一例を示す図である。
【図８】従来のＡ／Ｄコンバータの構成の一例を示す図である。
【図９】ＡＤ変換の手順を説明するフローチャート図の一例である。
【発明を実施するための形態】
【００２３】
以下、本発明を実施するための形態について図面を参照しながら実施例を挙げて説明する。
【００２４】
図１は、本実施形態のＡ／Ｄコンバータによる値化けの検出を説明する図の一例である。本実施形態のＡ／Ｄコンバータは、1対のダイナミック値XdmaxとXdminを有する点に特徴の１つがある。XdmaxとXdminには、アナログ入力の許容値の最大値と最小値（以下、1対のシステム値という）の範囲で動的に値が設定される。
【００２５】
XdmaxとXdminの初期値にはシステム値の最大値と最小値がそれぞれ設定される。図ではXdmax＝3.8、Xdmin＝0.2となっている。また、ホールドされたアナログ入力を2.5〔V〕とする。
・１回目の比較  「基準値（1.8）＜アナログ入力（2.5）」
Ａ／Ｄコンバータは、この比較結果に基づき、今後、アナログ入力が基準値（1.8）を下回ることがないとして、Xdminに基準値（1.8）を設定する。Xdmaxは3.8のままである。
・２回目の比較  「基準値（3.3）＞アナログ入力（2.5）」
Ａ／Ｄコンバータは、同様に、今後、アナログ入力が基準値（3.3）を上回ることがないとして、Xdmaxに基準値（3.3）を設定する。Xdminは1.8のままである。
【００２６】
このように、アナログ入力と基準値との比較結果に応じて、Xdmax又はXdminのどちらかに基準値を設定することで、アナログ入力は必ずXdmaxとXdminの間に入ることになる。
【００２７】
ここで、２回目と３回目の比較の間に、ホールドされているアナログ入力に値化けが生じ、例えば、アナログ入力が１．０又は３．７になったものとする。
・３回目の比較
より詳細にはこの比較の前に、Ａ／Ｄコンバータはアナログ入力がXdmaxとXdminの間に入るか否かを判定する。アナログ入力が１．０に値化けした場合、Xdmin＞アナログ入力  であることを検出して、Ａ／Ｄコンバータはホールドされているアナログ入力に値化けが生じたことを検出できる。また、アナログ入力が３．７に値化けした場合、Xdmax＜アナログ入力  であることを検出して、Ａ／Ｄコンバータはホールドされているアナログ入力に値化けが生じたことを検出できる。
【００２８】
このように、Ａ／Ｄコンバータは、アナログ入力と基準値と比較の度に、アナログ入力がXdmaxとXdminの間に入るか否かを判定することで、ＡＤ変換中の値化けを検出することができる。また、図から明らかなように、変換回数が多くなりXdmaxとXdminの幅が狭くなるほど、わずかな値化けも確実に検出できるようになる。
【００２９】
〔構成〕
図２は、本実施形態のＡ／Ｄコンバータを搭載したマイコンの構成図の一例を示す。マイコン２００は主にワンチップのＳＯＣやＬＳＩであるが、ＣＰＵ１２等が必ずしも１つのチップに実装されている必要はない。また、このマイコン２００は車両のＥＣＵに搭載されるので、一部の機能をマイコン２００でなくＥＣＵの基板上に配置することもできる。また、図示する以外の機能がＥＣＵの基板上に配置されることもある。なお、ＥＣＵには、マイコン２００の他、センサの信号を受け付ける入力チャネル及びそのドライバ、マイコン２００の監視ＩＣ、電源ＩＣ等が搭載される。
【００３０】
マイコン２００は、内部バス１５に接続されたＣＰＵ１２、メモリ１１、ＩＮＴＣ１３、及び、周辺バス１４を有する。メモリ１１には、プログラムを記憶したＲＯＭ、ＣＰＵ１２がプログラムを実行するための作業領域となるＲＡＭが含まれる。この他、マイコン２００は、ＤＭＡＣ（Direct  Memory  Access  Controller）、タイマー、ＣＡＮコントローラを有するが図示を省略した。
【００３１】
ＣＰＵ１２はシングルコア型又は複数のＣＰＵコアを有したマルチコア型のどちらでもよい。ＣＰＵ１２は内部バス１５を介してメモリ１１からプログラムを読み込み、また、必要であれば内部バス１５を介してメモリ１１からデータを読み出しプログラムを実行する。このプログラムには、Ａ／Ｄコンバータ１００が変換したデジタル値を使用するソフトウェアが含まれている。
【００３２】
ＩＮＴＣ（Interrupt  Controller)１３はＩＲＱやその他の割り込み端子を介して周辺機器（図ではＡ／Ｄコンバータ１００）から入力された割り込み要求を、周辺機器の優先順位に基づき調停してＣＰＵ１２に通知する。これによりＣＰＵ１２は、割り込みした周辺機器に応じて決まった処理を実行する。このＡ／Ｄコンバータ１００では割り込み要求をＣＰＵ通知部３０が行う。ＣＰＵ通知部３０の割り込みにはＡＤ変換終了通知とＡＤ変換異常通知がある。
【００３３】
ＣＰＵ１２にＡ／Ｄコンバータ１００のＡＤ変換終了通知の割り込みがあると、ＣＰＵ１２は不図示のＤＭＡＣにＡ／Ｄコンバータ１００が周辺バス１４のバッファ等に書き込んだＡＤ変換後データを読み取るように要求する。これにより、変換結果はメモリ１１に書き込まれ、ＣＰＵ１２が演算に利用できるようになる。ＣＰＵ１２にＡ／Ｄコンバータ１００のＡＤ変換異常通知の割り込みがあると、ＣＰＵ１２はＡＤ変換後データを読み出さない。
【００３４】
周辺バス１４は、各種の周辺機器（他のＡ／Ｄコンバータ、ＣＡＮコントローラ、Ｉ／Ｏなど）が接続されるブリッジやマルチプレクサである。周辺バス１４は、内部バス１５とのクロック周波数の違いを吸収したり、周辺機器間の入出力を調停したりする。
【００３５】
＜Ａ／Ｄコンバータ＞
周辺バス１４には本実施形態のＡ／Ｄコンバータ１００が接続されている。Ａ／Ｄコンバータ１００は、サンプル＆ホールド回路２２、コンパレータ２４、変換結果レジスタ２６、基準値レジスタ２５、ＤＡＣ（digital  to  analog
converter）２３、許容値管理機能２７、異常判定部２９、許容値テーブル２８、及び、ＣＰＵ通知部３０を有する。
【００３６】
まず、入力回路２１には、センサが検出したアナログの信号（以下、アナログ入力という）が定常的に入力されている。入力回路２１はローパスフィルタなどによりノイズを低減させたアナログ入力をサンプル＆ホールド回路２２に出力する。マイコン２００に接続されたセンサには各種のものがあるが、例えば、温度センサ、ジャイロセンサ、Ｇセンサ、明るさセンサ等である。これらの検出結果は電圧や電流などの大きさに変換されている。
【００３７】
図３（ａ）は、サンプル＆ホールド回路２２の一例を示す。図３（ａ）は主に逐次比較型のＡ／Ｄコンバータ１００に用いられるサンプル＆ホールド回路である。２つのオペアンプの出力は自身の反転入力端子に接続され（電圧増幅度が１）、２つのオペアンプの間にコンデンサＣとスイッチＳが接続されている。入力側のオペアンプのVinにはアナログ入力が接続され、出力側のオペアンプの出力にはコンパレータ２４が接続される。
【００３８】
スイッチＳがオンになると、コンデンサのスイッチ側とオペアンプの非反転入力端子に入力電圧Ｖinがかかるので出力電圧Ｖoutは入力電圧に等しくなる。スイッチＳがオフになると、コンデンサＣにはスイッチＳがオフになるまでの入力電圧が保持される。したがって、コンデンサCの電圧は出力電圧Ｖoutとなる。 
スイッチＳがオンの間がアナログ入力のサンプリング状態、スイッチＳがオフの間がホールド状態である。したがって、Ａ／Ｄコンバータ１００はスイッチＳがオフの間に、ホールドされたアナログ入力をデジタル値に変換する。
【００３９】
コンパレータ２４は、ＤＡＣ２３が出力する基準値とサンプル＆ホールド回路２２がホールドしているアナログ入力を比較して、基準値＜アナログ入力値ならＨレベルの信号を、基準値＞アナログ入力値ならＬレベルの信号を変換結果レジスタ２６に出力する。
【００４０】
図３（ｂ）はＤＡＣ２３の一例を示す図である。ＤＡＣ２３（ラダー抵抗回路）ははしご状に並んだ抵抗器を有し、スイッチのオン／オフがデジタル値（本実施形態では基準値）の各桁のビットの１ｏｒ０に対応する。各端子に出力される電圧は抵抗値がｒと２ｒの抵抗により分圧され、各端子からの電圧の合計はデジタル値に対応して「ｂ２/２０＋ｂ１/２１＋ｂ０/２２」に比例する。Voutはこの電圧をｒ倍に増幅して出力する。ｒはアナログ入力の最大値や分解能に応じて設計される。
【００４１】
変換結果レジスタ２６は、コンパレータ２４から入力された比較結果に基づき、基準値レジスタ２５に基準値を設定する。まず、変換結果レジスタ２６は、ＡＤ変換を開始すると、初期値としてＭＳＢを１に第２ビット以下を０に設定した基準値を基準値レジスタ２５に設定する。この操作対象となったビットを以下、着目ビットという。ＤＡＣ２３は基準値レジスタ２５の値が更新されると、基準値レジスタ２５の基準値をアナログ値に変換しコンパレータ２４に出力する。コンパレータ２４は２つのアナログ値の比較結果を出力する。
【００４２】
変換結果レジスタ２６は、コンパレータ２４の比較結果に応じて着目ビットの次の下位ビットに“１”又は“０”を設定する。すなわち、比較結果がＨレベルなら着目ビットの次の下位ビットに“１”を設定し、比較結果がＬレベルなら着目ビットに“０”を着目ビットの次の下位ビットに“１”をそれぞれ設定する。変換結果レジスタ２６は、ビット操作した値を基準値レジスタ２５に設定すると共に、ＡＤ変換結果（＝基準値と比較結果）を異常判定部２９に出力する。コンパレータ２４はこのように基準値とホールドされているアナログ入力値との比較を繰り返し、変換結果レジスタ２６はＬＳＢの値が確定するまで、比較結果に応じて基準値レジスタ２５の基準値を更新する。変換結果レジスタ２６はコンパレータ２４が比較結果を出力する毎に、ＡＤ変換結果を異常判定部２９に出力する。
【００４３】
また、変換結果レジスタ２６はＬＳＢの値が確定すると、最終的な変換結果であるＡＤ変換後データを周辺バス１４のバッファなどに格納し、変換の終了通知をＣＰＵ通知部３０に出力する。
【００４４】
異常判定部２９は、異常判定した結果、サンプル＆ホールド回路２２がホールドしているアナログ入力が値化けしていないと判定したら、許容値情報を許容値管理機能２７に出力する。異常判定については後述する。許容値情報は、ＡＤ変換結果と同じものである。
【００４５】
許容値管理機能２７は許容値テーブル２８に許容値を書き込み又は更新する。許容値テーブル２８は例えばレジスタで構成され、1対のシステム値と１対のダイナミック値が登録される。許容値管理機能２７は実際にはＩＣである。
1対のシステム値には、アナログ入力の想定される上限値であるmaxと下限値であるmin（いずれもデジタル値）が登録される。センサが出力するアナログ入力の上限と下限はセンサ毎に決まっている。よって、この範囲に入らないアナログ入力は、センサ出力から入力回路２１への入力時やサンプル＆ホールド回路２２のホールド中にノイズなどの影響より、又は、Ａ／Ｄコンバータ１００の変換エラーにより値が大きく変わっていることになる。
【００４６】
許容値管理機能２７は、１対のダイナミック値のXdmax又はXdminに、アナログ入力と基準値との比較結果に応じて基準値を設定する。
・基準値＜アナログ入力  の場合、Xdmin  ←  基準値  
・基準値＞アナログ入力  の場合、Xdmax  ←  基準値
なお、１対のダイナミック値の初期値は１対のシステム値と同じである。許容値管理機能２７は例えばマイコン２００の起動時に、ＣＰＵ１２からシステム許容値の設定を受け付ける。許容値管理機能２７はＡＤ変換が開始されると、ＣＰＵ１２が設定したシステム許容値を、許容値テーブル２８のシステム値とダイナミック値にそれぞれ設定する。
【００４７】
Ａ／Ｄコンバータ１００がＡＤ変換を開始すると、許容値管理機能２７は許容値情報を取得する毎に、ダイナミック値のXdmin又はXdmaxを更新する。上記のように「基準値＜アナログ入力」の場合、Xdminが基準値で更新され、「基準値＞アナログ入力」の場合、Xdmaxが基準値で更新される。したがって、アナログ入力は必ずXdminとXdmaxの間に含まれることになる。
【００４８】
なお、許容値テーブルの更新をＣＰＵ１２が行うこともできる。この場合、ＣＰＵ１２はＡＤ変換結果を取得して許容値テーブルを更新すればよい。したがって、許容値テーブル２８や許容値管理機能２７を不要にすることもできる。
【００４９】
異常判定部２９は、アナログ入力が必ずXdminとXdmaxに入ることを利用して、アナログ入力が値化けしたか否かを判定する。異常判定部２９にはＤＡＣ３１がXdminとXdmaxをアナログ値に変換したANminとANmaxが入力される。また、異常判定部２９には、サンプル＆ホールド回路２２から分岐されたアナログ入力が入力される。したがって、異常判定部２９は、XdminとXdmaxの範囲にANinが入るか否かを判定できる。
【００５０】
アナログ入力ＡNinが1対のダイナミック値の範囲に入れば、必ず１対のシステム値の範囲に入るので、ＡＤ変換結果が1対のシステム値の範囲に入るか否かを判定する必要はない。一方、ＡＤ変換結果が１対のダイナミック値の範囲に入らない場合、異常判定部２９は、１対のシステム値の範囲に入るか否かを判定する（必ずしも判定しなくてもよい）。判定する場合、異常判定部２９は、ＤＡＣ３１によりＤＡ変換されたminとmaxをサンプル＆ホールド回路２２がホールドしているアナログ入力ＡNinと比較する。こうすることで、1対のシステム値の範囲に入るか否かを容易に判定できる。
【００５１】
異常判定部２９は、このような判定の結果をＣＰＵ通知部３０のフラグ（２ビットの異常判定結果）に設定する。
(i) 1対のダイナミック値の範囲に入る  (00)
(ii) 1対のダイナミック値の範囲に入らないが、1対のシステム値の範囲に入る  (01)
(iii) 1対のダイナミック値及び1対のシステム値のどちらにも入らない  (11)
続いて、ＣＰＵ通知部３０は、変換結果レジスタ２６から変換の終了通知を受け付けるとＣＰＵ１２（正確にはＩＮＴＣ１３だが、以下ＣＰＵ１２への割り込みと記載する）にＡＤ変換終了通知の割り込みを通知する。これにより、ＣＰＵ１２はまず、周辺バス１４のバッファに記憶されているＡＤ変換後データを読み出す。読み出しの前に、ＣＰＵ通知部３０が保持しているフラグを参照して、（00）が設定されていることを確認してもよい。ただし、本実施例ではＡＤ変換終了通知よりもＡＤ変換異常通知の方が先に出力されるので、ＡＤ変換終了通知がＣＰＵ１２に出力されることは、値化けすることなくＡＤ変換が終了したことを意味する。
【００５２】
また、ＣＰＵ通知部３０が変換の終了通知を受け付けず、フラグに（01）又は(11)が設定されると、ＣＰＵ通知部３０はＡＤ変換異常通知の割り込みをＣＰＵ１２に出力する。これにより、ＣＰＵ１２は適切な処理が可能になる。例えば、ＣＰＵはＡ／ＤコンバータにＡＤ変換を中止させ、サンプリングから再開させる。こうすることで、異常が検出された直後にＡＤ変換をやり直すことができる。
【００５３】
なお、ＣＰＵ１２は、周辺バス１４のバッファに記憶されているＡＤ変換後データは値化けしている可能性があるため読み出さない。この場合、ＣＰＵ１２は1つ前のＡＤ変換後データを使用して演算を行うこともできる。
【００５４】
また、ＣＰＵ１２はフラグに(01)又は(11)のどちらが設定されているかにより、動作を切り替えることができる。ＣＰＵ１２がこのように振る舞う場合、ＣＰＵ１２はＡＤ変換異常通知の割り込みを受け付けると、フラグを参照する。そして、例えば、(01)の場合は、値化けしただけであると推定して１つ前のＡＤ変換後データを使用して演算を行い、(11)の場合、Ａ／Ｄコンバータ１００に不具合が生じている可能性があると判定してＡ／Ｄコンバータ１００をリセットする。
【００５５】
このように、本実施形態のＡ／Ｄコンバータ１００は従来、検出できなかった(ii)の状態を検出できるので、１つ前のＡＤ変換後データと大きく異なるが１対のシステム値の範囲内に含まれるＡＤ変換後データが、ユーザ操作に起因したものか、ホールド中に値化けしたものかを確実に判断できる。
【００５６】
また、図３に示すように、Ａ／Ｄコンバータ内で異常判定が終了するため、ＣＰＵ１２が異常判定する必要がなくＣＰＵ１２の処理負荷を低減できる。また、ＣＰＵ１２は、ＣＰＵ通知部３０からＡＤ変換異常通知を付け付けると周辺バス１４のバッファからＡＤ変換後データを読み出す必要がないので、この点でもＣＰＵ１２の処理負荷とバス負荷を低減できる。
【００５７】
〔動作手順〕
図４はＡ／Ｄコンバータ１００がＡＤ変換及び異常判定する手順を示すフローチャート図の一例である。
【００５８】
まず、ＣＰＵ１２はセンサが検出したアナログ入力を必要とすると、Ａ／Ｄコンバータに変換開始依頼を通知する（Ｓ１０）。Ａ／Ｄコンバータ１００の入力回路２１にはセンサの検出信号が常に入力されている。
【００５９】
次に、Ａ／Ｄコンバータ１００は故障検出前処理を実行する（Ｓ２０）。故障検出前処理は図５（ａ）のフローチャート図にて説明する。
【００６０】
次に、サンプル＆ホールド回路２２はアナログ入力のサンプリングを開始する（Ｓ３０）。具体的にはスイッチＳをオンにする。
【００６１】
サンプル＆ホールド回路２２は予め決まった時間が経過するとスイッチＳをオフにすることで、アナログ入力をホールドする（Ｓ４０）。このアナログ値がANinである。
【００６２】
変換結果レジスタ２６は、基準値Xdrefを基準値レジスタ２５に設定する（Ｓ５０）。基準値はコンパレータ２４の変換結果に応じた値になる。
【００６３】
ＤＡＣ２３が基準値XdrefをＤＡ変換してANrefというアナログ値に変換するので、コンパレータ２４がANinとANrefを比較する（Ｓ６０）。
【００６４】
変換結果レジスタ２６は、コンパレータ２４の比較結果に応じて、ＡＤ変換結果（基準値と比較結果）を異常判定部２９に出力する（Ｓ７０）。この基準値は、比較に用いられた基準値である。
【００６５】
異常判定部２９はＡＤ変換結果を用いて故障検出処理を行う（Ｓ８０）。故障検出処理は図５（ｂ）のフローチャート図にて説明する。
【００６６】
また、変換結果レジスタ２６は、コンパレータ２４の比較結果に応じて基準値のＭＳＢから順番にＬＳＢが確定するまで基準値を変更する（Ｓ９０）。
【００６７】
そして、変換結果レジスタ２６はアナログ入力のデジタル値への変換が終了したか否かを判定する（Ｓ１００）。
【００６８】
ＬＳＢが確定していない場合、処理はＳ５０に戻りコンパレータ２４による比較以降の処理が繰り返される。
【００６９】
上記のようにＬＳＢが確定すると（例えば、決まった回数だけ比較を行うと）、変換結果レジスタ２６は、最終的な変換結果であるＡＤ変換後データを周辺バス１４のバッファなどに格納し、変換の終了通知をＣＰＵ通知部３０に出力する（Ｓ１１０）。これにより、ＣＰＵ通知部３０はＣＰＵ１２に割り込みするので、ＣＰＵ１２は必要であればＣＰＵ通知部３０のフラグを読み出し、異常がなければ周辺バス１４のバッファからＡＤ変換後データを読み出すことができる。
【００７０】
図５（ａ）は、Ａ／Ｄコンバータ１００の故障検出前処理の一例を示すフローチャート図である。この手順は、Ａ／Ｄ変換回路がＣＰＵ１２から変換開始依頼を受け付けとスタートする。
【００７１】
上記のように、ＣＰＵ１２はマイコン２００の起動時に１対のシステム許容値をＡ／Ｄコンバータ１００に通知しているので、許容値管理機能２７は許容値テーブル２８にすでに１対のシステム値を設定している。
【００７２】
許容値管理機能２７は、許容値テーブル２８の１対のシステム値を、ダイナミック値にコピーする（Ｓ２０−１）。これにより「Xdmax  ←  max」「Xdmin  ←  min」のように値がコピーされる。
【００７３】
なお、ＣＰＵ１２は、許容値テーブル２８に値を設定することができるので、必ずしも許容値管理機能２７（Ａ／Ｄコンバータ）がＳ１１０のコピーを行う必要はない。例えば、ＣＰＵ１２が変換開始依頼と共にシステム許容値をシステム値とダイナミック値のそれぞれに設定することもできる。
【００７４】
図５（ｂ）は異常判定部２９による故障検出処理の一例を示すフローチャート図の一例である。
【００７５】
ＡＤ変換結果を取得すると、異常判定部２９は、まず、Xdmin＜ANin＜Xdmaxが成立するか否かを判定する（Ｓ８０−１）。Xdmin、XdmaxはＤＡＣ３１によりアナログ値に変換されており、ANinはサンプル＆ホールド回路２２から出力されたアナログ値である。
【００７６】
この判定が成立する場合（Ｓ８０−１のＹｅｓ）、異常判定部２９はＡＤ変換結果（基準値と比較結果）を許容値管理機能２７に出力し、許容値管理機能２７は、比較結果に応じてダイナミック値のXdmin又はXdmaxに基準値Xdrefを設定する（Ｓ８０−２）。
【００７７】
基準値＜アナログ入力（すなわち、Xdref＜ANin）の場合、許容値管理機能２７はXdminに基準値Xdrefを設定する（Ｓ８０−３）。
【００７８】
基準値＞アナログ入力（すなわち、Xdref＞ANin）の場合、許容値管理機能２７はXdmaxに基準値Xdrefを設定する（Ｓ８０−４）。
【００７９】
Ｓ１１０の判定が成立しない場合（Ｓ８０−１のＮｏ）、サンプル＆ホールド回路２２にホールドされているアナログ入力が値化けしていると考えられるので、異常判定部２９はダイナミック値に入らないという判定結果(01)をＣＰＵ通知部３０のフラグに設定する（Ｓ８０−５）。
【００８０】
〔状態の遷移図〕
図６（ａ）は値化けが生じない場合のダイナミック値の遷移図の一例を、図６（ｂ）は値化けが生じた場合のダイナミック値の遷移図の一例をそれぞれ示す。いずれもアナログ入力はANin=３Vであり、値化けしなければ一定に保たれる。図６（ａ）から説明する。
【００８１】
変換処理回数１：XdmaxとXdminには初期値としてそれぞれシステム値maxとminと同じ3.8と0.2が設定されている。最初の基準値Xdrefが1.8とすると、「ANin＞Xdref」である。変換結果レジスタ２６は、基準値Xdref＝1.8と「ANin＞Xdref」というＡＤ変換結果を異常判定部２９に出力する。また、この後、変換結果レジスタ２６は基準値Xdrefを2.8に変更する。
【００８２】
変換処理回数２：異常判定部２９はANinがXdmax=3．8とXdmin=0.2の範囲に入ると判定する。すると、許容値管理機能２７は、「ANin＞Xdref」という比較結果に基づき基準値Xdref＝1.8をXdminに設定する。また、コンパレータ２４の比較結果は「ANin＞Xdref（2.８）」であるので、変換結果レジスタ２６は、基準値Xdref＝2.8と「ANin＞Xdref」というＡＤ変換結果を取異常判定部２９に出力する。また、この後、変換結果レジスタ２６は基準値Xdrefを3.3に変更する。
【００８３】
変換処理回数３：異常判定部２９はANinがXdmax=3.8とXdmin=1.8の範囲に入ると判定する。すると、許容値管理機能２７は、「ANin＞Xdref」という比較結果に基づき基準値Xdref＝2.8をXdminに設定する。また、コンパレータ２４の比較結果は「ANin＜Xdref(3.3)」であるので、変換結果レジスタ２６は、基準値Xdref＝3.3と「ANin＜Xdref」という比較結果を異常判定部２９に通知する。また、この後、変換結果レジスタ２６は基準値Xdrefを3.0に変更する。
【００８４】
変換処理回数４：異常判定部２９はANinがXdmax=3.8とXdmin=2.8の範囲に入ると判定する。すると、許容値管理機能２７は、「ANin＜Xdref」という比較結果に基づき基準値Xdref＝3.3をXdmaxに設定する。４回目でＬＳＢが確定したとするとコンパレータの比較結果は「ANin＝Xdref」となりＡＤ変換が終了する。
【００８５】
図６（ｂ）について説明する。変換処理回数２までは図６（ａ）と同様である。しかし、変換処理回数２と３の間でサンプル＆ホールド回路２２にノイズが影響しホールドされている値に値化けが生じたとする。変換処理回数３ではナログ入力はANin=１Vである。
【００８６】
変換処理回数３：異常判定部２９は、ANin＝１.0VがXdmax=3.8とXdmin=1.8の範囲に入らないと判定する。異常判定部２９はＣＰＵ通知部３０のフラグに(01)を設定するので、ＡＤ変換は打ち切られる。したがって、ホールドされているアナログ入力が値化けすると次の比較サイクルで値化けを検出することができる。
【００８７】
以上説明したように、本実施形態のＡ／Ｄコンバータ１００はアナログ入力がXdmaxとXdminの間に入るか否かを判定することで、ＡＤ変換中の値化けを検出することができる。また、徐々にXdmaxとXdminの幅が狭くなるので、わずかな値化けも確実に検出できるようになる。
【００８８】
〔複数のアナログ入力がある場合〕
図７は、許容値テーブル２８が複数あるＡ／Ｄコンバータ１００の構成の一例を示す。図７において図２と同一部の説明は省略する。
【００８９】
図７では、許容値管理機能２７が複数の許容値テーブル２８のシステム値及びダイナミック値を更新できるようになっている。１つのＡ／Ｄコンバータ１００に複数のセンサの検出値が入力されることがある。この場合、Ａ／Ｄコンバータ１００はチェネルやマルチプレクサの接続先を切り替えてアナログ入力をサンプリング・ホールドするセンサを選択する。しかし、１対のシステム値及びダイナミック値はセンサ毎に異なることも想定される。
【００９０】
ここで、Ａ／Ｄコンバータ１００が、１つのセンサのアナログ入力のＡＤ変換が終了するまで、別のセンサのアナログ入力のＡＤ変換をしないのであれば、システム値とダイナミック値を書き換えることで複数のセンサに対し１つの許容値テーブル２８を共用できる。
【００９１】
しかしながら、図示するように、センサ毎に許容値テーブル２８を用意することで、Ａ／Ｄコンバータ１００は複数のアナログ入力を並行してデジタルに変換しても、変換中の値化けを検出することができる。この場合、Ａ／Ｄコンバータ１００はアナログ入力と同じ数だけサンプル＆ホールド回路及び変換結果レジスタを有する。
【００９２】
このような構成は特に１つのＥＣＵに複数の機能が統合された統合ＥＣＵにおいて有効である。すなわち、システム値が異なるアナログ入力を必要とするＥＣＵを統合しても、１つのＡ／ＤコンバータでＡＤ変換中の値化けを検出できる。
【符号の説明】
【００９３】
１１    メモリ
１２    ＣＰＵ
１３    ＩＮＴＣ
２１    入力回路
２２    サンプル＆ホールド回路
２３、３１    ＤＡＣ
２４    コンパレータ
２５    基準値レジスタ
２６    変換結果レジスタ
２７    許容値管理機能
２８    許容値テーブル
２９    異常判定部
３０    ＣＰＵ通知部
１００  Ａ／Ｄコンバータ
２００  マイコン
【図１】
2012227623.tif 000003
【図２】
2012227623.tif 000004
【図３】
2012227623.tif 000005
【図４】
2012227623.tif 000006
【図５】
2012227623.tif 000007
【図６】
2012227623.tif 000008
【図７】
2012227623.tif 000009
【図８】
2012227623.tif 000010
【図９】
2012227623.tif 000011