4. 模拟信号链设计:热电堆传感器输出特性,低噪声运放选型(如AD8605),差分放大电路设计,抗混叠滤波器设计
各位同学,欢迎来到第四章。这一章我们聊聊模拟信号链。说实话,体温计里最考验硬功夫的,就是这一段。数字部分再花哨,前端信号没处理好,后面全是白搭。
热电堆传感器输出的信号有多微弱?我举个例子你就明白了。一个典型的热电堆,在人体温度37°C附近,输出信号大概只有几百微伏到几毫伏。你想想看,这比一个普通运放的输入失调电压还小。所以,信号链设计的核心就一句话:把微弱的信号,干净地放大到ADC能处理的范围内。
4.1 热电堆传感器的输出特性
热电堆传感器,说白了就是一堆热电偶串在一起。它把红外辐射转换成电压。我习惯先看它的几个关键参数:
- 灵敏度:一般在几十到几百 μV/°C 之间。比如 MLX90614 用的热电堆,灵敏度大约 50 μV/°C。
- 输出阻抗:通常在 10kΩ 到 100kΩ 之间。这个值决定了后面运放的输入阻抗要求。
- 响应时间:大约 10ms 到 100ms。体温测量不需要太快,但也不能太慢。
- 温度范围:人体温度范围窄,35°C 到 42°C 就够了。但环境温度可能从 0°C 到 50°C。
重要提示:热电堆的输出是差分信号。它有两个输出端,一个正一个负。千万别当成单端信号处理,否则共模噪声会让你怀疑人生。
我在项目中遇到过一个问题:传感器离人体太远,信号衰减严重。后来发现,热电堆的视场角(FOV)也很关键。视场角越大,接收到的环境噪声越多。所以,选型时要注意视场角,一般 30° 到 60° 比较适合耳温枪或额温枪。
4.2 低噪声运放选型:以AD8605为例
运放选型,我个人的经验是:先看噪声,再看失调,最后看带宽。为什么?因为体温信号是直流或低频信号,带宽要求不高,但噪声会直接淹没信号。
AD8605 是我比较喜欢的一款运放。它的参数很漂亮:
| 参数 | AD8605 典型值 | 为什么重要 |
|---|---|---|
| 输入失调电压 | 65 μV(最大) | 失调电压会叠加到信号上,造成测量误差 |
| 输入偏置电流 | 1 pA(典型) | 偏置电流流过传感器阻抗,产生额外压降 |
| 电压噪声密度 | 8 nV/√Hz @ 1kHz | 噪声密度越低,信噪比越高 |
| 增益带宽积 | 10 MHz | 对于体温信号,绰绰有余 |
| 电源电压 | 2.7V 到 5.5V | 适合电池供电设备 |
你可能会问:为什么选 AD8605 而不是更便宜的 LM358?嗯,这里要注意。LM358 的输入失调电压高达 3mV,比体温信号还大。你想想看,信号才几百微伏,运放自己就漂了几毫伏,这还怎么测?
选型小技巧:我建议优先选 CMOS 输入级的运放。它们的偏置电流极低(pA 级),不会在传感器的高输出阻抗上产生明显的压降。AD8605 就是 CMOS 运放。
4.3 差分放大电路设计
热电堆输出的是差分信号,所以我们需要一个差分放大器。最简单的方案是用一个运放搭成差分放大电路。但这里有个坑:输入阻抗不匹配。
我曾经踩过这个坑。直接用单个运放搭差分放大,结果两个输入端的阻抗不一样,导致共模抑制比(CMRR)急剧下降。后来我改用三运放构成的仪表放大器结构,问题才解决。
仪表放大器的经典结构是这样的:
第一级:两个运放构成对称的差分输入
第二级:一个运放做差分转单端
增益公式:G = 1 + (2R1/Rg)
其中 Rg 是增益电阻
实际电路中,我习惯这样设计:
- 第一级运放:增益设为 10 到 50 倍
- 第二级运放:再放大 10 到 20 倍
- 总增益:100 到 1000 倍
为什么分两级?因为单级放大倍数太高,容易自激振荡。而且,分两级可以更好地控制噪声。第一级主要放大信号,第二级再进一步放大。
警告:差分放大电路的电阻匹配精度至关重要。1% 的电阻匹配误差,可能让 CMRR 从 100dB 降到 60dB。我建议用 0.1% 精度的电阻,或者直接用集成仪表放大器芯片。
4.4 抗混叠滤波器设计
信号放大之后,下一步就是滤波。为什么要加抗混叠滤波器?说白了,就是防止高频噪声混叠到低频段,干扰体温测量。
体温信号是直流信号,变化很慢。但环境中充满了 50Hz 的工频干扰、手机射频干扰、甚至开关电源的纹波。这些高频成分如果不滤掉,ADC 采样时就会产生混叠,把高频噪声折回到低频段。
我常用的滤波器设计思路:
- 截止频率:设在 10Hz 到 100Hz 之间。体温变化不会超过这个范围。
- 滤波器阶数:二阶巴特沃斯滤波器就够了。阶数太高,电路复杂,而且相位延迟大。
- 滤波器类型:我习惯用 Sallen-Key 结构。它用运放少,元件少,性能稳定。
一个典型的二阶低通滤波器参数:
截止频率 fc = 10Hz
品质因数 Q = 0.707(巴特沃斯响应)
电阻 R1 = R2 = 100kΩ
电容 C1 = 0.1μF
电容 C2 = 0.22μF
计算验证:
fc = 1 / (2π * √(R1*R2*C1*C2))
= 1 / (2π * √(100k * 100k * 0.1μ * 0.22μ))
≈ 10.7Hz
个人经验:我建议在滤波器后面再加一级电压跟随器。它有两个作用:一是隔离滤波器与ADC的输入阻抗影响,二是提供低阻抗驱动,让ADC采样更准确。
最后,整个模拟信号链的流程是这样的:
- 热电堆传感器输出差分信号(几百 μV 到几 mV)
- 仪表放大器差分放大(增益 100 到 1000 倍)
- 二阶低通滤波器(截止频率 10Hz)
- 电压跟随器(缓冲输出)
- 送入 ADC 采样
嗯,这一章的内容就到这里。下一章我们聊聊 ADC 选型和采样策略。记住,模拟信号链是体温计的命脉,每一步都要精打细算。有什么问题,欢迎在课程群里讨论。