Ich habe eine drahtlose Sensorschaltung mit einem Mikrocontroller und einem 2,4-GHz-Transceiver- Modul , einige integrierte Sensoren mit I²C-Schnittstelle, einen UART-Port und die erforderlichen diskreten Komponenten.
Diese Platine wurde zum Spülen von Strom aus einem Solarpanel (PV) mit einem LiPo-Akku und einem Shunt-Ladegerät entwickelt . Dies ermöglicht es dem Sensor, sich selbst mit Strom zu versorgen und auf unbestimmte Zeit zu arbeiten, was die geringstmögliche Wartung erfordert.
Ich möchte die möglichen Fehler untersuchen, die in einem System wie diesem auftreten können und die auf Alterung, Verletzung von Umgebungsspezifikationen (Temperatur, Luftfeuchtigkeit usw.) oder falsche Wartung (keine Konstruktionsprobleme / Fehler) zurückzuführen sind um die Lebensdauer zu maximieren.
Die Umgebung, in der der Sensorknoten arbeitet, ist ein Gebäude, das an der Decke oder an den Wänden haftet. Extreme Temperaturen oder Regen werden also nicht berücksichtigt.
Was ich mir ausgedacht habe, sind einige Fehler, die ich zusammenzufassen versuche:
- Komponente defekt -> Unterbrechung \ Kurzschluss
- Sensor defekt -> falsche Ausgangswerte (aber wie falsch?)
- Isolationsfehler durch Staub \ Wasser -> erhöhte Leckage
- Temperatur außerhalb des Bereichs -> ???
Wie kann ich abschätzen, wie und warum der Sensorknoten ausfallen wird?
quelle
Antworten:
Es gibt viel zu viele Freiheitsgrade, um "alle" möglichen Fehler zu verstehen. Es gibt jedoch Techniken, um Fehler früh im Entwurfszyklus (dh vor einer breiten Veröffentlichung) zu identifizieren und zu mindern.
Entwurfszeitaktivitäten (Pre-Hardware)
Peer Review ist immer eine gute Möglichkeit, Fehler zu finden. Lassen Sie Ihr Design von einer anderen Person analysieren und sich darauf vorbereiten, sich gegen ihre Fragen zu verteidigen (oder anzuerkennen, dass sie einen Fehler gefunden und behoben haben!). Es gibt keinen Ersatz für eine Überprüfung, und frische Augen sehen oft Dinge, die von müden übersehen werden. Dies funktioniert sowohl für Hardware als auch für Software - Schaltpläne können genauso einfach überprüft werden wie Quellcode.
Für die Hardware ist, wie andere gesagt haben, eine DFMEA ( Design Failure Mode and Effects Analysis ) eine gute Empfehlung. Fragen Sie sich für jede Komponente "Was passiert, wenn dies kurzgeschlossen wird" und "Was passiert, wenn dies im Leerlauf ist" und zeichnen Sie Ihre Analyse auf. Stellen Sie sich bei ICs auch vor, was passiert, wenn benachbarte Pins miteinander kurzgeschlossen werden (Lötbrücken usw.).
Für die Firmware können statische Code-Analyse- Tools (MISRA, Flusen usw.) verwendet werden, um versteckte Fehler im Code aufzudecken. Dinge wie schwebende Zeiger und Gleichheit statt Vergleich (= vs ==) sind übliche "Oopsies", die diese Tools nicht verpassen werden.
Eine schriftliche Betriebstheorie ist sowohl für Hardware als auch für Software sehr hilfreich. Eine Betriebstheorie sollte auf einer ziemlich hohen Ebene beschreiben, wie das System funktioniert, wie die Schutzfunktionen funktionieren, wie sequenziert wird usw. Wenn man einfach in Worte fasst, wie die Logik ablaufen soll, merkt man oft, dass einige Fälle möglicherweise übersehen wurden ("Ähm, waitasec, was ist mit diesem Zustand? ")
Testen auf Prototypenebene
Sobald Sie die Hardware in der Hand haben, ist es Zeit, sich an die "Arbeit" zu machen.
Nachdem alle theoretischen Analysen durchgeführt wurden, ist es wichtig, die Funktionsweise des Geräts innerhalb der Spezifikationen genau zu charakterisieren . Dies wird üblicherweise als Validierungstest oder Qualifizierung bezeichnet. Alle zulässigen Extreme müssen getestet werden.
Eine weitere wichtige Qualifizierungsaktivität ist die Analyse der Komponentenbelastung. Jedes Teil wird in einem definierten Betriebszustand gegen seine maximale Spannung / Strom / Temperatur bewertet. Um die Robustheit zu gewährleisten, sollte eine geeignete Derating-Richtlinie angewendet werden (80% der Spannung, 70% der Leistung usw. nicht überschreiten).
Erst wenn Sie wissen, wie sich die Dinge unter normalen Bedingungen entwickeln, können Sie über externe Abnormale oder mehrere Abnormale, wie Sie sie beschreiben, spekulieren. Auch hier ist das DFMEA-Modell (was passiert, wenn X passiert) ein guter Ansatz. Überlegen Sie, was ein Benutzer mit dem Gerät tun könnte - kurze Ausgänge, Signale zusammenbinden, Wasser darauf verschütten - probieren Sie sie aus und sehen Sie, was passiert.
Ein HALT-Test ( hochbeschleunigter Lebensdauertest ) ist auch für diese Systemtypen nützlich. Das Gerät wird in eine Umgebungskammer gestellt und mit Vibrationen von minimaler bis maximaler Temperatur, minimaler und maximaler Ein- und Ausgabe betrieben. Hier finden Sie alle möglichen Probleme, sowohl elektrische als auch mechanische.
Dies ist auch ein guter Zeitpunkt, um einige eingebettete Fuzz-Tests durchzuführen - üben Sie alle Eingaben weit über ihre erwarteten Bereiche hinaus aus, senden Sie Kauderwelsch über UARTs / I2C usw., um Lücken in der Logik zu finden. (Bit-Banged-I2C-Routinen sind zum Beispiel dafür berüchtigt, den Bus zu blockieren.)
Strife-Tests sind ein guter Weg, um Robustheit zu demonstrieren. Deaktivieren Sie alle Schutzfunktionen wie Übertemperatur, Überlastung usw. und üben Sie Stress aus, bis etwas kaputt geht. Nehmen Sie das Gerät so hoch wie möglich auf, bis etwas ausfällt oder ein unregelmäßiges Verhalten auftritt. Überladen Sie das Gerät, bis der Antriebsstrang ausfällt. Wenn ein Parameter nur geringfügig über den Worst-Case-Bedingungen ausfällt, ist dies ein Hinweis auf die Marginalität, und einige Überlegungen zum Design müssen möglicherweise überprüft werden.
Sie können auch den Next-Level-Ansatz wählen und einige Ihrer DFMEA-Schlussfolgerungen physisch testen - machen Sie tatsächlich die Shorts und Open und Pin-Shorts und sehen Sie, was explodiert.
Weiterführende Literatur
Mein Hintergrund liegt in der Energieumwandlung. Wir haben einen Industriestandard namens IPC-9592A, mit dem standardisiert werden soll, wie Produkte hinsichtlich der Tests und der Durchführung qualifiziert werden sollen. Viele der in diesem Dokument genannten Arten von Tests und Methoden könnten problemlos in anderen elektrischen Disziplinen verwendet werden.
quelle
Bei mehreren Geräten auf der I2C-Schnittstelle besteht die Möglichkeit des Problems "plappernder Idiot", bei dem ein Gerät ausfällt, den I2C blockiert und alle anderen I2C-Übertragungen beendet.
Einweichprüfungen in Kombination mit Umweltprüfungen würden eine andere Form der Fehleranalyse liefern. Die Verwendung von Randkomponenten, maximalen / minimalen / schwankenden Temperaturen, unterschiedlichen Luftfeuchten, verschmutzten Netzteilen, lauten HF-Umgebungen usw. über einen bestimmten Zeitraum simuliert einen viel längeren Zeitraum des normalen Gebrauchs. Das System weist echte Ausfälle auf und die Ausfallraten können berechnet werden.
quelle
Der wahrscheinlichste Fehler sind Firmware-Fehler. Alles, was ich getan habe, hat ein paar gehabt.
Stellen Sie sicher, dass Sie einen Watchdog-Timer aktiviert haben und dass alle kritischen Wiederholungsfunktionen ausgeführt werden müssen, bevor Sie den Hund streicheln. Ich setze gerne ein Flag im Timer-Interrupt und lösche damit den Watchdog in der Hauptschleife.
Testen Sie Ihre Firmware-Wiederherstellung auch über Reset-Zyklen.
Da beim Starten viele Fehler auftreten, schalte ich gerne ein Relais ein, schreibe dann ein schnelles Skript zum Aus- und Einschalten, warte, bis das Radio das Aufwecken anzeigt, und wiederhole es. Dann machen Sie dies für 10000 Zyklen oder so.
quelle
Einige offensichtliche:
Wenn Sie eine FMEA durchführen, müssen Sie zunächst überlegen, wie kritisch das System ist, bevor Sie entscheiden können, was einen Fehler darstellt.
quelle
Ich bin überrascht, dass niemand Accelerated Life Testing und Highly Accelerated Life Testing erwähnt hat .
Eines der wichtigsten Werkzeuge, die Ihnen zur Verfügung stehen, ist, dass mit jedem Temperaturanstieg von 10 Grad Celsius die durchschnittliche Zuverlässigkeit um 50 Prozent verringert wird. Sie können sich ein Bild von der Lebensdauer Ihres Produkts machen, indem Sie es bei einer stark erhöhten Temperatur testen. Sie müssen keine Komponenten testen, die über ihre Nenntemperatur hinausgehen , um dies zu nutzen.
quelle