コンパレータとDACの組合せによりデータ収集上の問題を解決

コンパレータとDACの組合せによりデータ収集上の問題を解決

著者の連絡先情報

要約

ここでは、従来のA/Dコンバータアプリケーションでしばしば見過ごされがちだった方法について説明します。すなわち、A/D変換は、ディスクリートのコンパレータとD/Aコンバータの組合せで実現した方が優れている場合があります。この代替案にはよく異なる測定アプローチがともないますが、低コスト、高速、柔軟性および低消費電力等の利点があります。

現在のトレンドはむしろ反対の方向に向かっており、A/D変換を必要とする設計では通常パッケージ化されたA/Dコンバータ(ADC)が使用されます。多くのエンジニアは代替方法を知らず、またADCの価格/性能比は下がり続けています。それでも、アナログコンパレータとD/Aコンバータ(DAC)の組合せにディジタル処理能力を加えると、逐次比較ADCのコアを形成することができます。

ディスクリートコンパレータ/DAC法は、特定の領域ではすでに一般的になっています。ATE (自動試験装置)、核パルス高ディスクリミネータおよび自動タイムドメイン反射率計では片方のコンパレータ入力をDACで駆動し、他方のコンパレータをモニターの対象となる信号で駆動する技術が使用されています。以下、コンパレータ/DACの組合せの方が市販のADCよりも適しているような特定のアプリケーションと、一般的な測定上の問題について説明します。

トランジェント電圧解析

振幅が高速で変化する現象(トランジェント)をキャプチャする力づくの方法は、プロセッサと高速RAMがサポートする高速ADCを使用して数値化する方法です(図1)。一回だけの現象やトランジェントの詳細を知る必要がある場合はこの方法が適していますが、トランジェントが繰返し現象の場合には、DAC/コンパレータ法を用いてピーク振幅その他の特性を測定することができます(図2)。

図1. 力づくの方法であるトランジェント解析としてのADC回路は消費電力が大きく、コスト高になります。
図1. 力づくの方法であるトランジェント解析としてのADC回路は消費電力が大きく、コスト高になります。

図2. 図1のアプリケーションの振幅測定に反復法が使用できる場合は、DAC/コンパレータの組合せでADCを置き換え消費電力とコストを節約します。
図2. 図1のアプリケーションの振幅測定に反復法が使用できる場合は、DAC/コンパレータの組合せでADCを置き換え消費電力とコストを節約します。

コンパレータの一方の入力にトランジェント信号が印加されているときに、DACは他方の入力に試行レベルを設定します。次に、DAC出力を調節しながら、コンパレータのスレッショルドを超えたときのコンパレータ出力応答をディジタルラッチでキャプチャすることにより、ピークトランジェント振幅を決定します。トランジェントの全帯域幅を維持する必要があるのはコンパレータ入力だけで、DAC出力のセトリング時間が長くても測定精度には影響しません。このように、アナログドメインで検出することにより、高価なADCを低コストのDACとコンパレータで置き換えることができます。

これに関連した問題は、アナログ電圧を許容リミットと比較することにより監視する場合です。多くの自己診断機器ではシステム電圧、温度その他のアナログ量をプログラミングされているリミット値と比較します。しかし、設定値がDACで設定されているコンパレータを使用して比較を行うと、リミット値から外れたことを示す1つのビットを読むだけで比較ができるため、プロセッサへのオーバーヘッドが少なくなります。

この方法(アナログドメイン比較)は、ADC法(ディジタルドメイン比較)と同等の精度を持っています。このため、アナログ値のまま設定点と比較できるにもかかわらず、その値全体をわざわざ数値化する必要はないわけです。1点述べておく必要があります。上下の警報レベルや上下のシャットダウンレベルなど数個の設定点と値を比較する必要がある場合には、4つのDACと4つのコンパレータを用いるよりもADCを1つだけ用いる方が好ましいかもしれません。

従来のDACでシンプルなADCを構成

コストとサイズに制限のあるポータブル機器では、従来のDACがA/D変換も行う場合があります。たとえば、携帯電話や医療用電子機器では、LCDのコントラスト電圧を調節するためのDACがよく入っています(図3)。ときには、前述のようにコンパレータやスイッチを追加するだけで温度やバッテリ電圧を監視することもできます。従来のDACはこの場合二重の役割を果たすことになり、DACがA/D変換を行っている間はディスプレイがブランクになります。ブランクにしたくない場合は、アナログスイッチとコンデンサからなるシンプルなサンプル/ホールド回路(図4)を使用することにより、A/D変換中のLCDコントラスト電圧を保持することができます。

図3. この回路はポータブル機器によく見られます。
図3. この回路はポータブル機器によく見られます。

図4. 図3の回路にコンパレータを2個追加すると、DACがADCの役も果たすため、コストの節約になります。
図4. 図3の回路にコンパレータを2個追加すると、DACがADCの役も果たすため、コストの節約になります。

従来のシングルDACの代わりに、低コストのデュアルDACを用いる方法もあります。デュアルDACの片方はフルタイムでLCDコントラスト電圧を発生し、他方はフルタイムのADCを形成する助けとなります。シングルであれデュアルであれ、DACを駆動してコンパレータをサンプリングし、逐次比較を実行するシンプルかつ高速のソフトウェアルーチンでDACとコンパレータをサポートする必要があります(「逐次比較」のコラムを参照)。

設計上の考慮

DACとコンパレータの組合せ方は簡単です。信号はコンパレータの非反転入力に印加され、DACはディジタル的にプログラマブルなスレッショルドを反転入力に提供します。そしてコンパレータは信号がスレッショルドよりも高いときにロジックハイ出力を発生します。しかし、いくつかの点で注意が必要です。

スレッショルドレベルの精度を保つには、コンパレータの入力バイアス電流およびスケーリングネットワークに関しDACのDC出力抵抗が低くなければなりません。これはDACの出力抵抗が10kΩに達するような超低電力回路で問題になってきます。

DACに関してもう一つ重要なことは、AC出力インピーダンスが低くなければならないことです。そうでないと、コンパレータ出力の高速ディジタルスルーレートが寄生レイアウト容量を介してカップリングし入力トランジェントが発生するため、発振が生じて精度が劣化してしまいます。セトリング時間を多少犠牲にしてもよい場合には、コンパレータの入力にバイパスコンデンサを追加することによりDACのAC出力インピーダンスを低くすることができます。DACの出力アンプの容量性負荷が大きすぎると不安定になり発振することがありますが、この問題はDAC出力に直列に抵抗を追加することにより簡単に解決できます。

コンパレータで重要な考慮点はヒステリシスです。たいていのコンパレータ回路はノイズと発振を防ぐためにヒステリシスが設けられていますが、ヒステリシスの使用はひかえめにするべきです。なぜならヒステリシスがあると出力状態に依存してスレッショルド値が変化するからです。状態に依存するヒステリシスをシステムが補償できる場合は問題ありませんが、そうでない場合はヒステリシスは避けるべきです。

コンパレータの内部ヒステリシスをディセーブルできない場合には、DAC出力がいつも同じ方向からコンパレータのスレッショルドに近付くようにしておけば悪影響を排除することができます。これは、各ビットのテスト後にDACをゼロに設定するようにプログラムすることで簡単に実現できます。すなわち、本書の文末に掲げる疑似コードに1行追加するのです(コラム「逐次比較」を参照)。

わずかの容量性フィードバックを追加することによってヒステリシスの必要性を取り除く方法もあります。このフィードバックはコンパレータのリニア・遷移領域をスピードアップします。あるいは、フリップフロップまたはラッチを出力に追加して、そのときどきのコンパレータの出力状態をキャプチャすることもできます。

最近のコンパレータは、スルーレートが制限された入力信号への対応が改善されています。たとえばマキシムのMAX913およびMAX912は、リニア領域で安定しているため、この点では特に優れています。図5に高速12ビットアプリケーションにおけるMAX913の性能を示します。DAC/コンパレータのもう1つの例として示した図6の回路(超低電力8ビットコンバータ)は、未使用時に自らをターンオフすることによって電力を節約します。

図5. コンパレータはリニア領域で安定しているため、高速12ビットの振幅ディジタイザは入力電圧がゆっくりと変化する場合でも発振しません。
図5. コンパレータはリニア領域で安定しているため、高速12ビットの振幅ディジタイザは入力電圧がゆっくりと変化する場合でも発振しません。

図6. 低電圧8ビットのこのディジタイザは、低コスト、低消費電力およびサンプリング間のシャットダウンが可能という点でADC法よりも優れています。
図6. 低電圧8ビットのこのディジタイザは、低コスト、低消費電力およびサンプリング間のシャットダウンが可能という点でADC法よりも優れています。

DAC/コンパレータの組合せIC

マキシムはコンパレータとDACの機能を組合せることによって設計を大幅に簡易化するモノリシックデバイスを3品種提供しています。いずれのデバイスも本文に記載のアプリケーションおよびその他多くのアプリケーションに適しています。

たとえば、MAX516はマイクロ秒以下のスピードを持つクワッドデバイスで、中程度のスピードの複数チャネルアプリケーションの多くに適しています(図S1a)。

図S1. マキシムの8ビットDAC/コンパレータICとしては、クワッドのMAX516 (a)、高速TTLコンパチブルのMAX910 (b)、ECLコンパチブルのMAX911 (図示せず)の3品種があります。
図S1. マキシムの8ビットDAC/コンパレータICとしては、クワッドのMAX516 (a)、高速TTLコンパチブルのMAX910 (b)、ECLコンパチブルのMAX911 (図示せず)の3品種があります。

MAX910はシングルかつ高速TTL出力のDAC/コンパレータで、伝播遅延が8nsです(図S1b)。MAX911はこれに類似していますがさらに高速で、コンプリメンタリECL出力で伝播遅延が4nsになっています。

逐次比較

逐次比較は、天秤とバイナリの試行重りの集合(相対重量が1、2、4、8、16等になっている一連の重り)を用いて対象物の重みを判定するプロセスとして簡単に説明できます。未知の重量を最短方法で測定(逐次近似)するには、まず未知の物体と最大の試行重りを天秤にかけます。天秤の表示に従って、その重りを取り除くか、あるいは次に大きな重りを載せます。そして一番小さな試行重りに達するまでこのプロセスを繰り返します。その物体の重量の最も優れた評価値は天秤の上に残っている試行重りの重量の和です。

逐次比較ADCでは、内部DACのビットがバイナリの重りの集合の役割を果たし、コンパレータ出力が天秤の表示の役割を果たします。ビット試行手順を実行するためのロジックは、パッケージADCの逐次比較レジスタ(SAR)、またはDAC/コンパレータ回路を制御するプロセッサのソフトウェアルーチン内にあります。表S1に示す「疑似コード」はそうしたルーチンを表示しています。ほとんどのプロセッサではこのルーチンは20行以下のコードで実現できます。

表S1. 逐次比較用の疑似コード

アプリケーション

本節ではDAC/コンパレータ法がADC法よりも優れている例をいくつか説明します。ここでのアプリケーション回路は特殊なものではありませんが、よくある問題を解決するように工夫されています。

まず、電力ラインに生じる落込み、サージおよびトランジェントの検出と記録を低コストで実現したい場合を考察します。コンセントに差し込む形のデバイスを用いて、パワーラインの異常を検出し、その都度異常発生時間をRAMに記録する機能を備えたものが理想的です。(落込みとサージの持続時間はms~数時間の幅があり、トランジェントは僅か10µsと短いものもあります。)モニタはライン電源が完全に停電した場合の持続時間も記録することが必要なため、モニタ電源はバッテリ駆動が適しています。

従来は、コントローラとADCコンバータによりこの問題を解決していました。コンバータがライン電圧を連続的にサンプリングし、コントローラがソフトウェアに格納されたユーザ設定リミットとその値を比較して、基準から外れた状態が生じるとRAMに記録します。このシステムは10µsの短いトランジェントをトラッキングする必要があるため、ADCのサンプリング間隔は相当短くなければなりません。慎重を期して最大2.5µs位です。このため、コントローラは1/2.5µs、すなわち400kspsでサンプル処理を行わなければなりません。

ソフトウェアの比較コードが効率的で、プロセッサの介入をADCが必要としない場合には、サンプル当たり10個程の命令でこのシステムは動作します。その場合、プロセッサの性能として4 MIPS程度必要となります。これは相当厳しい要求で、バッテリ駆動で実現するのは容易ではありません(図1)。入力トランジェントを追跡するのではなく、その微分に応答するアナログ回路も考えられますが、そうした方法では不十分です。

この場合にはDAC/コンパレータ法がいくつかの点で優れています。回路的には4個のDACと4個のコンパレータ(または1個のMAX516)、その後にクワッドのセット/リセット・フリップが必要となります。DAC/コンパレータ/FFの組合せの内、1組は高トランジェント、1組は低トランジェント、1組は落込み、そしてもう1組はサージを監視します(図2)。トランジェント電圧はコンパレータに直接カップリングされますが、落込みとサージ用コンパレータへの入力はまず整流・フィルタリングされてからライン電圧の平均値が得られます。rmsの調節はソフトウェアで行います。

このシステムはT秒毎にフリップフロップをサンプリングし、リセットします。ここで、Tはトランジェントの記録に必要な時間分解能(60秒程度)です。高および低トランジェントレベル用のDACは、求める高および低スレッショルド値に設定します。落込みおよびサージ用のDACは各T秒間隔の後で調節しますが、ここでは逐次比較法を使用して、現在の平均値を追跡するための高ラインおよび低ラインリミットを発生します。

この逐次比較とその他のハウスキーピングに必要な命令ルーチンを多目に見積もって1,000とすると、T = 60sでの平均CPU性能は17命令/sとなります。これは0.00002 MIPSの実行レートで、低電力システムに最適で、またADC法で必要される4 MIPSと比べて遥かに低くなっています。さらに電力を節約するために、コントローラは通常は「スリープ」状態にして、ライン異常時にのみパワーアップさせることもできます。こうして、この回路ではソフトウェアからアナログハードウェアに電圧比較機能を移すことによって電力、複雑度およびコストを低減しています。

わずかな保守で実現できる異常検出と診断

プリンタヘッド制御、キャリッジ制御等、多くのメカトロニクスアプリケーションでは、重要な内部電圧および温度を監視して、動作モードをいつ修正するべきかを決定します。極端な場合、このフィードバックによってシステムは完全にシャットダウンするため自己破壊をまぬがれることができます。たとえば、ステップモーターコントローラは、必要なときに出力MOSFETへのゲートドライブを調節することにより、リニア動作に伴う過剰な電力消費を避けることができます。

ここでも、こうした監視の問題に対する従来の解決法ではADCを用います(図7a)。プロセッサは周期的な測定を実行するようにADCに命令します。この周期は制御の対象となるプロセスの時間定数に対応しています。プロセッサは数値化で得られた値をスケーリングしてからソフトウェアのリミットと比較します。値が範囲外にあれば、修正処置を実行するか、あるいはシステムを完全にシャットダウンします。

これに代わる方法では、DAC/コンパレータの組合せを用います(図7b)。スタティックなDAC出力によりシャットダウンリミット、すなわちコンパレータのトリップ値が設定されます。温度変化によってコンパレータがトリップすると、コンパレータはプロセッサに割込みをかけ、修正処置が実行されます。必要なら、プロセッサはソフトウェアで逐次比較ルーチンを実行することにより、絶対温度値を測定することもできます。

図7. この場合、ADC (a)をDACとコンパレータ(b)で置換えることにより、システムコスト、応答時間およびソフトウェアのオーバーヘッドを低減することができます。
図7. この場合、ADC (a)をDACとコンパレータ(b)で置換えることにより、システムコスト、応答時間およびソフトウェアのオーバーヘッドを低減することができます。

一方、ADCをサポートするにはプロセッサはADCをポーリングし、サンプル値を入力した後、サンプル値を設定点と比較してシャットダウンルーチンにジャンプします。このため、DAC/コンパレータは、省コストというだけでなく、ADCよりも応答が速く、またプロセッサのオーバーヘッドも少なくなります。

タイムドメインの反射率測定

最後に、DAC/コンパレータの組合せは、その低コストと低消費電力(ADCと比較して)を利用して、携帯用のタイムドメイン反射率計(TDR)を実用化できます。TDRはケーブルの不連続性を検出し、その地点までの送信距離を測定する計器です。ネットワーク配線の増加と共に携帯可能で低価格のTDRが普及してきています。

TDRはレーダーのように動作します。すなわち、ラインに短いパルスを送り込み、オープン回路、短絡等でラインインピーダンスが急激に不連続になっている点からのエコーを検出します。ライン伝播を0.6c (光速の0.6倍)と仮定すると、送り出すパルスと戻ってくる反射間の伝播時間間隔は約3.3ns/ftになります。したがって、電子回路の時間分解能が10nsの場合、不連続部分までの距離の分解能は約3ftになります。

受信されたパルス振幅と送信したパルス振幅の比を使って反射係数が計算されます。反射係数とケーブルのインピーダンスがわかれば不連続部分のインピーダンスが計算でき、そこから不連続部分の性質を推理することができます。同軸ケーブルでは帰りの行程でパルスが減衰するため複雑となり、ソフトウェアは距離測定に基づいて振幅修正を行い、この影響を補償しなければなりません。

このアプリケーションでは、ADCは5ns (200Msps)毎に変換しなければなりません。こうしたADCは入手可能ですが、高価で消費電力が大きく、一般に携帯用アプリケーションには適しません。

実際のハンドヘルドTDRのアナログフロントエンド(図8)は、上記のアイデアを例証しています。ディジタル回路は複雑になるので省いてあります。この回路はシンプルで、特に華やかな部品は使用されていませんが、性能には優れています。ケーブル長500ftの終端インピーダンスを5%精度で確実に測定することができ、オープンや短絡終端では2000ftまで測定することができます。さらに、このシステムはディスプレイとディジタル回路が入っても、9Vのアルカリバッテリで20時間動作することができます。

図8. タイムドメイン反射率計のアナログ部分を構成するこの回路は、ADCの代わりにDAC/コンパレータを用いています。
図8. タイムドメイン反射率計のアナログ部分を構成するこの回路は、ADCの代わりにDAC/コンパレータを用いています。

図8のコンパレータ(IC3)は、グランド検出で伝播遅延僅か10nsの単一電源動作です。DAC (IC4)はデュアルICで、片方はパルス高測定に、他方はLCDコントラストコントロールの駆動に使用されます(図3と同様)。DACは逆駆動になっていることに注意してください。すなわち、通常時の電流出力がバッファされたリファレンスで駆動され、通常時のリファレンス入力が電圧出力となっています。各々が外部オペアンプでバッファされています。

シンプルなグリッチ単安定回路(図示せず)がQ1のベースを駆動し、Q1がケーブルにプラスの10nsパルスを送り込みます。ラインからの反射はC3を介してコンパレータにカップリングされます。

IC5はバンドギャップリファレンスで、1.2V出力がオペアンプIC2dでバッファされてIC4のデュアルDACのリファレンス電圧となります。このリファレンス電圧はゲイン2のアンプIC2cで2倍に増幅されて、コンパレータの非反転入力にDC2.5Vレベルを提供します。DAC Aはコンパレータの反転入力に0V~3.8Vを印加します。2.5V以上のレベルはプラスに向かうパルス高の決定を可能にし、2.5V以下のレベルはマイナスに向かうパルスの振幅の決定を可能にします。

送信ラインに入る各パルスはディジタル回路の可変遅延ラインにも入ります。可変遅延ラインはカウンタにより制御される一連の20ns遅延素子からなっています。ディジタル部分から入ってくるこの遅延パルスは、2つのフリップフロップ(IC1aおよびIC1b)のD入力を共に駆動し、フリップフロップはコンパレータのコンプリメンタリTTL出力によってクロックされます。ここで時間測定は、戻りパルスと遅延ラインを通るパルスとの間の競走になってしまいます。もしクロックの遷移よりも前にD入力がくるとフリップフロップ出力はハイになり、そうでなければゼロになります。

測定を行うには、まずDAC出力を絶対最低レベルに設定し、フリップフロップ出力がゼロで安定するまで繰返し遅延時間を調節し、カウンタを読取ります。同様に、戻りパルスの高さを測定するにはフリップフロップ出力がゼロで安定するまで繰返しDAC出力を調節し、DACを読取ります。コンパレータのプラスおよびマイナス両方のパルスの先行エッジをキャプチャするにはフリップフロップが2つ必要であることに注意してください。先行エッジはプラスパルスの場合立上がり、マイナスパルスの場合は立下がります。両方が1つのフリップフロップに印加されると、パルス幅の分だけ望ましくない遅延が生じます。

参考文献

  1. Edward Jordan, Reference Data for Engineers, 7th Edition, (Howard Sams, 1989)
  2. Brian Kenner and John Wettroth, The Design of a Time-Domain Reflectometer, (Computer Applications Journal #29, October/November 1992)
  3. Paul Horowitz and Winfield Hill, The Art of Electronics, 2nd Edition, (Cambridge University Press, 1989)