|
我司LoRaWAN N3.0服务器的ADR调速机制,是服务器和节点配合实现的对吧?具体是哪边做提速,哪边做降速?调速机制具体是如何设计的?
是的,利尔达的ADR调速机制分为两块,NS端负责节点提速,节点侧负责自身降速。
NS服务器侧提速逻辑是:
服务器端会记录节点的历史上行信号质量,包含RSSI、SNR、FCNT等,若节点通信速率高于预期值,NS会缓存好LinkADR指令,等待下行窗口到来时进行下发。逐级调速,每次只提升一档通信速率。
节点收到调速指令后回复Ans,并在下一次通信时开始使用新速率上行。
终端节点侧降速逻辑是:
节点侧的降速依据为上行通信的丢包率,需要分为Confirm帧及Unconfirm帧两种情况。
①对于发送确认帧(Confirmed Data)的节点,节点自身知晓上行信号是否被网关收到。在连续的两包(缺省值,可配置)确认帧未收到网关ACK时,节点的下一次上行将使用更低一级的速率。最低速率按照LoRaWAN Regional Parameters中各地域的频谱规范执行。
②对于发送非确认帧(Unonfirmed Data)的节点,节点无法确认自身的上行信号是否丢包,需要周期性地向服务器确认上行消息的可到达性,这个可以通过LoRaWAN协议帧FHDR内,FCtrl字段中的ADRACKReq位来实现(帧格式见官方文档LoRaWAN_Specification_V1.0.2)。
简述非确认帧ADR调速机制如下:
a.节点上发的每一包非重传包都会使ADR_ACK_CNT累加
b.在ADR_ACK_LIMIT次上行数据没有收到任何下行时(ADR_ACK_CNT≥ADR_ACK_LIMIT),节点会在上行数据包中置位ADRACKReq bit,要求服务器进行回复
c.在接下来的ADR_ACK_DELAY次通信过程中,任意一包NS服务器的下行将会使节点端的ADR_ACK_CNT计数器清零。
d.若网关在收到ADRACKReq后超过ADR_ACK_DELAY次通信内没有进行回复,节点将会降低一级通信速率以提升上行通信链路质量。
e.若网关在下一次ADR_ACK_DELAY次通信内还没有进行回复,节点会再降低一级速率,直至最低。
其中ADR_ACK_LIMIT及ADR_ACK_DELAY的缺省参数官方在LoRaWAN Regional Parameters中有给出,分别为64和32,如下图:
利尔达标准LoRaWAN模组内这两个个参数的缺省值参照官方规定,可配置。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|