LoRaWAN介绍11 唤醒通信

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。

 


下载经典的LoRaWAN资料,请链接:http://www.rimelink.com/nd.jsp?id=48&_np=107_316 



  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值