センサインタフェース
センサ値が「なぜかふらつく・ずれる」の原因を原理から潰せる。アナログ/デジタル接続の選び方、ADC取り込み、サンプリングとノイズ対策、キャリブレーションまでを一本の筋で押さえられる。
- 1.アナログセンサは信号調整(増幅・レベルシフト・アンチエイリアスフィルタ)を経てADCへ、デジタルセンサ(I2C/SPI)は内蔵ADC済みの値をバス越しに読む。境界は「どこでデジタル化するか」。
- 2.ADCの分解能は1LSB=フルスケール÷2のNビットで決まり、サンプリング周波数は信号最高周波数の2倍超が必須(ナイキスト)。折り返し雑音はアナログ側のフィルタでしか防げない。
- 3.生の値は必ずオフセットとゲインの誤差を含む。2点校正 y=a·x+b で補正し、比率測定(レシオメトリック)や平均化・移動平均で電源変動とランダム雑音を抑える。
センサは「物理量を電気に、電気を数値に」変換する連鎖
センサインタフェースとは、温度・圧力・光・加速度といった物理量を、マイコンが読める数値へ落とし込むまでの経路全体を指します。この経路は必ず二段構えです。第一段でセンサ素子が物理量を電気信号(電圧・電流・抵抗変化)に変え、第二段でその電気信号を離散的な数値へ量子化します。設計の勘所は、この「アナログ→デジタル」の境界を経路上のどこに置くか、そして境界の手前で信号をどれだけ整えるかにあります。
センサは大きく2種類に分かれます。アナログセンサは連続的な電圧や抵抗をそのまま出力し、デジタル化はマイコン側(またはその周辺)の役目です。デジタルセンサはセンサIC内部にADCと処理回路を内蔵し、I2C や SPI といったバス越しに整数値を返します。前者は回路設計の自由度が高い代わりにノイズとの戦いが設計者に委ねられ、後者は接続が容易な代わりに内部仕様に縛られます。
アナログ接続:信号調整がすべてを決める
アナログセンサの出力は、そのままADCに入れられることはほとんどありません。センサの出力範囲とADCの入力範囲が食い違い、微小信号は雑音に埋もれ、高周波成分は後述の折り返しを引き起こすからです。これを整えるのが**信号調整(シグナルコンディショニング)**で、典型的には次を組み合わせます。
| 処理 | 目的 | 代表的な手段 |
|---|---|---|
| 増幅 | 微小信号をADCのフルスケール近くまで引き上げSNRを稼ぐ | オペアンプ・計装アンプ(差動) |
| レベルシフト/バイアス | 負電圧や中点基準をADCの片極性入力範囲へ移す | 加算回路・基準電圧オフセット |
| フィルタリング | 帯域外の雑音と折り返し源を除去 | RC/アクティブ・ローパス |
| インピーダンス変換 | 高出力インピーダンス源をADCが正しく駆動できるよう緩衝 | ボルテージフォロワ |
とりわけ重要なのが計装アンプによる差動増幅です。ブリッジ型のひずみゲージや熱電対のように、信号が微小でコモンモード雑音(両線に等しく乗る雑音)を伴う場合、2線間の差だけを高利得で取り出しコモンモードを打ち消すことで、実用的なSNRを確保します。
逐次比較(SAR)ADCは入力にサンプリングコンデンサを持ち、変換のたびにこれを信号源で充電します。信号源の出力インピーダンスが高いと、コンデンサが規定時間内に充電しきれず変換値が沈みます。だからセンサとADCの間にボルテージフォロワ(低出力インピーダンス)を挟むか、十分なセトリング時間を確保する必要があります。「配線は正しいのに値が低めに出る」典型原因がこれです。
ADCによる取り込み:分解能とサンプリング
ADC(アナログ・デジタル変換器)は連続量を2つの軸で離散化します。振幅方向の量子化と時間方向のサンプリングです。
振幅方向の細かさは分解能で決まります。N ビットADCはフルスケール電圧を2のN乗段に刻むので、識別できる最小の電圧差(1LSB)は次のとおりです。
1LSB = V_ref / 2^N
例) V_ref = 3.3V, N = 12bit のとき
1LSB = 3.3 / 4096 ≒ 0.806 mV
理想的な量子化雑音の実効値 = 1LSB / sqrt(12)
理想SNR(dB) ≒ 6.02 * N + 1.76
12ビットで約74dB、16ビットで約98dBが理論上限です。ただしこれは量子化だけの理想値で、実際は基準電圧の雑音・非直線性(INL/DNL)・熱雑音でこれを下回ります。実力値は**有効ビット数(ENOB)**として別途規定され、カタログのビット数より小さいのが常です。
時間方向では、標本化定理(ナイキスト)が絶対の制約になります。信号に含まれる最高周波数を fmax とすると、サンプリング周波数 fs は 2·fmax を超えていなければ元の信号を復元できません。fs が不足すると、帯域外の高周波成分が低周波として折り返して現れる**エイリアシング(折り返し雑音)**が起き、しかもデジタル化後には除去不能です。この原理は /dsp-control/ のサンプリングと量子化の解説にも通じます。
折り返しは「サンプリングという行為そのもの」で発生するため、いったんデジタル化した後のデジタルフィルタでは絶対に取り除けません。fs/2(ナイキスト周波数)より上の成分は、必ずADCの手前のアナログ・ローパスフィルタで減衰させておく必要があります。オーバーサンプリング(意図的に高いfsで取り込む)を併用すると、アナログフィルタの遮断を緩くできる代わりに、後段でデシメーションが必要になります。
ADCの方式選択も設計を左右します。高速・中分解能ならSAR型、超高分解能で低速な計測ならデルタシグマ型(オーバーサンプリングとノイズシェーピングで実効分解能を稼ぐ)、極めて高速ならフラッシュ型という住み分けが基本です。
デジタル接続:バス越しに数値を読む
デジタルセンサは内部でここまでの処理を済ませ、整数レジスタとして値を保持します。マイコンは I2C か SPI でそのレジスタを読むだけです。両者の性格は対照的です。
| 観点 | I2C | SPI |
|---|---|---|
| 信号線数 | 2本(SCL/SDA)で多デバイス共有 | 最低4本(SCLK/MOSI/MISO/CS)、CSは機器ごと |
| 速度 | 標準100k〜400kHz、高速でも数MHz | 数MHz〜数十MHz超と高速 |
| アドレス指定 | 7bitアドレスでバス上を識別 | CS(チップセレクト)線で個別選択 |
| 向く用途 | 低速・多点センサ(温湿度・気圧) | 高速・大量転送(IMU・ADC外付け) |
デジタル接続では、ノイズ対策の主戦場がアナログ経路からバスの信頼性へ移ります。I2C のプルアップ抵抗値(バス容量と速度で決まる)、配線長とリンギング、そしてレジスタ値の妥当性チェック(レンジ外の値やCRCの検証)が要点です。センサ内部のサンプリング設定(出力データレート、内蔵ローパスの帯域)もレジスタで構成するため、「デジタルだから調整不要」ではなく、調整の場所がIC内部へ移っただけと捉えるのが正確です。
キャリブレーション:生の値を物理量へ直す
ADC出力やセンサレジスタの生値は、そのままでは正しい物理量になりません。素子ばらつき・基準電圧誤差・温度依存により、必ずオフセット誤差(ゼロ点のずれ)とゲイン誤差(傾きのずれ)を含むからです。これを補正するのがキャリブレーションで、最も基本的なのが2点校正です。
生値 x を物理量 y へ写す線形補正: y = a * x + b
既知の2点 (x1, y1), (x2, y2) を測定して係数を決める
a(ゲイン) = (y2 - y1) / (x2 - x1)
b(オフセット) = y1 - a * x1
非線形なセンサ(熱電対・サーミスタ等)は
多項式近似 or ルックアップテーブル+区間線形補間を用いる
抵抗分圧型センサ(サーミスタ、ポテンショメータ等)をADCの基準電圧と同じ電源で駆動すると、電源電圧が揺れても「分圧比」は変わらないため、測定値が電源変動の影響を受けません。これがレシオメトリック(比率)測定です。センサ電源とADCのV_refを共通化するだけで、電源リップルに起因する誤差を原理的に打ち消せる強力な手法です。
ノイズ対策:アナログとデジタルの両輪
最後に、実測値の「ふらつき」を抑える対策を整理します。ノイズには帯域外から折り返す成分、電源やグラウンド経由で混入する成分、そして量子化・熱雑音のようなランダム成分があり、対策の層が異なります。
- アナログ層:アンチエイリアスフィルタで帯域を制限し、差動増幅でコモンモード雑音を除去。アナロググラウンドとデジタルグラウンドを一点で接続し、基準電圧源をローノイズに保つ。センサ配線は短く、必要ならシールドする。
- サンプリング層:オーバーサンプリングして平均を取ると、ランダム雑音は標本数の平方根に反比例して減る(4倍のサンプルで雑音半分=実効1ビット向上)。取り込みタイミングを電源周期に同期させ、電源由来のハムを打ち消す手もあります。
- デジタル層:移動平均・メディアンフィルタ・指数移動平均(IIR)で残ったランダム成分と外れ値を平滑化。ただし平滑化は応答遅延と表裏一体なので、必要な応答速度とのトレードオフで次数を決めます。
「なぜアンチエイリアスフィルタが要るか」には『折り返しはサンプリング時に発生し、デジタル化後には除去できないから』。「分解能とサンプリング周波数の違い」は『分解能は振幅の刻み(1LSB=Vref/2のNビット)、サンプリング周波数は時間の刻みで、最高周波数の2倍超が必要』。「2点校正で何を直すか」は『ゲイン誤差(傾き)とオフセット誤差(ゼロ点)』——この3点を役割ごとに切り分けて答えられるかが採点の分かれ目です。
センサインタフェースは、素子選定に始まり信号調整・ADC・校正・雑音対策まで、アナログとデジタルの境界をまたいで一本の信号経路として設計する営みです。「どこでデジタル化し、境界の手前で信号をどう整え、生値をどう物理量へ直すか」を原理から押さえれば、値がずれる・ふらつくといった不具合の切り分けが確実になります。センサから先の演算やフィルタ設計は /dsp-control/、電源とグラウンドの扱いは /power/ が土台になります。
組込み・IoT Article
センサインタフェースを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
組み込み
比較で見る軸
難易度: advanced / カテゴリ: 組込み・IoT / タグ数: 5
導入後に効く点
ADCの分解能は1LSB=フルスケール÷2のNビットで決まり、サンプリング周波数は信号最高周波数の2倍超が必須(ナイキスト)。折り返し雑音はアナログ側のフィルタでしか防げない。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- 組込み・IoT
- タグ数
- 5
判断チェックリスト
- 自社の用途が「組み込み / センサ」に近いか確認する。
- 強みである「アナログセンサは信号調整(増幅・レベルシフト・アンチエイリアスフィルタ)を経てADCへ、デジタルセンサ(I2C/SPI)は内蔵ADC済みの値をバス越しに読む。境界は「どこでデジタル化するか」。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。