☰
传感器入门:分类、原理与温度采集链路实战
2026/10/29 16:34:16 网站建设 项目流程

先说个现场的事。几年前跟一个做恒温测试箱的项目,样机装完,温度读数和标准表差了两度多,而且越往高温段偏得越厉害。硬件同事第一反应是传感器坏了,换了两支新的,曲线几乎没变。后来顺着线缆查,问题出在三处:两线制接线带来的线阻、热电偶冷端没有做补偿、前端放大倍数按理论值算但电阻用了5%精度。这三件事没有一件是"传感器"本身的锅,但表现出来全是"传感器不准"。

传感器基础入门这件事,绕不开分类、核心原理、常见应用这三块,但真正让新手卡住的往往不是背不下分类表,而是站在选型表前面不知道从哪一栏开始看。我理解的入门,是能拿到一个测量需求,快速判断该用哪一类传感器、输出信号怎么接、精度够不够、现场会不会出问题。这篇文章就是按这个顺序写的:先讲清楚传感器在系统里的位置,再把分类拆成"查表时真好用"的几个维度,然后挑几类最常用的讲透物理机制,接着是信号调理和ADC这些容易被跳过但决定成败的环节,最后给一条完整的温度采集链路实操和一份排查速查表。刚入行的硬件、嵌入式、自动化方向的读者应该都能直接拿去用。

1. 先搞清楚传感器在系统里到底是什么角色

1.1 从一次"读数偏高两度"的现场说起

那次排查让我印象很深。标准表显示80.0℃,我们的系统读82.3℃。拆开看链路:传感器是两线制铂电阻,线长大概十五米,用的是普通0.5平方铜线,来回三十米,按每米0.0175Ω估算,回路多出0.5Ω左右。铂电阻在100℃附近每摄氏度大约变化0.385Ω,0.5Ω的额外电阻折算下来就是1.3℃的偏差。剩下的偏差来自热电偶那一路的冷端,接线端子直接压在机箱上,机箱温度比室温高五六度,冷端补偿按室温算,又偏了将近一度。

这个案例说明一件事:传感器给出的从来不是"被测物理量"本身,而是一个经过敏感元件、转换元件、信号调理电路、线缆、采集前端层层传递之后的电信号。中间任何一环引入误差,最后都会被记在"传感器不准"这个账上。所以我一直建议新手在动手之前,先把整条链路的误差来源列一遍,而不是只盯着传感器的精度指标。

顺带说一个判断技巧:如果偏差是固定偏移,多半是零点或冷端问题;如果偏差随被测量线性增长,多半是灵敏度或标定问题;如果偏差随环境温度变化,多半是温漂或者线阻的温度系数在作怪。这三条经验能帮你把排查范围砍掉一大半。

1.2 传感器的三件套:敏感元件、转换元件、信号调理

教科书上把传感器拆成敏感元件和转换元件两部分,实际产品里通常还有第三块:信号调理。这三块对应三个不同的失效模式,分开理解很有必要。

敏感元件负责"感知"。它的任务是把温度、压力、光强这类物理量转换成某种可测量的中间量,比如电阻变化、电荷积累、电容变化。敏感元件的短板通常是非线性和一致性,同一批次的两支NTC,B值可能差几十,换一支就得重新标定。

转换元件负责"变成电信号"。应变片靠电阻变化,压电陶瓷靠电荷输出,热电偶靠塞贝克效应直接出毫伏电压,光电二极管靠光生电流。这一环的短板是微弱,满量程输出常常只有几毫伏甚至几微伏,非常容易被噪声吞掉。

信号调理负责"整理成能被采集的样子"。放大、滤波、线性化、隔离、转换成4-20mA或者数字总线。这一环的短板是设计质量参差不齐,便宜模块和好模块的差距很多时候就在这一块,而不是传感器本体。

理解了这三层,你在看数据手册的时候就知道哪些指标是本体决定的,哪些是模块决定的。比如一个温湿度模块标称湿度精度±2%RH,这个数字往往包含了调理电路和出厂标定的贡献,而不只是湿敏电容本身的水平。

1.3 选型时最先问自己的四个问题

我在选型表上翻来覆去这么多年,最后浓缩成四个问题,按顺序问下来能排除掉八成不合适的选项。

第一个问题:测什么量,量程多大。量程不是"够用就行",而是要留出余量。压力传感器长期工作在满量程的80%以上,蠕变和疲劳会明显加速;但余量留太大,比如实际只用满量程的5%,那有效分辨率就被浪费了。我的习惯是把正常工作点放在满量程的30%到70%之间。

第二个问题:精度要求多少,允许多大的不确定度。这里要区分"分辨率"和"精度"。一个24位ADC理论上能分辨到微伏级,但如果传感器本身的重复性只有0.5%,那多出来的位数只是在放大噪声。精度由最弱的一环决定,链路里最差的那个环节定了天花板。

第三个问题:现场环境什么样。温度范围、湿度、粉尘、油污、振动、电磁干扰、腐蚀性介质、是否需要防爆。这些问题会直接否掉一批方案。比如车间里有变频器和大功率电机,那模拟电压输出基本不用考虑了,老老实实上4-20mA或者差分总线。

第四个问题:信号给谁,接口怎么接。是给PLC、给单片机、给采集卡,还是走无线。接口决定了你是选带调理的成品模块,还是选裸敏感元件自己设计前端。新手最容易在这里踩坑:买了个裸的热电偶,以为接上ADC就能读,结果发现还得自己搞冷端补偿和放大。

把这四个问题的答案写在纸上,再去翻选型表,效率完全不一样。

2. 传感器分类:别按课本背,按用的时候怎么查

2.1 按被测量分类:物理量、化学量、生物量

这是最传统也最直观的分法,好处是查资料时对着目录找就行。

物理量是最大的一类,包括温度、压力、力、扭矩、位移、速度、加速度、流量、液位、光强、磁场、声压。工业现场九成以上的传感器都在这类里。

化学量包括气体浓度、pH值、离子浓度、湿度(严格说湿度也算物理量,但检测原理常常涉及化学过程)。这类传感器的共性是寿命有限、需要定期标定、交叉干扰明显。一支电化学一氧化碳传感器,两三年后灵敏度下降是正常现象,不是质量问题。

生物量包括酶、抗体、微生物、DNA等,多见于医疗和食品检测。这类传感器对使用环境要求苛刻,往往是一次性或需要冷链保存,普通工程项目很少碰。

对新手来说,按被测量分类的主要价值是建立检索路径:知道要测什么,就知道去哪个大类里找。

2.2 按输出信号形式分类:模拟、开关、脉冲、总线

这个维度才是真正影响你电路设计和代码结构的。我在实际项目里更看重这一层。

输出类型典型形式优点短板常见场景
模拟电压0-5V、0-10V、0.5-4.5V接口简单,直接进ADC抗干扰差,长线衰减板级、短距离
模拟电流4-20mA、0-20mA抗干扰强,断线可检测需要采样电阻,功耗略高工业现场
开关量NPN/PNP、干接点、继电器便宜,直接进IO只有通断,无连续信息限位、计数
脉冲频率方波、频率随被测量变化抗干扰好,易隔离需要定时器或捕获流量计、转速
数字总线I2C、SPI、UART、RS485、CAN多参数、可寻址、带诊断协议复杂,需要处理时序模块化产品

4-20mA之所以在工业里活得这么久,核心原因是它在电流环路上传输,线路上的分布电阻不影响读数(只要环路总阻值在驱动能力内),而且0mA可以判定为断线,这是电压信号做不到的。

2.3 按接线方式分类:两线、三线、四线

这个分类看似琐碎,实际上直接决定你的误差水平,尤其是电阻型传感器。

两线制最简单,两根线既是供电也是信号。缺点非常明确:线缆电阻直接串进测量回路。铂电阻用两线制,线阻加多少,读数就偏多少,前面那个两度的案例就是这么来的。

三线制是在电阻体一端引出两根线,配合恒流源和差分测量,可以抵消掉大部分线阻。工业铂电阻基本都用三线制。它假设两根引线电阻相等,如果线径不一致或者接触电阻不同,还是会有残差,但比两线制好一个数量级。

四线制是开尔文接法,两根线通电流,两根线测电压,电压线上几乎没有电流流过,所以线阻完全不影响读数。精度要求高的场合(比如实验室、计量、应变测量)就该用四线制。

选型时一个很实用的判断:测量量本身的相对变化量如果和线阻引起的相对变化量在同一量级,就必须上三线或四线。铂电阻从0℃到100℃,阻值只变化38.5%,线阻在这里就是实打实的误差来源。

2.4 按是否需要外部激励分类:无源与有源

无源传感器自己会产生电信号,不需要外部供电。热电偶靠温差发电,压电陶瓷受力产生电荷,光电二极管受光产生电流,磁电式转速传感器靠线圈切割磁感线。这类传感器的一个共同特点是输出能量很低,后级必须高阻抗输入,否则信号被"吸走"。

有源传感器需要外部激励才能工作。铂电阻需要激励电流,应变片需要桥压,电容式传感器需要激励信号,霍尔元件需要偏置电流。有源的好处是输出幅度可以通过激励强度调节,坏处是激励源的精度和稳定性会直接进入测量结果。

这一点很容易被忽略。用恒压源给铂电阻供电,激励电流随温度变化,自热效应随之变化,读数就会漂。所以正经的做法是用恒流源,电流恒定,输出电压和电阻严格成正比。这类"看起来是细节"的地方,往往就是模块和模块之间差几倍价格的原因。

3. 核心原理:几类最常用传感器的物理机制

3.1 电阻式:应变片、热电阻、湿敏电阻

电阻式的共同逻辑很简单:被测量变化导致电阻变化,测量电阻就反推出被测量。难点在于电阻变化量通常很小,需要精心设计前端。

应变片的原理是金属丝受拉伸时长度增加、截面积减小,电阻变大。关系式是 ΔR/R = K·ε,K是灵敏系数,金属箔应变片大约2,半导体压阻式能到100以上。用350Ω应变片、5V桥压,满量程应变1000微应变时,输出大约 5V × 2 × 1000e-6 = 10mV。10mV要送进3.3V量程的ADC,不放大根本没法用,一般要放大200到500倍。这也是称重传感器模块里那颗运放存在的意义。

热电阻以铂电阻为代表,0℃时100Ω,100℃时138.51Ω,平均每摄氏度0.385Ω。它的优点是线性好、长期稳定性好、可互换;缺点是阻值变化小、有自热效应、怕振动。热敏电阻(NTC)阻值变化大、便宜、灵敏度高,但严重非线性,而且一致性差,必须逐支标定。NTC用B值公式描述:R = R0 × exp(B × (1/T − 1/T0)),B值典型3950,这里的温度必须是开尔文。

湿敏电阻靠高分子材料吸湿后离子导电性变化,阻值随湿度下降。它便宜但有迟滞和漂移,长期泡在高湿环境里会失效,工业上现在更多用湿敏电容。

3.2 电容式:接近检测、压力、加速度都靠它

电容式的基本公式是 C = ε·S/d,介电常数、极板面积、极板间距三个量里任意一个变化,电容就变。这一个公式撑起了非常多的产品。

电容式接近开关:手指靠近时改变了极板间的介质和边缘电场,电容增加,检测电路把这个变化转成开关量。检测的分辨率可以做到飞法级,所以隔着几毫米的塑料外壳也能感知。

电容式压力传感器:一层薄膜作为可动极板,压力让它变形,间距d变化,电容变化。这种结构灵敏度高、功耗低,MEMS压力传感器里很常见。

电容式加速度计:质量块两侧各有一组梳齿电极,加速度让质量块偏移,一侧电容增大另一侧减小,差分量正比于加速度。这个差分结构能很好地抵消共模温漂,是MEMS加速度计能做到几毫克分辨率的关键。

电容式的通病是容易受环境湿度和寄生电容影响,所以PCB布局上要特别小心,敏感走线要短、要 guard ring 包围、要远离其他信号。

3.3 压电与热电:动态测量是它们的专长

压电式利用某些晶体(石英、PZT陶瓷)受力时表面产生电荷的效应。它的特点是只能测动态量。因为电荷会通过后级输入阻抗和材料自身漏电慢慢泄放,静态力产生的电荷留不住,读数会衰减到零。所以压电传感器适合测振动、冲击、动态压力,不适合测静态重量。

后级必须用电荷放大器,把电荷转成电压,本质是一个高输入阻抗的反相积分器。用普通运放直接接压电片,信号会被输入阻抗吃掉,测出来几乎没反应。

热电式包括热电偶和热堆。热电偶是两种不同金属焊接,两端有温差就产生电动势,K型热电偶大约41微伏每摄氏度。它的优点是测温范围宽(可以到上千度)、响应快、结构简单、耐振动;缺点是输出极小、必须做冷端补偿、非线性需要查表或多项式拟合。

冷端补偿这件事新手经常忽略。热电偶测的是热端和冷端的温差,不是绝对温度。如果冷端就在室温环境里,那必须测出冷端温度再加回去。很多便宜的采集板不测冷端,直接按25℃固定值补,环境温度一变就偏。

3.4 光电与霍尔:非接触测量的两大主力

光电式涵盖面很广。光敏电阻阻值随光强下降,简单便宜但响应慢、有记忆效应;光电二极管输出光生电流,线性好、响应快,配合跨阻放大器可以得到正比于光强的电压;光电开关靠遮挡判断有无;ToF传感器通过测量光的飞行时间得到距离;光电编码器通过码盘遮挡产生AB相脉冲,用于测转速和角度。

用光电二极管时有个常见坑:光电流方向。光电二极管在光伏模式下输出电流方向与光强成正比,但在光导模式下需要反偏,两种接法的电路完全不同,接错了波形就是反的或者根本没信号。

霍尔式基于霍尔效应:电流沿半导体薄片流过,垂直方向加磁场,载流子受洛伦兹力偏转,在侧面产生霍尔电压 VH = KH × I × B。线性霍尔可以测磁场强度,配合磁环可以测转速,配合聚磁环可以做成电流传感器——测导线周围的磁场就等效于测电流。

霍尔电流传感器的好处是隔离测量,被测回路和输出回路没有电气连接,这在大电流场合非常重要。闭环霍尔比开环贵,但线性度和温漂都好得多,因为闭环用补偿绕组把磁芯磁通拉回零,避开了磁芯的非线性区。

3.5 MEMS:把机械结构做在硅片上

MEMS是Micro-Electro-Mechanical System,本质上是用半导体工艺在硅片上刻出可以动的微机械结构。它不是一个单独的传感器门类,而是一种制造方式,加速度计、陀螺仪、压力传感器、麦克风、气体传感器都能用MEMS做。

MEMS加速度计的核心是一个悬空的硅质量块加梳齿电容,前面讲过。MEMS陀螺仪靠科里奥利力:驱动质量块做高频振动,绕轴旋转时产生垂直于振动方向的科氏力,检测电容测出这个位移,就得到角速度。MEMS麦克风是硅振膜加背极板构成电容,声压让振膜振动。

MEMS的优势是体积小、成本低、可批量、易集成,短板是精度和长期稳定性不如传统机械结构。消费级加速度计的零偏可能在几十毫克量级,而工业级的能好一到两个数量级,价格差距摆在那里。

用MEMS器件要注意一点:零偏需要现场校准。出厂标定是在特定条件下做的,焊到板子上、装进外壳里,应力变化会让零偏跑掉。加速度计做倾角测量时,如果不做现场零位标定,几度的静态误差很常见。

4. 模拟链路的硬功夫:信号调理与ADC前后那点事

4.1 三种基本前端:分压、电桥、恒流源

分压电路最简单,一个上拉电阻和一个可变电阻串联,中间取电压。NTC热敏电阻、光敏电阻都用这个。缺点是输出对被测电阻是非线性的,而且上拉电阻的精度直接影响读数。设计时要让上拉电阻等于被测电阻在工作点附近的几何平均值,这样灵敏度分布最均匀。

惠斯通电桥用于测微小电阻变化,应变片和压力传感器标配。四个臂,一个或多个是敏感元件,输出是差分电压。满量程输出常用"mV/V"表示,意思是每伏桥压对应的毫伏数。2mV/V的传感器配5V桥压,满量程输出就是10mV。电桥的优势是差分输出天然抑制共模温漂,四个臂同温变化时输出不变。

恒流源用于铂电阻这类需要严格线性关系的场合。1mA恒流流过PT100,0℃时输出100mV,100℃时输出138.51mV,电压和电阻完全成正比。恒流源的精度直接变成测量精度,所以要用低温漂的基准源加运放搭建。

这里有个必须算清楚的参数:自热效应。1mA流过100Ω电阻,功耗是 I²R = 0.1mW。这个功率会让敏感元件自身升温,在静止空气中温升可能有零点几度。如果测量要求到0.1℃,那就得减小激励电流,或者采用脉冲激励。

4.2 放大、滤波、屏蔽与接地:噪声从哪来

微弱信号放大最容易出问题,我总结成三句话:放大倍数分配要前置、滤波要放在放大之后、屏蔽和接地必须单点。

放大倍数不能一次性给到500倍,否则带宽会塌得很厉害,噪声也一起放大。通常是第一级仪表放大器给20到50倍,第二级再给10倍。第一级用仪表放大器是因为它输入阻抗高、共模抑制比好,能扛住电桥的共模电压。

滤波分模拟和数字两层。模拟侧用RC低通把高频噪声挡掉,截止频率按信号带宽的5到10倍设;数字侧用滑动平均或者一阶低通做二次清理。采样率按采样定理至少是信号最高频率的2倍,工程上取5到10倍,留足余量给滤波器。

接地是最容易被低估的环节。模拟地、数字地、功率地不能乱连,通常做法是各自铺铜,在ADC芯片下方单点连接。屏蔽线只在一端接地,两端接地会形成地环路,反而引入干扰。这套东西说起来老生常谈,但现场九成的噪声问题都能在这几条里找到答案。

4.3 ADC选型:位数、有效位数和参考电压

ADC选型最容易犯的错是只看位数。一个标称16位的ADC,有效位数(ENOB)可能只有13位,剩下三位是噪声。数据手册里如果有ENOB或者有效分辨率曲线,一定要看。

第二个容易犯的错是忽略参考电压的精度。ADC的转换公式是 数字量 = 输入电压 / 参考电压 × 满量程码值。参考电压如果漂了1%,读数就漂1%。所以精密测量要用外部基准,而不是直接用电源电压。电源电压作为参考,纹波和负载变化会原封不动地进入测量结果。

第三个容易犯的错是忽略输入阻抗。SAR型ADC在采样瞬间需要一个充电电流给内部采样电容充电,如果前级源阻抗太高,采样电容充不满,读数会偏低。解决办法是在ADC前面加一级运放做缓冲,或者选内置缓冲器的型号。这一点在测高阻抗信号(比如分压电路上拉电阻取得很大)时特别关键。

算一个具体例子。12位ADC,参考5V,1个LSB对应 5/4096 ≈ 1.22mV。如果测的是4-20mA经250Ω采样电阻得到的1-5V信号,那么 4V量程对应4096个码,每码对应 4V/4096 ≈ 0.977mV,折算成电流是 0.977mV/250Ω ≈ 3.9微安。20mA满量程除以3.9微安,理论分辨约4096分之一,看起来不错。但如果这个电流信号对应的是0到100℃的温度,那单码对应温度 100/4096 ≈ 0.024℃,理论分辨率够用,实际精度则完全由传感器和采样电阻的精度决定。

4.4 两个必须会的参数计算

第一个:PT100的ADC分辨率够不够。假设还是12位ADC、5V参考、1mA恒流激励。PT100在0℃时100mV,100℃时138.51mV,跨度38.51mV。5V参考下1个LSB是1.22mV,那38.51mV只能分出大约31个码,对应100℃量程,单码就是3.2℃。这个分辨率对温度控制完全不够。解决办法要么换24位ΔΣ ADC,要么先放大再采集(比如放大50倍,38.51mV变成1.93V,12位下能分出约1560个码,单码0.064℃)。这个计算是所有温度采集设计的第一步,跳过它直接画板子,后面一定返工。

第二个:NTC分压电阻怎么选。假设NTC在25℃时10kΩ,B值3950,工作范围0到100℃。上拉电阻取10kΩ时,25℃输出是电源的一半,灵敏度在这一点附近最高,但0℃时NTC阻值约33kΩ,输出降到了电源的24%,100℃时NTC约0.97kΩ,输出是电源的9%。为了在两端都有合理分辨率,上拉电阻取10kΩ是常见折中。如果要更均匀的响应,可以对分压结果做对数变换或者查表线性化。

顺便说一句,NTC的B值公式在宽温区误差不小,要求高的场合要用Steinhart-Hart三项式:1/T = A + B·ln(R) + C·(ln(R))³,三个系数靠三点标定解出来。

5. 实操:从零搭一条温度采集链路

5.1 硬件选型和接线

这个例子用三线制PT100,要求0到200℃测量,误差目标±0.5℃。链路是:PT100三线 → RTD专用前端(内置恒流激励和差分放大) → 24位ΔΣ ADC → 单片机。

选三线而不是两线,是因为200℃时PT100阻值约175.86Ω,线阻0.5Ω相当于1.3℃误差,两线制直接不达标。选专用前端而不是自己搭恒流源,是因为集成的匹配电流源和差分放大器能省掉大量调试时间,而且内部有断线和短路检测。24位ADC看起来奢侈,但实际有效位大概18位左右,留给标定和滤波的余量刚刚好。

接线上的两个硬要求:一是三根引线必须用同规格、同长度,且尽量走同一根线缆,这样温度变化时三根线的阻值同步变化,共模抵消;二是屏蔽层接机壳,只在采集端接地。现场如果有变频器,信号线必须和动力线分开走,交叉时垂直交叉,平行走线距离至少留30厘米。

PCB布局上,RTD前端到接端子的这段走线要短、要对称,两颗差分输入走线等长。基准电阻(决定了激励电流大小)要用低温漂的金属膜电阻,温漂控制在25ppm/℃以内,这个器件选错,整个系统的温漂就白做了。

5.2 固件侧的采样和滤波

采样率定在10Hz,对温度这种慢变量远远够。滤波分三层:中值滤波去脉冲、一阶低通平滑、最后做标定换算。

#define ALPHA 0.15f /* 一阶低通系数,截止频率约0.25Hz(10Hz采样) */ #define MED_N 5 /* 中值滤波窗口 */ static float s_lpf = 0.0f; static float s_buf[MED_N]; static uint8_t s_idx = 0; /* 中值滤波:去掉偶发的尖峰,常见于电机启停、静电放电时刻 */ static float median_filter(float x) { s_buf[s_idx] = x; s_idx = (s_idx + 1) % MED_N; float tmp[MED_N]; for (int i = 0; i < MED_N; i++) tmp[i] = s_buf[i]; /* 插入排序,5个元素足够快 */ for (int i = 1; i < MED_N; i++) { float key = tmp[i]; int j = i - 1; while (j >= 0 && tmp[j] > key) { tmp[j + 1] = tmp[j]; j--; } tmp[j + 1] = key; } return tmp[MED_N / 2]; } /* 一阶RC低通:y += a * (x - y) */ static float low_pass(float x) { s_lpf += ALPHA * (x - s_lpf); return s_lpf; } float read_temperature(void) { float raw = adc_read_rtd_ohms(); /* 前端换算出的电阻值 */ float f = median_filter(raw); f = low_pass(f); return calib_apply(f); /* 两点标定换算成摄氏度 */ }

这里有几个参数要解释清楚。ALPHA取0.15,对应的时间常数大约是 1/(2π×0.25Hz) ≈ 0.64秒,也就是阶跃响应到63%要0.64秒。这个响应速度对一个恒温箱够用,但如果要测快速变化的温度,就得把ALPHA调大,代价是噪声变大。响应速度和噪声是一对必须权衡的矛盾,不存在两个都最优的取值。

中值窗口取5,能吃掉连续4次以内的异常点。如果现场干扰更密,可以拉到7或9,但每次都要多排几个样本,延迟也会增加。

5.3 标定:两点标定和分段线性化

出厂标定只能保证器件本身的一致性,装到板子上、接上长线之后,系统误差必须现场标定。做法是把探头和标准温度计一起放进恒温槽,至少取冰水混合物(0℃)和沸水(约100℃,按当地气压修正)两个点,或者直接取工作范围的低温和高温两端。

两点标定的公式很朴素:

k = (T2 - T1) / (R2 - R1) b = T1 - k * R1 T = k * R + b

R1、R2是实测电阻或ADC原始码值,T1、T2是标准表读数。这样做能同时修掉增益误差和零点误差。如果非线性明显(比如用了宽温区的NTC),就在中间再插一到两个点,做分段线性:每个区间用各自的k和b,判断区间按原始值落在哪一段。

标定的实操细节:每个点至少等五分钟热平衡,读数取一分钟的平均值,而不是抓一次。恒温槽的均匀性也要注意,探头和标准表的位置要尽量靠近,否则测的是两个不同的温度。标定完把k、b和标定日期写进EEPROM,后面现场返修可以直接读出来看有没有动过。

5.4 数据验证和现场记录

标定完不能就这么交差,还要做三项验证。

第一项:重复性。同一个温度点来回测五次,看极差。如果极差大于目标误差的三分之一,说明噪声或漂移还压不下去,得回去查滤波参数或者激励源。

第二项:回程一致性。从低温升到高温,再从高温降回低温,同一温度点两次读数之差就是迟滞。铂电阻本体的迟滞很小,如果测出来偏大,八成是热传导路径的问题,比如探头没插到底、导热硅脂干了。

第三项:长时间漂移。放在固定温度点上连续跑八小时,看读数有没有缓慢爬升。有爬升通常是自热效应或者环境温度影响了前端基准,这时候要把激励电流降下来或者给基准加恒温措施。

现场记录我习惯用一个简单的表,把每个样本的时间、标准表读数、系统读数、偏差记下来。这份记录后面查问题时非常有用,尤其是那种"偶尔偏一下"的疑难杂症,靠回忆根本说不清。

6. 常见应用场景拆解

6.1 工业现场:4-20mA、总线和隔离

工业现场的第一原则是抗干扰优先于精度。车间里变频器、伺服、接触器一堆,电磁环境比实验室恶劣得多。所以现场传感器主流输出是4-20mA和RS485/CAN这类差分总线,模拟电压基本只在控制柜内部用。

4-20mA的接线要点:采集端用250Ω精密电阻转成1-5V,这个电阻的精度直接进误差预算,至少用0.1%的;环路总阻值要算清楚,24V供电下(24V − 最低工作电压)/ 20mA 就是允许的最大环路电阻,超过这个值传感器就带不动了。常见的两线制变送器最低工作电压12V,那 (24−12)/0.02 = 600Ω,扣除采样电阻250Ω还剩350Ω,线缆电阻只要不超过这个数就没问题。

RS485要注意的是终端电阻和共模电压。长距离通信两端各接120Ω终端电阻,中间节点不要接。如果设备之间地电位差大,差分收发器可能超出共模范围,这时候需要加隔离。CAN总线更严格,终端电阻、拓扑、支线长度都有规定,随便拉星形拓扑很容易通信不稳。

隔离这个问题我在项目里踩过坑。一次现场两块板子分别由不同的开关电源供电,地电位差有几伏,模拟信号接过去之后读数一直跳,加了隔离放大器就干净了。只要信号的参考地和采集端的参考地不共地,就必须考虑隔离,这不是可选项。

6.2 消费电子和可穿戴:低功耗是第一约束

消费类产品的设计逻辑完全不同,功耗和成本压倒一切。一颗纽扣电池要撑一年,那平均电流得控制在微安级。

这类场景的典型做法是:传感器选低功耗型号,采集时唤醒,采完立刻休眠,用MCU的定时器或者传感器的中断引脚来触发。加速度计做计步时不用一直开着,而是配置运动唤醒阈值,只有超过阈值才产生中断唤醒MCU。

可穿戴设备上的PPG心率传感器是个好例子。它用绿光LED照射皮肤,光电二极管接收反射光,血容积变化导致吸收率变化,光电流随之波动。难点在于运动伪影,戴着手表跑步时,手臂晃动产生的信号幅度可能远大于心率信号本身,所以需要加速度计做参考,用自适应滤波把运动分量减掉。这也是为什么早期手表的运动心率经常不准。

消费类的另一个特点是标定成本敏感。工厂不可能给每台设备做多点标定,所以往往采用出厂一次性标定加软件补偿,精度目标定在"体感正确"而不是计量级。

6.3 汽车和新能源:可靠性和功能安全

车规传感器的要求和消费级完全是两个世界。温度范围从零下40℃到125℃甚至更高,要抗振动、抗盐雾、抗电磁兼容测试,寿命要求十五年。功能安全还要求传感器能自诊断,出问题时能报出来而不是悄悄给个错值。

动力电池包里用的温度传感器典型是NTC,每几个电芯配一支,采集板做多点扫描。这里的设计要点是开路和短路检测。NTC开路时读数是负无穷大温度,短路时是正无穷大,固件必须能识别这两种状态并上报故障,否则BMS可能把一个失效通道当成正常值继续用,后果很严重。

电流检测在新能源里用霍尔或者分流器。分流器精度高、成本低,但要做隔离;霍尔天然隔离,但温漂和零偏需要补偿。实际产品里两种都有,看具体位置和精度要求。

车规传感器选型时,数据手册里的AEC-Q系列认证是硬门槛,没有这个认证基本不用考虑量产。这一点和消费电子完全不同,消费类更看价格和供货。

6.4 农业、环境和家居:长期无人值守的考验

这类场景的特点是部署分散、维护困难、要求长寿命。一支土壤湿度传感器埋在地里,可能一埋就是一年,中间没人管。

土壤湿度常用的是电容式或者频域反射式。电阻式(两根电极通电测电阻)最便宜,但电极会电解腐蚀,几个月就废了,而且土壤盐分变化会直接影响读数。电容式的探针不直接接触土壤导电,寿命长得多,但需要做土壤类型的标定,因为不同土质的介电常数差别不小。

空气质量检测里,PM2.5常用激光散射,原理是颗粒物经过激光束产生散射光,光电二极管接收散射强度,反推浓度。这类传感器的难点是长期漂移,光学腔里积灰会让读数虚高,所以正经产品都要加风扇做鞘气保护,或者设计可拆卸清洁结构。

家居场景的传感器更看重免维护和误报率。一个红外人体感应器如果误触发太多,用户直接把它关了。所以PIR传感器的设计里,菲涅尔透镜的形状、延时时间、灵敏度档位、光照阈值这些参数都要调,单纯堆硬件没用。

7. 常见问题与排查速查

7.1 数值跳动、漂移、卡死三类现象怎么分

数值跳动通常指向噪声。先看跳动的频谱特征:如果是50Hz工频干扰,多半是接地或者屏蔽问题;如果是随机白噪声,那是热噪声或者量化噪声,靠滤波和平均解决;如果是偶发尖峰,找附近的继电器、电机、静电放电源。

缓慢漂移通常指向温度或者应力。检查三件事:基准源的温度系数、敏感元件是否受到安装应力、以及是不是有自热。有个很简单的判别方法:用手摸一下传感器外壳或者前端芯片,如果读数立刻跟着变,那就是温漂路径没处理好。

数值卡死最危险,因为系统看起来在正常工作。常见原因是通信断了但协议层没做超时检测,固件一直在读缓存里的旧值;或者是ADC输入饱和,一直输出满量程码;或者是浮点数溢出变成了NaN,显示逻辑没处理。凡是采集程序,必须有合理性检查:值是否在物理可能范围内、变化率是否合理、通信是否超时。这三条能挡住大部分"假数据"事故。

7.2 干扰问题的排查顺序

我一般按这个顺序走,从便宜的检查开始,逐层深入。

第一步看现象是否与特定设备启停相关。如果变频器一启动读数就跳,那基本锁定传导或辐射干扰。

第二步查接地。用万用表量一下信号地和机壳地之间的电压,如果超过几百毫伏,说明有地电流,需要处理。信号地应该单点接机壳,不能多点。

第三步查线缆。信号线是否和动力线平行走了很长距离?屏蔽层接了几端?有没有用双绞?这三项改完,多数问题会明显改善。

第四步才是加硬件。加共模电感、加RC滤波、加隔离放大器、换差分传输。硬件手段有效但成本高,应该放在最后。

这里有个反直觉的经验:有时候把采样率降下来比加滤波器更有效。因为很多干扰是周期性的,降低采样率配合合适的采样时刻,可以让干扰落在被平均掉的区间里。当然这招要看干扰的性质,不能乱用。

7.3 长线传输和接地环路

长线传输的三个敌人是线阻、线容、地电位差。

线阻影响电阻型传感器,前面讲过,用三线或四线制解决。线容影响高频信号,长线相当于一个低通滤波器,脉冲信号会变圆、上升沿变缓,严重时通信误码。解决办法是降低速率或者用差分传输。

地电位差是模拟信号长距离传输最大的坑。两个设备分别接在不同的电源上,地线之间有电流流过,产生电位差。单端信号以地为参考,这个电位差会直接叠加到信号上。解决办法只有两个:一是隔离,二是改成差分或电流传输。

判断有没有地环路,可以临时断开一端的信号地(如果安全的话),看读数是否变化。如果变化明显,那就是地环路问题。这个测试要小心,不能在有高压的场合做。

7.4 排查速查表

现象最可能原因优先检查项处理手段
读数整体偏移固定值零点未标定、线阻、冷端补偿错误标定记录、接线方式、冷端温度两点标定、改三线制、测冷端
读数随温度线性偏移基准温漂、桥路温漂、灵敏度温漂基准器件温漂、电阻精度换低温漂器件、软件温度补偿
读数周期性波动工频干扰、电源纹波屏蔽接地、电源纹波单点接地、加RC滤波、换LDO
偶发尖峰继电器/电机启停、静电附近干扰源、TVS管中值滤波、加TVS和磁珠
读数卡死不变通信超时未检测、ADC饱和、数值溢出通信日志、原始码值加超时和范围检查、修饱和逻辑
高温端/低温端偏差变大传感器非线性未处理标定点分布、线性化方式分段线性、Steinhart-Hart
长线后信号变小线阻分压、线容衰减线径、线长、输入阻抗提高输入阻抗、四线制、差分传输
多台设备互相影响地环路、共模电压超限地电位差、共模范围加隔离、单点接地
上电后一段时间才准自热、热平衡未到激励电流、热设计降低激励、延时报稳
换一支同型号就偏一致性差、未逐支标定批次一致性、标定流程逐支标定、选高一致性型号

8. 几个踩过坑之后才明白的道理

干了这些年,我觉得传感器这块最容易走弯路的地方不在原理,而在顺序。很多人上来就研究哪家的芯片好、哪个方案先进,结果板子画完才发现量程选小了,或者分辨率根本不够。正确的顺序应该是先把量程、精度、环境、接口这四个问题定死,算出误差预算,再倒推需要多少位ADC、多大放大倍数、什么类型的传感器。误差预算这个动作花不了半小时,但能省掉几轮改板。

第二个体会是永远不要相信"应该没问题"。线阻"应该"很小、冷端"应该"接近室温、基准"应该"够准,这些"应该"在实验室里通常成立,到了现场全都不成立。我现在做设计,凡是可能引入误差的环节,一律实测一遍,哪怕只是拿万用表量一下。量完心里踏实,后面出问题也知道该往哪查。

第三个是标定这件事不能省,但要算清楚值不值。一支传感器做五点标定,成本可能是器件本身的好几倍。所以要先算:不标定的误差是多少,标定能挽回多少,客户能不能感知到这个差别。量级够用就出厂标定,不够就现场标定,别为了"看起来专业"上一堆没人维护的标定流程。

最后分享一个小习惯:我现在每做一个采集项目,都会在固件里留一个"原始值直出"的调试通道,能绕过所有滤波和标定,把ADC原始码值打印出来。这个通道平时关着,出问题时打开,能快速区分是传感器的问题还是算法的问题。这个习惯帮我省过很多次争论——数据摆在那里,谁也不用猜。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询