2019년 5월 2일
워치독 타이머 (WDT, Watchdog Timer)
I. 고신뢰성 시스템을 위한, 워치독 타이머
가. 워치독 타이머의 개념
- 비정상, 무한루프 등에 빠진 경우 시스템 통제가 불가능한 상황에서 자동으로 시스템을 리셋하는 하드웨어 기능
- 타임아웃이 되기 전 S/W 명령으로 그 값을 clear 시켜주지 않으면 MCU를 reset시켜 시스템을 정상적으로 동작하고 있는지 감시하고 지속적인 오동작을 방지 신뢰성 향상 기술
나. 워치독 타이머의 필요성
제어 실패 방지 매커니즘 필요 | – 불필요한 반복 또는 제어 실패를 방지하는 매커니즘 필요 |
예상치 못한 실패 안전모드 필요 | – 시스템 일부가 예상 못한 제어 실패 시 안전모드로 전환 필요 |
II. 워치독 타이머 개념도 및 구성요소
가. 워치독 타이머 구성도
- Watchdog 타이머는 H/W를 주기적으로 감시하며, 디바이스로부터 일정 시간동안 입력값(Kick)을 받지 못 하는 경우 시스템의 오동작 상황으로 간주하고 초기화 수행
나. 워치독 타이머 구성요소
시그널 | 내용 |
---|---|
Clock | HW 디바이스를 동작시키는 외부 Clock Source |
Clear (Res-tart / Kick) | HW 디바이스가 정상 동작함을 알려주는 주기적 Alive 신호 |
Timeout | 타이머가 종료되었음을 알려주는 Output 신호 |
Reset | HW 디바이스를 초기화 할 수 있는 입력 시그널 |
III. 워치독 타이머 유형 및 사례
가. 워치독 타이머 유형
유형 | 개념도 | 설명 |
---|---|---|
내부 워치독 타이머 | – 대부분의 마이크로 컨트 롤러에 내부 WDT 내장 – 별도 비용 없음 – 상대적 신뢰도 낮음 (SW문제 동작 오류 가능) | |
외부 워치독 타이머 | – 외부에 별도의 H/W 필요 – 별도 비용 필요 – 프로세서에 물리적 리셋 핀 포함 – 상대적 신뢰도 높음 |
- 외부 워치독 타이머는 고가이므로 높은 신뢰성 요구하는 시스템에 주로 사용
나. 워치독 타이머 구현 방법
구분 | 하드웨어 설계방법 | 특징 |
---|---|---|
단단계 워치독 | – 마이크로컨트롤러 통합된 옵칩 형태 – CPU에 인접한 부분에 추가 HW 단일칩 구성 | |
다단계 워치독 | – 둘 이상의 타이머가 단계식으로 구성 – 차례로 시정조치 작동, 마지막 단계에서 리셋 | |
시정조치 로직 | – 다단계 워치독 설계시 1단계 시정조치로 NMI 통한 시스템 재설정 – 실패 시 Hard-reset |
- 워치독 타이머는 고정 또는 프로그래밍 가능한 시간 간격 가능, 다단계 워치독의 각 타이머는 각 다른 시간 간격 가능
IV. 워치독 타이머 하드웨어 내부구조
구성요소 | 설명 |
---|---|
Watchdog Control Register (WDCR) | – 워치독을 컨트롤 하는 레지스터 – 리셋 상태 설정, 사용 여부, 로직 체크 |
Watchdog Counter Register (WDCNTR) | – 워치독 카운터의 상태 레지스터 – 현재까지 카운팅 된 값 확인 가능 |
Watchdog Reset Key Register (WDKEY) | – 워치독 카운터를 Clear 하는 역할 |
System Control and Status Register(SCSR) | – 워치독 카운터 출력 신호 결과를 리셋 / 인터럽트에 이용 여부 결정 |
- 워치독 동작 컨트롤과 설정 및 상태 저장 레지스터로 구성
V. 워치독 타이머 소프트웨어
가. 워치독 타이머 소프트웨어 동작방식
상태 | 설명 |
---|---|
정상 동작 | |
– 하드웨어 타이머를 시작하여 특정 숫자부터 카운트 다운하여 ‘0’ 도달 시 수행 작업 정의 – 응용 프로그램이 워치독 타이머 시작 후 타이머가 주기적으로 ‘0’이 되지 않도록 재설정 | |
오류 발생 | |
– 오류로 인해 응용 프로그램이 타이머를 재설정하지 못하면 하드웨어 카운터가 ‘0’에 도달 – 워치독 타이머가 만료되면 하드웨어가 복구 절차 수행 |
- 워치독 소프트웨어는 타이머 만료 시 작업 정의 및 하드웨어 타이머 시작 후 주기적 타이머 초기화 수행
나. 워치독 타이머 소프트웨어 사례
소프트웨어 (소스코드) | 설명 |
---|---|
[워치독 타이머] – 타이머가 만료되면 시스템을 리셋하기 위한 신호 전송 [소프트웨어] – 프로그램 루프 실행 동안 워치독 타이머 카운트 초기화 – 프로그램 동작이 정상이면 주기적 카운트 초기화 – 루프 명령 실행 실패 시 카운트 초기화 불가하므로, 타이머가 만료로 시스템 리셋 |
21 Comments
큰 도움이 되었습니다. 감사합니다.
알고 감사하다고 하는지 ㅎㅎ..