A/D変換の概要と仕組み
A/D 変換の概要
A/D変換とは、図1のようにアナログ信号をディジタル信号に変換することである。
図1:A/D変換の概要
図1のA/D変換器に入力される信号がアナログ信号、A/D変換器から出力される信号がディジタル信号である。
アナログ信号とは、信号の変化が時間的に切れ目なく連続している信号であり、温度変化や湿度変化、風による木の揺れなどの自然現象はすべてアナログ信号である。一方でディジタル信号は、0または1を示す信号であり、その中間の0.5などは考慮しない信号のことである。このような信号を連続した信号に対して、離散信号などと呼ぶ場合もある。
今回、我々が対象としているマイコンはディジタル回路であり、マイコン内部で扱う値はすべてディジタル信号である。そのため、外部から入力されるアナログ信号はディジタル信号に変換してマイコンで扱う必要がある。このアナログ信号をディジタル信号に変換することをアナログ―ディジタル変換(A/D変換)とよび、それを実現する機器をA/D変換器と呼ぶ。
近年のマイコンにはこのA/D変換器が内蔵されているものが多く、今回扱うSH7085においてもA/D変換器が内蔵されている。
A/D変換の方式には、逐次比較型や並列比較型、二重積分型、デルタ―シグマ型などさまざまな方式があり、それぞれに一長一短がある。
今回のSH7085 に内蔵されているA/D変換器は、「逐次比較型」と呼ばれる変換方式を採用している。
A/D変換の原理
ここでは、A/D変換の原理について説明する。
アナログ信号をディジタル信号に変換するには、次の3つの手順が必要である。
- 標本化:アナログ信号を一定時間ごとに区切り、その値を読み込むこと(サンプリングとも呼ぶ)
- 量子化:標本化し読み込んだ値をディジタル信号に変換できるように加工すること(量子化による誤差を量子化誤差と呼ぶ)
- 符号化:量子化された値を指定された2進数の桁数で表現すること(この2進数の桁数を分解能と呼ぶ)
図2:標本化
図2は、T秒周期でサンプリングしている例である。サンプリング間隔が短ければアナログ信号をより細かくディジタルデータに変換できることになる。
<量子化>
標本化された値をディジタル信号で表現できるように図3のように値を加工する。図の例では、小数点以下を切り捨てている。このため、標本化された値と量子化された値には差が生じる。これを量子化誤差と呼び、この誤差が大きいとディジタル信号の信頼性が失われてしまう。量子化誤差は、次の符号化と大きな関係がある。
図3:量子化
図3の量子化では、小数点以下を切り捨ててディジタルデータとして表現可能な値に加工をしている。
<符号化>
量子化された値を決められたビット数で2進数表現する。このビット数を分解能と呼び、ビット数が多ければより細かな値を表現できることになる。たとえば、ビット数が2(分解能が2ビット)の場合、表現できるのは、0、1、2、3 の 4 種類である。つまり、入力されたアナログ信号は、4等分されたいずれかの値でしか表現できないことになる。分解能が3ビットの場合、8 種類で表現できるので2ビットに比べてより細かな値を表現できることになる。
図4のように量子化された値は、決められたビット数(図4では8ビット)で2進数として表現される。これを符号化と呼ぶ。
図4:符号化
逐次比較型A/D変換器の仕組み
逐次比較型のA/D変換器の仕組みを説明する前に、SH7085 に内蔵されているA/D変換器を動かすための回路について簡単に説明する。
マイコンに内蔵されているA/D変換器を動かすためには、図5 のように3 種類の端子に適切な電圧を印加する必要がある。AVcc と AVss は、A/D変換器を動かすための電源である。AVcc が正の電圧でAVss が接地である。一般的には、AVcc に3.3 [V] か 5 [v] を加え、AVss は GND とする。
AVref は、A/D 変換する最大電圧を決めており、この値を超えてアナログ信号を入力しても変換はされない。また、AVref の値は、AVcc を超えて定めることはできず、AVref と AVcc を接続しておくケースも少なくない。
Ain は、アナログ信号である。
図5:A/D 変換器に関する端子の役割
逐次比較型のA/D 変換器は、文字通り、順次比較してディジタル信号のビットを決定していく方式である。逐次比較型のA/D変換器の構成を図6に示す。
図6:逐次比較型A/D変換器の概略図
図6 においてアナログ信号が入力されるとサンプルホールド回路で量子化される。サンプルは前述したようにアナログ信号を一定周期ごとに区切る。また、サンプルしてから次のサンプルまでの間、その信号を維持するためのホールド回路が一緒になっている。
サンプルホールド回路によりサンプリングされたアナログ値を Vi としてコンパレータに入力する。同時にD/A変換器からの出力をVr としてコンパレータで比較する。この比較によってどのビットが1となるかを決定していく。
具体例を次に示す。
AVref を 15[V] とし、Ain を10[V]とする。分解能が4ビットであるため、全体として0~15[V] の16段階でディジタル化される。そのため、10[V]のアナログ信号がディジタル信号変換されると、2進数で1010となるはずである。これが決定する手順を示す。
<1:B3が決定する様子>
まず、アナログ値がサンプル・ホールド回路に入力される。このとき、標本化と量子化が行われ、その値が一定時間保持される。図7では、サンプル・ホールド回路から10という値が出力され、コンパレータに入力される。
コンパレータとは、比較器である。2つの入力に対してどちらが大きいかを比較して、その結果を0または1で出力するものである。
コンパレータへの入力のもう一方は、D/A変換器からの出力である。このD/A変換器は、ディジタル値をアナログ値に変換するものである。そこで、B3のみを1として1000をD/A変換器へ入力すると、アナログに変換されて8という値が出力される。この値をコンパレータへ入力するのである。
図7:B3が決定する手順
コンパレータには、8と10が入力されどちらが大きいかを判定する。ここでは、Vr の方がViより小さいので、1が出力される。この結果を受け、制御回路ではB3を1であると決定する。
<2:B2が決定する様子>
基本的にB3と同様の手順を繰り返す。
すでにB3が決定しているので、D/A変換器には、1100が入力され12として出力される。コンパレータには、12と10が入力されて比較される。
このとき、Vrの方がViより大きいので、0が出力されて制御回路では、B2を0であると決定する。
図8:B2が決定する手順
<3:B1が決定する様子>
B3とB2が決定しているので、次は、B1を1としてD/A変換器へ入力する。D/A変換器からは、10という値が出力されてコンパレータへ入力される。
コンパレータでは、10と10を比較する。VrとViが等しいので、1が出力されて制御回路でB1が1であると決定する。
図9:B1が決定する手順
<4:B0が決定する様子>
最後に、B0である。B3,B2,B1が決定しているので、B0を1として1011をD/A変換器へ入力する。D/A変換器からは11が出力されてコンパレータで比較される。
VrがViより大きいので、0が出力されてB0が0であると決定する。
図10:B0が決定する手順
このように、逐次比較型のA/D変換器では、サンプリングされたアナログ信号に対して、1ビットずつ比較しならが決定していくのである。
したがって、分解能が高ければ比較する回数も増えるので時間がかかってしまう。しかし、単純に比較を繰り返すだけであるため回路としては単純となり、小型で安価に構成できる。
演習問題
・ A/D変換器とは、何を何に変換するものか次の選択肢から1つ選べ。
- アナログ信号を電子データに変換する
- アナログ信号をディジタル信号に変換する
- ある信号をでたらめな信号に変換する
・ アナログ信号の説明として正しいものを次の選択肢から1つ選べ。
- アナログ信号とは、時間的に連続した信号である。
- アナログ信号とは、離散的に変化する信号である。
- アナログ信号とは、オシロスコープでは計測できない信号である。
・ A/D変換の手順として正しいものを次の選択肢から1つ選べ。
- 電子化→量子化→符号化
- 量子化→符号化→離散化
- 標本化→量子化→符号化
・ SH7085に搭載されているA/D変換器の変換方法として正しいものを次の選択肢から1つ選べ。
- 逐次比較型
- 二重積分型
- デルタ―シグマ型
・ AVref を15[V]、分解能を4ビットとしたとき、Ainに3[V]が入力されディジタル変換された値を答えよ。
・ AVref を5[V]、分解能を10ビットとしたとき、変換されたディジタル信号のLSB が1ビット変化した。このとき変化したアナログ信号はおよそ何mVか答えよ。