专栏首页物联网思考ASR6505 LoRaWAN通信(一)

ASR6505 LoRaWAN通信(一)

前言:在LoRaWAN网络中,终端设备直接与网关通讯,设备和设备之间不通讯。设备需要先入网,再上报数据。

1、入网方式

入网分为OTAA(空中激活)和ABP(手动激活)两种方式。

所谓OTAA:就是设备发送一条入网请求数据,服务器校验通过后,再分配短地址和秘钥下发给设备的过程,之后设备用分配的短地址以及秘钥加密数据上报到服务器。

ABP:就比较简单粗暴了,双方直接约定好短地址和秘钥,设备直接上传数据到服务器,没有了入网的过程。

2、入网参数

OTAA参数:DevEui(设备ID,8个字节)、AppEui(应用ID,8个字节)、AppKey(根秘钥,用于产生NwkSKey(网络会话密钥)和AppSKey(应用会话密钥))。

ABP参数:DevAddr(设备在网络中的短地址)、NwkSKey、AppSKey,这三个参数直接存储在设备中,必须和服务器保持一致。

3、入网过程

整个栈中以状态机的方式调度运行,下面以一个流程图展开:

可以看出:OTAA入网需要执行DEVICE_STATE_JOIN这个过程,入网之后上报数据;ABP是没有入网过程的,直接就上报数据了。最终在3个状态之间切换:

4、入网和Class A模式射频收发切换时序

终端的LoRa都是半双工的,即就是发的时候不接收的,接收的时候不发送,其余时间射频是在休眠的。为了终端能准确的接收到网关下发的数据,LoRaWAN里面针对终端设备什么时候接收做了详细的时间规定。

从图中可以看出,发送数据完成后,射频开始休眠,RECEIVE_DELAY1时间后,射频切换到接收状态(RX1),如果RX1还没有收到数据,那么射频再次休眠,等到RECEIVE_DELAY2时间后,射频再次切换到接收状态(RX2)。这就是一次完整的收发切换过程。这里RECEIVE_DELAY1和RECEIVE_DELAY2都是以发送数据完成开始计算的,一般情况下RECEIVE_DELAY2-RECEIVE_DELAY1=1S。

其中在入网阶段RECEIVE_DELAY1等于5s,RECEIVE_DELAY2等于6s。Class A发送数据阶段RECEIVE_DELAY1等于1s,RECEIVE_DELAY2等于2s。

5、Class C模式射频收发切换时序

可以看出,Class C模式下,接收窗口的打开发生了变化,发送完成后,紧接着打开窗口2、再打开窗口1、最后窗口2一直开着。即就是射频除过发送外,一直处于接收状态。从这里也可以看出,Class C要比Class A耗电。不管是ClassA和ClassC入网过程都是一样的。只有在入网后才区别Class A和Class C。

本文分享自微信公众号 - 物联网思考(everythinglink),作者:everythinglink

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-09-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LoRa网关与平台通讯协议

    同一个网关能连接到不同的Network Server、不同厂家的网关可以连接到同一个Network Server,这就要求网关和Network Server之间...

    ManInRoad
  • 使用ESP32来学习Python之开发环境搭建

    MicroPython官方针对不同的微控制器有不同的固件:http://www.micropython.org/download#esp32

    ManInRoad
  • LoRaNode开发——初识SDK

    从github获取节点源码https://github.com/Lora-net/LoRaMac-node/tree/develop,可以看到最新的源码是v4....

    ManInRoad
  • HostXen-美国西海岸 Xen CPU2 核 内存 2048M 35G SSD 硬盘 5Mbps 不限流量

    魏艾斯博客www.vpsss.net
  • 短网址原理及实现

    首先,系统把一个长的地址,用一个算法转换成一个短码(或者系统生成一个唯一的id号),然后系统将这个短码和url的映射关系存储到数据库或者缓存中

    用户1637228
  • Spring 里那么多种 CORS 的配置方式,到底有什么区别

    作为一个后端开发,我们经常遇到的一个问题就是需要配置CORS,好让我们的前端能够访问到我们的 API,并且不让其他人访问。而在Spring中,我们见过很多种CO...

    字母哥博客
  • systemd的oneshot 与 forking service的区别

    A. 服务启动结果判断: 会等待”ExecStart=“ 指定的命令执行完成,然后根据返回值来判定是否执行成功;如果返回值为0, 那么认为执行成功,否则会有类...

    qsjs
  • SQL 的云端大数据开发极速入门

    在“数据湖”概念与理论逐渐深入人心的今天,面向云存储的交互式查询这个需求场景显得愈发重要。这是因为原生的云存储(主要指S3这样的对象存储)既能够容纳大容量的明细...

    Lenis
  • 入门 | 从感知机到深度神经网络,带你入坑深度学习

    机器之心
  • 李航「机器学习」最全综述

    接下来我会依次整理《统计学习方法》第2版课件的每一章节PPT到公众号里,感觉这样直接学习更加方便友好些,希望这种方式可以真正帮助到各位。

    double

扫码关注云+社区

领取腾讯云代金券