워치독 타이머
워치독 타이머란?
워치독 타이머는 프로그램이 폭주하지 않는지, 프로그램이 멈추지 않았는지를 감시하기 위한 타이머로, 매뉴얼 등에서는 「WDT (Watch Dog Timer)」라고도 표기합니다.
워치독 타이머의 내부에 내장된 카운터에서 카운트업을 계속하여 오버플로우가 발생하는 것을 방지하기 위해 카운터를 클리어하도록 소프트웨어가 설계되어 있습니다. 그리고, 오버플로우가 발생하면 인터럽트를 발생시키거나 리셋을 발생시킵니다.
전기포트를 예로 들어 설명하면, 설정된 온도에 도달하더라도 히터 전원이 OFF되지 않는 등 사양과 다른 동작을 실행할 경우, 이러한 워치독 타이머 기능을 통해 자동적으로 전기포트의 온도 상승을 정지시킬 수 있습니다.
워치독 타이머의 구성
워치독 타이머에는 카운터가 있습니다. 이러한 카운터는 카운트업을 계속하여 프로그램으로는 정지시킬 수 없기 때문에, 그대로 두면 오버플로우가 발생하게 됩니다.
이러한 카운터에서 오버플로우가 발생하지 않도록 하기 위해서는 프로그램을 통해 카운터를 클리어해야 합니다.
소프트웨어 설계자는 카운터의 오버플로우 발생을 방지하기 위해, 정기적으로 프로그램을 통해 카운터를 클리어하도록 소프트웨어를 설계합니다. 이를 통해, 프로그램이 정상적으로 동작하는 경우, 의도대로 오버플로우 발생 전에 카운터를 클리어할 수 있습니다.
그러나, 카운터를 클리어할 수 없는 경우, 소프트웨어 설계자의 의도대로 프로그램이 동작하지 않는, 즉 「장해가 발생」한 상태인 것을 알 수 있습니다. 이러한 경우에 대한 대책으로서 마이컴이 사양에 따라 달라지지만, 마이컴에 인터럽트를 발생시키는 기능이나 마이컴을 리셋하는 기능이 있습니다.
인터럽트를 통해 안전하게 시스템을 정지시킬 수 있고, 마이컴 자체를 리셋하는 경우 시스템을 처음부터 다시 기동시킬 수 있습니다.
이러한 기능을 통해, 마이컴에 이상 상태가 발생한 경우에도 문제의 발생을 방지할 수 있습니다.