본문 바로가기
임베디드기기/LoRa 통신

[LoRa] LoRa Packet Structure

by Joseph.Lee 2016. 12. 30.

데이터 쉬트 : http://www.semtech.com/images/datasheet/sx1276_77_78_79.pdf

Page. 29,

4.1.1.6. LoRa(TM) Packet Structure


(우선.. 번역은 구글 번역기이다...ㅋㅋ

얼마 전? 몇주 전부터 구글번역기에 인공신경망을 이용한 번역엔진이 적용되어 꽤 유연한 번역이 가능하다.

참고로 파파고가 PC에서 안되는게 흠이지만 모바일에서는 파파고가 최고!ㅋㅋ)




* Preamble

뭐라뭐라 영어가 길다...

별거 없고 그냥 PreambleLength는 6~65535까지 설정 가능한데 전체 PreambleLength는 여기에 +4심볼 한 거란다.


줄친 부분이 중요한데,

수신기는 정기적으로 다시 시작하는 프리앰블 감지 프로세스를 수행하기 때문에 PreambleLength는 송수신기 모두 같아야 한다.

PreambleLength가 알려지지 않거나 변경 될 수있는 경우, 최대 프리앰블 길이는 수신 측에서 프로그래밍되어야한다.

이런 말이다.




* Header

Depending upon the chosen mode of operation two types of header are available. The header type is selected by the ImplicitHeaderModeOn bit found within the RegModemConfig1 register.


헤더... 2가지 모드가 있는데

RegModemConfig1레지스터에 있는 ImplicitHeaderModeOn비트로 설정 할 수 있단다.


* Explicit Header Mode

This is the default mode of operation. Here the header provides information on the payload, namely:

 - The payload length in bytes.

 - The forward error correction code rate

 - The presence of an optional 16-bits CRC for the payload.


* 명시적헤더모드(기본)

 - payload길이는 bytes단위이다.

 - "정방향 오류 정정 부호율" 이라는데.. 그런가보다..

 - payload에 대한 선택적(RxPayloadCrcOn등 으로 CRC을 사용할건지 선택 가능)16-bits CRC가 있다.


The header is transmitted with maximum error correction code (4/8). It also has its own CRC to allow the receiver to discard invalid headers.

헤더는 최대 오류 수정 코드 (4/8)로 전송됩니다. 또한 수신자가 유효하지 않은 헤더를 버릴 수 있도록 자체 CRC가 있습니다.

(4/8 이란건 뭔지 모르겠다... ECC알고리즘 관련된거 같은데..음...

8bit데이터 + 4bit ECC란 건가??)


* Implicit Header Mode

* 암시적헤더모드

또 영어가 길다...

결론만 말하면 이건 그냥 기본 헤더 없이 사용자가 raw으로 데이터를 보내는 것이다.

CRC계산 그런거 안해서 더 빠르단다.

SF = 6을 선택하면 이 모드만 가능하단다.




* Low Data Rate Optimization

LowDataRateOptimize 설정이란게 있는데 (자세한건 읽어보면 되고)

심볼 지속 시간이 16ms이상이면 의무적으로 사용해야 한단다.



일단... 여러 수식이 있다


 

Rs:LoRa symbol rate, BW:Bandwidth(Hz), SF:Spreading Factor



- PL is the number of Payload bytes (1 to 255)

- SF is the spreading factor (6 to 12)

- IH=0 when the header is enabled, IH=1 when no header is present

- DE=1 when LowDataRateOptimize=1, DE=0 otherwise

- CR is the coding rate (1 corresponding to 4/5, 4 to 4/8)







* 주파수 호핑 (FHSS)

RegHopPeriod레지스터에서 FreqGoppingPeriod을 0이 아닌 값으로 설정하면 주파수 호핑이 작동한다.

프리앰블과 헤더는 항상 0번 채널을 통해 전달되고 그 이후 주파수 호핑을 한다.

HoppingPeriod = Ts * FreqHoppingPeriod





오늘은 여기까지..

다행이 SX1276이 꼭 LoRaWAN Protocol을 써야하는건 아닌가보다.


SX1276+STM32 을 이용해 IoT통신장치, SX1276+RaspberryPi 을 이용해 IPv6-LoRa Gateway을 만들 계획이다.

EUI-64처럼 임의로 64bit Device MAC 을 저장해놓고

IPv6 Stack을 만들어서 통신하도록 할 것이다.

반응형

'임베디드기기 > LoRa 통신' 카테고리의 다른 글

[LoRa] SX1276 여러 정보 #1  (0) 2017.01.02

댓글