零位校准的基本概念

做嵌入式系统这么多年,我见过太多工程师在零位校准上栽跟头。说白了,零位校准就是让传感器在没有任何输入信号时,输出一个已知的、稳定的基准值。这个基准值,就是咱们常说的「零位」。

你想想看,一个压力传感器在不通气的时候,ADC读数是2048还是2050?一个加速度计平放在桌面上,输出是0g还是0.01g?这些偏差如果不处理,后面的数据全是错的。

什么是零位?

零位,也叫零点、偏置。它指的是传感器在零输入条件下的理论输出值。

举个例子。一个12位的ADC,满量程是4095。理论上,输入0V时输出应该是0。但实际呢?我测过一批MEMS加速度计,平放时输出从-50到+50的都有。这就是零位偏差。

零位的本质:零位不是「0」,而是「基准」。校准零位,就是告诉系统:这个值代表「没有信号」。

零位校准的目标很简单——让传感器在零输入时,输出一个已知的、可重复的值。通常我们会把这个值映射到0,或者ADC的中间值(比如2048)。

零位漂移的原因

零位不是一成不变的。它会漂。为什么会漂?我归纳了三个主要原因。

1. 温度变化

温度对零位的影响最大。半导体器件的PN结电压会随温度变化,电阻值也会变。我记得有一次做工业压力变送器,常温下零位很稳,一到60℃就偏了30个LSB。查了半天,是运放的温漂。

温度引起的零位漂移,通常用ppm/℃来表示。比如一个传感器温漂是±50ppm/℃,环境变化10℃,零位就漂了0.05%。

温度范围 典型零位漂移 影响程度
-40℃ ~ 0℃ ±0.1% ~ ±0.5% FS 高
0℃ ~ 50℃ ±0.05% ~ ±0.2% FS 中
50℃ ~ 85℃ ±0.1% ~ ±0.3% FS 高

2. 老化效应

元器件会老化。电阻值会变,电容会漏电,晶体管的特性会偏移。我见过一个项目,传感器出厂时零位很准,用了半年后偏了2%。客户投诉,我们查了三个月,最后发现是参考电压芯片老化了。

老化引起的漂移是缓慢的、不可逆的。通常以年为单位变化。我个人习惯在产品的生命周期内,至少做一次零位复校。

3. 应力释放

这个很多人会忽略。PCB板在焊接后会有残余应力,安装螺丝拧紧后也有应力。这些应力会通过封装传递到传感器芯片上,改变其机械结构,导致零位偏移。

我曾经遇到过一批加速度计,刚焊好时零位很正,放了一晚上后偏了0.5g。后来发现是PCB板变形了,应力释放导致传感器基座发生了微米级的位移。

避坑指南:我曾经在批量生产中吃过亏——同一批传感器,用不同扭矩的螺丝固定,零位能差出1%。后来我要求所有安装工序必须使用扭矩螺丝刀,扭矩公差控制在±5%以内。

零位校准与满量程校准的区别

很多新手会把零位校准和满量程校准搞混。其实它们干的是两件事。

零位校准,解决的是「没有信号时输出是多少」的问题。满量程校准,解决的是「有最大信号时输出是多少」的问题。两者合在一起,才构成完整的传感器校准。

对比项 零位校准 满量程校准
输入条件 零输入(如0压力、0加速度) 满量程输入(如10MPa、2g)
校准目标 消除偏置误差 消除增益误差
校准方法 读取零输入时的输出值,作为偏置 读取满量程输入时的输出值,计算增益系数
典型误差 ±0.1% ~ ±1% FS ±0.5% ~ ±2% FS
校准频率 每次上电或定期 出厂时或更换传感器时

说白了,零位校准是「找原点」,满量程校准是「定标尺」。原点找不准,后面的测量全是错的。标尺定不准,测量范围就不对。

我个人的习惯是:先做零位校准,再做满量程校准。顺序不能乱。因为零位不准,满量程校准算出来的增益系数也是错的。

注意:零位校准和满量程校准不是一次性的。温度变了、时间久了、应力释放了,都需要重新校准。很多产品出问题,就是因为只做了出厂校准,没有考虑长期漂移。

零位校准的核心逻辑

为了让你更直观地理解零位校准在整个传感器系统中的位置,我画了一张流程图。

零位校准核心逻辑流程图 传感器原始信号 ADC 采样 读取零位值(零输入时) 计算偏置值 输出校准后的值 关键点 • 零位值 = 实际输出 - 理论零位 • 校准后输出 = 实际输出 - 偏置 • 偏置 = 零位值(零输入时) 常见问题 • 零位漂移 → 需重新校准 • 噪声干扰 → 多次采样取平均 • 温度影响 → 温度补偿

这张图把零位校准的流程拆成了五步。从传感器原始信号开始,经过ADC采样,在零输入条件下读取零位值,计算偏置,最后输出校准后的值。每一步都有坑,每一步都需要仔细处理。