跳转到主要内容

LoRaWAN协议(四)--入网方式概述

<h2 id="前言">前言</h2>

<p>在LoRaWAN中,node最终和服务器能够正常数据交互,需要先入网,入网的本质,也就是获得一些通信相关的参数,有以下几个:</p>

<ol>
<li>NwkSKey</li>
<li>AppSKey</li>
<li>DevAddr</li>
<li>DevEui</li>
</ol>

<p>其中</p>

<ul>
<li>NwkSKey用于数据的校验,也就是说在MIC校验时会用到</li>
<li>AppSKey用于负载的AES加密,也就是说在加密解密时会使用到</li>
<li>DevAddr是node的短地址,在数据通讯时,使用的是node的短地址</li>
<li>DevEUI 在ABP入网方式的通讯中不会使用,在OTAA方式中会使用到,是由设备在入网前就产生了。在入网时,node将DevEUI上传,然后服务器会将此DevEUI注册并返回一个DevAddr,也就是说DevAddr此时和DevEUI就建立了映射关系,在node后续的通讯中,使用DevAddr。</li>
</ul>

<p>LoRaWAN入网方式有两种:</p>

<ol>
<li>ABP (Activation By Personalization)</li>
<li>OTAA(Over-The-Air Activation)</li>
</ol>

<p>下面就讲述一下这两种方式。</p>

<h2 id="abp-概述">ABP 概述</h2>

<p>ABP方式是事先将入网信息烧写在设备上,也就是说设备上电已经入网了,无需再特意去请求入网。</p>

<p>这种方式就不再多说了。</p>

<h2 id="otaa-概述">OTAA 概述</h2>

<p>OTAA方式入网的node,在刚上电的时候,是不处于入网状态的,此时就需要进行入网操作。</p>

<p>如果我们简单的把服务器看做一个整体,那么入网操作的流程是这样的:</p>

<ol>
<li>node 发送入网请求,即join_request message</li>
<li>GW 收到 node 的数据,上传给服务器</li>
<li>服务器收到入网请求,同意入网,并且将设备在服务器注册,建立长地址与短地址之间的联系,生成通讯密钥,将通讯密钥的参数打包下发给GW,即 Join-accept message</li>
<li>GW 收到服务器的数据,下发给 node</li>
<li>node 根据下发的数据包,得到 DevAddr、APPSKEY、NWKSKEY</li>
</ol>

<p>这篇文章先大概的描述一下两种入网方式</p>

<p>详细的关于OTAA的入网方式见下一篇文章,会有OTAA的抓包分析,以及APPSKEY/NWKSKEY的生成过程,并且有C语言的Example。</p>

<p>文章转载自:<a href="http://www.cnblogs.com/answerinthewind/&quot; id="Header1_HeaderTitle">AnswerInTheWind</a>的博客</p>