워치독 타이머
워치독 타이머는 CPU가 멈추거나 무한루프에 빠졌을 때 시스템을 복구하는 전자 타이머다. COP 타이머라고도 부르며, 오작동을 탐지하고 복구하는 장치다. 사람이 쉽게 재부팅할 수 없는 임베디드·원격 장비에서 필수 안전 장치로 쓰인다. 킥은 프로그램이 타이머 카운터를…
주요 장면
대본
워치독이란
워치독 타이머는 CPU가 멈추거나 무한루프에 빠졌을 때 시스템을 복구하는 전자 타이머다.
COP 타이머라고도 부르며, 오작동을 탐지하고 복구하는 장치다.
사람이 쉽게 재부팅할 수 없는 임베디드·원격 장비에서 필수 안전 장치로 쓰인다.
킥과 타임아웃
킥은 프로그램이 타이머 카운터를 0으로 되돌리는 동작이다.
정상 프로그램이 주기적으로 킥을 보내면 카운터는 계속 초기화된다.
킥이 끊겨 카운터가 0에 도달하면 타임아웃 신호가 발생한다.
시정 조치의 두 단계
킥이 실패해 타임아웃이 발생하면 시정 조치가 시작된다.
1차 단계에서는 NMI나 안전 모드로 출력을 안전 상태로 둔다.
시정되지 않으면 2차 단계에서 시스템을 리셋한다.
내부와 외부 WDT
워치독은 내부 WDT와 외부 WDT로 구현할 수 있다.
내부 WDT는 MCU에 내장되어 비용이 없지만, MCU가 멈추면 함께 멈출 수 있다.
외부 WDT는 별도 IC와 독립된 클록을 써서 신뢰도가 높다.
카운터 값 계산
워치독의 카운터 값은 타임아웃 주기와 클록 주파수로 정해진다.
N은 타임아웃 주기에 클록 주파수를 곱하고 프리스케일러로 나눈 값이다.
계산한 N이 카운터 비트 수로 표현 가능한지도 확인한다.
헷갈리는 점과 정리
흔한 실수는 킥을 인터럽트 서비스 루틴에 넣는 것이다.
그러면 메인 프로그램이 멈춰도 워치독이 살아 있게 된다.
그래서 킥은 주 흐름의 정상 진행을 확인한 뒤에만 해야 한다.
앞 문제의 답을 확인하고, 킥과 타임아웃, 시정 조치의 관계를 기억한다.