文档

加入和再加入

设备与LoRaWAN网络交互的最复杂的方面发生在它加入时。连接过程很重要,因为这是设备必须从网络接收信息的唯一时间(以连接接受消息的形式)。连接过程也很关键,因为接收窗口的时间只允许在设备传输连接请求后有两次机会接收连接确认。更重要的是,设备可能会分批发货和激活。这意味着在很短的时间内,将有许多,甚至可能是数千台设备试图加入网络。您需要有一个有效的策略来加入网络,以允许大多数设备获得网络访问,并在此过程中消耗最少的电力。要做到这一点,您应该确保设备随机使用所有可用频率。有些区域显式地指定连接频率选择(例如,EU863)。其他区域将连接频率对可用频谱开放。因此,设计人员必须考虑在最短时间内增加成功机会的策略,以尽量减少无线电操作时间,从而节省电力。 This is most important in Class A operations. In addition to random frequency selection, randomly selecting available DataRates (DRs) for the region that you want is also important.

请注意:重要的是要改变DR.如果你总是选择一个低DR,加入请求将花费更多的时间在广播。连接请求还将有更高的机会干扰其他连接尝试以及来自其他设备的常规消息流量。相反,如果您总是使用高DR,而试图加入网络的设备远离LoRaWAN网关或位于rf阻塞或空区域,则网关可能无法接收设备的加入请求。考虑到这些现实情况,随机改变DR和频率以防御低信号,同时平衡连接请求的直播时间。

阿罗哈

LoRaWAN传输与第一个共享频率无线电分组传输网络有关。第一个网络叫做ALOHAnet1它是夏威夷大学于1971年开发的,用于在夏威夷的不同设施之间发送数据。由于网络中的所有电台共享单一上行链路和单一下行链路频率,它们需要一种方法让各种无线电在空中管理它们的数据包。解决这种协调的机制是通过ACK传输的。发送上行报文,如果收到则在后续下行链路上发送ACK报文。如果收到ACK,上行站就知道它的传出消息已被接收。否则,上行站将等待一段随机时间并重新发送,直到成功。后来对该技术的改进通过线性、乘法或指数因素改变随机重试周期2.网络的目标是确定数据传输的最大速率(例如,在最短的重试间隔内进行最少的重试)。LoRaWAN连接流程共享这种结构,在通过通道发送数据包之前,必须确认连接请求。然而,如果许多设备试图同时连接,它们可能会相互阻塞。因此,设备将需要重试连接。通过随机选择重试周期,设备可以自动在短时间内“分散”它们的尝试,即使它们在过去的某个时间内可能主要是同步的。

重发退下

建议的“后退”时间表是15秒、30秒、1分钟、5分钟、30分钟和60分钟(其中60分钟是重复的)。在此计划中,每次回退都是最大时间,重试尝试发生在15秒到设置的回退时间之间。应用程序和LoRaWAN规范驱动这个调度。LoRaWAN规范3.有两个部分专门用于重传消息(包括连接请求)的总时长(第7节)和用于重传的DR回退(第18.4节)。重传的空中限制在规范中规定如下:

对于这些帧重传,RX2插槽的结束和下一个上行链路重传之间的间隔应该是随机的,并且对每个设备遵循不同的顺序(例如使用带有设备地址的伪随机生成器)。该信息的传输占空比应遵守当地法规和以下限制,以较严格者为准:

这意味着,第一个小时的总播出时间将被限制在36秒,接下来的10个小时为36秒,在前11个小时之后的每24小时为8.7秒。除非当地的空中占空比规定更严格,否则规范中的要求必须之后。

我们建议DR应该在连接过程中随机变化。如果您在加入期间使用固定的DR,或者如果您发送带有“已确认”帧的定期上行消息,我们建议您随着重试次数的增加而减小DR。正如LoRaWAN规范第18.4节所述:


强烈建议采用以下重传策略。确认帧的第一次传输发生在DR上。

DR max(a,b)表示a和b值的最大值。如果在建议的8次传输之后帧还没有被确认,MAC层应该返回一个错误码给应用层。

注意:对于每一次重传,频率通道是随机选择的正常传输。

任何进一步的传输都将使用最后使用的DR。

重新加入频率

在设备管理的系统设计中,另一个重要的考虑因素是设备加入检查或重新加入网络的频率。LoRaWAN网络的A类设备的设计,由于其以上行链路为中心的方法,可以实现非常低的功耗。这最大限度地提高了实际数据通信量,同时将协议开销保持在最小;在接收来自网络的同步消息时,不会浪费电力或带宽。这种方法的潜在问题是,与网络不同步的设备不会意识到这种情况。设备可以继续向网关发送数据,而设备不知道其信息正在被转发到网络。

以下方法可以帮助最小化设备向网络发送网络无法接收的消息的时间。

使用ACK请求发送不定期消息

这并意味着每条消息都发送一个ACK请求。每条消息都发送一个ACK请求是对电力和带宽的浪费。这种方法建议在合理的消息子集上发送ACK请求,从1%到25%,这取决于更新速率和设备和网络不同步时丢失数据的敏感性。例如,如果设备被编程为每三小时发送一次更新,并且应用程序可以容忍长达24小时的丢失,那么24条(或8条)消息中只有3条需要与ACK请求一起发送。如果没有收到ACK请求,设备应该尝试在3.1.1节中描述的限制范围内重新加入。

发送LinkCheckReq消息

这种方法类似于发送带有ACK请求的偶尔消息,在使用设备端逻辑时可能更容易实现。通过偶尔发送一个零字节LinkCheckReq消息时,服务器可以响应设备并确认它仍然连接到网络。如果设备没有收到来自服务器的响应,它可以假设设备不再在网络上,并可以发送另一个加入请求。

定期启动一个新的加入请求

使用这种方法的设备可以定期启动连接请求,该请求设置为应用程序中丢失数据的最大容忍度或略低于此值。这可能会导致大量的连接尝试,并导致一些额外的网络拥塞。但是,它会主动设置设备在尝试重新加入网络之前可能离线的最长时间。


1.威廉·斯托林斯(1988)。数据与计算机通信(第8版)。麦克米伦。485 - 486页。

2.威廉·斯托林斯(1988)。数据与计算机通信(第8版)。麦克米伦。487 - 492页

3.LoRaWAN 1.0.2规范(2016年7月),第7节和18.4,LoRaWAN 1.0.3规范(2018年3月20日),第7节和18.4。

Baidu
map