LoRaWAN ADR (自适应速率) 算法简介及最新研究方向

2023-05-16

LoRaWAN ADR 自适应速率 算法简介及最新研究方向

  • 1. 背景:
    • 1.1 ADR简介
    • 1.2 LoRaWan NS
    • 1.3 ADR目标
    • 1.4 ADR应用场景
  • 2. ADR实现方式、原理:
  • 3. ADR算法研究方向:
    • 3.1:ADR Algorithm optimization
    • 3.2:LoraWAN ADR Evaluation
    • 3.3:Data Analysis in LoRAWAN
    • 3.4:Others Optimization
  • 附:相关代码参考
  • 博主热门文章推荐:


在这里插入图片描述


1. 背景:

一晃已经很多年没接触Lora了,也多年没有学习和写过这方面文章了 (上一篇还是2018年),所以最近有兴趣研究下近几年最新的Tech,简单检索了下Lora ADR相关的最新研究和发展,在这里汇总一下分享给大家~

LoRaWAN ADR (自适应速率 Adaptive Data Rate )
在这里插入图片描述

1.1 ADR简介

Q: 什么是ADR (Adaptive Data Rate) ,什么是自适应速率?

根据Lora官网描述:

To maximize the battery life of your devices, LoRA uses the adaptive data rate (ADR) scheme. The ADR manages individual speeds for each connected device. End devices can transmit over any available channel at any time using any available ADR speed subject to the following rules:

由此可见,ADR是LoRaWAN (https://lora-alliance.org/ )的核心功能之一。
LoRa网络允许终端设备逐一配置选择数据速率。
LoRaWAN协议根据该特性对静态终端的数据速率进行调整优化,实现通信传输数据速率的自适应(ADR)。

在这里插入图片描述

相关的Knowledge在Lora官网有一篇文章讲的非常清楚,推荐看一看:

  • Understanding-ADR: https://lora-developers.semtech.com/documentation/tech-papers-and-guides/understanding-adr

1.2 LoRaWan NS

  • NS (Network Server)服务器:
    https://lora-developers.semtech.com/build/network-server/

还是引用下官方原文:

LoraWAN NS: A network server with all end devices that is configured as an integral part of the application (top-level Software) and connected to the base stations (LoRaWAN gateway). A network server can be embedded in a gateway or located on a dedicated server along with the Dispatcher SOFTWARE.

NS的作用:主要就是LoRaWAN网络信息和设备管理以及ADR

The network server receives messages from devices, manages their authentication, data routing, and gateway management. The network server independently selects the best gateway for routing data from the device, as well as eliminates duplicate messages and optimize the radio airwaves using ADR.

NS和ADR的关系:NS作为执行方,通过SNR来实现ADR

the network server can perform adaptive data transfer rate (ADR) settings based on the received SNR (signal-to-noise ratio). SNR is a dimensionless value equal to the ratio of the power of the useful signal to the noise power.) each device. When using ADR, devices spend less time on the air, increasing the efficiency of radio resources, as well as managing the reliability of message delivery.

简单来说,NS服务器作为LoraWAN网络的Manager,在开启ADR功能后,可以接管并配置每一个终端的通信速率及发射功率,使得终端功耗最优以及通信速率最高,从而实现网络容量的最大化以及低功耗终端寿命的提升。
  
ADR功能需要NS服务器来动态管理网络内所有节点的通信速率及功率。然而官方协议中只明确给出了MAC命令的帧格式,对于NS侧的ADR算法实现(即何时,以什么为标准,将终端速率及功率到怎样的水平)Semtech并没有具体给出。(官方有一份参考文档:“LoRaWAN – simple rate adaptationrecommended algorithm”,仅针对EU868频段给出了简单的ADR算法建议)

在这里插入图片描述

1.3 ADR目标

ADR的目的,或者目标是:

  • 降低丢包率,增加物理层-应用层通信包成功率,增加通信稳定性、系统鲁棒性
  • 降低功耗,gw和nodes速率均衡,射频TOA时间
  • 更优的速率通信选择,占用更少的信道资源
  • 减小信号碰撞概率,提升网络容量,充分利用网络带宽
  • 降低nodes电池消耗, 延长nodes使用寿命

1.4 ADR应用场景

实际工程环境下,LoRaWAN网络中的各个终端节点信号覆盖情况都不相同,而使用ADR算法可以让每一个节点在通信成功率以及功耗之间找到一个平衡点。

ADR算法适用固定位置网关,不适用于移动终端,若终端节点位置相对于网关位置经常发生改变,那么基于最近数据包信号质量而选择的数据速率可能会和新环境不匹配而导致通信丢包。
  
  但目前LPWAN行业的典型应用基本都是静态节点,如水电表、地磁、门锁、温湿度之类,对于这些静态终端以及部分偶尔发生移动的终端设备,ADR功能都可以有效地将通信速率调节至合理,并且对于偶发的位置变化导致的数据丢包也可以在一定时间内进行自愈。


2. ADR实现方式、原理:

上面简介提到了,ADR 的实现中,最关键的是可以通过NS(Network Server)对于终端设备通信速率/功率进行控制,

这一块LoraWAN具体是通过MAC命令-LinkADR(CID-0x03) 来实现,该指令帧格式及通信协议在官方文档中给出了详细描述:

详情可参见LoraWAN specification

https://lora-alliance.org/wp-content/uploads/2020/11/lorawantm_specification_-v1.1.pdf

下面只做下简单介绍。

  1. LinkADRReq命令,
    由NS发起,要求节点修改Datarate(速率)、TXPower(功率)、ChMask(信道掩码)、NbTrans(重传次数)等参数

在这里插入图片描述

  1. LinkADRAns命令,
    节点用以回复NS的Req命令,包含Power ACK(功率确认)、Data rate ACK(速率确认)、Channel maskACK(信道掩码确认)三个字段
    在这里插入图片描述

3. ADR算法研究方向:

我检索了 最近这几年ADR算法相关的国际论文(期刊/会议)、网络文献、官网等参考资料,目前找到的主要研究方向有下面几个:

3.1:ADR Algorithm optimization

主要是基于现有ADR算法的改进,包括无损自适应ADR,动态ADR,防冲突ADR ,

检索到的主要相关论文有:

  1. ND-ADR: Nondestructive adaptive data rate for LoRaWAN Internet of
    Things, 2022.3

[论文链接]:https://onlinelibrary.wiley.com/doi/abs/10.1002/dac.5136

[论文核心]:无损自适应算法,增强通讯稳定性,降低丢包率 和传输功耗

  1. A New-Dynamic Adaptive Data Rate Algorithm of LoRaWAN in Harsh
    Environment, 2021.10

[论文链接]:https://ieeexplore.ieee.org/document/9560129

[论文核心]:动态无损自适应, 进一步提高信道利用率、降低网络功耗, New-Dynamic ADR。
解决的问题:一是在多变环境下应用标准ADR算法存在通信质量差、丢包率较高,无法适用于移动终端设备通信的问题;二是该算法增加了链路感知的判断依据,且通过动态选择接收数据包的数目作为速率调节依据,提高了系统的可靠性。

  1. RM-ADR: Resource Management Adaptive Data Rate for Mobile Application in LoRaWAN, 2021

[论文链接]:https://www.mdpi.com/1424-8220/21/23/7980

Resource Management ADR (RM-ADR) at both ED and Network Sides (NS) by considering the packet transmission information and received power to address this issue.

在这里插入图片描述

在这里插入图片描述

  1. A Novel Collision-Aware Adaptive Data Rate Algorithm for LoRaWAN Networks, 2020

[论文链接]:https://ieeexplore.ieee.org/document/9179826

[论文核心]:collision-aware ADR (CA-ADR), which tries to minimize the collision probability when assigning data rates by considering the entire set of EDs in the network and keeping the link-level performance under control.

  1. Optimizing Power Allocation in LoRaWAN IoT Applications , 2021

[论文链接]:https://ieeexplore.ieee.org/document/9490646

[论文核心]:A novel game-theoretic framework for LoRaWAN named best equal LoRa (BE-LoRa), to jointly optimize the packet delivery ratio and the energy efficiency (bit/Joule).


3.2:LoraWAN ADR Evaluation

主要研究LoraWAN ADR算法模型的评估测试,以及Simulator 网络模拟方法:

相关论文有:

  1. Analysis and Enhancement of the LoRaWAN Adaptive Data Rate Scheme, 2020

[论文链接]:https://ieeexplore.ieee.org/document/9044872

[论文核心]:extend the LoRaWAN module in ns-3 by adding ADR, enabling the simulation of realistic LoRaWAN networks, and add the implementation of the new enhancements in this module.

  1. Empirical Analysis of LoRaWAN Adaptive Data Rate for Mobile Internet of Things Applications, 2021

[论文链接]:https://ieeexplore.ieee.org/document/9589038

[论文核心]:chose four proposed algorithms that focused on improving the ADR in terms of data extraction rate (DER) and evaluated them to study and critically analyze their performances by LoRaSim

  1. Modeling the Energy Consumption of LoRaWAN in ns-3 Based on Real World Measurements, 2019

[论文链接]:https://ieeexplore.ieee.org/document/8635786

[论文核心]:analysis of the energy consumption of different states in a LoRa transmission by the SX1272 in ns-3

  1. Evaluating the Scalability of LoRaWAN Gateways for Class B Communication in ns-3, 2018

[论文链接]:https://ieeexplore.ieee.org/document/8581759
LoRaWAN in ns-3 to explore the limits of scale at which this form of bi-directional communication remains feasible in large networks

[论文核心]:chose four proposed algorithms that focused on improving the ADR in terms of data extraction rate (DER) and evaluated them to study and critically analyze their performances by LoRaSim


3.3:Data Analysis in LoRAWAN

传感器网络相关的算法,很多是使用机器学习等数据分析的算法,应用到loraWAN领域

  1. LoRaWAN Behaviour Analysis through Dataset Traffic Investigation, 2022

[论文链接]:https://www.mdpi.com/1424-8220/22/7/2470

[论文核心]:analyse LoRa and LoRaWAN by looking at its transmission characteristics and network behaviour, respectively, explaining the role of its components and showing the message exchange. This analysis is performed through the exploration of a dataset taken from the literature collecting real LoRaWAN packets.

在这里插入图片描述

  1. Towards a Rigorous Evaluation of Time-series Anomaly Detection, 2021.11

[论文链接]:https://arxiv.org/abs/2109.05257

[论文核心]:the comparison of TAD methods after applying the PA protocol can lead to misguided rankings

  1. Deep unsupervised methods towards behavior analysis in ubiquitous sensor data, 2022

[论文链接]:https://www.sciencedirect.com/science/article/pii/S2542660521001256?via%3Dihub

[论文核心]:clustering technique for BA which can find hidden routines in ubiquitous data and also captures the pattern in the routines. Our approach efficiently works on high dimensional data for BA without performing any computationally expensive reduction operations. We evaluate three different techniques namely Latent Dirichlet Allocation (LDA), the Non-negative Matrix Factorization (NMF), and the Probabilistic Latent Semantic Analysis (PLSA) for comparative study.

在这里插入图片描述

  1. https://www.mdpi.com/1424-8220/22/2/664

studying the number of packets generated for a use case of REST-based IoT over LPWAN, specifically the Swarm OS over LoRaWAN. The work also presents an analysis of the impact of using promising schemes for lower communication load.

在这里插入图片描述


在这里插入图片描述


3.4:Others Optimization

  1. LoRaWAN Versus NB-IoT: Transmission Performance Analysis Within Critical Environments, 2021

[论文链接]:https://ieeexplore.ieee.org/document/9429698

[论文核心]:comparison of transmission performances within critical environments (i.e., underwater, within metal enclosures and underground) for two of the most adopted enabling technologies for the Internet of Things (IoT):

  1. the long-range wide area network (LoRaWAN) protocol and
  2. the narrowband IoT (NB-IoT)

附:相关代码参考

Github:

  • https://github.com/signetlabdei/lorawan
  • https://github.com/brocaar/chirpstack-concentratord

ChirpStack NS:

  • https://www.chirpstack.io/network-server/features/adaptive-data-rate/

博主热门文章推荐:

一篇读懂系列:

  • 一篇读懂无线充电技术(附方案选型及原理分析)
  • 一篇读懂:Android/iOS手机如何通过音频接口(耳机孔)与外设通信
  • 一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)

LoRa Mesh系列:

  • LoRa学习:LoRa关键参数(扩频因子,编码率,带宽)的设定及解释
  • LoRa学习:信道占用检测原理(CAD)
  • LoRa/FSK 无线频谱波形分析(频谱分析仪测试LoRa/FSK带宽、功率、频率误差等)

网络安全系列:

  • ATECC508A芯片开发笔记(一):初识加密芯片
  • SHA/HMAC/AES-CBC/CTR 算法执行效率及RAM消耗 测试结果
  • 常见加密/签名/哈希算法性能比较 (多平台 AES/DES, DH, ECDSA, RSA等)
  • AES加解密效率测试(纯软件AES128/256)–以嵌入式Cortex-M0与M3 平台为例

嵌入式开发系列:

  • 嵌入式学习中较好的练手项目和课题整理(附代码资料、学习视频和嵌入式学习规划)
  • IAR调试使用技巧汇总:数据断点、CallStack、设置堆栈、查看栈使用和栈深度、Memory、Set Next Statement等
  • Linux内核编译配置(Menuconfig)、制作文件系统 详细步骤
  • Android底层调用C代码(JNI实现)
  • 树莓派到手第一步:上电启动、安装中文字体、虚拟键盘、开启SSH等
  • Android/Linux设备有线&无线 双网共存(同时上内、外网)

AI / 机器学习系列:

  • AI: 机器学习必须懂的几个术语:Lable、Feature、Model…
  • AI:卷积神经网络CNN 解决过拟合的方法 (Overcome Overfitting)
  • AI: 什么是机器学习的数据清洗(Data Cleaning)
  • AI: 机器学习的模型是如何训练的?(在试错中学习)
  • 数据可视化:TensorboardX安装及使用(安装测试+实例演示)

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LoRaWAN ADR (自适应速率) 算法简介及最新研究方向 的相关文章

  • 【Ubuntu】安装Go语言

    sudo apt install golang go version
  • linux系统中使用X11 获取系统窗体信息

    在X Window System中 xff0c 每个窗口都有一个唯一的标识符 xff0c 称为窗口ID 要查找特定窗口的ID号 xff0c 可以使用Xlib库中的XQueryTree函数来获取窗口树结构 xff0c 并遍历整个树结构以查找目
  • 三维重建:多点透视cvSolvePNP的替代函数(Code)

    xfeff xfeff 在调试JNI程序时 xff0c 所有的Shell都已经加载完成 xff0c 而唯一真正核心的cv SolvePnP却不能在JNI里面获得通行证 xff0c 经过反复测试都不能运行 xff0c 因此只能忍痛舍弃 xff
  • 利用Pycharm工具将Python+Qt项目打包成exe应用程序

    博客小白第一次发博客 xff0c 已参加工作 xff0c 仅用于记录一下自己空余时间学习Python的进程 xff0c 学习过程中遇到问题也借鉴了很多博客的解决办法 xff0c 因此也想记录下自己的遇到的问题 xff0c 希望对跟我一样刚起
  • BOSS 业务运营支撑系统

    今天又简单的介绍几个概念 xff0c 我觉得要深入了解某个技术 xff0c 首先要把概念搞清楚 xff0c 这样在宏观理解上将更加深入 本人工作所属电信行业 xff0c 所以下面所介绍的几个概念都是基于电信行业的 BSS Business
  • JAVA版本:判断101-200之间有多少个素数,并输出所有素数。

    题目 xff1a 判断101 200之间有多少个素数 xff0c 并输出所有素数 程序分析 xff1a 判断素数的方法 xff1a 用一个数分别去除2到这个数 xff0c 如果至少有一个数能被整除 xff0c 则表明此数不是素数 xff0c
  • arm64架构ubuntu18.04国内镜像源

    jetson xavier nx下换国内源 xff0c 步骤如下 xff1a span class token shebang important bin bash span span class token function cp spa
  • 安装和配置OpenStack客户端(Jesse翻译)

    xfeff xfeff 安装和配置 OpenStack 客户端 xff08 Jesse 翻译 xff09 原文来自 icehouse的OpenStack文档 回忆 xff1a 在前面部分 xff0c 你已经使用了 keystone 客户端
  • 联通家庭宽带光猫DDNS设置

    1 目前家里宽带光猫ppoe拨号获取的IP全部都是非公网IP 打96169宽带专家转人工客服申请更换公网IP 一天内会有专人联系 更换成公网IP后 重启光猫 在公司或者其他地方ping下家里光猫获取到的公网IP看下是否能ping通 2 申请
  • Matlab如何抓取excell表格里的指定数据

    每次从示波器上采集的数据总是会带有示波器的相关信息 xff0c 没法直接load到matlab里 xff0c 每次手动删除让人感到疲惫 xff0c 特别是数据量达到100 43 的时候 瞬间emmm 示波器采到的数据如下图 xff1a 于是
  • nginx更改进程名称 学习笔记

    如何更改进程名称 在进入正题之前 xff0c 我们需要了解一下以下参数的作用 xff1a span class token keyword int span span class token function main span span
  • Apache 2部署SSL证书

    在Ubuntu系统Apache 2部署SSL证书 本文介绍了如何在Ubuntu系统以及Apache 2中安装阿里云SSL证书 前提条件 已从SSL证书控制台下载Apache服务器证书 已安装Open SSL 环境准备 操作系统 xff1a
  • NVDIA Jetson TX2软件介绍

    介绍 JETSON TX2 模块 它是一台基于 NVIDIA Pascal 架构的 AI 单模块超级计算机 它性能强大 xff0c 但外形小巧 xff0c 节能高效 xff0c 非常适合机器人 无人机 智能摄像机和便携医疗设备等智能终端设备
  • 12.6V/8.4V锂离子或锂聚合物电池充电器

    AL1261是一款专门为高精度的线性锂电池充电器而设计的电路 xff0c 非常适合那些低成本 便携式的充电器使用 它集高精度预充电 恒定电流充电 恒定电压充电 电池状态检测 充电结束低泄漏 充电状态指示等性能于一身 xff0c 可以广泛地使
  • import requests ModuleNotFoundError: No module named 'requests'

    错误描述 xff1a import requests ModuleNotFoundError No module named 39 requests 39 解决办法 xff1a Step 1 xff1a 打开命令窗口 xff0c Win 4
  • UITableViewController

    UITableViewController 表视图控制器 UITableViewController继承自UIViewController 自带了一个tableView 其根视图就是tableView 创建UIViewVontroller运
  • stm32开发板点亮led遇到问题

    最近由于毕业设计是四旋翼无人飞行器的系统设计 xff0c 在学STM32F103R8 xff0c 学长自己设计的一块板子 xff0c 让我根据野火的教程一步一步做 xff0c 先熟悉一下板子的工作原理 xff0c 为以后编程控制电机转速做准
  • Debian Linux 的安装

    Debian Linux 的安装 作者 xff1a Grey 原文地址 xff1a 博客园 xff1a Debian Linux 的安装 CSDN xff1a Debian Linux 的安装 说明 本安装说明是基于 Windows 10
  • 基于pytest设计自动化测试框架实战

    简介 基于pytest实现测试用例收集方案 自定义参数化方案 页面元素定位数据存储方案 测试用例数据存储和维护方案 xff0c 这样可直接进入到设计编写测试用例业务代码阶段 xff0c 避免重复设计这些方案以及方案不统一导致维护复杂 困难的
  • windows安全模型--令牌(token)和安全描述符

    当一个程序访问一个资源时 xff0c 需要有相应的访问权限 windwos安全模型中 xff0c 有两个角色 xff0c 一个就是访问者 xff08 进程 xff09 xff0c 一个是被访问者 xff08 资源 xff09 资源 xff0

随机推荐