배터리 작동식 제품의 전력 효율을 위한 펌웨어 제작

  • 자료제공│키사이트테크놀로지스 (Keysight Technologies)
  • 2014-11-19 오전 11:42:38



오늘날 대부분의 전자기기들은 배터리를 주 전원으로 사용하고 있으며 이러한 제품들은 날이 갈수록 늘어가고 있다. 이들 제품이 심박조율기이거나 연기 탐지기(화재 경보기) 건, 핸드폰 또는 고사양 컴퓨터 디바이스건 상관없이 가장 큰 문제는 배터리 수명이다. 전자 하드웨어는 이러한 저전력 수요를 처리하기 위해 꾸준히 진화하고 있으며, 프로세서는 필요에 따라 다양한 파워 모드를 갖추고 있다. RF 트랜시버 칩은 신호 대기, 신호 전송, 신호 수신 상태에 따라 서로 다른 전력이 필요하다. 본고에서는 배터리로 작동하는 제품의 전력 효율을 향상시키는 펌웨어 제작에 대하여 알아본다.

교류 전력으로 작동되는 디바이스의 경우 펌웨어는 어느 정도의 전력 낭비를 허용하도록 코딩되어 있다. 예를 들어 펌웨어는 전력이 많이 들어가는 무한 루프를 사용할 수도 있다. 이러한 루프는 특정 조건을 기다리는 용도로 반복적인 작업을 수행하기도 한다. 예를 들어 클락 기능을 이용하여 매 분 마다 서브 루틴을 호출하는 식이다. 이와는 반대로, 배터리에서 전원을 공급받는 디바이스는 배터리 런타임을 극대화하기 위한 펌웨어 기술들을 활용해야만 한다. 이러한 펌웨어는 프로세서가 전력을 소모하는 루프를 피해야 한다. 적합한 기술은 프로세서를 저전력 유휴 모드(idle mode)에 두었다가, 무언가를 해야 할 때에만 프로세서를 깨우는 타이머 인터럽트를 갖추는 것이다. 반복적인 작업은 타이머를 이용해 작동 시키며, 작동 후 저전력 유휴 모드로 돌아가도록 해야 한다.



교류 전원으로 작동되는 디바이스 개발자들은 부팅 시 모든 주변 칩을 켜고 일반 모드로 놔두곤 한다. 이 방법은 펌웨어를 단순화시키지만 필요보다 많은 전력을 소모한다. 프로세서와 마찬가지로, 주변 칩도 가능한 최저 전력 상태를 유지해야 한다. RF 트랜시버 칩은 신호를 송 수신 할 때 많은 양의 전력을 사용하지만, 신호 대기 시에는 상황에 따라 적은 전력을 사용할 수 있다. 저전력 RF 트랜시버 칩은 WOR(Wake On Radio) 기능을 갖추고 있다.

예를 들어, 인텔의 CC2500 RF 트랜시버는 유휴 모드에서 1.5mA를 사용하지만, WOR을 사용하는 슬립 모드에서는 900nA 를 사용한다. 이것은 세 자리수 이상의 차이이기 때문에, 유휴 상태에서 소비되는 전력을 유지시키는 것 보다는 휴면상태로 유지하는 것이 중요하다. 따라서, 전력 소비량을 최적화하기 위해서는 주변 칩의 전원 상태를 적극적으로 관리하는 보다 복잡한 펌웨어가 필요하다.

저전력 어플리케이션을 개발할 때는 디버깅 도구도 개선되어야만 한다. 크로스 컴파일러(cross-compiler)와 디버거는 기능적 결함을 파악하는데 도움을 주지만, 전력 사용량에 대한 결함을 식별하는 데는 적합하지 않다. 디버거를 통해서는 RF 트랜시버 칩을 켠 채로 놔두었는지, 프로세서가 잘못된 전원 모드에 있는지, 혹은 타이머 인터럽트가 너무 많은 전력을 소비하는지에 대한 내용을 알 수 없다. 전체 전력 소비량을 파악하기 위해서는 DC 파워 분석기 같은 또 다른 디버깅 툴을 사용해야 한다.



DC 파워 분석기는 개발자에게 디바이스의 작동에 따른 시각화된 전력 소비량을 제공한다. DC 파워 분석기의 효과를 설명하기 위해, 각종 배터리 작동형 제품들이 가지고 있는 “자체 테스트”기능에 대해 생각해 보자. 유휴모드에서 “자체 테스트” 된 RF 트랜시버가 테스트 후 슬립모드로 들어가야 하는 것을 잊어 버린 경우라면, 배터리 수명에 부정적인 영향을 끼칠 것이다. 이러한 프로그램상 결함은 식별하기 어렵다. DC 파워 분석기는 자체 테스트가 실행 된 전과 후의 전력 사용량을 분명하게 표시하여 개발자를 돕는다. 시간 대비 전력량을 통해 자체 테스트가 완료된 후에 디바이스가 거의 1.5mA 수준으로 소비되는 것이 보이기 때문에 명확하게 문제점을 파악할 수 있다.

과도한 전력 사용을 감지하는 방법을 시연하기 위해, 키사이트 14585A 제어 및 분석 소프트웨어와 함께 키사이트 N6705B DC 파워 분석기를 사용했다. 테스트 셋업에 대한 설명은 그림 1에서 확인할 수 있다.

먼저, 인텔MSP430 프로세서를 실행시키기 위해 간단한 프로그램을 개발하였다. (이 프로세서는 다섯 가지 저전력 모드를 지원한다) MSP430의 주변 칩으로 작동하는 인텔 CC2500 RF 트랜시버는 WOR을 포함한 다양한 구성을 지원한다.



모든 것이 연결 된 후, 키사이트 14585 제어 및 분석 소프트웨어를 실행하여 채널 1의 전원 버튼을 누른다. 그리고 기기 및 소프트웨어가 약 1 분 동안의 전류 데이터를 수집 할 수 있도록 한다. MSP430 프로그램을 실행하면 14585A소프트웨어를 통해 전력 사용량을 확인 할 수 있다(그림 2 참조).

프로그램이 시작되었음을 나타내는 두 개의 LED가 깜빡이며 실행 프로그램이 시작된다. 이 깜빡임이 약 5 초간 지속됨을 그림에서 확인 할 수 있다. 여기서부터 프로세서는 약 4.5 초 동안 저전력 모드3이 되며, 이후 4.5 초간 저전력 모드 2가 된다. 이러한 파워 모드 변환은 1.5 초마다 호출되는 워치 독 타이머 이벤트에 의해 작동된다. 차트에 1.5초 주기의 약간의 전류 상승은 워치 독 타이머가 실행 되어 정해진 로직을 수행하는 것을 보여준다. 워치 독 타이머는 1분간의 프로그램을 통해 각기 다른 파워 모드로 4.5 초 마다 변환을 일으키게 한다. 파워 모드 변환 시마다 LED가 깜빡이며 이는 차트에 명확히 표시된다.

대부분의 파워 모드 상태에서 워치 독 타이머 이벤트는 감지하기가 매우 쉽다. 약 1.5 초 간격의 작은 파워 스파이크로 확인 할 수 있다. 23초쯤 워치 독 타이머의 스파이크가 사라진다. 이것은 프로세서가 액티브모드로 전환되었기 때문이고, 이로 인해 워치독 타이머 같은 모드 인터럽트는 제거된다. 27초쯤에 워치 독 타이머의 스파이크가 다시 보이며, 이는 프로세서가 저전력 모드 상태로 돌아온 것을 나타낸다.

약 28초의 시점에서 RF 트랜시버는 유휴 모드 상태가 되는데 이는 1μA에서 1.5mA에 까지 전류를 엄청나게 상승시키는 요인이 된다. 비록 이것이 천 배 또는 세 자리수의 변화이지만, 키사이트 N6705B DC 파워 분석기가 제공하는 넓은 동적 범위의 전류 측정기능 덕분에 워치독 타이머 같은 이벤트를 확인 할 수 있다. 이를 통해 사용자는 시스템이 마이크로암페어나 밀리암페어, 심지어 수 암페어를 소모 하는지 확인 할 수 있다. 이러한 툴을 통해 개발자는 두 칩 중 한 칩이 훨씬 더 많은 전력을 사용한다 하더라도, 각 칩의 파워 모드를 확인할 수 있다.

이 차트를 통해 개발자는 기존의 디버깅 및 테스트 도구에서 판단할 수 없었던 프로그램상의 정확성을 확인할 수 있다. DC 파워 분석기는 사용자가 프로세서를 어떤 모드에 있는지, 타이머 이벤트의 주기와 간격, 그리고 언제 주변 칩들이 켜고 꺼졌는지를 식별하게 해준다. 또한 일정 시간 동안 총 전력 사용량을 측정 할 수 있어서 배터리 수명을 정확하게 예측 할 수 있다. 이 차트에서 흥미로운 점은 LED의 높은 전력 사용량이다. 이는 전력에 민감한 애플리케이션에서는LED를 밝히는 것을 제한해야 한다는 점을 알려준다.

그림 3에서 마커는 프로세서가 실행 되고 있는 전력 모드를 확인하는 데 도움을 준다. 차트를 확대 한 후, 마커를 통해 두 개의 워치 독 타이머 이벤트 사이의 평균 전류 측정을 할 수 있다. 두 마커 간의 평균 전류값은 453nA 이다. 이 값을 통해 MSP430가 저전력 모드 3에 있는지 확인할 수 있다.

또한 워치독 타이머 이벤트를 포함한 측정값을 생성 할 수 있는데, 사용자는 이를 통해 워치 독 타이머 실행 빈도 대비 배터리 수명을 비교해 볼 수 있다. 여기서 워치 독 타이머실행 간격은1.5 초였다. 프로그램은 워치독 타이머가 0.5초마다 가동되도록 재실행 할 수 있으며 이러한 측정 값 사이의 비율은 개발자에게 워치독 타이머의 실행 빈도 증가가 배터리 수명에 어떻게 영향을 주는지에 대한 통찰력을 제공 할 것이다. 이것은 배터리 수명을 최대화하려고 노력하는 개발자에게 유익한 정보이다.

또 다른 배터리 수명 문제에 있어서 펌웨어 개발자는, 제품이 배터리 장착 후 얼마나 오랫동안 실행되는지에 대한 답변을 할 수 있어야 한다. 전체 배터리 런타임을 결정하는 데에도 키사이트 14585A 제어 및 분석 소프트웨어를 사용할 수 있다(그림4 참조). 첫 번째 측정은 두 개의 마커를 이용하여 RF 송수신기 칩이 OFF된 상태에서의 평균전류소모량을 보여준다. 1 초 동안에 걸쳐 평균 전류 소모량은 대략 60μA이다. 2400mAH 수준의 일반 AA 건전지 두 개를 사용하는 것으로 계산해 보면, 저전력 모드에서는 이 제품을 9년 동안 쓸 수 있다.

마커를 이동하여 RF 트랜시버가 유휴 모드인 경우의 전력 사용량을 측정해 보면, 1 초 동안 평균 1.7 mA를 사용하고 있다는 걸 알 수 있다.  이 모드에서는 117 일간 사용할 수 있다. 만약 슬립 모드로 RF 트랜시버를 동작시키고 유휴 모드보다 WOR기능을 활용한다면, 입력 신호에 반응하는 상태에서 배터리 수명은 3 년으로 연장 할 수도 있다.  이것이 WOR에 대한 중요성이 강조되는 이유이다.

펌웨어 개발자가 배터리 작동식 제품의 개발 업무를 맡게 되면, 제품의 배터리 수명을 향상하기 위해 펌웨어를 크게 변경 해야 할 수도 있음을 인식할 필요가 있다. 특히나 명심해야 할 중요한 가이드는 다음과 같다.

•루프를 방지하고, 프로그램 로직을 실행하는 인터럽트를 사용하라. 인터럽트 타이머는 반복적인 논리를 실행하는 좋은 방법이다.
•항상 프로세서와 주변 칩을 최소 가용 전력 상태로 유지하라. RF 트랜시버 같은 칩의 경우, 제품이 비동기 무선 통신을 지원해야 할 때 WOR기능을 사용하라.
•개발 툴셋에 DC 전력 분석기를 포함 시켜라. 이를 통해, 발견하기 힘든 전력적 결함을 추적하는 디버깅 시간을 줄일 수 있으며, 배터리 수명을 예측하기 위해 필요한 데이터를 제공 받을 수 있다. 

<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>


  • 100자평 쓰기
  • 로그인

TOP