최근에 올라온 글

글 보관함

watchdogtimer

2009. 4. 24. 22:25 | Posted by noahlee

 

간혹, 외부잡음으로 비정상적인 루프나 무한루프 등에 빠졌을경우. 즉 사용자에 의해 더이상 시스템의 통제가 불가능한 상황으로 치달았을경우가 발생할 수 있다.

이런 경우에 대비하여 만약 이전에 워치독 타이머를 실행시켜두고 타이머 시간 경과동안 아무런 방해를 받지 않게 되면 전체 시스템을 리셋할 수 있다.

따라서 제어 가능한 소프트웨어 루틴에서는 워치독 타이머를 지속적으로 리셋해주게 되며 제어 불가능한 부분에서는 워치독 타이머가 리셋되지 않고 지나가버리기 때문에 사용자의 제어가 미치지 않는 범위에서도 안전하게 시스템을 리셋하여 제어권을 가질 수 있다.

대부분의 경우 사용하지 않는게 일반적이나 외부 환경에 민감하고 고신뢰성을 가지는 시스템이라면 고려해야 한다.

WATCHDOG은 시스템 즉, MCU나 Processor가 정상적을 작동하고 있는지를 체크 하는 기능이며 WATCHDOG TIMER은 WATCHDOG을 하기 위한 내부 타이머 입니다.

WATCHDOG 기능을 사용하기 위해서는 MCU의 레지스터에서 WATCHDOG 사용을 위한 설정을 하여야 합니다. WATCHDOG 기능이 설정되면 자동으로 WATCHDOG TIMER가 작동됩니다. 또한, 대부분의 MCU들은 WATCHDOG TIMER의 시간을 조절할 수 있습니다.

WATCHDOG TIMER가 작동되면 일정 시간마다 WATCHDOG 기능에 의하여 MCU는 자동적으로 리셋됩니다. 따라서, 만약 MCU가 정상적으로 작동되는 상태라면 MCU가 리셋되기전에 WATCHDOG TIMER를 다시 0으로 만드는 코드가 작동하게 됩니다. 하지만, MCU가 비정상적으로 작동하고 있다면 예를 들어 무한루프에 빠져서 어디선가 헤메고 있을 경우 WATCHDOG TIMER를 다시 0으로 만드는 코드가 작동하지 않게 됩니다. 이런 경우 WATCHDOG TIMER에 의해서 칩이 자동적으로 리셋되어 지속적으로 정상적인 작동을 유지할 수 있도록 해주는 것 입니다..

MCU를 가지고 테스트하던 중에 칩이 먹통이 되거나 정상적으로 작동을 하지 않을 경우 외부에 있는 리셋버튼을 눌러서 MCU를 리셋하는 것과 같이 칩이 자동적으로 자신의 상태에 따라 리셋될 수 있도록 해주는 것 입니다.

 


'1-1 > MECHATRONICS' 카테고리의 다른 글

멀티플렉서 [multiplexer]  (0) 2009.04.24
Pulse width modulation  (0) 2009.04.24
원칩마이크로  (0) 2009.04.22
atmega128  (0) 2009.04.22
80196회로도 이미지 파일  (0) 2009.04.22