당신은 주제를 찾고 있습니까 “워치 독 타이머 – Watchdog timer working || Microcontroller || Arduino ||Embedded system“? 다음 카테고리의 웹사이트 https://you.charoenmotorcycles.com 에서 귀하의 모든 질문에 답변해 드립니다: https://you.charoenmotorcycles.com/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 EnjoyTheFun -AnuKumar 이(가) 작성한 기사에는 조회수 38,958회 및 좋아요 623개 개의 좋아요가 있습니다.
워치독 타이머 (WDT, COP (computer operating properly ) 타이머, 또는 단순히 워치독 )는 컴퓨터의 오작동을 탐지하고 복구하기 위해 쓰이는 전자 타이머이다.
워치 독 타이머 주제에 대한 동영상 보기
여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!
d여기에서 Watchdog timer working || Microcontroller || Arduino ||Embedded system – 워치 독 타이머 주제에 대한 세부정보를 참조하세요
워치 독 타이머 주제에 대한 자세한 내용은 여기를 참조하세요.
워치독 타이머 (WDT, Watchdog Timer) – 도리의 디지털라이프
워치독 타이머의 개념. 비정상, 무한루프 등에 빠진 경우 시스템 통제가 불가능한 상황에서 자동으로 시스템을 리셋하는 하드웨어 기능 …
Source: blog.skby.net
Date Published: 4/18/2021
View: 603
[ Embedded ] 02. WDT(워치독 타이머)란?
워치독 타이머(WDT). Watchdog Timer. 1. 고신뢰성 시스템을 위한, 워치독 타이머. 가. WDT의 개념. 비정상, …
Source: coder-in-war.tistory.com
Date Published: 2/2/2021
View: 7014
WDT – 와치독이란? – 공대누나의 일상과 전자공학
Watchdog Timer의 약자로 영어 뜻은 말 그대로 감시견입니다. MCU가 고장나서 중단되거나 소프트웨어 오류로 무한 루프에 빠지는 상태를 감시합니다.
Source: gdnn.tistory.com
Date Published: 11/15/2022
View: 9740
MCU에서 와치독 타이머(Watchdog Timer)란 무엇인가?
watchdog의 영어뜻은 ‘감시견’을 말한다. 아마도 집을 지키는 것을 뜻할 것이다. 마이크로컴퓨터에서 와치독이란 용어는 시스템이 고장나서 중단되거나 …
Source: ingorae.tistory.com
Date Published: 4/29/2021
View: 9423
워치독 타이머란? – NI
문제점: 워치독 타이머란 무엇이며, 어떻게 동작합니까? 솔루션: 일반적으로 제어시스템은 불필요한 반복 또는 제어 실패를 방지하는 메커니즘을 필요로 합니다.
Source: digital.ni.com
Date Published: 1/24/2021
View: 8559
1-5.워치독(Watchdog) 타이머
워치독 타이머는 1MHz로 동작하는 별도의 내부 오실레이터로부터 클럭을 공급 받는다. 워. 치독 프리스케일러의 설정을 변경하여 워치독 리세트 발생 주기를 조절할 수 …
Source: realsys.co.kr
Date Published: 3/21/2022
View: 5979
워치독 타이머 (WatchDog Timer; WDT)
워치독 타이머(WatchDog Timer; WDT) 요약 AVR 장치는 주요 명령 클럭에서 별도의 오실레이터를 사용하는 워치독 타이머(Enhanced Watdog Timer; …
Source: yaneodoo2.tistory.com
Date Published: 2/2/2021
View: 860
Watchdog – XMC Tutorial
watch 타이머는 소프트웨어 이상을 자동으로 감지하고 프로세서가 리셋되면 자동으로 재설정하는 데 사용할 수있는 하드웨어이다. 일반적으로 watchdog 타이머는 초기 값 …
Source: xmctutorial.readthedocs.io
Date Published: 9/2/2021
View: 2387
워치독 타이머 내장 저포화 레귤레이터 – 제품 검색 결과 – 로옴
워치독 타이머 내장 저포화 레귤레이터. 로옴은 범용 3단자 레귤레이터, 저소비전력, 대전류, 고내압 등 폭넓은 라인업을 구비하여 휴대전화, 자동차, 가전, 민생기기, …
Source: www.rohm.co.kr
Date Published: 6/21/2021
View: 1337
주제와 관련된 이미지 워치 독 타이머
주제와 관련된 더 많은 사진을 참조하십시오 Watchdog timer working || Microcontroller || Arduino ||Embedded system. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.
주제에 대한 기사 평가 워치 독 타이머
- Author: EnjoyTheFun -AnuKumar
- Views: 조회수 38,958회
- Likes: 좋아요 623개
- Date Published: 2018. 10. 21.
- Video Url link: https://www.youtube.com/watch?v=D0E0BAFGrI8
위키백과, 우리 모두의 백과사전
워치독 타이머는 화성 탐사선 로버와 같은 원격 자동화 시스템에 있어 필수적이다.
워치독 타이머 (WDT, COP (computer operating properly ) 타이머, 또는 단순히 워치독 )는 컴퓨터의 오작동을 탐지하고 복구하기 위해 쓰이는 전자 타이머이다. 정상 작동 중의 컴퓨터는 시간이 경과하거나 “타임아웃”이 되는 것을 막기 위해, 정기적으로 워치독 타이머를 재가동 시킨다. 만약, 하드웨어의 결함 혹은 프로그램 오류로 인해 컴퓨터가 워치독을 재가동하는 데 실패하면, 타이머가 시간을 두고 타임 아웃 신호를 생성한다. 이 타임 아웃 신호는 여러 시정 조치를 취하는 데 쓰인다. 이 시정 조치란 일반적으로 컴퓨터 시스템을 안전한 상태로 유지하는 것과 정상적인 시스템 작동으로 원상복귀 시키는 것을 포함한다.
워치독 타이머는 인간이 쉽게 접근할 수 없거나 오류에 제때 반응 하기 힘든 컴퓨터 제어 장비에서 일반적으로 찾을 수 있다. 소프트웨어가 멈추는 경우, 많은 임베디드 시스템들은 사람이 재부팅해주는 것에만 의존할 수 없다. 따라서 그들은 반드시 자립적이어야 한다. 예를 들어, 우주 탐사기와 같은 원격 임베디드 시스템은 운영자가 물리적으로 접근할 수 없다. 만일 그들이 자동으로 오류들을 복구할 수 없다면, 이것들은 영구적으로 손상될 수 있다. 워치독 타이머는 보통 이와 같은 경우에 사용된다. 워치독 타이머는 샌드박스에서 신뢰할 수 없는 코드가 작동할 때, 코드에 사용할 CPU 시간을 제한하는데 쓰인다. 따라서 서비스 거부 공격의 일부 유형을 방지할 수 있다.[1]
구조 및 작동 [ 편집 ]
워치독 재시작 [ 편집 ]
워치독 타이머를 재가동하는 행위는 일반적으로 “kicking the dog”[2][3] 또는 기타 유사한 용어들로 표현된다; 보통 워치독 제어 포트에 입력을 가해 실행한다. 통합 워치독 타이머를 지닌 마이크로컨트롤러의 경우, 특정 기계어 명령을 실행함으로써 워치독이 작동된다. 일부 PIC 마이크로 컨트롤러의 명령어 세트에 포함된 CLRWDT(클리어 워치독 타이머) 명령어를 예로 들 수 있다.
운영 체제가 있는 컴퓨터에선 일반적으로 장치 드라이버를 통해 워치독 리셋이 작동된다. 예를 들어, Linux 운영 체제에서 사용자 공간 프로그램은 일반적으로 워치독 드라이버와 상호작용함으로써 워치독을 실행시킬 것이다. 이는 보통 /dev/watchdong에 0(zero character)을 씀으로서 이루어진다. 사용자 공간 프로그램에게 추상화된 워치독 하드웨어를 제공하는 장치 드라이버는 타임아웃 기간을 설정하고 타이머를 시작하고 정지하는 데에도 사용된다.
단단계 워치독 [ 편집 ]
워치독 타이머는 많은 설정들에 관여하고, 다수의 위치독 타이머들은 그들의 설정이 변경되는 것을 허용한다. 마이크로 컨트롤러는 통합된 온칩 워치독을 포함하기도 한다. 다른 컴퓨터에서 워치독은 CPU에 직접 연결된 가까운 칩에 있을 수도 있고, 혹은 컴퓨터 섀시에 있는 외부 확장 카드에 위치 할 수도 있다. 아래의 블록 다이어그램과 같이, 워치독과 CPU는 일반적으로 클럭 신호를 공유 할 수 있고, 또는 독립적인 클럭 신호들을 가지고 있을 수도 있다.
다단계 워치독 [ 편집 ]
가끔 다단계 워치독 타이머를 만들기 위해서 둘 또는 그 이상의 타이머들을 차례로 이어 붙일 수 있다. 이때 각 타이머는 타이머 단계 혹은 단순히 단계 로 불린다.예를 들어, 아래의 블록 다이어그램은 3 단계 워치독을 보여준다. 다단계 워치독 중에서, 오직 제 1단계만 프로세서에 의해 실행된다. 제 1단계가 타임아웃하면, 시정 조치가 취해지며 다단계의 다음 단계가 시작된다. 각 후속 단계가 타임아웃되면, 시정 조치가 수행되고 다음 단계가 시작한다. 마지막 단계가 타임아웃하면, 시정 조치가 취해지고, 마지막 단계에 도달했기 때문에 다른 단계는 시작되지 않는다. 보통 단단계 워치독 타이머가 단지 컴퓨터를 재시작하는데 쓰이는데 반해, 다단계 워치독 타이머는 차례로 시정 조치들을 작동시키고 마지막 단계에서 컴퓨터를 재시작하게 한다.[3]
시간 간격 [ 편집 ]
워치독 타이머는 고정된 시간 간격이나 프로그래밍할 수 있는 시간 간격을 가질 수 있다. 일부 워치독 타이머들은 몇 가지 선택 가능한 이산값들 중에서 시간 간격을 설정함으로써, 이를 프로그램 되도록 한다. 다른 경우에는, 시간 간격은 임의의 값으로 프로그램 될 수 있다. 일반적으로 워치독의 시간 간격은 10밀리초부터 1분 이상으로 다양하다. 다단계 워치독에서, 각 타이머는 자신만의 고유한 시간 간격이 있을 수 있다.
시정 조치 [ 편집 ]
워치독 타이머는 프로세서 리셋, 차단 불가능 인터럽트, 차단 가능 인터럽트, 전원 껐다 켜기, 안전모드 상태 활성화 또는 이들의 조합을 포함하는 몇 가지 유형의 시정 조치를 취할 수 있다. 그 구조에 따라, 시정 조치의 유형이나 워치독이 작동시킬 수 있는 조치의 유형은 고정되거나 프로그램 가능한 것들이다. 일부 컴퓨터 (ex. PC 호환기종)는 프로세서 리셋을 작동하는 펄스 신호를 필요로 한다. 이러한 경우, 워치독은 내부 혹은 외부의 펄스 발생기를 활성화하여 프로세서 리셋을 작동시키며, 이것은 차례로 필요한 리셋 펄스들을 만들어낸다.[3]
임베디드 시스템 및 제어 시스템에서, 워치독 타이머는 종종 안전모드 회로를 활성화하는 데 사용된다. 안전모드 회로가 활성화하면, 이는 오류가 지속하는 동안 장비의 손상과 피해를 방지하기 위해서 모든 제어 출력이 안전한 상태(예를 들어, 모터, 히터, 높은 전압을 끔)가 되도록 한다. 2단 워치독에서, 첫 번째 타이머는 안전모드 출력을 활성화하고 두 번째 타이머 단계를 시작하게 하는 데 쓰인다. 만일 타이머가 경과하기 전에 오류가 정정되지 않는다면, 제 2단계가 컴퓨터를 리셋시킬 것이다.
워치독 타이머는 종종 오류 복구[3]시 유용할 수 있는 시스템 상태정보 혹은 디버그 정보(오류의 원인을 확인하는 데 유용할 수 있음)를 영구 저장매체에 기록하도록 하는데 사용된다. 이러한 경우, 첫 번째 타이머 시간이 경과된 후 시작되는 두 번째 타이머는 데이터 기록이 완성되는 데 충분한 시간을 주고 컴퓨터를 리셋하는데 사용된다. 이는 정보가 저장되는 데 필요한 시간을 주되, 그 저장 과정이 실패하더라도 컴퓨터는 반드시 리셋되도록 한다.
예를 들어, 위의 그림은 2단 워치독 타이머에 대한 구성을 잘 묘사하고 있다. 컴퓨터는 정상 작동 중에 타임아웃되는 것을 방지하기 위해 정기적으로 1단계 타이머를 작동시킨다. 만약 컴퓨터가 1단계 타이머 작동에 실패한다면 (예를 들어, 하드웨어 오류 또는 프로그래밍 오류로 인해), 1단계는 결국에는 타임아웃될 것이다. 이후 2단계 타이머를 작동 시키며, 동시에 컴퓨터에게 리셋이 임박했음을 알린다(차단 불가능 인터럽트를 통해서). 2단계가 타임아웃할 때까지 컴퓨터는 상태 정보나 디버그 정보, 혹은 두 가지 모두를 기록하려고 시도할 수 있다. 이 컴퓨터는 2단계가 타임아웃될 때 리셋된다.
오류 검출 [ 편집 ]
컴퓨터 시스템은 일반적으로 컴퓨터가 시스템이 가동된다고 판단할 때만 워치독 타이머를 작동하도록 디자인 되어있다. 컴퓨터는 하나 또는 그 이상의 오류 검출 테스트를 실시하여 시스템이 가동하는지를 확인하고 모든 테스트를 통과한 경우에만 워치독을 가동시킨다. 그런데 운영체제와 여러 프로세스들이 수행되는 컴퓨터에서 하나의 간단한 테스트는 컴퓨터의 정상적인 작동을 보장하기엔 충분하지 않다. 왜냐하면 감지하기 힘든 오류상태를 탐지하는데 실패하여 오류상태에 있음에도 워치독을 실행시키지 않을 수도 있기 때문이다.
Linux 운영 체제를 예로 들면, 사용자 공간 워치독 데몬은 어떠한 테스트도 실행하지 않고 워치독을 주기적으로 작동시킬 수도 있다. 시스템은 데몬이 정상적으로 작동되는 한 커널 패닉과 같은 심각한 시스템 충돌들로부터 보호될 것이다. 덜 심각한 오류를 감지기 위해, 데몬[4]이 리소스 가용성(예를 들면, 충분한 메모리 와 파일 핸들, 적당한 CPU 시간),예상 프로세스 활동의 증거(예를 들어, 시스템 데몬들 작동, 특정한 파일의 존재와 그것의 업데이트), 오버히팅 그리고 네트워크 활동을 다루는 테스트를 수행하도록 설정할 수 있다. 그리고 특정 계통의 테스트 스크립트 혹은 프로그램들도 이렇게 쓰일 수 있다.[5]
실패한 테스트를 발견했을 때, 리눅스 워치독 데몬은 소프트웨어적인 재시작을 실행하려 할 수도 있다. 이것은 파일 시스템이 안전하게 언마운트되며 오류 정보들이 로그되므로, 하드웨어를 리셋하는데 있어 선호되는 방식일 수 있다. 그러나 소프트웨어 재시작은 많은 오류로 인해 실패할 수 있기 때문에, 하드웨어 타이머를 사용하는 예방책을 갖는 것은 필수적이다. 결과적으로, 이것은 소프트웨어 재시작이 첫 번째 단계를, 하드웨어 리셋이 두 번째 단계를 구성하는 2단계 워치독이라고 할 수 있다.
같이 보기 [ 편집 ]
Immunity Aware Programming
전원 분배 장치
Dead man’s switch
Heartbeat (computing)
킵얼라이브
각주 [ 편집 ]
외부 링크 [ 편집 ]
공대누나의 일상과 전자공학
728×90
반응형
안녕하세요. 취업한 공대누나입니다.
오늘은 워치독 타이머에 대한 이야기를 해보려고 합니다.
일반적으로 임베디드 시스템에서 와치독이라고 하는 타이머 하드웨어가 존재하게 됩니다.
1. WDT, 와치독이란?
Watchdog Timer의 약자로 영어 뜻은 말 그대로 감시견입니다.
MCU가 고장나서 중단되거나 소프트웨어 오류로 무한 루프에 빠지는 상태를 감시합니다.
그리고 정상동작을 하지 않는다고 판단되면 일정한 시간이 지나면 시스템을 리셋하게 됩니다.
프로그램이 정상적인 경우에는 주기적으로 타이머에 일정한 신호를 가하여 타이머가 리셋신호를 발생시키지 않도록 합니다. 하지만 프로그램에서 주기적으로 신호를 발생시키지 않으면 오류로 판단하여 리셋을 하는 것입니다.
즉, 일정 시간 동안 시스템을 감시하다가 시스템을 리셋하는 기능을 말하는 것입니다.
2. 사용하는 이유
임베디드 시스템의 경우 혼자 오류를 복구해야 하는 능력이 필요한 경우가 있다.
시스템의 정상동작을 감시하다가 문제가 생기면 다시 시스템을 재부팅하여 정상동작 하도록 하는 것이다.
임베디드 시스템의 경우 사람이 재부팅하는 것에만 의존할 수 없기 때문에 스스로 할 수 있어야 합니다.
대표적인 예로 우주 탐사기와 같은 예를 많이 드는데요.
이러한 원격 임베디드 시스템은 사람이 물리적으로 접근할 수 없기 때문에 자동으로 오류를 복구해야 합니다.
이러한 경우에 사용하게 됩니다.
3. Datasheet
SAM4S16C Datasheet
우선 현재 보는 MCU의 watchdog은 12bit down counter입니다. 그래서 maximum value가 FFF인 것을 볼 수 있습니다.
WDV는 프로그래머에 의해서 정해질 수 있는 값입니다.
이 MCU에서는 최대 16초마다 한 번씩 리셋 신호를 발생시킬 수 있습니다.
워치독 에러가 발생하면 WDRSTEN이 어떤 값으로 설정되어 있느 냐에 따라서 값이 WDV로 되느냐 FFF로 되느냐가 달라지게 되는 것을 볼 수 있습니다.
정상 상태에서, underflow가 발생하기 전에 유저는 레지스터를 세팅함으로써 규칙적으로 reload를 하게 됩니다.
저는 와치독 카운터를 잘못 사용한 적이 있어서 계속 리셋이 되었던 적이 있었는데요.
그 때는 와치독이 ON 되어 있는 줄 모르고 계속 리셋 신호가 발생하길래 왜 그럴까 하루동안 고민했었는데
단순히 와치독 카운터를 OFF시키니까 해결되서 허무했던 적이 있습니다.
728×90
반응형
MCU에서 와치독 타이머(Watchdog Timer)란 무엇인가?
와치독 타이머의 이해
watchdog의 영어뜻은 ‘감시견’을 말한다. 아마도 집을 지키는 것을 뜻할 것이다. 마이크로컴퓨터에서 와치독이란 용어는 시스템이 고장나서 중단되거나 소프웨어 오류로 무한루프에 빠지는 상태를 감시하는 것을 뜻한다. 그리고 타이머는 일정시간이 지나면 특정 동작을 하는 장치를 말하는데 여기서는 설정시간 경과시 시스템을 리셋한다 . 결국 와티독 + 타이머 = 시스템 감시 타이머 = 설정한 일정시간 동안 시스템을 감시하다가 경과되면 시스템을 리셋하는 장치나 기능이다.
와치독 타이머는 왜 쓸까?
임베디드 시스템의 경우 혼자 오류를 복구해야 하는 능력이 필요한 경우가 많다. 만약 화성에 간 우주선에서 고장이 난다면 어떡하겠는가? 시스템의 정상동작을 감시하다가 문제가 생기면 다시 시스템을 재부팅해서 정상동작하도록 하게 만드는 것이다.
워치독 타이머의 사용
사용 법은 간단하다. 워치독 타이머를 설정하고 정상 동작 중에는 일정시간 간격 마다 타이머 리셋 하도록 코딩하면 된다. 이런 리셋을 PIC 마이크로 컨트롤러 명령어로 CLRWDT(Clear Watchdog Timer)라 부르더군.
National Instruments
워치독 타이머란?
Multifunction DAQ (MIO)워치독 타이머란 무엇이며, 어떻게 동작합니까?
일반적으로 제어시스템은 불필요한 반복 또는 제어 실패를 방지하는 메커니즘을 필요로 합니다. 시스템 중 일부가 예상치 못한 제어 실패를 일으켰을 때, 제어 실패 방지 메커니즘은 시스템을 안전모드로 전환시킵니다. 워치독 타이머는 이와 같은 안전 메커니즘을 제공합니다.
워치독 타이머 사용에 추천되는 제품:
Note: 각 디바이스가 워치독 타이머를 제공하는지 데이터시트를 반드시 확인하시기 바랍니다.
워치독 타이머는 어떻게 동작합니까?
워치독 타이머는 컴퓨터가 적절히 동작하는지 또는 디바이스가 네트워크에 잘 연결되어있는지 끊임없이 확인함으로써 동작합니다. 만약 프로그램으로 설정된 시간제한 내에 확인 동작에 대한 응답을 받지 못하면 워치독 타이머는 안전모드를 출력하게 됩니다. 일단 워치독 타이머가 설정되고 시작되고 나면 소프트웨어 어플리케이션은 타이머가 만료되는 것을 방지하기 위해 반복적으로 리셋되어야 합니다. 이 리셋은 컴퓨터가 제대로 동작하는지 확인하는 역할을 하며, DAQmx 워치독 태스크 컨트롤 VI에 의해 작업이 이루어집니다.
만약 컴퓨터 고장과 같은 문제가 발생한다면 하드웨어는 워치독 타이머가 만료될 때까지 기다릴 것입니다. 워치독 카운터가 만료되면, 워치독 카운터는 미리 정의된 안전 상태를 출력하며 예정되었던 모든 출력들은 무시됩니다. 다시 디바이스가 하드웨어 명령에 응답하게 하려면 워치독 타이머의 만료상태를 풀어주어야 합니다. 보통 만료 상태를 푸는 동작은 DAQmx 워치독 태스크 컨트롤 VI에 의해 수행됩니다. X시리즈 DAQ카드 또는 산업용 디지털 I/O을 사용하는 경우, DAQmx 워치독 태스크 컨트롤 VI과 디바이스 리셋의 두 가지 방법으로 워치독 타이머 만료를 해제할 수 있습니다. 반면 cDAQ-9188XT를 사용하는 경우에는 오직 디바이스 리셋만 만료를 해제할 수 있습니다.
NI-DAQmx API에서 워치독 타이머를 사용하는 것에 대한 더 자세한 정보는 아래 링크된 기술백서를 참고하시기 바랍니다.
04/02/200411/11/2014381BTBCH
워치독 타이머 (WatchDog Timer; WDT)
워치독 타이머(WatchDog Timer; WDT) 요약
AVR 장치는 주요 명령 클럭에서 별도의 오실레이터를 사용하는 워치독 타이머(Enhanced Watdog Timer; WDT)가 장착되어 있습니다. WDT는 내장된 128kHZ 오실레이터의 클럭사이클을 기반으로 ‘카운터’를 증가시키는 장치입니다. WDT는 ‘카운터’가 타임아웃 값에 도달하면 인터럽트나 시스템 리셋을 강제합니다. 일반적인 동작 모드에서는, 어플리케이션에서 워치독 타이머 리셋 명령으로 타임아웃 값까지 도달하기 전에 카운터를 리셋합니다. 만약 카운터가 재시작하지 않으면 인터럽트 또는 시스템 리셋이 작동합니다.
WDT 특징
– 별도 내장 오실레이터의 클럭
– 3가지 동작모드: 인터럽트, 시스템 리셋, 인터럽트와 시스템 리셋
– 16ms부터 8secs까지 선택적으로 타임아웃 시간 설정
– Fail-safe 모드를 위한 Optional Hardware fuse on (WDTON)
인터럽트 모드(Interrupt Mode)
인터럽트 모드에서, WDT는 타이머가 끝나면 인터럽트를 강제합니다. 인터럽트는 슬립 모드에서 장치를 깨우는 데 사용될 수 있고 또한 범용 시스템 타이머로 사용될 수 있습니다.
시스템 리셋(System Reset)
시스템 리셋 모드에서, WDT는 타이머가 끝나면 리셋을 강제합니다. 런어웨이 코드(Runaway code)로 인한 시스템 장애를 방지하기 위해 사용된다. 이러한 장치는 워치독 타이머 제어 레지스터(WDTCSR) 내 시스템 리셋 모드(WDE) 비트 비트를 통해 이루어집니다.
인터럽트와 시스템 리셋 모드 (Interrupt and System Reset Mode)
인터럽트와 시스템 리셋 모드는 두 모드를 모두 사용하는 것으로, 인터럽트를 강제한 후 시스템 리셋 모드로 전환합니다. 이 모드는 시스템 리셋 전에 주요 인자를 저장하는 시간을 주고 안전하게 셧다운 할 수 있도록 해 줍니다. WDTIE와 WDTE가 SET되면서 동작합니다.
WDT 타임아웃 시간
워치독 타이머 Watchdog Timer Control Registe(WDTCSR) 내에 Prescale bits로 WDP[3:0]가 있습니다. WDP[3:0]을 통해 WDT가 동작할 때 WDT 딜레이를 정할 수 있습니다. (e.g. 16ms ~ 8.0s)
WDTON
WDTON 퓨즈가 프로그램되어 있다면 WDT를 시스템 리셋 모드로 강제합니다. WDE 비트와 WDIE 비트가 각각 1과 0으로 잠깁니다.
WDT 시스템 리셋 플래그
워치독 시스템 리셋이 발생하면, MCU 상태 레지스터 내 워치독 시스템 리셋 플래그 (WatchDog System Reset Flag; WDRF) 비트가 SET된다. WDRF 비트는 Power-on 리셋에 의해 clear되거나 BIT에 0을 씀으로써 clear된다. 리셋 조건을 구별하기 위해, 사용자는 반드시 읽은 후 최대한 일찍 WDRF를 리셋해야 한다. 만약 다른 리셋이 발생하여 레지스터가 clear되면, 리셋의 원인은 리셋 플래그를 분석하여 알아낼 수 있다.
XMC Tutorial
Watchdog
목적
오류발생 복구 방법으로 기본적으로 사용하는 watchdog 의 개념을 이해하고 DAVE App의 구성을 이해한다.
참고자료
[XMC4500 Reference Manual v1.5 2014-04] xmc4500_rm_v1.5_2014_04.pdf [XMC4500 Data Sheet v1.4 2016-01] Infineon-XMC4500-DS-v01.04-EN.pdf [WATCHDOG] (DAVE APP on-line help)Watchdog 이란
Watchdog 타이머 (혹은 Computer Operting Properly:COP 타이머, 또는 줄여서 watchdog 이라고도 함)는 컴퓨터 오작동을 감지하고 복구하는 데 사용되는 타이머이다. 정상 작동 중에는 컴퓨터가 정기적으로 watchdog 타이머를 리셋하여 경과 시간이 지나지 않게, 즉 “시간 초과(time out)”하지 않게 하여야 한다. 하드웨어 오류 또는 프로그램 오류로 인해 컴퓨터가 watchdog을 재설정하지 못하면 타이머가 경과되고 시간 초과 신호가 생성된다. time-out 신호의 발생은 컴퓨터의 루프가 정상적으로 동작하고 있지 못함을 나타는 신호라고 할 수 있고, 이 신호가 발생한다면 오류상황에 대한 시정 조치가 취해져야 한다. 시정 조치에는 일반적으로 컴퓨터 시스템을 안전한 상태로두고 정상적인 시스템 작동을 복원하는 것 등이다.
watchdog 타이머는 일반적으로 임베디드 시스템 및 기타 컴퓨터 제어 장비에서 찾아 볼 수 있다. watchdog를 사용하여 사람이 장비에 쉽게 액세스 할 수 없거나 적시에 결함에 대응할 수 없는 경우에 효과적으로 활용할 수 있다. 그런 시스템에서는 컴퓨터가 멈추면 재부팅 할 수 없다. 예를 들어, 우주 탐사선과 같은 원격 임베디드 시스템은 인간 조작자가 물리적으로 접근 할 수 없다. 장애로부터 자율적으로 복구 할 수없는 경우 잘못하면 이 시스템을 영구적으로 사용할 수 없게 될 수 있다. watchdog 타이머는 일반적으로 이와 같은 경우에 사용됩니다.
워치 독 타이머를 다시 시작하는 행위는 일반적으로 “개 걷어차기, Kicking the dog”또는 다른 유사한 용어로 부른다. 일반적으로는 watchdog 제어 포트의 특정값을 쓰는 것이다.또는 통합 워치 독 타이머가있는 마이크로 컨트롤러에서 특별한 기계 언어 명령어를 실행하여 워치 독을 실행할 수도 있다. 예로 일부 PIC 마이크로 컨트롤러는 CLRWDT (클리어 워치 독 타이머) 명령어를 사용하여 같은 동작을 시킨다. 운영 체제를 사용하는 컴퓨터에서는 이와 같은 저수준의 동작을 장치 드라이버를 호출하는 방식으로 하게된다. 예를 들어 Linux 운영 체제에서 사용자 프로그램은 일반적으로 / dev / watchdog에 0 문자를 쓰는 방식으로 watchdog 장치 드라이버와 상호 작용하여 watchdog을 강제 종료하게 된다.
임베디드 시스템에서 watchdog
watch 타이머는 소프트웨어 이상을 자동으로 감지하고 프로세서가 리셋되면 자동으로 재설정하는 데 사용할 수있는 하드웨어이다. 일반적으로 watchdog 타이머는 초기 값에서 0으로 카운트 다운하는 카운터를 기반으로한다. 임베디드 소프트웨어는 카운터의 초기 값을 선택하고 주기적으로이를 다시 시작한다. 소프트웨어가 소프트웨어를 재시작하기 전에 카운터가 영 (0)에 도달하면 소프트웨어는 오작동하는 것으로 추측되며 프로세서의 리셋 신호가 assertion 된다. 휴먼 오퍼레이터가 전원을 다시 껐다가 키는 것처럼 프로세서 (및 실행중인 소프트웨어)가 다시 시작된다.
그림은 일반적인 watchdog 의 활용 구조를 보여줍니다. 도시 된 바와 같이, watchdog 타이머는 프로세서 외부의 칩이다. 그러나 CPU와 동일한 칩에 포함될 수도 있다. 두 경우 모두 워치 독 타이머의 출력은 프로세서의 리셋 신호에 직접 연결된다.
“개 걷어차기, Kicking the dog”
watchdog 타이머 카운터를 다시 시작하는 과정을 때때로 “개 걷어차기”라고 한다. 이것은 사나운 개가 사람과 대치하고 있는 상황을 상상해 보면 된다. 사람이 개가 무섭거나 귀챦다고 방치하고 있는 상태가 되면 일정 시간이 지난 후에 그 개는 사람을 가볍게 보고 달려들어 물게 된다. 그러나 계속 긴장하고 있는 상태에서 그 개를 주기적으로 걷어차 주면 그 개는 사람에게 순응적으로 길들여 지게 된다. 사람(소프트웨어)이 정신을 바짝 차린상태에서 주기적으로 watchdog를 걷어차(reset watchdog) 주어야 한다. 만약 한동안 그 watchdog를 걷어차 주지 않으면(time-out) 그 개가 사람을 공격하여 달려든다(system reset).
다음은 간단한 예제코드 이다. 여기에는 시스템의 전체 동작을 제어하는 무한 루프가 하나있다. main () + ISR이라고하는이 소프트웨어 아키텍처는 단일 임베디드 시스템을 기반으로하는 저렴한 마이크로 컨트롤러 및 동작을 사용하는 많은 임베디드 시스템의 구조이다. 이 watchdog의 하드웨어 구현은 카운터 값이 메모리 매핑 I/O로 액세스 할 수있는 제어 레지스터를 통해 설정할 수 있는 예이다. 만약 for 루프의 실행시간이 최대 5msec 이내이고, 5msec에 해당하는 watchdog 카운터의 값이 10000 이라고 가정해 보자. 만약 이 프로그램이 정상적으로 동작한다면 5msec 이내에, 즉 watchdog 카운터의 값이 감소해서 0이 되기 이전에 항상 10000 의 값으로 새롭게 갱신될 것이다. 만약 반대로 프로그램의 동작에 문제가 있어서 실행시간이 5msec 이상이 된다면 watchdog 의 값을 갱신하기 전에 0이 되어서 watchdog 이벤트를 발생하게 된다. watchdog 이벤트 핸들러에서는 이러한 상황에 대한 대응 방안이 프로그래밍 되어 있어야 한다.
uint16_t volatile * pWatchdog = (uint16_t volatile *) 0xFFFF00; main(void) { hwinit(); for (;;) { *pWatchdog = 10000; read_sensors(); calc_control_algorithm(); write_actuator(); } }
검출할 수 있는 잠재적인 오류 상황들
watchdog 타이머는 많은 위험한 상황에서 시스템을 복구 시키는 용도로 사용할 수 있다. 효과적으로 watchdog를 사용하고자 한다면 전체적인 소프트웨어의 실행 루프 내에서 동작하도록 하여야 한다. 소프트웨어 설계자는 잠정적으로 발생할 수 있는 오동작에 대한 시나리오를 가지고 이것에 대응하는 방식으로 watchdog 타이머를 사용하여야 한다.
시스템은 여러가지 이유로 정지하게 된다. 대표적으로 흔히 말하는 무한루프에 빠지게 되는 것이 가장 간단한 예이다. 이런 상황이 위의 코드에서 read_sensors() 함수 호출에서 발생했다고 가정해 보자. 인터럽트와 연관된 부분은 for 루프와 관계없이 동작하게 되겠지만, calc_control_algorithm(), write_actuator() 함수등은 다시 실행될 수 없는 상황이 되는 것이다.
또다른 가능성은 루프가 수행되는 동안 예상치 못했던 다수개의 인터럽트가 발생하여 루프의 수행시간을 지연시키는 것이다. 인터럽트 서비스 루틴들은 일반 함수 보다 우선순위가 높으므로 다수의 인터럽트가 발생하게 된다면 루프의 수행이 지연되어 경우에 따라 시간초과 상황이 되는 것이다.
멀티 태스킹 커널을 사용할 때 교착 상태(deadlock)가 발생할 수 있다. 보다 상세한 내용은 실시간운영제계를 참고하도록 하자
이러한 오류가 일시적인 경우에는 watchdog이 시스템을 재설정 하게 되면 이전과 같이 정상적인 상태로 완벽하게 복귀할 수 있다. 그러나 하드웨어 고장으로 인한 watchdog 상황이라면 시스템이 계속 리셋 될 수 있다. 이러한 이유 때문에 watchdog에 의한 재설정 횟수를 세는 것이 현명 할 수 있으며 일정한 실패 횟수 후에 시도를 포기하는 것이 좋다.
마이크로컨트롤러 적용시 고려사항들
watchdog를 가지고 있는 마이크로컨트롤러라도 기본값(default)로 watchdog 는 비활성화 되어 있다. watchdog를 활용하려면 하드웨어 초기화 단계에서 반드시 활성화 해주어야 한다. 그리고 대부분의 경우에는 일단 watchdog 가 활성화 되면 소프트웨어적으로 비활성화 할 수 없도록 되어 있다. 이것은 소프트웨어의 오류로 인하여 watchdog가 비활성화 되어 기능을 수행할 수 없도록 되는 것을 방지하기 위한 것이다.
watchdog는 시스템의 초기화단계와 같이 정상적인 동작이지만 오랜 시간이 걸리는 경우에는 사용하면 안된다. 시간이 오래 걸리는 서비스등, 메모리 검사, 큰 자료의 복사 등과 같이 오랜 시간동안 중단 없이 동작하는 경우에는 watchdog 서비스를 비활성화 시켜야 한다. 이와 같은 과도상태가 지난 후 예측가능하고 반복적인 동작을 수행해야 하는 때가 되었을 때 watchdog 를 활성화 시켜야 한다.
watchdog 서비스는 시스템이 불안한 개발초기에는 일반적으로 비활성화 한 상태로 사용한다. 개발초기에는 하드웨어적으로 예상치 못한 인터럽트 등의 예외 상황들이 발생할 수도 있고, 소프트웨어 또한 상당히 불안한 상태이다. 이 경우에는 어느 원인에 의해서 무한루프가 발생되고, 인터럽트가 발생되었는지를 찾는 것이 우선적으로 중요한 때이다. 설계에 따라 각 기능들이 모두 다 구현된 후, 시스템의 안정성을 더욱 높이기 위하여 watchdog 를 활성화하는 것이 바람직하다.
DAVE APP (WATCHDOG)
WATCHDOG APP은 시스템이 정지 또는 교착상태라서 시스템이 응답하지 않을 때, 시스템을 정상화하는 역할을 한다. 이 APP은 다음의 기능을 제공한다.
와치독 서비스 윈도우 범위를 설정할 수 있다.
윈도우 주기 내에서 와치독 서비스가 실패 했을 때, 사전 위험 알람 이벤트를 만들 수 있다.
위험 알람 이벤트로 NMI를 트리거 할 수 있다.
서비스 알림 펄스 신호의 펄스폭을 조정 할 수 있다.
아키텍쳐(Architecture)
위 그림은 WATCHDOG APP의 내부 소프트웨어 아키텍처를 표현한 것이다. WATCHDOG APP은 MCU 내부의 와치독 모듈을 설정한다. 게다가, 이 앱을 사용하기 위해서는 CLOCK APP을 필요로한다.
Signals
Signal Name Input/Output Availability Description service_indication_pulse output Always 서비스 알림 신호
APPS consumed
APP name Consumption Description CLOCK_XMC4 Always 클럭 설정을 초기화한다. GLOBAL_SCU_XMC4 SCU 인터럽트 사용시 콜백함수를 설정하고 위험 알람신호 이벤트 때 실행한다. CPU_CTRL_XMC4 NMI 인터럽트 사용시 사전 위험 알림신호 이벤트 시 NMI 핸들러를 실행한다.
설정(Configuration)
Window upper bound: Desired[ms] 와치독 윈도우의 최대값 [0 ~ 178956.97]
Window upper bound: Actual[ms] 실제로 적용 된 윈도우 상한 범위 [0 ~ 178956.97]
Window lower bound: Desired[ms] 와치독 윈도우의 최소값 [0 ~ 178956.97]
Window lower bound: Actual[ms] 실제로 적용된 윈도우 하한 범위 [0 ~ 178956.97]
Service indication pulse: Width 서비스 알림 펄스 신호의 펄스 개수 설정 [1 ~ 256]
Pre-warning alarm: Enable Enable시, 상한 범위 값을 처음 지날 때 알람 신호를 트리거한다.
Pre-warning alarm: Event request Via Interrupt : 이벤트로 인터럽트를 트리거한다. Via NMI : 이벤트로 NMI를 트리거한다.
Pre-warning alarm: Event handler 인터럽트 핸들러의 이름을 설정 할 수 있다. 단, NMI는 NMI_Handler() 루틴을 써야한다.
자료구조
WATCHDOG APP관련 설정 정보를 관리하기 위하여 WATCHDOG 구조체를 활용하여 WATCHDOG_t 자료형을 사용하고 있다. WATCHDOG_t 자료형은 와치독의 윈도우 상한 범위, 하한 범위 등의 설정정보를 관리하기 위해 XMC_WDT_CONFIG_t 자료형을 포함하고 있다.
typedef struct WATCHDOG { const XMC_WDT_CONFIG_t* const config; /**< Configuration of WDT */ GLOBAL_SCU_XMC4_t* const scu_global_handler; /**< pointer to SCU_GLOBAL APP instance*/ GLOBAL_SCU_XMC4_EVENT_HANDLER_t callback_func_ptr; /**< Callback function pointer */ bool initialized; /**< Holds the initialization status */ } WATCHDOG_t; typedef struct XMC_WDT_CONFIG { uint32_t window_upper_bound; /**< Upper bound for service window (WUB). Reset request is generated up on overflow of timer. ALways upper bound value has to be more than lower bound value. If it is set lower than WLB, triggers a system reset after timer crossed upper bound value. Range: [0H to FFFFFFFFH] */ uint32_t window_lower_bound; /**< Lower bound for servicing window (WLB). Setting the lower bound to 0H disables the window mechanism. Range: [0H to FFFFFFFFH] */ union { struct { uint32_t : 1; uint32_t prewarn_mode : 1; /**< Pre-warning mode (PRE). This accepts boolean values as input. */ uint32_t : 2; uint32_t run_in_debug_mode : 1; /**< Watchdog timer behaviour during debug (DSP). This accepts boolean values as input. */ uint32_t : 3; uint32_t service_pulse_width : 8; /**< Service Indication Pulse Width (SPW). Generated Pulse width is of (SPW+1), in fwdt cycles. Range: [0H to FFH] */ uint32_t : 16; }; uint32_t wdt_ctr; /* Value of operation mode control register (CTR). It’s bit fields are represented by above union members. */ }; } XMC_WDT_CONFIG_t; 와치독 관련 동작을 프로그래밍 하기 위한 열거형 자료형들은 다음과 같다. typedef enum WATCHDOG_EVENT_MODE { WATCHDOG_EVENT_MODE_INTERRUPT = 0U, /**< Regular Interrupt */ WATCHDOG_EVENT_MODE_NMI_REQUEST = 1U /**< Promoted to NMI */ } WATCHDOG_EVENT_MODE_t; /** * @brief Initialization status. */ typedef enum WATCHDOG_STATUS { WATCHDOG_STATUS_SUCCESS = 0U, /**< Status success */ WATCHDOG_STATUS_FAILURE, /**< Status failure */ } WATCHDOG_STATUS_t; 메쏘드(Method) WATCHDOG APP을 초기화, 와치독을 시작/정지 할 수 있다. WATCHDOG_STATUS_t WATCHDOG_Init (WATCHDOG_t *handle); __STATIC_INLINE void WATCHDOG_Start (void); __STATIC_INLINE void WATCHDOG_Stop (void); 와치독을 서비스 할 수 있다. __STATIC_INLINE void WATCHDOG_Service (void); 와치독의 카운터 값을 읽을 수 있다. __STATIC_INLINE uint32_t WATCHDOG_GetCounter (void); 와치독 알람 이벤트 플래그를 클리어 할 수 있다. __STATIC_INLINE void WATCHDOG_ClearAlarm (void); 사용예 실습프로젝트 Lab Watchdog 요약
워치독 타이머 내장 저포화 레귤레이터 – 제품 검색 결과
워치독 타이머 내장 저포화 레귤레이터
로옴은 범용 3단자 레귤레이터, 저소비전력, 대전류, 고내압 등 폭넓은 라인업을 구비하여 휴대전화, 자동차, 가전, 민생기기, 산업기기의 전원 회로에 기여합니다.
키워드에 대한 정보 워치 독 타이머
다음은 Bing에서 워치 독 타이머 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.
이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!
사람들이 주제에 대해 자주 검색하는 키워드 Watchdog timer working || Microcontroller || Arduino ||Embedded system
- 동영상
- 공유
- 카메라폰
- 동영상폰
- 무료
- 올리기
Watchdog #timer #working #|| #Microcontroller #|| #Arduino #||Embedded #system
YouTube에서 워치 독 타이머 주제의 다른 동영상 보기
주제에 대한 기사를 시청해 주셔서 감사합니다 Watchdog timer working || Microcontroller || Arduino ||Embedded system | 워치 독 타이머, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.