- ベストアンサー
ADCとDACについて他
- ADCとDACについて知りたいことがあります。具体的には、ADコンバーターの原理や変換内容、REFや分解能について詳しく知りたいです。また、DAコンバーターの原理と計算方法についても教えていただきたいです。
- オーバーシュートやアンダーシュートが起こる場合の対策について知りたいです。具体的には、ダンピング抵抗や終端抵抗、コンデンサーの役割について教えていただきたいです。また、この問題について特定の名前があるのか知りたいです。
- 質問文章全体の内容を要約すると、ADCとDACについて知りたいことがあります。ADコンバーターとDAコンバーターの原理や変換内容、またオーバーシュートやアンダーシュートに起因する問題とそれに対する対策について詳しく教えていただけると助かります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
tanceです。 >4回しか比較しないのに1/16刻みつまり16回比較?という矛盾が生じます。 4回比較すると電圧はFSの1/16の細かさで知ることができます。16回比較 ではないので、そこのところをしっかり理解してください。 説明を楽にするために4ビットではなく3ビットにしてみましょう。 3回比較して2^3=8分の1の細かさでAD変換できることを示します。 AD変換結果がb0,b1,b2という3つのデジタル信号で出てくるとします。 b0をLSBとして話しを進めます。 1回目の比較で、b2=1,b1=0,b0=0 としてみて、大小を判断すると 入力VがFS/2より高いか低いかが判ります。 もし、低かったら:b2=0が確定します。 高かったら:b2=1です。 ここでは高かったとしてみます。 次に、b2=1,b1=1,b0=0 として大小比較をします。これにより入力Vが 3/4FSより高いか低いかが判ります。すでに1/2FSより大きいことが 判っているわけですから、入力Vが1/2FS~3/4FSの間にあるか、または 3/4FS~FS の間にあるかが判ったことになります。 ここでは入力Vが1/2FS~3/4FSの間にあったとしてみます。 つまり、b2=1, b1=0 まで確定したことになります。 (2回の比較で4分類されています) さらに、b2=1,b1=0,b0=0 として大小比較をします。これにより入力Vが 5/8FSより高いか低いかが判ります。すでに1/2FS~3/4FSの間にある ことが判っていますので、今回の大小比較で入力Vは 1/2FS~5/8FS の間にあるか、5/8FS~3/4FSの間にあるかが判ります。 分数がわかりにくいですので、判りやすく分母を8に統一すると 4/8FS~5/8FSか、または 5/8FS~6/8FSかが判ったことになります。 つまり8分類されました。3回の比較で2^3=8とおりの電圧クラスに 分類されたことになります。 同様に16ビットだと16回の比較で65536通りに分類できます。 お解りのように、入力が誤差無く確定されたわけではなく、ある範囲に あることが判るだけなんです。でも、十分に細かく分類できれば、その 範囲も極めて狭いので精度良く計ったことになる訳です。 基準電圧との関係は、あくまで内部のD/Aコンバータが作り出すアナログ 値の元として関係しています。 先にR-2Rラダー型のD/Aコンバータを勉強すると理解が早いかもしれ ません。
その他の回答 (3)
- tance
- ベストアンサー率57% (402/704)
tanceです。 >基準電圧が狂っていると、例えば1回目の比較で使用する0.5Vという値が 0.4995Vなどになって、分解能が上がれば上がるほどデジタル値に変換された 値に狂いが生じてくるということでしょうか? そうですね。分解能が上がると狂いが増えるかというと、表現が微妙と なりますが、基準電圧が狂うと、AD変換したデジタル値も同じ率で 狂います。分解能が低いと目立たないだけです。 でもこれは表現のことで、おそらく理解しておられるものと思います。 DAのR-2Rはそんなに難しい式をいじくるほどのものではありません。 各段で、合成抵抗が2Rになるので2Rと2Rで、それまでの電圧が1/2に なるというだけのものです。全くよくできた回路です。3ビットくらいで いろいろなデジタル値に対して出力電圧の計算をしてみると、なるほど としっかり理解できると思います。(計算といっても算数です) 基準電圧の狂いを発見するにはやはり精度をチェックするしかありま せん。0とFSだけチェックすれば良いと思います。
- tance
- ベストアンサー率57% (402/704)
tanceです。 考え方は全部合っていますよ。 MSB=1で内部D/A出力がFS/2というのは、未知の入力に対して、その値が フルスケールの半分より上か下か、を最初に調べるのは自然ではないで しょうか。(FS:フルスケールの意) 小学生のときにやったつまらないゲームがあります。子供Aが1から10 までの数を頭に思い浮かべ、子供Bがそれを何回かの質問で当てるのですが 子供Aは子供Bが提示した数字より大きいか小さいかしか答えてはいけま せん。1ですか?2ですか?3ですか?と聞く子もいますが、頭の 良い子はまず5ですか?と聞き、その答えによって次の提示数字を選び ます。これと同じことと考えてください。 また、全ビットが1のときにフルスケールになるのが自然です。 (そうでない設計のA/Dもありますが)だとすると、MSBだけが1で他が 全部0のときはFSの半分になる、と考えても良いです。 蛇足ですが、デジタル信号というのは実は1ビットのA/Dコンバータ(?) であると言えます。0.5より上なら1、下なら0 というわけですから。
補足
だいぶAD変換が分かってはきたのですが、実は難しい不良の修理というのが基準電圧ICのずれなんです。 つまり、ADコンバーターへのREFに5Vが来ないといけないところが、 例えば4.95Vくらいしか来てなくてこの基準電圧ICを交換すると直るというものなのです。 それで、 http://oshiete1.goo.ne.jp/qa2714426.html にとてもよい回答があったので参考にしたのですが、少し分からないのでもうちょっと質問させて下さい。 今回の話の中には基準電圧のことが全く出てきていないのですが、上記のリンクの質問の中には「実際のAD変換器は、この基準電圧のm/n倍の電圧を内部で作って、これと入力信号と比較することで、入力電圧を求めるということをやっています。」とあります。 今回の話に基準電圧を介在させるとどのような説明になりますか? また「例えば16bit分解能のAD変換器はnの値が2^16=65536あって、V×mの数値をV×m/65536刻みの精度で読めるということになります。」とありますが、「今回4bitの分解能なのでV×1V/2^4=V×1V/16刻みの精度で読める」と言い換えると4回しか比較しないのに1/16刻みつまり16回比較?という矛盾が生じます。m=FSという考え方が間違っていますか? 話が奥深いところにまで言及していますが、この不良の話を会議の場で発表することになると思うので(恐らく11月以降ですが)完全に納得いくところまで理解したいと考えております。 ご協力よろしくお願い申し上げます。
- tance
- ベストアンサー率57% (402/704)
ADコンバータにはいろいろな種類があります。 ○逐次比較型(AD7894はこれです) ○積分型 ○フラッシュ型 ○ΔΣ型(Σデルタというメーカもある) ○パイプライン型(これは正式名称ではない?) ○その他 逐次比較型の動作をかいつまんで言うと、 ADコンバータの中にDAコンバータが入っていて、入力とそのDA出力 電圧の大小を常に比較しています。そして、この2つの電圧が一致する ようにDAコンバータをコントロールしています。 つまり、DAがあるデジタル値によってドライブされて、あるアナログ値 を出力している状態で、そのアナログ値が入力電圧と同じだったら、 DAに与えているデジタル値がそのまま入力をデジタル変換したものに ほかならないわけです。 大小比較は、あるビットを1にしてみて大きすぎれば0にして、さらに 下のビットを1にして、・・・という具合に全ビットを決定して 行きます。 AD7894はシリアル出力なので、デジタル信号出力は1本しかありません。 他のパラレル出力式のICでは多数本のデジタル信号が同時に出ていて bit0, bit1, ・・bit13 などと名前がついています。しかし、これらの デジタル信号にはその「重みづけ」の重い信号と軽い信号があるので 一番重い信号にMSB(Most Significant Bit)と明記し、一番軽い信号に LSB(Less Significant Bit)と明記しています。メーカやICの品種に よってはbit0がLSBのものとMSBのものがあるので注意が必要です。 DAコンバータにもいろいろな種類があります。 ○R-2Rラダー式 ○電流加算式 ○その他 これは回路図を描かないと説明しづらいので下記を参照してください。 http://practice.ed.sie.dendai.ac.jp/micom/ADDA.pdf オーバーシュート等による誤動作に名前があるか、という質問ですが、 ドンピシャリの名前はなさそうに思います。強いて言えば、 「シグナル・インテグリティ」、とか「信号終端」といったところが キーワードかもしれません。
お礼
ご回答誠にありがとうございます。 逐次比較型について調べてみると http://techon.nikkeibp.co.jp/article/WORD/20061113/123485/ に良い例が載っていました。 ここで分からないのが、 「MSBを1に設定すると,1Vの半分である0.5VがD-A変換器から出力され」 というところです。 MSBを1にするとなぜその半分である0.5VがD-A変換器から出力されるのでしょうか? その次は0.5Vの半分である0.25Vを足した0.75Vってなってますが、これを4ビット続けると、 1回目:0.5Vと比較 2回目:0.5V+0.25V=0.75Vと比較 3回目:0.5V+0.25V+0.125V=0.875Vと比較 4回目:0.5V+0.25V+0.125V+0.0625V=0.9375Vと比較 で終わりということでしょうか? 分解能が4ビットしかないので0.9375V以上1V未満はすべて同じデジタル値となる。 仮に24ビットなどの高精度にすれば0.999Vと0.998Vも異なるデジタル値として検出できる。 という認識で合っていますか? とはいうものの、MSBを1にした後の1回目の比較では分解能に関係なく フルスケール電圧の半分の値と比較するということなのかがよく分かりません。 DA変換の方は教えて頂いたpdfファイルを熟読後、分からないところがあれば再度質問したいと思います。 以上よろしくお願い申し上げます。
お礼
分解能4ビットで精度1/16という意味がよく分かりました。 非常に理解しやすく大変感謝申し上げます。 ところで、ご提示下さったpdfファイルを読んでR-2Rラダー型D/Aコンバータの仕組みを理解しました。 ということはA/D変換と基準電圧との関係は、おっしゃる通りD/Aコンバータが作り出すアナログ値の計算に用いられる、すなわち、基準電圧が狂っていると、例えば1回目の比較で使用する0.5Vという値が0.4995Vなどになって、分解能が上がれば上がるほどデジタル値に変換された値に狂いが生じてくるということでしょうか? 上記記述が正しければ、私の中で完全に納得できます。 D/A変換のややこしい計算は完全には理解できなかったのですが、 数学の公式を導き出すような感じでしたので、理論的にそうなるのだということで納得しました。 もし、上記の理解に間違いがあればご指摘下さい。 これほど分かりやすくご説明いただけるとは思っていなかったので、 誠に感謝申し上げます。