배너
닫기

테크노트

배너

임베디드 개발 프로젝트를 간소화하는 방법

  • 등록 2014.06.27 11:19:35
URL복사

임베디드 개발 프로젝트를 간소화하는 방법

임베디드 개발자가 새로운 애플리케이션에 적합한 후보 MCU를 찾을 때는 소프트웨어 개발 툴의 중요성을
고려해야 한다. 개발 프로세스를 간소화하고 에너지 효율을 극대화한 애플리케이션은 소프트웨어 개발 툴로
만들 수 있다. 개발자는 사용이 쉽고, 필요한 모든 리소스를 단일 소프트웨어 패키지에서 제공하는 광범위한
개발 협력 체계를 찾아야 한다.

Evan Schulz  Silicon Laboratories Inc.


새로운 임베디드 개발 프로젝트를 진행하는 과정에 있어서 두 가지 중대한 문제에 직면할 수 있다. 먼저 애플리케이션의 요구 사항에 부합하는 MCU(마이크로 컨트롤러)를 선택하는 문제와, 타깃 MCU의 펌웨어를 작성하여 설계를 구현하는 문제가 그것이다.
에너지 절약형 애플리케이션은 엄격한 전력 예산 요구 사항을 충족시켜야 하는데, 이 요구 사항을 실현하려면 MCU의 복잡한 내부 작동 원리에 대한 방대한 지식이 필요하기 때문에 개발 프로세스가 더 복잡해진다. 현재의 임베디드 시장에서는 MCU를 사용하고 구성하는 방법을 익히는 것만 해도 개발 프로젝트에 할당된 시간보다 더 걸릴 수 있다.
문제를 더욱 까다롭게 만드는 것으로, 광고된 데이터 시트 사양을 충족시키는 MCU를 구성하는 것을 들 수 있는데, 이것은 극도로 지루하고 복잡한 업무가 될 수 있다. 왜냐하면 MCU 공급업체들이 쉽게 재현할 수 없는 전력 숫자를 광고하기 때문이다. 이와 같은 모든 요인이 복합적으로 작용하면 임베디드 개발 프로세스가 필요 이상으로 복잡해진다.
최적의 임베디드 솔루션을 만들기 위해서는 MCU 개발자가 애플리케이션에 새롭고 혁신적인 MCU 설계를 활용해야 한다. 예를 들면 저전력 MCU를 간단히 구성하여 초절전 작동 기능을 구현하고, 해당 애플리케이션의 배터리 사용 시간을 최대한 연장시키는 것이다. 배터리 사용 시간이 길어지면 완제품 가격을 낮추고 제품의 경쟁력을 높일 수 있다.


이러한 목표를 실현하는 가장 좋은 방법은, 단순한 IDE(통합 개발 환경)가 아니라 포괄적인 개발 플랫폼을 사용하는 것이다. 먼저 ‘포괄적인 개발 플랫폼’(그림 1)의 조건은 다음과 같이 정의할 수 있다.
•‌사용 가능한 제품에 대해 완전하고 교육적인 보기
•‌장치 또는 키트를 주문하거나 샘플을 요청하는 쉽고 빠른 방법
•‌타깃 MCU의 코드를 구성, 개발, 분석 및 최적화하는 기능
•‌개발 지연을 해결할 수 있는 기술 리소스
•‌최신 설명서, 소프트웨어 및 예제를 제공하는 자동 업데이트
이와 같은 조건을 해결할 수 있는 솔루션을 제공하는 소프트웨어 툴을 사용하면 개발 프로세스를 간소화하고 출시를 앞당길 수 있다. 그렇다면 첫 번째 개발 과제(사용 가능한 제품에 대해 완전하고 교육적인 보기)가 포괄적인 개발 플랫폼에 어떻게 반영되는지 알아보자.
첫째, 개발자는 새로운 애플리케이션의 사양에 맞는 MCU를 찾아야 한다. 현재 시중에는 개발자가 선택할 수 있는 MCU 제품이 많기 때문에 적합한 MCU를 찾기 어려울 수 있다. 타깃 디바이스를 모색할 때 몇 가지 시스템 설계 요구 사항을 기준으로 삼으면 도움이 된다.
예를 들어 배터리 전원을 사용하는 애플리케이션에는, 배터리 사용 시간을 최대한 늘리면서 계산이 많은 작업을 처리할 수 있는 빠르고 효율적인 코어가 제공되며 에너지 효율이 높은 MCU가 필요할 수 있다. 배터리 전원을 사용하는 스마트 시계는 전원에 민감한 애플리케이션의 좋은 예라고 할 수 있다.
이 예에서 개발자는 초저전력 작업에 최적화된 ARM Cortex®-M3 MCU로 검색 범위를 좁힐 수 있다. 따라서 몇 개 업체의 제품만 알아보면 되지만, 사용할 특정 디바이스를 선택하기에는 아직 부족하다. 개발자가 검색 범위를 신속하게 좁힐 수 있도록, 포괄적인 개발 플랫폼에는 특정 MCU 포트폴리오에 대해 개발자 교육에 도움이 되는 검색 툴 또는 교육 리소스가 포함되어 있어야 한다.
현재 대표적인 MCU 공급업체에서는 폭넓은 MCU 포트폴리오를 제공하므로 임베디드 애플리케이션을 위한 최적의 MCU 제품을 찾기가 쉽지 않다. 검색 가능한 MCU 개발 툴을 제공할 경우 개발자는 몇 번의 마우스 클릭만으로 10∼20개의 MCU로 검색 범위를 좁히는 데 도움을 받을 수 있다.
적합한 MCU 솔루션을 찾은 후에는 새로운 MCU와 관련된 개발 비용과 개발 시간을 고려해야 한다. 물론 알려진 MCU를 사용하면 개발 리소스가 적게 필요하지만, 새로운 MCU를 사용하면 훨씬 더 높은 성능 또는 훨씬 적은 소비 전력을 실현할 수 있다. 앞서 소개한 예로 돌아가서, 배터리로 작동하는 애플리케이션에서 소비 전력을 줄이면 배터리 사용 시간을 늘려 성능을 높이면서 비용을 절감할 수 있다. 이 예에서는 개발자가 에너지 효율이 높은 디바이스를 사용할수록 유리할 것이다.


 직관적인 그래픽 구성 툴을 사용하여 MCU 구성




개발자가 디바이스의 올바른 사용법을 확인하기 위해 번거롭게 데이터시트나 애플리케이션 노트를 읽을 필요가 없도록, 그래픽 인터페이스를 제공하는 개발 툴을 사용하는 것이 좋다. 소프트웨어 플랫폼은 그와 같이 복잡한 내용을 간략화하여 개발자가 확인란과 드롭다운 메뉴, 텍스트 필드를 통해 디바이스를 구성할 수 있는 포털을 제공해야 한다.
얼핏 듣기에 간단한 개념 같지만 이러한 기능을 갖춘 개발 툴(그림 2)은 설계 과정을 대폭 간소화하고 출시를 크게 앞당길 수 있다. 설계 과정을 안내하는 기능 외에 이러한 소프트웨어 툴은 오류 검사 기능과 계산기를 통한 정보까지 제공하여 개발 프로세스를 더욱 용이하게 한다.
그래픽 구성 툴은 핀 구성(핀 배치도 충돌 또는 모드 설정), 클록 게이팅(주변 장치가 모듈에 대한 클록을 지원하도록 구성되지 않은 경우), 주변 장치 구성과 관련된 오류를 해결할 수 있어야 한다. 계산기는 오류를 검사하고 확인하는 것 외에도 개발을 용이하게 한다.
예를 들어 UART(범용 비동기 리시버/트랜스미터)에 구성하는 보드 속도 필드는 시스템 클록과 기타 레지스터 설정에 좌우될 수 있다. 지능형 소프트웨어 도구는 해당 계산을 간소화하여 개발자가 데이터시트나 참조 설명서를 참고하지 않고도 원하는 보드 속도를 입력할 수 있도록 한다.
MCU와 주변 장치의 구성 코드를 완성한 후에는 최적화 작업에 착수할 수 있다. 소비 전력을 실시간으로 모니터링하는 소프트웨어 최적화 툴을 사용하면 코드에서 전력을 가장 많이 소비하는 부분을 쉽게 찾을 수 있다. 어떤 애플리케이션이든 소비 전력은 낮게 할수록 유리하다. 특히 배터리로 작동하는 애플리케이션에서는 소비 전력을 줄이는 것이 무엇보다 중요하다. 평균 소비 전력을 측정하면 전체 애플리케이션의 ‘에너지 효율성’을 파악하는 데 도움이 되지만, 실시간으로 어디서 전력이 소비되는지를 알면 개발자가 코드의 어느 부분을 최적화해야 하는지 파악하는 데 도움이 된다.


예를 들어 현재 전력 소비 상태를 그래픽 출력으로 보여 주는 기능을 통해 소비 전력량이 크게 증가하지 않았는지 신속하게 알 수 있다. 나아가 애플리케이션의 그래프와 프로필에서 특정 지점을 클릭(그림 3)하여 현재 전력 소비 상태와 관련된 C 코드의 해당 줄을 표시하는 기능을 제공한다면 저전력 제품 개발자에게 매우 유용할 것이다. 이 경우 개발자는 현재 전력 소비 상태에서 갑작스러운 소비량 증가 현상을 보이는 특정 코드 줄을 추적하여 최적화 작업을 수행할 수 있다.
다시 한번 강조하지만, 이러한 ‘에너지 효율성’ 기능은 마이크로암페어, 심지어 나노암페어의 전력도 낭비할 수 없는 배터리로 작동하는 애플리케이션에서 특히 중요하다.
최종 코드 이미지를 창출하는 과정에서는 개발자에게 일정한 형태의 기술 지원과 설계 리소스가 반드시 필요하다. 광범위한 개발 협력 체계에는 개발자가 기술 지원, 커뮤니티 포럼, 기술 자료 및 애플리케이션 노트를 한 번의 클릭으로 참조할 수 있는 통합 리소스 포털이 포함돼 있다.
별로 중요하지 않다고 생각할 수도 있지만, 최종 코드 이미지의 기한이 다음 주 또는 내일인데 갑자기 설계상의 문제가 발생했다면 설계 지원을 신속하게 찾는 것이 무엇보다 중요하다. 이런 때 올바른 지원 포털을 찾느라 시간을 허비할 수는 없는 노릇이다. 지원 채널 외에 최신 정보를 개발자에게 제공하는 것도 임베디드 개발을 용이하게 하는 열쇠이다.
즉, 개발자에게 항상 최신 코드 예제, 기술 설명서, 소프트웨어를 제공해야 한다. 한 곳에서 필요한 지원을 모두 제공하는 소프트웨어 개발 툴이 가장 이상적이다. 이러한 문제를 해결한 후 개발자는 생산 관련 문제를 고려해야 한다.


 ‌임베디드 개발을 간소화한다


광범위한 개발 협력 체계는 펌웨어 개발과 관련된 복잡성을 간소하게 할 수 있다. 대부분의 개발자는 MCU 사양에만 집중하지만, 소프트웨어 개발 툴을 간과해서는 안 된다. 결국 MCU의 성능을 제한하는 것은 개발자 자신이다. 개발자가 가장 효율적인 모드로 디바이스를 구성하는 방법을 알지 못하면 MCU의 성능이 낭비된다. 또한 개발 비용도 순식간에 증가하여 프로젝트의 전체 일정과 비용에 영향을 미칠 수 있다.
단일 소프트웨어 플랫폼으로 개발자에게 필요한 모든 것을 제공하는 MCU 공급업체를 이용하면 설계 주기를 간소화하여 개발 시간, 개발 비용, 출시 소요 시간을 줄일 수 있다. 경쟁이 치열한 오늘날의 시장 환경에서 이러한 이점은 결코 간과될 수 없다.
임베디드 설계자가 해당 애플리케이션에 적합한 타깃 MCU를 찾고 에너지 효율이 높은 애플리케이션을 만들어 개발 시간과 출시 소요 시간을 단축하는 데 도움을 줄 수 있는 개발 협력 체계가 이상적이라고 할 수 있을 것이다.









배너










주요파트너/추천기업