Qual é a finalidade dos 'cães de guarda' usados para a protecção dos microcontroladores?
Os temporizadores 'watchdog' são como temporizadores de contagem decrescente; quando o temporizador expira, o microcontrolador deixa de executar a rotina principal e executa o código dentro da rotina do temporizador 'watchdog' em vez disso. É uma forma de verificar/atualizar rotineiramente uma tarefa importante.
Um exemplo típico seria um display. Se um microcontrolador estiver conduzindo um display, ele precisaria refrescar repetidamente o display ou verificar por uma entrada se for um display touch-screen.
Um outro exemplo é para um sistema crítico de segurança. Digamos que o microcontrolador era uma parte de um marcapasso. Neste caso, o microcontrolador pode estar controlando o marcapasso e monitorando continuamente.
O cão de guarda neste caso seria usado para reiniciar o microcontrolador. A maneira como ele faria isso é, o temporizador do watchdog contaria para baixo, se chegar a zero, o microcontrolador é forçado a reiniciar. O microcontrolador reiniciaria repetidamente o temporizador do watchdog para se manter em funcionamento, impedindo o watchdog de chegar a zero.
Agora se o microcontrolador fosse pendurado/crash, ele não seria mais capaz de reiniciar o temporizador do watchdog para que o temporizador continuasse a contagem regressiva até zero e reinicializasse o microcontrolador.