KR20200011105A - LoRa 기반 멀티 홉 통신 프로토콜 장치 및 방법 - Google Patents

LoRa 기반 멀티 홉 통신 프로토콜 장치 및 방법 Download PDF

Info

Publication number
KR20200011105A
KR20200011105A KR1020180085779A KR20180085779A KR20200011105A KR 20200011105 A KR20200011105 A KR 20200011105A KR 1020180085779 A KR1020180085779 A KR 1020180085779A KR 20180085779 A KR20180085779 A KR 20180085779A KR 20200011105 A KR20200011105 A KR 20200011105A
Authority
KR
South Korea
Prior art keywords
node
network
time
network initialization
data
Prior art date
Application number
KR1020180085779A
Other languages
English (en)
Other versions
KR102118254B1 (ko
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 KR1020180085779A priority Critical patent/KR102118254B1/ko
Publication of KR20200011105A publication Critical patent/KR20200011105A/ko
Application granted granted Critical
Publication of KR102118254B1 publication Critical patent/KR102118254B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • H04W84/20Master-slave selection or change arrangements

Landscapes

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

Abstract

LoRa 기반 멀티 홉 네트워크 프로토콜에 사용되는 노드 프로세서 및 그 동작 방법에 연관된다. 보다 상세하게는, 상기 네트워크 초기화 요청 메시지를 수신하면, 지나간 소요슬롯 정보를 1 증가시킨 후 자신 노드의 네트워크 초기화 요청 메시지를 다음 단계 노드로 송신하며, 소요슬롯 정보를 이용하여 데이터 전송 단계로 이동하기 위한 남은 시간을 계산하는 네트워크 초기화 단계; 및 상기 다음 단계 노드로부터 데이터 패킷을 수신하고, 상기 자신 노드의 데이터 패킷과 결합하여 상기 부모노드로 송신하는 데이터 전송 단계를 포함할 수 있다.

Description

LoRa 기반 멀티 홉 통신 프로토콜 장치 및 방법{APPARATUS AND METHOD FOR MULTI-HOP COMMUNICATION PROTOCOL BASED ON LORA}
LoRa 기술을 이용한 멀티 홉 통신 장치 및 방법에 연관되며, 보다 특정하게는 네트워크 초기화 단계와 데이터 전송 단계를 포함하는 선형 네트워크를 위한 신뢰성 있는 LoRa 기반 멀티 홉 통신 프로토콜에 연관된다.
LoRa(Long Range)와 같은 저전력 광역 네트워크(Low Power Wide Area Network, LPWAN) 기술은 매우 길고 넓은 거리에서 전력 효율적인 무선 통신을 가능하게 하는 새로운 기술이다. 이러한 기술은 많은 수의 센서 판독 값을 수집하기 위해 넓은 지역에서 사용되는 경우를 대상으로 한다. 기존의 LoRa 기반 네트워크 프로토콜인 LoRaWAN은 LoRa 센서 장치가 단일 홉(hop)으로 센서 데이터를 LoRa 게이트웨이로 보내고, 게이트웨이는 인터넷을 통해 데이터를 서버로 전달한다.
LoRa 통신 기술과 같은 LPWAN 기술은 센서 장치들이 데이터를 저전력으로 장거리로 전송할 수 있는 특징을 가진다. 따라서 LPWAN 기술들은 센서 장치들이 데이터를 게이트웨이에 라우팅없이 1-홉으로 전송하고 게이트웨이가 수집한 데이터를 서버에 전송하는 네트워크 구조를 가지고 있다. 그러나 이러한 네트워크 전송방식은 센서 장치들이 먼 거리에 걸쳐 일렬로 길게 늘어선 응용 분야에서는 모니터링을 위해 게이트웨이들을 많이 설치해야 해서 효율적이지 않아 이러한 문제를 해소하는 방법이 요구된다.
한국 공개특허 10-2018-0025613호 (공개일자 2018년03월09일)는 LoRa 네트워크 단말에서의 시간 보정 방법을 제시한다. LoRa 네트워크 서버에 연결된 LoRa 네트워크 단말의 시간 정보를 보정하기 위한 방법에 연관된다.
일실시예에 따르면 LoRa 기반 멀티 홉 네트워크 프로토콜에 사용되는 노드 LoRa 기반 멀티 홉 네트워크 프로토콜에 사용되는 노드 프로세서의 동작 방법에 있어서, 선형 네트워크를 구성하기 위해 싱크노드가 네트워크 최대 깊이 정보와 지나간 소요슬롯 정보를 가진 네트워크 초기화 요청 메시지(Initialization Request Message) 전송함으로써 시작되고, 각 노드들은 상기 네트워크 초기화 요청 메시지를 수신하면 상기 네트워크 초기화 요청 메시지 송신 노드를 부모노드로 설정하고, 지나간 소요슬롯 정보를 1 증가시킨 후 자신노드의 네트워크 초기화 요청 메시지를 자식노드로 송신하며, 상기 소요슬롯 정보를 이용하여 데이터 전송 단계로 이동하기 위한 남은 시간을 계산하는 네트워크 초기화 단계; 및 상기 자식노드로부터 데이터 패킷을 수신하고, 상기 자신 노드의 데이터 패킷과 결합하여 상기 부모노드로 송신하는 데이터 전송 단계를 포함하는 노드 프로세서의 동작 방법이 개시된다.
다른 일실시예에 따르면 상기 데이터 전송 단계는, 상기 부모노드로의 데이터 패킷 송신이 성공했는지 여부를 확인하기 위해 상기 부모노드가 수신 후 다음 단계 노드로 전송하는 데이터 패킷을 리스닝하는 단계를 더 포함하는 노드 프로세서의 동작 방법도 개시된다.
또 다른 일실시예에 따르면 상기 데이터 전송 단계는, 상기 데이터 패킷 송신이 실패한 경우에 재송신을 수행하는 단계를 더 포함하는 노드 프로세서의 동작 방법도 가능하다.
다른 일실시예에 따르면 상기 데이터 전송 단계로 이동하기 위한 상기 남은 시간은, 네트워크 초기화 단계를 수행하는 최대 시간에서 소요슬롯과 슬롯의 시간 곱을 빼서 계산할 수 있다.
또한 상기 네트워크 초기화 단계는, 네트워크 구성이 완료되었음을 알리기 위해 상기 자식노드로부터 피드백 메시지를 수신하고, 상기 피드백 메시지를 상기 부모노드로 송신하는 단계를 더 포함하는 노드 프로세서의 동작 방법도 제시된다.
다른 일실시예에 따르면 상기 네트워크 초기화 요청 메시지의 추적에 실패한 경우에 네트워크 초기화 실패 상태 피드백 메시지를 송신하는 단계를 더 포함할 수 있다.
일실시예에 따르면 상기 자식노드 및 상기 부모노드 사이에 동기화된 웨이크업을 위해 송신 웨이크업 시간과 수신 웨이크업 시간을 계산하는 단계를 더 포함하는 노드 프로세서의 동작 방법이 개시된다.
여기서 상기 웨이크업 시간을 계산하는 단계는, 상기 자신노드의 홉 카운트와 네트워크 깊이에 기반하여 웨이크업 시간을 계산하는 단계일 수 있다.
일측에 따르면 LoRa 기반 멀티 홉 네트워크 프로토콜에 사용되는 노드 프로세서에 있어서, 네트워크 초기화 요청 메시지(Initialization Request Message)를 수신하면 상기 네트워크 초기화 요청 메시지를 송신한 노드를 부모노드로 설정하고, 지나간 소요슬롯 정보를 1 증가시킨 후 자신노드의 네트워크 초기화 요청 메시지를 자식노드로 송신하며, 상기 소요슬롯 정보를 이용하여 데이터를 전송하기까지 남은 시간을 계산하는 네트워크 초기화부; 및 상기 자식노드로부터 데이터 패킷을 수신하고, 상기 자신노드의 데이터 패킷과 결합하여 부모노드로 송신하는 데이터 송신부를 포함하는 노드 프로세서가 개시된다.
다른 일측에 따르면 상기 데이터 송신부는, 상기 부모노드로의 데이터 패킷 송신이 성공했는지 여부를 확인하기 위해 상기 부모노드가 수신 후 조부모노드로로 전송되는 데이터 패킷을 리스닝하는 노드 프로세서도 개시된다.
또 다른 일측에 따르면 상기 데이터 송신부는, 상기 데이터 패킷 송신이 실패한 경우에 재송신을 수행하는 노드 프로세서가 제시된다.
다른 일측에 따르면 상기 네트워크 초기화부는, 상기 네트워크 초기화를 수행하는 최대 시간에서 소요슬롯과 슬롯의 시간 곱을 빼서 데이터를 전송하기까지 상기 남은 시간을 계산할 수 있다.
일측에 따르면 상기 네트워크 초기화부는, 상기 자식노드로부터 피드백 메시지를 수신하고, 상기 피드백 메시지를 상기 부모노드로 송신하는 노드 프로세서도 가능하다.
또 다른 일측에 따르면 상기 네트워크 초기화부는, 상기 네트워크 초기화 요청 메시지의 추적에 실패한 경우에 네트워크 초기화 실패 상태 피드백 메시지를 송신하는 노드 프로세서가 제시된다.
또는 상기 자식노드 및 상기 부모노드 사이에 동기화된 웨이크업를 위해 송신 웨이크업 시간 및 수신 웨이크업 시간을 계산하는 웨이크업 시간 계산부를 더 포함하는 노드 프로세서도 가능하다.
이 때, 상기 웨이크업 시간 계산부는, 상기 자신노드의 홉 카운트 정보와 최대 네트워크 깊이 정보에 기반하여 웨이크업 시간을 계산할 수 있다.
다른 일실시예에 따르면 상기 네트워크 초기화부는, 네트워크 초기화 요청 메시지의 추적에 실패한 경우에 네트워크 초기화 실패 상태 피드백 메시지를 송신하는 노드 프로세서도 제시된다.
또한 앞서 설명한 노드 프로세서의 동작 방법들을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체도 가능하다.
도 1은 일실시예에 따른 파이프라인 형태로 배열된 노드를 도시한다.
도 2는 일실시예에 따른 통신 프로토콜의 수행 단계를 도시한다.
도 3는 일실시예에 따른 네트워크 초기화 요청 메시지 포맷을 도시한다.
도 4은 일실시예에 따른 피드백 메시지 포맷을 도시한다.
도 5은 일실시예에 따른 네트워크 초기화 단계의 수행 모식도이다.
도 6은 일실시예에 따른 1회 재전송하는 데이터 전송 단계의 수행 모식도이다.
도 7는 일실시예에 따른 재전송 하지 않는 데이터 전송 단계의 수행 모식도이다.
도 8은 일실시예에 따른 RX wake-up 시간을 계산하는 알고리즘을 도시한다.
도 9은 일실시예에 따른 TX wake-up 시간을 계산하는 알고리즘을 도시한다.
이하에서, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 권리범위는 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시예들을 설명하기 위한 예시적 용어로 이해되어야 한다.
또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.
도 1은 일실시예에 따른 파이프라인 형태로 배열된 노드를 도시한다. 일실시예에 따라 제안되는 LoRa 통신에 기반하는 멀티 홉 선형 네트워크는 도 1에서 도시되는 파이프라인 형태로 배열되는 노드에 적합할 수 있다.
일실시예에 따른 LoRa 기반 멀티 홉 선형 네트워크는, 데이터 전송에 있어서 각 노드들이 선형으로 연결되고 싱크노드까지 별도의 게이트웨이 없이 노드들 간의 LoRa 기반 멀티홉 통신을 이용하여 서버까지 연결될 수 있다.
제안되는 멀티 홉 선형 네트워크는 도 3 내지 도 7에서 상세히 설명하도록 한다.
도 2는 일실시예에 따른 통신 프로토콜의 수행 단계를 도시한다. 일실시예에 따른 통신 프로토콜은 네트워크 초기화 단계(210) 및 데이터 전송 단계(220)로 구성될 수 있다.
네트워크 초기화 단계(Network Initialization Period, NIP)는 데이터를 전송하기 전에 각 노드들이 자신의 센서 데이터를 싱크노드까지 전송하기 위한 경로, 즉 부모 노드를 정하기 위해 네트워크를 초기화 하는 단계이다. 다음으로 데이터 전송 단계(Data Transmission Period, DTP)는 LoRa 센서 노드들이 센서 데이터를 자신의 부모노드를 통해 싱크노드로 데이터를 전송하는 단계이다.
구체적으로 네트워크 초기화 단계(NIP, 210)에서는 선형 네트워크를 형성하는 시작 단계에서 수행되고, 싱크노드가 네트워크 초기화 요청 메시지 (Initialization REQuest Message: REQ)를 브로드캐스팅을 통해 전송함으로써 시작된다. 네트워크 초기화 단계(210)는 네트워크의 모든 노드가 선형 네트워크를 형성하기 위해 수행된다. 그리고 네트워크 초기화 단계(210)는 선형 네트워크를 성공적으로 구성 한 후에 모든 노드가 동시에 데이터 전송 단계(220)로 이동하는 것을 보장해야 한다.
데이터 전송 단계(Data Transmission Period, DTP)에서 모든 센서 노드는 데이터를 싱크 노드로 보내도록 파이프 라인 방식으로 데이터 패킷을 전달한다. 노드는 자신의 자식노드에서 수신 한 데이터 패킷을 자체 데이터와 결합하여 함께 송신한다. 모든 노드는 데이터 패킷을 수신하거나 송신하는 데 할당된 슬롯을 사용한다. 상기 데이터 전송 단계에서 각 노드는 네트워크의 전달 신뢰도를 높이기 위해 슬롯 데이터 전송이 실패하는 경우 재전송을 수행할 수 있다.
도 3 내지 도 7에서는 일실시예에 따른 네트워크 프로토콜 디자인을 설명한다.
도 3은 일실시예에 따른 초기화 요청 메시지 포맷을 도시한다.
일실시예에 따른 LoRa 기반 멀티 홉 선형 네트워크 프로토콜은 장거리 및 모든 모니터링 지점이 선형으로 배치되는 모니터링을 위해 사용될 수 있다.
초기화 네트워크 단계(NIP)를 수행하기 위해, 네트워크 초기화 요청 메시지(Initialization REQuest message, REQ)와 피드백 메시지(Feedback message, FB)가 사용된다. 도 5는 상기 REQ 메시지의 구조를 개략적으로 도시한다. 첫 번째 바이트에서 메시지 타입(MSG_TYPE, 310)과 REQ 송신자 노드 ID(SENDER_ID, 320)가 포함된다. 다음 바이트에서는 네트워크 최대 깊이(Max_Depth, 330)와 소요슬롯(Passed_Slot, 340)을 저장한다. 상기 소요슬롯(340)은 NIP 단계 시작 후 현재까지 지나간 시간 슬롯 수를 나타낸다.
도 4는 일실시예에 따른 피드백 메시지(Feedback message, FB) 포맷을 도시한다.
FB는 메시지 타입(MSG_TYPE, 410), 송신기 ID(SENDER_ID, 420) 및 FB 메시지를 첫번째로 전송한 노드의 ID인 FB 소스(SRC_FB, 430) 정보를 포함한다.
도 5는 일실시예에 따른 네트워크 초기화 단계의 수행 모식도이다.
도 5는 네트워크가 어떻게 초기화되는지 도시한다. 상기 네트워크 초기화 단계(NIP)는 주어진 최대시간(TNIP) 이내에 수행되며, 싱크 노드(Sink node)가 네트워크 최대 깊이(Max_Depth) 정보와 소요슬롯 정보 1을 포함하는 REQ 메시지를 전송함으로써 시작된다. 싱크노드가 아닌 LoRa 센서노드들은 전원을 켠 후에 REQ 메시지 수신을 위해 리스닝 모드로 전환된다.
LoRa 센서노드가 REQ 메시지를 수신하면, REQ 메시지 송신자를 자신의 부모노드로 설정하고, REQ 메시지 내의 소요슬롯 정보 값을 1증가 시킨 후 자신의 REQ 메시지를 브로드캐스팅 한다.
또한 수신한 REQ 메시지 내의 네트워크 최대 깊이(Max_Depth) 정보와 소요슬롯 정보를 이용하여 데이터 전송 단계(Data Transmission Period)로 이동하기 위한 남은 시간(tremain)을 계산한다. 하나의 슬롯 길이(Tslot)는 REQ 메시지 또는 FB 메시지들을 전송 하기에 충분한 시간으로 설정된다.
상기 남은 시간(tremain)은 다음의 수학식 1에 의해 계산할 수 있다.
Figure pat00001
여기서Tslot은 슬롯의 길이, tremain은 남은 시간이고, TNIP는 정해진 NIP 단계 최대 시간이고, Passed_Slot은 NIP 단계 시작 후 지나간 슬롯 수를 나타낸다.
다음 단계 노드가 REQ 메시지를 수신했는지 여부를 확인하기 위해 각 노드는 REQ 메시지를 전송하고, 바로 다음 슬롯에서 다음 단계 노드의 REQ 메시지 수신을 추적하기 위해 리스닝을 수행한다. REQ 메시지 전송이 실패한 경우 소요슬롯(Passed_Slot)을 2 증가시키고, 다음 슬롯에서 REQ 메시지를 재전송한다.
싱크 노드(Sink node)는 네트워크 초기화 과정이 성공적으로 종료되었음을 확인하기 위해 리프 센서 노드로부터 시작하여 부모노드들을 통해 싱크노드로 전송되는 FB 메시지를 수신하기 위해 주기적으로 리스닝한다. 또한 각 노드는 자신의 REQ 메시지를 성공적으로 전송한 다음, 리프 센서 노드로부터 시작하여 부모노드들을 통해 싱크노드로 전송되는 FB 메시지를 수신하기 위해 주기적으로 리스닝한다.
리프 노드(Leaf node)는 자신의 부모노드로부터 REQ 메시지를 성공적으로 수신하면, 다음 슬롯에서 FB 메시지를 부모노드로 전송하고, 각 노드는 자신의 자식노드로부터 FB 메시지를 수신한 다음, 부모노드를 통해 싱크 노드로 FB 메시지를 전송한다.
각 노드가 첫번째 슬롯 전송에서 실패하고 1번씩 재전송을 하는 겅우, 요구되는 네트워크 초기화에 필요한 지속 시간에 대한 최악의 경우(Worst Case)를 다음의 수학식 2와 같이 계산할 수 있다.
Figure pat00002
여기서 TNIP는 특정 시간 간격이고, Max_Depth는 노드의 최대 깊이이다. 그리고 Tslot은 슬롯의 시간이다.
도 6은 일실시예에 따른 재전송을 하는 데이터 전송 단계의 수행 모식도이다. 도 6에서는 예시적으로 1회 재전송으로 설명하지만 1회에 한정되는 것은 아니다.
데이터 전송 단계(Data Transmission Period)에서 모든 센서 노드는 데이터를 싱크 노드(Sink node)로 보내기 위해서 파이프 라인(Pipe-line) 방식으로 데이터 패킷을 전달한다. 각 노드는 자신의 자식노드에서 수신하는 데이터 패킷을 자신의 데이터와 결합하여 함께 전송할 수 있다. 모든 노드는 데이터 패킷을 수신하거나 송신하기 위해 자신에게 할당된 슬롯을 사용한다.
상기 슬롯의 길이(Tslot)는 각 노드에서 데이터를 결합한 후에 최대 길이를 갖는 데이터 패킷을 전송하기 위한 시간보다 더 길어야 한다. 네트워크의 전달 신뢰도를 높이기 위해 첫 번째 전송이 실패한 경우에 재전송을 허용하는 메커니즘을 정의한다. 도 6은 한 주기에서 1번의 재전송을 하는 경우 프로토콜의 데이터 전송 방식을 도시한다.
한 노드는 다음 단계 노드로부터 데이터 패킷을 수신 한 후에 다음 슬롯에서 노드 자신의 데이터 패킷을 전송한다. 그리고 데이터 패킷을 전송한 다음 슬롯 시작점에서, 상기 노드는 전송이 성공했는지 여부를 알기 위해 부모노드에 의해 전송되는 데이터 패킷을 리스닝한다.
전송이 실패인 경우, 리스닝 시간 후에 데이터 패킷을 재송신 한다. 노드가 자식노드로부터 데이터를 수신하는 경우, 수신슬롯에서 패킷을 수신하지 못하면 노드는 수면(sleeping) 상태로 전환되고 2 슬롯 시간(2*Tslot) 후에 수신을 재시도한다. 각 노드는 자식노드로부터 센서 데이터 패킷을 받지 못하더라도 자신의 마지막 송신 슬롯에서 자신의 부모노드로 데이터를 전송한다. LoRa 트랜시버를 사용하여 패킷을 수신할 때 모뎀은 패킷 수신을 수행하기 위해 주어진 시간 동안 RX 모드를 유지한다. 상기 모뎀이 패킷을 감지하지 못하거나 수신에 실패하면 RxTimeout(RxTO) 인터럽트(Interrupt)를 생성하고 대기 모드로 돌아간다. 패킷 수신이 성공한 경우 상기 모뎀은 패킷 수신이 끝나면 RxDone 인터럽트를 생성한다.
최악의 경우, 모든 센서 노드가 첫번째 패킷 전송이 실패하고 1회 재전송을 수행하는 경우, 데이터 전송 단계 한 주기의 시간(
Figure pat00003
)은 다음의 수학식 3과 같이 리프 노드에서 싱크 노드로 데이터 패킷을 전달하는 시간보다 길어야 한다.
Figure pat00004
여기서 durcycle은 한 주기의 시간 길이이고, Max_Depth는 노드의 최대 깊이, 그리고 Tslot은 슬롯의 시간이다.
도 7은 일실시예에 따른 재전송 하지 않는 데이터 전송 단계의 수행 모식도이다. 재전송을 수행하지 않는 경우에, 데이터 전송 단계 한 주기의 시간(
Figure pat00005
)은 다음의 수학식 4와 같다.
Figure pat00006
수학식 3에서와 마찬가지로, durcycle은 한 주기의 지속시간이고, Max_Depth는 노드의 최대 깊이, 그리고 Tslot은 슬롯의 시간이다.
도 8은 일실시예에 따른 RX wake-up 시간을 계산하는 알고리즘을 도시한다. 도 9는 일실시예에 따른 TX wake-up 시간을 계산하는 알고리즘을 도시한다.
도 8과 같이 네트워크 초기화 단계 이후의 첫 번째 주기에서 리프 노드는 데이터 전송 단계의 시작 시점에서 데이터를 송신하기 위해 깨어난다. 그리고 다른 노드들은 홉 카운트(hop-count, 깊이)와 최대 네트워크 깊이에 기반하여 데이터 전송 단계에서 패킷을 수신하기 위해 깨어날 시간을 다음의 수학식 5를 이용하여 계산한다(800).
Figure pat00007
twake_n은 홉카운트가 n인 경우의 깨어날 시간이고, depthn은 홉카운트이다.
각 노드는 자식노드가 데이터를 전송하는 슬롯에서 동시에 수신 상태로 깨어나야 한다. 따라서 각 노드는 슬롯 시간 동기화를 위해 자식노드의 시간 소스가 될 수 있다.
도 8 및 도 9는 일실시예에 따른 프로토콜에서 깨어날 시간 계산 알고리즘을 설명한다. 도 8은 각 노드에서 사이클의 시작에서 다음 단계 노드로부터 데이터 패킷을 수신하기 위한 것이고, 도 9는 1회의 재전송을 지원하는 이전 단계 노드로 메시지를 송신하기 위한 것이다.
하나의 데이터 전송 단계에서 리프 노드는 도 9의 송신 단계만 수행하고 싱크 노드는 도 8의 수신 단계만 수행한다. 중간 노드의 경우 도 8의 수신단계를 수행한 후 도 9의 송신 단계를 수행하게 된다.
하나의 데이터 전송 단계의 동작을 수행한 후 각 노드는 다음 데이터 전송 단계에서 깨어날 시간을 계산하고 그 시간까지 sleep 상태에 머무르게 된다. 리프노드가 아닌 노드들은 먼저 자식노드가 송신슬롯에서 전송하는 데이터를 수신하기 위해 자식노드가 깨어나는 시간에 맞춰 수신모드로 깨어나게 된다.
도 8은 리프노드를 제외한 노드가 수신모드로 깨어나기 위해 수신모드 웨이크업 (RX Wakeup) 시간 계산 알고리즘이다.
첫번째 데이터 전송 단계가 시작되면, 단계 800에서 N=0이고, 각 노드는 자신의 데이터를 전송하기 위한 제1 송신 시간을 스케쥴링 한다. 제1 송신 시간(Tfirst_tx)은 (2*(Max_Depth - depthn)+1)*Tslot과 같다. 그리고 다음 주기에서 깨어날 웨이크업 시간 twake 를 durcycle 로 스케쥴링 한다. 단계 810에서는 N이 노드가 자식노드로부터 데이터를 성공적으로 수신하기 위해 반복할 수 있는 최대 수신횟수 보다 큰지 여부를 판단한다. 각 노드가 전송실패 시 1번의 재전송을 할 경우, 자식노드로부터 성공적으로 수신하기 위해 반복할 수 있는 최대 수신횟수는 (Max_Depth - depthn) 이다. N이 이 값보다 큰 경우에는 다음 수신 시간(RX time)을 제거하고, 다음 데이터 전송 단계의 제1 송신 시간(TX time)을 기다린다(880).
그러나 N이 크지 않은 경우에는 단계 820을 수행한다. 구체적으로 전송실패시 재전송 패킷을 수신하기 위한 다음 수신 시간을 Tnext_rx=2*Tslot 로 스케쥴링하고 송수신기 모드를 수신모드로 설정한다. 다음으로 단계 830에 따라 송수신기로부터 수신 결과 IRQ를 기다린다. 패킷이 수신되면 RxDone을 수신하고 이 경우에 CRC에러(CRC_Error)를 통해 에러가 있는지를 판단한다(840).
에러가 없는 경우에는 메시지가 자식노드에서 왔는지 여부를 판단(850)하고, 자식노드에서 왔다면 단계 860로 진행한다. 단계 860에서는 재전송 패킷을 수신하기 위한 다음 수신 시간을 제거하고, 패킷 전송 시간 (Tfirst_tx) 다음 슬롯 시간 (Tslot - durtx - Tshort) 으로 갱신한다. 여기서 Tshort 시간은 인접노드 사이의 클럭 차이를 보정하고 송수신기를 송신모드로 설정하는데 걸리는 하드웨어 시간을 고려하여 정하는 시간으로 실험을 통해 결정된 값을 사용한다. 그리고 twake = durcycle - durtx - 2* Tslot - Tshort을 이용하여 다음 데이터 전송 단계 주기의 웨이크업 시간을 업데이트 하고 다시 단계 880로 이동한다.
만약 단계 850에서 메시지가 자신의 자식노드로부터 온 것이 아니거나, 단계 840에서 RxTimeout을 수신하는 경우에 단계 870로 진행하여, N을 1 증가시키고, 재전송 패킷을 수신하기 위한 다음 수신 시간을 기다린다. 그리고 나서 다시 단계 810으로 돌아간다.
도 9는 노드가 자신의 송신슬롯에서 부모노드로 패킷을 전송하는 과정을 나타낸다. 먼저 910 단계에서 패킷을 전송하기 전에 부모노드로 전송이 성공했는지 리스닝하기 위한 시간 (Ttrack)과 전송실패시 재전송하기 시간 (Tsecond_tx)을 스캐쥴링하고, 단계 920에서 패킷을 송수신기로 전송하고 모드를 송신모드로 설정하여 패킷을 전송하고, 전송 카운터를 1 증가시킨다.
그리고 리스닝 시간(Ttrack)을 기다리고(930) 나서 송수신기 모드를 RX로 설정한다(940). 송수신기에서 패킷이 수신되면 IRQ를 기다리고(950) RxDone이 수신되는 경우에는 CRC 에러인지 여부를 판단(960)하여 도 8과 동일하게 수행한다. 만약 CRC 에러가 있거나 IRQ에서 RxTimeout을 수신하는 경우에 전송횟수가 2이거나 (1번의 재전송만 허용할 경우임) 싱크노드라면 단계 990로 진행하여 다음 송신시간들을 모두 제거하고 다음 데이터 전송 단계로 진행한다. 그러나 그게 아니라면 단계 980으로 이동하여 재전송(제2 송신) 시간을 기다린다. 그리고 나서 다시 단계 920으로 돌아간다.
본 파이프라인 방식 전송을 위해 인접노드 (자식노드와 부모노드) 사이에 클럭 동기가 이루어져야 한다. 본 프로토콜에서는 인접 노드사이의 동기화가 이루어져 있음을 가정한다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (17)

  1. LoRa 기반 멀티 홉 네트워크 프로토콜에 사용되는 노드 프로세서의 동작 방법에 있어서,
    선형 네트워크를 구성하기 위해 싱크노드가 네트워크 최대 깊이 정보와 지나간 소요슬롯 정보를 가진 네트워크 초기화 요청 메시지(Initialization Request Message) 전송함으로써 시작되고,
    각 노드들은 상기 네트워크 초기화 요청 메시지를 수신하면 상기 네트워크 초기화 요청 메시지 송신 노드를 부모노드로 설정하고, 지나간 소요슬롯 정보를 1 증가시킨 후 자신노드의 네트워크 초기화 요청 메시지를 자식노드로 송신하며, 상기 소요슬롯 정보를 이용하여 데이터 전송 단계로 이동하기 위한 남은 시간을 계산하는 네트워크 초기화 단계; 및
    상기 자식노드로부터 데이터 패킷을 수신하고, 상기 자신 노드의 데이터 패킷과 결합하여 상기 부모노드로 송신하는 데이터 전송 단계
    를 포함하는 노드 프로세서의 동작 방법.
  2. 제1항에 있어서,
    상기 데이터 전송 단계는,
    상기 부모노드로의 데이터 패킷 송신이 성공했는지 여부를 확인하기 위해 상기 부모노드가 수신 후 조부모노드로 전송하는 데이터 패킷을 리스닝하는 단계
    를 더 포함하는 노드 프로세서의 동작 방법.
  3. 제2항에 있어서,
    상기 데이터 전송 단계는,
    상기 데이터 패킷 송신이 실패한 경우에 재송신을 수행하는 단계
    를 더 포함하는 노드 프로세서의 동작 방법.
  4. 제1항에 있어서,
    상기 데이터 전송 단계로 이동하기 위한 상기 남은 시간은,
    네트워크 초기화 단계를 수행하는 최대 시간에서 소요슬롯과 슬롯의 시간 곱을 빼서 계산하는 노드 프로세서의 동작 방법.
  5. 제1항에 있어서,
    상기 네트워크 초기화 단계는,
    네트워크 구성이 완료되었음을 알리기 위해 상기 자식노드로부터 피드백 메시지를 수신하고, 상기 피드백 메시지를 상기 부모노드로 송신하는 단계
    를 더 포함하는 노드 프로세서의 동작 방법.
  6. 제5항에 있어서,
    상기 네트워크 초기화 요청 메시지의 추적에 실패한 경우에 네트워크 초기화 실패 상태 피드백 메시지를 송신하는 단계
    를 더 포함하는 노드 프로세서의 동작 방법.
  7. 제1항에 있어서,
    상기 자식노드 및 상기 부모노드 사이에 동기화된 웨이크업을 위해 송신 웨이크업 시간과 수신 웨이크업 시간을 계산하는 단계
    를 더 포함하는 노드 프로세서의 동작 방법.
  8. 제7항에 있어서,
    상기 웨이크업 시간을 계산하는 단계는,
    상기 자신노드의 홉 카운트와 네트워크 깊이에 기반하여 웨이크업 시간을 계산하는 노드 프로세서의 동작 방법.
  9. LoRa 기반 멀티 홉 네트워크 프로토콜에 사용되는 노드 프로세서에 있어서,
    네트워크 초기화 요청 메시지(Initialization Request Message)를 수신하면 상기 네트워크 초기화 요청 메시지를 송신한 노드를 부모노드로 설정하고, 지나간 소요슬롯 정보를 1 증가시킨 후 자신노드의 네트워크 초기화 요청 메시지를 자식노드로 송신하며, 상기 소요슬롯 정보를 이용하여 데이터를 전송하기까지 남은 시간을 계산하는 네트워크 초기화부; 및
    상기 자식노드로부터 데이터 패킷을 수신하고, 상기 자신노드의 데이터 패킷과 결합하여 부모노드로 송신하는 데이터 송신부
    를 포함하는 노드 프로세서.
  10. 제9항에 있어서,
    상기 데이터 송신부는,
    상기 부모노드로의 데이터 패킷 송신이 성공했는지 여부를 확인하기 위해 상기 부모노드가 수신 후 조부모노드로로 전송되는 데이터 패킷을 리스닝하는 노드 프로세서.
  11. 제10항에 있어서,
    상기 데이터 송신부는,
    상기 데이터 패킷 송신이 실패한 경우에 재송신을 수행하는 노드 프로세서.
  12. 제9항에 있어서,
    상기 네트워크 초기화부는,
    상기 네트워크 초기화를 수행하는 최대 시간에서 소요슬롯과 슬롯의 시간 곱을 빼서 데이터를 전송하기까지 남은 시간을 계산하는 노드 프로세서.
  13. 제9항에 있어서,
    상기 네트워크 초기화부는,
    상기 자식노드로부터 피드백 메시지를 수신하고, 상기 피드백 메시지를 상기 부모노드로 송신하는 노드 프로세서.
  14. 제13항에 있어서,
    상기 네트워크 초기화부는,
    상기 네트워크 초기화 요청 메시지의 추적에 실패한 경우에 네트워크 초기화 실패 상태 피드백 메시지를 송신하는 노드 프로세서.
  15. 제9항에 있어서,
    상기 자식노드 및 상기 부모노드 사이에 동기화된 웨이크업를 위해 송신 웨이크업 시간 및 수신 웨이크업 시간을 계산하는 웨이크업 시간 계산부
    를 더 포함하는 노드 프로세서.
  16. 제15항에 있어서,
    상기 웨이크업 시간 계산부는,
    상기 자신노드의 홉 카운트 정보와 최대 네트워크 깊이 정보에 기반하여 웨이크업 시간을 계산하는 노드 프로세서.
  17. 제1항 내지 제8항 중 어느 한 항의
    노드 프로세서의 동작 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
KR1020180085779A 2018-07-24 2018-07-24 LoRa 기반 멀티 홉 통신 프로토콜 장치 및 방법 KR102118254B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180085779A KR102118254B1 (ko) 2018-07-24 2018-07-24 LoRa 기반 멀티 홉 통신 프로토콜 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180085779A KR102118254B1 (ko) 2018-07-24 2018-07-24 LoRa 기반 멀티 홉 통신 프로토콜 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20200011105A true KR20200011105A (ko) 2020-02-03
KR102118254B1 KR102118254B1 (ko) 2020-06-02

Family

ID=69627152

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180085779A KR102118254B1 (ko) 2018-07-24 2018-07-24 LoRa 기반 멀티 홉 통신 프로토콜 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102118254B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113507703A (zh) * 2021-07-05 2021-10-15 中国人民解放军国防科技大学 一种用于野外救援的LoRa多跳通信方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080070966A (ko) * 2007-01-29 2008-08-01 강릉대학교산학협력단 양방향 데이터 통신이 가능한 선형 구조를 갖는 무선 센서네트워크 및 그 방법
KR20090043196A (ko) * 2007-10-29 2009-05-06 삼성에스디에스 주식회사 센서 네트워크 환경에서의 네트워크 인식 및 구성방법
KR20130030064A (ko) * 2011-09-16 2013-03-26 울산대학교 산학협력단 트리 기반의 센서 네트워크에서의 슬랏 스케쥴링 방법, 트리 기반 센서 네트워크에서 사용 가능한 노드 장치 및 컴퓨터 판독 가능 기록 매체
KR101617125B1 (ko) * 2015-03-19 2016-05-12 울산대학교 산학협력단 무선 센서 네트워크의 공유 슬롯 기반 데이터 전송 제어 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080070966A (ko) * 2007-01-29 2008-08-01 강릉대학교산학협력단 양방향 데이터 통신이 가능한 선형 구조를 갖는 무선 센서네트워크 및 그 방법
KR20090043196A (ko) * 2007-10-29 2009-05-06 삼성에스디에스 주식회사 센서 네트워크 환경에서의 네트워크 인식 및 구성방법
KR20130030064A (ko) * 2011-09-16 2013-03-26 울산대학교 산학협력단 트리 기반의 센서 네트워크에서의 슬랏 스케쥴링 방법, 트리 기반 센서 네트워크에서 사용 가능한 노드 장치 및 컴퓨터 판독 가능 기록 매체
KR101617125B1 (ko) * 2015-03-19 2016-05-12 울산대학교 산학협력단 무선 센서 네트워크의 공유 슬롯 기반 데이터 전송 제어 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
한국 공개특허 10-2018-0025613호 (공개일자 2018년03월09일)는 LoRa 네트워크 단말에서의 시간 보정 방법을 제시한다. LoRa 네트워크 서버에 연결된 LoRa 네트워크 단말의 시간 정보를 보정하기 위한 방법에 연관된다.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113507703A (zh) * 2021-07-05 2021-10-15 中国人民解放军国防科技大学 一种用于野外救援的LoRa多跳通信方法及系统

Also Published As

Publication number Publication date
KR102118254B1 (ko) 2020-06-02

Similar Documents

Publication Publication Date Title
Krasniewski et al. Energy-efficient on-demand reprogramming of large-scale sensor networks
EP2781074B1 (en) Communication protocol for energy-harvesting devices
US9622203B2 (en) Low power communication system and method
KR20090006757A (ko) 무선 센서 네트워크에서 시간 동기화 방법 및 예약 기법을이용한 저전력 라우팅 방법, 그리고 이를 수행하기 위한장치
US9980207B2 (en) Delayed response to requesting device
JP2017518670A (ja) 無線メッシュネットワークにおいてパケットストームの時間長さを短縮するための方法及び装置
Ferrari et al. Virtual synchrony guarantees for cyber-physical systems
JP2009206749A (ja) マルチホップ無線ネットワークシステム
JP5836474B2 (ja) 無線通信システム、発信元無線通信装置、宛先無線通信装置および無線通信方法
Kulkarni et al. Energy-efficient multihop reprogramming for sensor networks
Zhao et al. Approximation algorithms for broadcasting in duty cycled wireless sensor networks
WO2009008681A2 (en) Time synchronization and routing method in wireless sensor network, and apparatus for enabling the method
KR102118254B1 (ko) LoRa 기반 멀티 홉 통신 프로토콜 장치 및 방법
CN109743140B (zh) 基于低功耗广域网的通讯控制方法和装置
JP5128353B2 (ja) 無線ノードシステム、無線ノードおよび無線ノード同期方法
US20220232449A1 (en) Method of Waking up a Mesh Node in a Wireless Mesh Network as Well as a Related Mesh Node and a Computer Program Product
JP2013207428A (ja) ブロードキャストパケット転送方法、通信ユニット、およびブロードキャストパケット転送プログラム
JP2015188140A (ja) ノード装置、ゲートウェイ装置、センサネットワークシステムおよびデータ転送方法
JP5617929B2 (ja) 無線局、通信システムおよび通信方法
KR100904130B1 (ko) Usn 환경에서의 노드간 동기화 및 네트워크 자동 재구성방법
Lanigan et al. Disseminating code updates in sensor networks: Survey of protocols and security issues
CN112806054A (zh) 在无线网络中通信
JP6218993B2 (ja) 無線通信装置および無線通信方法
JP2008099074A (ja) データ送信スケジューリング方法およびそれを用いたセンサネットワークシステム
JP2006140784A (ja) 中継無線通信装置、送信無線通信装置、無線通信システム及び起動制御方法並びにコンピュータプログラム、その記録媒体

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant