필수 PCB 디자인 팁: PCB 디자인에 워치독 타이머를 구현하는 방법

작성 날짜: 2017/11/1 수요일
업데이트 날짜: 2020/10/16 금요일
Boiling kettle

집에서 일할 때는 직업의 몇 가지 혜택이 있습니다. 자신의 식사를 준비할 수 있고, 점심 시간에 빨래를 할 수 있으며, 원하는 만큼 차를 마실 수 있습니다. 저는 차를 위해 물을 끓이기 위해 스토브용 주전자를 사용하기 때문에, 글을 쓰는 데 몰입하고 있을 때, 물이 다 끓었다는 것을 알려주는 높은 피치의 휘파람 소리에 의존합니다.

가끔 제가 부주의할 때, 뚜껑을 제대로 닫지 않습니다. 그 결과, 주전자 안의 액체 물이 빠르게 기체로 변해도 주전자는 조용합니다. 이 시나리오에서의 제 부주의한 행동은 차를 덜 마시게 될 뿐이지만, 임베디드 시스템에서는 워치독 타이머(WDT)를 어떻게 작동시키는지 모르면 훨씬 더 큰 결과를 초래합니다. 타이머가 작동하지 않을 때, 멈춘 마이크로컨트롤러는 계속 멈춰 있어 임베디드 시스템이 다운됩니다. 워치독 타이머가 어떻게 작동하는지, 워치독 타이머 회로를 어떻게 구현하는지, 그리고 첫 시도에서 제대로 기능하도록 어떻게 하는지 살펴보겠습니다. 그래서 이러한 시나리오를 피할 수 있습니다.

임베디드 시스템이 WDT가 있음에도 불구하고 복구에 실패한 이유

워치독 타이머(Watchdog Timer)는 하드웨어 또는 소프트웨어 워치독 회로가 충돌하는 경우 마이크로컨트롤러를 재부팅하는 데 도움이 되는 전자 장치에서 간단한 안전장치 기능입니다. STM32 워치독 타이머는 별도의 집적회로(IC)로 제공되거나 마이크로컨트롤러 내부에 내장된 기능으로 제공됩니다. 임베디드 시스템 설계에서 WDT를 사용하지 않는 것은 종종 용납할 수 없는 실수입니다.

워치독 타이머의 작동 방식은 간단합니다. 워치독 타임아웃 간격이 설정된 카운트다운을 프로그래밍합니다. 정상 작동 시, 마이크로컨트롤러는 타이머의 카운트다운 타이머를 주기적으로 새로 고쳐 만료되지 않도록 합니다. 만약 마이크로컨트롤러가 응답하지 않으면 워치독 타이머를 새로 고치지 않습니다. 결과적으로, 워치독 타이머가 만료되면 마이크로컨트롤러를 재설정하기 위해 펄스나 신호를 발생시킵니다. 이 간단한 기능은 마이크로컨트롤러가 충돌할 수 있는 설계 오류나 환경적 요인을 보완합니다.

그러나, 만약 WDT가 실패한다면, 임베디드 시스템이 오류 상태에서 회복될 가능성은 거의 없습니다. 이것이 워치독 타이머가 마이크로컨트롤러를 재설정하지 못하는 원인을 정확히 파악하는 것이 중요한 이유입니다. 가장 명백한 대답은 워치독 타이머 칩이 결함이 있는 경우입니다. 하지만, 여러 단위의 임베디드 시스템이 반복적으로 회복하지 못한다면, 설계에 문제가 있을 수 있습니다.

실제로, 수백 개의 마이크로컨트롤러 기반 장치를 설계하고 배치하는 수년 동안, 단 한 번도 실패한 STM32 워치독 타이머를 만난 적이 없습니다. 근본 원인은 종종 단순히 인간의 실수입니다.

The Community for Creative Electronics

Powerful Free ECAD Software with Online Collaboration

Error on a red screen
WDT가 정지된 마이크로컨트롤러를 복구하는 데 실패했을 때 보게 되는 것

WDT가 제대로 작동하지 않을 수 있는 이유

내부 WDT를 사용하는 임베디드 시스템의 경우, 구성 비트가 의도치 않게 덮어쓰여지면 실행 중인 코드가 워치독 타이머를 비활성화할 수 있습니다. 외부 워치독 타이머 칩은 완전히 다른 문제에 직면합니다. 이 경우, 펌웨어 엔지니어가 프로그램을 개발하고 디버깅할 때 외부 워치독 타이머에서 리셋 신호를 끊을 수 있는 점퍼 핀이 있을 수 있습니다. 종종 이러한 점퍼 핀은 현장에 배치되기 전에 수동으로 연결해야 합니다. 그렇지 않으면 WDT 리셋 신호가 연결되지 않은 상태로 남아 마이크로컨트롤러를 리셋하지 못하게 됩니다.

워치독 타이머가 제대로 작동하지 않는 더 흔한 이유는 코딩 오류 때문입니다. WDT 타이머를 새로 고치는 함수들이 프로그램의 잘못된 부분에 배치되면, 그것들은 제대로 작동하지 않습니다. 여러 가지 작업이 다른 우선순위를 가지고 있는 실시간 운영 체제 (RTOS)에서 마이크로컨트롤러를 위한 펌웨어는 복잡해집니다. 더 높은 우선순위를 가진 워치독 회로 작업은 낮은 우선순위의 작업이 비정상적인 무한 루프에 있을 때에도 계속 실행될 수 있습니다. 워치독 타이머 회로를 새로 고치는 작업이 가장 높은 우선순위라면, 마이크로컨트롤러는 제대로 작동하지 않을 때 새로 고쳐지지 않을 것입니다.

Man programming at computer
워치독 타이머가 올바르게 리프레시되도록 하는 것이 좋은 관행입니다

WDT가 신뢰성 있게 작동하도록 보장하는 방법

WDT가 제 역할을 하도록 보장하는 것은 펌웨어 개발자, 시스템 설치자, 하드웨어 워치독 설계자가 관여합니다. 펌웨어 개발자는 내부 WDT를 끄는 코드 오버런을 피하기 위해 프로그래밍에서의 최선의 관행들을 적용해야 합니다. 펌웨어 개발자는 마이크로컨트롤러의 메모리 구조를 잘 이해하고 코드에서 메모리 포인터와 할당을 올바르게 사용하는 방법을 알아야 합니다.

또한, 프로그램의 구조는 워치독 타이머가 프로그램의 적절한 위치에서 갱신되도록 설계되어야 합니다. 이는 프로그램의 어느 지점에서든 무한 루프가 발생하면 프로그램이 워치독 리셋을 트리거할 것임을 의미합니다. 현장에서 WDT의 기능을 확인할 수 있는 테스트 유틸리티를 개발할 수도 있습니다. 이는 외부 워치독 타이머와 마이크로컨트롤러 사이의 연결이 끊긴 점퍼 핀을 놓치는 위험도 없애줍니다.

고품질의 제조 가능한 회로 기판을 구축하는 데 필요한 모든 것을 포함한 사용하기 쉬운 PCB 레이아웃 도구에 접근해야 할 때는 CircuitMaker보다 더 이상 찾아볼 필요가 없습니다. 사용하기 쉬운 PCB 디자인 소프트웨어 외에도 모든 CircuitMaker 사용자는 Altium 365 플랫폼에서 개인 작업 공간에 접근할 수 있습니다. 클라우드에 디자인 데이터를 업로드하고 저장할 수 있으며, 안전한 플랫폼에서 웹 브라우저를 통해 프로젝트를 쉽게 볼 수 있습니다.

Easy, Powerful, Modern

The world’s most trusted PCB design system.

오늘 CircuitMaker 사용을 시작하고 새로운 CircuitMaker Pro from Altium에도 주목하세요.

 

Altium Designer가 작동하는 모습을 확인하세요...

강력한 PCB 디자인

관련 자료

홈으로 돌아가기
Thank you, you are now subscribed to updates.
Altium Need Help?