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
___________________________________________________