IoT Wireless

[솔루엠 LoRa 모듈] AT+SEND NOK 메시지 처리 본문

IoT 오픈 하우스

[솔루엠 LoRa 모듈] AT+SEND NOK 메시지 처리

DH0815 2017. 3. 7. 10:42

1.  Confirmed/Unconfirmed 데이터

LoRa에서의 데이터는 Confirmed 데이터와 Unconfirmed 데이터로 나뉜다.

단말이 Gateway(기지국)에 보내는 Uplink 데이터도 Confirmed 데이터와 Unconfirmed 데이터로 나뉘는데, Confirmed Uplink 데이터는 Gateway(기지국)에게 Ack를 요청하는 데이터이고, Unconfirmed Uplink 데이터는 Ack를 요청하지 않는 데이터이다.




아래는 SKT LoRa 모듈 기술 요구 사항에 있는 Uplink 데이터에 대한 동작 설명이다.


구분

모듈 재전송 회수

N/W 재전송 회수

Confirmed Up

8

ConfirmedUpNbReTrans 메시지에 메시지에 의하여 의하여 설 정

Unconfirmed Up

1

LinkADRReq 메시지내의 Nb Trans(0~8) Field를 활용하여 설정

, NBTrans=0이면 단말 설정대로 동작 함. Default NbTrans=0

위의 표에 언급된 것처럼, Confirmed Uplink 데이터는 일정한 시간 동안 Gateway로부터 Ack를 받지 못했을 때, 8회까지 재전송을 진행하고, Unconfirmed Uplink 데이터는 Ack를 요구하지 않은 채, 1회 전송을 한다.

, 모듈 재전송 회수는 AT 명령어에 의해 변경이 가능하다.

 

참고로, AT+SEND 명령을 이용하여, Confirmed Uplink 데이터를 보냈을 때, 열악한 무선 환경 등의 이유로 모듈 재전송이 8회 동안 이루어 진다면, 이는 최대 1분 이상의 시간이 소요될 수 있다.



2.  AT+SEND NOK 메시지

 

솔루엠 LoRa 모듈에서 Confirmed로 데이터를 보내고, LoRa 모듈은 Gateway로부터 Ack를 기다린다. 이 때, LoRa 모듈은 Gateway로부터 Ack를 받기 전까지 LORAMAC_STATUS_BUSY 상태가 되었다가 Gateway로부터 Ack를 받으면, 다시 (정상적인 데이터 전송이 가능한) LORAMAC_STATUS_OK 상태로 전이된다.

 

(1)   LORAMAC_STATUS_OK : AT+SEND 명령으로 데이터 전송이 가능한 상태

(2)   LORAMAC_STATUS_BUSY : AT+SEND 명령으로 데이터 전송이 불가능한 상태

                                        , 기존의 AT+SEND 명령이 완료되지 않은 상태




그런데, 현재의 LoRa 모듈이 LORAMAC_STATUS_BUSY 상태일 때, AT+SEND 명령어 등으로 LoRa 모듈에 데이터 전송을 시도하면, LoRa 모듈에서 AT+SEND NOK 메시지가 발생한다.

다시 말하면, AT+SEND NOK 메시지는 LoRa 모듈이 기존의 전송 작업이 끝나지 않은 상태(LoRaMac status is busy)에서 새로운 전송 동작을 요구 받을 때, 발생하는 메시지이다.


3. AT+SEND 사용시 주의 사항 

원칙적으로 LoRa 모듈을 사용하여 데이터를 전송할 때에는, 현재 LoRa 모듈의 LoRaMAC 상태를 인지해서, LoRaMAC 상태가 정상적일 때에만 데이터를 전송하는 것이 필요하다.

, 사용자는 AT+SEND 명령을 사용한 후에, 반드시 RxDone을 확인하거나 재전송 회수만큼의 TxDone 메시지를 확인 한 후에, AT+SEND를 해주어야 한다.

(여기서 RxDoneGateway로부터 Ack를 받았다는 것을 의미한다.)

 

그런데, 만약 단말이 AT+SEND 명령을 이용하여, Uplink Confirmed 데이터를 보내고, 예기치 않은 상황에 의해서, 정상적인 Ack 데이터를 받지 못하게 된 경우 등에는 LoRa 모듈은 LORAMAC_STATUS_BUSY 상태에서 영원히 빠져 나오지 못하는 경우도 발생할 수 있다.

이렇게 되면, 모든 AT+SEND 명령에 대해서 AT+SEND NOK만 응답하게 되는 상황이 된다.

이 때에는 LoRa 모듈을 AT 명령어나 리셋 핀을 사용하여 강제적으로 리셋시키는 방법 외에는 없다.

정리하면, AT+SEND 명령을 보냈을 때, AT+SEND NOK 메시지가 반복적으로 수회 이상 나오면, LoRa 모듈을 리셋해야 한다.

 

참고로, Confirmed Uplink DataUnconfirmed Uplink Data를 비교해보면 아래와 같다.

 

 

Pros

Cons

Confirmed Uplink 


전송 성공 여부를 정확히 알 수 있음


AT+SEND 명령 후의 응답과 최대 8


동안의 재전송 로그 분석을 해야 함

Unconfirmed Uplink


AT+SEND 명령 후의 응답 분석 용이


(대부분 성공)


전송 성공 여부를 정확히 알 수 없음