全方位解读LoRaWAN
唯一的终端设备。相当于是设备的MAC地址。
AppEUI 是一个类似IEEE EUI64的全球唯一ID,标识唯一的应用提供者。比如各家的垃圾桶监测应用、烟雾报警器应用等等,都具有自己的唯一ID。
AppKey 是由应用程序拥有者分配给终端。
终端在发起加网join流程后,发出加网命令,NS(网络服务器)确认无误后会给终端做加网回复,分配网络地址 DevAddr(32位ID),双方利用加网回复中的相关信息以及AppKey,产生会话密钥NwkSKey和AppSKey,用来对数据进行加密和校验。
如果是采用第二种加网方式,即ABP激活,则比较简单粗暴,直接配置 DevAddr,NwkSKey,AppSKey 这三个LoRaWAN最终通讯的参数,不再需要join流程。在这种情况下,这个设备是可以直接发应用数据的。
5.4 数据收发
加网之后,应用数据就被加密处理了。
LoRaWAN规定数据帧类型有 Confirmed 或者 Unconfirmed 两种,即 需要应答 和不需要应答类型。厂商可以根据应用需要选择合适的类型。
另外,从介绍中可以看到,LoRaWAN设计之初的一大考虑就是要支持应用多样性。除了利用 AppEUI 来划分应用外,在传输时也可以利用 FPort 应用端口来对数据分别处理。FPort 的取值范围是(1~223),由应用层来指定。
5.5 ADR 机制
我们知道LoRa调制中有扩频因子的概念,不同的扩频因子会有不同的传输距离和传输速率,且对数据传输互不影响。
为了扩大LoRaWAN网络容量,在协议上了设计一个LoRa速率自适应(Adaptive data rate - ADR)机制,不同传输距离的设备会根据传输状况,尽可能使用最快的数据速率。这样也使得整体的数据传输更有效率。
5.6 MAC命令
针对网络管理需要,在协议上设计了一系列的MAC命令,来修改网络相关参数。比如接收窗口的延时,设备速率等等。在实际应用过程中,一般很少涉及,暂时不管。
6 地区参数
LoRa联盟官方在协议之外,还发布了一个配套补充文档《LoRaWAN 地区参数》,这份文档描述了全球不同地区的LoRaWAN具体参数。为了避免新区域的加入而导致文档的变动,因此将地区参数章节从协议规范中剥离出来。
这份文档主要讲了LoRaWAN在全球各地区的具体物理层参数,不单单是频段有区别,细化到信道划分,甚至是数据速率,发射功率,最大数据长度等等都有区别。
为了方便大家了解总体情况,我又做了个表。
其实这个表也可以看出一个好玩的事情,为什么韩国的参数和亚洲各国其实差不太多,却单独拎出来。如果你有记得前文中的董事会成员记录,就应该知道韩国SK电信在LoRa联盟中的地位。这么高的地位搞点小特殊,你说过分么。
7 LoRaWAN应用示例
好了,介绍完如上的信息,大家应该对LoRaWAN有了系统的了解。
在断断续续学习LoRaWAN的这几个月,深深感觉到,物联网厂商要想理解透LoRaWAN还是需要做比较大的投入,特别是在实际项目过程中还是会遇到这样那样的细节问题。不过有更快速省事的方法,诸如借助我们长期的合作伙伴-厦门四信的LoRaWAN串口模块,他们提供了非常简单清晰的串口AT命令,厂商可以专注于自己多变的业务应用,是的,那句话,上帝的归上帝,凯撒的归凯撒。
i.基础网络参数配置
配置DevEUI
AT+DEI=11:22:33:44:55:66:77:88
配置AppEUI
AT+AEI=11:22:33:44:55:66:77:88
配置AppKey
AT+AKY=00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF
ii.加网操作
AT+JON //启动加网
+JON: 1 Failed // 第一次加网失败
+JON: 2 OK
iii.数据收发
向端口21发送数据12345
AT+TXA=21,12345
收到端口21的数据通知
+RCV:21,abcd
8 End
That’s all.