감시 타이머를 이용한 IoT 시스템 견고성 강화
DigiKey 북미 편집자 제공
2016-12-29
사물 인터넷(IoT)을 설계할 때 보안은 필수적으로 강조되는 반면 사람이 개입하지 않아도 장애를 복구할 수 있는 견고한 시스템을 개발하는 것의 중요성은 간과되는 경우가 많습니다. 이러한 견고성을 보장하려면 설계자는 단순한 타이머에서 통합형 스마트 타이머까지 다양한 형태로 제작되는 감시 타이머(WDT)를 면밀히 살펴야 합니다.
이 기사에서는 먼저 내부 및 외부 WDT의 기본 사항을 다시 살펴본 후에 최신 WDT 장치를 소개하고 이러한 장치를 사용하여 시스템 견고성을 보장하는 방법을 소개합니다.
IoT에서 감시 타이머가 중요한 이유
수십 억 개의 IoT 장치가 배치된 현장에서 문제가 발생할 경우 기술 전문가가 적시에 서비스를 하기란 불가능에 가깝습니다. 따라서 IoT 시스템은 사람의 개입 없이도 스스로 장애를 감지하고 복구할 수 있어야 합니다.
감시 타이머는 다양한 모양과 크기로 제작되지만 일반적으로 단순 타이머, 윈도우형 타이머, 스마트 감시 타이머로 분류할 수 있습니다. 감시 타이머는 마이크로 컨트롤러 내부에 하드웨어 및 소프트웨어로 존재할 수도 있고, 외부에 하드웨어로 존재할 수도 있으며, 하드웨어 부품과 소프트웨어 부품을 모두 갖춘 별도의 마이크로 컨트롤러로 존재할 수도 있습니다. 그러나 어떤 감시 솔루션을 사용하더라도 결국 가장 중요한 목적은 시스템을 모니터링하고 복구하는 것입니다. 이러한 측면에서 각 감시 타이머에는 개발자가 견고한 IoT 시스템 설계를 위해 고려해야 할 고유한 특성과 설계적 문제가 있습니다.
내부 감시 타이머 기본 사항
내부 감시 타이머는 거의 모든 마이크로 컨트롤러에 포함되어 있으며 온보드 주변 소자 및 시스템 클록과 상호 작용할 수 있는 하드웨어 주변 장치입니다(그림 1). 기본적으로 내부 감시 타이머는 비활성화되어 있으며, 감시 타이머를 활성화하려면 개발자가 미리 정의된 기간을 설정해야 합니다. 소프트웨어가 멈추거나 소프트웨어 실행에 영향을 주는 하드웨어 장애가 발생할 경우에는 감시 타이머가 만료되어 마이크로 컨트롤러를 강제로 리셋합니다. 그 과정에서 감시 타이머는 오류를 지우고 마이크로 컨트롤러가 시스템을 다시 초기화하도록 합니다.

그림 1: 감시 타이머는 Texas Instruments MSP430G2210과 같은 대부분의 마이크로 컨트롤러에 포함되어 있으며 소프트웨어가 멈출 경우 프로세서를 리셋할 수 있습니다(이미지: Texas Instruments).
내부 감시 타이머는 이론적으로는 매우 단순하지만 제대로 구현하려면 많은 것을 고려해야 합니다. 예를 들어, 감시 타이머용으로 개발된 소프트웨어가 감시 타이머를 무턱대로 지워서는 안 됩니다. 이 소프트웨어는 감시 타이머를 지우기 전에 시스템 검사를 수행하여 모든 작업과 하드웨어가 제대로 작동하는지 확인해야 합니다.
내부 감시 솔루션을 개발할 때 개발자가 준수해야 할 다음과 같은 몇 가지 유용한 정보가 있습니다.
- 어떤 이유로든 감시 타이머를 비활성화하지 마십시오. 마이크로 컨트롤러를 선택할 때, 감시 타이머를 한번 활성화하면 절대 비활성화할 수 없는지 확인하십시오.
- 소프트웨어 기능을 검사하는 경우가 아닌 한 정기 인터럽트에서 감시 타이머를 지우지 마십시오.
- 감시 타이머가 독립적인 감시 타이머인지 확인하십시오. 독립적인 감시 타이머는 시스템 클록이 중단되었는지 감지할 수 있도록 하는 별도의 클록을 사용합니다.
- 윈도우형 감시 기능이 있는 감시 타이머를 사용하십시오. 이러한 감시 타이머의 경우 감시 타이머를 지울 수 있으려면 최소한의 시간이 필요합니다. 윈도우가 시작되기 전에 지우려고 하면 감시 타이머가 시스템을 리셋합니다. 이로써, 제어가 불가능한 소프트웨어가 감시 타이머를 오버라이드하는 것을 방지할 수 있습니다.
내부 감시 타이머는 견고한 내장형 시스템을 구축하기에 좋은 방법이지만, 그것만으로는 견고한 솔루션을 제공할 수 없습니다. 견고성을 제대로 높이려면 개발자는 외부 감시 타이머를 고려해야 합니다.
외부 감시 타이머로 견고성 강화
개발자가 내부 감시 타이머를 아무리 세심하게 구현해도 내부 감시 타이머만으로는 부족할 때가 있습니다. 대부분의 구현에는 결함이 있는데, 대표적으로 시스템 클록 공유 및 비활성화 옵션 사용의 두 가지 경우를 예로 들 수 있습니다.
시스템이 현장에서 자체적으로 작동해야 하는 경우 외부 감시 타이머를 사용하면 다음과 같은 장점이 있습니다.
- 하드 시스템 리셋을 수행하여 마이크로 컨트롤러의 전원을 껐다가 켜면서 내부 주변 장치의 전원도 껐다가 켤 수 있습니다.
- 감시 타이머를 마이크로 컨트롤러 발진기 회로와 분리할 수 있습니다.
- 완전히 독립적인 시스템 모니터링 프로세스를 제공할 수 있습니다.
이 모든 면이 시스템 견고성을 강화하지만 외부 WDT를 사용할 경우 발생하는 단점도 있습니다. 이러한 단점의 예로 IC 추가로 인한 하드웨어 비용 증가와 시스템 복잡성 증가를 들 수 있습니다. 그러나 모든 부분을 종합적으로 생각해 보면 이러한 단점은 사소한 것입니다. 이제 단순하면서도 견고한 외부 감시 회로를 개발하는 방법을 살펴보겠습니다(그림 2).

그림 2: 자체 내부 감시 타이머가 있는 마이크로 컨트롤러의 동작과 상태를 모니터링하는 외부 감시 회로의 예(구성도 작성 도구: Digi-Key Scheme-it®).
이 회로는 내부 감시 타이머를 실행하는 마이크로 컨트롤러와 외부 감시 회로로 구성되어 있습니다. 이 예에서 사용된 감시 회로는 감시 기능이 있는 Texas Instruments TPL5010 나노 전력 시스템 타이머입니다. 이 외부 감시 타이머에는 마이크로 컨트롤러 리셋 핀에 직접 연결된 출력 리셋 핀이 있습니다. WAKE 핀이 토글되면 TPL5010은 DONE 핀에서 하트비트를 발생시켜 마이크로 컨트롤러가 응답할 수 있습니다. 마이크로 컨트롤러가 응답하지 않으면 리셋 회선이 아래로 당겨져 마이크로 컨트롤러가 리셋됩니다. 감시 기간은 R2를 조정하여 설정합니다.
설계에 이와 같이 저렴한 비용의 단순한 회로를 추가하면 시스템 견고성을 크게 강화할 수 있습니다. 개발자는 기판이 돌며 테스트를 시작할 때까지 기다릴 필요도 없습니다. 하드웨어를 사용할 수 있기 오래 전부터, 다른 개발 키트와 함께 TPL5010 개발 키트를 간단하게 설정하여 감시 기능을 테스트할 수 있습니다(그림 3).

그림 3: Texas Instruments TPL5010 개발 기판은 $30 미만의 저렴한 가격으로, 테스트할 마이크로 컨트롤러 연결 뿐만 아니라 TPL5010의 전류 소비 구성 및 측정에도 사용할 수 있는 헤더를 제공합니다(이미지: Texas Instruments).
외부 감시 타이머를 선택할 때 개발자는 다음과 같은 몇 가지 요인을 고려해야 합니다.
- 최소 및 최대 타임아웃 기간
- 윈도우 감시 지원
- 전류 소비
- 핀 수 최소화
- 장애 모드(있는 경우)
스마트 감시 솔루션 설계
IoT 장치를 위한 최고의 감시 타이머는 스마트 감시 타이머입니다. 스마트 감시 타이머는 기본적인 하트비트 모니터링을 수행할 뿐만 아니라 시스템 통신도 모니터링할 수 있는 감시 회로 마이크로 컨트롤러입니다(그림 4). 마이크로 컨트롤러가 인터넷에는 더 이상 응답하지 않는데 외부 감시 타이머는 지우는 경우가 있을 수 있습니다. 그런 경우, 마이크로 컨트롤러를 리셋하는 명령을 인터넷으로 전송할 수 있습니다. 스마트 감시 타이머는 UART 송신 및 수신 회선과 같은 통신 회선에서 시스템을 다시 시작하도록 하는 특수 명령을 모니터링할 수 있습니다.
이 예에서 통신 모듈은 마이크로 컨트롤러와 스마트 감시 타이머 모두에 연결됩니다. 스마트 감시 타이머에도 외부 TPL5010이 있음을 알 수 있습니다. 그 이유는 스마트 감시 타이머가 소프트웨어를 실행하는 마이크로 컨트롤러이고, 견고성을 확보하기 위해 자체 외부 감시 타이머가 있어야 하기 때문입니다.

그림 4: 스마트 감시 시스템 아키텍처의 예(구성도 작성 도구: Digi-Key Scheme-it).
스마트 감시 타이머를 설계할 때 개발자는 다음과 같은 몇 가지 주요 요소를 고려해야 합니다.
- 하트비트 특성
- 입력/출력 가용성
- 비용
- 사용 가능한 플래시 메모리
- 에너지 소비
- 장애 모드
- 물리적 실장 면적 최소화
오늘날 시장에는 좋은 스마트 감시 타이머로 사용할 수 있는 여러 마이크로 컨트롤러가 출시되어 있습니다. 첫 번째는 2kB 플래시와 4개의 I/O 회선이 있는 Texas Instruments MSP430G2xx 입니다. 이 마이크로 컨트롤러에는 매우 간단한 스마트 감시 타이머 구현을 개발할 수 있는 코딩 공간과 핀이 있습니다.
통신 모니터링이 필요한 응용 분야의 경우에는 더 많은 I/O 회선과 메모리를 갖춘 제품이 유용할 수 있습니다. 그런 경우에는 MSP430G2231IPW14R 또는 MSP430G2553IPW20R가 적합할 수 있습니다.
감시 타이머가 진정한 '스마트' 감시 타이머가 될 수 있으려면 스마트 감시 소프트웨어가 반드시 필요하며, 개발자는 그 부분에 특히 주의하여 코드를 작성해야 합니다. 복잡한 코드를 만들 필요는 없습니다. 실은 코드가 간단할수록 더 좋습니다! 감시 타이머에는 작고 단순하면서 실증 가능한 소프트웨어가 가장 좋습니다. TPL5010 평가 모듈 설명서를 활용하여 작성한 간단한 MSP430용 코드의 예(코드 목록):
static volatile bool Reset = true;
void main(void)
{
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
P1OUT |= BIT0; // Set P1.0 to high
P1DIR |= BIT0; // Set P1.0 to output direction
P1DIR &= ~BIT1; // Set P1.1 to input direction
P2IES &= ~BIT0; // P2.0 Lo/Hi edge
P2IFG &= ~BIT0; // P2.0 IFG Cleared
P2IE |= BIT0; // P2.0 Interrupt Enabled
while(1)
{
__delay_cycles(500000); // Set Delay
// If true then the heartbeat was not received
if(Reset == true)
{
// The heartbeat was not received. Reset the processor
P1OUT &=~ BIT0;
__delay_cycles(100); // Set Delay
P1OUT |= BIT0;
Reset = false;
}
else
{
Reset = true;
}
}
}
// Port 2 interrupt service routine
#pragma vector=PORT2_VECTOR
__interrupt void Port_2(void)
{
P2IFG &= ~BIT0; // P2.0 IFG Cleared
P2IE |= BIT0; // P2.0 Interrupt Enabled
Reset = false;
}
코드 목록: 마이크로 컨트롤러 하트비트를 모니터링하는 MSP430 소프트웨어의 예. 예상 기간 내에 하트비트가 수신되지 않을 경우에는 마이크로 컨트롤러가 리셋됩니다(출처: Texas Instruments SNAU173 응용 예제 활용).
이 코드 예에는 스마트 감시 타이머를 초기화한 후 일정 시간 동안 기다렸다가 마이크로 컨트롤러를 다시 시작해야 하는지 검사하는 과정이 나와 있습니다. 스마트 감시 타이머는 마이크로 컨트롤러에 장애가 발생했다고 가정하고 Reset 변수를 true로 설정합니다. 마이크로 컨트롤러에서 하트비트 펄스를 보내면 인터럽트가 트리거되어 Reset 변수가 다시 false로 설정됩니다. 다음과 같은 여러 기능을 샘플 코드에 추가할 수 있습니다.
- 윈도우형 감시 타이머
- 저전력 상태 진입
- 스마트 감시 타이머를 감시하는 TPL5010 지우기
- 통신 회선 모니터링
- 리셋 발생 횟수 추적
견고한 설계를 보장하기 위해 무엇이 필요한지 제대로 파악하기만 하면 가능성은 무한합니다.
결론
IoT의 보안도 중요하지만, 개발자는 시스템 견고성도 놓치지 말아야 합니다. 장치는 사람이 접근하기 어려운 곳에 배포될 뿐만 아니라 연중무휴로 하루 24시간 동안 문제 없이 작동해야 하기 때문에 IoT에서 감시 타이머는 중요한 역할을 담당합니다. 내부 감시 타이머는 개발자에게 최소한의 복구 기회를 제공하며, 외부 감시 타이머와 약간의 추가 소프트웨어를 사용하는 스마트 감시 타이머는 복구 가능한 견고한 설계를 구현할 수 있는 길을 열어줍니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.


