请选择 进入手机版 | 继续访问电脑版
查看: 1188|回复: 0

[技术交流] ADR调速机制

[复制链接]

74

主题

169

帖子

573

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
573
发表于 2021-7-30 15:35:49 | 显示全部楼层 |阅读模式
  我司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
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表