查看: 1168|回复: 0

[应用笔记] LW470-E01通信问题及部署建议

[复制链接]

67

主题

100

帖子

570

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
570
发表于 2023-2-9 10:09:16 | 显示全部楼层 |阅读模式
  背景

  实际部署条件:60s采集100个节点的数据,也就是说在一分钟内NS要收到100个节点上报的数据

  测试条件:使用6个节点进行模拟,100ms监测一次busy引脚状态,空闲后延时20ms发数据,上行数据使用非确认帧,关闭ADR,SF=7。

  测试出现的问题:
  1. busy引脚大概4s左右空闲,连续发包,会出现10%的丢包率,分析丢包率的原因
  2. 使用确认帧的情况下,busy引脚空闲会比较快,为什么?
  3. 如何保证100个节点的数据在60s能上报完成?

  过程

  一、丢包率原因
  (1)关闭ADR:设备不会自行调节SF,每个设备都使用固定的SF去发数据,同一个信道是无法接收两个一样SF的数据包的
  (2)如果开了确认包,网关是半双工的情况下,下行的时候是无法接收数据的
  (3)6个节点发送数据的频率选择本身也是随机的,也会存在碰撞的可能
  (4)多个节点的引脚状态如果都空闲,那么发送数据的时间可能会碰撞
  (5)受到环境影响或外部干扰产生的丢包

  二、使用确认帧为什么空闲的比较快

  Class A的设备每次上行后都会紧跟两个短暂的下行接收窗口,RX1一般是在上行后1s开始,RX2是在上行后2s开始。如果在任何一个接收窗口中检测到前导码,终端设备需要继续激活,直到整个下行帧都解调完毕。如果在RX1检测到数据帧,且这个数据帧的地址和MIC校验通过确认是给这个终端的,那么终端就不必开启第二个接收窗口,因为在使用确认帧的模式下,RX1如果接收到数据,就不会开启RX2了。非确认帧模式下,两个接收窗口都没接收到数据一个上行才算结束。
  三、如何保证100个节点的数据在60s能上报完成?

  前面讲到,数据丢包的原因可能在于碰撞,那么我们要解决的就是如何避免碰撞

  1、8个节点为一组,非确认帧,每个节点固定使用一个信道。那么组内8个设备频点不同就可以同时上报。这样就相当于60s 12组设备上报。相当于是把网关的8个通道让节点使用的更加均匀一点了,但会出现如果真的某个频点出现干扰,长时间没数据的情况。

  2、LoRaWAN的冲突处理机制一般就是靠随机延时来错峰发送,完全避免碰撞是不可能的,只能尽可能让数据分散开,减小碰撞概率。那么这里有两种方法可以考虑

  2.1 入网延时+通信延时

  (1)入网延时
  入网时就开始增加随机延时,假如一个节点入网需要5s,网关为8通道,那么在理想情况下(即100个节点按序入网,100%信道利用率),入网所需时间为62.5s,但实际效率是理想的15%-20%,那么如果在入网阶段增加随机延时,这个延时时间就可以设置在0-312s,即0-5分钟内。

  (2)数据通信前的延时
  为了数据发送时间能够在错开,还可以设置常规上报数据包前的延时,按照客户的模组使用的速率和数据长度,SF=7, 192个字节,那么TOA的时间差不多就是307ms,那么这时候的随机时延至少应该大于TOA的时间

  2.2 通信延时

  考虑到一般来说入网是一个必要过程,且是一次性过程,因此排除入网阶段,假设所有的节点都已正常入网要开始发数据了,由于60s内需采集完100个节点的数据,那么可以设置每个节点通信前进行0-60s的随机毫秒级延时,错开100个节点的数据发送时间,这样100个节点的数据就可以在60s内发送完成

  2.3 一些通用建议
  (1)重要的信息如触发类的告警信息,可采用确认帧,同时开启失败重传。
  (2)心跳类的定时上报,采用非确认帧,一般这类数据占大多数。

  2.4 关于CSMA

  CSMA:CarrierSenseMultipleAccess,载波监听多路访问技术,简单来说就是发数据之前先检测信道,如果信道空闲,就发数据,如果信道占用,随机退让一段时间再检测

  有人会考虑,既然数据包碰撞了,那我能否通过开启模组的CSMA来避免?

  首先模组支持CSMA功能,可以通过AT指令配置开启但是开启后,可能影响数据发送的时效性,因此建议格局实际使用场景来决定

  四、参数计算

  1、LoRaWAN TOA(Time On Air)即空中传输时间计算

  可使用LoRa计算器(见附件),标准LoRaWAN的配置前导码等于8,显示头模式,开启CRC校验

  以SF=7,数据长度192字节为例, TOA为307ms

  ps:顺便提供一个LoRaWAN在线计算工具Air time calculator | LoRaTools
  2、LoRaWAN网络容量简易计算

  根据上面计算的TOA,输入到表格中计算网络容量

  简单来看在非确认帧模式下

  单通道的计算公式为:S=F*0.18/TOA,其中F为上报周期,0.18即18%,为LoRa的信道利用率
  LoRaWAN网络容量计算

  3、根据客户部署情况计算信道占用率

  以单个数据包SF7,192个字节,60s内采集100个节点的数据为例:

  单个数据包的TOA为307ms,100个节点八通道的情况下,通道占用时间大概为4.7秒,总共60s的时间,信道占用率大概在12.8%((0.307*100*2)/(60*8))左右(数据量比较多的情况下,信道利用率大概在15%-20%之前,如果超过这个范围,数据碰撞丢包就会比较严重)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表