LoRa模块出现ERROR96的原因

LoRa模块比如RAK4200往往具备易用、小巧、传输距离远、超低功耗等优点,是一种非常好的远距离无线数据传输解决方案,适用于需要远程数据采集和低功耗的各种应用,它遵循LoRaWAN 1.0.2协议,还支持LoRa的点对点通信功能,可帮助用户快速建立他们自己私有的远距离LoRa网络。

 

在实际使用过程中,LoRa模块比如RAK4200在接收数据的过程中,可能出现一种错误提示:ERROR 96。

本文介绍出现这种错误的根本原因,大家如果碰到这种错误,可以一一对比排查出真正导致该问题的原因。

想了解LoRa模块二次开发可参考《LoRa模块二次开发入门篇》、想要了解LoRaWAN网关的覆盖范围可参考文章《LoRaWAN网关在城市环境中的覆盖范围》、想要了解LoRaWAN网关网络容量的计算可参考《如何计算LoRaWAN网关的网络容量》

 

LoRa模块出现ERROR96的原因_第1张图片 图1    LoRaWAN Class A模式上传数据时的RX窗口

 

如图1所示,在LoRaWAN协议的Class A模式下,当节点上传一个数据包的时候,在TX窗口的后面将紧跟2个RX窗口。比如,TX窗口长度1s,RX1窗口长度1s,之后就是RX2窗口。

 

出现ERROR 96,则意味着RX2窗口超时了。只有一种情况可以导致发生ERROR 96的错误:当LoRa节点发送一个确认的上传数据包的时候,它将会等待ACK确认包,如果直到RX2窗口关闭的时候,它仍然没接收到ACK确认包的话,就会出现ERROR 96的错误提示信息。

 

导致LoRa节点一直等到RX2窗口关闭了、也未能收到ACK确认包的可能的原因比较多,列举如下:

1、LoRaWAN网关未收到LoRa节点发的上行数据包,自然就不会有下行ACK行为发生。无线干扰、信号不良或频点不匹配等原因都会导致这种丢包情况发生。

2、LoRaWAN网关收到上行数据包并转发给NS(网关的内置服务器)了,但NS处理该数据包时发现有问题或者NS本身存在问题,导致其并未生成ACK并下发,LoRa节点自然也就不会收到ACK了。

3、LoRaWAN网关收到上行数据包并转发给NS,NS也顺利生成ACK并下发给网关,但网关因业务拥堵或自身原因,并未成功将ACK从LoRa射频空口发出来。

4、LoRaWAN网关收到上行数据包并转发给NS,NS也顺利生成ACK并下发给网关,网关也成功将ACK通过LoRa射频发到空口中了,但LoRa节点未收到,无线干扰、信号不良、频点不匹配等都会导致这种丢包情况发生。

5、LoRaWAN网关收到上行数据包并转发给NS,NS也顺利生成ACK并下发给网关,网关也成功将ACK通过LoRa射频发到空口中了,LoRa节点的射频端也成功收到这个无线信号了,但是LoRa节点的底层在处理收到的这个报文时,解析校验发现该报文有误(例如信号变形导致数据失真或ACK报文本身组装有误),进而丢弃了该报文,上层程序也会视作未收到ACK。

 

因此,当我们出现ERROR 96的时候,我们可以这么排查故障:

1、检查LoRaWAN网关是否能接收到LoRa节点发送的数据;

2、检查该数据包是否本身存在问题;

3、检查LoRaWAN网关内置的NS服务器是否能正常生成ACK并下发;

4、检查整个网络是否比较拥堵;

5、检查LoRa节点是否能正常接收到LoRaWAN网关下发的数据。

 

如果配备的LoRaWAN网关的具备较为友好的运维界面,比如瑞科慧联的LoRaWAN网关RAK7249的WebUI上,就可以查看到该网关所关联的所有节点的状态。

 

LoRa模块出现ERROR96的原因_第2张图片 图2   瑞科慧联LoRaWAN网关RAK7249的WebUI示意图

 

图2是瑞科慧联的LoRaWAN网关RAK7249提供的运维界面的示意图,可以看到,其可以查看LoRa网络是否拥堵、发包的情况等等,借助这些运维信息,就可以更好的发现LoRaWAN组网的状态,更好的排查故障并解决问题。一个良好的LoRaWAN网关的运维界面,可以帮助我们更好的运作我们的物联网解决方案。

 

本文介绍了导致LoRa模块出现ERROR 96的若干种原因,以及如何排查故障。

你可能感兴趣的:(LoRa网关,LoRa节点,lora模块,LoRaWAN网关,LoRA)