Blog Post

[BUG分析] 蒸汽系统下的MCU死机问题

2026/7/22
BUG分析硬件ESD

背景

问题发生在一台饮品机设备上。设备内部集成了数十个电磁阀、交流水泵,以及水路和蒸汽系统。

其中:

  • MCU 负责所有电气部件的控制及基础逻辑处理;
  • 安卓 HMI 负责界面交互、状态显示和下位机指令下发;
  • MCU 与 HMI 通过 RS-485 接口连接,并且两者共地。

问题现象

客户端有多台设备出现异常:在使用蒸汽功能时,系统会不定期报出通讯故障,表现为 HMI 无法与 MCU 正常通讯。

这个问题并不是高频必现,而是低概率偶发:

  • 大约 1 天出现 1 次;
  • 现场出现过多台;
  • 厂内复现难度较高,只能边复测边分析。

这种“低频、偶发、与特定工况相关”的问题,往往意味着根因并不在常规软件逻辑,而更可能与供电、干扰或接地条件有关。

排查过程

1. 关键电气信号

使用示波器同步观察以下信号:

  • UART 通讯线;
  • 3.3V 电源;
  • 2.5V 基准源。

在故障发生前,几个关键通道都出现了异常电压变化,部分有接近 2V 的瞬时下拉现象。

这说明问题并不只是“通讯线偶发错误”,而是电气状态受到了冲击。

image-20260722135251065

2. 结合工况缩小范围

继续回看故障触发时的运行状态,发现当时真正处于动作状态的电气部件并不多,主要只有蒸汽相关的两通电磁阀,其余部件基本处于正常待机状态。

这一步很关键,因为它把问题范围从“整机所有负载”缩小到了“蒸汽回路相关部件”。

既然系统负载并不复杂,却依然出现了明显的电压扰动,那么比起普通负载波动,更值得怀疑的是电磁干扰或静电释放。

3. 蒸汽电磁阀

进一步检查蒸汽电磁阀本体后发现:

  • 常规两通电磁阀除了两个控制脚外,还有接地相关结构;
  • 在很多应用场景中,电磁阀本体并不会单独拉一根地线,而是依靠安装金属件与支架接触,再通过支架实现接地;
  • 这台设备上的蒸汽电磁阀固定金属板,实际上并没有通过线束可靠连接到大地。

也就是说,蒸汽系统工作过程中产生的静电,可能缺少一条稳定的释放路径。当静电积累到一定程度后,就有机会以放电的形式干扰周边控制电路。

image-20260722135052617

根因判断

综合现场现象、波形表现和结构检查结果,可以较明确地判断:问题根因并不是 MCU 软件逻辑错误,而是蒸汽工况下的 ESD 干扰。

网上也有类似观点可供参考:

完全纯净的气体通常不会产生静电;但在实际场景中,气体内往往夹带灰尘、液滴、蒸汽等颗粒,这些颗粒在碰撞、摩擦和分裂过程中可能产生静电。

改善与复测

后续的改善措施比较直接:将蒸汽电磁阀固定金属板可靠接地。

调整后再次复测,设备未再出现此前的死机和通讯异常现象,因此可以确认该问题确实由蒸汽系统的 ESD 干扰引起。

总结

这次问题有两个比较典型的经验点:

  1. 对电气系统来说,不能只关注原理图上的连接关系,还要关注介质类型、运行工况和结构接地方式。
  2. 对蒸汽、水路、高压切换等场景,ESD、浪涌和环境干扰都应该提前纳入设计评估,而不是等到现场偶发故障后再补救。

Discussion

基于 GitHub Discussions。可以直接参与讨论、补充观点,或者留下你的问题。