Wachhund des Mikrocontrollers

7

Kann jemand etwas mehr über Wachhunde erklären, insbesondere auf Schaltkreisebene?

Wie kann ich garantieren, dass der Chip weiterhin funktioniert, wenn ein Problem vorliegt? Es ist in einem anderen Silizium implementiert und später an die Hauptchipschaltung angeschlossen, um Temperaturprobleme zu vermeiden. Welche Art von Schnittstellenschaltung wird üblicherweise verwendet, um das Zählen / Zurücksetzen von Fehlern zu vermeiden? Es ist üblich, irgendeine Art von Redundanz zu implementieren?

RMAAlmeida
quelle
Zusätzlich zu dem, was Stevenh unten in seiner Antwort gesagt hat , können Sie den Watchdog auch vollständig deaktivieren , wenn Sie (aus irgendeinem Grund) dem System bei der Wiederherstellung nach einem Watchdog-Reset nicht vertrauen . Die Idee hier ist jedoch, dass Ihr Code niemals in einen Zustand gerät, in dem er im Land verloren geht und den Watchdog-Timer nicht anpingt, um ihn zurückzusetzen.
Dave

Antworten:

10

Der Watchdog ist nur ein Timer auf demselben Chip wie der Rest des Mikrocontrollers. Es ist hauptsächlich dazu gedacht, Softwarefehler zu erkennen. Es gibt keine Vorsichtsmaßnahmen für eine Fehlfunktion des Watchdogs. Normalerweise wird der Watchdog-Timer in der Hauptschleife des Programms zurückgesetzt. Wenn die Hauptschleife aus irgendeinem Grund nicht mehr ausgeführt wird, wird die Steuerung zurückgesetzt.
Wenn Sie der Mikrocontroller-Hardware nicht vertrauen, können Sie jederzeit einen externen Watchdog-IC hinzufügen.

stevenvh
quelle
2
@stevenvh Während die meisten Mikrocontroller einen Watchdog enthalten, würde ich den Ausdruck "auf dem gleichen Chip wie der Rest des Mikrocontrollers" weglassen, da dies kein wichtiges Merkmal / eine Fehlfunktion des Mikrocontrollers ist. Jeder Hardwarefehler, der eine uC auslöschen würde, wäre wahrscheinlich nicht behebbar. Aber +1 für die Aussage, dass es SW-Fehler abfangen soll. Es wird auch das seltsame Ereignis einfangen, wie ein kosmischer Strahl, aber diese sind zweitrangig.
3
@ David - Ich habe diesen Satz eingefügt, weil OP vorgeschlagen hat, dass der Watchdog möglicherweise "in einem anderen Silizium implementiert und später an die Hauptchipschaltung angeschlossen" wurde, was definitiv nicht der Fall ist. Auf diese Weise wäre es zu teuer und wenig nützlich, da die Hardware viel zuverlässiger ist als die Software.
Stevenvh
@ David - über kosmische Strahlung, ich weiß nicht, wie groß das Problem auf der Erde ist. Ich kann mir jedoch vorstellen, dass radharte Geräte für den Einsatz im Weltraum umfassendere Sicherheitsmaßnahmen haben als ein einfacher Watchdog-Timer.
Stevenvh
2
@stevenvh Kosmische Strahlung ist in der Tat ein Problem - wenn man meinem Professor der alten Schule glauben will (er hat einen Bart und trägt Hosenträger, also nehme ich an, er wusste, wovon er sprach), dann wurden die ersten Computer von Einzelbits geplagt Fehler, die nicht zuverlässig zurückverfolgt werden konnten. Es stellte sich heraus, dass es kosmische Strahlen waren. Je mehr du weisst!
AngryEE
@AngryEE - Ich hätte erwartet, dass moderne Controller aufgrund der geringen Strukturgröße des Chips und der damit verbundenen kleineren Signalpegel (Spannung und Strom) anfälliger sind. Aber natürlich glaube ich Ihrem Professor. Hosenträger lügen nie. :-)
Stevenvh
6

Wachhund

Wie andere bereits erwähnt haben, kann der Watchdog-Timer "ungerade" Fehler abfangen, die dazu führen, dass das Programm in einen ungeraden Zustand übergeht. Der Mikrocontroller wird zurückgesetzt und alles verhält sich so, als wäre er gerade wieder eingeschaltet worden. Für viele Anwendungen ist dies die beste Lösung. Ein Verbraucher wäre verärgert, wenn sich seine TV-Fernbedienung beim Versuch, sie zu verwenden, selbst zurücksetzen würde, aber ein Watchdog-Timer würde ein seltsames Ereignis erfassen und zurücksetzen. Ich kann Ihnen versichern, dass der Verbraucher mit einem zufälligen Zurücksetzen viel glücklicher wäre, als die Batterien entfernen und wieder einlegen zu müssen, bevor er sich erholt.

Es gibt auch Situationen, in denen Sie das Gerät möglicherweise nicht zurücksetzen können, z. B. in einem versiegelten Behälter oder an einem Ort, an den Sie einfach nicht gelangen können. In diesen Situationen wäre es viel besser, einfach zurückzusetzen, anstatt in einen Container einbrechen zu müssen oder was nicht.

Sicherheitskritisch

Es hört sich so an, als ob Sie nach etwas suchen, das eher sicherheitskritisch ist und bei dem ein Hardwarefehler nicht dazu führen soll, dass etwas schief geht.

Es gibt Prozessoren, die speziell dafür entwickelt wurden. Im Allgemeinen können Sie nur darauf hingewiesen werden, dass ein Fehler aufgetreten ist. Diese Warnung kann dann verwendet werden, um Ihre Systeme auf sichere Weise herunterzufahren.

Ich habe eine Demo eines Chips gesehen, der dies tat. Ich glaube, es war ein TI ARM, vielleicht der TMS570 . Eine Schutzmethode besteht jedoch darin, zwei parallele Verarbeitungskerne zu haben, die um einen halben Taktzyklus versetzt sind. Die Ergebnisse jeder Operation können dann zwischen den beiden Kernen verglichen werden. Durch den Versatz ist es weniger wahrscheinlich, dass ein externes Ereignis dazu führt, dass beide Kerne genau denselben Fehler machen.

Wenn sich der Vergleich als wahr herausstellt, leben Sie normal weiter. Wenn er falsch ist, hängt das, was Sie tun, von Ihrer Anwendung ab. Zumindest in dieser Situation werden Sie auf einen Fehler aufmerksam gemacht und haben die volle technische Kontrolle darüber, wie Sie ihn beheben möchten.

Kellenjb
quelle
1
Der (kläglich ausgefallene) Intel iAPX432 weist auch eine gewisse Fehlertoleranz auf, da zwei iAPX432 gleichzeitig installiert sind.
Stevenvh