LoRaWAN设备类型、终端入网方式及消息上下行

2023-12-31 23:38

本文主要是介绍LoRaWAN设备类型、终端入网方式及消息上下行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

LoRaWAN 协议针对低功耗、电池供电的传感器等应用进行了不同等级的优化, 分成不同级别的终端类型(Class A/B/C),以优化网络延迟和电池寿命间的平衡关系。所有的LoRaWAN终端都必须满足Class A的规定。

一、设备类型
1.Class A
Class A设备执行的是一个非对称的双向通信机制, 终端设备上行发送后会伴随打开两个下行接收窗口,以数据发送结束作为基准进行计算接收窗口的开启时间。Class A设备功耗最低,终端发送一个上行传输信号后才能与服务器进行下行通信,与服务器任何时候的下行通信都只能是在上行通信之后。

2.Class B
Class B设备建立在Class A基础上,允许更多的接收窗口,为了达到这一目的,终端设备会从网关接收到一个Beacon, 以此获得同步, 这一方式会让服务器知道终端设备正在“倾听”。

3.Class C
Class C设备同样基于Class A,在不需要发送数据的情况下,一直打开接收,功耗比A类和B类都大,但对于和服务器之间的交互来说延迟也最低。

二、终端入网方式
为了能够与 LoRaWAN 网络通信,终端需进行必要的参数配置与激活操作。 终端的激活有两种方式, 一种是空中激活 Over-The-Air Activation (OTAA), 另一种是独立激活 Activation By Personalization (ABP)。两种激活方式都需要三元组,区别如下:

OTAA:DevEUI、 AppEUI、 AppKey
ABP:DevAddr、 NwkSkey、 AppSkey

1.OTAA:
DevEUI 是一个类似IEEE EUI64的全球唯一ID, 标识唯一的终端设备。
AppEUI是一个类似IEEE EUI64的全球唯一ID, 标识终端的应用提供者。
AppKey 是由应用程序拥有者分配给终端。当终端通过OTAA方式加入网络, AppKey用来产生会话密钥NwkSKey和AppSKey, 会话密钥分别用来加解密和校验网络层和应用层数据。

2.ABP:
DevAddr是node的短地址,在数据通讯时,使用的是node的短地址。
NwkSKey在MIC校验时会用到,用于数据的校验。
AppSKey在加密解密时会使用到,用于负载的AES加解密。

三、消息上下行
上行消息是由终端发出, 经过一个或多个网关转发给网络服务器。下行消息是由网络服务器发出, 经过单个网关转发给单个终端。
由于Class A设备下行通信只能是在上行通信之后,终端设备上行发送后会打开两个下行接收窗口,接收窗口开始时间以上行数据发送结束作为基准,接收窗口的长度至少要让终端射频收发器有足够的时间来检测并处理下行的前导码。因此相邻两条上行信息之间的间隔至少2秒,实际使用应该设置更长一点。

这篇关于LoRaWAN设备类型、终端入网方式及消息上下行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

Spring创建Bean的八种主要方式详解

《Spring创建Bean的八种主要方式详解》Spring(尤其是SpringBoot)提供了多种方式来让容器创建和管理Bean,@Component、@Configuration+@Bean、@En... 目录引言一、Spring 创建 Bean 的 8 种主要方式1. @Component 及其衍生注解

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

聊聊springboot中如何自定义消息转换器

《聊聊springboot中如何自定义消息转换器》SpringBoot通过HttpMessageConverter处理HTTP数据转换,支持多种媒体类型,接下来通过本文给大家介绍springboot中... 目录核心接口springboot默认提供的转换器如何自定义消息转换器Spring Boot 中的消息

IDEA与MyEclipse代码量统计方式

《IDEA与MyEclipse代码量统计方式》文章介绍在项目中不安装第三方工具统计代码行数的方法,分别说明MyEclipse通过正则搜索(排除空行和注释)及IDEA使用Statistic插件或调整搜索... 目录项目场景MyEclipse代码量统计IDEA代码量统计总结项目场景在项目中,有时候我们需要统计

C#和Unity中的中介者模式使用方式

《C#和Unity中的中介者模式使用方式》中介者模式通过中介者封装对象交互,降低耦合度,集中控制逻辑,适用于复杂系统组件交互场景,C#中可用事件、委托或MediatR实现,提升可维护性与灵活性... 目录C#中的中介者模式详解一、中介者模式的基本概念1. 定义2. 组成要素3. 模式结构二、中介者模式的特点