Raspberry Pi och Arduino: bygga tillförlitliga system med WatchDog timer (4 / 6 steg)
Steg 4: Inre kontra yttre WatchDog timer / frågor med inre Timers
Inre kontra yttre WatchDog timer
Sammanfattning: I steg 4 i detta Instructable titta vi på skillnaderna mellan en inre och yttre WatchDog Timer. Vi granskar också frågor med Arduino och Raspberry Pi inre WatchDog förklara varför en extern WatchDog Timer, såsom SwitchDoc Labs dubbla WatchDog Timer är ett bättre val i många, men inte alla, system.
Ju större hund desto större bettet
Vad är en extern WatchDog Timer? Det är en oberoende timer som är skild från paketet eller CPU helt. Ibland (som med SwitchDog Labs vakthund) en helt separat styrelse.
Vad är en intern WatchDog Timer? Det är en timer som är interna för CPU och intimt relaterade till CPU (som den Arduino inre WatchDog Timer och Raspberry Pi inre WatchDog-Timer).
Raspberry Pi och en Arduino har en extern WatchDog Timer en mycket större bark än en inre. Varför säger vi detta? Eftersom det finns inget sätt som den interna programvaran, men buggy, kan sluta en extern WatchDog Timer från att göra sitt arbete, där en inre WatchDog Timer kan vara avstängda av programvara. I vissa konstruktioner är stänga av den interna WatchDog Timer vettigt. I andra, gör det inte.
Naturligtvis, om du vill stänga av en extern WatchDog Timer via programvara, kan du med hjälp av en GPIO pin för att styra ett relä eller en transistor, men i allmänhet du vill inte göra det om du inte behöver.
Problem med interna WatchDog timer
Sammanfattar problemen med inre WatchDog timer från steg 2 och steg 3:
- Den inre vakthund inte makt cykel systemet. Det startar om datorn. Detta innebär att det inte startar om i alla förhållanden. Särskilt i låg effekt / brownout villkor ofta upplevs med Solar Powered system. Utan några smarta kretsar kommer ibland Raspberry Pi eller Arduino inte tillbaka med bara en återställning. Lösning: En extern WatchDog Timer kan hålla hitting enheten tills det kommer tillbaka, eller ännu bättre, kan power cykla den dator som kommer att föra den tillbaka när effektnivåer är mindre bruna.
- Du kan sträcka ut din Wto till mycket mer än 16 sekunder att täcka alla möjliga stöveln sekvenser. WTO: S definieras som maximala tiden WatchDog timer kan räkna innan det behöver återställas (med andra ord, när det kommer att starta om datorn om datorn går bort. Lösning: En krets som den dubbla WatchDog Timer går hela vägen till ett Wto 240 sekunder. Det är även tillräckligt länge för en Windows-maskin att starta upp. Tja, för det mesta.
- Om du stoppa datorn, är du klar. Den inre vakthund startas inte. Inte så mycket ett problem med Arduino, men ett större problem med Raspberry Pi. Lösning: En extern vakthund är oberoende av vad du gör med programvaran inuti. Du kan inte skruva upp.
- På den Raspberry Pi finns det situationer där Processorn är laddade upp för mycket för ditt program men kan fortfarande göra processen klappa watchdog således hålla klappa hunden. På Arduino, eftersom det de klappa sker allt på en tråd, detta är mindre problem. Lösning: En extern vakthund är oberoende av vad du gör med programvaran inuti. Du kan inte skruva upp.
Nu, ni måste förstå, vi inte hatar interna WatchDog timer. I alla systemdesign ser vi alltid för att använda den interna en först. Under de senaste 20 åren, vi befinner oss driver bort från att använda den interna vakthundar på grund av frågorna ovan, och kanske, vi behöver inte tänka så hårt under designen. Färre variabler till kontroll. Mer definierat beteende. Vi kan se vad som händer genom att titta på lamporna. Även utan våra glasögon på.