アナログとディジタル

[| ]  最終更新: 2011/02/10 19:19:14

アナログ回路とディジタル回路

はじめに

近年、多くのものがディジタル化してきました/されつつあります。

以前は、テレビやビデオというとアナログ回路の固まりでしたが、最近は、電波はアナログで届くものの、すぐにその中のディジタル信号が取り出され、映像信号や音声信号の展開処理はディジタルのまま、録画機でもディジタルのまま保存され、はやりの薄型テレビにもディジタルのまま送られ、テレビの液晶パネルなどもディジタル(PWM)で表示されます。少し前までは録画機−テレビ間がアナログだったりもしましたが、ディジタル化が一気に進んできました。
唯一、音を扱う部分は比較的アナログ増幅が主流ですが、これも最近ではディジタル増幅がどんどん増えています。

その一方で、やはり、実際にやりとりすべき物理現象はアナログです。映像はCCDカメラなどで、光に応じた電荷として検出され、これがディジタルに変換されます。音もマイクの時点ではアナログ、ロボットの傾斜角のセンサなどもアナログ、実体と接するところは基本的にアナログと言えます。

ディジタル制御
ディジタル制御システムの例
そのため、実際の処理をコンピュータなどでディジタル行うにしても、どこかに、アナログとディジタルとの変換を行う箇所が必要となります。ディジタル式がどんどん増えてきたというのは、別の解釈をすると、このアナログとディジタルの境界線が、どんどん物理現象より、つまりセンサの直後や最後に出力するところの直前まで、動いていった過程、とも考えられます。

アナログとディジタルの変換は、アナログ→ディジタル、ディジタル→アナログの2種類の変換です(双方向にやる必要のある性格でもないので、一般には別個に扱います)。パワー回路で説明したPWMも、ディジタル→アナログの変換方法の一つです。ON-OFF時間の比率を変えることで、中間値を作り出すことができます。

このページでは、まずディジタル→アナログの変換について説明し、次いで、アナログ→ディジタルの変換を扱います。 実際に、回路として、変換回路を製作する機会はあまりないと思いますが、それぞれの方式を知ることは、アナログ、ディジタルの回路の具体的な実施例を知ることでもあり、また、そこそこ機会の多い「選ぶ」ときに参考となるはずです。代表的な方式を見ていきます。

量子化

値の量子化
値の量子化
アナログとディジタルを考えるとき、常に頭に置いておかなければならないのが、値の量子化です。

アナログは、ノイズなどに埋もれる可能性を無視すれば、連続的に値を持つことができます。
それに対して、2進数で値を表すディジタルの場合、その値のビット数で表現できる数字が限られます。 具体的には、

という細かさ=分解能を持ちます。
これを図にしたのが右図です。一見、アナログとディジタルの変換で直線的に対応ができているようでも、細かいところを見ると、ある電圧範囲に、ある1個のディジタル値が対応します。そのため、階段状の関係になります。
また、このとびとびの値を取ることを値の量子化といいます。
(信号処理の観点からは、時間の量子化もあり、問題となるが、ここでは触れない。→参考:制御工学II:ディジタル制御

具体的に、どの程度の細かさが必要かは、目的により異なります。 ただ、たとえば10Vの範囲の信号(0〜10や、-5〜+5)を扱おうとすると、8bitだと40mV単位になりますが、これはかなり粗い区分です。逆に16bitだと、1mVよりも細かくなりますが、ここまでくるとその性能をもったアナログ回路は簡単には作れない細かさです(無駄に細かい)。だいたい12bitくらいが手頃です(が、コンピュータ的には、8bitや16bitなので、ちょっと手間が多い)。

アナログとディジタルの変換では常にこの関係があること、頭に置いておいてください。


D/A変換

ディジタル→アナログの変換を略してD/A変換といいます(単にDAなど表記はいろいろありますが)。
2進数のディジタル値をアナログ値に直すことが目的です。
このD/A変換を行うものをD/Aコンバータ、DACなどと称します。

R-2Rラダー方式

最も一般的な、D/A変換の回路方式に、R-2Rラダーと呼ばれる方式があります(抵抗値Rと2Rによるはしご、の意味)。
R-2Rラダー回路
抵抗値Rと2Rの抵抗が規則的にはしご状につながり、2Rの抵抗には、基準電圧Vか、GNDかのいずれかに接続されるスイッチがつけられています。一般にこのスイッチは電子的なスイッチ(アナログスイッチ)で、そのオンオフは2進数値[D3,D2,D1,D0]によって決定されます(4ビットの場合)。
この回路の出力電圧Voは、
V_o&=&(D_0/16+D_1/8+D_2/4+D_3/2)V\nonumber\\&=&(D_3\times2^3+D_2\times2^2+D_1\times2^1+D_0\times2^0)/16\times V
と、2進数値に比例した電圧が得られます。

以下に詳細な原理を見ていきましょう。
等価回路
分圧回路の等価回路
まず、回路全体を理解するに当たり、一部ずつ簡単な形に置き換えていく方法を確認します。
右図の上のように、電源V1,V2と抵抗Rで並列につながったものから、VxにRxでつながる回路を考えます。
図のように、電流を定義すると、A点の電圧を考えて、
V_1-RI_1&=&V_x+R_x(I_1+I_2)\nonumber\\V_2-RI_2&=&V_x+R_x(I_1+I_2)
が成り立ちます。これを辺々加えると、
(V_1+V_2)-R(I_1+I_2)=2(V_x+R_x(I_1+I_2))
よって、
(V_1+V_2)/2-(R/2)(I_1+I_2)=V_x+R_x(I_1+I_2)
となって、結果的に、右図下にあるような、電圧(V1+V2)/2の電源が抵抗R/2でつながったのと同等であるということが確認できます。
このことを利用して、回路を書き換えていきます。

DA step1 抵抗2Rで、電源D0×V (D0は0か1)と、GND=0Vにつながっているので、この部分を置き換えると、電源 (D0×V)/2に抵抗2R/2=Rでつながっているのと同等。
DA step2 さらに抵抗Rがつながった物は、単に、電源 (D0×V)/2に抵抗2Rでつながっているのと同等。
DA step1 次の段では、抵抗2Rで、電源D1×Vと、置き換えたばかりの(D0×V)/2につながっている状態と言えるので、(D0/4+D1/2)×Vに抵抗2Rでつながっているのと同等。
これを繰り返していくと、最後は、(D0/16+D1/8+D2/4+D3/2)×Vに抵抗Rでつながっているのと同等な回路に置き換えられます。
このままでは、抵抗Rの影響があるため、適宜オペアンプなどで十分な電流が流せるように補強します。

この回路の特徴は、使う抵抗がR,2R=R+Rのみでできることです。半導体内に抵抗をつくったりするとき、絶対的な値を出すことは案外大変ですが、そろった値の抵抗を作ることは容易です。そのため、この回路はIC上に精度良く作ることが可能です。
また、電圧Vはここでは暗黙に固定値のように書いていましたし、実際基準となる電圧として高精度な電源につなぐことが一般ですが、任意の電圧について成り立つ=適当な信号をいれてもそれに応じて出力が変化することがわかります。このような動作が可能なDACを特に乗算型とかマルチプライイングDAと呼び、信号の出力調整などにも使用できます。
余談ですが、CMOSディジタルICの出力は、ほぼ0と電源電圧でフルスイングするため、その出力に抵抗を並べるだけでも簡易的にDACを作ることが可能です。

スイッチング型

パワー回路で説明したPWMもD/A変換の一つです。
PWM自体は説明が済んでいるため、改めて詳細はふれませんが、スイッチングも基づいてD/A変換を行う際の補足を行います。

スイッチング型のD/A変換を使う最大の利点は、「最後までディジタルでねばれる」です。
実際に、「きれいなアナログ電圧」をつくりたければ、スイッチング型は不利で、コスト的にも単純なD/A変換器をつかったほうが有利な場合も多々あります。 ところが、一度アナログにしてしまうと、増幅で損失が大きくなるという点はパワー回路で繰り返し説明しました。そこで、電力増幅までディジタル/スイッチングでいき、一番最後にアナログに変換する、という手法が、効率の面から有利とされています。最近、オーディオアンプで増えてきているD級はこの方式です。 抵抗などの部品を多数必要とするアナログ増幅回路に比べてディジタル回路のICへの集積という点も、小型化には寄与しますし、不安要素のでやすいアナログを最大限避ける、という意味もあります。
モータの出力調整をPWMで、というのもこの考えの一種といえます(昔は、上記のD/Aによってアナログ電圧をコンピュータから出力し、アナログのパワーアンプで増幅するのが一般的だった)。

この方式は、オンオフのみの信号で「平均的にはアナログ」な信号を作り出すのが目的です。モータの制御では、モータのコイル分のため、実際に平均的な電流が流れましたが、一般的なものを対象としたり、よりきれいな信号を取り出すには、積極的に平均的にならす必要があります。
そのため、この講義の最後のほうで扱う、ローパスフィルタ回路をスイッチングのあとに追加します。
ただ、一般的にフィルタというと、抵抗とコンデンサによる方式ですが、より急峻な特性をえるため、また抵抗による損失を避けるため、電力用にはコイル+コンデンサのフィルタを使うこと一般的です。

また、同じスイッチングでもその波形を工夫することも広く行われています。
単一の周波数でOnOffするPWMは、どうしてもその周波数の成分が強く残っています。「きれいな信号」とするには、この周波数をフィルタで除去することが最大の課題です。実際に再現したい信号と、PWM周波数が十分離れていれば、比較的楽ですが、回路の速度などから限度もあります。そこで、そもそも、この周波数成分を減らす工夫を考えます。
たとえば、

はともに、10個を1周期とする波で、■が60%を占めますが、上が10個の周期が目立つのに対して、下はあまり目立たず、細かくなっている印象です。どちらが平らにならしやすいかというと、後者が楽そうです。
このように、同じデューティ比にするにしても、「散らす」ことでならし易いOnOff信号をつくる、という工夫です。
具体的な手法はいくつかありますが、「ディジタル回路でPWM」の方法を単に改良する手として、カウンタの値の上位下位をひっくり返して比較する、という手もあります。
(4ビットで、0、1、2、3、4、5...が、0、8、4、12,2,10,...とばらける)

セレクションガイド

スイッチングによる方式はまだ特別扱いなので、従来型のD/A変換器の選定について、説明しておきます。

まず、買ってくる形態ですが主に

  1. D/A変換装置/基板として、パソコンなどに接続
  2. マイコン内蔵のDAC
  3. DACとしてのIC
があります。 おそらく、D/A変換を実験などで使うという場合は、第一のケースが主です。マイコンで動くものを作るような場合は、第二のケースで、DACを含むマイコンを買ってきます。
第三のケースは、機械屋でそこまで踏み込むことはほとんど無いと思われますが、第一、第二の物では得られない性能などが得られます。

この各々の形態毎に、以下の性能をチェックします。

重要なのはビット数で、それでどれだけのアナログ電圧を細かく表現できるかが決まります。 が、必要以上に細かくとも、その精度を後続の回路で確保しきれないのであまり細かくしても意味はありません。
精度も重要ですが、ふつう、問題になるほど精度が悪い物もありません。
案外気になるのが変換速度です。機械相手の信号の場合には問題になることはありませんが、なにか、電気信号として出力したい場合(音など含む)、え?と思うほど応答の悪いDACがあるので注意が必要です。
特に、最近は次に述べるADCがどんどん高速化しているのに対して、需要がないためか、DACの高速化はあまりすすんでいないようです(高速なものももちろんあるので技術的問題ではない)。

A/D変換

ここでは、アナログ→ディジタルの変換、A/D変換を見ていきます。
A/D変換をする回路、部品などを総称して、A/D変換器、ADCといいます。

D/A変換は、実質的にほとんどがR-2Rラダー方式ですが、A/D変換は、その速度、目的に応じて、いくつかの種類があります。逆に、使う目的があったとき、それらの特徴を知っておかなければ、適切な選択もしにくくなります。

コンパレータ

コンパレータ
コンパレータ
コンパレータはたびたび出てきましたが、これも考えようによっては「1ビットのADC」と考えることができます。
加えて、以下のADCはすべてこのコンパレータが使われています。

コンパレータの動作をおさらいしておきます。
コンパレータはオペアンプにフィードバックをかけずに使うような物で、+端子が−端子よりも高い電圧の時、出力が正方向に振り切ります。逆に+端子が低い場合は負方向に振り切ります。これはオペアンプの「+端子から−端子の電圧を引いて、激しく増幅する」という特性によります。

オペアンプでもコンパレータとして使うことができますが、オペアンプは「増幅器」として動作しやすいように工夫がしてあり、それがコンパレータとしての動作を遅くしてしまいます。
そこで、比較動作に適した設計のものが、同じ回路記号、同じ形の部品で「コンパレータ」という名称で、別物として販売されています。
(逆に、コンパレータをオペアンプとして使うには、それなりの技が必要)
コンパレータは、一般に「ディジタルな出力」をすることを前提にしていて、ディジタル回路につなぎやすい出力構造だったりもします。
(オペアンプは±15Vなどで使うことが多く、その出力をディジタルICに直結すると壊れる。コンパレータは正電源だけでOKにしてあったり、出力をオープンコレクタ、という「0Vにできる」だけ=電圧を上げるには外部に抵抗をつける、構造にしてあったりします。>5Vから抵抗でつっておくと5−0で動作。)

以下の説明で出てくるコンパレータは、電圧の比較結果をディジタル値「0/1」で出力する部品、と考えてください。

フラッシュ型

フラッシュ型AD
フラッシュ型型ADCの原理
フラッシュ型は、ADCのなかで最も単刀直入な発想の原理です。
たとえば、4ビットのADCであれば、ディジタル値は16通りの値をもち、変換するときの境界は15あります。
例:0〜1Vは0000、1〜2Vは0001、...、15〜16Vは1111、などで、境界は1、2、...15。
その比較全部にコンパレータを用意し、また、そのための比較電圧を全て用意し、結果(例では15本)を適当にディジタル回路で処理して、2進数のディジタル値を作ります。

随時、ダイレクトに比較するため、とにかく速度重視なADCで、毎秒数M以上の速度のADC(たとえばビデオキャプチャのような高速なアナログ信号を変換する用途)は、この系統です。

わかりやすい構造ですが、8ビットで255個/本、12ビットで4095個/本と、分解能が上がるにつれ、回路規模が極端に大きくなります。回路が大きくなるとろくなことがない&そもそも2進数に直すところで時間がかかるなどの問題もあり、8ビットあたりはざらですが、12ビットあたりはふつうはありません。

その問題を解決するために、最近は多段のフラッシュ型があります。
まず、入力信号を数ビットのフラッシュ型で粗く変換します。変換結果をDACでアナログ電圧に戻し、入力から引いて、変換の残りを得ます。これを増幅して、フラッシュ型で変換します。これを3段くらいでやれば、数ビットのフラッシュ型で、十数ビットの変換が高速にできます。
最近の多ビットの高速型はこの構造が多いようです。

逐次比較型

逐次比較型AD
逐次比較型ADCの原理と動作
逐次比較(ちくじひかく)型は、天秤をつかうような、変換方法です。

ADC内部に、同じビット数のDACと、コンパレータ、変換値を順番に決める逐次比較レジスタ(SAR)が入っています。
変換開始時点で、まず、フルスケールの電圧の1/2と比較します。これはディジタルの制御回路SARで、その値をつくり、DACでアナログ電圧とします。その比較はコンパレータです。
この1/2より大きいか、小さいか、で最上位のビットがきまります。
つぎに、先ほどの結果(1/2 or 0)に1/4を加えて(3/4 or 1/4)、それと大小を比較します。
これで、2番目のビットが決まります。
これをビット数だけ繰り返して、結果を得ます。

逐次比較型は、DACさえ高精度に作ることができれば、容易に変換ビット数を上げられることが特徴です。 また、たとえば、8ビットと16ビット、分解能は大幅に細かくなりますが、変換時間は倍になるだけです(比較を8回やるか16回やるか、なので)。
そのため、数10k〜1M程度の変換速度のADCで使われています。また、市販のAD変換器、マイコン内蔵のADCのほとんどはこのタイプです。
ただし、変換タイミングを決めるためのクロック信号をいれてやらなければならず、また変換中に入力電圧が変化してもいけません。クロックは、ディジタル回路につきものなので、それをもらってきます。電圧を固定するには、「サンプル&ホールド」「トラック&ホールド」と称される、ある期間電圧を維持(ホールド)できる回路(電子スイッチとコンデンサとアンプ)を使用します。
以前は別の部品を買ってくる必要がありましたが、最近はADCのICに最初から内蔵されていることが一般になってきて、手軽に使えるようになりました。

積分型

積分型AD
積分型ADCの動作
積分型は、コンデンサへの積分時間をつかって、電圧を測定します。
まず、目的となる電圧Vを積分器につなぎ、一定時間Toだけ積分します。Vが一定なら、
V_s+K\int_0^{T_0} Vdt=V_s+K\,V\,T_0(Kは積分回路の比例定数、Vsは開始時の電圧)
となります。これを、今度は負の基準電圧 -Vrefで、Vsに戻るまで積分し、時間Tかかったとします。
V_s+K\,V\,T_0-K\int_0^TV_{ref}dt=V_s+K\,V\,T_0-K\,V_{ref}\,T=V_s
すると、
V=(T/T_0)V_{ref}
と、時間の比率として、電圧が求まります。時間を数えるのは、ディジタル回路の得意とするところです。 T0,Vref,時間を数える基準などをうまく設定しておけば、Tがそのまま電圧値を表示するようにあわせることもできます。

この方法は「時間をかけて積分」するため、どうしても変換に時間がかかってしまいます。
その一方で「積分」するため、ノイズへの耐性が高いという特徴があります。フラッシュ型、逐次比較型は、速い/ホールドするため、ノイズも信号と思ってさくっと変換してしまいます。

この特徴を活かし、ディジタルテスタや、その他制御板についているようなディジタルメータの類で使われていることがよくあります。
逆に、ディジタルテスタで変化のある信号を計るときは要注意です。純粋に積分型なら、平均的な値を表示しますが、ご丁寧にホールド回路が入っていると、その瞬時値を変換してしまうため、値がばらばらすることがあります。蛇足ですが、その点、アナログテスタのほうが、低周波数ならある程度状況が見え、それ以上はきれいに平均値を表示してくれるため、便利です。

この方法、買ってきた物に「入っていた」ということはあっても、ADCを買おうと思って選ぶことはまずないと思います。

セレクションガイド

A/D変換器の選定について説明します。

基本的に、DACの選定と同じような項目です。

変換速度については、一般には、「最高速度」でより遅い周期で動作せられることが一般的ですが、「最低速度」を規定しているものもあります。これは主に、内蔵しているホールド回路が精度を保てる時間です(コンデンサに貯めるため、どうしても徐々に漏れる分があり、長引くと誤差になる)。
また、速い&分解能が高い=値段が高い、速い=消費電力が高い、という関係もあるため、むやみに速かったり高分解能ならいいという物でもありません。

メモリ容量は、高速変換型で、計測目的の場合は検討事項です。ADCの変換速度でコンピュータ側が読み取れないため、間に一時的に記憶するメモリ(FIFOなど)を搭載したものがあります。この場合、コンピュータの性能やそのボードのドライバとのかねあいもありますが、一つの連続した計測データ数に関わってきます。高速で大量の計測を行う場合、要チェックです。

この選定のなかで最大の落とし穴が「チャネル数」です。DACの場合、4チャネルといったら、ふつうはDACそのものが4個入っています。それに対して、ADCでは、4チャネルといったら、ふつうはADC本体は1個で、入力に4切り替えのスイッチが入っています。
つまり、1チャネルだけ変換する分にはスペック通りの速度が、4チャネルの変換をする場合には、その1/4の速度(実際には、チャネルを切り替えて安定するまでの時間が必要なのでさらに遅くなる)となってしまいます。
それとともに、ホールド回路の位置も問題になります。スイッチのまえにホールド回路があれば、全チャネルで同時に値を取得して、それを順次変換するため、同時刻のデータになります。 しかし、スイッチのあとにホールドがあると(もしくはホールドの不要なもの)、データそのものが時間的にずれます。計測などで「同時であること」を重視する場合は要注意で、カタログなどでわからない場合は、メーカに問い合わせた方がいいでしょう。チャネル数だけADCを積んでいることを売りにしているボードもありますが、一般に高くなります。 もっとも、100kSPSで取得できるADCで毎秒10回計れればいい、くらいなら、気にすることはないでしょう。


以上、アナログとディジタルの間の回路について説明しました。 ある意味、両方の回路が入り交じるところであるため、自分の手で動かすには両方の知識が必要となります。 が、パソコンで計測するといった場合にも当たり前に使われる部分で、記憶には多少入れておいたほうがよいでしょう。


熊谷正朗 [→連絡]
東北学院大学 工学部 機械知能工学科 RDE
[| ]