工业级低功耗三通道信号调理模块
工业级低功耗三通道分立信号调理模块,全分立搭建模拟链路——Howland恒流源驱动Pt100 + 三线制补偿 + 三运放仪放 + Sallen-Key滤波 + 24-bit ΣΔ ADC + 间歇供电低功耗调度 + RS-485 Modbus RTU通信。
- STM32L072 (Cortex-M0+, 低功耗)
- Pt100 RTD 三线制测温通道
- K型热电偶通道(带冷端补偿)
- 4-20mA 电流环输入通道
- Howland 恒流源(分立搭建)
- 三运放仪表放大器(CMRR > 85dB)
- Sallen-Key 二阶有源低通滤波
- ADS1220 24-bit ΣΔ ADC
- CD4053 模拟多路复用
- RS-485 隔离收发(ADuM1201 + MAX485)
- P-MOSFET 间歇供电开关
- TVS/RC EMI 防护
- Keil MDK
- STM32 HAL 库开发
- 数字滤波(滑动平均 + IIR 陷波)
- Pt100/热电偶分度表线性化
- Modbus RTU 从机协议
- 间歇功耗调度(Sleep → 采样 → 通信 → Sleep)
- 系统自校准算法
项目概述
本项目为 工业级低功耗三通道分立信号调理模块,面向石油测井、工业物联网、实验室仪器、环境监测等应用场景。核心设计理念:全部模拟链路用分立元件搭建(非集成模块),从零复现工业级信号链的每一个环节。
我担任 独立硬件负责人,负责系统架构设计、模拟链路调试、低功耗固件开发与通信协议实现。项目目前处于 开发阶段。
核心指标
- 三路独立输入:Pt100 RTD(-50~+250°C)、K型热电偶(0~1200°C)、4-20mA 电流环
- 电流通道精度:±0.1%,Pt100 精度:±0.1°C,热电偶精度:±1°C
- 分辨率:24-bit ADC + 可编程增益(PGA 1~128×)
- 通信:RS-485 Modbus RTU,支持一主多从组网
- 平均功耗:~30µA(间歇工作模式),2000mAh 锂亚电池电气寿命 ~8.5 年
- BOM 成本:¥150~250(含打样冗余)
系统总体架构
┌──────────────────────────────────────────────────┐
│ 三通道传感器输入 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Pt100 │ │ K型热电偶 │ │ 4-20mA │ │
│ │ (3线制) │ │ (带冷端) │ │ (串接250Ω)│ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
└───────┼────────────┼────────────┼─────────────────┘
│ │ │
┌───────────────────┼────────────┼────────────┼───────────────────┐
│ ▼ ▼ ▼ │
│ ┌───────────────────────────────────────────┐ │
│ │ 三通道模拟开关(多路复用) │ │
│ │ CD4053 │ │
│ └───────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────┐ │
│ │ 仪表放大器(INA 分立搭建) │ │
│ │ 三级运放拓扑:缓冲+差分→单端 │ │
│ │ 增益 1~128 倍程控切换 │ │
│ └───────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────┐ │
│ │ 有源低通滤波器 (Sallen-Key, 二阶) │ │
│ │ 截止频率:10Hz / 100Hz 可配置 │ │
│ └───────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────┐ │
│ │ 24-bit Σ-Δ ADC (ADS1220) │ │
│ │ 内置 PGA,差分输入,SPI 接口 │ │
│ │ 基准源:TL431B 2.5V │ │
│ └───────────────────────────────────────────┘ │
│ │ │
│ 数字域 ──┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────┐ │
│ │ MCU (STM32L072 低功耗) │ │
│ │ - 数字滤波 / 线性化查表 │ │
│ │ - Modbus RTU 通信协议 │ │
│ │ - 低功耗间歇调度 │ │
│ │ - 自校准算法 │ │
│ └───────────────────────────────────────────┘ │
│ │ │
│ ┌──────────────────┼──────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ RS-485 │ │ UART │ │ CAN 2.0 │ │
│ │(Modbus) │ │(调试) │ │(可选) │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────────┘
第一通道:Pt100 RTD 三线制测温
Howland 恒流源驱动
采用分立搭建的 Howland 电流源为 Pt100 提供 1mA 恒流激励(避免自热漂移):
V_ref (2.5V 基准, TL431B)
│
R_set (24.9kΩ, 0.1%)
│
├──────────── I_out → Pt100
│
OPA (+) 输入
│
OPA (-) 输入
│
R_sense (100Ω, 0.1%, 25ppm/°C) ──── GND
│
OPA 输出 ──┬── 100Ω (输出隔离补偿)
│
└── 10nF ──┬── OPA (-) 输入
│
GND
稳定性补偿:输出串联 100Ω + 反馈 10nF 电容形成超前补偿,相位裕度从 20° 提升到 60°,防止长电缆驱动时自激振荡。
三线制引线电阻补偿
Pt100 三线制的精髓:用第三根线消除引线电阻。差分测量 (L1+L2) - (L2+L3) 时,若 L1 与 L3 等温等长,引线电阻 R_w 完全抵消。PCB 设计中 L1、L3 走同层、同长度、同宽度。
三运放仪表放大器(分立搭建 · 核心设计)
经典三运放拓扑:前级双运放同相输入提供高阻抗缓冲,后级差分转单端。
增益公式:G = 1 + (2 × R1) / R_gain
| 量程 | 增益 G | R_gain | 输出范围 | |------|-------|--------|---------| | -50~+250°C | 25 | 820Ω | 0~2.5V |
仪放第一级使用 OPA333(零漂移,Vos 10µV max),后级与滤波器使用 TL084(成本控制)。电阻匹配采用 0.01% 金属箔电阻(Susumu RG2012),实际 CMRR ≈ 85dB。
系统自校准
上电短路自校准 → 定期增益校准 → 存入 EEPROM,将长期温漂压到 0.02°C 级别。
第二通道:K 型热电偶测温(带冷端补偿)
两级放大链
K 型热电偶输出 ~41µV/°C,采用两级同相放大 + Sallen-Key 低通:
TC → RC 抗混叠 → 同相放大 G=5 → 同相放大 G=10 → Sallen-Key 低通 → MUX → ADC
+ NTC 冷端补偿 + LM393 断线检测
总增益 = 50×,1000°C × 41µV/°C × 50 = 2.05V,在线性范围内。
冷端补偿(CJC)
采用 NTC 分立做模拟温度感知,软件查 K 型分度表做非线性补偿——保留分立温度测量能力,同时避免对数/反对数模拟电路的复杂度。
断线检测
100nA 恒流源 + LM393 比较器,断线时输入漂移至电源轨触发 MCU 报警——工业现场防爆安全检查的加分项。
第三通道:4-20mA 电流环输入
高精度电流采样
变送器输出经 250Ω (0.1%) 采样电阻产生 1-5V,由分立三运放仪放差分采样抑制共模干扰。
电平搬移
采用运放差分减法器(非简单的电阻分压):以 V_ref = 1V 为基准,V_out = (V_in - 1V) × 0.825,将 1-5V 搬移至 0-3.3V ADC 范围。输入阻抗高,不影响前级。
ADC 与基准源
ADS1220 24-bit ΣΔ ADC
| 参数 | 规格 | |------|------| | 分辨率 | 24-bit | | 内置 PGA | 1~128× 可编程 | | 数据率 | 20 SPS(最佳噪声性能) | | 接口 | SPI | | 封装 | SSOP-10(手工可焊) |
电压基准
TL431 shunt 基准 + 运放跟随器,输出 2.5V 基准至 ADC V_ref 输入。
低功耗设计(核心亮点)
间歇工作调度
┌──────────────────────────────────────────────────────┐
│ 主循环 (间歇工作模式) │
│ │
│ while(1) { │
│ Sleep(9s); // 0.39µA │
│ Wake → Enable Analog Power (MOSFET 开关) │
│ Wait 10ms (Analog settle) │
│ Sample 3 channels × 200ms each │
│ Digital processing ~100ms │
│ Disable Analog Power │
│ UART TX result (if event-driven) │
│ } │
│ │
│ 平均电流 ≈ 30µA │
│ 2000mAh 锂亚电池 → 电气寿命 ~8.5 年 │
└──────────────────────────────────────────────────────┘
P-MOSFET 间歇供电开关
+3.3V 常电经 P-MOSFET(AO3401)为模拟部分供电,MCU GPIO 控制通断。栅极串 100Ω 阻尼电阻 + 下拉 10kΩ 防静电,源漏并联肖特基续流二极管保护。
系统功耗
| 模式 | 电流消耗 | 持续时间 | 平均电流 | |------|---------|---------|---------| | 休眠 (Sleep) | <5µA | 9s | <5µA | | 采样 (Run) | ~2mA | 100ms | ~20µA | | 通信 (TX) | ~10mA | 10ms | ~2µA | | 总计 | — | 10s 周期 | ~30µA |
通信接口:RS-485 + Modbus RTU
隔离 RS-485 设计
STM32 UART → ADuM1201 数字隔离器 → B05S05 隔离 DC-DC → MAX485 收发器 → A/B 双绞线。
- 隔离耐压 5kVrms/1min
- 漏电流 <1µA(满足医疗设备安规要求)
- 可承受 ±2kV 浪涌不损坏
分立防护:A/B 线各加 TVS(SMBJ6.5CA)+ 共模电感,120Ω 终端匹配 + 偏置电阻。
Modbus RTU 寄存器映射
| 寄存器地址 | 内容 | 格式 | |-----------|------|------| | 0x0000 | CH1 Pt100 温度 | ×0.01°C, int32 | | 0x0002 | CH2 TC 温度 | ×0.1°C, int32 | | 0x0004 | CH3 4-20mA | ×0.001mA, int16 | | 0x0005 | 设备地址 | uint16 | | 0x0006 | 波特率 | uint16 |
电源管理与 EMI 防护
输入防护(完整工业级)
输入 9~36V DC → PPTC 自恢复保险丝(200mA)→ P-MOS 反接保护 → TVS 瞬态钳位(SMBJ40A)→ 共模电感(10mH)→ RC 吸收 → LDO 稳压(TPS7A4901, 低噪声 150µVrms)→ +3.3V 输出。
电源架构
+3.3V 常电分为三路:MCU 常电(0.39µA 休眠)、模拟电源(间歇开关)、通信电源(间歇开关),实现精细化功耗管理。
数字域信号处理
原始 ADC 码 (24-bit, 20SPS)
│
▼
滑动平均滤波(窗口 N=8,去极值)
│
▼
IIR 数字陷波(50Hz 工频去噪,Q=30)
│
▼
线性化查表(Pt100: ITS-90 / K型: NIST)
│
▼
冷端补偿(TC 通道软件查表)
│
▼
自校准(偏移/增益校准 → EEPROM)
│
▼
温度/电流值(工程单位)
项目进度
| 阶段 | 状态 | |------|------| | 方案设计与器件选型 | ✅ 完成 | | 洞洞板模拟链路验证 | 🔧 进行中 | | PCB 绘制(4 层板) | 📋 待开始 | | 固件开发(ADC + 数字滤波) | 📋 待开始 | | Modbus RTU 通信协议 | 📋 待开始 | | 联调与性能验证 | 📋 待开始 | | EMI 摸底测试 | 📋 待开始 |
分立器件统计
| 类别 | 型号 | 数量 | |------|------|------| | 精密运放 | OPA333AIDBVT | 1 | | 通用运放 | TL084CD | 4 | | 比较器 | LM393DR | 4 | | ADC | ADS1220 | 1 | | 模拟开关 | CD4053 | 4 | | NPN/PNP | 2N3904/2N3906 | 9 | | MOSFET | AO3401/AO3400 | 4 | | 电压基准 | TL431B | 1 | | MCU | STM32L072KBU6 | 1 | | RS-485 隔离 | ADuM1201 + MAX485 | 各 1 | | 电阻/电容/二极管/TVS | — | ~200 | | 总计 | — | ~240 个分立 + IC |