KR101464196B1 - 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법 및 시스템 - Google Patents

이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법 및 시스템 Download PDF

Info

Publication number
KR101464196B1
KR101464196B1 KR20130130867A KR20130130867A KR101464196B1 KR 101464196 B1 KR101464196 B1 KR 101464196B1 KR 20130130867 A KR20130130867 A KR 20130130867A KR 20130130867 A KR20130130867 A KR 20130130867A KR 101464196 B1 KR101464196 B1 KR 101464196B1
Authority
KR
South Korea
Prior art keywords
node
level
parent
child
nodes
Prior art date
Application number
KR20130130867A
Other languages
English (en)
Inventor
추영열
강성호
하용준
Original Assignee
동명대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 동명대학교산학협력단 filed Critical 동명대학교산학협력단
Priority to KR20130130867A priority Critical patent/KR101464196B1/ko
Application granted granted Critical
Publication of KR101464196B1 publication Critical patent/KR101464196B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/248Connectivity information update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/44Star or tree networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법 및 이진 나무 구조로 구성되는 복수 개의 노드들을 포함하는 양방향 통신 시스템이 개시된다. 양방향 통신 방법은, 상기 노드들 각각에 고유한 레벨 아이디 및 노드 아이디를 할당하는 단계; 상기 노드들 중 부모 노드 각각에 대하여, 상기 부모 노드의 레벨 아이디보다 크면서 상기 부모 노드의 레벨 아이디와 가장 가까운 레벨 아이디를 가지며, 상기 부모 노드의 노드 아이디에 2를 곱한 값 및 상기 부모 노드의 노드 아이디에 2를 곱한 값에 1을 더한 값에 해당하는 노드 아이디들을 가지는 두 개의 노드들을 상기 부모 노드와 관련된 자식 노드들로서 연관시키는 자식 노드 설정 단계; 상기 노드들 중 자식 노드 각각에 대하여, 상기 자식 노드의 레벨 아이디보다 작으면서 상기 자식 노드의 레벨 아이디와 가장 가까운 레벨 아이디를 가지며, 상기 자식 노드의 노드 아이디를 2로 나누고 나머지를 버린 값에 해당하는 노드 아이디를 가지는 노드를 상기 자식 노드와 관련된 부모 노드로서 연관시키는 부모 노드 설정 단계; 및 데이터를 상기 부모 노드 및 자식 노드 간에서 전송하는 통신 단계를 포함한다. 본 발명에 의하면, 노드를 이진나무 구조로 구성하기 때문에, 따로 라우팅 테이블(routing table)을 설정하지 않아도 라우팅 경로 설정이 가능하며, 고정된 기반 시설에 저비용의 네트워크를 용이하게 구현할 수 있다.

Description

이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법 및 시스템{Method and system of bidirectional communication among plural nodes arranged in binary tree configuration}
본 발명은 다수의 노드로부터 데이터를 수집하는 WSN(Wireless Sensor Network)에 관련하여, 특히 고정된 기반시설을 제어하기 위해 WSN을 이용한 양방향 통신을 지원하는 이진 나무 구조 기반의 WSN 네트워크를 통한 양방향 통신 방법 및 시스템에 관련한다.
센서 네트워크는, 사물과 환경의 변화를 실시간으로 감지하거나 추적하기 위하여, 센서, 안테나, 집적 회로를 하나의 칩으로 만든 장치를 사물에 내장하고, 이를 네트워크로 연결하여 구성한 네트워크이다. 이러한 센서 네트워크는 유비쿼터스 컴퓨팅을 실현하는데 핵심적인 기능이며, 미래 정보 통신 산업의 기본적인 기반 구조로 발전하게 될 것이 기대된다. 센서 네트워크는 임의의 형태로 필요할 때 형성되는 ad-hoc 네트워크이며, 네트워크의 형성이나 유지 관리가 자동적으로 이루어진다. 또한, WSN이란, 센서를 네트워크로 구성한 것을 말하며, 복수 개의 센서들을 통합적으로 관리함으로써 인간 중심으로 용이하게 네트워크에 접속할 수 있는 장점을 가진다. WSN 기술은 크게 RFID등의 내용을 포함하고 있으며, 모든 사물에 적용되는 임베디드 무선 네트워크 기술이다. 특히, WSN 관련 소프트웨어 플랫폼으로는 TinyOS, Nano Qplus, Contiki, LiteOS 등이 있으며, 다양한 표준과 프로토콜을 지원한다.
WSN은 기존의 네트워크나 ad-hoc 네트워크와는 다르게 배터리로 동작하는 센서노드를 이용한 저전력 네트워크이다. WSN을 운용하는 데에는, 센서들의 추가 가능성인 확장성(Scalability), 빈번한 네트워크의 형태 즉 토폴로지의 변화에 따른 신뢰성(Reliability), 및 배터리의 사용을 통한 에너지 효율(Energy Efficiency)의 보장이 관건이다. 따라서 WSN의 가장 대표적인 형태는 센서들을 통해 전송된 데이터를 수집하고 이를 응용 애플리케이션을 통해 사용자에게 제공하는 형태이다. 즉, WSN은 저비용의 네트워크로써 인프라가 구축되어 있지 않은 환경에서 WSN만을 이용한 네트워크의 구현이 가능하다는 장점이 있다.
대한민국 특허출원 공개번호 제 10-2006-0063769호(이하 참조 문헌)는 이진 나무 구조를 RFID(Radio Frequency Identification)에 적용하여 RFID 태그들을 판독하고 추적하기 위해 사용된다. RFID는 태그에 담긴 정보를 판독기가 읽어서 처리한다. 이 판독기의 응답신호는 고정적인 ID로써 동작하는 것이 아닌 자신이 데이터를 읽어들일 태그 집단의 정보들 포함하는 ID로써 설정되고 이를 판독기들 간에 공유한다. 따라서 상기 참조 문헌은 RFID에 적용하여 태그들의 정보를 효율적으로 수집하는 것에 목적을 두고 있다.
그런데, WSN에서는 주로 대규모 센서들의 데이터의 수집에 초점이 맞추어져 있어서 상대적으로 양방향 통신에 대한 고려가 부족한 실정이다. 기존 IEEE 802.15.4 표준에서 제공하는 zigbee의 경우 양방향에 대한 고려가 있으나 이 또한 대규모 센서노드들에 대해 고려된 것으로써 개별적인 노드의 제어를 위한 신뢰성 있는 시스템의 적용에는 적합하지 않다.
그러므로, 방대한 양의 노드들을 선택적으로 WSN에 가감함으로써 WSN 을 용이하게 확장할 수 있으며, 복잡한 라우팅 테이블이 없어도 부모 자식 노드 간에 데이터를 용이하게 전송할 수 있는 이진 나무 구조를 사용한 양방향 통신 기술이 절실히 요구된다.
대한민국 특허출원 공개번호 제 10-2006-0063769호, "잡음이 있는 에어 채널 상에서 고유 식별 번호들을 갖는 RFID 태그들의 집단을 효율적으로 판독하기 위한 방법"
본 발명의 목적은 복수 개의 노드들을 이진 나무 구조로 구성함으로써, 새로운 노드를 WSN에 용이하게 추가할 수 있는 양방향 통신 방법을 제공하는 것이다.
또한, 본 발명의 다른 목적은, 다수 개의 노드들로 구성된 WSN에서 복잡한 라우팅 테이블이 없이 용이하게 데이터를 통신할 수 있는 양방향 통신 시스템을 제공하는 것이다.
더 나아가, 본 발명의 목적은, 고정된 기반시설을 제어하기 위해 무선 센서 네트워크(Wireless Sensor Network; WSN)를 이용한 양방향 통신을 지원하는 이진나무구조 기반의 WSN 네트워크 구성 방법을 제안하는 것이다.
상기와 같은 목적들을 달성하기 위한 본 발명의 일면은, 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법에 관한 것이다. 본 발명에 의한 양방향 통신 방법은, 상기 노드들 각각에 고유한 레벨 아이디 및 노드 아이디를 할당하는 단계; 상기 노드들 중 부모 노드 각각에 대하여, 상기 부모 노드의 레벨 아이디보다 크면서 상기 부모 노드의 레벨 아이디와 가장 가까운 레벨 아이디를 가지며, 상기 부모 노드의 노드 아이디에 2를 곱한 값 및 상기 부모 노드의 노드 아이디에 2를 곱한 값에 1을 더한 값에 해당하는 노드 아이디들을 가지는 두 개의 노드들을 상기 부모 노드와 관련된 자식 노드들로서 연관시키는 자식 노드 설정 단계; 상기 노드들 중 자식 노드 각각에 대하여, 상기 자식 노드의 레벨 아이디보다 작으면서 상기 자식 노드의 레벨 아이디와 가장 가까운 레벨 아이디를 가지며, 상기 자식 노드의 노드 아이디를 2로 나누고 나머지를 버린 값에 해당하는 노드 아이디를 가지는 노드를 상기 자식 노드와 관련된 부모 노드로서 연관시키는 부모 노드 설정 단계; 및 데이터를 상기 부모 노드 및 자식 노드 간에서 전송하는 통신 단계를 포함한다. 특히, 상기 자식 노드 설정 단계는, 후보 노드로부터 송신된 비콘 메시지를 부모 노드가 수신하는 단계; 상기 후보 노드의 노드 아이디가 상기 부모 노드의 노드 아이디에 2를 곱한 값 및 상기 부모 노드의 노드 아이디에 2를 곱한 값에 1을 더한 값 중 하나에 해당하는지 판단하는 단계; 해당한다면, 상기 후보 노드의 레벨 아이디에서 상기 부모 노드의 레벨 아이디를 감산한 값을 상기 레벨 코스트로서 계산하는 단계; 상기 계산된 레벨 코스트가 상기 부모 노드가 보유한 레벨 코스트보다 작으면, 상기 계산된 레벨 코스트를 사용하여 상기 보유한 레벨 코스트를 갱신하고, 상기 후보 노드를 상기 부모 노드의 새로운 자식 노드로서 연관시키는 단계; 및 상기 단계들을 반복하는 단계를 포함한다. 또한, 또한 상기 노드 설정 단계는, 후보 노드로부터 송신된 비콘 메시지를 자식 노드가 수신하는 단계; 상기 후보 노드의 노드 아이디가 상기 자식 노드의 노드 아이디를 2로 나누고 나머지를 버린 값에 해당하는지 판단하는 단계; 해당한다면, 상기 자식 노드의 레벨 아이디에서 상기 후보 노드의 레벨 아이디를 감산한 값을 상기 레벨 코스트로서 계산하는 단계; 상기 계산된 레벨 코스트가 상기 자식 노드가 보유한 레벨 코스트보다 작으면, 상기 계산된 레벨 코스트를 사용하여 상기 보유한 레벨 코스트를 갱신하고, 상기 후보 노드를 상기 자식 노드의 새로운 부모 노드로서 연관시키는 단계; 및 상기 단계들을 반복하는 단계를 포함한다. 본 발명에 의한 양방향 통신 방법은, 상기 부모 노드로부터 상기 자식 노드로의 비콘 메시지의 전송이 선결정된 횟수만큼 실패하면, 상기 자식 노드를 디스에이블하고 새로운 자식 노드를 선택하는 자식 노드 갱신 단계; 및 상기 자식 노드로부터 상기 부모 노드로의 비콘 메시지의 전송이 선결정된 횟수만큼 실패하면, 상기 부모 노드를 디스에이블하고 새로운 부모 노드를 선택하는 부모 노드 갱신 단계를 더 포함한다. 특히, 상기 자식 노드 갱신 단계는, 상기 디스에이블된 자식 노드의 레벨 아이디보다 1이 더 큰 레벨 아이디를 가지며, 상기 디스에이블된 자식 노드의 노드 아이디에 2를 곱한 값 및 상기 디스에이블된 자식 노드의 노드 아이디에 2를 곱한 값에 1을 더한 값에 해당하는 노드 아이디들을 가지는 노드들을 상기 부모 노드의 새로운 자식 노드로서 연관시키는 단계; 및 상기 새로운 자식 노드가 보유한 레벨 코스트를 1 증가시키는 단계를 더 포함한다. 더 나아가, 상기 통신 단계는, 상기 부모 노드로부터 상기 새로운 자식 노드로 명령을 통신하는 단계를 포함한다. 특히, 상기 부모 노드 갱신 단계는, 상기 디스에이블된 부모 노드의 레벨 아이디보다 1이 더 작은 레벨 아이디를 가지며, 상기 디스에이블된 부모 노드의 노드 아이디를 2로 나누고 나머지를 버린 값에 해당하는 노드 아이디를 가지는 노드를 상기 자식 노드의 새로운 부모 노드로서 연관시키는 단계; 및 상기 새로운 부모 노드가 보유한 레벨 코스트를 1 증가시키는 단계를 더 포함한다. 더 나아가, 상기 통신 단계는, 상기 자식 노드로부터 상기 새로운 부모 노드로 상기 노드가 감지한 센서 데이터를 통신하는 단계를 포함한다. 바람직하게는, 상기 노드들 각각에 고유한 레벨 아이디 및 노드 아이디를 할당하는 단계는, 상기 복수 개의 노드들 중 가장 낮은 레벨 아이디를 가지는 베이스 노드로부터의 거리에 따라 증가하는 레벨 아이디 및 노드 아이디를 가지도록 할당하는 단계를 포함한다.
상기와 같은 목적들을 달성하기 위한 본 발명의 다른 면은, 이진 나무 구조로 구성되는 복수 개의 노드들을 포함하는 양방향 통신 시스템에 관한 것이다. 본 발명 의한 양방향 통신 시스템에서, 상기 노드들 각각은 고유한 레벨 아이디 및 노드 아이디를 가지고; 상기 노드들 중 부모 노드 각각에 대하여, 상기 부모 노드의 레벨 아이디보다 크면서 상기 부모 노드의 레벨 아이디와 가장 가까운 레벨 아이디를 가지며, 상기 부모 노드의 노드 아이디에 2를 곱한 값 및 상기 부모 노드의 노드 아이디에 2를 곱한 값에 1을 더한 값에 해당하는 노드 아이디들을 가지는 두 개의 노드들이 상기 부모 노드와 관련된 자식 노드들로서 연관되고; 상기 노드들 중 자식 노드 각각에 대하여, 상기 자식 노드의 레벨 아이디보다 작으면서 상기 자식 노드의 레벨 아이디와 가장 가까운 레벨 아이디를 가지며, 상기 자식 노드의 노드 아이디를 2로 나누고 나머지를 버린 값에 해당하는 노드 아이디를 가지는 노드가 상기 자식 노드와 관련된 부모 노드로서 연관되며; 및 상호 연관된 상기 부모 노드 및 자식 노드는 서로 간에 데이터를 송수신한다. 자식 노드를 갱신하기 위하여, 상기 부모 노드는, 후보 노드가 송신한 비콘 메시지를 수신하도록, 상기 후보 노드의 노드 아이디가 상기 부모 노드의 노드 아이디에 2를 곱한 값 및 상기 부모 노드의 노드 아이디에 2를 곱한 값에 1을 더한 값 중 하나에 해당한다면, 상기 후보 노드의 레벨 아이디에서 상기 부모 노드의 레벨 아이디를 감산한 값을 상기 레벨 코스트로서 계산하도록, 그리고 상기 계산된 레벨 코스트가 상기 부모 노드가 보유한 레벨 코스트보다 작으면, 상기 계산된 레벨 코스트를 사용하여 상기 보유한 레벨 코스트를 갱신하고, 상기 후보 노드를 상기 부모 노드의 새로운 자식 노드로서 연관시키도록 구성된다. 또한, 상기 부모 노드를 갱신하기 위하여, 상기 자식 노드는, 후보 노드가 송신한 비콘 메시지를 수신하도록, 상기 후보 노드의 노드 아이디가 상기 자식 노드의 노드 아이디를 2로 나누고 나머지를 버린 값에 해당한다면, 상기 자식 노드의 레벨 아이디에서 상기 후보 노드의 레벨 아이디를 감산한 값을 상기 레벨 코스트로서 계산하도록, 상기 계산된 레벨 코스트가 상기 자식 노드가 보유한 레벨 코스트보다 작으면, 상기 계산된 레벨 코스트를 사용하여 상기 보유한 레벨 코스트를 갱신하고, 상기 후보 노드를 상기 자식 노드의 새로운 부모 노드로서 연관시키도록 구성된다. 특히, 본 발명에 의한 양방향 통신 시스템에서, 비콘 메시지를 상기 자식 노드로 송신한 상기 부모 노드가 상기 자식 노드로부터 수신 확인을 수신하지 못하는 횟수가 선결정된 횟수 이상이면, 상기 부모 노드는 상기 자식 노드를 디스에이블하고, 그리고 비콘 메시지를 상기 부모 노드로 송신한 상기 자식 노드가 상기 부모 노드로부터 수신 확인을 수신하지 못하는 횟수가 선결정된 횟수 이상이면, 상기 자식 노드는 상기 부모 노드를 디스에이블한다. 특히, 상기 부모 노드는, 상기 디스에이블된 자식 노드의 레벨 아이디보다 1이 더 큰 레벨 아이디를 가지며, 상기 디스에이블된 자식 노드의 노드 아이디에 2를 곱한 값 및 상기 디스에이블된 자식 노드의 노드 아이디에 2를 곱한 값에 1을 더한 값에 해당하는 노드 아이디들을 가지는 노드들을 상기 부모 노드의 새로운 자식 노드로서 연관시키고, 상기 새로운 자식 노드는 보유한 레벨 코스트를 1 증가시킨다. 더 나아가, 상기 부모 노드는 상기 새로운 자식 노드로 명령을 통신한다. 또는, 상기 자식 노드는, 상기 디스에이블된 부모 노드의 레벨 아이디보다 1이 더 작은 레벨 아이디를 가지며, 상기 디스에이블된 부모 노드의 노드 아이디를 2로 나누고 나머지를 버린 값에 해당하는 노드 아이디를 가지는 노드를 상기 자식 노드의 새로운 부모 노드로서 연관시키고, 상기 새로운 부모 노드는 보유한 레벨 코스트를 1 증가시킨다. 더 나아가, 상기 자식 노드는 상기 새로운 부모 노드로 상기 노드가 감지한 센서 데이터를 통신한다. 바람직하게는, 상기 노드들은, 상기 복수 개의 노드들 중 가장 낮은 레벨 아이디를 가지는 베이스 노드로부터의 거리에 따라 증가하는 레벨 아이디 및 노드 아이디를 가진다.
본 발명에 의하면, 복수 개의 노드들을 이진 나무 구조로 구성하기 때문에, 새로운 노드를 WSN에 용이하게 추가할 수 있고, 동작하지 않는 노드를 용이하게 WSN 으로부터 디스에이블하고 새로운 부모 또는 자식 노드를 설정할 수 있다.
또한, 본 발명에 의하여, 다수 개의 노드들로 구성된 WSN에서 복잡한 라우팅 테이블이 없이 용이하게 데이터를 양방향으로 통신할 수 있다.
또한, 본 발명을 이용하면, 통신 인프라가 없는 기반시설에 네트워크를 제공함에 있어 이진 나무 구조를 이용한 단순하며 가시적인 ID를 제공하여 네트워크의 신뢰성 및 라우팅 효율을 높이는 저비용의 네트워크가 제공된다.
더 나아가, 본 발명에 의하여, 네트워크 형성을 위한 부차적인 단계가 없고 중간 노드의 통신 불능상태 및 누락 시에도 데이터 전달이 가능하기에 네트워크의 구축이 간소화된다.
또한, 본 발명을 이용하면, 각 노드의 주소를 나무구조의 레벨에 따른 레벨아이디와 노드아이디로써 구분하고 이진나무 구조로 구성하기 때문에, 가독성을 높이고 각각의 노드는 따로 라우팅 테이블(routing table)을 설정하지 않아도 데이터를 송수신하기 위한 경로설정이 가능하다.
더 나아가, 네트워크를 이진 나무 구조로 단순화함으로써 기존 WSN의 토폴로지 생성 시 발생하는 비용을 줄이는 것은 물론, 고정된 기반 시설에 저비용의 네트워크를 용이하게 구현할 수 있다.
도 1a 및 도 1b는 본 발명의 일면에 의한 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법에서 이진 나무 구조를 구성하는 원리를 설명하는 도면들이다.
도 2는 본 발명의 일면에 의한 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법을 개념적으로 설명하는 흐름도이다.
도 3은 BeaconMSG의 전송 과정에서 오류가 발생했을 경우 노드를 초기화하는 프로세스를 나타내는 흐름도이다.
도 4는 복수 개의 노드들 중 부모 노드 및 자식 노드를 결정하는 프로세스를 나타내는 흐름도이다.
도 5a 및 도 5b는 본 발명의 다른 면에 의한 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 시스템에서 부모 노드 및 자식 노드를 결정하는 프로세스들을 설명하는 도면이다.
도 6은 본 발명에 의한 양방향 통신 방법에서 데이터를 전송하는 프로세스를 개념적으로 나타내는 흐름도이다.
도 7은 본 발명에 의한 양방향 통신 방법에서 데이터 타입에 따라 데이터를 전송하는 프로세스를 개념적으로 나타내는 흐름도이다.
도 8a 및 도 8b는 본 발명의 다른 면에 의한 양방향 통신 시스템에서 데이터를 전송하는 프로세스의 예를 설명하는 도면들이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로서, 본 발명을 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 설명하는 실시예에 한정되는 것이 아니다. 그리고, 본 발명을 명확하게 설명하기 위하여 설명과 관계없는 부분은 생략되며, 도면의 동일한 참조부호는 동일한 부재임을 나타낸다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 1a 및 도 1b는 본 발명의 일면에 의한 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법에서 이진 나무 구조를 구성하는 원리를 설명하는 도면들이다.
먼저 도 1a를 참조하면, 본 발명에 의한 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법에서 각각의 노드는 Level_ID와 Node_ID를 통해 네트워크를 형성한다. 본 발명에 의한 양방향 통신 네트워크의 기본 구조는 노드의 주소를 Level_ID와 Node_ID로 나누어 별도의 라우팅 테이블이 없이 네트워크를 구현하는 방법을 사용한다. 이 때, 각각의 노드는 두 개의 ID를 고유하게 가지는데, 첫 번째 ID는 나무 구조의 레벨을 나타내는 Leve_ID이고, 두 번째 ID는 동일한 레벨에서의 노드 번호를 나타내는 Node_ID이다. 이와 같은 네트워크 ID는 고정된 기반시설에 고정된 노드에 제공되며, 각각의 노드에는 설치 시에 모두 두 개의 ID가 할당된다. 특히, 베이스 노드로부터의 거리가 멀어질수록 해당 노드에 할당되는 Level_ID 및 Node_ID의 값이 커지는 것이 바람직하다.
도 1a에 노드들 중 노드(00)는 레벨 0에 속하고, 노드(10, 11)는 레벨 1에 속하며, 노드(20, 21, 22, 23)는 레벨 2에 속하고, 노드(30, 31, 32, 33, 34, 35, 36, 37)는 레벨 3에 속한다. 각 노드가 속하는 레벨은, 각 노드에 할당된 Level_ID를 통해서 용이하게 구별된다. 노드 ID의 두 번째 자릿수는 각 노드의 Node_ID를 나타낸다. 즉, 임의의 노드의 ID는 Level_ID와 병기된 Node_ID에 의하여 표시된다.
도 1a와 같은 이진 나무 구조에서 하위 레벨에 속하는 두 개의 노드가 각각 하나의 상위 레벨과 연관되게 되며, 이 경우 상위 레벨에 속하는 노드를 부모 노드, 하위 레벨에 속하는 노드를 자식 노드라고 한다. 즉, 하나의 부모 노드에는 두 개의 자식 노드가 연관된다. 서로 연관된 부모 노드 및 자식 노드는 서로 데이터를 양방향으로 주고받을 수 있다. 이러한 이진 나무 구조는 무선 센서 네트워크와 같이 최종 목적지 노드가 거의 고정된 네트워크에서 매우 효과적이며, 이진 나무 구조에서 형성된 토폴로지에서는 그 특성상 라우팅 패스가 루프를 형성할 수 없다.
이진 나무 구조의 WSN을 구축의 핵심 내용은 다음과 같이 세 가지로 나타낼 수 있다.
1) 부모 노드의 설정
본 발명에 의한 양방향 통신 방법에서는, 어떠한 노드에 대한 부모 노드는, 해당 노드의 Level_ID 보다 작으면서 해당 Level_ID와 가장 차이가 적은 Level_ID를 가지며,
Figure 112013099012357-pat00001
을 만족하는 Node_ID를 가지는 노드를 부모 노드로서 선택한다([] 연산자는 버림 연산자이다). 도 1a를 참조하면, 노드(10)에 대하여 Level_ID=1이고, Node_ID=0이다. 따라서, 10의 부모 노드의 Level_ID는 1보다 작으면서 가장 차이가 적은 0이 되고, 부모 노드의 Node_ID는 [0/0]=0이 된다. 그러므로, 노드(10)의 부모 노드는 노드(00)가 된다. 마찬가지 방법으로, 노드(23)의 Level_ID는 2이고 Node_ID는 3이다. 그러므로, 노드(23)의 부모 노드의 Level_ID는 2가 되고, Node_ID는 [3/2]=1이 된다. 따라서, 노드(23)의 부모 노드는 노드(11)이다.
2) 자식노드의 설정
어떠한 노드에 대한 자식 노드는, 해당 노드의 Level_ID보다 크며 해당 Level_ID와 가장 차이가 적은 Level_ID를 가지며,
Figure 112013099012357-pat00002
을 만족하는 Node_ID를 가진다( Node ID는 해당 노드의 Node_ID를 나타낸다). 즉, 노드(11)의 자식 노드는 노드(22) 및 노드(23)가 된다.
3) 중간노드의 통신 불능 상태
통신 불능 상태인 노드가 있는 경우, 부모 노드와 자식노드가 재설정되어야 한다. 이 때, 부모 노드는 부모의 Node_ID를
Figure 112013099012357-pat00003
로서 설정하고 이를 만족하는 노드 중 Level_ID가 자신의 Level_ID보다 작으며 가장 적은 차를 가지는 노드를 부모 노드로 설정한다. 또한 자식 노드는 자식의 Node_ID에 대해
Figure 112013099012357-pat00004
을 만족하는 노드 중 Level_ID가 자신의 Level_ID보다 크며 가장 적은 차를 가지는 노드를 자식 노드로 설정한다.
도 1b가 이러한 과정에 대해 설명한다.
도 1b에서 노드(10)가 디스에이블된다. 그러면, 부모 노드인 노드(00)는, 통신 불능인 노드(10)의 Level_ID보다 1이 더 큰 Level_ID를 가지며, Node_ID는 통신 불능인 노드(10)의 Node_ID에 대해
Figure 112013099012357-pat00005
의 값을 가지는 두 노드(20, 21)를 새로운 자식 노드로서 설정한다. 이 때, 노드(30) 및 노드(31)도 각각 0 및 1의 Node_ID를 가진다. 하지만 이들 노드는 부모 노드인 노드(00)보다 크지만 가장 가깝지 않은 레벨 3을 가지므로 노드(00)의 자식 노드가 아니다.
이와 같이, 본 발명에 의한 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법은, 신뢰성을 높이기 위해 최대한 단순한 토폴로지로서 나무 구조를 이용하며, 하나의 부모 노드에 두 개의 자식 노드만을 가지는 이진 나무 구조로써 네트워크를 구축하기 때문에 네트워크가 단순화된다.
도 2는 본 발명의 일면에 의한 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법을 개념적으로 설명하는 흐름도이다.
도 2 를 참조하면, 우선 노드들 각각에 고유한 레벨 아이디 및 노드 아이디를 할당한다(S210).
그리고, 복수 개의 노드들 중 부모 노드 각각에 대하여, 자식 노드를 설정한다(S220). 이를 위하여, 부모 노드의 레벨 아이디보다 크면서 부모 노드의 레벨 아이디와 가장 가까운 레벨 아이디를 가지며, 부모 노드의 노드 아이디에 2를 곱한 값 및 부모 노드의 노드 아이디에 2를 곱한 값에 1을 더한 값에 해당하는 노드 아이디들을 가지는 두 개의 노드들을 부모 노드와 관련된 자식 노드들로서 연관시킨다.
또한, 각각의 노드에 대하여 부모 노드를 설정한다(S230). 이를 위하여, 자식 노드 각각에 대하여, 자식 노드의 레벨 아이디보다 작으면서 자식 노드의 레벨 아이디와 가장 가까운 레벨 아이디를 가지며, 자식 노드의 노드 아이디를 2로 나누고 나머지를 버린 값에 해당하는 노드 아이디를 가지는 노드를 자식 노드와 관련된 부모 노드로서 연관시킨다. 본 발명에서, 자식 노드 설정 단계(S220) 및 부모 노드 설정 단계(S230)는 서로 순서가 바뀌어 수행될 수도 있다.
이와 같이 부모 노드 및 자식 노드가 설정되면, 통신하기 이전에 통신 불능 노드가 발생하였는지 검사한다(S240). 검사 결과 통신 불능 노드가 발생하였다면, 통신 불능인 자식 노드를 갱신하거나(S250), 통신 불능인 부모 노드를 갱신한다(S260). 도 2에서, 자식 노드 갱신 단계(S250) 및 부모 노드 갱신 단계(S260)는 서로 순위가 바뀌어 수행될 수 있음은 물론이다.
이와 같이 통신 불능 노드를 갱신하였으면, 부모 노드 및 자식 노드 간에 양방향 통신을 수행한다(S270).
도 2 와 같은 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법을 사용하면, 나무 구조의 레벨에 따른 레벨 ID와 각 레벨의 순서에 따른 노드 ID로 ID를 구분하기 때문에, 따로 복잡한 라우팅 테이블을 가지지 않아도 통신이 가능하다. 그러므로, 본 발명에 따르는 양방향 통신 방법은 기존 WSN의 가지는 장점을 부각시키며, 인프라가 구축되지 않은 고정 기반 시설 즉 보안등, 다리, 터널 등과 같은 구조물의 감시/제어를 제공하기 위한 저비용의 신뢰성이 높은 네트워크를 구현할 수 있다.
도 3은 BeaconMSG의 전송 과정에서 오류가 발생했을 경우 노드를 초기화하는 프로세스를 나타내는 흐름도이다.
우선, 본 발명에 따르는 이진 나무 구조를 가지는 네트워크를 사용하려는 기기가 파워 온된다(S310). 기기가 켜지면, 우선 기기를 초기화한다(S320). 그리고, BeaconMSG를 송신하기 이전에 임의의 시간 동안 대기한다(S330). 즉, 랜덤 값을 가지는 타이머가 만료할 때까지 대기한다.
임의의 시간이 경과되면, 주기적으로 BeaconMSG를 송신한다. 이를 위하여 일정 시간이 경과하면 리셋되는 주기적 타이머를 사용하여 BeaconMSG를 송신한다(S340). 이 때, BeaconMsg는 BeaconMSG를 송신한 부모 노드의 주소, 부모 레벨 코스트, BeaconMSG를 수신한 자식 노드의 주소, 및 자식 레벨 코스트를 포함한다. 이 때, 통신이 실패하는 경우에 대비하여, BeaconMSG는 자식 노드의 주소 및 자식 레벨 코스트를 여러 개 포함할 수 있다. 이와 같이 자식 노드의 주소 및 자식 레벨 코스트를 여러 개 포함하는 이유는, 부모 노드는 항상 하나이지만 자식 노드는 애초 결정된 이진 나무 구조가 깨짐에 따라 사라질 수 있기 때문이다. 이 때, 자식 노드가 하나가 사라지면 노드의 자식 노드를 부모 노드가 승계하게 되고, BeaconMSG가 10개의 값을 저장하여 승계가능한 노드의 수를 10개로 임의지정 한다.
여기서, 레벨 코스트는 통신을 하는 두 개의 노드들의 Level_ID들의 차이를 나타낸다. 만일 양방향 통신하는 두 개의 노드들의 Level_ID의 차이가 1이라면 레벨 코스트는 1이 된다. 레벨 코스트가 적을수록 통신하기가 용이하다. 또한, 부모 레벨 코스트란 부모 노드가 가지는 레벨 코스트 값을 의미하고, 자식 레벨 코스트란 자식 노드가 가지는 레벨 코스트 값을 의미한다.
BeaconMSG가 송신되면, 현재 노드의 주소가 베이스 노드인지, 그리고 BeaconMSG의 수신 실패가 소정 횟수 반복되었는지를 판단한다(S350). 만일, BeaconMSG의 수신 실패가 아직은 허용될 만 하다면, 우선 단계 S360에서 BeaconMSG 수신 실패 카운트를 1만큼 증가시키고, 단계 S370에서 BeaconMSG를 다시 브로드캐스트한다. 하지만, 만일 BeaconMSG 수신 실패 카운트가 허용된 횟수를 넘었다면, 노드는 다시 초기화된다(S320). BeaconMSG 수신 실패 카운트는 BeaconMSG가 성공적으로 수신되면 다시 0으로 초기화된다. 도 3에서, BeaconMSG의 전송 주기 및 BeaconMSG 수신 실패 카운트는 네트워크의 동작 상태에 따라 변경될 수 있음은 물론이다.
이와 같이, 도 3 에 도시된 방법에 따라 통신이 불가능한 노드를 자동으로 초기화할 수 있다.
도 4는 복수 개의 노드들 중 부모 노드 및 자식 노드를 결정하는 프로세스를 나타내는 흐름도이다.
우선 BeaconMSG가 수신될 때까지 대기한다(S405). BeaconMSG가 수신되면(S410), BeaconMSG가 성공적으로 수신되었으므로 BeaconMSG 수신 실패 카운트를 초기화한다(S420). 그리고, 수신된 BeaconMSG의 Level_ID와 BeaconMSG를 수신한 노드의 Level_ID를 비교한다(S430). 설명의 편의를 위하여, BeaconMSG를 수신한 노드의 Level_ID를 로컬 Level_ID라 하고, BeaconMSG를 송신한 노드의 Level_ID를 BeaconMSG Level_ID라고 한다. 또한, BeaconMSG를 송신한 노드를 후보 노드라고 할 수도 있다. 이것은, 후보 노드가 현재 노드에 대한 부모 노드 또는 자식 노드가 될 수 있다는 것을 의미한다.
만일, 로컬 Level_ID가 BeaconMSG Level_ID보다 더 작으면, 이는 BeaconMSG를 송신한 노드가 현재 노드의 자식 노드가 될 후보 노드에 해당한다는 것을 의미한다. 그러므로 자식 노드를 갱신하기 위한 단계(S440)로 진행한다.
그러면, BeaconMSG를 송신한 노드의 Node_ID 가 2n 및 2n+1인지 여부를 판단한다(n은 현재 노드의 Node_ID). 만일 BeaconMSG를 송신한 노드의 Node_ID가 위의 두 값 중 하나라면, 이 노드는 현재 노드의 자식 노드가 될 수 있다. 그러므로, 이 경우 레벨 코스트를 BeaconMSG Level_ID에서 로컬 Level_ID를 감산한 값으로 계산한다(S445). 그리고, 계산된 레벨 코스트를 현재 노드가 보유하고 있는 레벨 코스트와 비교한다(S450).
만일 계산된 레벨 코스트가 현재 노드가 보유한 레벨 코스트보다 작다면, BeaconMSG를 송신한 노드가 이전의 자식 노드보다 더 적은 레벨 코스트를 가지므로, 이 노드를 새로운 자식 노드로서 선택한다(S455). 그리고, 계산된 값을 이용하여 현재 노드가 보유한 레벨 코스트를 갱신한다.
만일, 로컬 Level_ID가 BeaconMSG Level_ID보다 더 크면, 이는 BeaconMSG를 송신한 노드가 현재 노드의 부모 노드에 해당할 후보 노드가 된다는 것을 의미한다. 그러므로 부모 노드를 갱신하기 위한 단계(S460)로 진행한다.
그러면, BeaconMSG를 송신한 노드의 Node_ID 가 [n/2]와 같은지 여부를 판단한다(n은 현재 노드의 Node_ID). 만일 BeaconMSG를 송신한 노드의 Node_ID가 위 값과 같다면, 이 노드는 현재 노드의 부모 노드가 될 수 있다. 그러므로, 이 경우 레벨 코스트를 로컬 Level_ID에서 BeaconMSG Level_ID를 감산한 값으로 계산한다(S465). 그리고, 계산된 레벨 코스트를 현재 노드가 보유하고 있는 레벨 코스트와 비교한다(S470).
만일 계산된 레벨 코스트가 현재 노드가 보유한 레벨 코스트보다 작다면, BeaconMSG를 송신한 노드가 이전의 부모 노드보다 더 적은 레벨 코스트를 가지므로, 이 노드를 새로운 부모 노드로서 선택한다(S475). 그리고, 계산된 값을 이용하여 현재 노드가 보유한 레벨 코스트를 갱신한다.
도 5a는 본 발명의 다른 면에 의한 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 시스템에서 부모 노드와 자식 노드를 결정하는 프로세스의 일 예를 설명하는 도면이다.
도 5a를 참조하면, 노드(00)(Base Node)가 자신의 BeaconMsg를 브로드캐스트하고, 이 BeaconMSG를 노드(10)가 수신한다. 그러면, 노드(10)는 BeaconMsg의 Level_ID(0)와 자신의 Level_ID(1)를 비교한다. 비교 결과 자신의 Level_ID가 더 크므로 BeaconMsg의 Node_ID(0)가 자신의 Node ID(0)를 2로 나눈 값의 정수값과 동일한지 비교한다. 비교 결과 동일하므로 레벨 코스트를 자신의 Level_ID(1)와 BeaconMsg의 Level_ID(0)의 차로 계산하고, 계산한 레벨 코스트(1-0 = 1)와 자신이 보유한 레벨 코스트와 비교한다. 이 때, 노드(10)가 보유한 레벨 코스트는 노드(10)의 부모 노드에 대한 레벨 코스트와 노드(10)의 자식 노드에 대한 레벨 코스트 두 가지가 존재한다. 그러므로, 설명의 명확화를 위하여 부모 노드에 대한 레벨 코스트를 부모 레벨 코스트라고 명명하고, 자식 노드에 대한 레벨 코스트를 자식 레벨 코스트라고 명명할 수도 있다. 이 때, 부모 레벨 코스트는 초기화시 최대값(예를 들어, 0xFF)을 가질 수 있다. 즉, 어떤 노드가 보유한 부모 레벨 코스트는 처음엔 최대값을 가지다가, 자신보다 가까운 부모 노드로부터 BeaconMSG를 수신할 때마다 점점 감산될 수 있다. 그러므로, 이 중에서 가장 작은 레벨 코스트가 계산되는 노드를 부모 노드로 선택한다. 계산된 레벨 코스트가 보유한 레벨 코스트보다 더 작으므로(1 < 0xFF), BeaconMsg를 보낸 후보 노드를 노드(10)의 부모 노드로 선택하고, 부모 레벨 코스트를 1로 변경한다.
이제 도 5a의 노드(21)에 대해서 설명한다. 노드(00)(Base Node)가 자신의 BeaconMsg를 브로드캐스트하고, 이 BeaconMSG를 노드(21)가 수신한다. 그러면, 노드(21)는 BeaconMsg의 Level_ID(0)와 자신의 Level_ID(2)를 비교한다. 비교 결과 자신의 Level_ID가 더 크므로 BeaconMsg의 Node_ID(0)가 자신의 Node ID(1)를 2로 나눈 값의 정수값과 동일한지 비교한다. 비교 결과 동일하므로 레벨 코스트를 자신의 Level_ID(2)와 BeaconMsg의 Level_ID(0)의 차로 계산하고, 계산한 레벨 코스트(2-0 = 2)와 자신이 보유한 레벨 코스트와 비교한다. 이 때, 보유한 부모 레벨 코스트는 초기화시 최대값(예를 들어, 0xFF)을 가질 수 있다. 계산된 레벨 코스트가 보유한 레벨 코스트보다 더 작으므로(2 < 0xFF), BeaconMsg를 보낸 후보 노드를 노드(21)의 부모 노드로 선택하고, 부모 레벨 코스트를 2로 변경한다.
이제 도 5a의 노드(22)에 대해서 설명한다. 노드(00)(Base Node)가 자신의 BeaconMsg를 브로드캐스트하고, 이 BeaconMSG를 노드(22)가 수신한다. 그러면, 노드(22)는 BeaconMsg의 Level_ID(0)와 자신의 Level_ID(2)를 비교한다. 비교 결과 자신의 Level_ID가 더 크므로 BeaconMsg의 Node_ID(0)가 자신의 Node ID(2)를 2로 나눈 값의 정수값과 동일한지 비교한다. 비교 결과 동일하지 않으므로, 다시 대기 모드로 전환한다.
이와 같이, 노드(00)가 브로드캐스트한 BeaconMSG를 수신한 노드들 중 노드(00)의 자식 노드에 해당하는 노드는 다음과 같다.
- 노드(10) : 부모노드 = Base Node, 부모 레벨 코스트 = 1
- 노드(11) : 부모노드 = Base Node, 부모 레벨 코스트 = 1
- 노드(20) : 부모노드 = Base Node, 부모 레벨 코스트 = 2
- 노드(21) : 부모노드 = Base Node, 부모 레벨 코스트 = 2
즉, 노드(22) 및 노드(23)는 노드(00)의 자식 노드가 아니다.
그런데, 위 결과는 최종적인 결과가 아니며, 노드(00)의 자식 노드로 선택된 노드들이 또한 BeaconMSG를 송신한다. 이 과정에 대해서는 도 5b를 참조하여 설명한다.
도 5b는 본 발명의 다른 면에 의한 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 시스템에서 부모 및 자식 노드를 결정하는 프로세스의 일 예를 설명하는 도면이다.
도 5b를 참조하면, 노드(10)가 자신의 BeaconMsg를 브로드캐스트하고, 이 BeaconMSG를 노드(00)가 수신한다. 그러면, 노드(00)는 BeaconMsg의 Level_ID(1)와 자신의 Level_ID(0)를 비교한다. 비교 결과 자신의 Level_ID가 더 작으므로 BeaconMsg의 Node_ID(0)가 자신의 Node ID(0)에 2를 곱한 값 및 자신의 Node ID에 2를 곱한 값에 1을 더한 값과 동일한지 비교한다. 비교 결과 자신의 Node ID(0)에 2를 곱한 값과 동일하므로 BeaconMsg의 Level_ID(1)와 자신의 Level_ID(0)의 차를 레벨 코스트로서 계산하고, 계산한 레벨 코스트(1-0 = 1)와 자신이 보유한 레벨 코스트와 비교한다. 이 때, 노드(00)가 보유한 레벨 코스트는 노드(00)의 부모 노드에 대한 레벨 코스트와 노드(00)의 자식 노드에 대한 레벨 코스트 두 가지가 존재한다. 그러므로, 설명의 명확화를 위하여 부모 노드에 대한 레벨 코스트를 부모 레벨 코스트라고 명명하고, 자식 노드에 대한 레벨 코스트를 자식 레벨 코스트라고 명명할 수도 있다. 이 때, 자식 레벨 코스트는 초기화시 최대값(예를 들어, 0xFF)을 가질 수 있다. 즉, 어떤 노드가 보유한 자식 레벨 코스트는 처음엔 최대값을 가지다가, 자신보다 가까운 자식 노드로부터 BeaconMSG를 수신할 때마다 점점 감산될 수 있다. 그러므로, 이 중에서 가장 작은 레벨 코스트가 계산되는 노드를 자식 노드로 선택한다. 계산된 레벨 코스트가 보유한 레벨 코스트보다 더 작으므로(1 < 0xFF), BeaconMsg를 보낸 후보 노드를 노드(00)의 부모 노드로 선택하고, 자식 레벨 코스트를 1로 변경한다.
이제 도 5b의 노드(21)에 대해서 설명한다. 노드(10)가 자신의 BeaconMsg를 브로드캐스트하고, 이 BeaconMSG를 노드(21)가 수신한다. 그러면, 노드(21)는 BeaconMsg의 Level_ID(1)와 자신의 Level_ID(2)를 비교한다. 비교 결과 자신의 Level_ID가 더 크므로 BeaconMsg의 Node_ID(0)가 자신의 Node ID(1)를 2로 나눈 정수값과 동일한지 비교한다. 비교 결과 동일하므로 레벨 코스트를 자신의 Level_ID(2)와 BeaconMsg의 Level_ID(1)의 차로 계산하고, 계산한 레벨 코스트(1-0 = 2)와 자신이 보유한 레벨 코스트(도 5a에서 2로 설정됨)와 비교한다. 계산된 레벨 코스트가 보유한 레벨 코스트보다 더 작으므로(1 < 2), BeaconMsg를 보낸 후보 노드(10)를 노드(21)의 부모 노드로 선택하고, 부모 레벨 코스트를 1로 변경한다.
그러면, 노드(10)가 브로드캐스트한 BeaconMSG를 수신한 노드들에 대한 부모/자식 노드 선택 결과는 다음과 같다.
- 노드(00) : 자식노드 = 노드(10), 자식 레벨 코스트 =1
- 노드(10) : 부모노드 = Base Node, 부모 레벨 코스트 = 1
- 노드(11) : 부모노드 = Base Node, 부모 레벨 코스트 = 1
- 노드(20) : 부모노드 = 노드(10), 부모 레벨 코스트 = 1
- 노드(21) : 부모노드 = 노드(10), 부모 레벨 코스트 = 1
이러한 과정은, 모든 노드에 대하여, 더 이상 작은 레벨 코스트를 계산할 수 없을 때까지 반복된다.
이와 같이 부모 노드와 자식 노드가 결정되면, 부모 노드 및 자식 노드 간에 양방향 통신이 가능하다.
도 6은 본 발명에 의한 양방향 통신 방법에서 데이터를 전송하는 프로세스를 개념적으로 나타내는 흐름도이다.
특히, 도 6 은 센싱 보드나 서버로부터 전달받은 데이터를 다른 노드로 전송하는 프로세스를 예시한다. 도 6에서 End Byte2는 센서보드 또는 서버로부터 수신한 패킷의 끝을 나타내는 2 바이트 값이다. 이 값이 Enter 값에 해당되면 패킷의 끝으로 판단할 수 있다. 또한, 데이터 타입은 현재 전송되는 패킷의 종류를 나타낸다. 설명의 편의를 위하여 본 명세서에서는 데이터 타입이 0이면 센싱 데이터를 나타내는 것으로, 1이면 명령문을 나타내는 것으로, 그리고 데이터 타입이 2일때 특정 노드에 반영되는 명령문을 나타낸다고 가정한다. 하지만, 이러한 사항은 설명의 편의를 위한 것일 뿐이며, 본 발명을 한정하는 것이 아닌 것에 주의한다.
도시 도 6을 참조하면, 전송할 패킷이 소신될 때까지 대기하다가(S605), 데이터가 수신되면(S610) 패킷의 끝까지 제대로 수신되었는지 판단한다(S615). 즉, 패킷이 수신되었지만 최종 2 바이트 값이 엔터가 아니라면 패킷 수신 중 오류가 발생되었거나 처리할 수 없는 패킷으로 판단하고 메모리는 초기화한다(S660).
패킷이 정상적으로 수신되면, 수신된 패킷의 데이터 타입을 판단한다. 만일 데이터 타입이 0이라면(S620), 이것은 수신된 패킷이 메시지에 해당한다는 것을 의미한다. 그러므로, 수신된 데이터를 센싱 데이터 구조체에 삽입하고(S630), 이 구조체를 전송할 라우팅 경로를 선택한다(S640). 본 명세서에서 라우팅 경로를 선택한다는 것은 데이터 타입과 목적지 주소를 참고하여 패킷을 전송할 경로를 결정한다는 것을 의미한다.
만일 수신된 데이터 타입이 1 또는 2라면(S625), 이것은 수신된 패킷이 명령문에 해당한다는 것을 의미한다. 그러므로, 수신된 데이터를 명령 메시지 구조체에 삽입하고(S635), 이 구조체를 전송할 라우팅 경로를 선택한다(S640). 라우팅 경로가 선택되면, 선택된 라우팅 경로를 통하여 구조체를 전송한다(S650).
본 명세서에서 수신된 패킷의 데이터 타입을 더 정확하게 선택하기 위하여, 데이터 타입 파라미터 뿐만 아니라 수신된 패킷의 길이도 참조할 수 있다. 예를 들어, 패킷의 길이가 12 바이트라면 이를 센싱 데이터 구조체에 삽입하고, 패킷의 길이가 4 바이트라면 이를 명령 메시지 구조체에 삽입할 수도 있다.
도 7은 본 발명에 의한 양방향 통신 방법에서 데이터 타입에 따라 데이터를 전송하는 프로세스를 개념적으로 나타내는 흐름도이다.
특히, 도 7은 다른 노드로 부터 전달받은 데이터를 전송하는 프로세스를 설명한다. 즉, 도 7 은 모든 노드가 자신이 수신한 데이터를 자신의 부모 노드 또는 자식 노드로 중계하는 프로세스를 설명한다. 데이터 타입이 0이면 센싱 데이터이기 때문에 부모 노드로 데이터를 전송하고, 데이터 타입이 1이면 모든 센서노드에게 데이터를 전송하는 브로드캐스트가 수행된다. 만일 데이터 타입이 2라면, 목적지 노드 아이디를 지정해서 데이터를 전송한다.
도 7에서, 우선 패킷이 수신될 때까지 대기한다(S700). 데이터가 수신되면(S705), 수신된 데이터의 타입에 따라 라우팅 경로를 선택한다(S710). 라우팅 경로를 선택하는 과정을 더욱 상세히 설명하면, 데이터 타입이 무엇인지 먼저 결정한다(S715, S720, S725).
만일, 데이터 타입이 0이라면(S715), 이것은 수신된 데이터가 센싱 데이터라는 것을 의미한다. 그러므로, 센싱 데이터는 부모 노드로 전송되어야 한다(S735).
만일, 데이터 타입이 1이라면(S720), 이것은 수신된 데이터가 일반적인 명령문이라는 것을 의미한다. 그러므로, 일반적인 명령문은 자식 노드와 UART로 전송되어야 한다(S740).
만일, 데이터 타입이 2라면(S725), 이것은 수신된 데이터가 특정 자식 노드로 향하는 명령문이라는 것을 의미한다. 그러므로, 목적지 주소가 로컬 주소와 같은지 판단하여(S745), 같다면 데이터를 UART로 전송하고(S750), 다르다면 자식 노드로 전송한다(S765). UART(universal asynchronous receiver transmitter)는 비동기 송수신기를 가리키며, 시리얼 통신을 수행한다. 데이터 타입이 2라면 해당 데이터는 특정한 목적지 주소를 가지는 데이터이다. 그러므로, 그 데이터가 자신의 것이라고 판단되면 UART로(노드에 달린 제어보드 등의 어떤 목적을 수행하기 위해 제작된 보드로) 그 데이터를 전송하여 제어를 수행할 수 있다.
만일 수신된 데이터 타입이 사전 정의된 데이터 타입이 아니라면, 데이터가 수신되는 과정에서 오류가 발생된 것이거나, 처리할 수 없는 데이터이므로 메모리를 초기화한다(S730).
이제, 데이터를 전송하는 것이 성공되었는지 여부를 판단한다. 데이터 전송의 성공 여부는 수신측으로부터의 ACK가 수신되었는지 여부로 판단한다. 그러므로, 단계 S755에서 수신된 ACK가 없는지 여부를 판단한다. 만일 수신된 ACK가 있다면, 전송이 성공한 것이므로 전송 실패 카운트를 0으로 설정한다(S760). 하지만, 수신된 ACK가 없다면, 전송이 실패한 것이므로 전송 실패 카운트가 선결정된 값보다 큰지 여부를 판단한다(S770). 만일, 전송을 아직 더 시도할 여유가 있다면, 전송 실패 카운트를 1 증가시키고(S775) 다시 재전송을 시도한다. 이러한 과정은 선결정된 횟수만큼 전송이 실패할 때까지 반복된다. 만일, 선결정된 횟수만큼 전송을 시도하였으나 모두 실패하였다면, 데이터를 수신하는 노드가 통신 불능이라는 것을 의미한다. 그러므로, 전송할 데이터 타입에 따라 수신측을 디스에이블한다.
좀 더 자세히 설명하면, 만일 데이터 타입이 0이라면(S780) 이것은 전송할 데이터가 센싱 데이터이며, 따라서 수신측은 부모 노드에 해당한다는 것을 의미한다. 그러므로, 부모 노드의 Level_ID를 1 감소시키고, 부모 노드의 Node_ID를
Figure 112013099012357-pat00006
로 설정하며, 부모 레벨 코스트를 1 만큼 증가시킨다(S790).
반면에, 데이터 타입이 1 또는 2라면(S785), 이것은 전송할 데이터가 명령문이며, 따라서 수신측은 자식 노드에 해당한다는 것을 의미한다. 그러므로, 자식 노드의 Level_ID를 1 증가시키고, 자식 노드의 Node_ID를 Node_ID=2n 또는 2n=1로 설정하며, 자식 레벨 코스트를 1 만큼 증가시킨다(S795).
도 7에서, 전송 실패 카운트는 다른 노드로 메시지 전송 후 Ack를 받지 못하면 증가하고 Ack를 받을 경우 0으로 초기화된다. 예를 들어, 설명의 편의를 위하여 Ack를 10번 못 받을 경우 경로에 문제가 있다고 판단하고 경로를 재설정할 수 있으나, 이러한 횟수는 본 발명을 제한하는 것이 아니다.
도 8a 및 도 8b는 본 발명의 다른 면에 의한 양방향 통신 시스템에서 데이터를 전송하는 프로세스의 예를 설명하는 도면들이다. 특히, 도 8a는 부모 노드를 재선택하는 프로세스를 도시하고, 도 8b는 자식 노드를 재선택하는 프로세스를 도시한다.
도 8a에서, 노드(11)가 통신 불능 상태라고 가정하고, 노드(23)가 센싱 데이터를 부모 노드로 전송한다고 가정한다. 이것은 설명의 편의를 위한 것으로서, 본 발명의 일반성을 해치는 것이 아님에 유의한다.
노드(11)가 통신 불능 상태이므로, 노드(23)는 노드(11)로부터 ACK를 수신할 수 없다. 그러면, 노드(23)는 ACK가 수신되지 않는 횟수를 카운팅하다가, 선결정된 횟수를 초과하면 경로를 재설정한다. 이 경우, 전송되는 데이터는 센싱 데이터이므로 데이터는 노드(23)로부터 부모 노드로 전송되어야 한다. 그러므로, 부모 노드를 재설정하는 프로세스가 필요하다.
이를 위하여, 노드(23)는 부모 노드의 Level_ID(1)를 1만큼 감소시킨다(즉, 부모 노드의 Level_ID(1) - 1 = 0이 된다). 또한, 노드(23)는 부모 노드의 Node_ID를 기존 부모 노드의 Node_ID를 2로 나눈 정수값으로 변경한다. 또한, 노드(23)는 자신이 보유한 부모 레벨 코스트(1)를 1만큼 증가시킨다(즉, 부모 레벨 코스트(1) + 1 = 2가 된다)
도 8a의 하단은 이와 같은 경로 재설정이 일어난 결과를 도시한다.
노드(11)가 통신 불능 상태가 되었으므로 노드(11)를 부모 노드로 설정하였던 노드(22) 및 노드(23) 모두의 부모 노드와 부모 레벨 코스트가 다음과 같이 변경된다.
- 노드(22) : 부모 노드가 노드(11)에서 노드(00)로 변경됨. 부모 레벨 코스트가 1에서 2로 변경됨
- 노드(23) : 부모 노드가 노드(11)에서 노드(00)로 변경됨. 부모 레벨 코스트가 1에서 2로 변경됨
즉, 도 8a의 하단에 도시된 바와 같이, 노드(20) 및 노드(21)는 노드(10)에게 센싱 데이터를 전송하지만, 노드(22) 및 노드(23)는 노드(11)가 아닌 노드(00)에게 센싱 데이터를 전송한다. 이러한 통신은 양방향으로 일어날 수 있음은 물론이다.
이제 도 8b를 참조한다. 도 8b에서, 노드(11)가 통신 불능 상태라고 가정하고, 노드(00)가 명령 메시지를 자식 노드로 전송한다고 가정한다. 이것은 설명의 편의를 위한 것으로서, 본 발명의 일반성을 해치는 것이 아님에 유의한다.
노드(11)가 통신 불능 상태이므로, 노드(00)는 노드(11)로부터 ACK를 수신할 수 없다. 그러면, 노드(00)는 ACK가 수신되지 않는 횟수를 카운팅하다가, 선결정된 횟수를 초과하면 경로를 재설정한다. 이 경우, 전송되는 데이터는 명령 메시지이므로 메시지는 노드(00)로부터 자식 노드로 전송되어야 한다. 그러므로, 자식 노드를 재설정하는 프로세스가 필요하다.
이를 위하여, 노드(00)는 자식 노드의 Level_ID(1)를 1만큼 증가시킨다(즉, 자식 노드의 Level_ID(1) + 1 = 2가 된다). 또한, 노드(00)는 자식 노드의 Node_ID를 기존 자식 노드의 Node_ID에 2를 곱한 값(1 x 2 = 2), 및 기존 자식 노드의 Node_ID에 2를 곱한 값에 1을 더한 값(1 x 2 + 1 = 3)으로 변경한다. 또한, 노드(00)는 자신이 보유한 자식 레벨 코스트(1)를 1만큼 증가시킨다(즉, 자식 레벨 코스트(1) + 1 = 2가 된다)
도 8b의 하단은 이와 같은 경로 재설정이 일어난 결과를 도시한다.
노드(11)가 통신 불능 상태가 되었으므로 노드(11)를 자식 노드로 설정하였던 노드(00)의 자식 노드와 자식 레벨 코스트가 다음과 같이 변경된다.
- 자식 노드 : 노드(11)에서 노드(22) 및 노드(23)로 변경됨.
- 자식 레벨 코스트 : 1에서 2로 변경됨
즉, 도 8b의 하단에 도시된 바와 같이, 노드(00)는 이제 노드(11)가 아니라 노드(22) 및 노드(23)에게 명령 메시지를 전송한다. 물론, 노드(10)가 정상적으로 동작하고 있으므로, 노드(00)는 노드(10)에 대해서는 종래와 같이 명령 메시지를 전송하고, 전송된 메시지는 필요할 경우 노드(10)로부터 노드(20) 및 노드(21)로 전송된다. 이러한 통신은 양방향으로 일어날 수 있음은 물론이다.
상술한 본 발명은 WSN을 이용하여 통신 인프라가 없는 기반시설에 네트워크를 제공함에 있어 이진 나무 구조를 이용한 단순하며 가시적인 ID를 제공하여 네트워크의 신뢰성 및 라우팅 효율을 높이는 저비용의 네트워크를 제공한다. 또한 상술한 본원발명은 네트워크 형성을 위한 부차적인 단계가 없고 중간노드의 통신 불능상태 및 누락 시에도 데이터 전달이 가능하기에 네트워크의 구축이 간소화 된다는 장점이 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.
또한, 본 발명에 따르는 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함할 수 있다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 분산 컴퓨터 시스템에 의하여 분산 방식으로 실행될 수 있는 컴퓨터가 읽을 수 있는 코드를 저장할 수 있다.
따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명은 고정된 기반시설을 제어하기 위해 무선 센서 네트워크(Wireless Sensor Network; WSN)를 이용한 양방향 통신을 지원하는 이진나무구조 기반의 WSN 네트워크를 구성하는 것에 적용될 수 있다.

Claims (18)

  1. 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법에 있어서,
    상기 노드들 각각에 고유한 레벨 아이디 및 노드 아이디를 할당하는 단계;
    상기 노드들 중 부모 노드 각각에 대하여, 상기 부모 노드의 레벨 아이디보다 크면서 상기 부모 노드의 레벨 아이디와 가장 가까운 레벨 아이디를 가지며, 상기 부모 노드의 노드 아이디에 2를 곱한 값 및 상기 부모 노드의 노드 아이디에 2를 곱한 값에 1을 더한 값에 해당하는 노드 아이디들을 가지는 두 개의 노드들을 상기 부모 노드와 관련된 자식 노드들로서 연관시키는 자식 노드 설정 단계;
    상기 노드들 중 자식 노드 각각에 대하여, 상기 자식 노드의 레벨 아이디보다 작으면서 상기 자식 노드의 레벨 아이디와 가장 가까운 레벨 아이디를 가지며, 상기 자식 노드의 노드 아이디를 2로 나누고 나머지를 버린 값에 해당하는 노드 아이디를 가지는 노드를 상기 자식 노드와 관련된 부모 노드로서 연관시키는 부모 노드 설정 단계; 및
    데이터를 상기 부모 노드 및 자식 노드 간에서 전송하는 통신 단계를 포함하는, 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법.
  2. 제1항에 있어서,
    상기 자식 노드 설정 단계는,
    후보 노드로부터 송신된 비콘 메시지를 부모 노드가 수신하는 단계;
    상기 후보 노드의 노드 아이디가 상기 부모 노드의 노드 아이디에 2를 곱한 값 및 상기 부모 노드의 노드 아이디에 2를 곱한 값에 1을 더한 값 중 하나에 해당하는지 판단하는 단계;
    해당한다면, 상기 후보 노드의 레벨 아이디에서 상기 부모 노드의 레벨 아이디를 감산한 값을 상기 레벨 코스트로서 계산하는 단계;
    상기 계산된 레벨 코스트가 상기 부모 노드가 보유한 레벨 코스트보다 작으면, 상기 계산된 레벨 코스트를 사용하여 상기 보유한 레벨 코스트를 갱신하고, 상기 후보 노드를 상기 부모 노드의 새로운 자식 노드로서 연관시키는 단계; 및
    상기 후보 노드로부터 송신된 비콘 메시지를 부모 노드가 수신하는 단계로부터 상기 후보 노드를 상기 부모 노드의 새로운 자식 노드로서 연관시키는 단계를 반복하여 실시하는 단계를 포함하는, 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법.
  3. 제1항에 있어서,
    상기 부모 노드 설정 단계는,
    후보 노드로부터 송신된 비콘 메시지를 자식 노드가 수신하는 단계;
    상기 후보 노드의 노드 아이디가 상기 자식 노드의 노드 아이디를 2로 나누고 나머지를 버린 값에 해당하는지 판단하는 단계;
    해당한다면, 상기 자식 노드의 레벨 아이디에서 상기 후보 노드의 레벨 아이디를 감산한 값을 상기 레벨 코스트로서 계산하는 단계;
    상기 계산된 레벨 코스트가 상기 자식 노드가 보유한 레벨 코스트보다 작으면, 상기 계산된 레벨 코스트를 사용하여 상기 보유한 레벨 코스트를 갱신하고, 상기 후보 노드를 상기 자식 노드의 새로운 부모 노드로서 연관시키는 단계; 및
    상기 후보 노드로부터 송신된 비콘 메시지를 자식 노드가 수신하는 단계로부터 상기 후보 노드를 상기 자식 노드의 새로운 부모 노드로서 연관시키는 단계를 반복하여 실시하는 단계를 포함하는, 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법.
  4. 제1항에 있어서,
    상기 부모 노드로부터 상기 자식 노드로의 비콘 메시지의 전송이 선결정된 횟수만큼 실패하면, 상기 자식 노드를 디스에이블하고 새로운 자식 노드를 선택하는 자식 노드 갱신 단계; 및
    상기 자식 노드로부터 상기 부모 노드로의 비콘 메시지의 전송이 선결정된 횟수만큼 실패하면, 상기 부모 노드를 디스에이블하고 새로운 부모 노드를 선택하는 부모 노드 갱신 단계를 더 포함하는, 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법.
  5. 제4항에 있어서,
    상기 자식 노드 갱신 단계는,
    상기 디스에이블된 자식 노드의 레벨 아이디보다 1이 더 큰 레벨 아이디를 가지며, 상기 디스에이블된 자식 노드의 노드 아이디에 2를 곱한 값 및 상기 디스에이블된 자식 노드의 노드 아이디에 2를 곱한 값에 1을 더한 값에 해당하는 노드 아이디들을 가지는 노드들을 상기 부모 노드의 새로운 자식 노드로서 연관시키는 단계; 및
    상기 새로운 자식 노드가 보유한 레벨 코스트를 1 증가시키는 단계를 더 포함하는, 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법.
  6. 제5항에 있어서,
    상기 통신 단계는,
    상기 부모 노드로부터 상기 새로운 자식 노드로 명령을 통신하는 단계를 포함하는, 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법.
  7. 제4항에 있어서,
    상기 부모 노드 갱신 단계는,
    상기 디스에이블된 부모 노드의 레벨 아이디보다 1이 더 작은 레벨 아이디를 가지며, 상기 디스에이블된 부모 노드의 노드 아이디를 2로 나누고 나머지를 버린 값에 해당하는 노드 아이디를 가지는 노드를 상기 자식 노드의 새로운 부모 노드로서 연관시키는 단계; 및
    상기 새로운 부모 노드가 보유한 레벨 코스트를 1 증가시키는 단계를 더 포함하는, 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법.
  8. 제7항에 있어서,
    상기 통신 단계는,
    상기 자식 노드로부터 상기 새로운 부모 노드로 상기 노드가 감지한 센서 데이터를 통신하는 단계를 포함하는, 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법.
  9. 제1항에 있어서,
    상기 노드들 각각에 고유한 레벨 아이디 및 노드 아이디를 할당하는 단계는,
    상기 복수 개의 노드들 중 가장 낮은 레벨 아이디를 가지는 베이스 노드로부터의 거리에 따라 증가하는 레벨 아이디 및 노드 아이디를 가지도록 할당하는 단계를 포함하는, 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법.
  10. 이진 나무 구조로 구성되는 복수 개의 노드들을 포함하는 양방향 통신 시스템에 있어서,
    상기 노드들 각각은 고유한 레벨 아이디 및 노드 아이디를 가지고;
    상기 노드들 중 부모 노드 각각에 대하여,
    상기 부모 노드의 레벨 아이디보다 크면서 상기 부모 노드의 레벨 아이디와 가장 가까운 레벨 아이디를 가지며, 상기 부모 노드의 노드 아이디에 2를 곱한 값 및 상기 부모 노드의 노드 아이디에 2를 곱한 값에 1을 더한 값에 해당하는 노드 아이디들을 가지는 두 개의 노드들이 상기 부모 노드와 관련된 자식 노드들로서 연관되고;
    상기 노드들 중 자식 노드 각각에 대하여,
    상기 자식 노드의 레벨 아이디보다 작으면서 상기 자식 노드의 레벨 아이디와 가장 가까운 레벨 아이디를 가지며, 상기 자식 노드의 노드 아이디를 2로 나누고 나머지를 버린 값에 해당하는 노드 아이디를 가지는 노드가 상기 자식 노드와 관련된 부모 노드로서 연관되며; 및
    상호 연관된 상기 부모 노드 및 자식 노드는 서로 간에 데이터를 송수신하는, 이진 나무 구조로 구성되는 복수 개의 노드들을 포함하는 양방향 통신 시스템.
  11. 제10항에 있어서,
    자식 노드를 갱신하기 위하여, 상기 부모 노드는,
    후보 노드가 송신한 비콘 메시지를 수신하도록,
    상기 후보 노드의 노드 아이디가 상기 부모 노드의 노드 아이디에 2를 곱한 값 및 상기 부모 노드의 노드 아이디에 2를 곱한 값에 1을 더한 값 중 하나에 해당한다면, 상기 후보 노드의 레벨 아이디에서 상기 부모 노드의 레벨 아이디를 감산한 값을 상기 레벨 코스트로서 계산하도록, 그리고
    상기 계산된 레벨 코스트가 상기 부모 노드가 보유한 레벨 코스트보다 작으면, 상기 계산된 레벨 코스트를 사용하여 상기 보유한 레벨 코스트를 갱신하고, 상기 후보 노드를 상기 부모 노드의 새로운 자식 노드로서 연관시키도록 구성되는, 이진 나무 구조로 구성되는 복수 개의 노드들을 포함하는 양방향 통신 시스템.
  12. 제10항에 있어서,
    부모 노드를 갱신하기 위하여, 상기 자식 노드는,
    후보 노드가 송신한 비콘 메시지를 수신하도록,
    상기 후보 노드의 노드 아이디가 상기 자식 노드의 노드 아이디를 2로 나누고 나머지를 버린 값에 해당한다면, 상기 자식 노드의 레벨 아이디에서 상기 후보 노드의 레벨 아이디를 감산한 값을 상기 레벨 코스트로서 계산하도록,
    상기 계산된 레벨 코스트가 상기 자식 노드가 보유한 레벨 코스트보다 작으면, 상기 계산된 레벨 코스트를 사용하여 상기 보유한 레벨 코스트를 갱신하고, 상기 후보 노드를 상기 자식 노드의 새로운 부모 노드로서 연관시키도록 구성되는, 이진 나무 구조로 구성되는 복수 개의 노드들을 포함하는 양방향 통신 시스템.
  13. 제10항에 있어서,
    비콘 메시지를 상기 자식 노드로 송신한 상기 부모 노드가 상기 자식 노드로부터 수신 확인을 수신하지 못하는 횟수가 선결정된 횟수 이상이면, 상기 부모 노드는 상기 자식 노드를 디스에이블하고, 그리고
    비콘 메시지를 상기 부모 노드로 송신한 상기 자식 노드가 상기 부모 노드로부터 수신 확인을 수신하지 못하는 횟수가 선결정된 횟수 이상이면, 상기 자식 노드는 상기 부모 노드를 디스에이블하는, 이진 나무 구조로 구성되는 복수 개의 노드들을 포함하는 양방향 통신 시스템.
  14. 제13항에 있어서,
    상기 부모 노드는, 상기 디스에이블된 자식 노드의 레벨 아이디보다 1이 더 큰 레벨 아이디를 가지며, 상기 디스에이블된 자식 노드의 노드 아이디에 2를 곱한 값 및 상기 디스에이블된 자식 노드의 노드 아이디에 2를 곱한 값에 1을 더한 값에 해당하는 노드 아이디들을 가지는 노드들을 상기 부모 노드의 새로운 자식 노드로서 연관시키고,
    상기 새로운 자식 노드는 보유한 레벨 코스트를 1 증가시키는, 이진 나무 구조로 구성되는 복수 개의 노드들을 포함하는 양방향 통신 시스템.
  15. 제14항에 있어서,
    상기 부모 노드는 상기 새로운 자식 노드로 명령을 통신하는, 이진 나무 구조로 구성되는 복수 개의 노드들을 포함하는 양방향 통신 시스템.
  16. 제13항에 있어서,
    상기 자식 노드는, 상기 디스에이블된 부모 노드의 레벨 아이디보다 1이 더 작은 레벨 아이디를 가지며, 상기 디스에이블된 부모 노드의 노드 아이디를 2로 나누고 나머지를 버린 값에 해당하는 노드 아이디를 가지는 노드를 상기 자식 노드의 새로운 부모 노드로서 연관시키고,
    상기 새로운 부모 노드는 보유한 레벨 코스트를 1 증가시키는, 이진 나무 구조로 구성되는 복수 개의 노드들을 포함하는 양방향 통신 시스템.
  17. 제16항에 있어서,
    상기 자식 노드는 상기 새로운 부모 노드로 상기 노드가 감지한 센서 데이터를 통신하는, 이진 나무 구조로 구성되는 복수 개의 노드들을 포함하는 양방향 통신 시스템.
  18. 제10항에 있어서,
    상기 노드들은, 상기 복수 개의 노드들 중 가장 낮은 레벨 아이디를 가지는 베이스 노드로부터의 거리에 따라 증가하는 레벨 아이디 및 노드 아이디를 가지는, 이진 나무 구조로 구성되는 복수 개의 노드들을 포함하는 양방향 통신 시스템.
KR20130130867A 2013-10-31 2013-10-31 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법 및 시스템 KR101464196B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130130867A KR101464196B1 (ko) 2013-10-31 2013-10-31 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130130867A KR101464196B1 (ko) 2013-10-31 2013-10-31 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR101464196B1 true KR101464196B1 (ko) 2014-11-24

Family

ID=52291334

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130130867A KR101464196B1 (ko) 2013-10-31 2013-10-31 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101464196B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108540989A (zh) * 2018-03-05 2018-09-14 东南大学 一种用于无线传感器网络的单纯复形简化方法及设备
CN113766602A (zh) * 2020-06-04 2021-12-07 北京新岸线移动多媒体技术有限公司 一种无线网络的组网方法及无线网络结构
CN114866370A (zh) * 2022-03-22 2022-08-05 深圳市立创电子商务有限公司 基于非对称二叉树链路的通信方法、装置、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060063769A (ko) * 2002-10-18 2006-06-12 심볼테크놀로지스,인코포레이티드 잡음이 있는 에어 채널 상에서 고유 식별 번호들을 갖는rfid 태그들의 집단을 효율적으로 판독하기 위한 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060063769A (ko) * 2002-10-18 2006-06-12 심볼테크놀로지스,인코포레이티드 잡음이 있는 에어 채널 상에서 고유 식별 번호들을 갖는rfid 태그들의 집단을 효율적으로 판독하기 위한 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108540989A (zh) * 2018-03-05 2018-09-14 东南大学 一种用于无线传感器网络的单纯复形简化方法及设备
CN108540989B (zh) * 2018-03-05 2021-08-10 东南大学 一种用于无线传感器网络的单纯复形简化方法及设备
CN113766602A (zh) * 2020-06-04 2021-12-07 北京新岸线移动多媒体技术有限公司 一种无线网络的组网方法及无线网络结构
CN114866370A (zh) * 2022-03-22 2022-08-05 深圳市立创电子商务有限公司 基于非对称二叉树链路的通信方法、装置、设备及介质
CN114866370B (zh) * 2022-03-22 2024-04-16 深圳市立创电子商务有限公司 基于非对称二叉树链路的通信方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
US8582433B2 (en) Wireless communication network and adaptive routing communication method thereof
US8767690B2 (en) Wireless communication device, wireless communication system, wireless communication method, and program
JP5016414B2 (ja) 無線端末、無線通信方法及び方法
KR20090090461A (ko) 무선 센서 네트워크에서 센서 노드의 수명 연장 방법 및이를 위한 시스템
KR101464196B1 (ko) 이진 나무 구조로 구성되는 복수 개의 노드들 간의 양방향 통신 방법 및 시스템
KR20090072039A (ko) 무선 센서 네트워크 및 이의 구성 방법
JP6841368B2 (ja) 無線センサシステム、無線端末装置、通信制御方法および通信制御プログラム
US20090103564A1 (en) Method and apparatus for controlling media access in sensor network
KR101555315B1 (ko) 저전력 사물 인터넷 네트워크 관리를 위한 네트워크 관리 데이터 전파 방법 및 저전력 사물 인터넷 노드 장치
JP2005348203A (ja) 無線通信装置及び通信経路制御方法
KR100943176B1 (ko) 무선 센서 네트워크 시스템의 비콘 모드에서의 센서노드의방송장치, 방송방법, 방송응답장치 및 방송응답방법
CN108900982B (zh) 数据转发方法与装置
JP5229330B2 (ja) 移動通信システム、及びその制御方法、無線基地局装置
US9693179B2 (en) Method and apparatus for producing personal area network identifier (PANID) on network in wireless communication system
JP5097052B2 (ja) 情報処理装置およびその制御方法
Golsorkhtabaramiri et al. A reader anti-collision protocol for RFID-enhanced wireless sensor networks
JP5509802B2 (ja) 無線通信システム、無線通信装置、無線通信方法、およびプログラム
KR101243244B1 (ko) 애드혹 네트워크에서 에너지 소모를 최소화하는 경로 탐색 장치 및 방법
US8406165B2 (en) Magnetic field communication method and apparatus capable of recognizing multiple nodes
Saxena et al. Efficient Power Utilization Techniques for Wireless Sensor Networks- A Survey
KR101026827B1 (ko) 홈 자동화 시스템에서 무선 센서네트워크를 위한 라우팅 방법 및 이에 사용되는 센서 노드의 통신모듈
JP4981922B2 (ja) ネットワーク送信をサービスするポータルの選択方法
JP4879108B2 (ja) 移動端末、アドホックネットワーク制御システム、及びアドホックネットワーク制御方法
JP2008539630A (ja) ルーティング方法並びに前記方法を実行するトランシーバ基地局及びコンピュータプログラム
Lee et al. Power-aware position vector routing for wireless sensor networks

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171205

Year of fee payment: 4