임베디드 SW 시스템 개발을 위한 리눅스 기반 솔루션 소개 ③

들어가는 말센서 네트워크 시스템 구축을 위해서는 물리적인 환경을 감지하고 구동 장치를 제어하는 초소형의 센서노드 하드웨어, 제한된 하드웨어 자원 하에서도 주어진 업무를 효과적으로 수행할 수 있도록 하는 운영체제, 그리고 센서 네트워크의 연결 상태 및 각 센서들로부터 감지된 데이터들을 사용자가 이해하기 쉬운 형태로 보여 줄 수 있는 모니터링 프로그램이 있어야 한다.특히 무선 센서 네트워크는 적게는 수십 개에서 많을 경우 수백 개의 자율적인 노드들로 구성되므로 저렴한 하드웨어로 노드를 구성해야 하고, 센서노드용 운영체제는 필수적으로 자동구성과 재구성이 가능한 통신 기법을 지원해야 한다. 이러한 센서 네트워크는 모니터링 프로그램을 통해 전체 시스템의 효율적인 관리가 가능해야 한다. 그림 1은 이러한 센서 네트워크 시스템의 구성 예를 보여준다.본론에서는 한국전자통신연구원(ETRI)에서 개발한 센서 운영체제인 Nano Qplus가 지원되는 센서노드 하드웨어 플랫폼, Nano Qplus 세부기능 및 개선할 점, 모니터링 기능에 대하여 설명하고, 향후 프로젝트 계획을 설명하고자 한다.센서노드 하드웨어 플랫폼무선 센서노드의 하드웨어는 제한된 배터리 전원을 효율적으로 사용할 수 있도록 에너지 효율성 및 저전력 관리 기능을 지원해야 하며, 센서 네트워크 응용에 따른 호환성 확보를 위해 주요 기능별 모듈을 구분하고 모듈간 인터페이스를 확장 가능한 구조로 설계하여 다양한 조합이 가능해야 한다.위와 같은 요구사항을 충족시키기 위해 ETRI에서 개발한 센서노드인 ETRI-Smart Sensor Node(ETRI-SSN)는 저전력 에너지 관리 기능과 확장 인터페이스를 통한 모듈화 기능을 중요시하여 설계되었으며, 그림 2와 같이 메인(Main), 베이스(Base), 센서(Sensor), 엑추에이터(Actuator) 모듈로 구분된다.메인 모듈은 그림 3과 같이 8비트 Microcontroller인 ATmega128과 무선 통신을 위해 2.4GHz 대역의 IEEE 802.15.4 PHY와 하드웨어 MAC 기능을 지원하는 Chipcon 사의 CC2420 RF 송수신기를 가지고 있다. ATmega128은 8개의 ADC 채널과 시리얼 통신을 위한 UART 인터페이스, 프로그램 저장을 위한 128KB의 메모리가 내장되어 있다. 배터리를 공급 전원으로 사용하는 경우 3.3V의 입력 전원을 안정화 회로를 통해 전체 시스템 용 3.3V와 RF Transceiver 용 1.8V의 전원을 안정적으로 제공한다. 또한 저전력 관리 지원을 위해 슬립 모드를 지원한다.CC2420은 2.4GHz 대역의 무선 주파수를 사용하며 최대 250Kbps의 전송률을 지원한다. CC2420의 전송 및 수신 패킷 버퍼는 각각 128Byte이며, SPI(Serial Peripheral Interface)를 통하여 송수신 데이터 및 RF 기능을 제어할 수 있다. 또한 RF 송신 출력을 제어하여 0dBm에서 -25dBm까지 조절 가능하며 저전력 관리 기능 지원을 위해 송수신기 On/Off 기능을 제공한다. Off 모드에서의 소모 전력은 약 1uA 단위로서 에너지 효율을 극대화할 수 있다. 또한 송신 모드에서 17mA, 수신 모드에서 19mA의 저전력 동작을 지원하여 제한된 에너지를 최대한 활용할 수 있도록 지원한다.베이스 모듈은 그림 4와 같이 메인모듈이 외부 디바이스와 연결될 수 있도록 직렬 포트 및 병렬 포트로 이루어지며, 외부로부터 안정적인 전원 공급을 위한 외부 전원 공급 장치를 지원한다. MAX232C를 통해 PC와의 Serial 통신을 하며, 다운로드를 위한 병렬 통신 드라이버를 이용한다. 외부 인터페이스를 통해 메인 모듈과의 연계되며 메인 모듈과의 결합으로 싱크 노드로 기능할 수 있다. 외부 전원 인가를 위한 인터페이스가 있으며 외부 전압(9V~12V)은 Regulator를 통해 시스템 동작을 위한 3.3V 출력전압과 RF Chip 동작을 위한 1.8V 출력전압으로 다운되어 공급된다.센서 모듈에서 지원되는 센서는 온도, 조도, 습도, 적외선, 가스, 초음파 등을 측정하며 각각의 센서들은 구성 방법에 따라 다양하게 사용될 수 있다. 센서로부터 입력된 전기적 신호는 보통의 경우 OP Amp를 통해 증폭되며, 이 증폭된 신호가 메인 모듈의 ADC로 연결된다. 초음파 센서는 위치 인식 또는 거리 측정을 위해 사용되며 별도의 독립된 모듈로 제작된다. 센서 및 Amp 구동을 위한 전원은 메인 모듈의 확장 인터페이스를 통해 연결되며, 메인 모듈과 결합하여 센서 기능을 갖춘 노드로서의 역할을 수행한다.엑츄에이터 모듈은 DC/AC Relay를 통한 On/Off 제어기능을 제공한다. 일반 적인 경우 AA 1.5V 건전지 2개를 사용하여 동작된다.이러한 메인, 베이스, 센서, 엑추에이터 모듈들은 각각 구성하고자 하는 센서노드의 응용에 따라 표 1과 같이 결합되어 그림 5와 같이 각각의 노드를 구성할 수 있다. 메인 모듈은 모든 노드에 공통으로 포함되며, 메인 모듈과 센싱 모듈이 결합되면 센서 노드, 메인모듈과 엑츄에이터 모듈이 결합되면 엑추에이터 노드, 메인 모듈과 베이스 모듈이 결합되면 싱크 기능을 담당하는 앵커 노드가 된다.센서노드용 운영 체제(Nano Qplus)센서노드용 운영체제에서는 하드웨어적인 제약에 의해 다른 범용 운영체제와는 다른 이슈들이 발생하게 되므로 설계부터 이에 대하여 신중히 고려하여 이러한 제약을 극복할 수 있도록 하는 것이 중요하다.이러한 하드웨어적인 제약으로는 먼저 에너지 제약을 들 수 있다. 센서 네트워크에 사용되는 대부분의 센서노드는 외부에서 무한정의 에너지를 공급받을 수 없고, 배터리를 이용해 동작한다. 센서노드의 주기적인 배터리 교체를 통한 센서 네트워크의 유지가 필요한 경우도 있지만, 경우에 따라서는 배터리 교체가 불가능할 수도 있다. 따라서 가능한 각 센서노드의 에너지 소모를 최소화 하고, 전체적인 네트워크 측면에서는 노드들의 에너지 소모를 균등하게 이루어질 수 있도록 하는 것이 중요한 이슈이다.다음으로는 하드웨어 자원과 관련된 제약이 있다. 센서 네트워크를 이용한 응용 시스템들은 기본적으로 수백, 수천 개의 센서노드들이 네트워크를 이루는 것을 가정하고 있어서, 센서노드가 매우 저렴한 가격에 공급될 수 있어야 한다. 따라서 센서노드에 사용되는 대부분의 하드웨어는 자원이 매우 제한되어 있고 성능이 낮은 것이 대부분이다.현재ETRI-SSN(ETRI Smart Sensor Node) 노드는 RAM의 크기가 4KB에 불과하다. 따라서 Nano Qplus의 꼭 필요한 기능만을 추가하여 커널 사이즈를 줄이고 프로세서의 메모리 영역을 효율적으로 관리함으로써 많은 메모리를 확보하는 일과 낮은 컴퓨팅 파워를 고려해 코드를 최적화하여 가능한 CPU 부하를 줄이는 일이 중요하다.ETRI에서는 이러한 센서노드용 운영체제의 제약을 극복하기 위해 최대한의 노력을 기울여 센서노드를 위한 운영체제를 개발했다. Nano Qplus는 크게 운영 체제의 핵심이 되는 커널 부분과 각종 센서들을 위한 드라이버, 하드웨어들을 제어하고 추상화하는 HAL(Hardware Abstraction Layer) 부분, 그리고 센서 네트워크의 핵심이 되는 통신 프로토콜 스택으로 이루어져 있다.Nano Qplus 커널Nano Qplus 커널의 첫 번째 특징은 멀티 스레드를 지원한다는 점이다. 이벤트 드리븐(Event-driven) 형식으로 동작하는 다른 센서 운영체제와는 다르게 Nano Qplus는 POSIX 기반의 표준 인터페이스 중에서 멀티 스레드와 관련된 POSIX.4a 규격의 서브셋을 지원하고 있다. 또한 실시간 지원의 핵심이라 할 수 있는 태스크 간의 선점(preemption)을 지원하고 응답성을 높여, 실시간 운영체제로서의 면모도 갖추고 있다.무엇보다도 Nano Qplus 커널의 특징은 센서노드용 운영체제인 만큼 앞서 언급된 제한된 에너지 문제를 해결하기 위하여 저전력 지원을 고려해 작성되었다는 점에 있다. 각 태스크들은 일단 생성되면 태스크가 종료되기 전까지 대기-준비-실행 세 가지 중 한 가지 상태에 놓이게 된다. 여기까지는 전통적인 LINUX 스타일의 태스크 스케줄러와 유사하나, Nano Qplus는 준비 상태의 태스크가 없을 경우, 새로운 태스크가 준비 리스트에 들어오기 전까지 sleep mode로 하드웨어를 조절하여 전력 소모를 최소화 할 수 있도록 한다.또한 Nano Qplus 운영체제는 센서노드의 하드웨어적인 제약, 즉 적은 메모리와 낮은 CPU성능도 고려하여 제작되었다. 적은 메모리 제약을 극복하기 위해 선택적으로 커널의 모듈들을 선택하여 각각의 응용에 최적화된 커널 이미지를 생성할 수 있도록 하였다.이러한 과정은 사용자 편의를 위해 menuconfig을 이용해 구성함으로써 그림 7에서 보는 것과 같은 가시적인 환경에서 쉽게 선택적으로 각각의 모듈을 더하고 뺄 수 있다. 물론 이러한 기능은 지난 호에 소개된 Eclipse 기반의 NanoEsto에서도 지원하고 있으므로 이 도구를 사용하는 것이 효과적이다. 하지만 만약 사용자가 자신만의 다른 프로그래밍 도구를 사용하길 원한다면 위의 menuconfig을 이용하여 커널의 선택적인 구성을 할 수 있는 기능이 크게 도움이 될 것이다.그리고 CPU 성능과 관련해, AVR-GCC라는 ETRI-SSN 보드에 사용된 ATmega128L 칩을 위한 공개 C 컴파일러가 다른 상용 컴파일러에 못지않은 뛰어난 성능을 보이긴 하지만, 조금이라도 더 CPU의 성능을 끌어내기 위해 Nano Qplus 커널 부분에서 자주 사용되는 함수의 경우는 직접 어셈블러를 이용해 매크로로 작성하였다.Hardware Abstraction Layer(HAL)Nano Qplus는 센서노드에 사용되는 하드웨어를 제어하고 이를 추상화하여 사용자에게 API(Application Program Interface)의 형태로 제공함으로써, 사용자는 Nano Qplus에서 제공하는 간단한 API를 이용하는 것만으로도 센서노드의 모든 하드웨어를 원하는 대로 제어할 수 있다. 이러한 기능을 제공하는 부분이 HAL 부분이다.기본적으로는 ETRI-SSN 보드에서 지원하는 가스 센서, 초음파 센서, 온도 센서, 습도 센서, 적외선 센서, LED 등의 동작을 제어할 수 있는 드라이버가 작성되어 있다. 이러한 드라이버는 Nano Qplus에서 추상화되어 사용자에겐 API의 형태로 제공된다. 따라서 사용자는 간단한 API를 통해, 각 센서들을 간단하게 응용 프로그램 내에서 제어할 수 있다. 물론 각각의 센서는 모듈화되어 있으므로 커널 이미지를 생성할 경우에 포함된 모듈의 센서에 대해서만 조작이 가능하다.HAL 부분에도 센서노드의 에너지 소비를 최소화시킬 수 있도록 하기 위하여 저전력 모드와 관련한 사용자 API를 제공한다. ETRI-SSN 보드의 경우 32KHz로 동작하는 비동기적인 클럭을 추가하여 설계함으로써, 최대 8초까지 사용자가 원하는 시간 동안에 sleep mode로 센서노드의 에너지 소모를 최소화 하여 동작시킬 수 있도록 하는 API를 지원한다.각 하드웨어 모듈로부터 데이터를 수집할 때는 가능한 한 폴링(polling)방식을 지양하고 인터럽트 방식을 사용하여 CPU가 busy-waiting 상태로 실행되지 않고 대기모드로 들어가게 하였다. 이러한 방식을 통해 각 태스크가 가능한 한 CPU를 적게 사용하게 하고 준비 상태의 태스크 수를 최소화함으로써, 낮은 성능의 CPU하에서도 Nano Qplus의 강점인 멀티 스레드 기능이 활용 가능하고 이벤트에 대한 응답도 빠른 시간에 이루어질 수 있게 하였다.또한 준비상태의 태스크 수를 최소화하는 것은 CPU가 가능한 많은 시간을 sleep mode로 동작하게 함으로써 에너지 측면에서도 많은 이득을 볼 수 있다. 예를 들어 UART를 통한 시리얼 통신의 경우 사용자로부터 키보드를 통해 데이터를 입력 받을 때 폴링 방식을 통해 CPU가 busy-waiting 하면서 블록 된 채로 사용자의 입력을 기다리도록 하는 것이 아니라, 키보드 입력을 인터럽트로 처리하여 인터럽트 서비스 루틴 내에서 사용자 입력 플래그 비트를 이용하여 사용자 입력요청의 유무를 판단하고 입력을 받을 수 있는 상황일 경우 그에 맞는 적절한 실행이 이루어지도록 처리했다.통신 프로토콜 스택일반 범용 운영체제의 경우엔 통신 프로토콜 스택을 운영 체제의 일부로 포함시키지 않는다. 운영체제에 관계없이 IEEE (Institute of Electrical and Electronics Engineers), IETF (Internet Engineering Task Force)에서 채택한 표준에 의해 정해진 Ethernet, 802.11 등의 MAC 프로토콜, TCP/IP, UDP 등의 네트워크 프로토콜을 사용하고 있기 때문이다. 하지만 센서네트워크의 경우엔 아직까지 정해진 표준이 없고, 독립적인 네트워크 구성을 가지게 된다. 센서노드가 필요에 의해 기존 인터넷 망에 연결된다 하더라도 일반적으로 이는 센서노드용 운영체제에서 지원하지 않고, 별개의 하드웨어와 소프트웨어를 두게 된다. 따라서 센서노드용 운영체제는 각 운영체제마다의 고유한 MAC 프로토콜, 라우팅 프로토콜을 지니게 되며 이러한 통신 프로토콜 스택 자체가 각 운영체제의 고유한 특성이 된다.현재 센서네트워크를 위한 새로운 라우팅 프로토콜이 학계에서 많은 논문을 통해 계속해서 발표되고 있다. 이러한 라우팅 프로토콜은 수백~수천 개의 고유 ID를 지니지 않은 노드들로 이루어진 네트워크를 모델로 하여 flooding 방식의 통신을 기반으로 한 것도 있고, 기존 Ad-hoc 네트워크와 비슷하게 적게는 수십에서 많게는 수백 개의 각각 고유한 ID를 지닌 노드들이 점대점 방식으로 통신하는 모델을 기반으로 제안된 프로토콜도 있다. 현재 Nano Qplus의 센서 네트워크 모델은 노드수가 수천 개까지 이르는 것이 아니기 때문에 후자의 방법으로 통신하는 프로토콜을 탑재하고 있다.실제로 Nano Qplus에서 지원하는 MAC 프로토콜로는 Zigbee 프로토콜 스택의 표준이기도 한 IEEE 802.15.4 표준과 S-MAC이 있다. 이는 C 코드로 구현되었으며 사용자가 커널 이미지 생성 시에 선택적으로 사용할 수 있도록 하고 있다.라우팅 프로토콜의 경우엔 Ad-hoc 네트워크에서 초창기에 제안되고 가장 널리 알려진 Perkins가 제안한 AODV(Ad hoc On Demand Distance Vector)와 유사한 라우팅 기법을 사용한다. EAMR(Energy Aware Multi-path Routing)이라고 명명된 Nano Qplus에 탑재된 새로운 라우팅 프로토콜은 기존의 AODV 기법을 기본으로 하여 여기에 disjoint multi-path 기능과 각 노드의 에너지 잔량을 경로 설정 시 참고하도록 하는 기능을 추가한 것이다.EAMR 프로토콜 역시 앞서 언급한 센서노드의 에너지 제약을 극복하기 위한 방편으로 고안된 프로토콜이다. 센서네트워크에서 각 센서노드의 에너지 잔량을 고려하지 않을 경우엔 데이터 통신과 관련된 부하가 분산되지 않고 특정 센서노드에 집중되어 결국 네트워크의 수명이 짧아지는 결과를 가져오게 된다. 하지만 EAMR은 각 센서노드의 에너지 잔량을 고려함으로써 이러한 각 센서노드의 수명의 불균형을 최소화하였고, 이를 통해 획기적으로 센서네트워크 수명을 늘리게 되었다. 또한 multi-path를 유지함으로써 센서노드의 예상치 못한 고장 혹은 수명이 다한 경우에 대해서도 데이터 전송에 있어서의 신뢰성을 높일 수 있었다.최근에는 Zigbee Aliance에서 제안한 Zigbee 프로토콜 스택이 센서네트워크에 많이 사용되고 있으며 ETRI에서도 이러한 경향에 발맞추어 내년 초까지 Zigbee 표준을 따르는 라우팅 프로토콜을 구현하여 완성된 Zigbee 프로토콜 스택을 포함한 새로운 버전을 배포하려는 목표를 세우고 구현중에 있다.Nano Qplus의 기능 비교와 개선해야 할 점여기서는 앞서 언급한 센서노드용 운영체제로서의 특징 이외에 Nano Qplus가 가진 다양한 기능들에 대한 설명과 Nano Qplus가 현재 풀어나가야 할 숙제들에 대해 언급하도록 한다. Nano Qplus가 갖고 있는 다양한 기능과 장점들은 다음과 같다.● TinyOS의 경우 nesC라는 독자적인 언어로 프로그래밍 해야 하므로 개발자가 새로운 언어를 배워야 한다는 부담이 있으나, Nano Qplus는 프로그래머들에게 익숙한 C언어의 기본적인 라이브러리들과 Nano Qplus에서 제공하는 간단한 API를 이용하는 것만으로 원하는 센서 네트워크용 프로그램을 쉽게 작성할 수 있다.● Rapid Prototype 기능을 사용하면 커널 설정에서 선택된 각 모듈에 대한 예제 코드가 자동으로 작성되어, 이를 참조해 사용자가 예제 프로그램을 일일이 찾아보지 않고도 쉽게 센서노드를 제어하는 방법을 익히고 프로그램을 작성할 수 있다.● Link layer(MAC)에서의 간단한 데이터 암호와 및 인증 기능을 제공한다.● NanoEsto라는 Eclipse 기반의 Nano Qplus 전용 도구를 이용하는 것만으로 커널 설정부터 컴파일과 디버깅, 디바이스 프로그래밍까지 모두 가능하다.Nano Qplus는 작지만 센서 네트워크에 최적화된 필수적인 기능들을 포함하고 사용자를 위한 편의적인 기능을 제공함으로써 쉽게 사용할 수 있도록 고안되었다. 이러한 Nano Qplus의 성능에 대해 객관적인 평가를 받고 대외적인 경쟁력을 알아보기 위해 2005년에 다른 운영체제와의 성능분석을 서울대학교에 의뢰하였다.TinyOS, SOS 및 MANTIS 등과의 기능 및 성능 비교에서 Nano Qplus가 다른 운영체제에 비해 기본적인 운영체제로서의 성능은 비슷하거나 우월하였으며, 기능 측면에서도 센서노드를 위한 운영체제로서 저전력을 동작을 위한 다양한 기능을 추가적으로 지니고 있어서 상당한 경쟁력을 가진 센서 운영체제임을 확인할 수 있었다(표 2).하지만 Nano Qplus에는 여전히 개선 가능한 부분들이 존재하여 이를 수정하기 위한 작업을 계속 진행 중이다. 특히 현재 최근 가장 큰 이슈로 삼고 있는 사항은 바로 동적 모듈 업로드 기능이다. 동적 모듈 업로드 기능은 센서노드와 같이 한번 배치되고 회수하여 프로그램을 수정하기 어려운 경우에 필요한 핵심적인 기능이다. 동적 모듈 업로드를 통해서 각 센서노드들이 수작업이 아닌 현재 작동중인 통신 프로토콜을 이용해 커널 이미지를 전송받고 그것을 현재 작동중인 커널에 추가하거나 수정할 수 있게 된다. ETRI에서도 이러한 동적 모듈 업로드 기능의 중요성을 인식하고 계속 연구하고 있다.센서 네트워크 모니터링 시스템센서네트워크를 효율적으로 관리하기 위해서는 센서네트워크의 상태를 사용자가 언제라도 쉽게 모니터링하고 분석할 수 있는 시스템이 필요하다. ETRI에서는 이러한 필요성을 만족시키기 위하여 센서네트워크 모니터링 시스템을 개발하였다.그림 8은 센서네트워크 모니터링 시스템의 구성도이다. 센서 네트워크 모니터링 시스템은 크게 센서노드(sensor node)들의 집합으로 이루어진 센서네트워크와 센서네트워크로부터 발생되는 정보를 받아 사용자에게 보여주는 역할을 하는 모니터링 서버로 구성되어 있다. 위험 상황 발생 시 기기를 제어하는데 사용되는 액추에이터(actuator) 노드는 모니터링 서버에 연결될 수 있다.센서네트워크를 구성하고 있는 무선 센서노드들은 센싱 데이터를 싱크노드(sink node)로 전송한다. 싱크노드는 여러 센서들로부터 수신된 데이터를 모아서 네트워크 설정 초기에 정의된 주기마다 시리얼 통신을 이용하여 모니터링 서버로 전송한다. 센서노드와 싱크노드는 동일한 센서노드 모듈을 하드웨어로 사용하며 그 위에 Nano Qplus 운영체제를 동작시켜 각각의 기능을 수행하게 한다.모니터링 서버는 윈도우 운영체제 상에서 동작하는 애플리케이션으로 작성되었다. 시리얼 라인을 통해 센싱 데이터를 전송 받으며, 받은 데이터를 종합·분석하여 모니터링 GUI를 통하여 사용자에게 보여준다.그림 8에서 보듯이 모니터링 서버는 이러한 작업을 수행하는 여러 개의 소프트웨어 모듈로 설계되었다. Serial Manager는 싱크노드와의 시리얼 통신을 담당하며, Sensor Data Manager는 시리얼 라인으로부터 수신된 센싱 데이터들을 각 센서노드 별로 분류하고 데이터 값이 정상 범위인지 등을 분석한 후, 적절한 Monitoring GUI부분으로 센싱 데이터를 보내 주거나 엑 츄 에이터 노드로 제어정보를 보낸다. Monitoring GUI는 받은 데이터를 화면 구성요소를 이용하여 사용자에게 보여주며, 엑 츄 에이터 노드는 모니터링 서버가 보내준 제어정보를 바탕으로 연결된 기기를 동작 시킨다.그림 9는 모니터링 서버의 GUI 화면이다. 센서네트워크를 구성하는 노드 리스트를 보여주는 부분, 수신되는 데이터를 보여주는 부분, 토폴로지를 보여주는 부분 및 각 센서노드의 상세 정보를 보여주는 부분으로 구성되어 있다. 모니터링 서버가 사용자에게 제공하는 주요 기능은 다음과 같다.● 센서네트워크를 구성하는 노드들의 종류, ID, on/off상태 및 다른 노드와의 연결 상태를 실시간으로 업데이트하여 화면에 출력하는 기능● 센서네트워크로부터 수신되는 센싱 데이터 및 데이터 전송 경로를 계속적으로 화면에 출력하는 기능● 센서네트워크의 토폴로지 변화를 실시간으로 화면에 출력하는 기능● 센서노드의 이름, 설치 장소, 임계값과 같은 정적인 정보를 저장하고 사용자 요청 시마다 보여주는 기능● 수신된 센싱 데이터가 특정 조건을 만족하는 경우 엑추에이터로 제어 정보를 전송하여 엑츄에이터와 연결된 기기를 동작시키는 기능센서네트워크 모니터링 시스템은 현재 가스 안전 모니터링 시스템(그림 10)으로 구현하여 시험 운영을 하고 있다. 가스 안전 모니터링 시스템은 평상시에 실시간 환경(온도, 조도, 습도), 움직임, 가스 누출 정도를 감시하며, 가스 누출 및 비상 상황 발생 시에 SMS를 이용해 경보 메시지를 발생시키고 구동기를 통해 가스 밸브를 자동 차단하는 시스템이다. 이러한 가스 안전 모니터링 시스템은 가정뿐만 아니라 위험을 상시 모니터링 해야 하는 산업 현장에서도 사용될 수 있다.센서 네트워크 모니터링 시스템은 위에서 설명한 가스 안전 모니터링 시스템 외에도 환경오염 모니터링 시스템, 방재 모니터링 시스템 등 다양한 응용분야에 활용 가능하다.향후 프로젝트 계획ETRI에서는 스페인의 자동차 관련 연구기관인 ETRA, 이탈리아 자동차 회사인 피아트, 독일의 슈트트가르트 대학 등 유럽 5개국 6개 기관이 참여한 EMMA(Embedded Middleware in Mobility Applications) 프로젝트에 공동연구 기관으로 참여하여 자동차용 센서노드에 필요한 고신뢰성 초소형 운영체제를 개발에 착수하였다. EMMA 프로젝트에서 유럽 참가 기관은 스마트 텔레매틱스 서비스를 위한 자동차용 센서 기반 미들웨어를 개발하는 것을 목표로 하고 있다.현재 자동차 내에는 차량자세 제어장치, 와이퍼, 파워 윈도우, 파워 시트, 에어콘 등의 제어를 위해 30~40개의 ECU (Electronic Control Unit)가 사용되는데, 이에는 보통 8, 16, 32비트의 마이크로프로세서가 내장되어 있다. 자동차의 모든 ECU가 실시간 운영체제를 필요로 할 정도로 복잡한 기능을 하는 것은 아니며, 적은 하드웨어 자원만으로도 동작 가능한 센서노드용 운영체제와 간단한 미들웨어로도 제어가 충분한 경우가 대부분이다.이러한 이유로 EMMA프로젝트에서는 센서노드용 운영체제가 필요하게 되었고, 현재 센서노드용 운영체제로 가장 많이 사용되고 있는 미국의 TinyOS도 제안서 작성 초기에는 유럽 참여기관에서 센서노드용 운영체제로 고려했었다. 하지만 TinyOS에서는 멀티태스킹을 지원하지 않아 EMMA 미들웨어와 응용 소프트웨어가 동시에 동작하여야 하는 EMMA 프로젝트와 같은 경우에는 사용할 수 없다는 단점과 개발될 미들웨어에서 필요로 하는 기능을 운영체제에서 제공받을 수 없는 점이 있었다. 이에 센서노드용 초소형 운영체제이면서도 스레드 프로그래밍을 지원해 멀티태스킹이 가능한 Nano Qplus를 개발한 ETRI가 EMMA프로젝트에 공동연구 참여를 하게 된 것이다.EMMA 미들웨어는 ETRI에서 개발하고 있는 센서노드용 초소형 임베디드 운영체제 상에서 개발하기로 하였다. 따라서 EMMA 미들웨어를 상용화하기 위해서는 반드시 Nano Qplus를 사용하여야 하므로 EMMA 프로젝트를 통하여 Nano Qplus를 자연스럽게 유럽 자동차 시장에 상용화할 수 있는 가능성이 열리게 되었다.결론무선 센서네트워크 기술이 다양한 분야에 이용되기 시작함에 따라 유비쿼터스 사회가 현실로 다가오고 있다. 이러한 유비쿼터스 서비스 구축을 실현하기 위해 ETRI에서는 광범위한 응용 분야에 센서 운영체제 기술이 사용될 수 있도록 Nano Qplus의 안정화에 주력하고 있으며, 자동차의 센서 제어에도 사용될 수 있도록 그 기능을 확장하는 유럽과의 국제공동연구도 수행하기 시작하였다. 유럽과의 국제공동연구가 성공적으로 완료되면 RTOS를 사용하던 자동차 내 전자장치 모듈 중에서 작은 모듈은 센서노드와 새로운 통신 방식을 적용한 미들웨어를 탑재한 모듈로 대체될 것이며, 이러한 센서노드에는 Nano Qplus가 사용될 것이다. 이번 기회를 통해 유럽의 기관들로부터 Nano Qplus 기술의 우수성을 검증받아 센서노드용 초소형 운영체제 분야의 세계 시장에서 널리 상용화되는 전기가 마련되기를 ETRI와 전 연구원은 기대하고 있다.
회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지