理解ADC:关于传感器与 ADC 之间连接方式的讨论
前言
本文涉及如下内容:
- Single-Ended Input 与 Differential Input 有什么区别?
- Fully Differential、True Differential、Floating Differential 是什么?
- 基准电压(Vref) 与 共模电压(Vcm) 又是什么?
单端输入:Single-Ended Input
传感器与 ADC 之间最简单的连接就是单端输入(Single-Ended Input)。在这种连接中,传感器与 ADC 具有相同的接地,然后在单端上提供变化的模拟信号。
Arduino MCU 的内部,就是这样一个 ADC :
图中高亮了几点: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 如下:
与单端输入一样,基准电压(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,举例如下,它出现在很多低成本的万用表里:
图中 IN HO 与 IN LO 分别是差分信号的两个输入端,同时 IN LO 又连接到 COMMON 引脚,后者给 IN LO 加载了一个特定的电平。
对此我个人理解是,当信号测量系统需要较大的“直流偏置电压”时,通过 True Differential Input 将“直流电压偏置”连接到一个输入端(如 IN LO),使两者差分的结果与基准电压的量程相匹配。如果要用 Single-Ended Input 来实现的话,则需要更大的基准电压才能同时覆盖直流偏置电压和实际信号,而更大的基准电压不利于转化的精度。
以下是 TI 提供 Single-Ended、Differential ADC 的对比:
图中还描述了一个 Pseudo Differential 类型,它比 True Differential 更为简易,因为 IN LO(图中为 Ain_M ) 只能是某个固定的电平。
差分输入3:Floating Differential Input
上述差分输入端与 ADC 具有相同的接地,但在一些场景中会遇到不同的接地,称为浮动差分输入(Floating Differential Input):
这种情况源于信号有着独立的供电体系,需要做电气隔离(Galvanic isolation),确保差分输入的共模电压不超过 ADC 所能承受的范围。
关于这个话题有机会我们再做深入探讨,不过可以先想象一下:万用表量测信号属于 Floating 吗?示波器量测信号属于 Floating 吗?人的生理信号(如 ECG 心电图测量)属于 Floating 吗?
小结
今天介绍了 ADC 输入的几种类型,如 Single-Ended、Fully Differential、True Differential、Floating Differential,理解这些首先要抓住 “基准电压(Vref)” 与 “共模电压(Vcm)” 两个参数。
参考资料
参考资料,均可以在互联网上通过搜索关键词获取查阅:
- Arduino ATmega16U4/ATmega32U4 datasheet
- TI SAR ADC input types: https://www.ti.com/video/6279972316001
- Renesas ICL7106 datasheet
- Maxim / ADI Application Note 1108
欢迎关注我的微信公众号“疯狂的运放”
,及时收到最新的推文。