LoRaWAN随记

一、LoRaWAN是什么?

LoRaWAN是由LoRa联盟负责制定的基于LoRa的低功耗广域网,采用星型拓扑结构。它能提供一个:低功耗、可扩展、高服务质量、安全的长距离无线网络。
  1. 低功耗:节点只有在发送消息和打开接收窗口时耗能,其他时间处于休眠状态。
  2. 可扩展:可以通过添加网关来增加网络容量。
  3. 高的服务质量:节点和NS都有消息的重传机制。
  4. 安全:节点入网以后通信会加密,跳频
  5. 长距离:扩频技术的加入使节点可以在较长距离正常通信。

二、结构

截取的官方图片
LoRaWAN体系结构由:节点、网关、NS、AS组成。

  1. 节点:实现LoRaMac层协议,将采集到的数据打包成符合LoRaWAN协议的数据通过射频传送到网关。
  2. 网关:将节点传送过来的数据和自身的数据整合成数据包通过TCP/IP协议传送至NS。
  3. NS(Network server):网络服务器,通过监听对应端口获取网关发送过来的数据包,剥离网关层数据,获取网关的Rssi,Snr,tmst,data等数据。对data数据编解码,解密,通过LoRaWAN MAC帧数据结构进行解析从而对不同消息进行处理。
  4. AS(application server):应用服务器,添加节点和网关,拉取NS数据供页面展示。

三、数据流程

  1. Uplink :节点通过射频通信传送至网关的上行数据
  2. PUSH_DATA/PULL_DATA :网关通过IP协议传送到网络服务器的数据
  3. 应用服务器拉取网络服务器数据 :通过数据库共享AS可获取NS数据进行应用协议解析
  4. PULL_RESP:NS下发指令至网关
  5. Downlink:网关透传至节点的下行数据

四、平台操作

  1. Web端添加节点(OTAA)和网关。数据库会保存AppEUI、DevEUI、AppKey、频段、节点类型(Class A B C)等节点数据。网关ID、网关频段等网关信息。此时节点尚未激活。
  2. 节点上电并发送入网请求(由于网关缓存的限制,如果大批量的设备同时入网网关会承受很大的压力,可能会丢弃入网信息导致入网失败,因此节点在上电后可随机一个时间后发起入网请求,这样可很好的避免入网失败情况)。
  3. 网关收到节点广播的入网请求(广播范围内的多个网关都会收到该入网请求)后,网关会通过TCP/IP协议发送至对应的NS
  4. NS收到网关发送过来的消息(可以通过UDP和Mqtt),此时NS会预处理该消息获取消息的类型(PUSH_DATA、PULL_DATA、)和转发网关的ID(8个字节),并从数据库中查询判断是否为网络内网关,如果为其他家网关则不做处理,为网络内网关转发时NS会继续剥离网关数据此时会获取到网关的tmst freq datr rssi snr data等信息。参考protocol文档。
    其中tmst为32位的网关内部时针,freq为消息的射频频率,datr为数据率和带宽,rssi为信号质量。Snr为信噪比。data为节点发送的数据。此时NS解析到的消息Mtype为入网请求,可以获取到对应的节点DevEUI AppEUI和DevNonce,并判断该节点是否为网络中节点,如果是的话回复入网请求,否则不作处理。 参考MAC帧结构分析文档。

本文涉及文档LoRaWAN1.02白皮书,网关protocol文档。随后会有LoRa节点类型介绍、消息种类介绍、激活方式介绍、协议数据帧解释、各频段介绍、网关与NS通信心得、NS设计心得等等等…(老烦了)

猜你喜欢

转载自blog.csdn.net/m0_38008027/article/details/89084040