数字压力传感器HPSxxxGSF:MEMS感知、温度补偿与I2C排查

发布时间:2026/9/19 5:46:22
数字压力传感器HPSxxxGSF:MEMS感知、温度补偿与I2C排查 做过硬件的人都遇到过这种场面样机在实验台上数据漂亮得不像话零点稳在±2个LSB里一进温箱、或者装到客户现场跑了三个月读数就开始慢慢跑偏回头查原理图、查固件、查焊接一圈下来发现是压力传感器本身那颗MEMS感知单元在被板子应力、介质冷凝、还有补偿区间之外的温度一起欺负。这类问题在选了HPSxxxGSF这种数字压力传感器的项目里特别典型——因为它把MEMS膜片、信号调理ASIC、温度补偿系数、数字接口全都塞进了一个几毫米的封装里你拿到的是一条已经算好的I2C读数中间的物理过程被藏起来了于是出了问题也无从下手。这篇文章就围绕HPSxxxGSF这一类带MEMS感知单元的数字压力传感器展开把它的内部链路、规格书里真正决定成败的参数、板级落地的机械与电气细节、补偿算法与固件实现、以及不同工况下的验证方法讲清楚。型号里的xxx通常对应量程、封装和导压接口的配置编码不同配置的内部机理是一致的所以我讲的是通用逻辑你换成自己手上的具体型号一样能用。适合正在选型、正在画板、或者正在量产返修里挣扎的工程师也适合刚接触数字压力传感器、想搞明白为什么我的读数会飘的新手。1. 从一条I2C读数倒推MEMS感知单元内部发生了什么1.1 硅膜片上的惠斯通电桥是整条链路的物理起点先把最底层的东西说清楚。数字压力传感器的核心是一块用体微加工或表面微加工做出来的硅膜片膜片边缘通过扩散或离子注入形成四个压敏电阻接成惠斯通电桥。当两侧存在压差时膜片发生弯曲边缘区域产生拉应力和压应力压敏电阻的阻值随之变化电桥输出电压。这个输出非常小典型灵敏度在mV/V量级1V激励下满量程可能只有20~50mV。也就是说真正携带压力信息的东西是在微伏到毫伏级别的差分信号上而它旁边就是几十兆赫兹的数字时钟线这就是后面所有噪声和漂移问题的根源。膜片结构决定了传感器适合测什么。测量低压量程比如0~1kPa级的差压时膜片做得薄、面积大灵敏度高但对过压和组装应力极其敏感测量高压量程时膜片厚、面积小刚度大抗过压能力好。HPSxxxGSF这类产品通常会在同一平台上派生多个量程但膜片设计和ASIC增益配置是不同的所以不要以为换个型号号就只是改了个数字。另一个容易被忽略的点是电容式与压阻式的区别。压阻式线性度好、结构简单、温度系数相对容易补偿是工业与医疗数字压力传感器里的主流电容式灵敏度更高低压段表现更好但对寄生电容和封装应力更敏感。你在选型时如果看到某型号在极低压段的分辨率特别突出多半是走了电容路线相应的板级隔离要求也更高。1.2 从毫伏到I2C调理链路上的三次翻译ASIC内部做的第一件事是放大。可编程增益放大器PGA把毫伏级差分信号抬到ADC能舒服处理的量级同时用斩波或自动调零技术压掉放大器的1/f噪声和失调。这一步的增益是出厂标定的增益误差会被后面的系数补偿掉所以不要试图自己外接放大器——那只会把已经标定好的系统破坏掉。第二件事是模数转换。主流方案是24位或16位sigma-delta ADC采样率不高几十到几千SPS但对低频噪声抑制很好。注意24位是ADC的位宽不是有效分辨率。有效分辨率受膜片噪声、参考电压噪声、热噪声共同限制规格书里给出的压力分辨率或RMS噪声才是你真正能用的数值。实测中很多型号标称24位实际有效位数在16~19位之间对应到压力上可能是0.001%~0.01% FS量级。第三件事是补偿与输出。片内NVM里存着出厂标定时测得的系数——通常是温度多项式和压力多项式的组合运行时用内部温度传感器读数做二阶或三阶修正算出最终压力值再通过I2C或SPI送出。这一层的补偿质量决定了温度性能的上限也是同一颗MEMS芯片在不同厂家手里表现差异巨大的原因。1.3 数字接口本身就是误差预算的一部分很多人把数字接口当成纯逻辑觉得不会有误差。实际上接口影响误差的路径至少有三条。一是采样时刻的不确定性如果主机在转换周期未完成时读数据拿到的可能是上一次的结果或部分更新的数据。二是电源和地噪声通过接口翻转电流耦合回模拟前端尤其是I2C开漏输出在长走线上产生的振铃。三是读回的数据宽度选择某些型号支持低分辨率快速读取比如只取高16位如果你在需要高分辨率的场合用了快速模式会白白丢掉低位精度。我的做法是在系统误差预算表里专门留一行给接口与固件引入的误差量级估计为±0.02% FS同时在温箱里做一次连续读取一万次、记录极差的测试用实测值替换估计值。这一步花不了半天但能让你在后期排查时少走很多弯路。2. 规格书里最该盯的几行别被精度±0.1%骗了2.1 总误差带才是能直接拿来用的数字规格书上写精度±0.1% FS通常指的是25℃、恒定温度、理想电源条件下非线性迟滞重复性的合成值。这是实验室数字不是你的系统能拿到的数字。真正该看的是总误差带TEB它把零点误差、满量程误差、非线性、迟滞、重复性、零点温度漂移、灵敏度温度漂移、温度迟滞全部包在一起并明确给出温度区间。举个例子某型号标称精度±0.1% FSTEB在0~70℃区间是±0.5% FS在-40~125℃区间是±1.5% FS。如果你做的是医疗呼吸机工作温度只在15~40℃那用第二组数字做预算会过度保守、白白增加成本反过来如果你做的是户外液位监测-20℃的清晨和60℃的正午都在工作范围内用±0.1%做预算就是自欺欺人。指标含义常见取值你该关心什么精度Accuracy常温下非线性迟滞重复性±0.05%~±0.25% FS只作参考不能直接用于系统预算总误差带TEB全温区内的综合误差上限±0.25%~±2% FS直接决定系统精度优先看这个零点温漂TCO零点随温度的偏移±0.01%~±0.05% FS/℃温度跨度大的场合是主要误差源灵敏度温漂TCS满量程随温度的变化±0.01%~±0.03% FS/℃影响大压力段的绝对误差长期稳定性一年内零点/满量程的漂移±0.1%~±0.5% FS/年决定是否需要定期现场校准迟滞加压与减压路径的差值±0.05%~±0.1% FS往复控制的场合要重点关注2.2 温度补偿区间之外是一条悬崖几乎所有数字压力传感器都会明确标注补偿温度范围比如-20~85℃。区间内片内多项式补偿有效区间外补偿系数仍然是按区间端点外推的误差会迅速放大。我在一个冷链项目里见过这个坑传感器规格是-20~85℃补偿用在-30℃的冷库里读数在-25℃以下开始出现明显非线性偏差低温段误差超过3% FS而常温测试完全正常。应对方式有三种。一是选更宽补偿区间的型号代价是价格。二是加装局部加热把传感器本体维持在补偿区间内但加热会带来温度梯度和功耗问题腔内温度均匀性很难做好。三是自己在外挂MCU里做二次补偿用多点标定数据补上外推区间这需要你有可控温箱和压力源标定成本不低但如果量产后成本敏感、精度要求又高这条路是划算的。选择的关键是先算清楚超区间工作的时长占比如果全年只有几天可以放宽如果是常态那就必须处理。2.3 过压与爆破压力是完全不同的两个数字规格书上一般有三个压力值量程FS、最大过压Proof Pressure、爆破压力Burst Pressure。最大过压是指传感器在该压力下不会发生永久性性能改变的上限爆破压力是指壳体或膜片发生物理破坏的压力。这两者之间往往还有一档破坏性过压即超过后性能永久偏移但不漏气。工程上真正要守住的是最大过压。常见配置是量程的2~3倍作为最大过压5~10倍作为爆破压力。看起来余量很足但实际工况里的压力尖峰往往不是稳态值——水泵启停、阀门快关、气动回路切换都会产生水锤或气锤瞬时峰值可以是稳态值的3~5倍。这种情况下光看稳态量程选型是不够的必须测出系统的压力尖峰或者加装阻尼孔、缓冲腔、脉动阻尼器。我个人的经验值是如果系统里存在快速开关阀压力尖峰按稳态值的4倍估然后倒推需要的最大过压能力。2.4 长期稳定性和迟滞是装上去半年后才知道的事这两项在选型阶段最容易被忽略因为短期测试测不出来。长期稳定性通常以每年漂移表述典型值±0.1%~±0.5% FS/年但要注意这个数字往往是基于加速老化实验外推的实际表现和封装、介质、工作温度循环次数强相关。如果你的应用要求三年免校准选±0.1% FS/年的型号比选±0.5% FS/年的型号在三年后误差能差出1.2% FS这在精密液位或流量计量里是决定性差距。迟滞的影响则集中在往复控制场景。比如一个压力闭环系统加压到目标值再减压到目标值如果迟滞是±0.1% FS那么同一条设定曲线在两个方向上会给出0.2% FS的偏差控制器如果按单向标定就会在两个方向上出现系统性偏置。解决办法是在固件里做方向感知补偿或者干脆用单向逼近总是从低压侧升压到目标后者简单可靠是我更推荐的做法。3. 把HPSxxxGSF焊到板子上机械与电气落地的真实细节3.1 电源去耦和接地不是照抄参考设计就完事MEMS感知单元的输出在毫伏级任何耦合到模拟前端的电源纹波都会直接变成读数噪声。参考设计里通常给一颗0.1μF加一颗1μF的电容这在大部分情况下够用但如果你的板子上有开关电源、电机驱动、或者无线模块就需要更认真对待。我的做法分三层。第一层是供电隔离给传感器单独走一条LDO输出不要和其他数字负载共用DCDC的一路输出哪怕多花一颗LDO的钱。第二层是去耦网络在传感器电源引脚1~2mm内放0.1μF0402或0201ESL低再在稍远处放1~10μF必要时串一颗几欧姆的磁珠或小电阻形成RC滤波截止频率设在传感器带宽之上、干扰频率之下。第三层是接地模拟地和数字地在传感器下方单点连接不要搞成大面积分割后长距离飞线。有一个细节值得说传感器封装的底部焊盘如果接地通常是为了散热和屏蔽但如果这块焊盘直接连到大面积铜皮PCB的热膨胀会把应力传到膜片上。所以很多设计会把底部焊盘连到一个独立的、尽量小的铜区再用细线接到主地或者干脆做大面积开窗、不做完整覆铜。3.2 安装扭矩和板子应力零点漂移的头号元凶我在返修数据里做过统计量产初期零点漂移超过±0.5% FS的案例里超过一半和机械应力有关。应力的来源有几类螺丝拧得过紧导致壳体变形、板子在连接器插拔时被反复弯折、传感器靠近板边或拼板V-cut位置、以及回流焊后的残余热应力。应对措施是明确且可执行的。螺丝固定时按供应商给出的扭矩上限的70%拧最好用扭矩螺丝刀别凭手感。传感器在板上的位置尽量远离拼板分离边、连接器、以及任何会被手指按压的地方。如果结构上无法避免应力就在传感器周围开U型槽或长圆孔做应力释放槽宽1mm左右注意不要切到走线层的参考地。回流焊后建议做一次应力释放重新归零把板子在室温下放置24小时再上电采集零点如果零点漂移超出了你固件里预设的上电自校阈值就让固件自动记录新的零点基准。这个自校逻辑对绝对压力传感器不适用零点有物理意义但对表压和差压传感器是可行的。3.3 导压腔体和介质接触路径决定了可靠性传感器是贴片封装还是带导压嘴决定了你在结构上怎么设计气路。贴片封装无嘴通常需要外部结构压紧O型圈形成密封这时要注意三点O型圈压缩率控制在15%~25%过高会让壳体长期受力密封面平面度要好粗糙的注塑件表面会缓慢泄漏进压孔正对气路避免形成死角或积液腔。带导压嘴的型号机械上更省事但介质兼容性要单独评估。干燥空气和惰性气体基本没问题水汽要注意冷凝冷凝水一旦在膜片上积累零点会漂、响应会变慢解决方案是在气路里加疏水膜或冷凝水捕集腔油雾环境要考虑膜片表面是否会被污染腐蚀性介质比如含氯、含硫气体必须选带防护涂层或隔离膜结构的型号。还有一个反直觉的事实对于液体测量气路里残留的一个小气泡可能比传感器本身的误差大得多。气泡会随压力变化压缩膨胀产生明显的非线性。所以液体测量的气路一定要做排气设计比如在最高点设排气孔安装时先灌液排气再上电标定。3.4 I2C上拉电阻要算不能凭感觉拍一个4.7kI2C总线上拉电阻的取值有明确的计算方法。下限由器件能拉低的电流决定R_min (VDD - VOL_max) / IOL_max假设VDD为3.3VVOL最大0.4VIOL最大3mA则R_min (3.3 - 0.4) / 0.003 ≈ 967Ω。上限由总线的上升时间决定R_max tr / (0.8473 × Cb)标准模式tr取1000ns快速模式取300ns。如果总线电容Cb是200pF快速模式下R_max 300ns / (0.8473 × 200pF) ≈ 1.77kΩ。所以合理的取值区间大约在1k~1.8k而不是常见的4.7k。4.7k在Cb较小时能用但一旦挂上多个从机或走线变长上升沿就会变得圆钝出现偶发通信错误。这类错误往往在实验室测不出来到现场才暴露所以建议一开始就按计算值选用示波器确认上升沿在0.3VDD到0.7VDD之间干净利落。4. 从原始计数到可信压力值补偿算法与固件实现4.1 换算链路要拆开看别只调最后那个系数假设你的传感器给出24位原始计数值D片内已经做过温度补偿那么最简换算就是线性映射def raw_to_pressure(raw, p_min, p_max, raw_min, raw_max): # raw: 传感器读回的原始计数值已含片内温度补偿 # p_min/p_max: 标称量程下限与上限单位 kPa # raw_min/raw_max: 出厂标定时对应的计数值 span raw_max - raw_min if span 0: raise ValueError(标定跨度为零检查NVM读取是否正常) return p_min (raw - raw_min) * (p_max - p_min) / span看起来很简单但实际项目里出错最多的地方在raw_min和raw_max的来源。有些型号的NVM里存的是零压计数值和满量程灵敏度counts/kPa而不是两个端点计数有些型号存的是归一化到16位的值需要先左移8位再代入还有的型号量程是双向的比如-1~1kPa零点在量程中间直接套单向公式会得到完全错误的结果。接线之前先把数据手册的寄存器表和NVM结构读两遍写一个小脚本把读出来的系数打印出来跟标称值对照能省掉大量调试时间。4.2 多项式补偿和查表法的取舍片内补偿通常是出厂用多点标定数据拟合出的多项式形式大致是压力关于原始读数和温度的二元多项式。这类补偿在标定点附近精度最高点与点之间靠拟合。如果你的应用对精度要求极高或者工作温度区间偏离补偿区间可以在外挂MCU里再做一层残差补偿用你自己的标定数据拟一条修正曲线叠加在片内输出之上。查表法在温度区间宽、非线性明显的场合更稳。做法是按温度分N段比如每10℃一段每段内用该温度下的零点和满量程系数做线性插值。表格数据来自你自己的温箱标定。优点是行为可预测、不会像高阶多项式那样在区间边缘出现震荡缺点是标定工作量大N段温度乘以M个压力点标定点数会迅速增长。我的经验是如果TEB要求优于±0.5% FS多项式补偿基本够用要求优于±0.25% FS就该考虑分段查表加上局部线性化。4.3 滤波策略要按噪声类型选不能一把滑动平均走天下现场噪声大致分三类高频随机噪声热噪声、电源纹波、脉冲噪声继电器动作、电机启停引起的单点跳变、以及低频漂移温度变化引起的慢变。滑动平均只对第一类有效而且会引入与窗口长度成正比的延迟对脉冲噪声滑动平均会把一个坏点扩散成N个坏点。我更常用的组合是中值滤波去脉冲 IIR低通去高频/* 中值滤波去脉冲 一阶IIR低通适合1kHz以内的采样率 */ #define MEDIAN_N 3 static float buf[MEDIAN_N] {0}; static float iir_out 0.0f; static const float ALPHA 0.15f; /* 截止频率约 fs*ALPHA/(2*pi) */ float filter_pressure(float x) { float tmp[MEDIAN_N]; int i, j; for (i MEDIAN_N - 1; i 0; i--) { buf[i] buf[i - 1]; } buf[0] x; for (i 0; i MEDIAN_N; i) { tmp[i] buf[i]; } /* 三元素排序取中值 */ for (i 0; i MEDIAN_N - 1; i) { for (j 0; j MEDIAN_N - 1 - i; j) { if (tmp[j] tmp[j 1]) { float t tmp[j]; tmp[j] tmp[j 1]; tmp[j 1] t; } } } float med tmp[MEDIAN_N / 2]; iir_out ALPHA * (med - iir_out); return iir_out; }ALPHA的选取要在噪声抑制和响应速度之间折中。0.15对应的时间常数大约是采样周期的6~7倍如果采样率是100Hz时间常数约65ms适合压力变化缓慢的液位和暖通场景。如果是呼吸机这类需要跟随呼吸波形的应用ALPHA要提到0.5以上甚至只做中值滤波不做低通否则波形会被压平触发算法会失准。4.4 诊断与失效兜底要有但别做过度设计数字压力传感器一般会提供一个状态寄存器包含转换完成标志、饱和标志、以及某些型号的NVM校验错误标志。固件里至少要周期性检查这三项饱和标志持续置位说明量程选小了或管路堵了转换完成标志长时间不置位说明接口挂了NVM校验失败说明系数区损坏此时应该报警而不是继续输出数值。系统层面的兜底有两招比较实用。一是交叉校验如果系统里有两个测同一物理量的传感器比如冗余设计用两者差值做合理性判断差值超阈值就报警但不要自动切换因为无法判断哪个坏。二是变化率限制压力在物理上不可能瞬变如果相邻两次采样的差值超过某个物理上限比如满量程的20%直接丢弃该点并计数连续多次超限就报警。这一招对电磁干扰造成的野值特别有效实现成本几乎为零。5. 不同工况下的验证清单从实验室到现场5.1 微压差与医疗场景分辨率和响应时间是生命线呼吸机、麻醉机、流量计这类应用测的是几百帕到几千帕的微压差同时对响应时间有要求因为呼吸波形是动态的。这类场景选型的第一优先级不是精度而是零点稳定性和有效分辨率。微压差传感器的满量程可能只有250Pa或1kPa零点漂移20Pa就意味着8%FS的误差所以必须看零点温漂和长期稳定性。验证方法上我一般做三件事一是静态零点温漂测试把传感器放进温箱从15℃升到45℃每5℃保持30分钟记录零点画出漂移曲线二是动态响应测试用一个能产生阶跃压力的装置比如快速电磁阀加固定容积腔测上升时间确认在你的滤波参数下响应满足波形还原要求三是长时间零点漂移测试通电连续跑72小时每小时记录一次零点看有没有单调漂移趋势——如果有多半是封装应力释放或温升导致的需要结构上处理。5.2 工业过程与液位介质、雷击和长线是三大敌人工业液位测量通常是表压或绝压传感器配投入式探头测的是水柱或油柱的静压。这类场景的难点不在传感器本身而在外部环境。介质方面含颗粒、含油、含腐蚀性成分的液体要评估膜片污染和堵塞投入式探头一般有防护帽和疏水膜但疏水膜被油污糊住后气路就断了读数会卡死。雷击方面探头线缆往往长达十几米感应雷会在信号线上耦合出几百伏的尖峰必须在传感器端加TVS和气体放电管做多级防护光靠PCB上的ESD管不够。长线方面模拟输出比数字输出更适合长距离传输如果是数字接口要考虑总线电容增加导致的上升沿变慢必要时用I2C缓冲器或改用差分接口。标定上有一个实用技巧现场安装后做一次液位归零即确认探头处于已知液位时记录读数作为现场基准。这样即使传感器本身有零点漂移系统层面的误差也被压掉了。5.3 可穿戴与消费类低功耗和结构应力主导一切可穿戴设备里的压力传感器用于高度测量、睡眠呼吸、气压趋势对功耗极度敏感往往要求待机电流在微安级、单次转换能耗在微焦级。选型时除了看数据手册上标称的平均电流还要看唤醒时间和转换时间的乘积——有些型号单次转换只要1ms但唤醒要3ms实际平均功耗远高于标称值。结构应力在这类应用里是致命的因为产品追求轻薄传感器往往贴在极薄的壳体或柔性板上用户按压、跌落、弯折都会让读数跳动。常见的处理方式是传感器尽量靠近结构刚性区域避免贴在大面积薄壁中央在固件里加入基于加速度计的联动判断检测到明显运动时暂时冻结压力输出或标记为低置信度以及做跌落测试后重新确认零点。5.4 一套可以照抄的台架验证清单下面是我在多个项目里沉淀下来的一份清单每一项都有明确的通过判据可以直接拿去用测试项方法通过判据常见失败原因常温零点与满量程加压到零点和满量程各稳定1分钟误差在TEB内焊接应力未释放温度循环全工作温区每10℃保持30分钟零点漂移在TCO规格内补偿区间外工作过压恢复加1.5倍最大过压持续1分钟恢复后零点偏移小于0.1%FS膜片塑性变形密封性加压后关阀观察压力衰减1分钟内衰减小于0.5%FSO型圈压缩率不当长期零点连续通电72小时无单调漂移趋势封装应力或凝胶出气EMC静电、群脉冲、辐射抗扰度读数跳变可恢复去耦与地设计不足跌落与振动按产品标准执行零点偏移小于0.2%FS结构固定不足这份清单的价值在于顺序先做常温和温度确认基本功能再做密封性和过压确认机械可靠性最后做EMC和跌落这些是破坏性最强的测试放前面做会污染后续判断。6. 现场排查链路读数不对的时候按这个顺序走6.1 先分清是零点漂还是灵敏度变这一步决定了后面所有排查方向。方法很简单记录零压时的读数和满量程时的读数和出厂标定值对比。如果零点偏了但满量程正确说明是在某个固定值上叠加了偏移问题多半在机械应力、零点温漂或介质冷凝。如果满量程比例不对比如零点是准的但满量程偏小8%说明是灵敏度下降问题多半在膜片污染、气路堵塞或ASIC增益异常。如果两者都偏先怀疑系数区读取错误或者量程配置不对。我见过最典型的误判是客户报传感器不准实测发现是软件里用了错误的量程参数把-1~1kPa的型号按0~2kPa解析零点偏了整整一个满量程而传感器本身完全正常。所以排查第一步永远是核对配置和系数别急着拆硬件。6.2 偶发跳变按电源—总线—干扰源三层查偶发跳变是最难查的一类问题因为它复现困难。我的排查顺序是固定的三层。第一层查电源。用示波器在传感器电源引脚上做长余辉或峰值检测看有没有几十毫伏以上的尖峰。如果有检查是否还有其他负载共用这一路LDO以及去耦电容是否离得太远。第二层查总线。用示波器看SCL和SDA的上升沿是否达到0.7VDD以上看是否有毛刺或竞争。同时用逻辑分析仪抓一段完整通信看NACK和重试的分布。如果重试率在万分之一以上就值得优化上拉和布线。第三层查干扰源。常见的是继电器、电机、电磁阀动作时产生跳变。验证方法是用示波器同时抓干扰源的驱动信号和传感器输出看是否时间对齐。如果对齐就是传导或辐射耦合需要在干扰源端加吸收电路续流二极管、RC吸收、压敏电阻同时加强传感器端的屏蔽和滤波。这里要注意只在传感器端加滤波往往治标不治本源头治理才是根本。6.3 温度相关的异常要做单变量实验只要问题带温度相关性就必须做单变量实验固定压力只变温度看输出曲线然后固定温度只变压力看输出曲线。两者结合才能分离出零点温漂和灵敏度温漂。很多人图省事在升温过程中同时加压结果拿到的数据无法解耦白忙一场。做这个实验时温度保持时间很关键。传感器封装有热容从外部温度变化到膜片温度稳定可能需要10~30分钟尤其是带导压嘴和金属壳体的型号。判据是看输出读数是否在5分钟内变化小于噪声的2倍达到了才算稳定。这一条如果忽略了测出来的温漂其实是热滞后会误导后续的补偿设计。6.4 把每一次故障都变成一条固件规则排查完不算结束最后一步是把结论落成固件里的检查规则。跳变是因为干扰那就把变化率限制的阈值调紧一点。零点漂是因为应力那就把上电自校的判据加上并在超出阈值时上报一个诊断码。温度超区间那就让固件在温度超过补偿区间时把数据标记为降级可用而不是装作无事发生。我个人在项目里最看重的一个习惯是把每个传感器通道都当作会坏的部件来设计而不是当作永远准确的理想元件。这意味着固件里要有诊断位、要有合理性判断、要有降级策略硬件上要有冗余或至少留出可替换的封装位置。做到这一步产品在现场的故障率通常能降一个量级而且出问题时定位速度会快很多。