3、数据采集硬件基础:ADC原理
做嵌入式数据采集这些年,我打交道最多的器件就是ADC。说句实话,选错ADC,后面整个系统都得重来。今天咱们就好好聊聊ADC的那些事儿——逐次逼近型、Sigma-Delta型,采样率和分辨率怎么配,多通道同步采集又该怎么搞。
3.1 ADC的核心原理:两种主流架构
ADC的架构有好几种,但工业界用得最多的就两个:逐次逼近型(SAR)和Sigma-Delta型。我刚开始做项目时,总觉得SAR就是快,Sigma-Delta就是准,后来发现远没那么简单。
3.1.1 逐次逼近型ADC(SAR)
SAR ADC的工作原理,说白了就是「猜数字」游戏。它内部有个比较器,从最高位开始猜,猜对了就保留,猜错了就换。比如一个12位的SAR,它要猜12次才能确定最终值。
我个人习惯用SAR的场景是:需要中等精度(12-16位)、采样率在几MHz到几十MHz的场合。比如电机电流采样、振动信号采集,这些场景SAR ADC表现很好。
3.1.2 Sigma-Delta型ADC
Sigma-Delta ADC的思路完全不同。它不直接猜数字,而是用「过采样+噪声整形」的方式。简单说就是:用很高的采样率(比如几MHz)去采一个低频信号,然后通过数字滤波把噪声推到高频段,再降采样得到高分辨率结果。
Sigma-Delta的精度可以做到很高,16位、24位甚至32位都很常见。但代价是速度慢——输出数据率通常只有几十Hz到几kHz。我做过一个温度采集项目,用的就是24位Sigma-Delta ADC,分辨率能做到0.01°C以内。
3.2 采样率与分辨率:鱼和熊掌
采样率和分辨率,这两个参数是互相制约的。你想想看,ADC内部就那么点资源,要快就难准,要准就难快。
| ADC类型 | 典型分辨率 | 典型采样率 | 适用场景 |
|---|---|---|---|
| SAR | 12-16位 | 1 MSPS - 10 MSPS | 电机控制、振动监测 |
| Sigma-Delta | 16-24位 | 10 SPS - 1 kSPS | 温度测量、称重传感器 |
| 流水线型 | 8-14位 | 100 MSPS以上 | 射频、高速数据采集 |
这里有个经验公式:有效位数(ENOB)才是你真正能用的分辨率。很多ADC标称16位,实际有效位数可能只有13-14位。为什么?因为噪声、非线性、温度漂移都会吃掉你的精度。
我的经验:选ADC时,别只看标称分辨率。先算一下你的信号动态范围需要多少dB,然后反推需要的ENOB。比如你要测一个1000:1的动态范围(60dB),那至少需要10位ENOB。留点余量,选12位以上的比较稳妥。
3.3 多通道同步采集:时间对齐是关键
做多通道数据采集时,最头疼的问题就是「时间对齐」。比如你要同时采集三相电流和电压,如果每个通道的采样时刻差了几微秒,算出来的功率因数就全错了。
多通道同步采集有两种主流方案:
- 单ADC+多路复用器:成本低,但通道间有延迟。适合对时间同步要求不高的场景。
- 多ADC并行:每个通道独立ADC,用同一个采样时钟触发。时间对齐精度高,但成本也高。
我做过一个电力监测项目,要求三相电压电流同步采集,相位误差不超过0.1度。当时选了3片SAR ADC,用同一个时钟源驱动,再通过FPGA做数据对齐。实测下来,通道间延迟控制在10ns以内,完全满足要求。
3.4 知识体系总览
下面这张图是我自己整理的ADC选型与设计框架,帮你快速理清思路:
3.5 实战中的几个坑
最后分享几个我踩过的坑,希望能帮你少走弯路:
- 参考电压不能马虎:ADC的精度很大程度上取决于参考电压的稳定性。我见过有人用LDO直接给ADC供电当参考,结果噪声大得离谱。老老实实用专用参考源芯片吧。
- 布局布线要讲究:模拟信号和数字信号要分开走,地平面要完整。我曾经在一块板子上,ADC的数字输出线跟模拟输入线并行走了一段,结果串扰导致有效位数掉了2位。
- 别忘了抗混叠滤波器:采样定理说采样率要大于信号最高频率的2倍,但实际中最好做到5-10倍。如果信号里有高频噪声,不加抗混叠滤波器,采样结果会一塌糊涂。
总结一下:ADC选型没有万能方案。SAR适合中速中精度,Sigma-Delta适合低速高精度。多通道同步采集的关键是时间对齐,预算够就上多ADC并行,不够就用采样保持器方案。记住,有效位数才是你真正能用的分辨率,别被标称值忽悠了。
公众号:蓝海资料掘金营,微信deep3321