답변:
일부 제품은 제조업체가 결정하거나 IEC 60730-1과 같은 국제 안전 표준 또는 미국에서 여전히 사용중인 구형 UL1998을 충족하기 위해 안전 요구 사항을 충족해야합니다. 특정 마이크로 컨트롤러의 내부 감시 기능은 사용하기에 적합 하지 않을 수 있습니다. 경우에 따라 외부 WDT를 내부 WDT와 함께 사용할 수도 있습니다.
TI의 Hercules 시리즈와 같은 특정 마이크로 컨트롤러는 안전에 중요한 시스템 애플리케이션을 매우 중요하게 생각하며 엄격한 요구 사항을 충족 할 가능성이 높지만 비용에 민감한 애플리케이션에는 적합하지 않을 수 있습니다.
일반적으로 WDT는 재산에 치명적인 피해를 입히거나 생명에 상해를 입힐 가능성을 줄이는 여러 가지 방법 중 하나입니다. MCU 메모리에 대한 예기치 않은 액세스 또는 사용되지 않은 메모리에서 프로그램 페치를 감지하는 메모리 보호와 같은 다른 것들이 일반적으로 WDT와 함께 사용됩니다.
안전에 중요한 기능을 수행하는 저렴한 제품의 예로는 자동차 서브 시스템, 차 고문 컨트롤러 및 용광로, 건조기 및 온수기에 사용되는 가스 (천연 가스 또는 프로판) 점화 컨트롤러가 있습니다. 물론 많은 의료 및 항공 우주 제품도 안전에 중요하지만 중복 및 기타 접근 방식을위한 충분한 공간이있을 수 있습니다. 어떤 경우에는 항공기와 같이 쉽게 접근 할 수있는 안전한 상태가 없을 수도 있습니다.
이상적으로 워치 독 타이머는 MCU와 상관없이 매우 간단합니다 (예 : 자체 클럭 소스 및 클럭 모니터가 있어야 함). 소프트웨어 오류로 인해 소프트웨어 오류로 인한 손상보다 더 긴 시간을 설정할 수 없습니다. 시간 초과 또는 창 방식으로 시간에 "petted"상태가 아닌 경우 시스템을 안전한 상태로 전환하여 너무 자주 재설정 할 수 있습니다. 예를 들어, 열 제어 애플리케이션의 WDT는 마이크로 컨트롤러가 해당 시간 동안 잠기면 손상이 발생하지 않기 때문에 몇 초로 설정 될 수 있습니다.
WDT는 안정성과 안전성에 대한 시스템 수준 접근 방식의 일부로 가장 유용합니다.
워치 독 타이머는 버그가 있는 최첨단 마이크로 컨트롤러 의 하드웨어 버그를 방지 할 수 있습니다 . 우리가 최근에 유명한 브랜드에서 사용했던 것 중 하나는 때때로 인터럽트를 놓친 I / O 핀을 가지고 있었으며 때때로 올바르게 시작되지 않았으며 통합 감시기가 때때로 알려진 상태로 시스템을 재설정하지 못한 경우입니다.
오랜 신뢰성 테스트를 시작하기 전까지는 나타나지 않았으며 마이크로 컨트롤러를 변경하는 것보다 외부 감시 장치를 추가하는 것이 더 쉬웠습니다.
PCB에 둘 이상의 IC가있는 경우 모든 것을 안정적으로 부팅하기 위해 외부 리셋 IC 또는 전압 모니터가 필요할 수도 있습니다. 이들 중 다수는 워치 독 역할도합니다.
내부 워치 독의 내부 시계가 실제로 다른 모든 시계와 독립적이며 항상 정상적으로 작동한다고 주장하기는 어렵습니다.
따라서 인증을 위해 일반적으로 보드에 외부 워치 독을 배치하는 것이 훨씬 쉽습니다. 워치 독이 있는지 확인하십시오. 워치 독 시간보다 짧은 간격으로 MCU에 의해 트리거되어야합니다. 따라서 장치가 안전합니다. 우리가 정의한대로.
일부 의견을 해결하려면 :
"항상 그렇게해야한다"-좋은 지적. 워치 독 칩을 사용하고 데이터 시트를 참조하는 것보다 소프트웨어가 모든 상황에서 내부 워치 독을 올바르게 초기화한다는 것을 증명하기가 더 어려울 수 있습니다.
이는 일반적으로 인증 기관에 제시하는 결함 삽입 테스트에 의해 입증됩니다. 따라서 초기화가 수행되는 위치와 워치 독 트리거가 발생하는 코드를 보여줍니다. 일반적으로 특정 시간이 지난 후 워치 독 트리거가 중지되고 컨트롤러가 올바르게 재설정되었는지 확인하도록 코드를 수정하도록 요청합니다.
또는 코드에 실수로 내부 워치 독을 비활성화하는 버그가 포함되어 있지 않다는 것을 증명하기 위해.
적어도 일부 컨트롤러에서는 워치 독이 독립적이라고하며 자체 클럭 소스가 있으며 소프트웨어를 통해 비활성화 할 수 없으며 컨트롤러를 재설정하면 워치 독이 비활성화됩니다. 최소한 이론 상으로는 소프트웨어로 멈출 수는 없지만 클럭이 실제로 독립적이며 EMI에서 멈추지 않을 것이라는 것을 증명하기는 쉽지 않습니다.
또는 외부 워치 독을 가능한 한 빨리 재설정하는 코드가 계속 실행되지 않는다는 것을 증명하기 위해. 문제 해결됨. ;-)
이 경우 특정 간격으로 트리거해야하는 윈도우 워치 독을 사용하고 그렇지 않으면 너무 자주 또는 너무 적게 트리거하면 회로가 재설정됩니다. 작업중 인 STM32에는 내부 윈도우 워치 독이 있지만 메인 클럭에서 파생 된 PCLK1에서 실행되므로 자체 클럭 소스가있는 외부 워치 독만큼 유용하다고 생각하지 않습니다.
또는 일부 천재는 워치 독 서비스 루틴을 타이머 ISR에 넣지 않으므로 주 코드가 충돌 할 수 있지만 인터럽트는 계속 워치 독을 계속 발사하고 서비스합니다 ...
확실히 사실이지만, 리뷰가 그 천재를 다시 의자에 놓을 것입니다. 그러나 제가 처음 시작할 때 저의 첫 번째 아이디어였습니다 .D. 내가 참여한 인증 프로세스 중에는 항상 소프트웨어의 워치 독 부분을 살펴 보았습니다.
마이크로 컨트롤러에 내장 된 워치 독은 다른 외부 워치 독과 달리 실패 할 수있는 특정 속성을 가지고 있습니다.
예를 들어, 일반적인 설계는 저전력 RC 발진기에서 실행되는 워치 독 타이머를 사용하는 것입니다. 오실레이터가 실패 할 수 있습니다. 오실레이터가 아닌 커패시터 방전에 기반한 외부 워치 독은 여전히 많은 경우 마이크로 컨트롤러를 재설정 할 수 있습니다.
또 다른 이유는 외부 감시 기능이 더 강력 할 수 있기 때문입니다. 마이크로 컨트롤러는 특정 전압 범위에서만 안정적으로 작동 할 수 있으며 복잡한 장치이기 때문에 자체 내부 감시 기능을 비효율적으로 만드는 방식으로 래칭 될 수 있습니다. 외부 감시 장치는 허용 가능한 공급 범위가 더 넓을 수 있으며 전기적 노이즈가 발생할 때 문제가 발생하기 쉽습니다.
외부 워치 독은 종종 훨씬 더 넓은 타임 아웃 값을 제공합니다. 내가 자주 사용하는 마이크로 컨트롤러 인 XMEGA는 최대 시간이 약 7 초입니다. 한 제품에 대해 시간 초과가 2 시간 인 추가 외부 감시 장치를 추가했습니다. 이를 통해 몇 초마다 한 번이 아니라 한 시간에 한 번 마이크로 컨트롤러를 깨울 수있어 배터리 구동 장치의 전력 소비가 줄어 듭니다.
외부 워치 독에는 때때로 타이머 및 전압 모니터 / 리셋 제어와 같은 여러 기능이 있습니다. 다시 말하지만, 이는 마이크로 컨트롤러의 내장 시스템보다 전력이 낮을 수 있습니다.
외부 워치 독의 또 다른 흥미로운 장점은 마이크로 컨트롤러 이외의 장치를 재설정하는 데 사용할 수 있다는 것입니다. 예를 들어 전압 조정기의 활성화 핀을 제어하여 한 번에 여러 장치를 재설정하기 위해 전체 회로의 전원을 차단할 수 있습니다. 간단한 로직을 사용하여 여러 소스 의 워치 독 리셋 신호를 결합하여 워치 독이 여러 장치에서 지속적으로 리셋 할 것을 요구할 수 있습니다.
워치 독은 MCU에서 찾을 수있는 다른 내장 주변 장치와 실제로 다르지 않습니다. MCU에는 타이머, RTC, ADC, EEPROM 및 리셋 컨트롤러가 제공되지만 이러한 기능은 모두 별도의 IC로 존재합니다. 사용 가능한 내장 블록이 요구 사항을 충족하지 않으면 외부 블록을 사용해야합니다. 또는 존재하지 않거나 너무 비싸거나 코드를 이식하기 어려운 모든 올바른 블록이있는 MCU를 찾을 수 있습니다.
워치 독은 타이머이며 IC가 일정 기간 동안 입력 펄스를 잃었을 때 출력을 활성화합니다.
그것은이다 빌딩 블록 및 모든 응용 프로그램에 사용할 수 있습니다.
따라서 페일 세이프 모드 에서 데이터 라우팅 변경과 같은 모든 응용 프로그램에서 사용할 수 있습니다 . 마이크로 컨트롤러 클럭이 실패하면 일부 중요한 출력을 비활성화 할 수 없습니다.
외부 워치 독은 마이크로 컨트롤러의 복잡한 클럭 도메인과 관련이 없으며 일부는 아날로그 RC 충전 타이밍 또는 내부 클럭을 가지고 있습니다.
방사선의 디지털 회로는 전하가 플립 플롭에 부딪히면 출력을 트리거 할 수 있습니다. 그러나 일부 아날로그 회로는 커패시터에 전하를 통합하기 때문에 더 안전하며,이를 통합 할 때 안전합니다.