引言:
在现代工业测量与自动化控制中,电阻桥式传感器凭借高精度和高稳定性,被广泛用于重量、压力、应变等物理量的检测。然而,如何设计高性能的电阻桥测量系统,并确保其在实际应用中的可靠性与精度,是许多工程技术人员面临的挑战。
本文以SSP1X20电阻桥测量应用为例,详细介绍了从硬件电路设计、器件选型、参数计算到软件实现的完整技术方案。通过惠斯通电桥的基本原理、应变式称重传感器的工作方式以及比例测量技术的应用,我们深入探讨了如何优化系统性能,并针对常见问题给出解决方案。
无论您是电子工程师、嵌入式开发者,还是对高精度测量技术感兴趣的爱好者,本文都将为您提供实用的技术参考与实现思路。接下来,我们将从原理概述入手,逐步剖析本系统的设计与实现。
1. 原理概述:
1.1 惠斯通电桥的基本工作原理
惠斯通电桥由四个电阻构成平衡电路,其基本结构如下:

平衡条件:当 R1/R2 = R3/R4 时,电桥平衡,Vout = 0
输出电压:
工作原理:
电压分配:电桥的供电电压Vs施加在电桥两端,电流通过电阻R1、R2、R3和Rx(待测电阻)分配。电桥的平衡状态意味着两个支路的电压相等,输出电压为零。
测量原理:惠斯通电桥的核心思想是通过测量电压变化来反映电阻变化。当电阻发生变化时,电桥不再平衡,检流计显示有电流,从而可由电流变化推知电阻变化。
1.2 应变式称重传感器原理
电阻应变片的工作原理基于应变效应,即当导体或半导体材料在外力作用下产生机械变形时,其电阻值随之变化,这一现象称为“应变效应”。半导体应变片由半导体材料制成,其工作原理基于半导体材料的压阻效应。压阻效应是指半导体材料在某一轴向受到外力作用时,其电阻率发生变化的现象。应变片是由敏感栅组成的用于测量应变的元件,使用时将其牢固粘贴在构件的测点上;构件受力后测点产生应变,敏感栅也随之变形、电阻发生变化,再用专用仪器测出电阻变化,并换算成测点的应变值。金属电阻应变片品种和形式繁多,包括丝式电阻应变片和箔式电阻应变片。箔式电阻应变片是基于应变—电阻效应制成的敏感元件,以金属箔作为敏感栅,可将试件的应变变量转换为电阻变化。
1.3 比例测量原理
主要优势:传感器供电与ADC基准共用同一激励源。
传递函数:数字输出码 ∝ (Vsensor / Vexcitation) × 增益
误差抵消机制:激励电压漂移会同时影响传感器输出和基准电压,在比值计算中相互抵消;温漂、电源噪声等共模误差被消除。
2. 硬件电路设计

- 电路连接说明
- 数字输入输出引脚(CS、SCLK、DIN、DOUT/DRDY,DRDY无需使用)串联47Ω电阻,可实现平滑过渡、抑制过冲,并提供一定程度的过压保护。
- 采用外部基准,选择通道0,基准电压为5V。
- AIN0/REFP1与AIN1悬空,以尽量减小模拟输入的漏电流。
- 将CLK接至GND,避免电源产生过大漏电流。
- 矽朋建议差分电容(C2)应至少比共模电容(C1、C3)大一个数量级(10倍),因为共模电容失配会将共模噪声转换为差分噪声。配置如下:R17 = R18 = 1kΩ,C2 = 100nF,C1 = C3 = 10nF。
- 电容C8和C7采用多层陶瓷片式电容(MLCC),利用其等效串联电阻(ESR)和等效串联电感(ESL)特性实现电源去耦。
3. 器件选型与参数计算
3.1 核心器件选型表
| 器件 | 规格 | 数量 | 选型依据 |
| ADC 芯片 | SSP1220, TSSOP-16 | 1 | 集成PGA的24位Δ-Σ ADC |
| 输入滤波电阻 | R17=R18=1KΩ,0805 | 2 | 限流保护、滤波 |
| 输入差分电容 | C2=100nF, X7R,50V,0805 | 1 | 差分噪声滤波 |
| 输入共模电容 | C1=C3=10nF, X7R,50V,0805 | 2 | 共模噪声抑制 |
| 去耦电容 | C7=C8=100nF, X7R,16V,0603 | 2 | 低ESR/ESL MLCC |
| 外部基准源 | 5V±0.1% | 1 | 高精度基准 |
3.2 参数计算
3.2.1 数字接口电阻计算
(1)47Ω电阻分析:
主要作用:抑制信号过冲与振铃;提供有限的过压保护;减缓信号边沿、降低EMI。
信号完整性分析:假设总线电容 Cbus = 20pF;时间常数 τ = R × C = 47Ω × 20pF = 0.94ns;对SPI时钟频率的影响:最高可支持约50MHz。
(2)功耗计算
数字引脚电流(典型值):
输入漏电流:±10μA
47Ω上的功耗:P = I² × R =(10μA)² × 47Ω ≈ 4.7nW
可忽略不计
3.2.2 滤波参数计算
(1)差模滤波计算
差模截止频率:
![]()
![]()
![]()
差模阻抗:
![]()
(2)共模滤波计算
共模截止频率:
![]()
![]()
![]()
共模阻抗:
![]()
3.2.3 电容比例验证
C2 : C1 = 100nF : 10nF = 10:1,严格满足10倍比例的要求。
共模转差模抑制:假设共模电容失配 ±5%
产生的差分噪声:V_cm_to_diff ≈ V_cm × (ΔC/C) ≈ V_cm × 5%,在严格的比例下该影响被降到最低。
3.3.3 系统性能计算(使用外部5V基准)
(1)信号范围计算
传感器规格:满量程输出 Vout_max = 5V × 3mV/V = ±15mV
PGA增益选择:128
基准电压:5V(外部)
满量程输入范围:
FSR = ±Vref / 增益 = ±5V / 128 ≈ ±39.06mV
验证:15mV < 39.06mV,余量充足。
(2)分辨率计算
LSB大小:
1 LSB = FSR / 2²³ = 39.06mV / 8,388,608 ≈ 4.66nV
理论分辨率:
电压分辨率 = 4.66nV
重量分辨率 =(1kg / 15mV)× 4.66nV ≈ 0.31μg
(3)实际精度计算
噪声性能(@增益128、20SPS):
输入折合噪声:0.09μVrms(典型值)
峰值噪声:约0.41μVpp
重量测量噪声:
重量噪声 =(1kg / 15mV)× 0.09μV ≈ 6mg_RMS
无噪声分辨率 ≈ 27mg_PP
4. 软件实现
4.1 初始化配置:
void configure_bridge_measurement(void) {
uint8_t config_regs[4] = {0};
// 设置MUX为AIN1-AIN2,增益=128,启用PGA
config_regs[0] = SSP1x20_MUX_AIN3_AIN2 | SSP1x20_GAIN_128 | SSP1x20_PGA_BYPASS_OFF;
// 设置数据速率等其他参数
config_regs[1] = SSP1x20_DR_20SPS | SSP1x20_MODE_NORMAL | SSP1x20_CC | SSP1x20_TS_OFF | SSP1x20_BCS_OFF;
// 参考电压及其他设置
config_regs[2] = SSP1x20_VREF_REF0 | SSP1x20_REJECT_BOTH | SSP1x20_PSW_ON | SSP1x20_IDAC_OFF;
// DRDY模式
config_regs[3] = SSP1x20_IDAC1_OFF | SSP1x20_IDAC2_OFF | SSP1x20_DRDYM_DRDY;
// 写入寄存器
SSP1x20_WriteRegister(SSP1x20_REG0, 4, config_regs);
}
4.2 读取原始数据
int32_t read_bridge_sensor_raw(void) {
uint32_t raw = SSP1x20_read_data_rdata();
if (raw & 0x800000) {
return (int32_t)(raw | 0xFF000000);
}
return (int32_t)raw;
}
4.3 去皮清零 与校准
// 去皮清零
void tare_bridge_sensor(void) {
SSP1X22_offset = read_bridge_sensor_raw();
}
校准比例系数
void calibrate_bridge_sensor(double known_weight) {
tare_bridge_sensor(); // 先清零
int32_t raw_data = read_bridge_sensor_raw();
// 比例系数计算(1000g对应的ADC值)
SSP1X22_scale = known_weight / (raw_data – SSP1X22_offset);
}
关键参数说明:
SSP1x20_PGA_BYPASS_OFF
- PGA_BYPASS
电桥传感器输出仅10~20mV,若不进行放大,就无法发挥24位ADC的精度优势。
要使用增益(如64、128), 必须关闭旁路 → PGA_BYPASS_OFF
SSP1x20_MUX_AIN3_AIN2
- MUX差分通道选择
惠斯通电桥输出为差分信号,必须使用差分输入模式,确保传感器正输出接AIN3、负输出接AIN2,并在软件中选择对应的差分对。
SSP1x20_VREF_REF0 // 即 REFP0-REFN0
- VREF基准源
- 实现 比例测量的核心!
- 将REFP0连接到传感器激励电压的正端(例如AVDD或EXC+)。
- REFN0连接到激励电压的负端(GND)。
→ 即使电源发生波动,ADC满量程与传感器输出也按同一比例变化, 读数保持不变.
- 错误接法的后果:
若使用内部基准或固定VREF,电源纹波将直接转化为重量误差。
SSP1x20_DR_20SPS
- 数据速率DR
ΔΣ ADC的精度与速度可相互权衡:
- 20SPS → 高分辨率(有效位大于21位),工频抑制能力强
- 1000SPS → 噪声明显增大,有效位数大幅下降
4.4 关键算法模块说明
4.4.1 去皮清零
void tare_bridge_sensor(void){
SSP1X22_offset = read_bridge_sensor_raw();
}
- 功能:消除零点偏移(包括传感器初始不平衡、电路失调等)。
- 调用时机:系统上电且空载后执行一次
4.4.2 原始数据读取
int32_t read_bridge_sensor_raw(void){
Uint32_t raw = SSP1X20_read_data_rdata();
If (raw & 0x800000){
Return (int32_t)(raw | 0xFF000000); 符号扩展
}
return (int32_t)raw;
}
- 将24位无符号数据转换为 带符号的32位整数
- 处理负值(最高位为1时需进行符号扩展)
4.4.3 重量计算
double get_weight_from_bridge(double scale_factor){
int32_t raw_data = read_bridge_sensor_raw();
return (raw_data – SSP1X22_offset) * scale_fator;
}
- 核心公式:ΔRaw × Scale = 重量
- 必须先执行tare(),否则偏移量不会生效
4.4.4 校准
viod calibrate_brifge_sensor(double known_weight){
take_bridge_sensor(); 1. 去皮清零
HAL_Delay(10);
int32_t raw_max = read_bridge_sensor_raw(); 2. 读取满量程值
if (raw_max ==(int32_t)SSP1X22_offset){
防止清零出错
return ;
}
SSP1X22_scale = known_weight / (raw_max – (int32_t)SSP1X22_offset);
}
- 前提:已将电桥手动调整到对应的known_weight状态(例如100g)。
- 输出:自动计算最优Scale值
本系统通过 去皮清零 + 线性校准实现高精度电桥测量。核心在于:
正确的硬件电桥结构 + 合理的软件校准流程 = 可靠的重量输出
只需确保:
- 电桥能产生有效的差分电压,
- 去皮清零与校准步骤顺序正确,
- 比例系数与实际物理量匹配,
即可在模拟或真实传感器场景下稳定工作。
5. 常见问题与解决办法
| 现象 | 可能的原因 | 解决办法 |
| 读数始终为零 | 未去皮清零 / 传感器未供电 | 检查激励电压,执行tare()。 |
| 数据剧烈跳动 | 电源噪声大 / 接地不良 | 加强电源滤波、采用单点接地 |
| 显示负值 | AIN+与AIN-接反 | 对调传感器OUT+与OUT- |
| 读数饱和(最大值) | 输入超量程 / 增益过高 | 降低增益或检查传感器电阻 |
| 温漂严重 | 未做温度补偿 / 供电不稳定 | 改用比例测量,避免使用外部VREF |
完整代码可通过联系我们的技术支持获取。联系电话:+8618014203727