嵌入式系统的故障建模


10

我有一个带微控制器和2.4 GHz收发器模块的无线传感器电路,一些集成的传感器带有I²C接口,一个UART端口和必要的分立组件。

该评估板专门用于通过LiPo电池和并联充电器从太阳能(PV)面板中清除电能。这允许传感器自供电并无限期运行,从而需要最少的维护。

我想探讨在这样的系统中可能发生的故障,这些故障可能是由于老化,环境规格(温度,湿度等)的违反或维护错误(不是设计问题/错误)引起的。为了最大化其使用寿命。

传感器节点运行所在的环境是一栋附着在天花板或墙壁上的建筑物。因此,不考虑极端温度或下雨。

我想出的是我尝试总结的一些错误:

  • 组件损坏->开路/短路
  • 传感器故障->错误的输出值(但是怎么错?)
  • 灰尘/水导致隔离不良->泄漏增加
  • 温度超出范围-> ???

我如何估计传感器节点将如何发生故障,为什么?


不要忘记,传感器可能会被任何人/任何物体砸碎并机械损坏,这可能会导致您可以想象的任何故障。
sharptooth 2012年

是的,到目前为止,我还忽略了篡改,因为这是一个极限情况,但是任何建议都欢迎!
clabacchio

太阳能电池板变脏,无法产生足够的功率。我确信某些MEMS器件的寿命对环境非常敏感...猜测。
肯尼2012年

你的学习目的是什么?例如,这可能是降低故障率,降低故障影响(软故障),降低风险(检测故障而不是直截了当进行)等,这些都需要不同的方法。
Wouter van Ooijen 2012年

Answers:


7

有太多的自由度无法理解“所有”可能的故障。但是,有一些技术可以在设计周期的早期(即在广泛发布之前)识别和缓解故障。

设计时活动(硬件前)

同行评审始终是发现错误的好方法。让其他人分析您的设计,并准备好对他们的问题进行辩护(或承认他们发现了一个错误,并加以修复!)审查无可替代,而且新鲜的眼睛经常看到疲倦的人遗漏的事物。这适用于硬件和软件-原理图可以像源代码一样容易地进行查看。

正如其他人所说,对于硬件,DFMEA(设计失败模式和效果分析)是一个很好的建议。对于每个组件,问自己“如果短路会发生什么”和“如果短路会发生什么”,并记录下您的分析。对于IC,还要想象一下如果相邻的引脚彼此短路(焊桥等)会发生什么情况。

对于固件,可以使用静态代码分析工具(MISRA,棉绒等)来揭示代码中的隐藏错误。浮动指针和相等而不是比较(= vs ==)之类的东西是这些工具不会错过的常见“麻烦”。

对于硬件和软件,书面的操作理论也非常有帮助。一种操作理论应该在较高的层次上描述系统的工作方式,保护的工作方式,排序等。简单地说一句逻辑应该如何流动通常会导致人们意识到可能遗漏了某些情况(“嗯, waitasec,这种情况如何?”)

原型水平测试

一旦掌握了硬件,就可以开始“工作”了。

完成所有理论分析后,准确表征器件规格范围内的工作方式至关重要。这通常称为验证测试​​或鉴定。所有允许的极端都需要进行测试。

另一个重要的鉴定活动是组件应力分析。在定义的工作条件下,根据其最大电压/电流/温度评估每个零件。为了确保坚固性,应采用适当的降额指南(不要超过电压的80%,功率的70%等)

只有了解了正常情况后,您才能开始推测外部异常或您描述的多种异常。同样,DFMEA模型(如果发生X会发生什么)是一个很好的方法。想一想用户可以对设备执行的任何操作-缩短输出,将信号绑在一起,在设备上洒水-尝试一下,看看会发生什么。

HALT测试(高度加速寿命测试)对于这些类型的系统也很有用。将设备放入环境室,并在最低至最高温度,最低和最高输入和输出振动的条件下进行运动。这将发现各种电气和机械问题。

这也是进行一些嵌入式模糊测试的好时机-对所有输入进行充分超出其预期范围的输入,通过UART / I2C发送乱码等,以查找逻辑漏洞。(例如,臭名昭著的I2C例程以锁定总线而臭名昭著。)

冲突测试是证明鲁棒性的好方法。禁用所有保护功能,例如过热,过载等,并施加压力直到发生故障。将设备尽可能地升高温度,直到出现故障或出现不稳定现象。重载设备,直到动力总成发生故障。如果某个参数仅在最坏情况下仅略微失败,则可能需要重新考虑其边缘性和一些设计考虑因素。

您还可以采用下一种方法,并对DFMEA的一些结论进行物理测试-实际做空头,空头和短脚,看看会发生什么。

进一步阅读

我的背景是电源转换。我们有一个称为IPC-9592A的行业标准,该标准旨在根据测试内容和测试方法对产品的合格性进行标准化。本文档引用的许多类型的测试和方法都可以轻松地用于其他电气学科。


6

在I2C接口上使用多个设备时,您可能会遇到“冒白痴”的问题,其中一个设备发生故障,吞噬I2C并杀死所有其他I2C传输。

浸泡测试与环境测试相结合将提供不同形式的故障分析。使用边际组件,一段时间内的最高/最低/波动温度,不同的湿度,肮脏的电源,嘈杂的RF环境等会模拟更长的正常使用时间。系统将出现实际故障,并且可以计算出故障率。


3

最可能的故障是固件错误。我所做的一切都有一些。

确保启用了看门狗计时器,并要求所有重要的重复功能发生在“抚摸狗”之前。我喜欢在定时器中断中设置一个标志,并用它来清除主循环中的看门狗。

还要在重置周期内测试固件恢复。

由于启动是发生很多故障的时候,我喜欢通过继电器通电,然后编写一个快速脚本重新启动,等待无线电指示唤醒,然后重复。然后执行10000个周期左右。


测试非常有趣。我的上一家公司有一个项目,该项目必须运行数年,才能与一个愚蠢的发射器保持同步,并且在此期间不会出错,因此消除固件错误可能是最困难的部分。
Kortuk 2012年

2

一些显而易见的:

  • 电池故障。电解液可能流失,导致电子元件污染
  • 光伏系统产生的过电压
  • 它在移动还是在机械附近?然后冲击/振动
  • 由于外部环境(雨水/雪吸收信号等)导致通讯中断。

如果要执行FMEA,则需要首先考虑系统的重要性,然后才能确定故障的原因。


2

我很惊讶没有人提到加速寿命测试高度加速寿命测试

您拥有的重要工具之一是,温度每升高10摄氏度,平均可靠性就会降低50%。通过在大大提高的温度下进行测试,您可以了解产品的使用寿命。您无需测试超出其额定温度的组件即可利用这一优势。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.