LoRa基础

一.LoRa技术

LoRa 是LPWAN通信技术中的一种,是美国Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输方案。这一方案改变了以往关于传输距离与功耗的折衷考虑方式,为用户提供一种简单的能实现远距离、长电池寿命、大容量的系统,进而扩展传感网络。

LoRa技术具有远距离、低功耗(电池寿命长)、多节点、低成本的特性。

1)LoR调制

LoRa (Long Range,远距离)是一种调制技术,与同类技术相比,提供更长的通信距离。调制是基于扩频技术,线性调制扩频(CSS)的一个变种,具有前向纠错(FEC)。LoRa显著地提高了接受灵敏度,与其他扩频技术一样,使用了整个信道带宽广播一个信号,从而使信道噪声和由于使用低成本晶振而引起频率偏移的不敏感性更健壮。

LoRa调制是PHY,LoRaWAN是MAC协议,是为LoRa远距离通信网络设计的一套通讯协议和系统架构,用于大容量远距离低功耗的星型网络。

目前,LoRa 主要在全球免费频段运行,包括433MHz、470-510MHz、780MHz、868MHz、915MHz等,国内一般用470-510MHz频段。

2)Lora组网

LoRa网络主要由终端(内置LoRa模块)、网关(或称基站)、网络服务器以及应用服务器组成。应用数据可双向传输。

 

LoRaWAN网络架构是一个典型的星形拓扑结构,在这个网络架构中,LoRa网关是一个透明传输的中继,连接终端设备和后端中央服务器。终端设备采用单跳与一个或多个网关通信。所有的节点与网关间均是双向通信。

2)Lora终端

LoRa的终端节点可能是各种设备,比如水表气表、烟雾报警器、宠物跟踪器等。这些节点通过LoRa无线通信首先与LoRa网关连接,再通过3G网络或者以太网络,连接到网络服务器中。

LoRa网络将终端设备划分成A/B/C三类:

Class A:双向通信终端设备。这一类的终端设备允许双向通信,每一个终端设备上行传输会伴随着两个下行接收窗口。终端设备的传输时隙是基于其自身通信需求,其微调基于ALOHA协议。

Class B:具有预设接收时隙的双向通信终端设备。这一类的终端设备会在预设时间中开放多余的接收窗口,为了达到这一目的,终端设备会同步从网关接收一个Beacon,通过Beacon将基站与模块的时间进行同步。

Class C:具有最大接收窗口的双向通信终端设备。这一类的终端设备持续开放接收窗口,只在传输时关闭。

企业接入网关充当Gateway角色,通过USB或SPI等接口与内嵌的Lora模块(内置LoraWAN协议)通信,实现对Lora的支持。Lora模块通过USB连接企业网关时,Lora模块(或USB接口)被虚拟化为SPI设备,企业网关系统通过调用libMPSSEI库实现与Lora模块通信。

二.LoRaWAN应用

参考:LoRaWAN简介

终端节点的加网

  搞明白了基础概念之后,就可以了解节点如何工作了。在正式收发数据之前,终端都必须先加网。

  有两种加网方式:Over-the-Air Activation(空中激活方式 OTAA),Activation by Personalization(独立激活方式 ABP)。

  商用的LoRaWAN网络一般都是走OTAA激活流程,这样安全性才得以保证。此种方式需要准备 DevEUI,AppEUI,AppKey 这三个参数。

  DevEUI 是一个类似IEEE EUI64的全球唯一ID,标识唯一的终端设备。相当于是设备的MAC地址。

  AppEUI 是一个类似IEEE EUI64的全球唯一ID,标识唯一的应用提供者。比如各家的垃圾桶监测应用、烟雾报警器应用等等,都具有自己的唯一ID。

  AppKey 是由应用程序拥有者分配给终端。

  终端在发起加网join流程后,发出加网命令,NS(网络服务器)确认无误后会给终端做加网回复,分配网络地址 DevAddr(32位ID),双方利用加网回复中的相关信息以及AppKey,产生会话密钥NwkSKey和AppSKey,用来对数据进行加密和校验。

  如果是采用第二种加网方式,即ABP激活,则比较简单粗暴,直接配置DevAddr,NwkSKey,AppSKey 这三个LoRaWAN最终通讯的参数,不再需要join流程。在这种情况下,这个设备是可以直接发应用数据的。

数据收发

  加网之后,应用数据就被加密处理了。

  从介绍中可以看到,LoRaWAN设计之初的一大考虑就是要支持应用多样性。除了利用 AppEUI 来划分应用外,在传输时也可以利用 FPort 应用端口来对数据分别处理。FPort 的取值范围是(1~223),有应用层来指定。

ADR 机制

  我们知道LoRa调制中有扩频因子的概念,不同的扩频因子会有不同的传输距离和传输速率,且对数据传输互不影响。

  为了扩大LoRaWAN网络容量,在协议上了设计一个LoRa速率自适应(Adaptive data rate - ADR)机制,不同传输距离的设备会根据传输状况,尽可能使用最快的数据速率。这样也使得整体的数据传输更有效率。

MAC命令

  针对网络管理需要,在协议上设计了一系列的MAC命令,来修改网络相关参数。比如接收窗口的延时,设备速率等等。在实际应用过程中,一般很少涉及,暂时不管。

三. LoRa网络参数

配置信息

参数范围/默认值

功能说明

发射功率

8/11/14/17/20dBm

端口输出,未包含天线增益。

收发频点

470.3~487.9MHz

间隔1.6MHz

接收起始频点,支持8个频点,每个频点间隔200KHz,8个频点分别是:

475.1/475.3/475.5/476.7/476.9/476.1/476.3/476.5

频宽

125KHz

频宽固定,不可修改。

网关和终端设备在不同的时隙可以采用同一频率信道进行传输,这就是TDD(时分双工)传输。

数据速率和最大数据包大小基本上取决于最近的网关距离和要发送的数据类型,它并且在每个区域的规范中也有定义。与欧洲的 863-870MHz 频段类似,应用程序数据包大小在最慢的数据速率 51 字节和较快的数据速率 222 字节之间变化。注意,LoRaWAN 协议向应用程序负载至少添加了 13 个字节。SF12 或 SF11 固定硬编码数据速率的设备是不允许接入网络的。

GW1 低频支持 2 个频段,分别是 CN433MHz 和 CN470MHz。发射功率最大支持 20dBm,五档可调节,每档之间步进 3dBm,分别为 20dBm、17dBm、14dBm、11dBm、8dBm。无线通信速率分6档可配置,分别是DR0(SF12)、DR1(SF11)、DR2(SF10)、DR3(SF9)、DR4(SF8)、DR5(SF7),每个信道对应的最大通信速率分别是250bps、440bps、980bps、 1.76kbps、3.125kbps、5.47kbps。通信速率越高,接收灵敏度越低,传输距离越近,反之,传输距离越远。为了获取最佳通信质量,常规应用建议根据环境的复杂程度,以2-5公里的通信距离做部署。

通信时必须信道和速率一致:

速率: 数据传输速率,参数单位为 Kbps。数值越大则传输速度越快,相应的,传输距离越近。数值越小则传输速度越慢,相应的,传输距离越远。

信道: 数据传输信道,398~525Mhz,带宽为 1Mhz,均分为 1~127 共 127 个信道,每个信道的频率计算方法为信道编号+398Mhz,例如 2 号信道的频率为 2+398=400Mhz。

具体设计参数可参考“唯传GW5000A产品说明书”:

 

四.LoRa市场方案

Semtech拥有LoRa技术的专利,目前只有Semtech提供LoRa射频芯片。Semtech分别提供了用于终端和网关的芯片,目前Semtech仅提供一款芯片SX1301支持LoRa网关,市场上大部分LoRa网关都基于SX1301开发(极少数厂商网关采用普通终端芯片,终端数量少时可满足基本需求);根据区域使用频段和增益不同,Semtech提供了6款LoRa终端收发芯片。

为了满足网关需求和提高开发速度,企业网关采用内置SX1301网关芯片的模块方案较为合适。硬件方面,模块基于SX1301芯片设计,标准的外置接口为SPI,部分模块提供USB接口,便于配置使用;软件方面,内置LoRaWAN标准协议栈(Semtech提供),便于二次开发。

五.数据手册解析

SX1257是RF数字调制解调器,工作频率862-960MHz。

SX1255工作频率是400-510MHz。

SX1301包含10个可编程接收路径:IF8、IF9、IF0-IF7,共分3类,每类作用和使用不同。

IF8 LoRa Channel

This channel can be connected to Radio A or B using any arbitrary intermediate frequency within the allowed range. This channel is LoRa only. The demodulation bandwidth can be configured to be 125, 250 or 500 kHz. The data rate can be configured to any of the LoRa available data rates (SF7 to SF12) but, as opposed to IF0 to 7, ONLY the configured data rate will be demodulated. This channel is intended to serve as a high speed backhaul link to other gateways or infrastructure equipment. This demodulation path is compatible with the signal transmitted by the SX1272 & SX1276 chip family.

Chapter 3.12 gives a brief overview of the expected system sensitivity in LoRa mode.

这个只能是LoRa信道,带宽可配置为125/250/500kHz,数据速率可配置为SF7~SF12,仅仅配置的数据速率可被解调。

IF9 (G)FSK Channel

Same as previous except that this channel is connected to a GFSK demodulator. The channel
bandwidth and bitrate can be adjusted. This demodulator offers a very high level of configurability, going well beyond the scope of this document. The demodulator characteristics are essentially the same than the GFSK demodulator implemented on the SX1232 and SX1272 Semtech chips. This demodulation path can demodulate any legacy FSK or GFSK formatted signal.

IF0 to IF7 LoRa Channels

Those channels can be connected individually to Radio A or B. The channel bandwidth is 125 kHz and cannot be modified or configured. Each channel IF frequency can be individually configured. On each of those channels any data rate can be received without prior configuration. Several packet using different data rates may be demodulated simultaneously even on the same channel. Those channels are intended to be used for a massive asynchronous star network of 10000’s of sensor nodes. Each sensor may use a random channel (amongst IF0 to 7) and a different data rate for any transmission.

带宽固定为125KHz,不可配置,频率可单独配置,每个信道无需配置情况下可接收任意数据速率数据。

The SX1301 digital baseband chip scans the 8 channels (IF0 to IF7) for preambles of all data rates atall times. The chip is able to demodulate simultaneously up to 8 packets. Any combination of up to 8 packets is possible (e.g. one SF7 packet on IF0, one SF12 packet on IF7 and one SF9 packet on IF1 simultaneously).

The SX1301 can detect simultaneously preambles corresponding to all data rates on all IF0 to IF7 channels. However it cannot demodulate more than 8 packets simultaneously. This is because the SX1301 architecture separates the preamble detection and acquisition task from the demodulation process. The number of simultaneous demodulation (in this case 8) is an arbitrary system parameter and may be set to any value for a customer specific circuit.

接收频率配置

Each IF path intermediate frequency can be programmed independently from -2 to +2 MHz. The following sections give a few programming examples for various use cases.

不是很理解

发送

In TX mode, the SX1301 digital baseband must be connected either to:
1. At least one SX1255 or SX1257
2. Any combination of both radios
Any LoRa or (G)FSK packet may be transmitted on any of the two radios. Only a single packet may be transmitted at any given time. Transmit operation interrupts all current reception operations.

The digital radio interfaces are separated between RX & TX, therefore the SX1301 may accommodate a third party radio front-end for RX operations and any combination of SX1255/57 for TX operation without problem.

LoRa或FSK包可以在任一radio上发送,任何时间只能有一个包发送,发送操作会打断所有当前接收操作

数据速率

 

无线通信速率分6档可配置,分别是DR0(SF12)、DR1(SF11)、DR2(SF10)、DR3(SF9)、DR4(SF8)、DR5(SF7),每个信道对应的最大通信速率分别是250bps、440bps、980bps、 1.76kbps、3.125kbps、5.47kbps。通信速率越高,接收灵敏度越低,传输距离越近,反之,传输距离越远。

信道

根据“lorawan regional parameters v1.1rb”CN470-510的信道划分如下:

 

扩频因子(spreadingFactor

LoRa采用多个信息码片来代表有效负载信息的每个位,扩频信息的发送速度称为符号速率(Rs),而码片速率与标称的Rs比值即为扩频因子(SFSpreadingFactor),表示了每个信息位发送的符号数量。

LoRa扩频因子取值范围:

注意:因为不同的SF之间为正交关系,因此必须提前获知链路发送端和接收端的SF。另外,还必须获知接受机输入端的信噪比。。在负信噪比条件下信号也能正常接收,这改善了LoRa接受机的林敏度,链路预算及覆盖范围。。

理解扩频因子的概念:

通俗的说扩频时你的数据每一位都和扩频因子相乘,例如有一个1 bit需要传送,当扩频因子为1时,传输的时候数据1就用一个1来表示,扩频因子为6时(有6位)111111,这111111就来表示1,这样乘出来每一位都由一个6位的数据来表示,也就是说需要传输总的数据量增大了6倍。

这样扩频后传输可以降低误码率也就是信噪比,但是在同样数据量条件下却减少了可以传输的实际数据,所以,扩频因子越大,传输的数据数率(比特率)就越小。

编码率(CR

编码率,是数据流中有用部分的比例。

编码率(或信息率)是数据流中有用部分(非冗余)的比例。也就是说,如果编码率是k/n,则对每k位有用信息,编码器总共产生n位的数据,其中n-k是多余的。

LoRa采用循环纠错编码进行前向错误检测与纠错。使用该方式会产生传输开销。

每次传输产生的数据开销如下:

在存在干扰的情况下,前向纠错能有效提高链路的可靠性。由此,编码率(抗干扰性能)可以随着信道条件的变化而变化,可以选择在报头加入编码率以便接收端能够解析。

信号带宽(BW

信道带宽(BW)是限定允许通过该信道的信号下限频率和上限频率,可以理解为一个频率通带。比如一个信道允许的通带为1.5kHz15kHz,则其带宽为13.5kHz

LoRa中,增加BW,可以提高有效数据速率以缩短传输时间,但是以牺牲部分接受灵敏度为代价。对于LoRa芯片SX127xLoRa带宽为双边带宽(全信道带宽),而FSK调制方式的BW是指单边带宽。

lora中常用信道带宽125KHz250KHz

六. LoRa协议栈应用

lora协议栈

 

libloragw库应用

1. 安装libftdi-dev、libusb-dev

apt-get -y install git libftdi-dev libusb-dev

2. 安装libmpsse

git clone https://github.com/devttys0/libmpsse.git

pushd libmpsse/src

./configure --disable-python

make

make install

ldconfig

popd

ldconfig

3. 安装libloragw

lora_pkt_fwd应用

lora_pkt_fwd包转发配置文件

有三类JSON配置文件:debug_conf.json,global_conf.json和local_conf.json。

The way the program takes configuration files into account is the following:

>if there is a debug_conf.json parse it, others are ignored

>if there is a global_conf.json parse it, look for the next file

>if there is a local_conf.json parse it If some parameters are defined in both global and local configuration files, the local definition overwrites the global definition.

The global configuration file should be exactly the same throughout your network, contain all global parameters (parameters for "sensor" radio channels) and preferably default "safe" values for parameters that are specific for each gateway (eg. specify a default MAC address).

 

local_conf.json:

   {

 

    "gateway_conf": {

 

        "gateway_ID": "B827EBFFFEEF90A2",

 

        "server_address": "router.cn.thethings.network",

 

        "serv_port_up": 1700,

 

        "serv_port_down": 1700,

 

        "serv_enabled": true,

 

        "ref_latitude": 0,

 

        "ref_longitude": 0,

 

        "ref_altitude": 0

 

    }

 

}

 

TTN网络连接

1. EUI的生成

RAK833-LoRaGateway-RPi的EUI生成方法:取eth0的mac地址的每个字节填充:$1$2$3"FFFE"$4$5$6

在树莓派上是:B827EBFFFEEF90A2

2. LoRa网关注册到TTN网络

注册说明:https://www.thethingsnetwork.org/docs/gateways/registration.html

注册网址:https://console.thethingsnetwork.org/gateways/register

1) 输入网关EUI

2) 输入任何描述

3) 选择频段

4) 选择天线放置

5) 确认单击注册网关

 

如果看到状态已连接,表明注册成功。

 

注:staus是connected,没有实际意义,随便注册一个都是connected,即使设备没有联网。

 

参考:

1. https://www.semtech.com/products/wireless-rf 官网

2. https://github.com/Lora-net github

3. https://lora-alliance.org/resource-hub/what-lorawantm lora联盟官网

4. 唯传官网http://www.winext.cn/3333/

5. lora无线通信 博客

6. 树莓派开发应用 https://github.com/ch2i/LoraGW-Setup

7. 瑞科慧联github   https://github.com/RAKWireless/lora_gateway

https://github.com/RAKWireless/lora_gateway

8. https://item.taobao.com/item.htm?spm=2013.1.0.0.22735b5ef7pGZM&id=568365993747

9. 南京芮捷/南京仁珏(jue) https://item.taobao.com/item.htm?spm=2013.1.w4023-18368433984.16.5abb350cjNRe3O&id=568889272837

https://item.taobao.com/item.htm?spm=2013.1.w4004-18879164550.15.a7d664bea9P1ox&id=578463689267

https://item.taobao.com/item.htm?spm=2013.1.0.0.6b6c3f45hMGrnu&id=566861069196

10.         https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-18583476007.41.5e2077653dfJa9&id=550411690848

11.         http://www.winext.cn/product/product.php?lang=cn&class2=104

12.         LoRa与ZigBee有什么区别? 舜为互联

13.    LoRa学习:LoRa关键参数(扩频因子,编码率,带宽)的设定及解释

posted @ 2019-04-01 21:14  yuxi_o  阅读(3564)  评论(0编辑  收藏  举报