워치독 타이머 란 컴퓨터가 오작동 할 때 이를 자동으로 탐지 및 복구 하는 타이머를 의미합니다. HW/SW 장치 모두 워치독 타이머라 부를 수 있습니다.
장치를 올바르게 작동시킨다고 하여 Computer Operating Properly , COP 라고도 합니다.
일종의 시한 폭탄으로 주기적으로 리셋 시켜 주지 못하면 복구 절차에 돌입합니다.
시그널 | 내용 |
---|---|
Clock | HW 디바이스를 동작시키는 외부 Clock Source |
Clear | HW 디바이스가 정상 동작함을 알려주는 주기적 Alive 신호 |
Timeout | 타이머가 종료되었음을 알려주는 Output 신호 |
Reset | HW 디바이스를 초기화 할 수 있는 입력 시그널 |
Watchdsog이 Overflow되면 MCU에 Reset 신호를 보내 오류를 복구하는 원리로 작동합니다.
MCU는 Reset이 되지 않도록 하기 위해서 while문 안에 WDT에 Trigger 신호를 보내는 방법을 사용하거나 특정 함수가 실행 될 때마다 Triggerring 되도록 합니다.
내부 WDG | 외부 WDG |
---|---|
1. 일반적으로 MCU에 내장 되어 있음. 2. 사용에 있어 별도의 비용이 들지 않음. 3. 상대적으로 신뢰도 낮음. | 1. 별도의 HW(MCU)가 필요함. 2. 별도의 비용 발생. 3. 물리적 리셋핀 사용 가능. 4. 상대적 신뢰고 높음. |
일정 주기 안에 WDG를 triggering하지 못하면 결함이 발생하였다고 인지하는 WDG입니다.
외부 간섭이나 예측하지 못한 실행들에 의해 주로 발생되는 SW 결함 발생을 감지합니다.(System에 Delay가 생깁니다.)
WWDG와 WDG의 차이점은 특정 구간 내에서만 Clear 하도록 설계되어 있습니다.
너무 빠른 혹은 느린 타이밍에 Clear를 한다면 MCU가 오동작하는 것으로 인식하여 Reset하게 됩니다.
외부 X-tal Failure가 발생할 때 대부분 X-tal이 발진하지 않습니다.(WWDG 불필요)
나머지 경우는 X-tal이 발진하면서 Odd Harmonic(원천주파수의 배수 성분 중 홀수 성분)이 발생하는 경우 MCU가 너무 빠른 속도로 동작하기 때문에 오작동을 하게 됩니다. 이러한 오작동은 WDG으로 방지할 수 없기 때문에 WWDG를 사용합니다.
Q&A라고 하기도 하고 Functional이라고 하기도 하는 WDG입니다.
FWDG는 미리 정해져 있는 데이터에서 질문을 sample해서 MCU에 보냅니다.
MCU에서 돌아오는 답변이 미리 정해져 있는 데이터와 같은지 대조하여 MCU의 정상 작동을 판단합니다.