Cosa è e come funziona il timer Watchdog

0
4231
Cosa è e come funziona il timer Watchdog
4
(2)

Il timer Watchdog è un meccanismo di sicurezza che ripristina un sistema nel caso in cui si blocchi (hang/freez). In altre parole, è uno strumento automatico che dice: “Hai provato a spegnerlo e riaccenderlo?”.

In un mondo ideale, i timer watchdog non dovrebbero mai essere necessari, poiché la maggior parte delle volte il loro scopo è quello di recuperare i blocchi del sistema causati da bug di programmazione. Tuttavia, possono anche ripristinare i sistemi da blocchi dovuti a picchi di tensione, che possono essere causati da interferenze elettromagnetiche (EMI), alimentazione instabile, scariche elettrostatiche, ecc.

Come funzionano

Il modo in cui funzionano i timer Watchdog è molto semplice: se non vengono aggiornati entro un periodo di tempo prestabilito, ripristineranno il sistema (come premere il pulsante di ripristino). In altre parole, se il Watchdog non viene alimentato in tempo, suonerà l’allarme (farà il reset del sistema).

Molti microcontrollori includono periferiche watchdog integrate, tuttavia sono disponibili anche chip timer watchdog dedicati esterni; questi hanno un’uscita che si collega al pin “Reset” di un altro circuito integrato o simile (forse un transistor che controlla l’alimentazione del sistema).

Configurazione

I timer watchdog vengono normalmente attivati nel codice all’avvio del sistema e aggiornati alla fine del ciclo principale del sistema. Il periodo di timeout del watchdog deve ovviamente essere impostato a qualcosa di più del tempo massimo di iterazione del ciclo principale. Se il codice si blocca in una subroutine, il watchdog interviene e ripristina il sistema. Occorre fare attenzione a non posizionare le chiamate al watchdog-refresh in troppi punti del codice (o in una routine di interrupt), poiché il sistema potrebbe potenzialmente rimanere bloccato in un sub-loop che include una chiamata al watchdog-refresh, vanificando così lo scopo del timer watchdog.

I timer watchdog sono solitamente pilotati da una sorgente di clock separata dal clock principale del sistema, per una maggiore indipendenza e robustezza.

Per il debug in-circuit (ICD in-circuit-debugging), la maggior parte dei microcontrollori include una funzione per “mettere in pausa” il timer watchdog durante il debug.

Per i microcontrollori con timer watchdog integrato, di solito è disponibile un flag (bit in memoria) che sopravvive al processo di reset e che può essere utilizzato per determinare se si è verificato un reset watchdog.

Windowed Watchdog Timer

Alcuni microcontrollori includono anche un tipo di timer di watchdog chiamato windowed watchdog timer. Questo tipo di timer di watchdog non solo deve essere aggiornato non troppo tardi, ma anche non troppo presto. Questo tipo di watchdog è solitamente destinato all’uso in sistemi che incorporano un sistema operativo in tempo reale (RTOS – Real-Time Operating System).

Conclusioni

I timer watchdog sono un must per qualsiasi sistema con requisiti di affidabilità anche moderati e in genere sono sempre una buona caratteristica da incorporare se il tempo lo consente.

Puoi scaricare la versione demo di Proteus di Labcenter, distribuito in Italia da Galgo Electronics.

Articolo di Dane du Plooy – eiTech Systems – All content Copyright Labcenter Electronics Ltd. 2024 – Per l’articolo originale clicca qui 

Quanto hai trovato interessante questo articolo?

Voto medio 4 / 5. Numero valutazioni: 2

Ancora nessuna valutazione! Valuta per primo questo articolo.