Watchdog-Signatur im Flash-Speicher oder RAM?

Früher haben wir Watchdog-Signaturen in unseren Steuerungsanwendungen verwendet.

Grundsätzlich haben wir einen reservierten Speicher im RAM (nicht initialisiert) zugewiesen und die Watchdog-Signaturen gespeichert.

Beim Einschalten prüft das System auf die Watchdog-Signatur und basierend darauf haben wir früher herausgefunden, ob es sich um einen Watchdog-Reset oder einen normalen Reset handelt.

Meine Frage ist, welcher Speicher besser zum Speichern der Watchdog-Signaturen geeignet ist, ob RAM oder Flash?

Antworten (2)

Die Verwendung von Speichersignaturen, um festzustellen, ob ein Watchdog-Timer das letzte Zurücksetzen verursacht hat, ist ein Schema, das um jeden Preis vermieden werden sollte. Dieses Schema ist voller Probleme und stellt kein narrensicheres Schema bereit.

Hier sind einige Schlüsselfaktoren zu berücksichtigen, die dazu führen, dass dies ein problematischer Ansatz ist. (Es gibt auch andere, also analysieren Sie sorgfältig).

1) Im RAM gespeicherte Signaturen können nach einem Power-Cycle-Reset legitim sein oder nicht, da der RAM seinen Inhalt für einige Zeit nach einem Power-Cycle beibehalten kann.

2) Ein Watchdog-Reset wird wahrscheinlich irgendwo durch einen falschen Fehler in der Hardware-Elektronik verursacht. Wie können Sie sicher sein, dass dadurch die Speicherung der Signaturen nicht beeinträchtigt wurde?

3) Die Speicherung von Signaturen in FLASH oder einem anderen nichtflüchtigen Speicher ist problematisch aufgrund der Tatsache, dass das Watchdog-Timeout/Reset während der Zeit auftreten könnte, in der solche Signaturen gespeichert werden.


Es ist weitaus besser, Ihre Systemhardware mit einer Logik einzurichten, die den "Reset-Grund" in speziellen Flop-Flops oder Registerbits erfasst, die die Software in ihrer Startsequenz abfragen kann, um festzustellen, ob der Neustart auf ein Watchdog-Timeout zurückzuführen ist. Wenn Ihr Systemprozessor dies nicht direkt in den Chip integriert hat, sollten Sie erwägen, einen anderen Prozessor zu ersetzen, der diese Fähigkeit enthält. In Fällen, in denen der Watchdog außerhalb des Controllers implementiert ist, sollten Sie eine einfache externe Schaltung hinzufügen, die dem Prozessor über einen I/O-Pin den „Reset-Grund“ liefern kann.

Danke für deine ausführliche Antwort. Ich habe einen Zweifel in Bezug auf Ihren letzten Satz: "In Fällen, in denen der Watchdog außerhalb des Controllers implementiert ist, sollten Sie versuchen, eine einfache externe Schaltung hinzuzufügen, die dem Prozessor über einen E / A-Pin den "Reset-Grund" liefern kann. Wenn ich dies tue, Ich bekomme eine Statusanzeige, aber da der Prozessor immer noch zurückgesetzt wurde, habe ich keine Anzeige, nicht wahr?
@badz - Vieles hängt wirklich davon ab, wie Ihre Hardware derzeit implementiert ist. Mein letzter Satz basierte auf einem System, bei dem der Power-On-Reset (POR) und der Watchdog-Timer (WDT) beide außerhalb des Prozessors implementiert sind. In diesem Fall müssten Sie die POR- und WDT-Schaltungen so implementieren, dass das POR das hinzugefügte Flip-Flop löscht und das WDT es setzt (entweder durch Voreinstellung oder Flankentaktung). Damit dies korrekt funktioniert, ist es erforderlich, dass POR und WDT unterschiedliche Signale sind, bevor sie kombiniert werden, um den Prozessor zurückzusetzen. Beachten Sie, dass es heutzutage viel einfacher ist, einen Prozessor mit diesem eingebauten Prozessor zu finden.

Wenn Sie die Informationen nicht während eines Aus- und Wiedereinschaltens beibehalten müssen, ist RAM besser, insbesondere wenn Ihre Signatur häufig neu geschrieben wird und Probleme mit dem Flash-Verschleiß verursachen kann. Die einzige andere Sorge, die Sie haben könnten, ist, wenn die Stabilität der Stromversorgung ein Problem ist und dann ein Stromstoß Ihre Signatur auslöschen könnte.

Danke für die Antwort. Ich habe einen besonderen Zweifel beim Schreiben an RAM. Gemäß der Definition von RAM gehen die Informationen verloren, wenn der Strom abgeschaltet wird. Aber wie der nicht initialisierte Speicherort (der für die Watchdog-Signatur definiert ist) den gespeicherten Wert weiterhin beibehält. Übersehe ich hier etwas Grundlegendes?
Ein Stromausfall, der kurz genug ist, behält den Inhalt des RAM bei, wie in einer anderen Antwort ausgeführt. Ich bin mir auch nicht sicher, wo in der Frage impliziert wird, dass die Signatur häufig neu geschrieben werden muss.