본문 바로가기

예전글 목록

TinyOS에 ZigBee 프로토콜을 어떻게 올리나요?


어떤분으로부터 다음과 같은 내용에 대한 메일을 받았습니다.
>> 저는 센서네트워크 미들웨어 관련하여 과제를 수행중인데 zigbee에 궁금한게 있어서..
>> zigbee를 tinyos에 심어서 micaz에 올리려고 하는데요 자료가 많이 부족하네요.
...
>> z-stack이라는 걸 무료로 배포 하고 있는데 그걸 바로 사용해도 될까요?

아무래도 정리도 할겸 해서 블로그를 통해서 답변을 드리겠습니다.
먼저 ZigBee, TinyOS, Micaz라는 것에 대해서 명확해야겠죠.

1. ZigBee: 간단히 ZigBee Alliance에서 표준화하고 있는 프로토콜이라고 할 수 있습니다.
즉 프로토콜이죠. IEEE 802.15.4라는 MAC단까지 정립되어 있는 프로토콜 상위에 Network
Layer와 Application Layer를 추가하였죠. 좀더 자세히 보면 세분화 되어 있지만 크게는
이렇습니다. 그리고 ZigBee는 Industry 컨소시엄이며 실제 칩벤더에서 스택을 제공하고
있죠. 

2. TinyOS: 말 그래도 OS즉 플랫폼이며, Sensor Network를 위한 설계된 플랫폼이라고
보시면 됩니다. 그렇다면 ZigBee와 TinyOS는 어떠한 관계일까요? ZigBee가 TCP/IP를
기반으로 하는 프로토콜이라고 보신다면 TinyOS는 윈도우 운영체제라고 보시면 됩니다.
물론 많은 비약이 있지만 이해하기는 쉬울 것입니다.

3. Micaz: 그냥 하드웨어죠. 아마 모트(?)라고 부르죠. 먼저 Micaz는 ATmega128L+CC2420
으로 크게 구성이 되어 있네요. 그렇다면 Micaz에 ZigBee나 TinyOS가 올라갈까요? 물론
둘다 올라갑니다. 먼저 따로 따로 올라간다고 말씀 드리겠습니다. <= 요거는 뒷부분을 읽으
면 내용이 조금 이해하실 겁니다.

여기서 부터 아마 답변이 될거 같네요.
TinyOS는 ZigBee보다 먼저 나왔죠. 정확한건 모르겠지만 WSN이라는 개념이 성립되고
이후 버클리의 한랩에서 주도적으로 이에 대한 WSN을 실제 구현할 수 있고 적용할 수 있는
플랫폼의 필요성을 느끼게 되었죠. 그리고 얼마 시간이 지나서 WSN의 시장이 커질거라는
예측과 수요의 발생으로 인해서 정형화된 그 무엇인가가 필요했던거죠. 즉 각각이 제품을
만들면 제품간의 호환성이 가장 문제죠. 우리가 매일 사용하는 USB관련 제품이 이를 잘
설명합니다. 그냥 USB관련 제품끼리는 잘 동작하죠.. 어디에서 만들던지요. 그래서 ZigBee
Alliance에서 ZigBee라는 프로토콜을 제정하게 되었고 이에 참여하는 칩 벤더나 업체들은
자사의 이익을 위해서 ZigBee Stack(ZigBee Software)를 만들어서 쉽게 개발자들이 개발
할 수 있도록 제공했죠. 그러자 ZigBee 시장이 상당히 커지고 사람들도 조금씩 ZigBee라는
것을 알게 되었습니다. 그렇다면 TinyOS에서는? 네 ZigBee 프로토콜을 TinyOS라는 플랫폼
에서 지원하기 위해서 구현을 시작합니다. 왜냐구요? 음... 이건 문화의 차이와 오픈소스의
생태계와 그 뭐랄까... ^^^

ZigBee와 TinyOS의 관계 및 IEEE 802.15.4와 TinyOS의 관계 간단 설명
http://www.tinyos.net/faq.html#SEC-77

네 결론입니다. 이미 TinyOS기반의 ZigBee 프로토콜이 Open Source형태로 구현이
되었으며 되고 있는 중인 듯 합니다. 다음의 URL을 참조하시면 원하는 것울 얻으실
수 있을 겁니다.

http://www.hurray.isep.ipp.pt/activities/ZigBee_WG/default.aspx?AspxAutoDetectCookieSupport=1
http://www.open-zb.net/

그리고 두번째로 Micaz의 H/W에 TI사의 ZStack을 TinyOS에 올리는 것은 감히 불가능이라고
말씀 드릴 수 있습니다. 물론 Micaz가 아닌 다른 센서 하드웨어를 직접 설계하시면 방향을
다르게 하여 TinyOS <--> TI Zstack간의 인터페이스 공유를 통해서 가능은 하지만 그건
조금 Funny한 구현이라서요.. 아니라고 단언할 수 있습니다. 

마지막으로
그리고 직접 TinyOS를 분석하시고 ZigBee Pro프로토콜을 분석하시어 실제 구현을 하시면
많은 것을 얻게 되실거라고 확실히 말씀드리고 싶습니다.
아무쪼록 좋은 연구가 되시고 가끔식 연락 주셔도 됩니다. ^^ <== 질문자에게 드리는 글.. ^^