닫기

정전용량식 감지 설계 최적화...범용 8비트 MCU, 소프트웨어 툴 활용

  • 등록 2016.06.13 21:00:53
URL복사

가전이나 산업용 제품에 정전용량식 감지 기능을 추가하는 작업은 결코 쉽지 않다. 개발자가 센서 견고성과 응답성은 높이면서 전류 소모를 최소화해야 하고 그밖의 시스템 차원의 설계 과제들을 해결해야 하기 때문이다. 툴이나 지원을 활용하지 않고 이러한 임베디드 개발 작업을 해야 한다면 소프트웨어나 하드웨어 두 가지 모두에서 시행착오적인 반복을 되풀이해야 함으로써 설계 작업에 많은 시간이 걸릴 것이다. 그러면 제품 출시 일정이 늦어지고 최상의 제품을 달성하지 못할 수 있다. 이러한 문제를 해결해 줄 수 있는 범용 8비트 MCU와 최적화된 소프트웨어 툴로 스마트한 정전용략식 감지 설계 방법을 알아본다.


고정 기능 정전용량식 감지 솔루션은 설계 부담을 어느 정도 덜 수 있으나 곧바로 시스템으로 통합해 넣을 수 있는 경우는 거의 드물다. 많은 디바이스가 여전히 구성 작업과 캘리브레이션을 필요로 하기 때문이다. 또한 고정 기능 솔루션을 통해 개발자는 센서에 시스템 내의 추가적인 임무를 부여하지 않아도 돼 시스템 전류 소모를 줄이고, 보드 크기를 줄이고, BOM 비용을 낮출 수 있다.


범용 8비트 마이크로컨트롤러(MCU)를 기반으로 한 정전용량식 감지 솔루션을 사용함으로써 설계자들은 개발 과정의 모든 단계를 수월하게 할 수 있으며, 정전용량식 감지 펌웨어 라이브러리를 사용해서 프로젝트를 생성하고, 직관적이며 강력한 IDE(통합 개발 환경)를 사용해서 기능을 추가 및 디버그하고, 정전용량식 감지 시각화 툴을 사용해서 인-시스템(in-system) 방식의 실시간 정전용량식 감지 성능을 확인할 수 있다.


정전용량식 감지의 설계 원리


정전용량식(Capacitive sensing) 감지 기술은 센서 입력으로 연결된 전극의 정전 용량을 측정하는 것이다. 측정 전극은 예를 들어 PCB 상에 10mm 직경의 구리로 되어 있고 보드의 접지와 절연되어 있는 원형 패턴일 수 있다. 경우에 따라서 이 PCB로 플라스틱이나 유리로 된 얇은 오버레이를 접착할 수 있다. 이 결과적인 시스템을 터치 인터페이스로 사용할 수 있다. 그러면 기계식 버튼을 사용하지 않아도 된다. 사용자가 전극을 덮고 있는 오버레이 영역을 터치하면 인체의 정전 용량에 의해서 이 전극의 정전 용량의 결합(capacitive coupling)에 영향을 미친다. 그럼으로써 온칩 정전용량성 센서로 측정되는 정전 용량을 변화시킨다. 일련의 샘플들에 대해서 포스트 샘플 프로세싱(post-sample processing)을 해서 정전 용량의 이러한 변화를 감지하고 이러한 변화를 ‘터치’로 판별할 수 있다.


모든 정전용량식 감지 기술이 아날로그 신호로 비교적 소량의 변화를 검출해야 하면서 동시에 전기적으로 잡음이 심할 수 있는 혼성신호 시스템으로 동작해야 하기 때문에 견고하면서 신뢰할 수 있는 센싱 인터페이스를 설계하기가 그리 쉽지 않다.


하드웨어 차원에서 보드 레이아웃과 전극 설계 등을 고려해야 할 뿐만 아니라, 센서의 포스트 샘플 프로세싱을 사용해서 상태 변수를 업데이트하면서 또한 시스템 레벨 이벤트에 동적으로 응답해야 한다. 터치 센싱 전략은 베이스라인을 유지하면서 이 베이스라인을 기준으로 해서 하나 이상의 터치 임계값을 설정하는 것으로 이루어진다. 베이스라인은 전극을 터치하지 않았을 때의 예상되는 정전용량성 센서 출력이다.


프로세싱은 이러한 임계값과 센서 출력을 비교해서 터치 이벤트와 릴리즈 이벤트가 발생되는 것을 판별한다. 이렇게 동작을 설계하면서, 동시에 코드 크기와 평균 전류 소모를 최소화하기 위해서는 펌웨어를 되도록 효율적으로 동작하도록 설계해야 한다. 


펌웨어 개발 부담을 덜기 위해서 많은 커패시티브 센서 업체들이 고정 기능 디바이스를 제공한다. 이것은 정전 용량을 샘플링하고 직렬 인터페이스나 포트 핀 로직 상태를 통해서 터치 판별을 출력하는 IC를 말한다. 그런데 이러한 제품은 사용 편의성 면에서 개발자들에게 매력적으로 보일 수 있으나, 프로그래머블 플래시를 제공하지 않고 기능 셋트 맞춤화가 제한적이어서 터치 판별과 관련해서 더 많은 작업을 전력 소모적인 호스트 프로세서로 넘겨야 할 수 있다.


예를 들어서 고정 기능 디바이스(fixed-function device: FFD)는 간섭이 높은 환경에서 ‘false positive(오탐지)’ 터치 이벤트에 취약하게 되므로 호스트 프로세서가 FFD로부터의 터치 판별 정보를 무시하고 FFD의 원시 데이터를 읽어들이고 자체적인 터치 판별 알고리즘을 실행해야 할 수 있다. 또한 이 때문에 FFD가 호스트 프로세서로 빈번하게 터치 이벤트 신호를 전송하면 프로세서가 터치 이벤트를 판별하기 위해서 저전력 상태에서 깨어나야 하므로 시스템의 평균 전류 소모를 증가시키게 된다.


정전용량식 감지가 가능한 마이크로컨트롤러인 실리콘랩스의 EFM8SB1 8비트 MCU는 정전용량식 감지 펌웨어 라이브러리를 사용할 경우, 고정 기능 디바이스의 사용 편의성과 범용 혼성신호 MCU의 유연성의 두 가지 장점을 모두 활용할 수 있다. 사전 컴파일된 라이브러리는 터치 판별 알고리즘, 상태 변수 유지, 터치 이벤트 정보를 가져오기 위한 단순한 API(애플리케이션 프로그래밍 인터페이스)를 제공하며, 남은 플래시 메모리와 다양한 온칩 주변장치는 MCU로 더 많은 기능과 임무를 추가할 수 있도록 한다.


또한 정전용량식 감지 펌웨어 라이브러리와 함께 이 디바이스의 전원 관리 유닛(PMU) 및 온칩 실시간 클록을 사용함으로써 대부분의 활용 사례로 1mA 미만의 평균 전류 소모를 달성하는 정교한 모드 스위칭 MCU를 작성할 수 있다.


IDE를 사용한 정전용량식 감지 설계 간소화하는 방법


실리콘랩스의 통합개발환경(IDE)인 심플리시티 스튜디오(Simplicity Studio) 플랫폼은, 정전용량식 감지 펌웨어 라이브러리의 구성과 불러오기에서부터 정전용량식 감지 출력의 인-시스템(in-system) 디버깅 및 실시간 시각화에 이르기까지, 정전용량식 감지 가능 임베디드 시스템을 개발하기 위한 작업 전반의 단계들을 지원한다.


많은 IDE들이 사용되는 MCU에 따라서 동적으로 타일들을 배치한 실행 창을 표시한다. 이 창에는 개발 작업의 각각의 단계를 지원하는 툴들이 표시된다.


대부분의 경우에 개발 작업은 (그림 1)의 숫자와 같은 순서로 이루어진다:


▲ 그림 1. 많은 MCU 업체들이 정전용량식 감지 애플리케이션의 8비트 디자인을 간소화하는 포괄적인

개발 환경을 제공한다.


•‌ Configurator 툴을 사용해서 정전용량식 감지 라이브러리를 작성하고 하드웨어 주변장치를 구성할 수 있다.

•‌ IDE에 포함하고 있는 코드 개발 및 디버그 환경 안에서 펌웨어 프로젝트로 추가적인 기능들을 추가할 수 있다.

•‌ IDE에 포함하고 있는 Energy Profiler 툴을 사용해서 스타터 키트 평가 보드로 다운로드한 프로젝트의 실시간 전류 소모 측정을 할 수 있다.

•‌ Capacitive Sense Profiler 툴은 런타임 정전용량식 감지 데이터 원시 값과, 터치 상태, 베이스라인, 임계값 같은 알고리즘 도출 값을 표시한다. 


정전용량식 감지 프로젝트 구성


프로젝트 개발 작업은 Configurator 툴에서부터 시작된다(그림 2). Configurator 툴은 그래픽 인터페이스와 속성 창을 표시한다. 이 툴 안에서 사용자가 포트 핀을 정전용량식 감지 입력으로 지정하고 스캔 간격과 저전력 기능 같은 라이브러리 성능 설정을 구성할 수 있다. 만약 사용자의 선택이 잘못되어서 다른 구성 설정을 선택해야 한다면 ‘Problems’ 뷰에 그에 관한 경고와 오류가 표시될 것이다.


▲ 그림 2. IDE에 포함되어 있는 Configurator 툴을 사용해서 정전용량식 감지 입력 및 성능 설정을

편리하게 구성할 수 있다.


이들 항목을 클릭하면 변경을 필요로 하는 해당 설정으로 곧바로 이동한다.


사용자가 프로젝트를 구성함에 따라서 Project Explorer 창에 해당 파일이 생성되고 조직화된다. 이들 파일을 클릭하면 Configurator 관점에서 IDE 관점으로 전환한다. 사용자는 어느 때나 다시 Con-figurator 관점으로 돌아가서 Project Explorer 창에 표시되어 있는 구성 파일을 클릭하고나서 구성을 변경하거나 추가할 수 있다.


IDE에서의 코드 개발 및 다운로드


이 포괄적인 Eclipse 기반 IDE는 코드 개발과 형식화 툴을 비롯해서 개발자가 개발 환경으로 필요로 하는 모든 기능을 제공한다. 또한 이 IDE는 평가 보드 상의 디버그 회로 뿐만 아니라 USB 디버그 어댑터와 긴밀하게 통합할 수 있으므로 MCU 레지스터와 변수들을 완벽하게 읽기/쓰기 액세스할 수 있다.


개발자가 자신의 프로젝트로 정전용량식 감지 펌웨어 라이브러리를 포함시키면 Configurator가, 가능한 센서들을 스캔하고 터치를 판별하고 직렬 인터페이스를 통해서 정보를 출력하기까지 할 수 있는, 즉시 빌드 가능한 프로젝트를 제공한다.


그러므로 사용자가 IDE로 어떠한 추가적인 개발 작업을 하지 않고서 프로젝트를 생성할 수 있다. 따라서 사용자가 보드로 정전용량식 감지를 테스트하고자 할 때 어떠한 코딩을 할 필요없이 간단하게 IDE를 사용해서 이미지를 빌드하고 다운로드할 수 있다.


Energy Profiler와 Capacitive Sense Profiler를 사용한 성능 분석


8비트 MCU로 코드를 다운로드했으면 IDE의 Energy Profiler와 Capacitive Sense Profiler를 사용해서 Configurator에서 한 구성 선택과 IDE로 작성한 어떠한 추가적 기능이 전류 소모와 정전용량식 감지 성능에 어떻게 영향을 미치는지 살펴볼 수 있다.


커패시티 센싱 애플리케이션을 위해서는 Capacitive Sense Profiler(그림 3)를 유용하게 활용할 수 있다. 이 툴을 사용함으로써 오버레이와 여타의 후위 단계 개발 시스템 요소들을 갖추고서 인-시스템(in-system)으로 성능을 파악할 수 있다.


▲ 그림 3. Capacitive Sense Profiler를 사용해서 인-시스템(in-system)으로 정전용량식 감지 성능을 조절할 수 있다.


또한 Capacitive Sense Profiler는 보드 성능을 분석할 수 있도록 표준 편차와 신호대 잡음비 계산 같은 첨단 기능들을 제공한다. 또한 이 툴을 사용해서 포착된 데이터를 텍스트 파일로 Microsoft Excel 같은 프로그램으로 내보내서 추가적인 검사를 할 수 있다.


개발 작업 흐름 상의 유연성


정전용량식 감지 시스템을 설계할 때 한 가지 어려운 점은 사용자가 프로젝트를 구축하고 성능을 테스트하고 다시 개발 작업으로 돌아가서 추가적으로 성능을 최적화하는 반복적인 개발 작업을 해갈 때 프로젝트를 유지하는 것이다. 실리콘랩스의 심플리시티 스튜디오 플랫폼에 포함된 툴들은 바로 이와 같은 작업 흐름을 지원하도록 설계되었다.


예를 들어, 어떤 개발자가 얇은 1/16인치 오버레이를 사용하도록 정전용량식 감지 프로젝트를 작성하고, 프로젝트를 빌드하고, IDE의 Capacitive Sense Profiler를 사용해서 성능을 테스트할 수 있다. 그런데 제품의 요구사항이 변경되어서 오버레이의 두께를 1/8인치로 수정하려고 한다면 개발자가 이 프로젝트의 구성 파일을 클릭하고 터치 임계값 설정을 변경하기만 하면 된다. 그런 다음에는 프로젝트를 다시 빌드하고 다운로드하면 된다. 그런 다음에는 Profiler를 사용해서 더 두꺼운 오버레이를 사용했을 때의 성능을 실시간으로 확인할 수 있다.


또 다른 반복 작업의 예로는 개발 작업을 하면서 프로젝트로 펌웨어 기능을 추가하는 것을 들 수 있다. 예를 들어, 개발자가 정전용량식 감지를 사용해서 프로젝트를 작성하고 IDE의 진단 툴을 사용해서 이 프로젝트의 모든 성능 및 전류 소모 요구를 충족하는 것을 확인했다고 하자.


그런 다음에 이 개발자가 정전용량식 감지 입력을 기반으로 시스템 내의 다른 장치들을 제어하는 직렬 인터페이스를 작업한다고 하자. 그러면 이 새로운 장치 요소 때문에 전류 소모와 정전용량식 감지 응답에 대해서 새로운 요구를 제기할 수 있다.


심플리시티 스튜디오를 사용하면 소스 코드와 Configurator 툴 사이의 링크를 깨지 않으면서 이 프로젝트의 코드 베이스로 이 새로운 장치를 추가할 수 있다. 프로젝트를 빌드하고 난 후에 개발자가 이 새로운 장치의 기능 때문에 정전용량식 감지 장치를 수정해야 한다는 것을 발견하게 될 수 있다.


예를 들어, 시스템의 나머지 부분으로의 이 직렬 인터페이스가 작동 상태로 있으면서 입력에 적절히 응답하기 위해서는 시스템이 애초에 구성했던 것보다 더 긴 시간 간격 동안 동작 모드로 있으면서 버튼 터치가 있는지 스캔해야 할 수 있다. 그러면 개발자는 Configurator로 이동하고, 터치 세션 사이에 시스템이 저전력 슬립 상태로 전환하기 전까지 깨어 있는 시간 간격을 조절하고, 코드를 다시 빌드하기만 하면 된다.


키 시퀀스 예


코드를 생성할 수 있고 개발자가 작성해야 하는 로우레벨 정전용량식 감지 코드 양을 최소화하므로 센싱 MCU로 특정 용도 센싱 기능을 추가해서 다양한 활용 사례를 구현할 수 있다. 바로 이 점이 정전용량성 터치 기능을 지원하는 범용 MCU 솔루션과 특정 용도 기능을 전력 소모적인 프로세서로 처리해야 하는 고정 기능 솔루션과 차별화되는 점이다. 키 시퀀스 검출 기능은 정전용량식 감지에 범용 MCU를 사용할 때의 이점을 잘 보여주는 예이다.


제어 패널을 사용하는 많은 시스템에서 최종 사용자는 제품 기능을 사용하기 위해서 키 시퀀스 또는 패스워드를 입력해야 한다. 고정 기능 디바이스를 사용하는 시스템에서는 첫 번째 키스트로우크(keystroke)가 있을 때 메인 프로세서가 깨어나고, 사용자가 키 시퀀스를 입력하는 동안에 작동 상태로 대기해야 하고, 시퀀스를 처리해서 올바른 패스워드와 일치하는지 판별해야 한다. 고성능 MCU로 이렇게 작동하는 데 시간이 그렇게 많이 걸리지 않는 것처럼 보일 것이다. 그러면 총 전력을 따져보자.


이 배터리 사용 제어 패널이 하루에 평균적으로 100회의 15초 사용자 상호작용 세션을 처리한다고 하자. 이 세션은 두 단계로 이루어진다. 먼저 키 시퀀스를 입력하고 패스워드와 대조하는 판별 단계와 제어 패널이 시스템 내의 다른 영역으로 명령을 발행하는 응답 단계이다. 고정 기능 디바이스를 사용하는 디자인에서는 판별 단계와 응답 단계 둘 다에 대해서 메인 프로세서가 깨어나야 한다. 이 시간이 이 예의 경우에는 세션당 15초이다. 하지만 판별 단계는 EFM8SB1 MCU 같은 8비트 마이크로컨트롤러로 처리하게 하면 메인 프로세서는 응답 단계에만 깨어나면 된다. 이 시간은 대략 7.5초이다. 또한 메인 프로세서는 동작할 때 10mA를 소모한다고 하자. 많은 32비트 마이크로프로세서가 통상적으로 이 수준을 소모한다. 이와 비교해서 8비트 MCU는 동작할 때 20mA를 소모한다. 이것은 정전용량식 감지 펌웨어 라이브러리의 정교한 전력 관리 상태기를 사용해서 달성할 수 있다. 이렇게 말하는 것은 어느 정도 전류 소모를 단순화한 것으로서 사용자 상호작용 세션들 사이에 소모되는 전류는 반영하지 않은 것이다.


FFD를 사용하고 판별 단계에 메인 프로세서가 깨어 있어야 하는 경우에 이 시스템의 평균 전류 소모는 약 17mA가 될 것이다.


상호작용 세션의 일부에 저전력 8비트 MCU를 사용하는 경우에 평균 전류 소모는 약 9mA가 될 것이다. 그러면 이 배터리 사용 시스템을 용량이 통상적으로 약 225mAh인 CR2032 같은 코인 전지 배터리를 사용해서 실행한다면, EFM8SB1 MCU를 기반으로 한 8비트 디자인은 배터리를 교체하지 않고 거의 3년 동안 작동할 수 있을 것이다. 이와 비교해서 FFD를 사용하는 시스템은 1.5년 만에 배터리를 교체해야 할 것이다. 이것은 배터리 사용 시간이 훨씬 더 짧은 것으로서, 그러면 Amazon 같은 사이트에서 제품에 대한 평가가 확실하게 엇갈리게 될 것이다.


스마트한 디자인이 우수한 제품을 낳는다


어떤 두 제품도 요구사항이 동일하거나 최종 사용자 활용 사례가 같을 수 없다. 이러한 이유에서 ‘one size fits all’ 식의 고정 기능 디바이스를 사용해서는 시스템 내의 다양한 장치들의 요구를 충족하면서 기능성은 극대화하고 전류 소모는 최소화하는 디자인을 달성하기가 어렵다.


범용 8비트 마이크로컨트롤러를 사용함으로써 정전용량식 감지 펌웨어 라이브러리와 최적화된 개발 툴의 도움을 받아서 개발자가 자신의 디자인으로 정전용량식 감지를 간편하게 통합할 수 있으며 그러는 한편으로 시스템 내의 다른 요구사항들을 충족하도록 적절히 조절을 할 수 있다는 점을 주목할 필요가 있다.


파커 도리스(Parker Dorris) _ 실리콘랩스



















주요파트너/추천기업