引言:

在现代工业测量与自动化控制中,电阻桥式传感器凭借高精度和高稳定性,被广泛用于重量、压力、应变等物理量的检测。然而,如何设计高性能的电阻桥测量系统,并确保其在实际应用中的可靠性与精度,是许多工程技术人员面临的挑战。

本文以SSP1X20电阻桥测量应用为例,详细介绍了从硬件电路设计、器件选型、参数计算到软件实现的完整技术方案。通过惠斯通电桥的基本原理、应变式称重传感器的工作方式以及比例测量技术的应用,我们深入探讨了如何优化系统性能,并针对常见问题给出解决方案。

无论您是电子工程师、嵌入式开发者,还是对高精度测量技术感兴趣的爱好者,本文都将为您提供实用的技术参考与实现思路。接下来,我们将从原理概述入手,逐步剖析本系统的设计与实现。

1. 原理概述:

1.1 惠斯通电桥的基本工作原理

惠斯通电桥由四个电阻构成平衡电路,其基本结构如下:

 

平衡条件:当 R1/R2 = R3/R4 时,电桥平衡,Vout = 0

输出电压:

工作原理:

电压分配:电桥的供电电压Vs施加在电桥两端,电流通过电阻R1、R2、R3和Rx(待测电阻)分配。电桥的平衡状态意味着两个支路的电压相等,输出电压为零。

测量原理:惠斯通电桥的核心思想是通过测量电压变化来反映电阻变化。当电阻发生变化时,电桥不再平衡,检流计显示有电流,从而可由电流变化推知电阻变化。

1.2 应变式称重传感器原理

电阻应变片的工作原理基于应变效应,即当导体或半导体材料在外力作用下产生机械变形时,其电阻值随之变化,这一现象称为“应变效应”。半导体应变片由半导体材料制成,其工作原理基于半导体材料的压阻效应。压阻效应是指半导体材料在某一轴向受到外力作用时,其电阻率发生变化的现象。应变片是由敏感栅组成的用于测量应变的元件,使用时将其牢固粘贴在构件的测点上;构件受力后测点产生应变,敏感栅也随之变形、电阻发生变化,再用专用仪器测出电阻变化,并换算成测点的应变值。金属电阻应变片品种和形式繁多,包括丝式电阻应变片和箔式电阻应变片。箔式电阻应变片是基于应变—电阻效应制成的敏感元件,以金属箔作为敏感栅,可将试件的应变变量转换为电阻变化。

1.3 比例测量原理

主要优势:传感器供电与ADC基准共用同一激励源。

传递函数:数字输出码 ∝ (Vsensor / Vexcitation) × 增益

误差抵消机制:激励电压漂移会同时影响传感器输出和基准电压,在比值计算中相互抵消;温漂、电源噪声等共模误差被消除。

2. 硬件电路设计

  1. 电路连接说明
  • 数字输入输出引脚(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-161集成PGA的24位Δ-Σ ADC
输入滤波电阻R17=R18=1KΩ,08052限流保护、滤波
输入差分电容C2=100nF, X7R,50V,08051差分噪声滤波
输入共模电容C1=C3=10nF, X7R,50V,08052共模噪声抑制
去耦电容C7=C8=100nF, X7R,16V,06032低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

  1. PGA_BYPASS

电桥传感器输出仅10~20mV,若不进行放大,就无法发挥24位ADC的精度优势。

要使用增益(如64、128), 必须关闭旁路 → PGA_BYPASS_OFF

SSP1x20_MUX_AIN3_AIN2

  1. MUX差分通道选择

惠斯通电桥输出为差分信号,必须使用差分输入模式,确保传感器正输出接AIN3、负输出接AIN2,并在软件中选择对应的差分对。

SSP1x20_VREF_REF0 // 即 REFP0-REFN0

  1. VREF基准源
  • 实现 比例测量的核心!
    •  将REFP0连接到传感器激励电压的正端(例如AVDD或EXC+)。
    • REFN0连接到激励电压的负端(GND)。

→ 即使电源发生波动,ADC满量程与传感器输出也按同一比例变化, 读数保持不变.

  •  错误接法的后果:
    若使用内部基准或固定VREF,电源纹波将直接转化为重量误差。

SSP1x20_DR_20SPS

  1. 数据速率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值

本系统通过 去皮清零 + 线性校准实现高精度电桥测量。核心在于:

正确的硬件电桥结构 + 合理的软件校准流程 = 可靠的重量输出

只需确保:

  1. 电桥能产生有效的差分电压,
  2. 去皮清零与校准步骤顺序正确,
  3. 比例系数与实际物理量匹配,

即可在模拟或真实传感器场景下稳定工作。

5. 常见问题与解决办法

现象可能的原因解决办法
读数始终为零未去皮清零 / 传感器未供电检查激励电压,执行tare()。
数据剧烈跳动电源噪声大 / 接地不良加强电源滤波、采用单点接地
显示负值AIN+与AIN-接反对调传感器OUT+与OUT-
读数饱和(最大值)输入超量程 / 增益过高降低增益或检查传感器电阻
温漂严重未做温度补偿 / 供电不稳定改用比例测量,避免使用外部VREF

 

完整代码可通过联系我们的技术支持获取。联系电话:+8618014203727