3、模数转换(ADC):Σ-Δ ADC与SAR ADC对比、采样率与分辨率权衡、抗混叠滤波器设计
好,咱们进入第三讲。ADC选型,这几乎是每个传感器项目都会遇到的坎儿。电梯称重传感器输出的信号,说白了就是一个小电压变化,你得把它变成数字量,才能让MCU去处理。
我见过不少工程师,上来就选了个高分辨率ADC,结果系统噪声大得离谱,精度根本提不上去。也有选便宜的,结果采样率不够,动态响应跟不上。今天咱们就把这事儿聊透。
3.1 Σ-Δ ADC 与 SAR ADC 的对比
这两种ADC,是咱们嵌入式领域最常用的。它们的工作原理完全不同,适用场景也天差地别。
3.1.1 SAR ADC:简单、快速、功耗低
SAR,全称是逐次逼近寄存器型。它的工作方式,你可以想象成“猜数字”游戏。ADC内部有一个比较器,它从最高位开始猜,猜对了就保留,猜错了就放弃,一直猜到最低位。
优点很明显:
- 速度快:采样率可以做到几MHz甚至更高。电梯称重虽然不需要那么快,但如果你要做多通道扫描,SAR的优势就出来了。
- 功耗低:尤其是在低采样率下,SAR的功耗几乎可以忽略。
- 延迟小:转换结果几乎是实时的,没有流水线延迟。
缺点也很致命:
- 分辨率受限:常见的SAR ADC做到12位、16位已经不错了,18位以上的SAR非常贵,而且对PCB布局要求极高。
- 对噪声敏感:SAR的精度很大程度上取决于内部比较器的精度和DAC的建立时间。稍微有点噪声,高位就可能跳。
我的经验: 在电梯称重项目中,如果只是做简单的过载检测(比如超载报警),用12位的SAR ADC完全够用。但如果你要做精确的称重计量(比如计费系统),SAR就有点力不从心了。
3.1.2 Σ-Δ ADC:高分辨率、慢速、抗噪强
Σ-Δ ADC的思路完全不同。它不直接去猜电压值,而是用“过采样”和“噪声整形”技术。它先以极高的速度(比如几MHz)对输入信号进行1位量化,然后通过数字滤波器把高频噪声滤掉,最后输出一个高分辨率的结果。
优点:
- 分辨率极高:24位、32位都很常见。对于称重传感器这种微弱信号,Σ-Δ几乎是唯一的选择。
- 内置抗混叠滤波器:因为过采样率很高,模拟端的抗混叠滤波器可以设计得非常简单,甚至只需要一个一阶RC。
- 噪声整形:它把量化噪声推到高频段,然后通过数字滤波器滤除,所以低频段的信噪比极高。
缺点:
- 速度慢:输出数据率通常只有几十Hz到几kHz。你想想看,它内部要处理那么多采样点,速度自然快不起来。
- 延迟大:数字滤波器会引入群延迟,对于需要快速响应的应用(比如动态称重),这是个麻烦。
- 功耗相对较高:内部数字滤波器一直在跑,功耗比SAR高一些。
核心对比表:
| 特性 | SAR ADC | Σ-Δ ADC |
|---|---|---|
| 分辨率 | 8~18位 | 16~32位 |
| 采样率 | 几kHz~几MHz | 几Hz~几kHz |
| 功耗 | 低 | 中 |
| 延迟 | 无(逐次逼近) | 有(数字滤波器) |
| 抗混叠需求 | 高(需要高阶滤波器) | 低(一阶RC即可) |
| 典型应用 | 多通道采集、高速控制 | 精密称重、音频、地震监测 |
3.2 采样率与分辨率的权衡
这个问题,说白了就是“鱼和熊掌不可兼得”。你不可能既要每秒采100万个点,又要每个点都是24位精度。物理定律摆在那儿呢。
为什么会有权衡?
对于Σ-Δ ADC来说,分辨率越高,需要的过采样率(OSR)就越高。OSR = 采样时钟频率 / 输出数据率。OSR越高,数字滤波器抽头越多,延迟越大,输出数据率就越低。
举个例子:一个Σ-Δ ADC,内部调制器时钟是10MHz。如果你设置OSR=256,输出数据率就是10MHz / 256 ≈ 39kHz。如果你想要更高的分辨率,把OSR提高到1024,输出数据率就降到9.7kHz了。
我曾经踩过的坑: 在一个电梯称重项目中,我为了追求极致精度,把OSR设到了4096。结果输出数据率只有2.4kHz。电梯启动瞬间的冲击力,ADC根本来不及响应,导致称重结果严重滞后。后来我不得不把OSR降到512,虽然分辨率降了一点,但动态响应跟上了。
如何选择?
- 静态称重:比如地磅、料斗秤,信号变化很慢。你可以用高OSR,追求高分辨率。输出数据率10Hz都够用。
- 动态称重:比如电梯启动、车辆过秤,信号变化较快。你需要适当降低OSR,保证输出数据率在100Hz以上。
- 多通道复用:如果你用一个ADC采集多个传感器,每个通道的采样率要除以通道数。比如你要求每通道100Hz,4个通道,ADC的输出数据率至少需要400Hz。
3.3 抗混叠滤波器设计
混叠,是采样定理的噩梦。根据奈奎斯特定理,采样率必须大于信号最高频率的两倍。否则,高频信号会“伪装”成低频信号,混入你的测量结果中。
对于称重传感器,信号频率通常很低(直流~几十Hz)。但环境中的噪声可不管这些。50Hz工频干扰、电机产生的电磁干扰、开关电源的纹波……这些高频噪声如果不滤掉,就会混叠到低频段,让你误以为是称重信号的变化。
3.3.1 模拟抗混叠滤波器
这是第一道防线。对于SAR ADC,因为采样率相对较低,抗混叠滤波器必须设计得比较陡峭。通常需要二阶甚至三阶有源低通滤波器。
但对于Σ-Δ ADC,情况就好多了。因为它的过采样率很高,模拟端的抗混叠滤波器只需要一个简单的一阶RC低通就够了。为什么?因为高频噪声虽然进来了,但会被Σ-Δ调制器推到更高频段,然后被数字滤波器滤除。
我的习惯: 在Σ-Δ ADC前端,我通常会放一个截止频率在1kHz左右的一阶RC滤波器。电阻选10kΩ,电容选0.1μF,时间常数τ=1ms。这个滤波器主要用来滤除射频干扰和尖峰噪声,而不是严格意义上的抗混叠。
3.3.2 数字滤波器
这是Σ-Δ ADC的强项。它的数字滤波器通常有两种类型:Sinc滤波器和FIR滤波器。
- Sinc滤波器:结构简单,计算量小,但通带平坦度差,有零点。适合对通带纹波要求不高的应用。
- FIR滤波器:通带平坦,线性相位,但计算量大,延迟大。适合精密测量。
很多Σ-Δ ADC芯片内部集成了可编程的数字滤波器。你可以通过寄存器配置滤波器的类型和阶数。比如ADI的AD7190,就支持Sinc3和Sinc4滤波器。
3.3.3 实际设计步骤
嗯,这里要注意,设计抗混叠滤波器不是随便选个截止频率就完事了。你得算一下。
- 确定信号带宽:电梯称重信号,有效带宽通常不超过10Hz。我们取20Hz作为信号最高频率。
- 确定ADC采样率:假设我们选Σ-Δ ADC,输出数据率设为100Hz。
- 计算混叠频率:任何频率f,如果满足 |f - n * fs| < 信号带宽,就会混叠进来。比如fs=100Hz,那么90Hz、110Hz、190Hz、210Hz……这些频率都会混叠到10Hz以内。
- 设计模拟滤波器:我们需要在90Hz处提供足够的衰减。一阶RC在90Hz处的衰减只有约-20dB/十倍频,显然不够。所以我们需要二阶有源滤波器,或者利用Σ-Δ ADC的过采样特性。
一个实用的配置:
// 以AD7190为例,配置为Sinc3滤波器,输出数据率50Hz
// 此时模拟端只需一阶RC,截止频率1kHz
// 数字滤波器会提供足够的抗混叠能力
// 配置代码片段
AD7190_WriteRegister(AD7190_REG_MODE, 0x080060); // 连续转换模式,Sinc3,50Hz
AD7190_WriteRegister(AD7190_REG_CONF, 0x000010); // 增益1,双极性,缓冲使能
最后,我想说一句:ADC选型没有绝对的好坏,只有合不合适。SAR ADC和Σ-Δ ADC各有千秋,关键看你的应用场景。采样率和分辨率的权衡,说白了就是你要在“快”和“准”之间找个平衡点。抗混叠滤波器,则是保证这个平衡不被噪声破坏的守护神。
下一讲,咱们聊聊传感器信号调理电路中的仪表放大器,那也是个容易出坑的地方。