지돌이의 블로그 입니다!

임베디드기기/LoRa 통신 +2

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


여러 정보들...


p.10



p.84



p.25

Bandwidth가 작으면 크리스탈의 정밀도로는 사용이 힘든가 봅니다.

저는 SX1276모듈을 직구로 구매해논 상태이고

NT3225SA이란 TCXO(32MHz, +-2.5ppm, clipped sine wave?)또한 구매해논 상태입니다.

배송되려면 2주는 걸리겠네요...ㅠㅠ


p. 27


4.1.1.2. 확산 인자

확산 스펙트럼 LoRaTM 변조는 다수의 정보 칩에 의해 페이로드 정보의 각 비트를 표현함으로써 수행된다. 확산 정보가 전송되는 속도는 심볼 레이트 (Rs)로 지칭되고, 공칭 심볼 레이트와 칩 레이트 사이의 비율은 확산 인자이며, 정보 비트 당 전송 된 심볼의 수를 나타낸다.


확산 계수, SpreadingFactor는 서로 다른 확산 인자가 서로 직교하기 때문에 링크의 송신 측과 수신 측에서 미리 알려 져야합니다. 수신기 입력에서 필요한 결과 신호 대 잡음비 (SNR)도 참고하십시오. LoRa 수신기의 감도를 높이는 네거티브 SNR (즉, 링크 예산 및 범위)을 갖는 신호를 수신하는 기능입니다


* Chips/symbol이 뭔지 몰라서 찾아봤는데 좋은 자료가 있네요.

http://www.ktword.co.kr/abbr_view.php?m_temp1=2337


Chips / symbol이 높을 수록 SNR이 좋아지는데

1개의 심볼(1개의 데이터? bit?)을 구성하는 chip(변화하는 파형)이 많으니 더 노이즈에 강해지게 됩니다.


ADC나 DAC의 resolution과 비슷한거 같습니다,


예를 들어

0 -> 0

1 -> 10

2 -> 20

3 -> 30

이렇게 변환된다고 할 때

2란 값을 20으로 변조시켜서 전송할 때 중간에 노이즈가 껴서 13이란 값이 수신되어도 2일 확률이 놓습니다.


그런데

0 -> 0

1 -> 5

2 -> 10

3 -> 15

이렇게 변환된다면

2란 값을 10으로 변조시켜서 전송할 때 중간에 노이즈가 껴서 13이 수신되면 2인지 3인지 불확실해 집니다.


뭐... 대충 이런 비유로...^^



p.28

신호 대역폭이 증가하면 더 높은 유효 데이터 전송률을 사용할 수 있으므로 전송 시간이 줄어들어 감도가 향상됩니다. 물론 대부분의 국가에서 허용되는 점유 대역폭에 대한 규제가 있습니다. 단일 측 파대 대역폭의 관점에서 설명 된 FSK 모뎀과 달리, LoRaTM 모뎀 대역폭은 양측 대역폭 (또는 전체 채널 대역폭)을 의미합니다. 대부분의 규제 상황과 관련된 대역폭의 범위는 LoRa ™ 모뎀 사양 표 (2.5.5 절 참조)에 나와 있습니다.



LoRa 통신에 관한것

p.114


우선

* RegSyncWord

SX1276에 FSK모드일 경우 SyncWord는 최대 8bytes인데 LoRa모드일 경우 1byte의 SyncWord을 지원한다.

0x34는 LoRaWAN Network용으로 예약되어 있으니

LoRaWAN규격을 사용하려면 0x34로 설정하고 다른 프로토콜을 사용하려면 다른 값을 사용하면 된다.

(SyncWord가 정해진 값과 일치해야만 데이터를 수신한다.)



SZ1276제어를 위한 MCU필요 조건

http://www.semtech.com/images/datasheet/an1200_28_lorawan_mcu_specification_v2.pdf

LoRaWAN이라고 써져 있지만 쨋든 LoRa을 사용하려면

DIO0과 DIO1을 MCU의 IRQ포트에 연결해야 한다.(? 이거 없음 안되나...?)

DIO0 : TxDone, RxDone

DIO1 : RxTimeout

Datasheet p.69을 참고하길 바란다...

뭐.. 이런 부분은 나중에 차차 알아갈 예정이다..



추가 관련 자료들

http://www.semtech.com/wireless-rf/rf-transceivers/sx1276/

LoRa Calculator Tool을 이용하면 SF, BW, payload length등을 통해 데이터 전송시 Time on air와 Sensitivity 등을 알 수 있다.



갈길이 멀다....ㅠㅠ 빨리 산넘고 바다건너 SX1276과 STM32모듈이 오길...

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

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

Comment +0

데이터 쉬트 : 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
[LoRa] LoRa Packet Structure  (0) 2016.12.30

Comment +0