2014년 7월 25일 금요일

[콘티키/Contiki] MAC, RDC 프로토콜 변경

콘티키의 MAC layer는 크게 MAC, RDC 이렇게 두 부분으로 구분 됩니다.

MAC 은 우리가 일반적인 네트워크에서 생각하는 역할을 합니다.

CSMA 가 MAC에 구현되어 있습니다.

RDC는 Radio Duty cycle의 약자로, Duty cycle을 관리하는 역할을 합니다.

센서네트워크에서 sleep schedule을 관리하는 부분에 대한 다양한 연구들이 있는데요,

X-MAC, B-MAC 등등, 이런 부분들이 다 Duty cycle을 관리하는 것이라고 생각할 수 있습니다.

콘티키에는 RDC driver가 다음과 같이 5개가 있습니다.

 contikimac_driver
 xmac_driver
 cxmac_driver
 lpp_driver
 nullrdc_driver

이 중에서 우리가 마음대로 골라서 사용할 수 있습니다.

각각의 장단점이 있으니 상황에 맞는 RDC driver를 골라서 사용하면 됩니다.

이를 바꾸는 방법은 다음과 같습니다.


RDC driver 는 플랫폼에 따라서 따로 선택해서 사용할 수 있습니다.

따라서 이를 설정해주는 파일은 플랫폼 별로 만들어 져 있습니다.

micaz 플랫폼을 예로 들어서 설명을 하면,


CONTIKI/platform/micaz 폴더에 있는 contiki_conf.h 파일을 엽니다.


contiki_conf.h 파일에서는 우선 ipv6을 사용할지 아닐지에 대하여 구분 하여 설정을 합니다.

일반적인 센서 네트워크 구성에서는  ipv6를 사용하지 않기 때문에

/* Network setup for non-IPv6 (rime). */

이 부분에서 rdc driver를 선택할 수 있습니다.

#define NETSTACK_CONF_RDC     contikimac_driver
#define NETSTACK_CONF_RDC     xmac_driver
#define NETSTACK_CONF_RDC     cxmac_driver
#define NETSTACK_CONF_RDC     nullrdc_driver

그리고 다시 업로딩을 해서 실행하면 다음과 같이 RDC driver 가 바뀐것을 확인 할 수 있습니다.

___________________________________________________

Rime started with address 1.0
MAC 01:00:00:00:00:00:00:00
CSMA nullrdc, channel check rate 128 Hz, radio channel 26
Contiki 2.7 started. Node id 1
___________________________________________________

댓글 없음:

댓글 쓰기