Stap 4: Interne Versus externe WatchDog Timers / problemen met interne Timers
Interne Versus externe WatchDog Timers
Samenvatting: In stap 4 van dit Instructable kijken we naar de verschillen tussen een interne en externe WatchDog-Timer. We bekijken ook de problemen met de Arduino en de Raspberry Pi interne WatchDog uitleggen waarom een externe WatchDog-Timer, zoals de SwitchDoc Labs dubbele WatchDog-Timer is een betere keuze in veel, maar niet allesystemen.
Hoe groter de hond des te groter de beet
Wat is een externe WatchDog-Timer? Het is een onafhankelijke timer dat volledig losstaat van het pakket of de CPU. Soms (zoals met de SwitchDog Labs WatchDog) een volledig aparte board.
Wat is een interne WatchDog-Timer? Het is een timer die interne naar de CPU en nauw verband houden met de CPU (zoals de Arduino interne WatchDog-Timer en de Raspberry Pi interne WatchDog-Timer).
In het geval van de Raspberry Pi en een Arduino heeft een externe WatchDog-Timer een veel grotere schors dan een interne een. Waarom zeggen we dit? Omdat er geen manier dat de interne software, echter buggy, voorkom een externe WatchDog-Timer uit doet zijn werk, waar een interne WatchDog-Timer kan worden uitgeschakeld door software. In sommige ontwerpen zinvol de interne WatchDog-Timer gaskraan. In anderen, is het niet.
Natuurlijk, als u afsluiten van een externe WatchDog-Timer via software wilt, kun je met behulp van een GPIO pin om een relais of een transistor te regelen, maar in het algemeen, u niet wilt dat als je niet te hoeft doen.
Problemen met interne WatchDog Timers
Samenvatting van de problemen met interne WatchDog tijdopnemers van stap 2 en stap 3:
- De interne WatchDog doet niet macht cyclus het systeem. Het opnieuw opstarten van de computer. Dit betekent dat het niet opnieuw onder alle omstandigheden starten. Vooral in low-power / brownout voorwaarden vaak ervaren met zonne-aangedreven systemen. Zonder sommige slimme Circuitry circuitry,, terugkomt soms de Arduino of Raspberry Pi niet met enkel een reset. Oplossing: Een externe WatchDog-Timer kunt houden raken van het apparaat totdat het terug komt, of beter nog, kan macht cyclus de computer die zal het terug toen de energieniveaus minder bruin zijn.
- U kunt uw Wto a lot more dan 16 seconden ter dekking van alle sequenties van de mogelijke bootup strek. WTO wordt gedefinieerd als de maximale hoeveelheid tijd die de WatchDog-timer tellen kunt vooraleer op nood voor opnieuw worden ingesteld (met andere woorden, wanneer het opnieuw van de computer opstarten zal als de computer gaat weg. Oplossing: Een circuit als de dubbele WatchDog-Timer helemaal naar een Wto van 240 seconden gaat. Dat is zelfs lang genoeg voor een Windows machine te starten. Nou, de meeste van de tijd.
- Als u de computer stoppen, bent u klaar. De interne WatchDog zal niet opnieuw opstarten. Niet zozeer een probleem met de Arduino, maar een groter probleem met de Raspberry Pi. Oplossing: Een externe waakhond is onafhankelijk van wat je doet met de software binnen. Je kan niet het verpest.
- Op de Raspberry Pi zijn er situaties waar de CPU wordt geladen omhoog teveel voor uw programma, maar misschien nog ken het proces klopte de watchdog dus houden de hond aaien. Op de Arduino, aangezien het de klopte allemaal op één thread wordt gedaan, dit is minder een probleem. Oplossing: Een externe waakhond is onafhankelijk van wat je doet met de software binnen. Je kan niet het verpest.
Nu, gelieve te begrijpen, we don't hate interne WatchDog Timers. In elk systeemontwerp kijken we altijd voor het eerst gebruik van de interne een. In de afgelopen 20 jaar, vinden we onszelf drifting weg met behulp van de interne waakhonden vanwege de problemen boven en heel misschien, we niet hoeven te denken zo hard tijdens het ontwerp. Minder variabelen te controleren. Meer bepaald gedrag. We kunnen zien wat er gaande is door te kijken naar de LEDs. Zelfs zonder onze bril op.