Dicas Essenciais de Design de PCB: Como Implementar um Temporizador de Vigia no Seu Projeto de PCB

Criada: Novembro 1, 2017
Atualizada: Outubro 16, 2020
Boiling kettle

Quando você trabalha de casa, há algumas vantagens no trabalho. Você pode fazer suas próprias refeições, aproveitar para lavar roupa durante o almoço e beber todo o chá que quiser. Eu uso uma chaleira de fogão para ferver água para o meu chá, então, quando estou na zona de escrita, dependo do seu apito agudo para me dizer quando está pronto.

Às vezes, quando estou desatento, não encaixo a tampa corretamente. Como resultado, a chaleira permanece silenciosa apesar do fato de que a água líquida dentro dela está rapidamente se tornando um gás. Meu comportamento descuidado neste cenário só significa que estarei bebendo menos chá, em sistemas embarcados, as consequências são muito maiores se você não souber como operar um Temporizador de Vigilância (WDT). Quando seu temporizador falha em operar, um microcontrolador paralisado permanecerá paralisado e fará com que seu sistema embarcado continue inoperante. Vamos ver como o temporizador de vigilância funciona, como implementar um circuito de temporizador de vigilância e como fazê-los funcionar corretamente na primeira tentativa para que você possa evitar esse cenário.

Por Que Sistemas Embarcados Falharam em Se Recuperar Apesar de Terem um WDT

O Temporizador de Vigia (Watchdog Timer - WDT) é um recurso de segurança simples em eletrônica que ajuda a reiniciar um microcontrolador no caso de uma falha no circuito de hardware ou software. Os Temporizadores de Vigia STM32 estão disponíveis como um circuito integrado (CI) separado ou como um recurso integrado dentro do próprio microcontrolador. Não utilizar um WDT no design de sistemas embarcados é frequentemente considerado um pecado imperdoável.

A maneira como os Temporizadores de Vigia operam é simples. Ele é programado para contar regressivamente durante um intervalo de tempo de vigia definido. Sob operação normal, o microcontrolador atualiza periodicamente o temporizador de contagem regressiva para evitar que ele expire. Se o microcontrolador não responder, então ele não atualizará o Temporizador de Vigia. Como resultado, quando os Temporizadores de Vigia expiram, eles acionam um pulso ou sinal para reiniciar o microcontrolador. Esse recurso simples compensa erros de projeto ou fatores ambientais que podem causar a falha de um microcontrolador.

Contudo, se o seu WDT falhar, então é improvável que seu sistema embarcado se recupere de seu estado errôneo. É por isso que é importante identificar a causa de por que um Temporizador de Vigia pode falhar em reiniciar o microcontrolador. A resposta mais óbvia é que os chips do Temporizador de Vigia estão defeituosos. No entanto, se você repetidamente tem sistemas embarcados em múltiplas unidades falhando em se recuperar, então pode haver algo errado com seus projetos.

Na verdade, em meus muitos anos projetando e implementando centenas de dispositivos baseados em microcontroladores, nunca me deparei com um único caso de falha no Temporizador de Vigia (Watchdog Timer) STM32. A causa raiz é frequentemente simplesmente erro humano.

The Community for Creative Electronics

Powerful Free ECAD Software with Online Collaboration

Error on a red screen
O que você vê quando um WDT falha em reativar um microcontrolador travado

Por que um WDT Pode Não Operar Corretamente

Para sistemas embarcados que usam um WDT interno, códigos que saem do controle podem desativar o Temporizador de Vigia se os bits de configuração forem sobrescritos acidentalmente. Os chips de Temporizador de Vigia externos sofrem de problemas completamente diferentes. Neste caso, é comum ter um pino jumper que pode desconectar o sinal de reset do Temporizador de Vigia externo quando os engenheiros de firmware estão desenvolvendo e depurando um programa. Muitas vezes, esses pinos jumper precisam ser conectados manualmente antes que as unidades sejam implantadas no local. Se não forem, então os sinais de reset do WDT permanecerão desconectados e falharão em resetar o microcontrolador.

Um motivo mais comum pelo qual os Temporizadores de Vigia (Watchdog Timers) falham em funcionar é devido a erros de codificação. Se as funções que atualizam os temporizadores WDT forem colocadas na parte errada do programa, elas não operarão quando deveriam. O firmware para microcontroladores se complica quando existem múltiplas tarefas com diferentes prioridades em um Sistema Operacional em Tempo Real (RTOS). Tarefas do circuito Watchdog de maior prioridade podem continuar a executar mesmo quando tarefas de menor prioridade estão em um loop infinito anormal. Se a atualização do circuito do Temporizador de Vigia for a tarefa de mais alta prioridade, então o microcontrolador não será atualizado quando não estiver funcionando corretamente.

Man programming at computer
É uma boa prática garantir que os Watchdog Timers sejam reiniciados corretamente

Como Garantir Que o WDT Esteja Funcionando de Forma Confiável

Garantir que o WDT faça seu trabalho envolve o desenvolvedor de firmware, o instalador do sistema e o projetista do hardware watchdog. Desenvolvedores de firmware devem aplicar as melhores práticas de programação para evitar excessos de código que desliguem o WDT interno. Desenvolvedores de firmware devem ter um bom entendimento da arquitetura de memória do microcontrolador e como usar corretamente ponteiros de memória e alocação no código.

Além disso, a estrutura do programa deve ser elaborada de forma que os Temporizadores de Vigilância (Watchdog Timers) sejam atualizados em locais apropriados no programa. Isso significa que o programa acionará um reset do Watchdog se um loop infinito se desenvolver em qualquer ponto do programa. Você também pode desenvolver uma utilidade de teste para verificar a funcionalidade do WDT no local. Isso também elimina o risco de perder qualquer pino de jumper desconectado entre um Temporizador de Vigilância externo e o microcontrolador.

Quando você precisar acessar uma ferramenta de layout de PCB fácil de usar que inclui tudo o necessário para construir placas de circuito de alta qualidade e fabricáveis, não procure além do CircuitMaker. Além do software de design de PCB fácil de usar, todos os usuários do CircuitMaker têm acesso a um espaço de trabalho pessoal na plataforma Altium 365. Você pode fazer upload e armazenar seus dados de design na nuvem, e pode visualizar facilmente seus projetos através do seu navegador web em uma plataforma segura.

Easy, Powerful, Modern

The world’s most trusted PCB design system.

Comece a usar o CircuitMaker hoje e fique atento para o novo CircuitMaker Pro da Altium.

 

Confira o Altium Designer em ação...

Design de PCB Poderoso

Recursos relacionados

Retornar a página inicial
Thank you, you are now subscribed to updates.
Altium Need Help?