ΣΔ ADCの最新アーキテクチャ:分散システム同期時のデータフロー中断回避
Vol 53 No 3, September 2019
著者: Lluis Beltran Gil
概要
本稿では、まず、逐次比較型 (SAR) のA/Dコンバータ (ADC) またはシグマ・デルタ (∑∆) 型のADCをベースとする分散型データ・アクイジション・システムにおいて、すべてのADCの間で同期を確立するための従来の手法を紹介します。それを通して、2つのアーキテクチャの違いを示します。続いて、複数の∑∆ ADCの同期をとる場合に生じる一般的な問題について説明します。最後に、8チャンネルを備える∑∆ ADC [AD7770]を例にとり、サンプル・レート・コンバータ (SRC) 機能を利用した新しい同期手法を紹介します。その手法であれば、複数の∑∆ ADCをベースとするシステムにおいて、データ・フローを中断することなく同期を実現することができます。
はじめに
コンコルドが退役した現在、軍用機のパイロットか宇宙飛行士でない限り、超音速機に乗る機会に恵まれることはないでしょう。エレクトロニクス技術者である筆者は、鳩時計をはじめとするあらゆるものの動作原理に関心を持っています。また、各システムが他のシステムと完璧な同期を保ちながら調和して動作する様子に惹きつけられます。
システム間の同期は、私たちの身の周りのあらゆるところで実現されています。私たちは、銀行のサーバからスマートフォンのアラームまで、あらゆるものが相互に同期接続された世界に生きています。個々のケースで異なるのは、解決すべき問題の大きさや複雑さだけです。すなわち、異なるシステムの同期において求められる精度や許容誤差、システムの規模だけが異なるということです。
分散システム
スタンドアロンの回路の場合、同期はローカルのクロックまたは使用する発振器に基づいて実現されます。しかし、そのスタンドアロンの回路をそれよりも大きなシステム(本稿では、分散システムを前提とします)に組み込まなければならない場合には、問題に変化が生じます。その結果、各ユース・ケースに応じてスタンドアロンの回路を設計しなければならなくなります。
システムにおいて、1台の電気機器の瞬時消費電力を計算するには、電流と電圧を同時に測定しなければなりません。簡単な解析により、この問題は次の3つの方法で解決できることがわかります。
- 同期のとれたシングルチャンネルの ADC を2個使用して、電流と電圧を測定する方法
- チャンネルごとに1個の ADC またはサンプル&ホールド回路を備え、同時サンプリングが行えるマルチチャンネルの ADC を使用する方法
- 1個の多重化 ADC によって測定した値に対して補間処理を施すことにより、電圧と電流を測定する際の時間のずれを補償する方法
1台の電気機器を前提とした場合、これらの解決方法で問題ありません。しかし、システムの要件を拡大し、工場内に存在するすべての AC 電源ソケットを対象として電力を測定しなければならないとしたらどうでしょうか。その場合、瞬時消費電力を測定するための回路を工場中に分散配備し、各 AC 電源ソケットにおける電力の測定と計算を同時に実施するように設計を行わなければなりません。
ナイキストADCとオーバーサンプリングADC
ここで対象にしているのは、互いに離れた場所に配置されながらも密接な相互関係を持つ、一連のサブシステムで構成される分散システムです。工場全体の瞬時消費電力を計算するには、各サブシステムから正確かつ同時にサンプリングされたデータが供給されるようにしなければなりません。
この仮想的なアプリケーションを更に拡張し、元の測定回路が国内の電力網に組み込まれるケースを想像してください。その場合、数百万 W もの電力を検出する必要があります。また、接続に何らかの障害が発生したら、悲惨な結果を招いてしまうかもしれません。例えば、過度な負荷によって電力線が損傷すると、停電が生じ、山火事、病院の電源喪失といった大惨事につながる可能性さえあります。
そのような状況を回避するためには、すべての同期を正確に確立しなければなりません。つまり、どのような地理的条件が存在しようとも、電力網におけるデータを正確かつ同時にキャプチャする必要があります(図1)。
図1. 同期の確立が求められる電力網
このような重要な分散システムでは、測定用のすべてのノードから完全に同期がとれたデータ・ストリームを連続的に取得しなければなりません。電力網の例と同様の要件が当てはまる重要な分散システムは、航空宇宙の分野などに数多く存在します。
ナイキストADC または SAR ADC
本稿では、数多くの ADC において同時にサンプリングが行えるよう同期を確立する方法を説明します。その前に、ADC の各トポロジにおいて、アナログ入力信号をサンプリングするタイミングを決定する方法と、各アーキテクチャのメリット/デメリットについて説明しておきます。ADC の主要なトポロジとしては以下の2つがあります。
- ナイキスト ADC または SAR ADC: このタイプの ADC の最高入力周波数はナイキスト周波数(サンプリング周波数の 1/2)
- オーバーサンプリング ADC または ∑∆ ADC: 一般に、最高入力周波数は最高サンプリング周波数よりもかなり低い。通常は最高サンプリング周波数の 0.3 倍程度
SAR ADC の場合、入力信号をサンプリングするタイミングは、変換開始ピンに印加される外部パルスによって制御されます。図2に示すように、システム内で同期をとる必要があるすべての SAR ADC に対して共通の変換開始パルスを印加すれば、そのパルスのエッジで全 ADC が同時にサンプリングを開始します。各変換開始パルスに大きな遅延が生じないように(つまり、変換開始信号が全 ADC に同時に到達するように)するだけで、システムの同期を簡単に実現できます。変換開始パルスが変換開始ピンに到達してから、実際のサンプリングが行われるまでの伝搬遅延が、ADCごとに異なることがないように注意する必要があります。ただ、サンプリング速度が比較的遅い高精度の ADC では、伝搬遅延はさほど問題にはならないでしょう。
図2. SAR ADCベースの分散システムにおける同期の確立方法
一方、∑∆ ADC の動作は、ナイキスト ADC/SAR ADC の動作とは少し異なります。オーバーサンプリング ADC/∑∆ ADC では、内部コア(変調器)によって、ナイキスト定理に基づく最低周波数よりもはるかに高い周波数(変調器の周波数 fMOD)で入力信号をサンプリングします。オーバーサンプリング ADC と呼ばれる理由はここにあります。
オーバーサンプリングADC または ∑∆ ADC
実際に必要な周波数よりもはるかに高い周波数でサンプリングするということは、本来必要な数よりも多くのサンプル・データが得られるということを意味します。得られたサンプルは、その後、平均化フィルタによって処理されますが、その目的は次の2つです。
- 4つの平均化サンプルごとのノイズを1ビット低減します。
- 平均化フィルタの伝達関数は、ローパスフィルタ(LPF)特性を示します。図3に示すように、∑∆変調器は、量子化ノイズを高周波側にシフトします。そのノイズを除去するためのフィルタ処理が平均化フィルタによって行われます。
図3. ∑∆変調器によるノイズ・シェーピング
N個のサンプルを対象とした平均化処理により、1つの最終的なデータが得られるとします。このとき、Nをデシメーション比(またはデシメーション係数)と呼びます。この処理によって、ADCが変換結果を出力するレートが決まります。この出力データ・レート(ODR、単位はサンプル/秒)は、以下の式で表されます。
ODR = fMOD / N (1)
通常、デシメーション比は整数値です。各ADCでは、プログラム可能な一連の値があらかじめ定義されています(N = 32、64、128など)。したがって、fMODが固定値であるとすると、Nの値(定義済みの値のうちのいずれか)によってODRが決まることになります。
一般に、平均化処理は、SincフィルタとしてADCの内部に実装されます。また、変調器用の変換開始パルスに相当する信号もADCの内部で生成されるため、∑∆ ADCには、変換処理を開始するための外部制御信号は存在しません。∑∆ ADCは、入力信号を連続的にサンプリング/トラッキングして取得したデータを処理します。処理(サンプリングと平均化)が完了すると、ADCはデータ・レディ信号を生成します。その信号により、デジタル・インターフェースを介してデータをリード・バックすることが可能であることをコントローラに通知します。
図4に示すように、∑∆ ADCにおける信号処理のフローは、主に次の4つのステップで構成されます。
- 変調器が周波数 fMOD で信号をサンプリング
- Sinc 型のデジタル・フィルタによってサンプルを平均化
- Sinc フィルタによる処理の結果に対するオフセットとゲインの補正
- データ・レディ・ピンをトグル。コントローラによる変換結果のリード・バックが可能であることを示します。
図4. ∑∆ ADCにおける信号処理のフロー
上述したように、∑∆ ADCでは、その内部でサンプリングを開始するタイミングを外部から制御することはできません。したがって、分散システム内において複数の∑∆ ADCの同期をとるには、すべてのデジタル・フィルタを同時にリセットするという方法を使用します。デジタル・フィルタは、平均化処理の開始を制御する役割を担うからです。
分散システムにおける同期サンプリングの影響
図5は、全∑∆ ADCでODRとfMODが同じである場合の同期の確立方法を示したものです。SAR ADCをベースとするシステムと同様に、フィルタ用のリセット・パルスがすべてのサブシステムに同時に到達する必要があります。ここで注意が必要なのは、デジタル・フィルタがリセットされる度に、フィルタが再びセトリングするまでの間、データ・フローが中断されるということです。データが中断する時間は、デジタル・フィルタの次数、fMOD、デシメーション比に依存します。フィルタのLPF特性に基づき、有効な出力が生成されるまでには遅延が生じます(図6)。
図5. ∑∆ ADCベースの分散システムにおける同期の確立方法。デジタル・フィルタのリセットによって同期を実現します。
図6. デジタル・フィルタのセトリング時間に起因するデータ・フローの中断
分散システムでは、グローバル同期信号(以下、Global_SYNC)がすべてのモジュール/サブシステムで共有されます。Global_SYNCは、マスタか、図1に示したGPSの1PPS (Pulse Per Second)のようなサードパーティのシステムによって生成することができます。
SAR ADCベースの分散システムの場合、先述したように、再同期の処理は本質的に容易です。Global_SYNCに対してローカル・クロック(変換開始信号を制御)の再アライメントを実行することにより、それらの信号のその後の同期を確保することができます。ただ、上記の処理を行うと、周波数スプリアスが生成されます。図7の青色の枠で囲まれた部分に示すように、同期をとる際、異なる時間に収集されるサンプルが1つ生じるからです。このスプリアスは、分散アプリケーションにおいて許容できるものであるかもしれません。しかし、データ・フローの中断は、例えば電力線の監視アプリケーションなどでは非常に重大な問題になります。
図7. SAR ADCにおける同期処理。Global_SYNCに対するアライメントを実行した上で変換処理を行います。
∑∆ ADCベースの分散システムでは、Global_SYNCとの再同期はもう少し複雑になります。∑∆変調器は、アナログ入力信号を連続的にサンプリングすることに加え、その変換処理はSAR ADCのように外部から制御されるものではないからです。
∑∆ ADCをベースとする複数の分散システムの間で同期をとるには、どうすればよいでしょうか。そのための最も簡単な方法は、デジタル・フィルタをリセットすることです。変調器でサンプリングし、平均化フィルタで処理するために収集/保存済みだった全サンプル・データを破棄し、デジタル・フィルタ内のデータを空にするのです。図5と図6に示したように、この処理でデジタル・フィルタの出力が再びセトリングするまでには、デジタル・フィルタの次数に応じた時間を要します。
デジタル・フィルタがセトリングすると、有効な変換データが再び出力されるようになります。ただ、デジタル・フィルタをリセットすると、セトリングするまでに時間がかかるために、許容できないデータ・フローの中断が発生する可能性があります。分散システムにおいて再同期の処理を実施する頻度が高いほど、データ・フローが中断する回数が増えます。データ・フローの中断が連続的に発生することから、実用的に考えて、重要な分散システムには∑∆ ADCを適用できない可能性があります。
従来は、このデータ・フローの中断を最小限に抑えるために、PLLなどのチューナブル・クロックを使用し、Global_SYNCとfMODの間の誤差を低減する方法が使われてきました。Global_SYNCのパルスを受信した際、以下のような処理を行えば、∑∆ ADCで変換が開始するタイミングと同パルスの間のずれを計算することができます。
- コントローラにより、サンプリングのタイミング(図8に示すように、群遅延を調べてデータ・レディ信号から逆算する)とGlobal_SYNC のパルスの間の時間差を計算します。群遅延とは、入力がサンプリングされてから、データ・レディ・ピンがトグルされる(サンプルが読み出し可能であることを示す)までの時間のことです。その値はデータシートに記載されています。
- 図8. アナログ入力をサンプリングするタイミングとデータ・レディがトグルするタイミングの時間差
- ずれが存在する場合には、デジタル・フィルタをリセットするか、ローカル・クロック周波数fMODを変更することによって、数サンプルの間にサンプリング・タイミングを調整します。どちらの場合も、数個分のサンプルは破棄されます。fMODを変更すると、∑∆ ADC の ODR が変化することに注意してください(ODR = fMOD/N)。ADC がアナログ入力をサンプリングするタイミングを遅く(または速く)して、システム内の他の ADC や Global_SYNC に整合させることがその目的です。
- fMOD を変更した場合、同期が達成されれば、マスタ・クロック周波数は元に戻されます。サブシステムのその後の同期を確保しつつ、ODR を元に戻すことが目的です。
- この処理では、fMODを一定の時間だけ変更します。その様子を図10に示しました。
- 図9. 各ADCのサンプリング・タイミングとGlobal_SYNCとの時間差の定量化(群遅延が既知の場合)
- 図10. PLLによってfMODを変更する同期方法
データ・フローの中断が生じず、簡単に再同期を実現できる∑∆ ADC
この方法は、以下に示すいくつかの理由から適用できないケースがあります。
- fMOD を倍数ではない値に変更するのが難しいケースがあります。
- 周波数の細かいチューニングが可能である場合、変更時の周波数ステップは小さくなければなりません。そうしなければデジタル・フィルタが範囲外となり、同期ルーチンのリード・タイムが長くなる可能性があります。
- ODR を大きく変更しなければならない場合には、fMOD の代わりにデシメーション比Nを変更することができます。その場合にも、いくつかのサンプルは破棄されます。
- PLL を使用すると、電力がより多く消費されます。加えて、望ましいMODに到達するまでの PLL のセトリング時間も考慮する必要があります。
一般に、システムの規模が大きくなるにつれ、全体的な複雑さとコストは増します。SAR ADCでは、Global_SYNCに対して変換開始のタイミングをアライメントするだけで、この問題を簡単に解決できます。それに比べると、∑∆ ADCにおける複雑さとコストの問題は非常に顕著です。また、上述したシステムの制約や限界に基づき、∑∆ ADCを適用できないケースも数多く存在します。
AD7770の製品ファミリ(「AD7771」、「AD7779」 などが含まれます)は、SRCを内蔵しています。この新しいアーキテクチャを採用すれば、デシメーション比Nを固定値に制限する必要がなくなります。
SRCを内蔵する∑∆ ADCであれば、Nとして整数値だけでなく小数値をプログラムすることができます。つまり、任意のODRをプログラムすることが可能になります。従来の同期方法ではNが固定だったので、同期ルーチンを実行するためにfMODを調整するには、外部クロックを変更しなければなりませんでした。
AD7770 ファミリを使用すれば、Nを自由にプログラムし、オンザフライで再プログラムすることができます。そのため、「MODを変更してデータ・フローを中断することなく、ODRをプログラムすることが可能です。
SRCを利用すれば、∑∆ ADCベースのサブシステムの再同期の処理を簡素化することができます。そのため、この新たな手法では、先述した複雑さを最小限に緩和することが可能になります。
新たな手法による再同期は、次のようにして行います。
- Global_SYNC を受信したら、各サブシステムは、同期のとれた状態でサンプリングが行われているかどうかを確認します。データ・レディ信号を基準とし、群遅延を基に実際にサンプリングが行われているタイミングを検出します。
- サンプリングのタイミングと Global_SYNC の受信タイミングの間にずれがある場合には、ローカル・コントローラによってその時間差(tahead または tdelayed)が定量化されます(図9)。
- SRC によってNを変更することにより、ODR を一時的に速くする(または遅くする)ようにプログラムします。再同期の処理全体には、必ず4サンプル(AD7771 で Sinc5 フィルタを有効にした場合は6サンプル)を要しますが、それらのサンプルは 100% セトリングした有効なものです。したがって、それらのサンプルによってデータ・フローが中断することはありません。
- 必要な数のデータ・レディを受信したら、Nを再プログラムして、ODRを所望の値に戻します。これによって、図11に示すように、データ・フローを中断させることなく、∑∆ ADC とサブシステムの他の部分の同期がとれていることが保証されます。
図11. SRCを利用した再同期の方法。SRCは、全ADCにおいてサンプリングの再同期を確立するために、オンザフライでODRを調整します。
まとめ
重要な分散システムでは、すべてのサブシステムにおいて同期がとれた状態で変換が実施されることと、データ・フローが連続的であることが求められます。
SAR ADCでは、Global_SYNCに対して変換開始信号を再アライメントするだけで、サンプリング処理の再同期を実現することができます。しかし、高いダイナミック・レンジやS/N比を必要とするアプリケーションでは、SAR ADCを採用することができません。一方、従来型の∑∆ ADCでは、データ・フローを中断することなく再同期をかけることができません。そのため、こちらも重要な分散システムで使用するのは困難です。
本稿で示したように、SRCを利用すれば、シームレスな同期ルーチンを最小の遅延で実現することができます。他のソリューションと比べても、コストと複雑さをはるかに抑えられます。
SRCが有用な手段になり得るアプリケーションは数多く存在します。電力線監視を例にとると、ライン周波数が変化しても、デシメーション比をオンザフライで直ちに変更することによって補償を行うことができます。それにより、電力線のサンプリング周波数は、常に統一されている状態になります。本稿では、重要な分散システムの再同期を実現する手段としてSRCが非常に有効であることを示しました。この方法であれば、データ・フローの中断は発生しませんし、PLLのような部品を追加する必要もありません。PLLを使用する場合、一部のサンプルを破棄しなければなりませんし、コストや複雑さが増大します。AD7770は、∑∆ ADCベースの分散システムで同期に関して発生する諸問題を解決可能なソリューションです。
著者について
Lluis Beltran Gil (lluis.beltrangil@analog.com)は、2013年に高精度コンバータ・グループのアプリケーション・エンジニアとしてアナログ・デバイセズに入社し、リムリックを拠点として温度センサーを担当しました。現在は、高精度コンバータ・グループのSAR ADCアプリケーション・チーム(スペイン バレンシア)に所属しています。バレンシア工科大学(UPV)で2009年に電子工学の修士号、2012年に産業工学の修士号を取得しています。