[임베디드] Watchdog Timer

Eugene CHOI·2022년 1월 24일
0

Embedded

목록 보기
1/5
post-custom-banner

1. What is Watchdog Timer

워치독 타이머 란 컴퓨터가 오작동 할 때 이를 자동으로 탐지 및 복구 하는 타이머를 의미합니다. HW/SW 장치 모두 워치독 타이머라 부를 수 있습니다.
장치를 올바르게 작동시킨다고 하여 Computer Operating Properly , COP 라고도 합니다.

일종의 시한 폭탄으로 주기적으로 리셋 시켜 주지 못하면 복구 절차에 돌입합니다.

시그널내용
ClockHW 디바이스를 동작시키는 외부 Clock Source
ClearHW 디바이스가 정상 동작함을 알려주는 주기적 Alive 신호
Timeout타이머가 종료되었음을 알려주는 Output 신호
ResetHW 디바이스를 초기화 할 수 있는 입력 시그널

Watchdsog이 Overflow되면 MCU에 Reset 신호를 보내 오류를 복구하는 원리로 작동합니다.
MCU는 Reset이 되지 않도록 하기 위해서 while문 안에 WDT에 Trigger 신호를 보내는 방법을 사용하거나 특정 함수가 실행 될 때마다 Triggerring 되도록 합니다.

내부 WDG외부 WDG
1. 일반적으로 MCU에 내장 되어 있음.
2. 사용에 있어 별도의 비용이 들지 않음.
3. 상대적으로 신뢰도 낮음.
1. 별도의 HW(MCU)가 필요함.
2. 별도의 비용 발생.
3. 물리적 리셋핀 사용 가능.
4. 상대적 신뢰고 높음.

2. 내부 구조(예시)

  • Watchdog Control Register(WDCR): 워치독을 컨트롤 하는 레지스터, 리셋 상태 설정/사용 여부/로직 체크
  • Watchdog Counter Register(WDCNTR): 워치독 카운터의 상태 레지스터, 현재까지 카운팅 된 값 확인 가능.
  • Watchdog Reset Key Register(WDKEY): 워치독 카운터를 Clear 하는 역할.
  • System Control and Status Register(SCSR): 워치독 카운터 출력 신호 결과를 리셋하고 인터럽트에 사용 여부를 결정.
  1. OSCCLK(오실레이터 클럭)을 받아서 /512 분주를 통하여 클럭을 다운 시킵니다.
  2. Prescaler는 0~7까지의 상태에 따라서 /1, /2, /8, /16, /32, /64의 분주비를 가집니다.
  3. WDCR(WDDIS)는 와치독을 Enable할 것인지 Disable할 것인지 정하는 레지스터입니다. 이 레지스터에 따라 와치독 활성 여부가 결정됩니다.
  4. WDCNTR은 8bit 와치독카운터입니다. 0~255까지 카운팅을 하고 OVF(Overflow)가 발생하면 신호를 보냅니다.
  5. 클리어 신호는 OR게이트에 두 개의 입력으로 주어집니다.
  6. WDKEY의 값이 Good Key일 경우에는 High 출력이 나와서 trigger 명령을 줍니다.
  7. /XRS 외부 신호가 Low 신호일 경우에 High 출력을 통하여 trigger 명령을 줍니다.
  8. WDRST 신호를 결정하는 신호는 두 가지가 있습니다.
  9. 하나는 WDCNTR에서 High신호를 줄 때입니다.
  10. 다른 하나는 WDCR이 0b101가 아닐 때 Bad WDCHK Key가 출력되어 WDRST 신호가 발생되는 경우입니다.

3. Watchdog의 종류

3.1. Time-Out Watchdog(TWDG)

일정 주기 안에 WDG를 triggering하지 못하면 결함이 발생하였다고 인지하는 WDG입니다.


3.2. Window Watchdog(WWDG)

외부 간섭이나 예측하지 못한 실행들에 의해 주로 발생되는 SW 결함 발생을 감지합니다.(System에 Delay가 생깁니다.)

WWDG와 WDG의 차이점은  특정 구간 내에서만 Clear 하도록 설계되어 있습니다.

너무 빠른 혹은 느린 타이밍에 Clear를 한다면 MCU가 오동작하는 것으로 인식하여 Reset하게 됩니다.


3.2.1. Why Window Watchdog

외부 X-tal Failure가 발생할 때 대부분 X-tal이 발진하지 않습니다.(WWDG 불필요)

나머지 경우는 X-tal이 발진하면서 Odd Harmonic(원천주파수의 배수 성분 중 홀수 성분)이 발생하는 경우 MCU가 너무 빠른 속도로 동작하기 때문에 오작동을 하게 됩니다. 이러한 오작동은 WDG으로 방지할 수 없기 때문에 WWDG를 사용합니다.


3.3. Q&A(Functional) Watchdog (FWDG)

Q&A라고 하기도 하고 Functional이라고 하기도 하는 WDG입니다.

FWDG는 미리 정해져 있는 데이터에서 질문을 sample해서 MCU에 보냅니다.

MCU에서 돌아오는 답변이 미리 정해져 있는 데이터와 같은지 대조하여 MCU의 정상 작동을 판단합니다.

profile
Hi, my name is Eugene CHOI the Automotive MCU FW developer.
post-custom-banner

0개의 댓글