LoRaWAN协议-自适应速率(ADR)技术

2023-11-22 20:40

本文主要是介绍LoRaWAN协议-自适应速率(ADR)技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1 前言

2 网络容量优化

3 使用限制

4 如何实施ADR

4.1 通知支持ADR

4.2 ADR调整

4.3 ADR回退

5 ADR命令

5.1 LinkADRReq

5.2 LinkADRAns


1 前言

        我们知道LoRa在不同的调制参数下,其传输速率和传输距离是有很大的差别。可以看下表中的数据:

  • SF越大,同样发射功率下,链路预算就越高,意味着可传输的距离就越远
  • 但同时,SF越大,传输速率就越低,TOA需要的时间就越大,从而功耗更高,信道占用更大

        显然靠近网关的终端器件(节点)不需要 SF12 的高链路预算;在这种情况下,使用 ADR 可以优化用于每个节点的 SF,在保证通信质量稳定的情况下并最大程度地提高传输速率从而降低功耗和信道占用。

        PS:ADR优化的是节点上行链路的速率配置;下行链路时节点侧是接收状态,功耗影响比较小,默认使用最大链路预算DR_0(一般为SF12)。

2 网络容量优化

        通过上图的场景,来了解ADR应用在网络容量的优化。

  • 当只有一个网关G1时,各节点设备随机放置在不同的环境中:室外,室内,深度室内。开启ADR后,所有节点的逐步优化至最佳。距离远的或者深度室内的节点会使用更高的SF,距离近的或者室外节点使用更低的SF。
  • 所有终端节点都自动选择合适的SF,从而增加信道容量,降低功耗
  • 随着节点数量的增加,或者节点布置离G1距离太远无法通信,此时增加新的网关G2进行扩容
  • G2网关不仅可以为由于距离过远无法连接G1的节点提供服务;同时对于已经连接G1的节点,经过ADR的调整,更接近G2的节点此时可以降低SF,进一步增加了信道容量。

3 使用限制

        移动节点不适用于ADR,主要基于以下几方面考量

  • 部分国家ISM频段不允许网关进行全双工模式,意味着网关下行时是无法监听上行数据的。在多节点场景下,ADR命令交互需要使用到下行链路,此时会导致上行链路的数据的丢失。
  • CLASS A类设备工作模式,限制了网关下行链路的可确定性。只有A类设备主动发起上行链路并打开接收窗口时,网关才能传递NS的命令。这样会导致调整的速率值不能及时通过网关下发给节点
  • 节点位置相对于网关经常变化,那么基于上次的ADR调制往往会很快失效,导致丢包或者链路预算的浪费

4 如何实施ADR

4.1 通知支持ADR

        无论是服务器端还是节点端,都是通过上下链路帧中的ADR位置1告知对方,自己支持ADR。可回顾《LoRaWAN协议-MAC帧格式详解》

4.2 ADR调整

        当NS(网络服务器)接收到上行链路帧中的ADR位被置1时,表示节点支持ADR。NS开始动态管理网络内所有节点的通信速率及功率。节点设备的数据通过网关向上发送消息,网关仅传递消息而不处理数据。网关可以将节点数据包转换为 IP 数据包发送到网络服务器。这些 IP 数据包中还包含了时间戳,RSSI和SNR等信息。最终NS根据接收信号的质量,确定最佳节点数据速率应为多少(即扩频因子SF),从而下发LinkADRReq命令来调整节点的速率和功率。

  • 节点上行链路数据是可以被多个网关收到,所有收到数据的网关都会将数据打包为IP数据包发给NS,具体可以参考《Lora技术-什么是LoRaWAN》
  • 一旦网络服务器积累了多个结果,它将计算这些结果的中值,并确定可用的链路预算和可支持的最高数据速率,以及误差余量,以允许通道特性发生波动。在下一个上行链路之后,会根据需要将更改数据速率的 MAC 命令向下发送到终端器件。

4.3 ADR回退

        试想这样的场景,节点设备入网后,通过NS侧的ADR已优化至最佳速率,比如SF7。但此时由于各种原因,导致上行链路丢失,此时就需要节点侧能够自主进行ADR回退。

节点侧ADR回退流程:

  • 节点内部会维护一个计数器ADRACKCnt,每发送一次上行链路数据,ADRACKCnt会加1(重发的数据包不算)。
  • 当ADRACKCnt >= ADR_ACK_LIMIT时,节点会在后续的上行链路帧中,将ADRACKReq 位置1,表示希望服务器尽快回复。
  • 节点设备继续发送上行链路数据包并等待响应;当ADRACKCnt >= ADR_ACK_LIMIT + ADR_ACK_DELAY时,意味着节点(ADR_ACK_LIMIT + ADR_ACK_DELAY)次上行链路后,都未收到一次服务器的下行链路数据包。此时节点需主动降速一级,提高链路预算。

PS:图中未包含重发的上行链路,重发相关内容可以参考5.1节中的NBTrans

  • 后续上行链路帧的ADRACKReq 位会一直置1,在接下来的ADR_ACK_DELAY次通信中,如果节点一直未收到服务端的响应,会一直降速下去直至最低。
  • 当速率降低到规范允许的最低值后,在接下来的ADR_ACK_DELAY次通信中还是未收到服务端的下行链路数据包时,设备节点就会陆续将重发次数,通道掩码,发射功率都恢复为默认值
  • 在上述所有过程中,如果收到一次服务端的下行链路数据包,节点侧的ADRACKCnt会清零,并且数据帧的ADRACKReq 位也会清零
  • ADR_ACK_LIMIT默认值为64,ADR_ACK_DELAY默认值为32

5 ADR命令

5.1 LinkADRReq

        NS(网络服务器)使用MAC命令LinkADRReq要求节点设备调整发送上行链路时的数据速率,发射功率,可使用通道,重发次数。

PS:即使终端设备不支持ADR,也需接收并处理LinkADRReq命令,用于更新上行通道和重发次数

  • 该命令CID为0x03,其命令字段包含DataRate_TXPower,ChMask,Redudancy

1)DataRate

  • 占用DataRate_TXPower字段中的高4bit,表示终端器件在发送上行链路时应使用的新数据速率
  • 其值范围为0~15,具体含义需查询RP002-1.0.3 LoRaWAN 地区参数,下面是EU863区域的数据

2)TXpower

  • 占用DataRate_TXPower字段中的低4bit,表示终端器件在发送上行链路时应使用的新发射功率
  • 其值范围为0~15,具体表示多大的功率需要查RP002-1.0.3 LoRaWAN 地区参数,下表是区域EU863对应的数据。

3)ChMask & ChMaskCntl

  • 共同指示终端器件在发送上行链路时应使用的通道,具体数组含义需查询RP002-1.0.3 LoRaWAN 地区参数
  • ChMaskCntl - 不同值表示不同的通道组,比如US902区域的通道组

  • ChMask - 表示通道组中哪些通道使用,哪些通道屏蔽

4)NBTrans

  • 该字段告诉终端器件应该为每个上行链路帧进行多少次传输。网络服务器使用此设置来增加和减少重新传输的次数,以控制网络流量和冗余。
  • 如果NBTrans设置次数大于1时,则在发送上行链路时需遵循:

a. 照常使用跳频。

b. 等待 RX2 到期后再重新传输。

c. 在 RX1 或 RX2 期间接收到下行链路时,停止重传相同的上行链路帧。

5.2 LinkADRAns

        终端器件通过 ADR 应答 (LinkADRAns) MAC 命令发送回网络服务器来响应 LinkADRReq 命令

  • CID为0x03,命令字段Status为1字节,包含功率确认(PowerACK),速率确认(DataRataACK),信道掩码确认(ChannelMaskACK)
  • 节点设备如果支持ADR(即上行链路帧中ADR位置1),则必须所有参数调整都能实施,才回复LinkADRAns(所有ACK字段置1),并更新配置
  • 节点设备如果不支持ADR,则只需对满足的参数进行配置,并只对允许的功能ACK位置1

这篇关于LoRaWAN协议-自适应速率(ADR)技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/412789

相关文章

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

前端技术(七)——less 教程

一、less简介 1. less是什么? less是一种动态样式语言,属于css预处理器的范畴,它扩展了CSS语言,增加了变量、Mixin、函数等特性,使CSS 更易维护和扩展LESS 既可以在 客户端 上运行 ,也可以借助Node.js在服务端运行。 less的中文官网:https://lesscss.cn/ 2. less编译工具 koala 官网 http://koala-app.

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

java线程深度解析(六)——线程池技术

http://blog.csdn.net/Daybreak1209/article/details/51382604 一种最为简单的线程创建和回收的方法: [html]  view plain copy new Thread(new Runnable(){                @Override               public voi