3. 信号采集基础:模拟信号与数字信号,ADC采样原理,传感器信号调理电路
做过多级预警系统的朋友都知道,传感器是系统的“眼睛”和“鼻子”。但传感器吐出来的信号,往往不是单片机直接能消化的。这里面有个关键环节——信号采集。
说白了,我们得把物理世界的连续变化(模拟信号),翻译成单片机认识的0和1(数字信号)。这个翻译过程,就是ADC(模数转换)。但别急着上ADC,信号在进去之前,还得“洗把脸、整整衣冠”——这就是信号调理。
我个人习惯把这一整套流程叫做“信号的三级跳”:传感器输出 → 调理电路 → ADC采样。今天咱们就聊聊这三跳里头的门道。
3.1 模拟信号与数字信号:两个世界的对话
先说说这两个“世界”的区别。
模拟信号,就像水龙头流出的水,连续不断,任何时刻都有值。温度、压力、气体浓度,这些都是模拟量。它的优点是信息丰富,缺点是抗干扰能力差。我在项目中遇到过,一根长距离的模拟信号线,愣是把50Hz的工频干扰给“请”进了系统,导致数据跳得像心电图。
数字信号,就像开关,要么开(1),要么关(0)。它不关心中间过程,只认高低电平。优点是抗干扰强,缺点是精度受限于位数。
你想想看,为什么现在大部分系统都往数字化走?说白了,就是数字信号好欺负,不容易被噪声带偏。
3.2 ADC采样原理:把连续变成离散
ADC(模数转换器)干的事,就是“拍照”。它每隔一段时间,给模拟信号拍一张“快照”,然后把这个瞬间的电压值,编码成一个数字。
这里有两个关键参数:采样率和分辨率。
- 采样率:每秒拍多少张照片。单位是Hz。比如1000Hz,就是一秒拍1000次。
- 分辨率:每张照片能记录多少细节。单位是bit。比如12位ADC,能把0-3.3V分成4096份。
嗯,这里要注意一个经典定律——奈奎斯特采样定理。它说:采样率必须大于信号最高频率的2倍,否则信号会“混叠”。
我曾经犯过一个低级错误:用一个100Hz的采样率,去采集一个80Hz的振动信号。结果呢?采出来的数据看起来像20Hz的信号。这就是混叠,数据完全失真了。后来我学乖了,采样率至少留3-5倍的余量。
3.3 传感器信号调理电路:放大与滤波
传感器出来的信号,通常有两个毛病:太弱、太脏。
太弱,是因为很多传感器(比如热电偶、电化学气体传感器)输出的电压只有毫伏级,甚至微伏级。ADC根本“看”不见。太脏,是因为环境噪声、电源纹波、电磁干扰都混在里面。
所以,信号调理电路要干两件事:放大和滤波。
3.3.1 放大电路
放大,不是简单地把信号乘以一个倍数。我建议用仪表放大器,比如AD620、INA128。它有三个好处:
- 高输入阻抗:不“吸”传感器的电流,不影响传感器输出。
- 高共模抑制比:能滤掉两根信号线上“共同”的噪声。
- 增益可调:用一个电阻就能设定放大倍数。
举个例子,一个电化学一氧化碳传感器,输出范围是0-100mV。而ADC的输入范围是0-3.3V。那我们就需要放大33倍。用仪表放大器,一个电阻搞定。
// 仪表放大器增益计算公式(以AD620为例)
// G = 49.4kΩ / Rg + 1
// 目标增益:33倍
// Rg = 49.4kΩ / (33 - 1) = 49.4kΩ / 32 ≈ 1.54kΩ
// 实际取标称值:1.5kΩ,实际增益约33.9倍,软件校准即可
3.3.2 滤波电路
放大之后,信号变大了,但噪声也跟着放大了。这时候需要滤波。
对于气体传感器这种低频信号,我习惯用二阶低通有源滤波器。它能把高频噪声(比如开关电源的纹波、电磁干扰)给“削”掉。
设计要点:
- 截止频率:一般设为传感器响应频率的5-10倍。比如气体传感器响应频率约1Hz,截止频率设10Hz就够。
- 滤波器类型:巴特沃斯滤波器,通带最平坦,适合信号保真。
- 运放选择:用低噪声、低偏置的运放,比如LM358、TL072。
你想想看,如果截止频率设得太高,噪声滤不干净;设得太低,有用的信号也被衰减了。这个平衡,得根据实际传感器来调。
3.4 知识体系总览
下面这张图,是我自己总结的信号采集流程。从传感器到数字量,每一步都有讲究。
3.5 实战中的几个坑
最后,分享几个我踩过的坑,希望能帮你省点时间。
- 阻抗匹配问题:传感器输出阻抗高,ADC输入阻抗低,直接接上去信号就被“拉垮”了。解决办法:加一级电压跟随器(缓冲器)。
- 电源噪声:ADC的参考电压如果来自开关电源,纹波会直接反映在采样结果里。我建议用独立的线性稳压器(如AMS1117-3.3)给ADC供电。
- 采样时序:多通道ADC切换时,通道之间会有串扰。解决办法:切换后加一个小的延时(比如1μs),等信号稳定了再采样。
- 接地问题:模拟地和数字地要分开走,最后单点连接。否则数字信号的高频噪声会通过地线窜到模拟信号里。
好了,信号采集的基础就聊到这儿。记住,传感器是起点,ADC是终点,调理电路是中间的桥梁。这三者配合好了,你的预警系统就成功了一半。