前言

本文涉及如下内容:

  • Single-Ended Input 与 Differential Input 有什么区别?
  • Fully Differential、True Differential、Floating Differential 是什么?
  • 基准电压(Vref) 与 共模电压(Vcm) 又是什么?

单端输入:Single-Ended Input

传感器与 ADC 之间最简单的连接就是单端输入(Single-Ended Input)。在这种连接中,传感器与 ADC 具有相同的接地,然后在单端上提供变化的模拟信号。

Arduino MCU 的内部,就是这样一个 ADC :

图1 Arduino ATmega MCU 中的 ADC

图1 Arduino ATmega MCU 中的 ADC,来源 [1]

图中高亮了几点:10/8-bit Resolution, Single-Ended Input 和 2.56V ADC Reference Voltage。

联合起来解读就是:

  • ADC 的分辨率是 n,ADC 转化的结果是 0 到 2^n - 1之间的整数;
  • 如果 n = 10,最大值 1023 对应基准电压;最小值 0 对应接地;
  • 基准电压(Vref)定义了 ADC 的量程范围(或称动态范围),默认为 2.56V,但可以配置;
  • 当输入信号 ≥ 基准电压,输出最大的转化结果,即数值 1023;
  • 当输入信号 ≤ 接地,输出最小的转化结果,即数值 0;
  • 当输入信号在接地与基准电压之间,则输出呈相应比例的转化结果;

我们可以举个例子,比如,当输入信号为 1.25V 时,输出数值 = 1.25 / 2.56 * 1024 = 500。

差分输入1:Fully Differential Input

还有一些传感器、通信设备使用一对线缆来表示信号。在连接 ADC 时,其中一个是“正输入端”,另一个是“负输入端”。差分信号是这两个输入端之间的电压差异。这种做法有利于抑制共模噪声的干扰。

差分信号具有极性,当正输入端大于负输入端时,差分信号为正;反之,为负。负的差分信号不代表输入是负电压,只代表着“负输入端”大于“正输入端”。

TI 提供了一个差分 ADC 如下:

图2 Fully Differential Input ADC 举例

图2 Fully Differential Input ADC 举例,来源 [2]

与单端输入一样,基准电压(Vref)决定了量程范围。但差分 ADC 具有 2 倍 Vref 的量程,这是因为两个输入端都可以在 [0, Vref] 之间变化,当正输入端为 0 ,负输入端为 Vref 时,差分信号是 -Vref;而当正输入端为 Vref ,负输入端为 0 时,差分信号是Vref。因此,量程范围是 [-Vref, Vref] ,是单端输入的 2 倍。相应的,差分 ADC 转化的结果是 [-2^(n-1), 2^(n-1)-1] ,也覆盖了 2 倍的 Vref。

与单端输入不同,差分 ADC 还有一个参数 —— 共模电压 Common-mode Voltage(Vcm)。这个参数指的是两个输入端的平均电平,一般使其位于电源和接地的中间位置,因为此时输入端的晶体管具有最好的线性特性。

差分输入2:True Differential Input

上述 Fully Differential Input 指的是两个输入端的信号,围绕 Vcm 具有互为反相(180° out-of-phase) 的对称性。

对于 True Differential Input 来说则不必有这种要求,它的“正输入”是一个信号,“负输入”可以是一个完全不同的信号。

万用表芯片 ICL7106 就是这样这颗 ADC,举例如下,它出现在很多低成本的万用表里:

图3 True Differential ADC 举例 - ICL7106

图3 True Differential ADC 举例 - ICL7106,来源 [3]

图4 ICL7106 典型电路图

图4 ICL7106 典型电路图,来源 [3]

图中 IN HO 与 IN LO 分别是差分信号的两个输入端,同时 IN LO 又连接到 COMMON 引脚,后者给 IN LO 加载了一个特定的电平。

对此我个人理解是,当信号测量系统需要较大的“直流偏置电压”时,通过 True Differential Input 将“直流电压偏置”连接到一个输入端(如 IN LO),使两者差分的结果与基准电压的量程相匹配。如果要用 Single-Ended Input 来实现的话,则需要更大的基准电压才能同时覆盖直流偏置电压和实际信号,而更大的基准电压不利于转化的精度。

以下是 TI 提供 Single-Ended、Differential ADC 的对比:

图5  ADC 输入类型对比

图5 ADC 输入类型对比,来源 [2]

图中还描述了一个 Pseudo Differential 类型,它比 True Differential 更为简易,因为 IN LO(图中为 Ain_M ) 只能是某个固定的电平。

差分输入3:Floating Differential Input

上述差分输入端与 ADC 具有相同的接地,但在一些场景中会遇到不同的接地,称为浮动差分输入(Floating Differential Input):

图6 ADC Floating Input

图6 ADC Floating Input,来源 [4]

这种情况源于信号有着独立的供电体系,需要做电气隔离(Galvanic isolation),确保差分输入的共模电压不超过 ADC 所能承受的范围。

关于这个话题有机会我们再做深入探讨,不过可以先想象一下:万用表量测信号属于 Floating 吗?示波器量测信号属于 Floating 吗?人的生理信号(如 ECG 心电图测量)属于 Floating 吗?

小结

今天介绍了 ADC 输入的几种类型,如 Single-Ended、Fully Differential、True Differential、Floating Differential,理解这些首先要抓住 “基准电压(Vref)” 与 “共模电压(Vcm)” 两个参数。

参考资料

参考资料,均可以在互联网上通过搜索关键词获取查阅:

  1. Arduino ATmega16U4/ATmega32U4 datasheet
  2. TI SAR ADC input types: https://www.ti.com/video/6279972316001
  3. Renesas ICL7106 datasheet
  4. Maxim / ADI Application Note 1108

欢迎关注我的微信公众号“疯狂的运放”,及时收到最新的推文。