全面介绍LoRaWAN节点工作方式之ClassB

        在前面的文章中,为大家介绍了LoRaWAN节点的工作方式ClassA/C,在这篇文章中,ClassB工作方式。本文来自微信公众号“小七说LoRa”,内容已获小七老师授权,小七老师是腾讯云在线课程讲师,点击链接https://mp.weixin.qq.com/s/QLAelLJwjwB9GRVHd5fjNA可以观看课程视频。

        Class B中的B的就是Beacon的意思,Class B的节点除了在rx1和rx2接收NS的数据外,还可以在和NS同步完时间之后,周期性的打开一个接收窗口来接收NS发送给它的数据。

        如何做到时间同步呢?网关通过连接GPS,获得GPS信息后,周期性的广播一条消息,这条消息,就叫做Beacon。节点通过获取Beacon来同步时间。

首先我们先来看看Beacon

        默认的Beacon周期是128秒一次,Class B的节点,在没有同步到Beacon之前,只能工作在Class A模式下。节点在入网成功之后,先获取Beacon,获取到Beacon之后才能切换成Class B模式,否则,节点一直工作在Class A模式下。

        在长时间运行中,节点内部时钟存在一定的偏差,所以节点需要周期性的获取Beacon,以消除内部时钟偏差对时间的影响。

        节点锁定Beacon完成时间同步之后,如何和NS协商收发数据的时间点呢?在介绍NS和节点协商发送数据的时间点之前,我们先要了解,什么是Beacon Window,什么是Slot,什么是PingSlot,什么是pingNb,什么是pingPeriod。

        从一个Beacon结束时间点开始算起,到下一个Beacon开始时间点,这段时间叫做Beacon Window,NS想要主动给节点发送数据的话,也只能在这个窗口期呢。

        Beacon Window这段时间总共有122.88秒。LoRaWAN协议将这段时间平分成2的12次方份,也就是4096份。平均下来每份时长30ms,每30ms叫做一个Slot。NS和节点会在每一个约定好的Slot上通信,这个约定好的Slot叫做节点的PingSlot

        在一个Beacon Window时间窗内,NS可以主动给一个节点发送2的n次方条消息,n的取值范围是0<=n<=7的整数,这个2的n次方就是节点的pingNb

        我们再用4096除以PingNb,得到的就是这个节点的Ping周期,我们将Ping周期称为PingPeriod,Ping周期就是同一个Beacon Window内每个PingSlot相隔的时间。

        节点会将PingNB发送给NS。节点和NS通过PingNB和节点的DevAddr就能计算出第一个PingSlot的时间了。然后节点就会每隔PingPeriod个Slot打开一个接收窗口。如果NS有数据发送给节点,就会在PingSlot时刻发送给节点。

        到这里,NS和节点就能互相准确的知道双方在哪一个时刻接收发送消息了。

        在接下来的文章中,将会继续分享更多的LoRaWAN相关知识,希望大家持续关注我们。

 

上一篇:把 Integer 数组保存到文件、并读取


下一篇:找不到请求的 .Net Framework Data Provider。可能没有安装.