浅谈LoRa与LoRaWAN
LoRa是semtech公司创建的低功耗局域网无线标准,低功耗一般难以覆盖远距离,远距离一般功耗高,似乎很难不吃草就跑得远。
LoRa名字是远距离无线电(Long Range Radio),它最大的特点是在相同的功耗条件下,它远离其他无线传输,实现了低功耗和远距离的统一。在相同的功耗下,它比传统的无线射频通信距离扩大了3-5倍。
相应的无线广域网通信技术包括:GPRS、NB-IoT、Sigfox,对应的无线局域网通信技术包括:RFID(射频识别),蓝牙,ZigBee(紫峰技术),WiFi。
① LoRa该技术可以在移动信号无法覆盖的区域通信,Sigfox(依靠移动服务提供商的基站设备)等一些技术无法实现,试想在没有信号、没有网络、没有基站的地方通信是否绝望,LoRa还有LoRa基站和硬件设备的成本比Sigfox, NB-IoT等一些其他技术要低。 ②LoRa该技术又称扩频调制技术Chirp该技术是调制Semtech公司独有的IP。扩频技术是用带宽换取灵敏度的技术,Wi-Fi,ZigBee所有这些都使用了扩频技术,但是LoRa调制的特点是接近香农定理的极限,最大限度地提高灵敏度。相比于传统FSK在相同的通信速率下,技术,LoRa比FSK灵敏度好8~12dBm。 ③LoRa除了灵敏度的优点,实现远距离传输的另一个因素是超抗干扰能力。LoRa噪音低于20dB抗干扰能力仍然可以通信。 ④LoRa调制具有不依赖窄带、重传、编码冗余的特点,调制效率高,工作电流很低,静态电流<1uA;接收电流<5mA;发射功率17dBm时电流只有45mA。 ⑤LoRa有信道活动检测(CAD)功能,即监控附件是否有指定的频率和扩频因子LoRa信号,重要的是该唤醒信号可以低于噪声(有效的避免误唤醒)。LoRa CAD整个过程需要两个Symbol其中一个时间Symbol接收,1个Symbol时间用于计算,电流只是接收时的一半。 ⑥抗多径效应: 在高层建筑众多的大城市中,多径效应非常明显传输点之间有许多无线路径(衍射、反射等)。由于多径叠加,信号会严重失真。测试后,LoRa在这种环境下仍能保持稳定的传输。 ⑦抗多普勒效应: 移动物体会带来多普勒频移,频移对无线接收器提出了巨大的挑战。例如,在高铁350km/h速度为900Mhz频段信号带来约±300Hz中心频率偏差。LoRa多普勒频移导致接收机LoRa脉冲中的频移在基带信号的时间轴中引入相 对于可忽视的频移。LoRa移动速度超过第三宇宙速度16.7km/s,多普勒效应可能带来的问题不需要考虑在地球上。
传输距离:城镇可达2-5 Km , 郊区可达15 Km 。 工作频率:ISM 频段 包括433、868、915 MH等。 工作模式:适用于无需连续发送数据包、环境恶劣、无法覆盖移动信号的场合。 调制方法:基于扩频技术,线性调制扩频(CSS)有前向纠错的变种(FEC)能力,semtech公司私有专利技术。 容量:一个LoRa网关可以连接数千个LoRa节点。 安全:AES128加密。 传输速率:几百到几十Kbps,传输距离越低,速率越长。
目前实现 LoRa 的硬件有 Semtech 的 SX1272/76/78/79 该系列通常用作节点端 SX1301、SX1255 通常用作网关端。
LoRa是低功耗广域网通信技术中的一种,是Semtech基于扩频技术的超远距离无线传输技术是公司专有的。有资料认为相当于 OSI 中的 Physical Layer(物理层)(Inthe OSI reference stack model, LoRa would be on the Physical Layer.),它是一种射频通信技术,可以实现点对点通信,是低功耗广域网通信技术之一。
而 LoRaWan 的位置是在 MAC Layer(链路层),是的LoRa一套远程通信网络设计的通信协议和系统架构是应用 LoRa 通信技术实现了一种更先进的通信协议,它将终端设备按星网组网,可实现设备入网管理、数据加密、速度控制等。 上图是LoRaWan网络架构图,LoRaWAN网络实体分为四部分: 终端节点,网关,LoRaWAN服务器和用户服务器。 其中: End Node: 终端节点通常是数据采集、开关控制等各种传感器 。 Gateway: LoRa网关封装转发收集到的节点数据 。 NetworkServer: 主要负责上下数据包的完整性验证、设备的入网激活、应用数据的加解密。 ApplicationServer: 主要负责数据分析和用户下行数据的发送端 。
LoRa网关用于远距离星型架构,是多信道、多调制收发、可多信道同时解调。网关作为一个透明网桥在终端设备和中心网络服务器间中继消息。网关通过标准IP连接到网络服务器,终端设备使用单播的无线通信报纸到一个或多个网关。 其实LoRaWan这不是一个完整的通信协议,因为它只定义了物理层和链路层、网络层和传输层、功能不完善、漫游、网络管理等通信协议的主要功能。
根据协议的规定 Class A/B/C 这三种设备基本上涵盖了物联网的所有应用场景。CLASSA/B/C如下表所示:
整体和TCP/IP协议中的数据包类似于包装格式,从应用层包装到物理层,上层的整个部分作为下层Payload,每一层基本上都有自己的头、验证和发送,最后由物理层包装和发送。接收端是一个反过来的过程,它将逐层剥离数据帧,最后由应用层分析数据。
LoRa显性模式和隐形模式有两种包型。显性模式下有两种包型。Header部分,没有隐形模式。 Preamble:用于保持接收器与输入的数据流同步。默认为12个符号长度,LoRaWAN使用8个符号长度。前导长度是可以通过编程设置的变量,因此可以扩展前导码的长度。接收机的前导码长度应与发射机一致。若前导码长度未知或可能发生变化,则应将接收机的前导码长度设置为最大值。地址过滤可以通过设置前导码值来实现分组通信。
Header:包含的信息包括,Payload字节数、编码率、是否打开Payload CRC。LoRaWAN使用显性模式,这三个内容需要在通信的两端手动配置。 Payload:真正发送的数据。 Payload CRC:对Payload的CRC校验,2个字节。
* DevEUI(设备唯一的标识符, Server与Node预先存储) * AppEUI(应用唯一的标识符, Server与Node预先存储) * AppKey(Server和Node一切都要提前存好, 用于对join_accept message还有加解密node用于生成AppSKey和NwkSKey) * DevNonce(可以由LoRa芯片的RSSI随机值) *NetID七个最低有效位称为NwkID,即DevAddr七个最高有效位。相邻或重叠网络的区域NwkID不能相同。相邻或重叠网络的区域NwkID不能相同。余下的17个最高有效位由网络运营商自由分配。
入网请求包格式 入网接收包格式
* DevAddr:设备短地址,类似IP地址。 * DLSettings:低4位表示RX2的速率,高4位表示RX1.速率偏移。 * RxDelay:设置从发送到打开RX窗口的时间。 * CFList:服务器将信道列表带到终端。每个通道占用三个字节,最多5个通道
这种方法简单粗暴,直接配置 DevAddr,NwkSKey,AppSKey 这三个LoRaWAN最终通讯的参数,不再需要join流程。在这种情况下,该设备可以直接发送应用数据。
OTAA终端需要将服务器发送到服务器JoinRequest请求,即入网请求,服务器处理完入网请求后会发送到终端JoinAccept,即入网响应,终端成功接收服务器发布的服务器JoinAccept之后,OTAA此时终端成功入网,此时OTAA终端可以从JoinAccept中计算出DevAddr、NwkSkey和AppSkey这三个加密参数。有了这三个加密参数,终端就可以正常工作了。
对于ABP对于终端,我们直接有三个加密参数DevAddr、NwkSkey和AppSkey配置给了ABP终端,ABP这三个加密参数可以直接用于终端工作。ABP在终端成功发送第一个数据后,我们认为ABP终端入网成功。
OTAA在获得相应的三个加密参数之前,终端需要执行一个入网过程DevAddr、NwkSkey和AppSkey;并且OTAA这三个加密参数网操作,这三个加密参数都会随机变化。
ABP三个终端直接配置加密参数DevAddr、NwkSkey和AppSkey,也就是说对于ABP终端这三个加密参数是永远不会改变的。对于OTAA终端我们可以根据需要在适当的时候重新执行入网操作,动态更改加密参数。
这是Class A 上下行的时序图,目前接收窗口RX1一般是在上行后1秒开始,接收窗口RX2是在上行后2秒开始。 Class C 和 A 基本是相同的,只是在 Class A 休眠的期间,它都打开了接收窗口RX2 Class B 的时隙则复杂一些,它有一个同步时隙beacon,还有一个固定周期的接收窗口ping时隙。如这个示例中,beacon周期为128秒,ping周期为32秒
LoRaWAN规定数据帧类型有 Confirmed 或者 Unconfirmed 两种,即需要应答和不需要应答类型。厂商可以根据应用需要选择合适的类型。
另外,从介绍中可以看到,LoRaWAN设计之初的一大考虑就是要支持应用多样性。除了利用 AppEUI 来划分应用外,在传输时也可以利用 FPort 应用端口来对数据分别处理。FPort 的取值范围是(1~223),由应用层来指定。
MCPS: MAC Common Port Sublayer;数据传输和数据接收;
MLME: MAC Layer Management Entity;管理LoRaWAN网络;
SNR(信噪比) :信号和噪声的比值,计量单位是dB,其计算方法是10lg(PS/PN)。根据计算公式可知,SNR小于0时表示信号功率小于噪声功率,SNR大于0时表示信号功率大于噪声功率。
RSSI(接收信号强度指示): 即接收灵敏度(单位为dBm)。在纯净环境下,RSSI值与距离是一个非线性曲线的关系,所以路测时在一定距离内RSSI值有参考价值,过距离后基本没有参考价值。
扩频因子(SF): 扩频调制技术采用多个信息码片来代表有效负载信息的每个位。扩频信息的发送速度称为符号速率(Rs),而码片速率与标称符号速率之间的比值即为扩频因子,其表示每个信息位发送的符号数量。Rs = BW/2^SF。LoRaTM调制解调器中扩频因子的取值为6时,LoRa的数据传输速率最快;
编码率(CR) :编码率,是数据流中有用部分的比例。也就是说,如果编码率是k/n,则对每k位有用信息,编码器总共产生n位的数据,其中n-k是多余的。LoRa采用循环纠错编码进行前向错误检测与纠错。
EIRP(Effective Isotropic Radiated Power): 有效全向辐射功率。在LoRa上,每个地区规定的最大EIRP值是不一样的,EIRP = P(LoRa芯片发送功率) + G(天线增益) – Loss(损耗)。
MIB:MAC Information Base;存储重要的运行时信息并保存LoRa MAC层的配置;
BW:扩频调制带宽; 增加带宽,可以提高有效数据速率以缩短传输时间,但是会牺牲接收灵敏度。
纠错编码: 提高纠错编码率,会产生额外的传输开销,但是会提高链路的可靠性。编码率可以随着信道条件的变化而变化。
CAD: Channel Active Detect,信道活动检测器;信道活动检测模式旨在以尽可能高的功耗,检测无线信道上的LoRa前导码。CAD检测时长为扩频因子的函数。
ADR:Adaptive Data Rate; 如果ADR打开,服务器可以通过MAC命令控制设备的速率,已匹配当前的网络情况,达到最优传输效果。如果ADR=0,服务器无视收到的信号质量,不对终端数据速率进行调整。 如果终端的数据速率经过服务器优化比默认值大,那节点就要定期检查保证服务器能够收到上传的数据。 终端上行的帧号每增加一次(重复发送不增加帧号)的同时,ADR_ACK_CNT + 1。ADR_ACK_DELAY 时间之内收到下行消息:ADR_ACK_CNT = 0(重置)。否则ADR_ACK_CNT 继续根据前面规则处理 。ADR_ACK_CNT >= ADR_ACK_LIMIT(一共用时:ADR_ACK_LIMIT + ADR_ACK_DELAY)就切换到更低的数据速率上(无线广播范围的距离更长)重复上述过程,每次终端设备达到 ADR_ACK_LIMIT 就会再次降低自己的数据速率。如果设备使用默认的数据速率就不需要设置 ADRACK Req ,这种情况下任何操作都不会改善连接范围(增加连接距离)。在此期间的下行数据不需设置ACK位,因为终端在等待接收期间收到任何应答都表示网关还能接收来自该设备的上行数据。
当然想要实现LoRaWAN整个通信框架的内容,了解这些资料远远不够,除了终端节点的开发,还需要开发网关,以及云平台服务器的开发等。
注:以上内容有部分内容为其他博主原创,如有侵权,请联系本博主。