前言 在LoRaWAN中,node最终和服务器能够正常数据交互,需要先入网,入网的本质,也就是获得一些通信相关的参数,有以下几个: - NwkSKey
- AppSKey
- DevAddr
- DevEui
其中 - NwkSKey用于数据的校验,也就是说在MIC校验时会用到
- AppSKey用于负载的AES加密,也就是说在加密解密时会使用到
- DevAddr是node的短地址,在数据通讯时,使用的是node的短地址
- DevEUI 在ABP入网方式的通讯中不会使用,在OTAA方式中会使用到,是由设备在入网前就产生了。在入网时,node将DevEUI上传,然后服务器会将此DevEUI注册并返回一个DevAddr,也就是说DevAddr此时和DevEUI就建立了映射关系,在node后续的通讯中,使用DevAddr。
LoRaWAN入网方式有两种: - ABP (Activation By Personalization)
- OTAA(Over-The-Air Activation)
下面就讲述一下这两种方式。 ABP 概述ABP方式是事先将入网信息烧写在设备上,也就是说设备上电已经入网了,无需再特意去请求入网。 这种方式就不再多说了。 OTAA 概述OTAA方式入网的node,在刚上电的时候,是不处于入网状态的,此时就需要进行入网操作。 如果我们简单的把服务器看做一个整体,那么入网操作的流程是这样的: - node 发送入网请求,即join_request message
- GW 收到 node 的数据,上传给服务器
- 服务器收到入网请求,同意入网,并且将设备在服务器注册,建立长地址与短地址之间的联系,生成通讯密钥,将通讯密钥的参数打包下发给GW,即 Join-accept message
- GW 收到服务器的数据,下发给 node
- node 根据下发的数据包,得到 DevAddr、APPSKEY、NWKSKEY
这篇**先大概的描述一下两种入网方式 详细的关于OTAA的入网方式见下一篇**,会有OTAA的抓包分析,以及APPSKEY/NWKSKEY的生成过程,并且有C语言的Example。
|