LoRaWAN介绍7 入网
“生命在他里头,这生命就是人的光。光照在黑暗里,黑暗却不接受光。”–《新约·约翰福音》
End Node要加入LoRaWAN网络,首先需要赋值和激活。一般说来,有2种方法完成入网:ABP(Activation by Personalization,个性化激活)和OTAA(Over-the-Air Activation,空中激活)。
1 ABP
ABP是一种简单的入网机制,同时,它也不太安全,适合于建设私网。
它的核心原理是,LoRaWANServer和End Nodes双方都保存相同的3个参数:DevAddr、NwkSKey和AppSKey。
我们一起看一个实例,Loriot的Server是如何提供ABP入网机制的。
首先,每一个EndNode都会有一个DevEUI(Device Extended Unique Identifier,设备扩展唯一标识),最常见的做法是,取MCU的SN(Serial Number,序列号),经过某种算法得到64位的DevEUI。在本例中,设一Node有
DevEUI=BE-7A-00-00-00-00-0A-8E
然后,在Loriot的Server端,提供DevEUI,将得到如下图的三个值(大端):
DevAddr=01-33-51-A4
NwkSKey=5A-DA-30-AA-3E-D6-98-4A-A3-FD-04-0D-3C-A6-86-B9
AppSKey=7F-34-F6-20-41-37-EE-4C-97-B0-B2-82-2B-E1-7B-80
最后,将这三个值,分别保存到End Node中。这样,该Node就完成了入网,可以与Server通信。
2 OTAA
OTAA是一种安全系统很高的入网机制,当然,它的代价是较复杂。
借用大师Eric(经典书籍《The Art of Unix Programming》的作者)的一句话:数据结构压倒一切,它是编程的核心。我们列出了OTAA的数据流,如果有耐心看懂下图,您也就掌握了OTAA的入网原理。
一个重要的数据,AppKey,它是root key,被Server和End Node共享使用。
首先,一个End Node需要配置:AppEUI和DevEUI;并且取LoRa芯片的RSSI随机值,得到DevNonce。将这3个参数,组织成Join Request数据帧,发送给LoRaWAN Server。
Server接收到Join Request后,分配DevAddr,连同AppNonce和NetID,组织成JoinAccept数据帧,回应给EndNode。
End Node接收Join Accept后,提取DevAddr;结合4个参数:AppKey、AppNonce、NetID和DevNonce,使用aes128_encrypt(),生成2个密钥:NekSKey和AppSKey。
您会发现,无论是ABP,还是OTAA,最终,End Node都会得到3个参数:DevAdd、NwkSKey和AppSKey。
3 重传的限制
一些外部事件的发生,如:断电、信号拥塞、网络断供…,一旦恢复,很可能会有大量(>100)的End Node同时申请入网。为了防止这些广播的Join Request拥塞整个网络,End Node需要实现“伪随机”离散入网,并且限制发送时间。
“伪随机”,可以将DevAddr代入随机函数,生成入网时间,这样有效降低End Node同时入网的概率。
一个End Node发送Join Request的时间,不但要遵守duty cycle的法规,还必须遵循如下的限制时间,以防止过多的入网报文干扰网络正常运行。
保存契约
一个End Node至少有2方面的属性:
- 无线参数:频段范围、最大发射功率、RxDelay1和RxDelay2时长;
- 应用类别:警报器、能源表计、资产跟踪、监测、网络控制等
这些称之为契约,需要存储在Server中,AS(Application Server)和NC(NetworkController)需要使用它们,以便提供更好的网络服务。
感知地区
LoRaWAN是工作在ISM免费频段,然而,每个地区和国家的ISM频段是不一样的;即使是相同的频段,网关也可以使用多个信道,比如,中国470~510MHz的频域,划分了96个上行和48个下行信道。
一个End Node在发起入网前,需要确认自己所有的区域和可以使用的信道,这需要采用如下的方法:
- 如果End Node安装了GPS,它可以得知自身所有的区域和信道范围;
- End Node可以搜索beacon(网关每128秒发送),一旦接收成功,它将得知区域和信道范围;
- End Node可以搜索beacon,一旦接收成功且beacon包括GPS信息,它将得知区域和信道范围;
- End Node可以搜索beacon,一旦接收到入网频段列表,它将得知区域和信道范围。
来源:程序园
您的留言或需求: