CONTEC

アナログ入出力の基礎知識

アナログ入出力、A/D変換、D/A変換の基礎知識と用語集を図解入りで分りやすく解説します。パソコンで計測制御をしてみようという方、データロガーや計測の自動化を検討されている方にオススメのコンテンツです。コンテックのアナログ入出力デバイスを既にご利用の方も知識の整理として、ぜひお役立てください。

目次

アナログ入出力とは

自然界を取り巻く温度・圧力・流量などを計測するセンサからの信号はアナログ信号、また制御するためのアクチュエータの多くはアナログ信号で動作するものです。一方パソコンで扱えるのはデジタル信号のみですから、パソコンを利用してセンサからの信号を入力したり、アクチュエータへ信号を出力したりする場合は、アナログ信号とパソコンで扱えるデジタル信号との橋渡しを行うものが必要となります。それが、アナログ入出力インターフェイスです。

アナログ入出力インターフェイス

アナログ入出力デバイスの分類

アナログ入力デバイス(A/D変換)

外部装置からのアナログ信号をパソコンで処理できるデジタルデータに変換するためのデバイス。

アナログ出力デバイス(D/A変換)

パソコンのデジタルデータをアナログ信号に変換して外部装置へ出力するためのデバイス。

アナログ入出力デバイス(A/D・D/A変換)

A/D変換とD/A変換の機能を合わせ持ったデバイス。

アナログ信号のデジタル化、デジタル信号のアナログ化

パソコンに外部のアナログ量を入力しようとするとき、厳密にデジタル表現しようとすると、対応するデジタル量は無限の桁数が必要となります。これは、限りある桁数しか扱えないパソコンにとってはもちろん、変換器を構成する回路技術の面から見ても不可能です。

これを解決する最も有効な方法は、四捨五入や切捨て・切上げなどによって許容できる範囲内に収めてしまう方法、つまり、ある範囲内の量をその代表値で置き換えてしまうのです。これを量子化と呼んでいます。

実線で表したアナログ量を量子化すると、階段状の線のようになります。これによってアナログ信号を有限の値のどれかで表すことが可能となるのです。この技術は皆さんの身近なところで活躍しています。例えば携帯電話。皆さんの音声(アナログ)をデジタルに変換して通話を行います。

量子化イメージ

例えば階段の1段階を1として10進数で表し、この10進数をさらに2進数に置き換えると、下図のようになります。こうすればアナログ量を4ビットでデジタル化したことになり、これがアナログ量を量子化する基本的な考え方です。

量子化イメージ

アナログ入出力デバイスの絶縁タイプ

アナログ入出力デバイスは、大別すると絶縁型と非絶縁型に分類することができます。ここでは、絶縁型2タイプについて、その特長を解説します。なお、非絶縁型は、絶縁素子が介在しないタイプです。

バス絶縁型

フォトカプラによってパソコンと外部入出力回路を絶縁しています。電気的外乱の侵入を防ぐことができますので、配線上にノイズが発生しやすく、パソコンの誤動作や破損が心配される場合にも安心して使用できます。

バス絶縁型のイメージ

独立絶縁(チャネル間絶縁)型

バス絶縁に加えて、フォトカプラやアイソレーションアンプによって各入出力チャネル間を絶縁しています。各チャネル間の干渉を防ぐことができ、各チャネル接続する機器それぞれでグランドレベルが異なる場合でも正確にサンプリングできます。

独立絶縁(チャネル間絶縁)型のイメージ

フォトカプラとは

フォトカプラとは、発光ダイオードとフォトトランジスタを1対にした素子です。発光ダイオードは電流(10mA程度)が流れると光を出します。この光をフォトトランジスタが受光すると、フォトランジスタがON状態になり、電流が流れます。この光信号の部分で、外部と電気的に絶縁されます。

フォトカプラのイメージ

入出力チャネル数とは

入出力チャネルとは、1枚のデバイスが持つ入力または出力可能な信号数を意味します。つまり、接続できるセンサ(信号源)やアクチュエータ(制御対象)の数を表しています。カタログなどの仕様欄を見ると、シングルエンド**ch、差動**chという表記がされている場合があります。

シングルエンド入力とは

信号線とグランド線の2線で接続して、グランドからの電位差で信号源の電圧を測定する方式です。アナログ入力では最も一般的な入力方式で、1つの信号源に対して、配線が2線で済むというメリットがあります。差動入力と比較して、ノイズの影響を受けやすいというデメリットがあります。

シングルエンド入力のイメージ

差動入力とは

2つの信号線とグランド線の合計3線で信号源の電圧を測定する方式です。グランドとA点間の電位とグランドとB点間の電位の差をとって信号源(A-B間)の電位を測定します。そのため、(A-B間)はグランドにのったノイズは相殺され、シングルエンド入力と比較して、ノイズの影響を受けにくいというメリットがあります。ただし、1つの信号源に対して、配線が3線必要となるため、シングルエンド入力と比較して、使用できるチャネル数が半分になるといったデメリットもあります。

差動入力のイメージ

分解能とは

アナログ信号をどの程度の細かさでデジタル表現(近似)できるかを示します。分解能が高いほど、電圧の範囲が細かく区分されていることになり、アナログ値をより正確にデジタル値に変換できます。

変換前のアナログ電圧 分解能の低いボード 分解能の高いボード 0~10Vの電圧をA/D変換した際の最小単位(1bitの重み:1LSB) ①分解能が12ビットのボード/カードの場合 『10÷4096(2の12乗) ≒ 2.44...(mV)』の細かさで計測可能。 ②分解能が16ビットのボード/カードの場合 『10÷65536(2の16乗) ≒ 0.15...(mV)』の細かさで計測可能。

多種多様なアナログ入出力デバイスの中で、自分に最適な分解能を持ったデバイスを選ぶには、どのようにして考えれば良いかの例を示しましょう。

例えば「0℃~100℃の温度を計測する」とすると・・・

例1 1℃単位で計測したい
1/100の精度が必要です。分解能8ビット(2の8乗=256分割)のデバイスで十分です。
例2 0.1℃単位で計測したいのなら
1/1,000の精度が必要です。分解能12ビット(2の12乗=4,096分割)のデバイスが必要です。
例3 0.01℃単位で計測したいのなら
1/10,000の精度が必要です。分解能16ビット(2の16乗=65,536分割)のデバイスが必要です。

入出力レンジとは

入力または、出力可能なアナログ電圧・電流の範囲です。バイポーラは双極性(-10V~+10Vレンジなど)、ユニポーラは単極性(0~+10Vレンジなど)という意味です。入出力レンジは、センサからの出力、アクチュエータへの入力と同一、もしくは少し広い範囲のレンジを持ったデバイスを選定するのが基本です。

入出力レンジのイメージ

例えば、あるアナログ量を電圧の0~5Vに変換してくれるセンサを使うと仮定します。そこで、入力レンジが0~10Vと0~5Vのデバイスでは、どちらが有効かというと、分解能が共に12ビットとしたら、レンジが0 ~ 10Vのボードが最小分割できる電圧は、10÷4096で約2.44mVです。0~5Vのデバイスは、5÷4096になりますから、最小分割できる電圧は、約1.22mVです。センサは0~5Vしか出力しないで、入力レンジ0~5Vのデバイスを選んだ方が、より細かく計測できます。

ゲインとは

ゲインとは倍率を意味します。アナログ入力デバイスの中には、入力信号を増幅する機能を搭載したものがあります。例えば、外部信号が0~2.5Vの場合、アナログ入力デバイスの入力レンジが0~10Vと仮定すると、そのままの状態で変換するより、外部信号(入力される信号)を4倍に増幅して、0~10Vの信号として変換した方が高精度で計測することができます。

変換速度(サンプリング周期)とは

アナログ信号をどの程度の時間間隔の細かさでデジタル変換できるか。または、デジタルデータをどの程度の時間間隔でアナログ出力できるかを表します。変換速度が速いほど、再現性の高い変換が可能です。

変換速度(サンプリング周期)のイメージ

サンプリングの定理について

入力/測定周波数の2倍以上のサンプリング周期でサンプリングしないと正確な波形測定ができません。

サンプリングの定理のイメージ

変換精度とは

A/D変換またはD/A変換の際に生じる誤差範囲です。誤差を1LSB単位で表現します。例えば、分解能12ビットのA/D変換デバイスで、入力レンジ±10Vの設定とすると、分解できる最小単位は、20÷4,096 ≒ 4.88mV(1LSB)となります。そのA/D変換ボードの変換精度が±2LSBと表記されている場合、4.88×2 ≒ ±9.76mV程度の誤差が生じる可能性があるという意味になります。

  • LSB:Least Significant Bitの略で、バイナリデータ(2進数データ)の最下位ビットを表します。

A/D変換またはD/A変換の際に生じる誤差範囲のイメージ

バイナリデータ(2進数データ)と電圧値の関係(分解能16ビットの場合)

分解能は16ビットのアナログ入力デバイスから入力されるA/D変換データは、バイナリ16桁(16進数=4桁)になり、アナログ出力デバイスの場合は、セットするD/A変換データはバイナリ16桁(16進数=4桁)で行います。下図のように『0000』のときの『-10V』に対して、『FFFF』のときは『9.99970V』です。

分解能16ビットデバイスの場合、-10V~0Vまでの電圧は-10Vを「0000H」とし、0Vを「8000H」とした32,768通りのデータとして表現できるのに対し、0V~+10Vは、「8000H」から最大値「FFFFH」までの、32,767通りしか表現できません。このため最大値は「+10V-1LSB」ということになります。

これらの関係は、どのアナログ入出力デバイスでも共通です。例えば、アナログ出力をする場合、外部に信号を出力する際、分解能16ビットの場合は『FFFF』をデバイスにセットしますが、出力可能な最大電圧は『+10V-1LSB』です。

電圧の意味 アナログ電圧(V) DATA(16進数) 2進数表記(バイナリデータ表記)
  • MSB
  • LSB
FSR-1LSB 9.99970 FFFF 1111 1111 1111 1111
FSR-2LSB 9.99938 FFFE 1111 1111 1111 1110




+1LSB 0.00030 8001 1000 0000 0000 0001
0.00000 8000 1000 0000 0000 0000




-1/2FSR+1LSB -9.99970 0001 0000 0000 0000 0001
-1/2FSR -10.00000 0000 0000 0000 0000 0000

バイナリデータと電圧値の関係イメージ

略語(単位)の意味

LSB

Least Significant Bitの略です。バイナリデータ(2進数データ)の最下位ビットを表します。

MSB

Most Significant Bitの略です。バイナリデータ(2進数データ)の最上位ビットを表します。

FSR

Full Scale Rangeの略です。±10Vレンジの場合は『20』がFSRとなります。

アナログをデジタル値で表す方法

アナログ入力(A/D変換)によって変換(量子化)したデータ、アナログ出力(D/A変換)にセットするデータは、次のような特有のコード体系を使用して表します。表現方法には次の種類があります。

ストレート・バイナリ

電圧の0Vをデジタル値の0とし、電圧増加に比例してデジタル値も増加します。ユニポーラ(単極)型で用いられます。

ストレート・バイナリのイメージ

オフセット・バイナリ

負電圧の最大値をデジタル値の0とします。電圧の0Vをデジタル値の中間値、正電圧の最大値をデジタル値の最大値とします。バイポーラ(双極)型で用いられます。

オフセット・バイナリのイメージ

コンプリメント・バイナリ(2の補数)

オフセット・バイナリ・コードの最上位ビットを反転させて得られます。2の補数表現は、コンピュータ上の演算に使い易いコードです。バイポーラ(双極)型において、このデータ形式のものがあります。

コンプリメント・バイナリ(2の補数)のイメージ

サンプリング方式とは

複数チャネルのサンプリングを行う場合には、マルチプレクサ(切換器)を使用するマルチプレクサ方式と、同時サンプリング方式があります。

マルチプレクサ方式は、マルチプレクサの切り換えによるサンプリングで、複数チャネルを同時変換することが出来ません(チャネル切換え時間が必要なため)。

同時サンプリング方式は、チャネル毎にA/Dコンバータが搭載されたタイプと、サンプル/ホールドアンプが搭載されたタイプがあり、とちらとも複数チャネルの同時変換が可能となっています。

マルチプレクサ方式のイメージ

変換速度とチャネル数の関係

マルチプレクサ方式によるアナログ入力チャネル切替方式の場合、複数チャネルのサンプリングを行う際、設定可能なサンプリング周期は次の関係を保つことが必要です。『変換速度×チャネル数≦サンプリング周期』

変換速度とチャネル数の関係イメージ

クロックとは

アナログ入出力デバイスの変換動作をどのタイミングに同期させることができるかを示します。サンプリングの周期を決定するサンプリングクロックには、主に以下の方式があります。

内部クロック

デバイスに周期の設定が可能なタイマ素子を搭載し、これをクロック源として周期的な変換を行う方法です。正確かつ短周期での時系列処理に有効です。

内部クロックのイメージ

外部クロック

外部クロック入力端子を搭載したデバイスで使用可能です。外部から入力されるパルス信号などに同期して、変換を行います。外部装置との同期処理などに有効です。

外部クロックのイメージ

ソフトウェアクロック

パソコンのシステムタイマに同期してソフトウェア上からスタートコマンドを送信し、周期的な変換を行う方法です。ただし、VisualBasic のタイマコントロールなどは誤差が大きいため、高速で正確な周期が必要なシステムには向きません。

トリガとは

変換の開始と停止をどのタイミングで実行するかの要因です。開始、停止それぞれ独立して設定可能です。主なトリガは以下のとおりです。

ソフトウェアトリガ

変換動作の開始/停止をソフトウェアからのコマンドで制御する方法です。

ソフトウェアトリガのイメージ

外部トリガ

変換動作の開始/停止を外部信号(デジタル信号)で制御する方法です。あらかじめ設定したエッジの方向(立ち上がり、立ち下がり)の外部制御信号が入力されると変換動作を開始/停止します。

外部トリガのイメージ

レベル比較(変換データ比較)トリガ

変換動作の開始/停止の制御を指定チャネルの信号変化で行います。あらかじめ設定した比較レベルの値と指定したチャネルのアナログ信号の大きさを比較し、条件に一致すると変換動作を開始/停止します。

レベル比較(変換データ比較)トリガのイメージ

バッファメモリとは

バッファメモリとは変換データを一時的に保管している場所のことです。高速かつ高機能なアナログ入出力処理が可能なだけでなく、パソコン側の負荷を大幅に軽減できます。バッファメモリは用途に応じて、FIFO形式とRING(リング)形式があります。

FIFO形式

FIFO(First In First Out)形式では、変換されたデータが前詰めでバッファメモリに格納され、バッファメモリに書き込まれた先頭からを古い順に読み出すことができます。読み出した変換データはメモリ内部から順次送り出され、つねにバッファメモリに残っている一番古い変換データを読むことができます。FIFOメモリの容量を超えるデータは書き込まれず破棄され、また、一度読み出したデータはバッファメモリ上から破棄されます。

バッファメモリ FIFO形式のイメージ

RING(リング)形式

RING(リング)形式では、バッファメモリ内部の格納領域がリング状に構成されています。変換データは順次書き込まれていき、メモリ容量を超えて格納を続けると前の変換データが格納されている領域に上書きされます。通常の状態ではデータ取得を行わず、何かの事象で変換動作が停止した付近のデータを取得するような場合、RINGメモリを使用します。RING(リング)形式の場合、一度取り込んだデータは、次に上書きされるまでは、何度でも取り込み可能です。

バッファメモリ RING(リング)形式のイメージ

バスマスタ転送機能とは

PCIバスマスタ機能を利用したDMA(ダイレクト・メモリ・アクセス)転送です。

  • パソコンのCPUに負荷をかけることなく、デバイスから直接パソコンのメモリへ80MB/sec(最大133MB/sec)のスピードでデータ転送が可能です。
  • CPUがデータ転送処理などに能力を奪われることなく、その他の処理を行うことが可能なため、他のアプリケーションへの影響が少なく済みます。
  • 入出力に必要な設定をあらかじめデバイスにセットし、その情報に基づいてボードが処理を行うため、通常の入出力処理と比較して効率的なシステムが構築可能です。

通常処理

通常の入出力処理の場合は、CPUがデバイスからデータを読み出した後に、本体メモリへ格納します。この間CPUは、他の処理を行うことができません。下図の例では、(4)と(5)の処理が終了したのち、次の処理が可能となります。

バスマスタ処理

CPUがデバイスに対して、バスマスタ処理を指令すると、デバイスから本体メモリに直接(CPUを介さずに)データを取得できます。下図の例では、(2)と(3)の処理の間に他の処理を行えます。

通常処理 CPU ①動作命令 バスマスタ非対応ボード ②入出力処理 ③処理終了通知 ④データ取得 本体メモリへデータ格納 バスマスタ処理 CPU ①動作命令 バスマスタ対応ボード ②入出力処理 ③データ本体メモリへデータ転送 ②~③の間CPUはその他の処理が可能

割り込みとは

特定の入力端子をパソコン(CPU)のIRQに接続して、外部から優先処理を発生させる機能です。外部装置の変化を検出して、特定の処理を実行するアプリケーションや、外部からの指令で高優先度の緊急処理などをする場合に使用します。

バスマスタ処理のイメージ

消費電流とは

デバイスの動作には電源が必要ですが、そのボードがどれくらい電流を消費するかを示します。通常、この電源はパソコンの拡張バスコネクタから供給されています。

そして、実装したボードの最大消費電流の総和が、パソコンの定格電源容量(拡張スロットに供給できる電流の最大値)を超えてはならないという注意点があります。

もし超えた場合、パソコンの電源電圧の低下をまねき、暴走などのトラブルが生じる可能性があるため、パソコンのスロットを拡張するための『拡張ユニット』を使用するなどの対策を行う必要があります。

例:パソコンが拡張スロットから供給できる電源容量が3.6Aの場合

最大消費電流が、1.2Aの外部インターフェイスボードを2枚実装すると
1.2(A)×2(枚)=2.4A → パソコンの電源容量(3.6A)以下なのでOK
最大消費電流が、0.8Aの外部インターフェイスボードを6枚実装すると
0.8(A)×6(枚)=4.8A → パソコンの電源容量(3.6A)以上なのでNG

ノイズの種類とその対策

ノイズには大きく分けて、次の2種類が存在します。電気実験と異なり、現場にはさまざまなノイズが存在し、理論どおりにいかないケースが多々あります。このような場合、精度を狂わせる原因の多くがノイズに起因しています。

外来ノイズ

  • 信号伝送ラインの外部から空中伝搬により飛来するノイズ。
  • モータなどの動力系機器配線との混在、近辺を経由する配線から混入するノイズ。

内部ノイズ

  • アナログ入出力回路の接続に起因するノイズ。
  • 装置間のグランド電位差によるオフセット電圧およびノイズ。
  • 配線材料に起因するクロストーク、輻射ノイズ。

対策

特に計測を行う場合の原則は、測定対象に影響を及ぼさないことです。そのためには、インピーダンスやグランドレベルなどのマッチングに対する配慮が必要となります。慣れれば難しいことではありませんが、配慮を怠った場合の影響は大きいと言えます。下表はノイズ対策方法の一例です。

ハード

対策方法 具体例 効果 留意点
信号レベルの強化 微弱信号の測定点での増幅 ノイズ全般の除去 パソコン側では効果小
配線方式による除去 シールドケーブルの使用 飛来ノイズの除去
配線方式による除去 ツイストペアケーブルの使用 クロストークの除去
配線方法による除去 計測・制御系と動力系との配線分離(電源、GND、配管) 飛来ノイズの除去
フィルタ回路挿入による除去 EMIフィルタ・CRフィルタの挿入 ノイズ全般の除去 ノイズ周波数が特定できるときに有効
入出力形式による除去 差動入出力による接続 飛来ノイズの除去 同相ノイズに対してのみ有効
アースの接続による除去 各装置をアースに接続 装置間電位差の除去 アースによっては逆にノイズ源となる

ソフト

対策方法 具体例 効果 留意点
平均化演算による除去
(複数読み出し)
移動平均によるノイズの平滑化 高周波ノイズの除去 変化に対する応答性が悪くなる
平均化演算による除去
(複数読み出し)
ブロック平均によるノイズの除去 高周波ノイズの除去 サンプリングレートが低くなる
ソフトフィルタによる除去 フィルタ関数によるノイズの除去 高周波ノイズの除去 リアルタイムな処理には不向き