01-ADR算法:链路质量如何变成DR与功率指令


6.1 ADR 算法:链路质量如何变成 DR 与功率指令

本节摘要:ADR 是网络服务器侧把链路预算自动化的机制:根据上行信噪比估算余量,下发指令调整数据速率与发射功率。本节讲清 ADR 的状态机、SNR 映射表与设备侧的处理义务。位置:5.4 选了协议栈,本章从设备侧进入网络侧,看链路预算怎么被自动化管理。

ADR 的工作原理

ADR 由网络服务器主导,设备配合。流程:

1. 网络服务器持续收集设备的上行帧(含 SNR) 2. 取一段窗口内的最大 SNR(通常是最近 20 帧的最大值) 3. 由 SNR 反推"在当前 DR 下的链路余量" 4. 余量充足 → 升 DR(降空中时间);余量不足 → 降 DR(提灵敏度) 5. 通过 LinkADRReq 下发新的 DR 与发射功率 6. 设备执行并回 LinkADRAns ​

关键思想:用"当前 DR 下测得的最大 SNR"推断"升一档后的 SNR"。由于升档灵敏度变差,SNR 阈值表是 ADR 的核心数据——每档 DR 对应一个"最小可用 SNR"。

SNR 与 DR 映射表(EU868 参考)

DR 配置 最小 SNR(约) 相对前一档的余量需求
DR0 SF12 -20dB 基准
DR1 SF11 -17.5dB +2.5
DR2 SF10 -15dB +2.5
DR3 SF9 -12.5dB +2.5
DR4 SF8 -10dB +2.5
DR5 SF7 -7.5dB +2.5
DR6 SF7/250k -5dB +2.5

ADR 每次只调一档(DR 或功率之一),且调整间隔有最低周期(社区常用 1–3 天),防止设备在边缘反复抖动。设备在"移动场景"(如物流追踪)应当关闭 ADR(FCtrl.ADR=0),因为位置不断变化时,按历史 SNR 推算的档位会失效。

设备侧的处理义务

设备收到 LinkADRReq 要做三件事:校验参数合法性(DR 与信道组合是否区域允许)、执行切换(改射频参数与速率表)、回 Ans(含状态码:接受/无效参数/信道无效等)。实现上,ADR 请求的幂等性同样重要——重复收到相同指令,重复执行不应产生副作用。

ADR 的完整状态机与参数

一个可落地的 ADR 实现包含五个阶段:采集(收集上行 SNR/信号强度与帧数)→ 评估(取窗口最大 SNR,映射档位)→ 决策(目标 DR 与功率,一次只动一个)→ 下发(LinkADRReq,带信道掩码与重试计数)→ 确认(等 LinkADRAns,失败则重发或降级)。

NS 侧 ADR 状态机(简化): IDLE → COLLECT(攒 20 帧)→ EVALUATE(取 max SNR) → DECIDE(目标档 = 当前档 + 余量映射) → SEND_REQ(LinkADRReq,重试 ≤ 3 次) → 等 Ans → 成功:应用新档;失败:回退旧档并告警 ​

参数要点:窗口长度(帧数太少评估不稳,太多响应慢,20 帧是社区常用值);最小间隔(两次 ADR 之间至少间隔一定时长,防抖动);功率与 DR 的联动(升 DR 可能同时要降功率,两者在 LinkADRReq 里一次下发)。

设备侧 ADRACKReq 的触发逻辑

设备侧不是被动接受,还有一个主动上报机制:ADRACKReq 位。设备在开启 ADR 且"最近 N 次上行均未收到下行 ACK"时,在 FCtrl 置位 ADRACKReq,网络服务器收到后必须应答(即使没有数据下行,也要回一个 ACK 或空帧)——这是链路劣化时设备侧的最后探测手段。实现要点:N 的取值与上报频率相关(通常 8 次上行无 ACK 触发),且关闭 ADR 的设备不应置位。

易错点补充

  • ADR 与固定功率冲突:用户手动设了固定发射功率,NS 的 ADR 指令会被设备拒绝或覆盖——要么全自动要么全手动,混用会导致 NS 侧的调账失效;
  • 窗口最大值法对突发干扰敏感:一次强干扰下的高 SNR 会让评估虚高,成熟实现会对 SNR 做滤波或取分位数;
  • ADR 后不回测:下发指令后没有回读实测 SNR 验证,等于开环控制,好实现会持续监控新档位下的 SNR 是否符合预期。

易错点清单

  • 设备侧自行决定升速率:ADR 是 NS 的职责,设备侧只能响应指令,自行提速会绕过网络侧的干扰协调;
  • 移动设备开 ADR:SNR 窗口内最大值法在移动场景失真,产生"刚升档就失联"的抖动;
  • ADR 应答丢失不回补:NS 发指令后等不到 Ans 会重发或停止调账,设备侧应尽快应答;
  • 忽略 ADRACKReq 机制:设备在连续 N 次上行未收到 ACK 时置 ADRACKReq 位,NS 据此重新评估链路——这是链路劣化时的最后防线,不能关。

要点回顾:ADR 用"最大 SNR + 档位阈值表"推断余量,一次一档、低频调整;设备侧负责校验、执行、应答;移动场景关 ADR。下一节把区域参数表摊开——同一套机制在不同监管规则下怎么变。

ADR 与移动性场景的工程折中

物流追踪、人员定位这类移动设备不能开标准 ADR(历史 SNR 会失效),工程上有三种折中:固定中速档——用 SF9/SF10 固定档位,牺牲省电换稳定,适用于移动范围可控的设备;短窗口 ADR——把 SNR 评估窗口缩短(如 5 帧),对移动场景更快响应,但抖动也更大;混合策略——平时关 ADR 用固定档,网络侧检测到连续丢包时临时降速。三种方案都没有标准答案,取决于移动速度、上报频率与链路余量的真实分布,建议用场测数据(8.2)验证后定。

ADR 参数与容量的联动

ADR 不只是设备侧的省电工具,它直接决定网络容量(2.2 的容量账):全网设备都跑 SF12,网关容量骤降;ADR 把设备提到 SF7,容量提升 15 倍。因此网络侧对 ADR 的"期望档位"应作为运营参数管理:容量紧张时优先提速(把余量充足的设备提到高速档),覆盖边缘时优先保通(允许低速档)。NS 的 ADR 策略与容量监控联动,是大型网络的进阶玩法。

易错点补充

  • ADR 响应过慢:设备长期停留在低速档,网络容量被白白占用,ADR 评估周期要按业务节奏设定;
  • 功率与速率调整顺序错:先调速率后调功率(速率对容量影响更大),反过来调会先烧功率后省不出时间;
  • ADR 关闭后无人接管:关 ADR 的设备要有固定档位约定与人工监控,不能放任自流。

本节速查

小结与速查:ADR 五阶段——采集、评估(窗口最大 SNR)、决策(一次一档)、下发(LinkADRReq)、确认(Ans);参数:窗口 20 帧、最小间隔、功率联动;设备侧 ADRACKReq 是链路劣化时的最后防线;移动场景关 ADR;ADR 后要回测验证。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U