LoRaWAN协议入网方式
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、LoRaWAN协议入网方式是什么?
- 二、使用步骤
- 1.引入库
- 总结
前言
提示:这里可以添加本文要记录的大概内容:
例如:在LoRaWAN中,node最终和服务器能够正常数据交互,需要先入网,入网的本质,也就是获得一些通信相关的参数,有以下几个:
NwkSKey
AppSKey
DevAddr
DevEui
其中
NwkSKey用于数据的校验,也就是说在MIC校验时会用到
AppSKey用于负载的AES加密,也就是说在加密解密时会使用到
DevAddr是node的短地址,在数据通讯时,使用的是node的短地址
DevEUI 在ABP入网方式的通讯中不会使用,在OTAA方式中会使用到,是由设备在入网前就产生了。在入网时,node将DevEUI上传,然后服务器会将此DevEUI注册并返回一个DevAddr,也就是说DevAddr此时和DevEUI就建立了映射关系,在node后续的通讯中,使用DevAddr。
LoRaWAN入网方式有两种:
ABP (Activation By Personalization)
OTAA(Over-The-Air Activation)
下面就讲述一下这两种方式。
ABP 概述
ABP方式是事先将入网信息烧写在设备上,也就是说设备上电已经入网了,无需再特意去请求入网。
这种方式就不再多说了。需要做的只是把这个设备信息录入到平台上。
注意录的时候可能要输入DevEUI,但实际上ABP的设备DevEUI在通讯中并无参与,所以只是做个映射,来符合LoRaWAN协议,所以这个值可以随意的填,不重复即可,不过建议加上一个方便记忆的前缀
OTAA 概述
OTAA方式入网的node,在刚上电的时候,是不处于入网状态的,此时就需要进行入网操作。
如果我们简单的把服务器看做一个整体,那么入网操作的流程是这样的:
node 发送入网请求,即join_request message
GW 收到 node 的数据,上传给服务器
服务器收到入网请求,同意入网,并且将设备在服务器注册,建立长地址与短地址之间的联系,生成通讯密钥,将通讯密钥的参数打包下发给GW,即 Join-accept message
GW 收到服务器的数据,下发给 node
node 根据下发的数据包,得到 DevAddr、APPSKEY、NWKSKEY
一、LoRaWAN协议入网方式是什么?
示例:LoRaWAN协议入网方式 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、使用步骤
1.引入库
名词解析
上行:终端的数据发送经过一个或多个网关中转到达网络服务器。
下行:由网络服务器发送给终端设备,每条消息对应的终端设备是唯一确定的,而且只通过一个网关中转。
LoRaWAN Classes
LoRaWAN Classes 一共分为3类:Class A,Class B,Class C
Class A:终端先发送,在发送后开启一段时间的接收窗口,终端只有在发送后才可以接收。也就是说上行没有限制,下行的数据只有在上行包发送上来的时候终端才可以接收到。(功耗最低)
Class B:终端和服务器协商好接收的窗口开启的时间以及何时开启,然后再约定的时间进行接收,可以一次接收多个包。(功耗次低)
Class C:终端在发送以外的其他时间都开启接收窗口。更耗能,但通讯延时最低。(功耗最高)
PHY/MAC 层数据链路
总的数据包结构:
注意preamble、PHDR、PHDR_CRC、CRC都是硬件生成,无需软件参与,需要软件参与的就是PHYPayload部分
PHY层数据
上行链路消息:
下行链路消息:
其中上行最后还有CRC校验,而下行没有CRC校验。其中PHDR PHDR_CRC CRC都是射频芯片用于校准数据的完整新和一致性用的,并非用户生成的数据。
MAC 层数据
由上图可以看到,MAC数据是是作为PHYPayload存在的
其中MAC 层的包有三个部分组成:
MHDR(MAC层帧头)
MACPayload(MAC层负载)
MIC(4字节的校验)
而MACPayload又由三个部分组成:
FHDR (MAC层负载头)
FPORT(MAC 层数据的通道号)
FRMPayload(MAC层负载,加密)
而FHDR又由由四个部分组成:
DevAddr(终端的ID 4字节)
FCtrl(帧的控制字 1个字节)
FCnt (帧的序号 2个字节)
FOpts(帧配置,字节数不定,大部分情况0个字节)
所以,由协议可知,一个上行包或者下行包中的数据内容有哪些,抛开控制命令不说,主要有终端的ID、包的序号、用户的加密负载。
例如我抓到的一个数据包:
/x40 /x7f /xf8 /x8a /x29 /x80 /x2a /x00 /x02 /x07 /x42 /x87 /x3f /xc7 /xb4 /x22 /x04 /x00 /x84 /x8d /x1b /x06 /x2f /x5b /xbc /x57 /xdb /xf2 /x31 /xde /x49 /x61 /x00 /x86 /x99 /xec /x08 /x61 /xf0 /xb7 /xda /x54 /x0a /xfa /xd1 /x31 /xac /xd0 /x44 /x1b /x4d /xfa /x48 /x77 /x19 /xee /x61 /x14 /xbf /x23 /x52 /xd1 /xe9 /x93 /x79 /x6e /x16 /xd7 /x13 /x2e /x58 /x06 /x54 /xc3 /xd2 /x04 /xba /x52 /xa7 /xc8 /x7a /x0b /x8e
这是一个MAC 层的帧,即完整的PHYPayload部分,注意,默认LoRaWAN都是按小端方式传输的。
其中
MHDR:
/x40
MACPayload-FHDR-DevAddr:
/x7f /xf8 /x8a /x29
MACPayload-FHDR-FCtrl:
/x80
MACPayload-FHDR-FCnt:
/x2a /x00
MACPayload-FPORT:
/x02
MACPayload-FRMPayload(加密):
/x07 /x42 /x87 /x3f /xc7 /xb4 /x22 /x04 /x00 /x84 /x8d /x1b /x06 /x2f /x5b /xbc /x57 /xdb /xf2 /x31 /xde /x49 /x61 /x00 /x86 /x99 /xec /x08 /x61 /xf0 /xb7 /xda /x54 /x0a /xfa /xd1 /x31 /xac /xd0 /x44 /x1b /x4d /xfa /x48 /x77 /x19 /xee /x61 /x14 /xbf /x23 /x52 /xd1 /xe9 /x93 /x79 /x6e /x16 /xd7 /x13 /x2e /x58 /x06 /x54 /xc3 /xd2 /x04 /xba /x52 /xa7
MIC:
/xc8 /x7a /x0b /x8e
总结
例如:如果我们简单的把服务器看做一个整体,那么入网操作的流程是这样的:
node 发送入网请求,即join_request message
GW 收到 node 的数据,上传给服务器
服务器收到入网请求,同意入网,并且将设备在服务器注册,建立长地址与短地址之间的联系,生成通讯密钥,将通讯密钥的参数打包下发给GW,即 Join-accept message
GW 收到服务器的数据,下发给 node
node 根据下发的数据包,得到 DevAddr、APPSKEY、NWKSKEY
LoRaWAN协议入网方式相关推荐
- LoRaWAN入网方式以及加密进阶版
LoRaWAN入网方式以及加密进阶版 文章目录 LoRaWAN入网方式以及加密进阶版 首先了解一下关于LoRaWAN入网的一些参数解释:(OTAA模式) OTAA入网过程: 大致过程: 具体过程: 关 ...
- LoRaWAN设备类型、终端入网方式及消息上下行
LoRaWAN 协议针对低功耗.电池供电的传感器等应用进行了不同等级的优化, 分成不同级别的终端类型(Class A/B/C),以优化网络延迟和电池寿命间的平衡关系.所有的LoRaWAN终端都必须满足 ...
- 全面了解LoRaWAN终端ABP入网方式
ABP(Activation by Personalization)作为LoRaWAN的一种个性化激活入网方式,那么大家知道LoRaWAN终端ABP入网方式的具体步骤吗? 在本次的视频课程中,小七老师 ...
- lora服务器传输协议,基于lorawan协议的几种常见入网方法
OTAA(Over-The-Air Activation),是LoRaWAN的一种空中入网方式.当node在上电的时候处于非入网状态时,需要先入网才能和服务器进行通信.其操作就是node发送join_ ...
- LoRa节点ABP入网方式怎么样
在之前的文章中为大家介绍了"LoRaWAN终端OTAA入网方式",现在为大家介绍ABP节点入网,此文来自微信公众号"小七说LoRa",内容已获小七老师授权,小七 ...
- LoRaAN终端OTAA入网方式的详细介绍
在之前的文章中向大家介绍了"该如何选择LoRaWAN终端入的网方式",本文主要介绍了OTAA节点是如何入网的.此文来自微信公众号"小七说LoRa",内容已获小七 ...
- LoraWan协议剖析,快速掌握协议要点
1.整体结构 双向传输终端(Class A): Class A 的终端在每次上行后都会紧跟两个短暂的下行接收窗口,以此实现双向传输.传输时隙是由终端在有传输需要时安排,附加一定的随机延时(即ALOHA ...
- 在弱网区域下,LoRa终端入网方式OTAA与ABP该如何选择
在之前的文章中为大家介绍了"LoRa节点如何以OTAA方式入网TTN服务器",现在为大家介绍在弱网区域下LoRa节点入网方式OTAA与ABP该如何选择,本文来自微信公众号" ...
- STM32节点移植lorawan协议连接腾讯云物联网开发平台(IoT Explorer)
STM32移植lorawan协议栈连接腾讯云物联网开发平台(IoT Explorer) 前言 开发环境的准备 正文 初始化 入网 发送与接收 前言 在移植协议之前,先给大家科普一下Lora 和 lor ...
最新文章
- android首页图片轮播效果,Android_Android自动播放Banner图片轮播效果,先看一下效果图支持本地图 - phpStudy...
- 几个重要的 ASM Disk Groups 参数
- android添加imageview,android – 以编程方式将ImageView添加到Layout
- python生成器和迭代器作用_浅谈Python中的生成器和迭代器
- [蓝桥杯2016初赛]密码脱落
- python可以在linux运行_服务器(Linux)上运行python总结
- 方案改进:直接通过User Control生成HTML
- 2020辅警考试计算机知识题,2019年辅警考试题库:计算机概述-计算机软件系统
- 最简单的Rest服务
- python是最适合初学者的语言
- pycharm的配置——字体
- 车规电阻AEC-Q200测试项目及元器件检测设备
- STM32填坑:时钟使能必须在外设初始化之前
- [微信小程序] 单张、多张图片上传(图片转base64格式)实践经验
- php当月1号怎么获取,php获取下月1号和月底最后一天的时间
- 串口配置c语言,C语言驱动之配置串口(基于S3C2440开发板)
- python 提取元组中的值_如何从Python元组中提取数据?
- 自动充值平台开发进程之联通卡密一最终实现
- [机缘参悟-65]:《兵者,诡道也》-6-三十六计解读-并战计
- ATL之深入浅出书评(潘爱民)
热门文章
- DiskGenius快速分区硬盘
- mysql where 条件取反_MySQL搜索: WHERE 多条件
- (附源码)计算机毕业设计SSM旅游分享平台
- Dell optiPlex麦克风显示未插入问题解决
- Java 学习API(一)
- 7家自媒体创业项目平台收益技巧和差异对比,你适合哪个?
- VS2019:C++程序lib静态库、dll动态库的生成和使用
- 分辨率自动调节html,网页根据分辨率自适应
- codeforces 727E. Games on a CD
- python模拟鼠标键盘操作_python3实现复制粘贴 Python-模拟鼠标键盘动作 | 猴头客