효율적인 임베디드 시스템 개발을 위한 최신 기술


글 권순묵 대리(soonmook.kwon@ni.com) 한국내쇼날인스트루먼트


임베디드 시스템은 사용자들의 요구와 여러 엔지니어들의 노력에 의해서 실생활에 점점 가까워 지고 있다. 조금만 관심을 가지고 우리 주위를 둘러보면, 쉽게 임베디드 시스템이 적용된 사례들을 찾아볼 수 있다. 임베디드 시스템의 종합체인 스마트 폰을 예로 들어보자. 스마트 폰에는 스피커, 마이크, 카메라, GPS, Wi-Fi, 그리고 각종 센서 등이 임베디드 형태로 집적화 되어있고, 이러한 구성품들은 앞으로 계속해서 늘어날 것이다. 하지만 사용자들은 끊임없이 더 작고, 가볍고, 많은 기능이 포함된 기기를 원하고 있다. 개발자들은 이러한 사용자의 기대에 부응하기 위해 고민하지만, 짧은 개발 기간 동안 기대를 반영하기란 분명 쉽지 않은 일이다. 본 지를 통해 사용자들의 이러한 요구를 만족시키는 데에 도움이 될만한 몇 가지 기술을 소개하고자 한다.

COTS(Commercial Off The Shelf)

임베디드 시스템 개발자들은 개발 초기단계에서 사용자 정의 보드를 직접 개발할 것인지, 기존에 제품화 되어 있는 기성품을 선택할 것인지를 고민하게 된다. 물론 두 가지 방법 모두 장단점이 각각 존재한다. 사용자 정의 보드는 사용자가 필요로 하는 기능만 넣었기 때문에 불필요한 기능이 들어감에 따라서 추가되는 비용에 대한 부담을 줄일 수 있고, 사이즈 축소가 가능하다. 따라서, 전체적인 개발비용을 절약할 수 있다. 하지만, 이 방법을 통한 비용 절감 효과는 숙련된 임베디드 시스템 개발자에게만 한정되는 경우가 많다. 처음 임베디드 시스템을 개발하거나, 개발 단계가 아직 익숙하지 않은 개발자는 오히려 더 많은 비용을 투자하게 될 수도 있다. 임베디드 시스템을 보드레벨로 개발하기 위해서는 하드웨어적인 부분과 소프트웨어 적인 부분이 유기적으로 잘 맞아떨어져야 개발 후에 원활한 기능구현이 가능한데, 그렇지 못한 경우에는 개발단계에서 PCB 보드를 여러 차례 다시 제작해야 하는 경우가 생긴다. 또한, 이 방법으로 개발하기 위해서는 하드웨어 엔지니어와 소프트웨어 엔지니어가 서로 협력하여 보드를 제작해야 하기 때문에 개발하는 데에 인력과 시간이 많이 소요된다는 단점이 있다.
반면에, 보드를 제작하지 않고 기성품(COTS)을 사용하면, 적은 인력과 시간으로 빠른 검증이 가능하다. 물론 사용자가 원하지 않는 기능들도 일부 포함될 수 있어 가격이 높아지는 경우도 있다.


내쇼날인스트루먼트(이하 NI)의 재구성가능한 I/O(Reconfigurable I/O, 이하 RIO) 기술)

기성품과 사용자 정의 보드의 장점을 결합한 것이 NI의 RIO 플랫폼이다. FPGA를 기반으로 한NI RIO 기술은 사용자 정의가 가능한 제어 및 계측을 가능하게 한다. 이러한 기술은 고속의 높은 시간 결정성이 요구되는 임베디드 제어 산업에 적합하며, 최근에는 방대한 양의 데이터를 고속으로 처리하고, 분석해야 하는 반도체, 의료, 국방, RF 등의 산업분야에서도 사용자의 요구가 증가하고 있다.
NI RIO 기술을 대표하는 제품이 <그림 1>의 NI CompactRIO 제품이다. CompactRIO는 Real-time OS가 설치되어 있는 임베디드 컨트롤러와 FPGA가 내장된 섀시로 구성되어 있으며, 컨트롤러와 섀시가 분리 가능하며, 제품에 따라 일체형 제품도 있다. 그리고 사용 목적에 맞게 아날로그와 디지털 I/O, 모션, 통신 등의 모듈을 연결하여 사용이 가능하다. NI는 100여 종류가 넘는 I/O 모듈을 제공하고 있기 때문에 사용자의 요구에 맞는 시스템의 설계가 가능하다. 또한, 이러한 I/O 모듈들은 센서 및 액츄에이터와 연결이 용이하며, 신호 컨디셔닝, 절연 등의 기능을 포함하고 있다.
 

[그림 1] FPGA 기반의 RIO 기술을 대표하는 CompactRIO

<그림 2>의 제품은 최근에 출시된 cRIO-9082 제품으로써 고성능을 필요로 하는 임베디드 시스템을 위한 제품이다. 1.33GHz Intel Core i7 프로세서를 탑재하고 있으며, Xilinx사의 Spartan-6 LX150 FPGA 칩을 내장하고 있다. 이 제품은 기존의 CompactRIO 제품과는 달리, Real-time OS와 윈도우 (Windows Embedded Standard 7) OS 모두 설치 가능하며, 어떤 OS를 사용할 것인지 선택하여 부팅할 수 있다. 또한, VGA 출력이 가능하여 모니터, 키보드, 마우스를 연결하고, 윈도우 OS로 부팅을 하면 컴퓨터처럼 사용할 수 있다. 또한 USB 타입의 터치패널을 연결하여 사용이 가능하며, 듀얼 이더넷 포트를 지원하기 때문에 GigE 카메라와 IP 카메라도 연결해서 사용할 수도 있다.
 

[그림 2] 멀티부팅이 가능한 고성능 CompactRIO

CompactRIO 제품은 다양한 I/O 모듈들을 사용자의 요구에 맞게 선택하여 사용하는 것이 용이하기 때문에 개발 및 프로토타입 단계에 적합하였다면, 지금 소개할 Single-Board RIO(이하 sbRIO) 제품은 개발 및 프로토타입이 완료된 후에, 어플리케이션을 대량으로 배포할 때 유용한 플랫폼이 다.
<그림 3>의 제품이 최근에 출시된 sbRIO 2.0 제품군이며, sbRIO-960x 제품은 약 10 ⅹ 10 cm 크기로 현재까지 출시된 sbRIO 제품 중에 가장 작은 크기이다. 크기는 작지만 cRIO와 마찬가지로 Real-Time OS 와 FPGA를 내장하고 있다. 또한, 일부 제품의 경우 16비트 아날로그 입력채널과 96개의 디지털 입출력 채널을 내장하고 있다. 단, 이 제품들은 OEM을 목적으로 제작되었기 때문에 cRIO에서 사용했던 I/O 모듈들을 바로 꽂아서 사용할 수는 없고, 추가적으로 도터보드를 제작하여 사용이 가능하다. NI는 PCB 도터보드 설계에 익숙하지 않은 사용자들을 위해서 NI 에서 범용적으로 사용할 수 있는 도터보드를 제작하여 판매할 예정이다. 또한, 이더넷, 시리얼, USB, CAN 등 다양한 산업용 통신 프로토콜들을 지원한다. 
 

[그림 3] OEM을 위한 Single-Board RIO 2.0 제품

sbRIO를 사용하여 대량으로 배포할 경우, 기존에 프로토타입 단계에서 개발한 알고리즘과 각종 설정들을 배포용 임베디드 타겟에 그대로 적용을 시켜야 하는데, 배포수량이 수 십대 이상이 되면 일일이 복제하여 배포하는 데에 어려움이 따른다. 이런 경우에, 유용하게 사용할 수 있는 툴이 Real-Time Application Deployment (이하 RTAD) 이다. RTAD는 프로토타입 단계에서 개발한 알고리즘과 설정들을 이미지 파일로 추출하여, 여러 임베디드 타켓을 위해 복제하고 이를 배포하게 된다. 이 툴을 사용하게 되면 동일 네트워크 상에 연결된 동일 임베디드 타겟에 대해서 한꺼번에 동시 복제 및 배포가 가능해지며, 대량 배포를 위한 시간을 절약할 수 있다.
지금까지 NI RIO 기술을 몇몇 대표 제품들을 다음의 예시로 설명하고자 한다. 임베디드 시스템을 개발할 때, 고성능 cRIO는 반드시 개발 및 프로토타입 단계에서 사용하고, sbRIO는 배포단계에서 사용해야 한다는 룰이 정해져 있는 것은 아니다. 하지만, 개발자의 입장에서 생각했을 때, 고성능 플랫폼의 경우에 개발단계에서 시스템 사이즈를 정확하게 판단하기가 어렵기 때문에, 확장의 여지를 두고 플랫폼을 선정하게 되는 경우가 많다. 따라서 개발이 완료된 후에는 그 기능들만 수용할 수 있는 플랫폼을 선정하는 것이 개발 비용에 있어서 효율적일 것이다.


그래픽 기반의 언어인 LabVIEW를 통한 개발 가속화

NI RIO 기술과 더불어 임베디드 시스템의 개발을 가속화 시키고 있는 LabVIEW에 대해 설명하고자 한다. LabVIEW는 C나 C++ 등의 텍스트 기반의 프로그래밍 언어와는 달리, 각각의 함수들이 아이콘 모양으로 되어있어 사용하고자 하는 용도에 맞는 함수를 마우스로 끌어다 놓고, 와이어로 연결하는 형식의 그래픽 기반 프로그래밍 언어이다. 각각의 함수들을 일일이 타이핑하지 않아도 되기 때문에 빠른 시간 내에 코딩이 가능하며, 뛰어난 하드웨어와의 호환성으로 빠른 프로토타이핑을 통한 검증이 가능하다. 특히, 임베디드 컨트롤 분야에서 고속 제어를 위해 FPGA를 많이 사용하는데, VHDL 코딩을 하는 데에 있어서 개발자들이 많은 부담을 느끼고 있다. 하지만, LabVIEW FPGA 모듈을 사용하면 이러한 부담을 줄일 수 있다. 단적인 예로, 고속의 데이터를 손실 없이 처리하기 위해서 DMA(Direct Memory Access) 채널을 사용하는데, 이 DMA 채널을 코딩하기 위해서 VHDL로는 66페이지 분량의 알고리즘을 타이핑해야 하지만 LabVIEW FPGA를 사용하면 몇 개의 아이콘만 사용하여도 코딩이 가능하다. 측정 결과나 현재 상황 등을 쉽게 보기 위하여 사용자 인터페이스(User Interface, 이하 UI)를 구성하게 되는데, LabVIEW는 그래픽 기반의 언어답게 그래프.차트, on/off 스위치, 3D 모델링 그래프 등의 다양한 함수를 제공하기 때문에 많은 시간을 들이지 않고도 깔끔하고 직관적인 UI 구성이 가능하다. 또한, 최근에는 측정결과를 PC 뿐만 아니라 아이폰, 아이패드 등의 스마트 기기에서도 모니터링할 수 있는 앱이 출시되기도 하였다. 이를 통해 여러 위치에 분산되어 있는 임베디드 시스템을 원격으로 모니터링 하는 것이 가능해졌다.
LabVIEW는 기본적으로 제공하는 예제들을 수정하여 쉽게 프로그래밍 할 수 있으며, 다양한 커뮤니티를 통해서 다른 사용자들이 개발한 소스코드를 참고할 수도 있다. 자세한 내용은 http://www.ni.com/labview/community/ 를 참고하기 바란다.


결론

2012년에 미국 EE Times 에서 제어 및 자동화 산업 종사자들을 대상으로 설문 조사를 실시하였고, <표 1>과 같이 NI 임베디드 플랫폼 사용자들과의 프로젝트 완수 결과율을 비교한 바 있다. 결론적으로, 약 1/3 정도의 더 적은 인원으로 프로젝트를 완수하였고, 프로젝트를 마치는데 소요되는 시간도 반으로 줄였으며, 개발자의 58%가 정해진 시간 내에 프로젝트를 완료한 것으로 나타났다. 이는 LabVIEW와 NI RIO 플랫폼이 빠르고 신뢰성 있는 임베디드 시스템 개발에 적합한 솔루션임을 입증하는 결과이며, 앞으로도 이와 같은 개발 흐름이 지속될 것으로 보인다. 
 

<표 1> NI 임베디드 플랫폼 사용자들과의 프로젝트 완수 결과 비교

앞서 소개한 LabVIEW를 비롯한 효율적인 임베디드 시스템 개발을 위한 최신 기술들을 오는 11월 1일 개최되는 NIDays 2012에 참석하여 직접 확인해 보기 바란다. NIDays 2012는 한국내쇼날인스트루먼트 연중 최대 컨퍼런스로, 국내 엔지니어 및 과학자를 위한 측정, 제어, 테스트 자동화 등과 관련한 최신 기술과 데모, 뿐만 아니라 다양한 기술세션과 전시부스 등을 한 자리에서 확인할 수 있다.


회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지