LoRaWAN의 기본 프레임의 구조는 아래 그림과 같다.
그림 1-9 LoRaWAN Frame Format
Mac Header의 구성은 아래 그림과 같으며, MType 과 Major version으로 구성이 된다.
그림 1-10 LoRaWAN Mac Header field
MAC Frame의 MHDR(MAC Header)에 정의된 MType(MAC Type)은 상위 3 bits를 사용하여 총 8가지 프레임 타입을 결정할 수 있으며, 이 값
에 의해서 네트워크 Join Request, 네트워크 Join Accept(Join Response) 및 일반 MAC Payload Format을 가지는 프레임으로 구분할 수 있다. 표준에서는 아래 표와 같이 총 8가지의 LoRaWAN 메시지를 정 의하고 있으며 Join Request와 Join Response를 제외한 나머지는 데이 터 전송에 사용이 된다. Unconfirmed data 같은 경우 추가적인 ACK 메 시지 요청이 없는 데이터 전송에 사용이 되고 confirmed data의 경우 ACK 메시지 요청 시 사용이 된다. Major version은 2 bits 가 할당되 어 있으며, 현재 사용 중인 LoRaWAN R1을 전달하는데 사용이 된다. 나 머지 3 bits(4..2)는 아직 기능이 할당되어 있지 않다.
MType Description MType Description
000 Join Request 001 Join Accept
010 Unconfirmed Data Up 011 Unconfirmed Data Down
100 Confirmed Data Up 101 Confirmed Data Down
110 RFU 111 Proprietary
표 1-4 LoRaWAN Message Type
그림 1-9 에서 확인한 FHDR(프레임 헤더)는 “device address”,
“frame control”, “frame counter” 및 “frame option field”로 구성이 된다. Device address는 총 4바이트의 값으로 구성되며, 상위7
bits는 network ID, 하위 25 bits는 device ID 값으로 구성이 된다.
Device address는 원래 단말이 가지는 네트워크 ID 및 IEEE EUI64 주 소 대신 사용되는 값으로 긴 주소를 축약한 버전이다. Frame counter 값은 LoRaWAN Message Type에 의해서 LoRaWAN End Device에서 LoRaWAN Network Server로 전달되는 uplink frame counter또는 LoRaWAN Network Server에서 LoRaWAN End Device로 전달되는 downlink frame counter 값을 의미한다. 16 bits 또는 32 bits의counter 값을 사용할 수 있으며, 32 bits를 값을 사용할 경우 하위 16 bits의 값으로 표현 이 된다. LoRaWAN End Device는 재전송의 경우를 제외하면 서로 다른 frame counter 값을 가져야 한다. Frame control은 uplink와 downlink 에 따라서 아래 그림들과 같이 서로 다른 의미를 나타낸다.
그림 1-11 Frame Control for Downlink
그림 1-12 Frame Control for Uplink
최상위 bit (7번 bit)는 ADR(Adaptive Data Rate)의 수행 주체 정 보를 나타내며, ADR이 set된 경우에는 LoRaWAN Network Server에서 LoRaWAN End Device의 데이터 전송 속도를 조절하게 된다. 반대로 unset의 경우 각각의 LoRaWAN End Device는 스스로 데이터 전송 속도
를 조절하게 된다.
두 번째 bit (6번 bit)는 LoRaWAN End Device 에서 ADR을 요청 시 LoRaWAN Network Server에 해당 메시지 수신 확인을 요청하는 필드로 Downlink에는 존재하지 않으며, 오직 Uplink에만 존재하게 된다. 해당 메시지는 Downlink에서 일정 기간 동안 ADR이 수행되지 않았을 경우 ADR 요청 확인을 위해서 사용되는 값으로 LoRaWAN End Device의 ADR_ACK_CNT (Adaptive Data Rate Acknowledgement Count) 값이 ADR_ACK_LIMIT (Adaptive Data Rate Acknowledgement Limit) 값보다 커지게 되면 ADR을 수행하기 위해서 전달이 된다.
세 번째 bit (5번 bit)는 confirmed 요청을 받은 메시지의 수신 확인을 위해서 사용되는 bit이다. 해당 bit를 통해서 기존에 수신된 메시지의 ACK 정보를 전달하게 되며, 전송될 데이터가 있는 경우 해당 메시지의 ACK bit 를 설정하여 전달하고, 메시지 전달이 없는 경우는 비어 있는 페이로드(empty payload) 메시지를 활용하여 전달하게 된 다. ACK 메시지는 재전송을 하지 않는다. Confirmed 메시지를 사용하 며 송신을 한 경우 ACK 메시지를 기다리게 되며, 해당 메시지 미 수신 시 재전송 과정을 거치게 된다.
네 번째 bit (4번 bit)은 LoRaWAN Gataway에서 LoRaWAN End Device로 전달해야 할 데이터가 대기하고 있는 경우 downlink 프레임 에 frame pending (FPending) bit를 설정하여 전달하게 되며, 해당 메 시지를 수신하게 된 LoRaWAN End Device는 추가적인 uplink를 전송하 게 됨으로써 추가 메시지를 수신하게 된다.
그림 1-13 데이터 재전송 및 frame pending 처리 방법
위 그림은 LoRaWAN Class A를 사용하는 시스템에서 LoRaWAN End Device와 LoRaWAN Gataway 사이에서 데이터를 주고받으면서 ACK 및 Pending 메시지를 처리하는 방식에 대한 예시이다. 최초 LoRaWAN End Device에서 Uplink 데이터를 LoRaWAN Gateway로 전송하게 되면, 해당 프레임을 처리한 LoRaWAN Gateway는 LoRaWAN End Device로 데이터 전 송을 하는데 confirmed data (Data 1)로 전송하게 된다. 이때 LoRaWAN
Gateway 추가적으로 전송해야 하는 데이터가 있는지 확인 후 추가적인