LoRaWAN介绍11 唤醒通信

“矛盾是一切运动和生命的根源。”--〔德〕黑格尔:《大逻辑》

 

在无线通信设计中有一个矛盾的地方:一方面,为了节能,要求节点尽可能长时间地休眠;另一方面,为了快速通信,要求服务器尽可能快地唤醒节点。

缓解该矛盾的办法是:约定唤醒、时钟同步和避免冲突。本文通过对LoRaWAN的Class B唤醒通信的分析,您将会看到设计一个物联网不得不在诸多因素中作出折中,即“两害相权取其轻”。

1 切换Class B

一个End Node从Class A(Class C不能)能切换到Class B,这取决于该Node的应用需要,切换过程如下:

(1) Node的应用请求LoRaWAN协议栈切换到Class B;

(2) 协议栈开始搜索网关发送的Beacon(信标帧),如果搜到Beacon,则返回BEACON_LOCKED原语,否则返回BEACON_NOT_FOUND原语;

(3) 如果希望加速发现Beacon,协议栈可以使用“BeaconTimingReq”的MAC命令,为保证网络高效运行,该命令1小时内仅能发送一次;

(4) Node根据自身电量和应用需求,选择唤醒通信的时隙间隔和通信速率;

(5) 如果Node成功切换到Class B模式,它每次UPLINK的帧中FCTRL=1;

(6) 一个移动的Node,必须定时告诉Server自己的方位,这往往通过发送一个UPLINK帧来完成,用于Server选择信号最强的Gateway唤醒通信;

(7) 如果一个节点在2小时内,没有接收到Beacon帧,那么它将失去与网络的同步,协议栈会通知应用层切换回Class A模式。

2  Beacon时间值

Class B中Beacon每隔128秒发送一次,End Node定期打开一个接收窗口,称之为“ping slot”,Server在该接收窗口发送的下行通信称之为“ping”。

如下图所示,Gateway每隔128秒发送Beacon,End Node每32秒打开一个“ping slot”,如果Server发送“ping”,End Node将回应数据帧。

 

为保证Beacon帧的正确发送,设置了BEACON_RESERVED时间值;

为防止一次ping和response通信,与Beacon的发送相冲突,设置了BEACON_GUARD时间值;

因此,留给Server和Node唤醒通信的时间值BEACON_WINDOW=

BEACON_PERIOD – BEACON_RESERVED –BEACON_GUARD;

这4个时间值如下:

BEACON_PERIOD    = 128s

BEACON_RESERVED = 2.120s

BEACON_GUARD    = 3.000s

BEACON_WINDOW   = 122.880s

 

 

3 时隙随机化

想象下,如果一个网络有1000个End Node,如果它们在同一时刻侦听ping,那会带来什么后果呢?

答案是:系统冲突,或者叫过度侦听,这会消耗End Nodes更多的电能。如,Server希望唤醒第1000号End Node进行通信,其他999个End Nodes也不得不侦听 “与自己无关的DOWNLINK帧”而消耗电能。

为解决这个问题,每个EndNode的唤醒时刻是随机化的。每个Beacon周期(128s),Node的pingOffset(第一个ping窗口)随机公式如下:

Key = 16 x 0x00

Rand = aes128_encrypt(Key, beaconTime |DevAddr | pad16)

pingOffset = (Rand[0] + Rand[1] x 256) % pingPeriod

前面提到BEACON_WINDOW=122.880s,它被分成212=4096时隙,每个时隙30ms.

如上图所示,EndNode在一个Beacon周期开启4次ping slot,即pingPeriod=1024(时长=1024x30ms=30720ms),pingOffset每次都不一样(在3个Bacon周期中,它分别为:512、0和1023)。

以pingOffset=512,可以看到4次ping slot打开的时刻点,如下表所示。

slot

BeaconReserved + (pingOffset + N x pingPeriod) x 30ms

Ton

#1

2.120s + (512 + 0 x 1024) x 30ms

17.48s

#2

2.120s + (512 + 1 x 1024) x 30ms

48.20s

#3

2.120s + (512 + 2 x 1024) x 30ms

78.92s

#4

2.120s + (512 + 3 x 1024) x 30ms

109.64s

4  Beacon帧结构

Beacon帧分成2部分:common part和gateway specific part,每个地区该帧的结构不一样。Time是UTC(Coordinated Universal Time,宇宙统一时间),GwSpecific包括Gateway的GPS信息。


对于一个固定的End Node,它仅解析common part并同步时钟,即可;

对于一个移动的End Node,它需要解析所有帧内容,获取Gateway的GPS信息,通过发送UPLINK帧,将告诉Server用于选择最佳的Gateway。

5  Beacon失步

设备的时钟都有漂移,如+/-10ppm的晶振128秒内将漂移+/-1.3ms,Gateway由GPS秒同步校准,而End Node则靠Beacon帧中的时间值来校准。

实际运行中,End Node可能会因为某些原因(无线干扰、通信拥塞或节点移动至远距离等)而接收不到Beacon。在这种情况下,LoRaWAN允许该End Node继续运行120分钟(2小时),同时允许End Node延伸ping slot时间窗口长度,以便缓解时钟漂移带来的误差。

在此2小时内,只要接收到Beacon帧,该End Node可以继续运行120分钟;否则,它将切换到Class A。

 

说明:LPWA物联网应用站(LPWAP.com)通过公开互联网收集、整理并转载有关LPWA物联网应用解决方案,以供广大LPWA应用开发者和爱好者共同学习交流和参考运用到实际生产生活中。本站所有转载的文章、图片、音频、视频等资料的版权归版权所有人所有并衷心感谢您的付出,由于本站采纳的非本站原创文章及图片等内容无法一一联系确认版权者,如果本网所选内容的文章原创作者认为其作品不宜放在本站,请及时通过以下留言功能通知我们采取适当措施,避免给双方造成不必要的经济损失。如果您希望保留文章在本站,但希望文章末尾提供对作者的致谢或者产品、网站交换链接的,也请将需求写入以下留言栏中,谢谢您的支持。让我们共同努力,打造万物互联的未来美好生活!

您的留言或需求: