はじめに
重量計を設計する際には、コストを低く抑えつつ、より高い精度を実現することが求められます。そのためには、より低コストでより高性能のアナログ信号処理技術が必要です。但し、必要な要件は必ずしも明白なものではありません。例えば、多くの重量計は、1:3000または1:10000の分解能で最終的な重量の値を出力します。この要件は、分解能が12~14ビットのA/Dコンバータ(ADC)を使用すれば容易に満たせるようにも思えます。しかし、詳しく検討してみると、重量計に求められる分解能を達成するのは決して簡単ではないことがわかります。実際、ADCとしては20ビットに近い分解能を備えるものが必要になるのです。本稿では、まず重量計システムの仕様について説明します。その上で、同システムを設計/構築する際に検討すべき事柄について考察します。具体的には、ピークtoピーク・ノイズの分解能、ADCのダイナミック・レンジ、ゲインのドリフト、フィルタリングの話題を取り上げます。その上で、重量計向けに最適化されたリファレンス設計を紹介します。それを評価用ボードとして使用し、安定したリファレンス電圧を入力した場合と、実際にロード・セルを接続した場合の結果を比較します。それを通して、現実に即した最適な設計とはどのようなものなのかを明らかにします。
ロード・セルによる荷重のセンシング
重量計の最も一般的な実装方法は、ブリッジ型のロード・セルを荷重センサーとして使用するというものです。その重量計の上に何かが置かれると、その重量に正比例する電圧が出力されます。ブリッジ型の一般的なロード・セルは、4つの抵抗を使って図1のように構成されています。4つのうち少なくとも2つは可変抵抗です。この回路の場合、重量が印加されると抵抗値が変化し、それに応じてコモンモード・レベルが2.5V(電源電圧の半分)の差動電圧が生成されます。一般的なブリッジ回路では、300Ω程度の抵抗値が使われます。

ロード・セルは、本質的に単調性を備えています。主なパラメータとしては、感度、トータルの誤差、ドリフトが挙げられます。
感度
ロード・セルの電気的な感度は、最大負荷がかかっているときの出力と励起電圧の比として定義されます。一般的な値は2mV/V程度です。感度が2mV/Vで励起電圧が5Vの場合、フルスケールの出力電圧は10mVであるということになります。ただ、実際に使用されるのは、ロード・セルの出力範囲の中でも最も高い線形性が得られる部分だけです。通常は、全範囲のうち約2/3しか使われません。つまり、現実的なフルスケールの出力電圧は約6mV程度だということです。したがって、6mVのフルスケールの範囲内で、小さな信号の変化を最大限の性能が得られる形で測定できるようにする必要があります。産業環境では重量計が一般的に用いられますが、そのような測定を実現するのは容易ではありません。
トータルの誤差
ここで言うトータルの誤差とは、定格出力に対する出力誤差の割合のことです。一般的な重量計において、その仕様は約0.02%といった値になります。この誤差により、理想的なシグナル・コンディショニング回路で達成可能な精度が制限されます。したがって、これは非常に重要な仕様だということになります。この仕様により、ADCの分解能の選択と増幅回路/フィルタの設計が左右されます。
ドリフト
ロード・セルでは、時間の経過に伴ってドリフトが生じます。図2に示したのは、実際のロード・セルのドリフト特性です。24時間にわたって測定を行うことで、ロード・セルの安定性を評価しました。測定期間中、温度は基本的に一定だったので、このドリフトには温度の影響は含まれていません。このプロットは、時間の経過に伴う変化量を24ビットのADCで測定することによって取得しました。トータルのドリフトは125LSB、つまりは約7.5ppmであることがわかります。

重量計システムの設計
重量計システムを設計する際には、以下に挙げるパラメータについて重点的に検討する必要があります。
- 内部カウント
- ADCのダイナミック・レンジ
- ノイズフリー分解能
- 更新レート
- システムのゲイン
- ゲイン誤差のドリフト
また、重量計システムは、レシオメトリックな計測が行えるように設計する必要があります。つまり、電源電圧と測定結果が独立した状態になるようにするということです。これについては後述することとし、以下では上に列挙した各項目について説明していきます。
内部カウント
先述したとおり、重量計システムに求められる分解能には幅があります。ユーザーから見たカウント数で言うと、ローエンドの場合は1:3000、ハイエンドの場合には1:10000といった具合になります。例えば、カウント数が1:10000で最大5kgまで測定可能な重量計の場合、分解能は0.5gということになります。測定結果を液晶ディスプレイに表示するようなシステムでは、この分解能は外部カウントと呼ばれます。この外部カウントを保証するには、システムの内部分解能はそれより少なくとも1桁は高くなければなりません。実際、システムの内部カウントは、外部カウントと比べて20倍高くなければならないとする規格も存在します。上記の例で言えば、内部カウントは1:200000でなければならないということです。

ADCのダイナミック・レンジ
上述したように、重量計システムには分解能の高いADCが必要になります。但し、そのADCのフルスケール範囲全体が使われることはまずありません。図1に示した例では、ロード・セルの電源電圧は5V、フルスケール出力は10mVです。そして、フルスケールの中で線形な特性が得られる範囲は6mVに限られます。ゲインが128のフロント・エンド段を使用したとすると、ADCの入力フルスケールは約768mVになります(図3)。2.5Vの標準的なリファレンス電圧を使用する場合、ADCのダイナミック・レンジのうち、使用されるのはわずか30%程度に限られるということになります。
770mVのフルスケール範囲に対して、1:200000の内部カウントが必要であるとします。この場合、性能面での要件を満たすためには、ADCはその3~4倍の精度を備えている必要があります。つまり、1:800000のカウントを達成するために、19~20ビット精度のADCを使用しなければならないということです。このことから、信号処理の要件によって生じる実用レベルの課題についてご理解いただけたでしょう。
ゲインとオフセットのドリフト
一般に、産業分野で使用される重量計システムは50°Cほどの温度範囲に対応して動作する必要があります。したがって、システムの設計者は、室温を超える条件下でのシステムの精度について検討しなければなりません。温度に依存したゲインのドリフトが、支配的な誤差源になり得るからです。例えば、分解能が20ビットでゲイン誤差のドリフトが1ppm/°Cの安定したシステムがあったとします。そのシステムでは、50°Cの範囲で50LSBの誤差が生じることになります。つまり、25°Cでは1LSBの精度が安定して得られるシステムであっても、温度範囲全体では実質的に50LSBの精度しか達成できないということです。したがって、重量計システムを設計する際には、ゲイン・ドリフトが小さいADCを選択することが非常に重要です。
一方、オフセットのドリフトはそれほど大きな懸念事項にはなりません。シグマ・デルタ(ΣΔ)型ADCの多くは、チョッピング・モードの手法を組み込む形で設計されています。そのため、ドリフトが小さく1/fノイズ性能が高いという特徴が得られます。つまり、重量計システムの設計に適しているということです。例えば、「AD7799」1の場合、オフセット・ドリフトの仕様は10nV/°Cです。20ビットのシステムを50°Cの範囲にわたって使用する場合でも、このドリフトによって生じる誤差はトータルでわずか1/4LSB程度に収まります。
ノイズフリー分解能
データシートを参照する際には、注意しなければならないことがあります。それは、ノイズの仕様が二乗平均平方根(rms)値で規定されているのか、それともピークtoピーク(p-p)値で規定されているのかということです。重量計システムの場合、最も重要な仕様は、ノイズフリー・コード分解能を左右するp-pノイズです。ノイズフリー・コード分解能とは、すべてのADCに伴う実効入力ノイズが原因となって、それ以上は個々のコードを明確に判別することができなくなる分解能(ビット数)のことです。このノイズはrms量として表現することができますが、通常はLSB単位の数値(カウント、フルスケールの2-n)として表されます。その値に6.6を乗じると(それにより、標準分布内のすべての値のうち99.9%を網羅することができます)、合理的に等価なピークtoピーク値(単位はLSB)に変換することが可能です。図4として示した表は、AD7799のデータシートから抜粋したものです。このように、アナログ・デバイセズが提供するほとんどのΣΔ ADCの場合、データシートにはrms値とp-p値(ノイズフリー・コード)の両方が記載されています。
更新レート
図4を見ると、システムのノイズフリー分解能はADCの更新レートに依存することがわかります。例えば、リファレンス電圧が2.5Vで更新レートが4.17Hzである場合(ゲインは128)、分解能は20.5ビットp-pです。しかし、更新レートを500Hzに高めると、分解能は16.5ビットまで低下します。重量計システムでは、ADCがサンプリングできる最小更新レートと、液晶ディスプレイの更新に必要な出力データ・レートのバランスをとる必要があります。ハイエンドの重量計の場合、一般的にはADCの更新レートとして10Hz程度の値が使用されます。
表I. AD7799のゲインと出力更新レートに対する出力RMSノイズ(単位はµV、リファレンス電圧は2.5V)
更新レート | ゲイン:1 | ゲイン:2 | ゲイン:4 | ゲイン:8 |
ゲイン:16 |
ゲイン:32 |
ゲイン:64 |
ゲイン:128 |
4.17 Hz | 0.64 | 0.6 | 0.185 | 0.097 | 0.075 | 0.035 | 0.027 | 0.027 |
8.33 Hz | 1.04 | 0.96 | 0.269 |
0.165 | 0.108 | 0.048 | 0.037 | 0.040 |
16.7 Hz | 1.55 | 1.45 | 0.433 | 0.258 | 0.176 | 0.085 | 0.065 | 0.065 |
33.3 Hz | 2.3 | 2.13 | 0.647 | 0.364 | 0.24 | 0.118 | 0.097 | 0.094 |
62.5 Hz | 2.95 | 2.85 | 0.952 | 0.586 | 0.361 | 0.178 | 0.133 | 0.134 |
125 Hz | 4.89 | 4.74 | 1.356 | 0.785 | 0.521 | 0.265 | 0.192 | 0.192 |
250 Hz | 11.76 | 9.5 | 3.797 | 2.054 | 1.027 | 0.476 | 0.326 | 0.308 |
500 Hz | 11.33 | 9.44 | 3.132 | 1.773 | 1.107 | 0.5 | 0.413 | 0.374 |
表II. AD7799のゲインと出力更新レートに対する標準分解能(単位はビット、リファレンス電圧は2.5V)
更新レート | ゲイン:1 | ゲイン:2 | ゲイン:4 | ゲイン:8 |
ゲイン:16 |
ゲイン:32 |
ゲイン:64 |
ゲイン:128 |
4.17 Hz | 23 (20.5) | 22 (19.5) | 22.5 (20) | 22.5 (20) | 22 (19.5) | 22 (19.5) | 21.5 (19) | 20.5 (18) |
8.33 Hz | 22 (19.5) | 21.5 (19) | 22 (19.5) |
22 (19.5) | 21.5 (19) | 21.5 (19) | 21 (18.5) | 20 (17.5) |
16.7 Hz | 21.5 (19) | 20.5 (18) | 21.5 (19) | 21 (18.5) | 21 (18.5) | 21 (18.5) | 20 (17.5) | 19 (16.5) |
33.3 Hz | 21 (18.5) | 20 (17.5) | 21 (18.5) | 20.5 (18) | 20.5 (18) | 20.5 (18) | 19.5 (17) | 18.5 (16) |
62.5 Hz | 20.5 (18) | 19.5 (17) | 20.5 (18) | 20 (17.5) |
19.5 (17) | 19.5 (17) | 19 (16.5) | 18 (15.5) |
125 Hz | 20 (17.5) | 19 (16.5) | 20 (17.5) | 19.5 (17) | 19 (16.5) | 19 (16.5) | 18.5 (16) | 17.5 (15) |
250 Hz | 18.5 (16) | 18 (15.5) | 18.5 (16) | 18 (15.5) | 18 (15.5) | 18.5 (16) | 18 (15.5) | 17 (14.5) |
500 Hz | 18.5 (16) | 18 (15.5) | 18.5 (16) | 18.5 (16) | 18 (15.5) | 18.5 (16) | 17.5 (15) | 16.5 (14) |
図4. 代表的なADC製品である「AD7799」の入力換算ノイズと分解能
重量計システムのリファレンス設計
ここでは、重量計システム向けに最適化されたリファレンス設計を紹介します。上述した事柄について検討を重ね、数々の課題を解消した優れた実装例となっています。
最適なADCの選択
ADCのアーキテクチャの中で重量計システムに最も適しているのはΣΔ型です。更新レートが低い場合に、ノイズを小さく抑えつつ、高い直線性が得られるからです。また、ΣΔ ADCはノイズ・シェーピングとデジタル・フィルタの機能を内蔵していることもメリットになります。ノイズ・シェーピングの機能では、高い周波数で動作する変調器によって量子化ノイズがその変調周波数の1/2より高い領域に押しやられます。また、デジタル・フィルタの機能では、かなり低い周波数領域までの帯域制限が行われます。これらの機能により、ADCの出力データに対して適用しなければならない複雑な後処理が大幅に緩和されます。
ADCとしては、低ノイズのプログラマブル・ゲイン・アンプ(PGA)も内蔵するものを選択すべきです。なぜなら、ロード・セルの出力信号は小さく、それを増幅するための高いゲインが必要になるからです。ADCに集積されるPGAは、ゲインを設定するために外付けの抵抗を使用するディスクリート構成のPGAと比べて温度ドリフトが小さくなるよう最適化して実装することができます。ディスクリート構成の場合、温度ドリフトに伴う任意の誤差がゲイン段によって増幅されます。それに対し、重量計のアプリケーションをターゲットとして設計されたAD7799は、フロント・エンド部に、優れたノイズ性能(27nV/√Hz)と128mV/mVの最大ゲインを備えるゲイン段を内蔵しています。このADCには、ロード・セルを直接接続することが可能です。
ここで紹介するリファレンス設計は、アナログ・デバイセズが重量計システム向けの評価用ボードとして提供しているものです。そのブロック図を図5に示しました。主要な構成要素は、ADCであるAD7799とそれを制御するマイクロコントローラ「ADuC847」2です。ADuC847は、AD7799に対してデジタル・インターフェースを提供すると共に後処理を担います。また、AD7799とは別に、24ビットの高性能なΣΔ ADCを内蔵しています。そのため、このリファレンス設計を使えば、AD7799を使用したシステムと、ADuC847のADCを使用する完全に自己完結型のシステムを比較することができます。つまり、同じハードウェア接続を使用した評価結果を比較し、要件に最も適した設計を選択することが可能です。

評価結果
ここでは、上述したリファレンス設計の評価結果を示します。いずれも、ADCから出力されたコードの標準偏差(実質的にrmsノイズ)に基づいています。また、ノイズフリー分解能コードへの変換には、以下の計算式を使用しました。
[標準偏差] = [rmsノイズ]〔LSB〕
[ピークtoピーク・ノイズ] = 6.6×rmsノイズ〔LSB〕
[ノイズの分解能ビット数] = log2[p-pノイズ]
[ADCのノイズフリー分解能〔ビット〕] = 24 - [ノイズのビット数]
= 24 - log2(6.6×[rmsノイズ]〔LSB〕)[分解能ビット数]
図6に示したのは、電圧リファレンスをADCの入力として使用した場合の測定結果です。測定値の標準分布は3.25LSBとなっています。これに6.6を乗じることで、21.65LSBというピークtoピーク・ノイズの値が求まります。その値を分解能ビット数に変換すると、4.42ビットになります。24ビットのADCの場合、これはノイズフリー分解能が19.58ビットであるということを意味します。図7に示したのは、一般的なロード・セルを使って同じ評価を行った結果です。その場合のノイズフリー分解能は19.4ビットでした。これは、ロード・セルによって最終的な結果に追加されるノイズはわずか0.2ビット相当であるということを意味します。つまり、このノイズに影響を及ぼす主要な要因はADCであることがわかります。


ADCの出力結果の改善
AD7799は狭帯域ではあるものの、24ビットもの高い分解能を誇る製品です。しかし、上で示したように、その有効ビット数(ENOB)は、使用する出力ワード・レートとゲインの設定に応じてノイズによる制限を受けます。ノイズをできる限り除去し、実効分解能を高めるために、ADuC847のマイクロコントローラ部は、平均化のアルゴリズムによって性能を高めるようプログラムしてあります。図8は、ΣΔ ADCのアナログ入力をグラウンドに接続した状態で取得される一般的な測定結果をヒストグラムとして示したものです。入力が固定/DCのアナログ値であるなら、出力のコードも一定値になることが理想です。しかし、現実にはノイズが存在することから、出力コードはアナログ入力値に対応する値の周囲に分布する形になります。通常はガウス分布を示すことになるでしょう。なお、ノイズの主な原因としては、ADC内で発生する熱ノイズと、A/D変換処理に必ず伴う量子化ノイズが挙げられます。

平均化を担うフィルタは、最大限にシャープなステップ応答を維持しつつ、ランダムなホワイト・ノイズを低減するための有効な手段です。このリファレンス設計では、移動平均のアルゴリズムをソフトウェアで実現しています。そのアルゴリズムの基本的な処理フローは図9のようなものになります。

移動平均フィルタは、入力信号に対応する複数のポイントのデータを平均化し、出力信号となる各データを生成します。フィルタへの入力は、ADCから直接取得します。直近M個のデータ・ポイントのうち、最小/最大のデータ・ポイント(外れ値)はデータ・ウィンドウから削除されます。その上で、残るM - 2個のデータ・ポイントの平均値が計算されます(以下参照)。

移動平均の手法を使用することで、出力データ・レートは入力データ・レートと同じ値に維持されます。この手法は、1次平均化処理の一種です。一般に、更新レートが高い場合には、波形の分散を抑えるために2次平均化が使用されます。その場合、第1段の出力が第2段によって平均化され、より改善された結果が得られます。
図10に示したのは、AD7799の出力データに平均化を適用した結果です。図7と比べると、平均化によって最終的な結果が約2.5ビット分改善されていることがわかります(実効分解能が19.4ビットから21.9ビットに改善されています)。この手法を使えば、液晶ディスプレイの更新レートに影響を及ぼすことなく、最終的な結果を飛躍的に改善することが可能です。唯一の欠点は、平均化するためのパイプラインの遅延によってセトリング時間が長くなることです。

重量の変化に対する応答時間の改善
上述した基本的なアルゴリズムを使用すれば、ノイズ性能を大幅に改善することができます。但し、重量が変化したときには問題が生じる可能性があります。重量が変化したら、ロード・セルの出力は、非常に短い時間でバランスの取れた別の状態に移行するはずです。しかし、このアルゴリズムを採用した場合、フィルタがM回更新されるまでは最も適切な結果を出力することができません。つまり、平均化の対象とするポイントの数によって応答時間が制限されることになります。このような理由から、重量が変化したか否かを判定し、それに応じた処理を行うための特別なアルゴリズムが必要になります。図11に、そのアルゴリズムの基本的な処理フローを示しました。

このアルゴリズムでは、重量の変化がグリッチだと見なされることを防ぐために、判定用の条件を2つ使用しています。ADCからの2つの連続するデータと、フィルタの出力との差がいずれも閾値を超えている場合に、重量が変化したと見なされます。
2段目のM個の全データを新たな同じデータで置き換えることにより、重量が変化した後、直ちにロード・セルの遷移期間の影響を排除します。また、ロード・セルそのものにもセトリング時間があります。これを補償するために、重量の変化が検出された後、移動平均処理用のウィンドウに含まれる全データを、次の連続する6つの平均化サイクルの間、ADCからの最新のデータで更新します。それにより、回復時間の経過を待ちます。6つの更新サイクルが完了したら、平均化の処理を再開します。
出力結果のフリッカへの対応
重量計は、1:5000と1:10000といった標準的なレンジに対応して0.5gまたは1g単位で結果を表示します。重量が2つの隣接する目盛りの間にある場合、表示としては2つの目盛りの間を行き来(フリッカ)することになります。この表示を安定させるためには、図12のアルゴリズムを使用しています。

各表示サイクルにおいて、ソフトウェアはそのサイクルで表示されている重量の値が1つ前のサイクルの値と同じであるか否かを確認します。同じ値である場合には、液晶ディスプレイへの出力は変更されず、次のサイクルへと処理が進みます。異なる値である場合には、2つのサイクルに対応する内部コードの差が計算されます。その差が閾値よりも小さければ、値が異なる原因はノイズの影響だと見なして、古い重量の値がそのまま表示されます。一方、計算によって得られた差が閾値よりも大きかった場合には表示が更新されます。
AD7799とADuC847のADCの比較
先述したように、ADuC847は24ビットのΣΔ ADCを内蔵しています。そのADCをAD7799の代わりに使用すれば、コストが重視される重量計向けにシングルチップのソリューションを構築することができます。ADuC847はマイクロコントローラのコアとして「8052」を採用しています。ADCだけでなく、差動アナログ入力とリファレンス入力を備えたPGA(ゲインは128)も内蔵しています。加えて、プログラム用に62Kバイト、データ用に4Kバイトのフラッシュ・メモリを備えています。ここでは、低ノイズ/スタンドアロン型のADCであるAD7799を使用した場合と、ADuC847の内蔵ADCを使用した場合の性能を比較してみます。図13、図14が、それぞれを使用した場合の評価結果です。どちらの測定も同様の条件で実施しました(詳細については図の説明文を参照)。予想どおり、AD7799の方がノイズが小さく、ハイエンドのアプリケーションに適していることがわかります。ただ、要件がさほど厳しくない場合にはADuC847でも十分に対応できます。


システム設計において注意すべき事柄
最後に、重量計のシステム設計を行う際に注意すべき事柄についてまとめておきます。
レシオメトリックな測定の実現
本稿で紹介したリファレンス設計では、最大限の性能を達成するために図3に示したような構成を採用しました。ポイントは、レシオメトリックな測定を実現できるようにしていることです。それに向けて、ブリッジ回路の励起とADCのリファレンスには同一のリファレンス源を使用することにしました。ロード・セルの出力精度は、ブリッジ回路の励起電圧によって決まります。ブリッジ回路の出力は励起電圧に正比例し、励起電圧にドリフトが存在したとすると、それに対応するドリフトが必ず出力電圧にも現れます。そこで、ブリッジ回路の励起電圧に比例する電圧をADCのリファレンス源として使用します。そうすれば、ブリッジ回路の励起電圧が変動したとしても測定精度は損なわれません。このようなレシオメトリックな接続により、励起源のドリフトと超低周波のノイズの影響は排除されます。ロード・セルからのノイズは、ADCの入力部にシンプルな1次のRCフィルタを適用するだけで排除できます。
基板のレイアウト
高精度のΣΔ ADCを使用して最大限のノイズ性能を達成するためには、プリント回路基板のレイアウトが非常に重要です3。レイアウトにおけるポイントは、グラウンドの接続と電源のデカップリングをどのように行うのかということです。本稿で紹介したリファレンス設計では、グラウンド・プレーンをアナログ領域とデジタル領域に分割しています。AD7799は、それら2つのグラウンド・プレーンの境界線上に配置しています。グラウンド・プレーンは、1つのスタート・ポイントを使用してAD7799の真下で接続されています。AD7799のGNDピンは、アナログ・グラウンドに接続する必要があります。このリファレンス設計では、電源は1つしか使用していません。ただ、AVDD端子とDVDD端子の間にはフェライト・ビーズを適用しています。フェライト・ビーズは、低い周波数に対しては低インピーダンス、高い周波数に対しては高インピーダンスになります。そのため、DVDDからの周波数の高いノイズは遮断されます。フェライト・ビーズを選択する際には、そのインピーダンスの周波数特性について確認する必要があります。このリファレンス設計では、表面実装型のパッケージを採用した600Ωのフェライト・ビーズを使用しています。また、0.1µFと10µFのコンデンサを使用して、AVDDとDVDDのデカップリングを行っています。デカップリング用のコンデンサは、できるだけデバイスの近くに配置しなければなりません。
ハードウェアとソフトウェア
本稿で紹介したリファレンス設計は、RS-232のインターフェースを介して任意のPCに接続することが可能です。そのため、システムの評価を行う際、データの保存や処理を容易に実施できます。このリファレンス設計で採用しているハードウェア/ソフトウェアの仕様は公開されています。また、関連するソース・コードや、回路図、プリント基板用のガーバ・ファイルなども無料で提供されています。詳細については、筆者らにお問い合わせください。
参考資料(2005年12月時点)
3 John Ardizzoni「高速プリント回路基板レイアウトの実務ガイド」Analog Dialogue、Vol. 39、No. 9、2005年9月