乌江枫 发表于 2017-8-24 17:02:28

如何保证低功耗的情况下降低lora 数据撞车概率

在实际lora产品开发时,在有很多节点的情况下,如何避免节点可能同时报警上发数据造成主机收不到正确数据的问题?如何优化能够将数据撞车率降到最低?

BeyondDream 发表于 2017-8-24 17:47:33

本帖最后由 BeyondDream 于 2017-8-25 07:54 编辑

无线电的碰撞,导致数据无法正确接收,这是困扰业界的一个难题。
在网络7层模型中,这属于“链路层”(MAC层)需要解决的首要问题。

大致有以下方法:
1)频分复用,随机信道:
   SX1301共8个通道(频段),并且节点每次上报,都是“随机”选择通道,可以有效避免“二次重复冲突”。
   如:某节点,第一次上报=470.3MHz,第二次上报=471.1MHz,第三次。。。。
    该方法,无需用户参与,已经由 LoRaWAN Node 协议栈实现。

2)时分复用,随机延时:
    当一个节点,意识到自己上报失败(没有接收到 Ack),它会随机延时,再上传;以避免多个节点“二次重复冲突”。
   这里面,最常用的算法是:CSMA/CA 算法
CSMA全称为Carrier Sense Multiple Access(载波侦听多路访问),无线网络采用冲突避免(Collision Avoidance),即CSMA/CA协议。


LoRaWAN Node 没有实现该算法,这需要 User System 来实现。

图1 CSMA/CA 效果


图2 CSMA/CA 逻辑流程


3)增加 SX1301 的数目,比如:使用 8 个 SX1301,即 64 通道,这样可以有效降低“冲突”概率。
      国外有这样的产品;国内,貌似没有(如果有,请告诉大家,嘿嘿)
      当然,它的:成本,功耗,体积,复杂度,都会增长!

   图3Senet 公司 64 通道 LoRaWAN Gateway


4)减短 payload 的数据帧长度,这样,冲突就会更少。原理如下图所示:

    图4 减短 payload,减少冲突概率。
   

5)另外一个“不计成本”的做法是:增加 LoRaWAN Gateway 的数目,容量上去了,冲突自然就少了。

乌江枫 发表于 2017-8-30 10:34:17

BeyondDream 发表于 2017-8-24 17:47
无线电的碰撞,导致数据无法正确接收,这是困扰业界的一个难题。
在网络7层模型中,这属于“链路层”(MAC ...

嗯嗯,谢谢啦,解答很详细。目前时分复用的方法用的比较多,但是如果主机发送ACK的话有没有可能与Node上报的数据碰撞冲突?这个如何解决?

sw51880 发表于 2017-12-27 14:33:42

乌江枫 发表于 2017-8-30 10:34
嗯嗯,谢谢啦,解答很详细。目前时分复用的方法用的比较多,但是如果主机发送ACK的话有没有可能与Node上 ...

极性没有反转怎么会冲突
页: [1]
查看完整版本: 如何保证低功耗的情况下降低lora 数据撞车概率