상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되어 있는 상세한 설명을 통하여 보다 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.
도 1은 본 발명이 적용되는 무선 센서 네트워크의 일실시예 전체 구성도로서, 일반적인 응용모델을 위한 무선 센서 네트워크의 구성 예를 나타내는 도면이다.
도 1에 도시된 바와 같이, 센서 필드는 싱크노드를 중심으로 형성되는 멀티홉 네트워크로서, 여러 개의 클러스터로 나누어진다. 여기서, 각 클러스터는 클러스터 형성의 중심적 역할을 하며 클러스터 자체 정보와 클러스터 동기를 위한 정보를 제공하는 클러스터헤드와, 지리적 위치의 기준점을 제공하는 다수의 앵커노드와, 응용에 필요한 각종 정보를 센싱하는 다수의 고정센서노드를 포함하여 이루어진다. 이때, 이동노드(예 : 이동센서노드)는 이들에 의해 형성된 무선 센서 네트워크 공간에서 제약없이 자유롭게 이동할 수 있다.
그리고 상기 클러스터헤드는 클러스터 네트워크 형성의 중심으로서, 고유한 자신의 비컨을 방송하고 클러스터 내 모든 노드들의 네트워크 접속에 대한 허용 여 부를 결정하며 노드 ID(IDentifier) 등과 같은 네트워크 자원을 할당한다. 또한, 클러스터헤드는 접속된 모든 이동노드를 고려하여 현시점의 클러스터 상태정보를 클러스터 내 모든 노드들에 제공한다.
그리고 상기 앵커노드는 고유한 지리적 위치정보를 가지고 있고 이동노드의 위치인식을 위한 거리측정을 지원하며 클러스터 내 모든 노드 및 인접 클러스터 노드로부터 수신된 데이터를 목적지 노드 방향으로 전달하는 전달자 역할도 수행한다.
그리고 상기 고정센서노드는 응용에 필요한 각종 데이터를 센싱하고, 주기적으로 또는 응용 서버의 질의에 대한 응답으로서 센싱 데이터를 전송한다.
그리고 이동노드는 자신의 위치인식을 위한 거리측정 및 위치추정, 그리고 위치데이터 전달을 주기적으로 하거나 또는 응용 서버의 질의에 의해 해당 프로세스를 실행한다.
여기서, 응용 서버는 이동노드의 위치정보 및 센싱 데이터를 이용하여 특정의 응용서비스를 제공하는 응용시스템이다.
한편, 클러스터헤드의 커버리지는 인접 클러스터의 일부와 중첩되고, 클러스터의 각 앵커노드는 인접 클러스터헤드의 메시지를 수신할 수 있다. 또한, 앵커노드가 클러스터헤드를 가로지른 반대편에 있는 이동노드와 통신할 수 있어야 하므로, 앵커노드의 커버리지는 인접 클러스터의 상당부분의 영역과 인접 클러스터헤드를 포함한 영역과 중첩된다.
도 1에서는 3개의 이동노드 MN1, MN2, MN3가 클러스터1에 존재하고, 이동노드 MN1이 클러스터6에서 클러스터1을 통해 클러스터4 측으로 이동하고 있다. 본 발명에 따른 위치인식을 위한 메시지 처리 절차에 의하면, 고유한 비컨이 모든 클러스터헤드에 의해 주기적으로 방송되기 때문에 이동노드 MN1은 클러스터4에서 클러스터1으로 진입할 경우 클러스터1의 비컨을 수신하고 클러스터1에의 접속을 통해 클러스터1의 자원을 할당받는다. 이후, 클러스터헤드가 제공하는 클러스터 상태정보와 할당자원을 바탕으로 앵커노드의 지원을 받아 이동노드 MN1의 위치인식을 위한 일련의 거리측정이 이루어진다. 이동노드 MN1은 이렇게 수집된 위치데이터(또는 산출된 위치정보)를 응용 서버로 전달하기 위해 클러스터헤드로 전송한다. 그리고 클러스터헤드는 클러스터 간 통신이 가능한 시간에 인접 클러스터 앵커노드를 경유하여 싱크노드로 위치데이터(또는 산출된 위치정보)를 전달한다.
도 2는 본 발명에 따른 무선노드의 이동성을 지원하는 위치인식 메시징 방법에 대한 일실시예 흐름도이다.
본 발명에 따른 무선노드의 이동성을 지원하는 위치인식 메시징 방법은 Nmn개의 이동노드, Nan개의 앵커노드, 클러스터헤드, NACL개의 인접 클러스터의 노드(클러스터헤드, 앵커노드) 간의 상호작용을 포함한다.
본 발명에 따른 첫 번째 과정은 클러스터 자원할당 과정이다(201 내지 203). 클러스터헤드는 주기적으로 비컨(클러스터 ID, 클러스터헤드 ID, 비컨 주기, 활성구간, 제 1 경쟁접속구간(CAP), 이동노드 접속가능 여부)을 방송하기 때문에 이동노드는 어느 지점에서든 비컨 프레임을 수신할 수 있다. 여기서, 정보요소로서 ID(IDentifier)는 각 클러스터 및 노드를 서로 구별하기 위한 것으로서, 16비트 길이의 짧은 어드레스이다. 그리고 비컨 주기는 클러스터 비컨 프레임의 전송 간격이고, 활성구간은 비컨 슬롯을 포함하여 해당 클러스터가 배타적으로 채널을 점유할 수 있는 시간구간이다. 그리고 제 1 경쟁접속구간은 이동노드가 클러스터헤드에 경쟁기반으로 접속할 수 있는 구간으로서, 비컨 슬롯 이후부터 일정한 구간으로 정의된다. 따라서 이동노드를 위한 클러스터 자원할당은 수신된 비컨 프레임 정보를 바탕으로 현재 위치가 어떤 클러스터 영역인지를 확인하는 현위치 클러스터 검사 과정(201)과 이동노드에게 클러스터 일원으로서 네트워크에 참여해서 위치인식을 지원할 수 있는 클러스터 자원할당이 되는 클러스터 접속 과정(203)을 포함하여 이루어진다.
먼저, 이동노드는 수신된 비컨 프레임의 클러스터 ID, CIDp를 자신이 저장하고 있는 클러스터 ID, CIDm과 비교 및 검사하여(201) 현위치의 클러스터가 이미 접속해 있는 클러스터인지 또는 새로운 클러스터인지를 판단한다(202). 상기 판단 결과(202), 지금 수신된 상기 클러스터 ID, CIDp가 자신이 접속해 있는 클러스터 ID, CIDm과 같은 경우에는 별도의 자원할당이 필요하지 않다. 그러나 상기 판단 결 과(202), 상기 CIDp가 자신의 CIDm과 다르고 클러스터헤드의 새로운 이동노드 접속 허용이 비컨의 해당 정보를 통해 확인된다면 이동노드는 클러스터 자원할당을 받기 위한 클러스터 접속 과정(203)을 수행한다.
여기서, 클러스터 접속 과정(203)은 이동노드가 클러스터 네트워크 접속을 클러스터헤드에 요청하는 접속 요청(Connection Request) 메시지와 그에 대한 응답인 접속 응답(Connection Response) 메시지를 교환하는 과정이다. 상기 접속 요청(Connection Request) 메시지는 클러스터 ID, 클러스터헤드 ID, 이동성 등급(mobility class) 등을 포함한다. 그리고 이동노드의 이동성은 응용모델 및 운용환경 등과 같은 센서 네트워크의 일반적인 특성을 감안한다면 10k/m의 이동속도를 초과하지 않기 때문에 그 등급은 이동빈도, 이동속도 등을 고려하여 분류될 있다. 따라서 고정되어 있거나 간헐적인 이동(nomadic)이 가능한 이동노드는 3등급, 최고속도가 4km/h이하인 저속의 이동노드는 2등급, 최고속도가 4km/h를 초과하는 중고속의 이동노드는 1등급으로 각각 분류하는 것이 가능하다. 이동성 등급은 해당 클러스터의 동시 위치인식 능력을 초과하는 이동노드가 존재할 경우 모든 이동노드가 서비스를 지원받을 수 있도록 이동노드 위치인식의 빈도, 즉 위치정보의 갱신율을 서로 다르게 결정하는데 사용된다. 예를 들면, 1등급은 비컨 간격마다, 2등급은 두 개의 비컨 간격마다 한 번씩, 3등급은 4개 또는 그 이상의 비컨 간격마다 또는 비컨 간격을 초과하는 일정한 시간간격마다 한 번씩 위치인식을 수행하는 것과 같이 등급별로 서로 다른 위치인식 빈도를 사용하도록 결정할 수 있다.
상기 접속 요청(Connection Request) 메시지를 수신한 클러스터헤드는 이동노드를 위한 노드 ID, 타임슬롯번호, 타임호핑시퀀스, 앵커노드 ID 리스트 등을 포함하는 접속 응답(Connection Response) 메시지로서 상기 접속 요청(Connection Request) 메시지에 대해 응답한다. 여기서, 정보요소로서 노드 ID는 각 노드를 서로 구별하기 위한 것으로서, 16비트 길이의 짧은 어드레스이다. 그리고 타임슬롯번호는 채널점유 경쟁에서 빚어지는 백오프에 따른 프레임전송 연기 또는 프레임 충돌 등과 같은 다른 이동노드와의 경쟁없이 해당 이동노드가 위치인식을 위해 배타적으로 사용할 수 있도록 보장되는 시간구간이다. 이 타임슬롯번호는 이동노드에게 할당되는 고유한 타임호핑시퀀스와 결합되어 사용될 때 다중의 이동노드에 대한 동시적인 위치인식을 지원할 수 있다. 그리고 앵커노드 ID 리스트는 이동노드의 위치인식을 위한 기준위치를 지정하기 위한 리스트이다. 그에 따라, 이동노드는 앵커노드와의 거리측정 시에 모든 앵커노드에 동시에 거리측정을 요청하고 앵커노드 ID 리스트 순서상의 앵커노드로부터 순차적으로 그에 대한 응답을 수신한다(후술되는 "205" 설명 참조). 상기 클러스터 접속 과정(203)에서 클러스터헤드와 이동노드의 식별은 디바이스 제조과정에서 고유하게 부여된 48비트 MAC(Media Access Control) 주소에 의해 이루어진다. 또한, 상기 접속 요청 및 접속 응답 메시지는 모든 앵커노드에 의해 수신되고, 해당 이동노드를 위한 거리측정 프로세스를 지원하는데 이용된다.
상기 클러스터 자원할당 과정에서 클러스터 접속을 원하는 모든 이동노드는 비컨 프레임이 전송되는 비컨 슬롯에 이어지는 제 1 경쟁접속구간(CAP) 동안에 클 러스터 접속을 시도한다. IR-UWB(Impulse Radio-UltraWide Band) 전송 방식을 지원하는 센서노드의 경우는 공통의 타임호핑시퀀스가 사용된다. 접속 요청(Connection Request) 메시지 전송은 다중의 이동노드에 의해 접속 요청이 시도될 때 발생되는 충돌을 효과적으로 방지할 수 있도록 별도의 랜덤 엑세스 메커니즘을 적용하여 이루어진다.
다음으로, 이미 접속되어 있는 이동노드와 현재 접속된 이동노드에 대한 효율적인 클러스터 운용을 위한 클러스터 운용상태를 설정하는 클러스터 상태조정 과정(204)이 수행된다. 상기 클러스터 상태조정 과정(204)은 접속된 모든 이동노드에 대한 효율적인 클러스터 운용상태를 클러스터헤드가 결정하는 과정과, 클러스터 상태정보 공유를 위해 클러스터헤드가 클러스터의 모든 노드에게 클러스터 상태정보를 전달하는 과정, 그리고 모든 노드들이 수신된 클러스터 상태정보를 자신들의 동작을 위한 운용조건 값으로 설정 및 갱신하는 과정을 포함하여 이루어진다.
여기서, 클러스터 운용상태는 이동노드의 배정타임슬롯 변경 및 회수, 이동노드의 위치정보 갱신간격, 제 2 경쟁접속구간(CAP) 및 제 3 경쟁접속구간(CAP)의 시간길이 등을 포함한다. 따라서 클러스터 운용상태 결정 과정에서는 이용가능한 클러스터 네트워크 자원을 극대화하기 위하여 클러스터헤드에 의해 이동노드 개수에 따른 배정타임슬롯의 변경 및 회수, 이동노드의 이동성 등급에 따른 해당 이동노드의 위치정보 갱신빈도 변경, 제 2 경쟁접속구간(CAP) 및 제 3 경쟁접속구간(CAP)에 대한 시작시점과 시간길이를 변경한다.
이때, 배정타임슬롯의 변경 및 회수의 경우에 있어서, 배정타임슬롯의 회수는 일정한 기준에 따라 이동노드의 클러스터 접속이 유효하지 않은 현시점에서 더 이상 그 접속을 허용할 수 없는 이동노드를 제외시키는 것이다. 여기서, 일정한 기준은 예로서 2회 이상 위치정보가 수신되지 않거나, 위치정보의 마지막 수신시점부터 일정한 시간이 경과되거나, 또는 현 클러스터에서의 이탈을 나타내는 접속해제 통지가 수신되는 경우 등으로 정의될 수 있다. 그리고 배정타임슬롯의 변경 및 회수의 경우에 있어서, 배정타임슬롯의 변경은 현 시점에서 접속된 이동노드가 할당된 타임슬롯을 곧바로 이용할 수 없을 경우 또는 응용 서버로부터 위치정보에 대한 질의가 요청되었지만 할당된 타임슬롯에서 즉각적인 위치인식을 할 수 없는 이동노드에 대해 임시로 이용가능한 타임슬롯을 추가 할당하거나 또는 동일한 등급의 이동노드가 동일한 타임슬롯을 이용할 수 있도록 초기에 할당된 타임슬롯을 다른 타임슬롯으로 변경하는 것이다. 이러한 배정타임슬롯의 변경이 위치정보 갱신빈도와 결합될 때 모든 이동노드를 위한 최적의 운용상태를 지원할 수 있다.
그리고 위치정보 갱신간격(갱신빈도) 변경은 최대 이동노드 접속 능력 및 타임호핑시퀀스, 타임슬롯개수 등 접속자원용량을 바탕으로 일부 또는 상당수의 이동노드에 대한 그의 위치인식(앵커노드와의 거리측정) 주기를 변경하는 것이다. 즉, 특정 등급의 이동노드 지원능력이 초과된 접속 이동노드가 존재하는 경우 그 접속 이동노드에 대한 위치인식 주기를 보다 긴 주기로 변경하는 것이다. 예를 들어, 현재 매 비컨간격마다 위치인식을 해야 하는 1등급 이동노드가 그에 대한 클러스터헤 드 지원능력 NClMax개를 Nexmn개만큼 초과하여 접속되어 있다고 가정한다. 이 경우에 신규 접속 이동노드의 위치인식을 즉각적으로 지원하기 위해 기존 접속 이동노드 중에서 상대적으로 위치변화가 적은 Nexmn개의 이동노드들 SCClbis에 대해 그의 위치인식 간격(위치정보 갱신간격)을 보다 긴 간격으로 변경한다. 이후에 다시 매 비컨간격마다 위치인식을 수행해야 하는 1등급 이동노드가 그에 대한 클러스터헤드 지원능력 NClMax개 이하로 감소되는 경우, 상기 이동노드셋 SCClbis의 위치인식 간격을 원래의 위치인식 간격으로 환원시킨다. 마찬가지로, 2등급 또는 3등급의 이동노드가 클러스터헤드의 지원능력을 초과하는 경우에 대해서도 동일한 방식으로 위치정보 갱신간격(갱신빈도)의 변경이 가능하다.
그리고 제 2 경쟁접속구간은 클러스터 내 노드 간의 통신을 위한 구간으로, 경쟁기반의 접속이 가능한 구간이다. 제 2 경쟁접속구간의 시작시점은 이동노드에 할당된 전체 타임슬롯의 종료와 더불어 시작되는 새로운 타임슬롯의 시작시점과 동일하고, 제 2 경쟁접속구간의 시간길이는 1개의 타임슬롯 구간과 동일하다.
그리고 제 3 경쟁접속구간은 클러스터 간의 통신을 위한 구간으로, 경쟁기반의 접속이 가능한 구간이다. 제 3 경쟁접속구간의 시작시점은 상기 제 2 경쟁접속구간에 이어서 시작되며, 제 3 경쟁접속구간의 시간길이는 2개의 타임슬롯 구간과 동일하다. 이때, 만약 제 3 경쟁접속구간 종료시점이 클러스터헤드가 이용가능한 최대 활성구간 TMaxActPrd를 넘지 않는다면, 그 차이(최대 활성구간 TMaxActPrd - 제 3 경쟁접속구간 종료시점)에 해당하는 시간구간은 모든 노드의 슬립상태 유지를 위한 비활성구간으로 사용된다.
상기 클러스터 운용상태 결정과정에 이어서 클러스터 상태정보 공유과정이 수행된다. 즉, 클러스터 상태정보 공유과정은 상기 클러스터 운용상태 결정과정에서 결정된 클러스터 상태정보를 하나의 메시지로 생성하여 공통의 타임호핑시퀀스를 이용하여 방송함으로써, 클러스터 내 모든 노드에 클러스터 상태정보를 전달한다. 여기서, 상기 클러스터 운용상태 결정과정에서 결정된 클러스터 상태정보는 클러스터 상태정보(Cluster State Information) 메시지로 생성된다. 이렇게 생성된 클러스터 상태정보(Cluster State Information) 메시지는 제 1 경쟁접속구간이 종료되고 각 노드에 할당되는 일련의 타임슬롯구간인 경쟁자유구간이 시작되는 시점에 이동노드 및 앵커노드에 전달될 뿐만 아니라 인접 클러스터 노드에게도 전달된다. 상기 클러스터 상태정보(Cluster State Information) 메시지는 클러스터 내 모든 노드에게 클러스터 상태정보를 전달함과 동시에 이동노드의 위치인식을 위한 경쟁자유구간의 시작을 알려주는 역할도 한다.
상기 클러스터 상태정보 공유과정에 이어서 클러스터 상태정보 갱신과정이 수행된다. 이 클러스터 상태정보 갱신과정에서는 클러스터 상태정보(Cluster State Information) 메시지를 수신한 앵커노드와 이동노드가 자신의 클러스터 상태정보를 상기 수신된 클러스터 상태정보로 변경 및 대체한다. 이후의 동작은 갱신된 클러스터 상태정보를 바탕으로 이루어진다.
상기 클러스터 상태정보 갱신과정을 통해 모든 노드에 의해 사용되어야 할 클러스터 상태정보가 현재의 것으로 갱신되면, 노드 간 거리측정 과정(205)이 수행된다. 상기 노드 간 거리측정 과정(205)은 이동노드가 상기 클러스터 접속 과정(203)에서 수신된 앵커노드 ID 리스트를 이용하여 각 앵커노드와 상기 이동노드 간 거리를 측정하는 과정이다. 즉, 이동노드는 모든 앵커노드에 대해 양자 간 거리측정을 요청하고 그에 대한 응답을 각 앵커노드로부터 순차적으로 수신한 후에 공지의 거리계산로직에 의해 두 노드(각 앵커노드-이동노드) 간의 거리를 산출한다.
이때, 본 발명에서는 거리측정 방식의 일예로서 편의상 전파의 이동거리를 측정하는 양방향 거리측정(Two Way Ranging) 방식을 이용한다. 이 양방향 거리측정(Two Way Ranging) 방식에 대하여 좀 더 상세히 살펴보면, 먼저 이동노드는 레인징 요청(Ranging Request) 메시지를 모든 앵커노드에게 멀티캐스트 방식으로 전송하고 그에 대한 응답으로서 레인징 응답(Ranging Response) 메시지와 레인징 파라미터(Ranging parameter) 메시지를 각 앵커노드로부터 수신한다. 이들 레인징 응답 및 레인징 파라미터 메시지는 앵커노드 ID 리스트 순서대로 해당 앵커노드로부터 순차적으로 수신된다. 이때, 이동노드는 레인징 요청(Ranging Request) 메시지 전송시점부터 그 응답인 레인징 응답(Ranging Response) 메시지 수신시점까지의 경과시간을 카운트하고, 반면에 각 앵커노드는 레인징 요청(Ranging Request) 메시지 수신시점부터 그 응답인 레인징 응답(Ranging Response) 메시지 전송시점까지의 경과시간을 카운트한다. 이와 동시에 모든 앵커노드와 이동노드는 또한 상기 경과시간동안의 주파수 드리프트와 클럭 옵셋을 각각 측정한다. 그리고 앵커노드에 의해 측정된 경과시간과, 주파수 드리프트, 클럭 옵셋(크리스탈 속성)은 상기 레인징 파 라미터(Ranging parameter) 메시지를 통해 이동노드에 전달된다. 이에 앞서 각 앵커노드의 지리적 위치정보 즉, 좌표값은 레인징 응답(Ranging Response) 메시지에 의해 이동노드에 제공된다.
상기 레인징 요청(Ranging Request) 메시지와, 그에 대한 레인징 응답(Ranging Response) 메시지 및 레인징 파라미터(Ranging parameter) 메시지의 교환은 해당 이동노드에 할당된 타임슬롯에서 이루어진다. 이때, NSubSlot개의 서브슬롯으로 구성된 타임슬롯에서 레인징 요청(Ranging Request) 메시지는 이동노드에 의해 첫 번째 서브슬롯을 통해 각 앵커노드로 전송되고, 레인징 응답(Ranging Response) 메시지와 레인징 파라미터(Ranging parameter) 메시지는 Nanchor개의 앵커노드에 의해 두 번째 ~ Nanchor+1 번째 서브슬롯을 통해 각각 해당 이동노드로 전송된다. 즉, Nanchor=4인 경우 첫 번째 앵커노드는 2번째 서브슬롯을 통해, 그리고 두 번째 앵커노드는 3번째 서브슬롯을 통해, 같은 방식으로 네 번째 앵커노드는 5번째 서브슬롯을 통해 레인징 응답(Ranging Response) 메시지와 레인징 파라미터(Ranging parameter) 메시지를 해당 이동노드로 전송한다.
한편, 다중의 이동노드가 동일한 타임슬롯을 할당받은 경우 해당 이동노드들은 상기와 동일한 노드 간 거리측정 과정(205)을 동시에 수행한다. 이때, 이들 다중의 이동노드 각각에게는 고유한 타임호핑시퀀스가 할당되기 때문에 상기 노드 간 거리측정 과정(205)에서 상호 간섭을 주지 않고 방해를 받지도 않으면서 통신할 수 있는 환경이 제공될 수 있다. 상기와 같이 다중의 이동노드가 동시에 거리측정을 하는 경우 각 앵커노드는 이들 다중의 이동노드들에게 크리스탈 속성을 공통 타임호핑시퀀스를 이용해서 한꺼번에 전송한다. 즉, 레인징 응답(Ranging Response) 메시지는 앵커노드의 위치좌표를 실어서 이들 다중의 이동노드들에게 멀티캐스트 방식으로 전달되고, 레인징 파라미터(Ranging parameter) 메시지는 각 앵커노드의 크리스탈 속성 및 측정치를 실어서 멀티캐스트 방식으로 이들 다중의 이동노드들에게 전달된다.
그러면, 이동노드는 상기 수신된 측정값과 자체 측정값을 바탕으로 공지의 별도 연산 과정을 통해 각 앵커노드-이동노드 간의 전파시간 즉, 물리적 거리를 산출함으로써 Nanchor개의 거리측정치를 획득한다. 이하의 설명에서는 상기 획득한 거리측정치와 상기 수신된 각 앵커노드 위치정보 등과 같은 모든 측위관련 데이터를 "위치데이터"라 하기로 한다.
상기와 같이 Nanchor개의 거리측정치가 모두 획득되면(205) 이동노드 위치데이터 처리 과정(206 내지 210)이 수행된다. 이때, 이동노드 위치데이터 처리 과정(206 내지 210)은 위치추정기능의 실장 위치에 따라(206) 상기 위치데이터를 이용하여 이동노드 위치정보를 산출한 후에 클러스터헤드 또는 싱크노드 또는 응용 서버로 전달하는 과정(207, 208) 또는 상기 위치데이터를 클러스터헤드 또는 싱크노드 또는 응용 서버로 전달하여 해당 노드에서 이동노드 위치정보를 산출하도록 하는 과정(209, 210)으로 이루어진다.
이때, 이동노드 위치정보 산출과정(207 또는 210)은 획득된 Nanchor개의 거리측정치와 해당 앵커노드의 위치정보에 대해 공지의 다변량측량법(Multilaterlation)과 같은 위치추정 방식을 적용함으로써 이동노드 위치정보를 산출할 수 있다. 이러한 이동노드 위치정보 산출과정(207 또는 210)은 디바이스가 구비한 가용자원(에너지양, 계산능력 등)의 정도에 따라 이동노드에서 수행될 수도 있고(207), 클러스터헤드 또는 싱크노드 또는 응용 서버에 의해 수행될 수도 있다(210). 즉, 위치추정기능이 이동노드에 있는 경우, 이동노드는 상기 위치데이터를 이용하여 자신의 위치정보를 산출한 후에 상기 산출한 이동노드 위치정보를 하나의 위치데이터(Location Data) 메시지로 구성하여 클러스터헤드 측으로 전달한다. 그리고 위치추정기능이 이동노드 이외의 클러스터헤드 또는 싱크노드 또는 응용 서버에 있는 경우 이동노드는 상기 위치데이터를 하나의 위치데이터(Location Data) 메시지로 구성하여 클러스터헤드 또는 싱크노드 또는 응용 서버 측으로 전달한다.
이때, 위치정보 전달과정은 상기 산출된 이동노드 위치정보 또는 상기 위치데이터가 클러스터헤드로 전송되는 제 1 과정과 멀티홉 라우팅을 통해 클러스터헤드로부터 인접 클러스터 노드를 경유하여 싱크노드 또는 응용 서버로 전달되는 제 2 과정을 포함하여 이루어진다. 위치정보전달 제 1 과정은 이동노드가 자신의 위치정보(또는 위치데이터)를 클러스터헤드 측으로 전달하는 과정으로서, 이동노드에 의해 전송되는 위치데이터(Location Data) 메시지 및 그에 대한 클러스터헤드의 응 답(Ack) 메시지로 이루어진다. 여기서, 위치데이터(Location Data) 메시지는 클러스터헤드 ID, 이동노드 ID, 이동노드 자신의 위치좌표, 타임스탬프, 순서번호 등을 포함한다. 만약, 이동노드가 위치추정기능을 갖지 않는 경우에 위치데이터(Location Data) 메시지는 클러스터헤드 ID, 이동노드 ID, 앵커노드 위치좌표 셋(Set), 앵커노드-이동노드 간 거리측정치 셋(Set), 타임스탬프, 순서번호 등을 포함한다. 그리고 상기 위치데이터 메시지와 그에 대한 응답 메시지의 교환은 해당 이동노드를 위한 할당 타임슬롯의 마지막 서브슬롯을 통해 이루어진다. 할당 타임슬롯은 해당 이동노드와 클러스터헤드 양자 간의 데이터 통신에 전용되기 때문에 즉각적인 메시지 전달이 가능하다.
상기 위치정보전달 제 2 과정은 상기 위치데이터(Location Data)가 멀티홉 라우팅을 통해 클러스터헤드로부터 인접 클러스터 노드를 경유하여 싱크노드 또는 응용 서버로 전달되는 과정으로서, 제 3 경쟁접속구간을 이용하여 이루어진다. 클러스터헤드와 싱크노드 사이의 중간노드들은 이동노드로부터 수신된 위치데이터(Location Data) 메시지의 전달을 위한 라우팅 테이블을 가지고 있고, 제 3 경쟁접속구간 동안에 상기 라우팅 테이블을 이용한 데이터 통신을 통해 상기 위치데이터(Location Data) 메시지를 싱크노드 방향으로 멀티홉 포워딩한다. 또한, 싱크노드에 이르는 경로상의 중간노드가 많은 경우에는 상기 위치데이터(Location Data) 메시지가 싱크노드까지 전달됨에 있어서 몇 개의 제 3 경쟁접속구간이 연속적으로 이용될 수도 있다. 이러한 위치정보전달 제 2 과정에서 상기 위치데이터(Location Data) 메시지의 전송은 공통의 타임호핑시퀀스를 바탕으로 한다. 따라서 제 3 경쟁 접속구간은 노드들의 전송채널 점유를 위한 링크제어방식으로서 슬롯된(Slotted) CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance) 방식을 지원한다.
전술한 바와 같이, 본 발명에 따른 위치인식 메시지 처리 절차는 센서 네트워크의 구성요소인 이동노도와 앵커노드, 클러스터헤드 간에 정해진 메시지 순서에 따라 이루어진다. 즉, 본 발명에 따른 위치인식 메시지 처리 절차는 위치인식 메시징 프로세스에 따라 비컨 프레임 방송 절차, 클러스터 접속을 위한 메시지 처리 절차, 클러스터 상태정보 방송 절차, 이동노드의 거리측정을 위한 메시지 절차, 및 위치정보 전달을 위한 메시지 처리 절차 등을 포함하여 이루어진다. 이를 도 3을 참조하여 간략하게 살펴보면 다음과 같다.
도 3은 본 발명에 따른 위치인식 메시지 처리 절차를 나타내는 일실시예 도면으로, 2개의 이동노드와 4개의 앵커노드, 그리고 하나의 클러스터헤드를 가정한 경우의 도면이다.
먼저, 비컨 프레임 방송 절차는 비컨 프레임이 클러스터헤드에 의해 클러스터 내 모든 노드에 동시에 전달되는 과정이다. 도 3에서 클러스터헤드에 의해 방송된 비컨 프레임은 이동노드1과 이동노드2, 앵커노드k(k=1,2,3,4)에 각각 전달된다.
다음으로, 클러스터 접속을 위한 메시지 처리 절차는 접속 요청(Connection Request) 메시지가 이동노드에 의해 클러스터헤드로 전송되고, 그에 대한 응답으로서 접속 응답(Connection Response) 메시지가 클러스터헤드에 의해 해당 이동노드 로 제공되는 과정이다. 이들 접속 요청(Connection Request) 메시지와 접속 응답(Connection Response) 메시지는 클러스터 내 모든 앵커노드에도 각각 전달된다. 앵커노드는 상기 클러스터 접속을 위한 메시지 처리 절차를 통해 접속된 이동노드의 정보(이동노드 ID, 타임슬롯, 타임호핑시퀀스)를 확인하고, 해당 이동노드의 거리측정을 지원하는데 해당 이동노드 정보를 이용한다. 도 3에서는 이동노드1이 상기 클러스터 접속을 위한 메시지 처리 절차에 따라 클러스터에 접속되고, 이어서 이동노드2가 상기 클러스터 접속을 위한 메시지 처리 절차에 따라 클러스터에 접속되는 순서를 도시하고 있다.
다음으로, 클러스터 상태정보 방송 절차는 클러스터 상태정보가 클러스터헤드에 의해 클러스터 내 모든 노드에 동시에 전달되는 과정이다. 도 3에서 클러스터헤드에 의해 방송된 클러스터 상태정보 메시지는 이동노드1과 이동노드2, 및 앵커노드k(k=1,2,3,4)에 각각 전달된다.
다음으로, 이동노드의 거리측정을 위한 메시지 절차는 이동노드와 앵커노드 간에 레인징 요청(Ranging Request) 메시지와 그의 응답인 레인징 응답(Ranging Response) 메시지 및 레인징 파라미터(Ranging parameter) 메시지를 각각 교환하는 과정이다. 이동노드가 레인징 요청(Ranging Request) 메시지를 모든 앵커노드에 전달하면, 각 앵커노드는 앵커노드 ID 리스트 순서에 따라 순차적으로 그에 대한 응답으로 레인징 응답(Ranging Response) 메시지 및 레인징 파라미터(Ranging parameter) 메시지를 해당 이동노드로 전송한다. 도 3에서는 상기 이동노드의 거리측정을 위한 메시지 절차에 따라 이동노드2가 레인징 요청(Ranging Request) 메시 지를 모든 앵커노드에 멀티캐스트 방식으로 전달한다. 그러면, 앵커노드1이 먼저 그에 대한 응답으로서 레인징 응답(Ranging Response) 메시지 및 레인징 파라미터(Ranging parameter) 메시지를 이동노드2에 전달한다. 다음에 앵커노드2가, 이어서 앵커노드3가, 이어서 앵커노드4가 그의 응답을 이동노드2에 전달한다.
다음으로, 위치정보 전달을 위한 메시지 처리 절차는 위치데이터(Location Data) 메시지가 이동노드에 의해 클러스터헤드로 전송되고, 그에 대한 응답(Ack) 메시지가 클러스터헤드에 의해 해당 이동노드에 제공되는 과정이다. 상기 위치정보 전달을 위한 메시지 처리 절차는 이동노드의 할당 타임슬롯의 서브슬롯에서 이동노드에 의해 개시된다.
상기와 같은 도 3의 위치인식 메시지 처리 절차의 수행은 매체접근제어(MAC : Media Access Control) 슈퍼프레임의 지원을 필요로 한다. 즉, 상기 위치인식 메시지 처리 절차가 MAC 슈퍼프레임(도 4 참조)을 이용하여 수행될 때 높은 효율성이 제공될 수 있다.
도 4는 본 발명에 따른 각 노드의 MAC 슈퍼프레임 구조를 나타내는 일실시예 도면으로, 위치인식 메시지 처리 절차를 지원하는 MAC 슈퍼프레임의 기본 구조를 도시한 도면이다.
MAC 슈퍼프레임의 기본 구조는 비컨 슬롯으로 시작되는 활성구간과 비활성구간을 포함하여 이루어진다. 이때, 활성구간은 다시 비컨 프레임이 전송되는 비컨슬롯구간, 각 노드들에 의해 공통 타임호핑시퀀스를 이용하여 경쟁적으로 채널점유가 시도되고 또한 각 노드들 간의 데이터 통신이 이루어지는 제 1 경쟁접속구간, 정해진 특정노드에 의해 고유한 타임호핑시퀀스를 이용하여 배타적으로 데이터 통신이 가능한 경쟁자유구간, 각 노드들에 의해 공통 타임호핑시퀀스를 이용하여 경쟁적으로 채널점유가 시도되고 또한 각 노드들 간의 데이터 통신이 이루어지는 제 2 경쟁접속구간, 상기 제 2 경쟁접속구간과 동일한 방식으로 각 노드들에 의해 공통 타임호핑시퀀스를 이용하여 경쟁적으로 채널점유가 시도되고 또한 각 노드들 간의 데이터 통신이 이루어지는 제 3 경쟁접속구간 등을 포함하여 이루어진다.
상기 제 1 경쟁접속구간은 N1CAPSub개의 서브슬롯으로 이루어지고, 상기 각 서브슬롯은 N1CAPMini개의 미니슬롯으로 이루어진다. 그리고 상기 제 1 경쟁접속구간은 이동노드와 클러스터헤드 간의 데이터 통신으로서 이동노드에 의한 클러스터 접속 및 그 이동노드에 대한 자원할당이 이루어지는 구간이며, 동시에 모든 앵커노드에도 상기 접속 및 자원할당 정보가 전달되는 구간이다. 상기 제 1 경쟁접속구간에서의 데이터 통신을 위해 이동노드는 백오프 값 선택 및 채널점유 시도를 각 서브슬롯에서 반복 수행한다. 예를 들면, 먼저 백오프 윈도우[0, 2]에서 임의의 백오프 값을 선택하고 채널점유 시도를 위해 첫 번째 서브슬롯의 선택된 미니슬롯에서 채널상태를 검사한다. 여기에서 백오프 값은 채널점유 시도를 위해 기다려야 할 미니슬롯의 개수이며, 그 미니슬롯 개수에 1을 더한 값이 미니슬롯번호를 나타낸다. 채널상태 검사결과가 무선채널이 점유되지 않는 상태, 또는 아이들 상태(idle state)라면 이동노드는 곧바로 메시지(예 : 접속 요청 메시지)를 전송한다. 그러나 만약 채널상태 검사결과가 비지(busy) 상태라면 이동노드는 두 번째 서브슬롯에 대해 동일한 과정을 수행한다.
한편, 각 노드의 슈퍼프레임은 해당하는 각 노드의 역할에 따라 약간 상이한 구조를 가진다. 먼저, 클러스터헤드 및 앵커노드를 위한 슈퍼프레임 구조는 상기 기본 구조와 동일하며, 도 4의 (a)에 도시된 바와 같이 비컨슬롯구간, 이동노드들에 의한 클러스터 접속이 이루어지는 제 1 경쟁접속구간, 클러스터 내 모든 노드에 의한 클러스터헤드와의 데이터 통신이 이루어지는 제 2 경쟁접속구간, 클러스터헤드 및 앵커노드에 의한 인접 클러스터와 데이터 통신이 이루어지는 제 3 경쟁접속구간 등 3가지의 경쟁접속구간, 그리고 최대 NSTMax개의 타임슬롯으로 이루어진 경쟁자유구간을 포함하여 이루어진다. 이 중에서 경쟁자유구간은 이동노드 식별시퀀스를 사용하지 않을 경우 최대 NSTMax개의 이동노드를 지원할 수 있고, 타임호핑시퀀스와 같은 이동노드 식별시퀀스가 사용되는 경우 최대 NSTMax * NTHSMax개의 이동노드를 지원할 수 있다. 여기에서 NTHSMax는 물리계층에서의 이동노드 식별수단인 타임호핑시퀀스의 최대 개수이다.
그리고 이동노드 전체를 위한 슈퍼프레임 구조는 도 4의 (b)에 도시된 바와 같이 비컨슬롯구간, 제 1 경쟁접속구간과 제 2 경쟁접속구간 등 2가지의 경쟁접속구간, 그리고 최대 NSTMax개의 타임슬롯으로 이루어진 경쟁자유구간을 포함하여 이루어진다. 다만, 각 이동노드는 자신을 위해 전용으로 할당된 타임슬롯을 가진다. 이 러한 사실은 특정의 이동노드는 자신에게 할당된 타임슬롯만을 이용하고 나머지 타임슬롯 구간에서는 어떠한 동작도 필요가 없음을 의미하기 때문에 나머지 타임슬롯에서의 비활성상태의 유지를 통하여 자신의 에너지 효율성을 개선할 수 있다.
도 4의 (c)는 이동노드1을 위한 슈퍼프레임 구조를 나타내고 있다. 즉, 도 4의 (c)는 이동노드1에 대해 타임슬롯1이 할당된 경우를 가정한 도면이다. 따라서 도 4의 (c)는 도 4 (b)의 슈퍼프레임 구조에서 타임슬롯2부터 타임슬롯N까지의 구간이 비활성상태로 대체된 구조를 나타내고 있다. 마찬가지로, 타임슬롯N을 할당받은 이동노드N을 위해서 도 4의 (d)에 도시된 바와 같은 슈퍼프레임 구조가 정의될 수 있다.
다중 클러스터의 환경을 위해서는 클러스터 간 간섭을 회피하기 위해 인접 클러스터에 대해 서로 다른 활성화구간이 할당되는 것이 필요하다.
도 5는 본 발명에 따른 다중 클러스터 환경에서 각 클러스터의 슈퍼프레임 구조를 나타내는 일실시예 도면으로, 다중 클러스터 환경에서 본 발명의 적용에 따른 각 클러스터의 슈퍼프레임, 즉 클러스터의 활성구간에 대한 할당을 나타내는 도면이다.
도 5는 편의상 클러스터1의 비활성구간을 이용하여 클러스터2 내지 클러스터N의 활성구간이 할당된 예를 나타내고 있다. 여기서, 각 클러스터 활성구간은 전술한 바와 같이 비컨슬롯구간(적색 부분), 제1 및 제 2 경쟁접속구간(연분홍 부분), 경쟁자유구간(연녹색 부분), 및 제 3 경쟁접속구간(흰색부분)을 포함하여 이루어져 있다. 본 발명에 따른 각 노드의 동작은 상기 위치인식 메시지 처리 절차와 MAC(Media Access Control)의 슈퍼프레임 구조를 바탕으로 이루어진다.
도 6은 본 발명에 따른 클러스터헤드에서의 위치인식 메시징 과정에 대한 일실시예 흐름도이다.
먼저, 클러스터헤드는 자신의 슈퍼프레임 시작시점의 비컨슬롯구간에서 비컨 프레임을 생성하고 클러스터 커버리지에 방송(브로드캐스트)한다(601).
이후, 클러스터헤드는 상기 비컨슬롯구간에 이어지는 제 1 경쟁접속구간에서 신규 이동노드에 의한 클러스터 접속 요청인 접속 요청(Connection Request) 메시지를 전달받고 그에 대한 응답으로서 접속 응답(Connection Response) 메시지를 전송함으로써 해당 신규 이동노드에게 클러스터 자원을 할당한다(602). 이 클러스터 자원할당 과정은 접속 가능한 모든 신규 이동노드에 대해 이루어진다.
이후, 클러스터헤드는 신규 이동노드와 기 접속 이동노드에 대한 클러스터 운용상태의 조정을 통해 생성된 클러스터 상태정보를 클러스터 내 모든 노드에 브로드캐스트 방식으로 전달한다(603).
이후, 클러스터헤드는 각 경쟁자유구간에서 각 이동노드로부터 해당 이동노드의 위치정보(또는 위치데이터)를 수신한다(604). 즉, 각 타임슬롯에서 해당 타임슬롯에 할당된 해당 이동노드의 위치정보(또는 위치데이터)를 수신한다.
이후, 클러스터헤드는 제 2 경쟁접속구간에서 클러스터 내 노드와의 데이터 통신을 수행한다(605).
이후에는 비활성구간 또는 인접 클러스터 활성구간에 따라 다른 동작이 이루어진다.
만약, 타이머 Ts의 잔여시간(TB)이 최대 클러스터 활성구간(TAP)보다 적다면(606) 클러스터헤드는 인접 클러스터가 없는 것으로 간주하고 다음 비컨 프레임을 위해 비컨슬롯구간을 기다린다. 여기서, 타이머 Ts의 초기 설정값은 클러스터헤드 자신의 비컨 주기에 해당한다.
만약, 타이머 Ts의 잔여시간이 최대 클러스터 활성구간보다 크다면(606) 인접 클러스터 유무를 검사한다(607). 이때, 인접 클러스터 유무는 일정한 시간동안 클러스터 비컨을 수신함으로써 확인할 수 있다. 즉, 정해진 시간동안 수신된 프레임이 비컨 프레임이고 해당 수신 비컨 프레임이 유효한 프레임이라면 인접 클러스터가 있는 것으로 판단한다.
만약, 정해진 시간동안 어떠한 프레임 및 비컨 프레임도 수신되지 않았다면, 즉 인접 클러스터(이웃 클러스터)가 없는 것으로 판단되었으면(608) 클러스터 활성구간 동안 슬립상태를 유지한 후에(609) "606" 과정으로 진행하여 잔여시간을 확인한다.
만약, 인접 클러스터가 있는 것으로 판단되었으면(608) 수신 비컨에 해당하는 인접 클러스터의 상태정보를 수신한다(610).
그리고 해당 인접 클러스터의 경쟁자유구간 TCFP과 제 2 경쟁접속구간 T2CAP, 제 3 경쟁접속구간 T3CFP을 확인한다. 이후, (TCFP + T2CAP)동안 슬립상태를 유지하고(611), 이어서 T3CFP동안 인접 클러스터 노드와 데이터를 교환한다(612). T3CFP구간이 종료되면 "606" 과정으로 진행하여 타이머 TS의 잔여시간을 확인한다.
그리고 잔여시간의 크기에 따라 새롭게 탐색된 인접 클러스터 노드와의 데이터 송/수신을 반복한다. 따라서 클러스터헤드에 의해 수신된 이동노드의 위치정보(또는 위치데이터)가 상기 T3CFP구간에서 라우팅 기법을 통해 인접 클러스터 노드를 경유하여 싱크노드 또는 응용 서버로 전달될 수 있다.
도 7은 본 발명에 따른 앵커노드에서의 위치인식 메시징 과정에 대한 일실시예 흐름도이다.
앵커노드는 비컨 프레임의 수신시점을 바탕으로 클러스터헤드와 초기 동기(일정 정도의 동기)를 이룬다. 그러므로 앵커노드는 비컨 슬롯 시점에서 클러스터헤드의 비컨 프레임을 수신할 수 있다. 앵커노드의 동작은 자신의 슈퍼프레임 구조에 따라 비컨 프레임의 수신과 더불어 시작된다.
먼저, 앵커노드는 일정한 시간간격(예 : 타임슬롯(TS) 간격)으로 채널상태를 검사하여(701) 수신레벨이 임계치 이상인지(702) 그리고 그 임계치 이상의 수신레벨이 유효한 프레임인지를 확인하여(703) 임계치 이상의 수신레벨이 유효하면 비컨 프레임을 수신한다(704). 만약, 수신레벨이 임계치 이상이 아니거나 임계치 이상의 수신레벨이 유효하지 않으면 "701" 과정으로 진행한다.
이후, 앵커노드는 수신된 비컨 프레임의 클러스터 ID와 자신이 소속된 클러스터 ID를 비교하여 소속된 클러스터의 비컨인지를 판단한다(705).
상기 판단 결과(705), 상기 수신된 비컨 프레임의 클러스터 ID IDaCLH가 자신의 소속 클러스터 ID라고 판단되면, 앵커노드는 제 1 경쟁접속구간에서 접속 응답(Connection Response) 메시지를 수신함으로써 클러스터헤드에 접속하는 신규 이동노드에 할당된 자원 정보, 즉 이동노드 ID, 타임호핑시퀀스, 할당된 타임슬롯, 앵커노드 ID 리스트 등을 획득한다(706).
이후, 앵커노드는 클러스터헤드로부터 전달되는 클러스터 상태정보(Cluster State Information) 메시지를 수신함으로써 클러스터 상태정보를 획득한다(707).
이후, 앵커노드는 경쟁자유구간인 NTS개의 타임슬롯 각각에서 이동노드와의 거리측정을 수행한다(708).
이후, 앵커노드는 제 2 경쟁접속구간 T2CAP동안에 클러스터 내 모든 노드와 관리정보, 센싱 데이터 등과 같은 데이터를 교환한다(709).
이후, 앵커노드는 제 3 경쟁접속구간 T3CAP동안에 클러스터헤드가 전송하는 이동노드 위치정보(또는 이동노드 위치데이터)를 싱크노드 또는 응용 서버 측으로 전달을 위해 클러스터헤드 및 인접 클러스터 노드와의 데이터 교환을 수행한다(710).
만약, 상기 판단 결과(705), 상기 수신된 비컨 프레임의 클러스터 ID IDaCLH 가 자신의 소속 클러스터 ID가 아니라고 판단되면, 앵커노드는 인접 클러스터인 해당 클러스터 IDaCLH의 상태정보를 수신하고(711) 해당 클러스터 IDaCLH의 잔여 접속구간, 즉 경쟁자유구간인 TCFP, 제 2 경쟁접속구간인 T2CAP, 제 3 경쟁접속구간인 T3CAP 값과 같은 타이머 범위를 산출하여 각각 확인한다(712). 이 값들은 이후에 앵커노드의 동작을 지원하기 위한 관련 타이머 값으로 적용된다.
이후, 앵커노드는 인접 클러스터 내 노드 간의 데이터 통신을 위한 시간인 (TCFP + T2CAP)시간동안 슬립상태를 유지한다(713).
이후, 인접 클러스터의 제 3 경쟁접속구간이 시작되면 앵커노드는 이동노드 위치정보(또는 이동노드 위치데이터) 전달과 같은 클러스터 간 통신을 위해 T3CAP시간동안 데이터 교환에 참여한다(710).
상기 T3CAP시간이 종료되면 앵커노드는 상기 위치인식 메시징 과정을 슈퍼프레임을 바탕으로 한 비컨 주기와 정렬된 시간에 따라 반복 수행한다.
도 8은 본 발명에 따른 이동노드에서의 위치인식 메시징 과정에 대한 일실시예 흐름도이다.
이동노드도 앵커노드와 마찬가지로 비컨 프레임의 수신시점을 바탕으로 클러스터헤드와 초기 동기(일정 정도의 동기)를 이룬다. 그러므로 이동노드는 비컨 슬롯 시점에서 클러스터헤드의 비컨 프레임을 수신할 수 있다. 이동노드의 동작은 자 신의 슈퍼프레임 구조에 따라 비컨 프레임의 수신과 더불어 시작된다. 단, 이동노드가 어떠한 클러스터에도 접속되지 않았던 경우 즉, 처음으로 작동되는 경우에는 어떠한 클러스터 정보도 알 수 없기 때문에 자신의 클럭만을 가지고 있다. 따라서 이동노드는 비컨 프레임을 수신하기 위해 지속적인 채널 검사를 수행한다.
먼저, 이동노드는 클러스터헤드로부터 비컨 프레임을 수신한 후에(801) 상기 수신된 비컨 프레임에 포함된 클러스터 ID를 바탕으로 자신이 접속했던 소속 클러스터인지를 판단한다(802).
상기 판단 결과(802), 이동노드 자신의 소속 클러스터이면 후술되는 "804" 과정으로 진행하고, 이동노드 자신의 소속 클러스터가 아니라면 즉, 새로운 클러스터에 진입한 경우라고 판단되면 이동노드는 클러스터 접속 요청 및 자원할당 과정을 수행한다(803). 이때, 클러스터 접속 요청은 제 1 경쟁접속구간에서 본 발명을 위해 정의된 매체 접속 방법에 따라 무선채널을 점유하고 접속 요청(Connection Request) 메시지를 클러스터헤드에 전송함으로써 클러스터 접속을 요청한다. 그리고 클러스터 자원할당은 상기 클러스터 접속 요청에 대한 응답으로서 이동노드가 자신에 할당되는 노드 ID, 타임호핑시퀀스, 타임슬롯 등을 할당하는 접속 응답(Connection Response) 메시지를 클러스터헤드로부터 수신한다.
이후, 이동노드는 클러스터헤드로부터 클러스터 상태정보를 수신한다(804). 즉, 이동노드는 제 1 경쟁접속구간이 종료되는 시점에 클러스터헤드로부터 방송되는 클러스터 상태정보(Cluster State Information) 메시지를 수신함으로써 클러스터 상태정보를 획득할 수 있다.
그리고 이동노드는 상기 수신된 클러스터 상태정보로부터 현재 시점에서 할당된 타임슬롯 시작시점까지의 시간간격 TSF와 할당된 타임슬롯 종료시점에서 경쟁자유접속구간 종료시점까지의 시간간격 TSS를 산출하여 확인한다(805). 이 값들은 이후에 이동노드의 동작을 지원하는 타이머의 설정 값으로 사용된다.
먼저, 현재 시점에서 할당된 타임슬롯 시작시점까지의 시간간격 TSF의 값에 따른 처리가 이루어진다. 만약, TSF가 0보다 크다면 즉, 할당된 타임슬롯이 첫 번째가 아니라면(806) 이동노드는 TSF동안 에너지 효율적인 동작을 위해 슬립상태를 유지한 후에(807) 앵커노드와의 거리측정 과정(808)을 수행한다. 그러나 만약 TSF가 0이라면 즉, 첫 번째 타임슬롯이 할당되었으면(806) 이동노드는 곧바로 앵커노드와의 거리측정을 수행한다(808). 즉, 모든 앵커노드에 대한 거리 관련 파라미터가 순차적으로 수신되고 거리데이터가 산출되는 과정을 통해 거리측정치가 모두 획득(수집)되면, 이동노드는 자신의 위치데이터를 이용하여 위치정보를 산출하여 클러스터헤드에 전달하거나 자신의 위치데이터를 클러스터헤드에 전달한다(809). 이러한 위치정보 전달 과정은 이동노드 자신을 위해 할당된 타임슬롯 구간에서 이루어진다.
이후에, 할당된 타임슬롯 종료시점에서 경쟁자유접속구간 종료시점까지의 시간간격 TSS의 값에 따른 처리가 이루어진다. 만약, TSS가 0보다 크다면 즉, 할당된 타임슬롯이 마지막 번째가 아니라면(810) 이동노드는 TSS 동안 즉, 잔여 경쟁자유구간 동안 에너지 효율적인 동작을 위해 슬립상태를 유지한 후에(811) 후술되는 "812" 과정으로 진행한다. 그러나 만약 TSS가 0이라면 즉, 마지막 번째 타임슬롯이 할당되었으면(810) 이어지는 구간은 제 2 경쟁접속구간이다. 따라서 이동노드는 T2CAP동안 클러스터 내 노드와 필요한 메시지 교환 등 데이터 통신을 수행한다(812).
그리고 이동노드는 제 2 경쟁접속구간이 종료되면 에너지 효율적인 동작을 위해 비컨 타이머 TB의 잔여시간동안 슬립상태를 유지한다(813). 그리고 비컨 타이머가 종료되면 새로운 비컨 수신을 위해 활성상태로 깨어난다.
그리고 이동노드는 자신의 슈퍼프레임 구조에 따라 상기 위치인식 메시징 과정을 반복 수행한다.
상기와 같이 본 발명에 의하면 임의의 공간에서 이동노드가 사람 또는 동물에 의해 지속적으로 이동 중에 있거나 또는 다중의 이동노드가 존재하거나 또는 다중의 이동노드가 동시에 이동하는 경우에도 일단의 앵커노드와의 거리측정이 이동노드의 위치인식을 위한 지점에서 수행될 수 있고, 또한 다중의 이동노드의 동시 거리측정 동안에 발생되는 그 시도의 상호 충돌에 따른 메시지 재전송 및 시도의 연기(backoff) 등이 발생되지 않기 때문에, 일정이상의 이동속도를 가진 이동환경 또는 다수의 이동노드가 존재하는 상황에서도 이동노드의 정확한 위치인식이 가능하다.
한편, 전술한 바와 같은 본 발명의 방법은 컴퓨터 프로그램으로 작성이 가능 하다. 그리고 상기 프로그램을 구성하는 코드 및 코드 세그먼트는 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 작성된 프로그램은 컴퓨터가 읽을 수 있는 기록매체(정보저장매체)에 저장되고, 컴퓨터에 의하여 판독되고 실행됨으로써 본 발명의 방법을 구현한다. 그리고 상기 기록매체는 컴퓨터가 판독할 수 있는 모든 형태의 기록매체를 포함한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.