前言

如果要说LoRaWAN的缺点,我觉得最大的不足就是:作为一个MAC层协议,它在信道接入这块机制的处理太简单了。

LoRaWAN标准中,终端的信道接入方法是纯ALOHA机制,终端不进行信道检测,直接发送,这样随着终端数量增多或发送包数量增多时,多个终端的包在信道上发生碰撞的概率就大大增加。

IoT小能手在LoRa之前玩了挺长时间的ZigBee,放眼到WiFi,ZigBee等协议底层,他们都不约而同地采用了CSMA-CA技术。哦,这个“不约而同”用地并不好,本质上他们都是IEEE协会出的标准,工作组之间相互借鉴下成熟的东西,是挺正常的一回事。

你看这些协议都在关键部分就把信道接入给提出来了。

CSMA-CA

我们就来看看CSMA-CA是什么东西。

如下一段是摘抄自 IEEE802.15.4-2006 标准文档。

The IEEE 802.15.4 LR-WPAN uses two types of channel access mechanism, depending on the network configuration. Nonbeacon-enabled PANs use an unslotted CSMA-CA channel access mechanism, as described in 7.5.1. Each time a device wishes to transmit data frames or MAC commands, it waits for a random period. If the channel is found to be idle, following the random backoff, the device transmits its data. If the channel is found to be busy following the random backoff, the device waits for another random period before trying to access the channel again.

所以,CSMA-CA算法是怎么回事呢?

简单说就是分两步,第1步是对信道进行检测,检测信道忙闲,当信道空闲时进行发送;第2步是在信道忙时进行延时退避,延时到后再检测,如果检测还忙,则再进行退避,退避时间根据重试次数而指数倍增加。

这确实对提升数据单次传输的可靠性有一定的帮助,CLAA(中国LoRa应用联盟)的协议标准中也推荐了CSMA-CA算法。(利益声明:联盟秘书长和我是微信好友)

duty-cycle

难道Semtech、IBM、Actility这些通信专家就没想过这些问题吗?

在官方协议的地区参数文档中就做了声明,但是不明显。细心如本尊twowinter,也是在翻了第十二遍协议文档时,才发现了这段话。

为了满足ETSI 868的标准,LoRaWAN协议采用了其中的duty-cycle机制来处理,而放弃了 Listen Before Talk 机制。

duty-cycle的吐槽

说起duty-cycle机制,不知道在座的各位用过没有。反正我用着挺蛋疼的,每次都要费尽口舌给别人解释一番。场景是这样:

“小能手,为什么我现在发不了数据了?”
“因为你刚才的数据发了2秒钟,根据1%的duty-cycle限制,你接下来得等198秒后才能再发。”
“哇靠,what the f***!”

低功耗广域网领域目前还有一家躁动的公司Ingenu,它也深深地吐槽了LoRa的duty-cycle处理。(Ingenu取名源自英文足智多谋“ingenuity”,不少人读作“英格努”,我觉得还不够贴切,应该读作“英巨牛”。注意,twowinter我是认真的,不信可以去看英标。)

Ingenu的官网比较热血,如果你像我一样顶着产品经理的头衔,没事去找些无聊资料的话,就会在白皮书位置看到英巨牛对LoRaWAN和Sigfox的公开嘲讽,《LoRaWAN给你准备的九大惊喜》、《Sigfox给你准备的八大惊喜》。

在《LoRaWAN给你准备的九大惊喜》中,发现第一个惊喜就是对LoRaWAN duty-cycle的吐槽。

LoRaWAN的考量

行文至此,twowinter陷入了沉思,LoRa接下去的路究竟该怎么走。。。

想着想着,似乎化身成了LoRa技术委员会主席 Nicolas Sornin。画面切到2014年,为了制定协议标准而进行了多日唇枪舌战的那个夏夜。

“Listen Before Talk这种信道争抢方式,确实对数据可靠性有一定帮助,但各位刚才也提到了,这种随机延时会增加若干个接收窗口,增大功耗。我想这是一个取舍的问题,我们是什么技术,低功耗广域网技术,低功耗这三个字可是写在最前头啊。所以各位,数据可以丢,电池要保住!

还有一个尤为重要的地方,是我强烈支持采用duty-cycle的原因。在座的各位已经投入了非常多的财力物力到这里,可以说我们是一条船上的人。LBT的竞争性,不确定性让我感到不安,duty-cycle是让人放心的,即便有天网络瘫痪,duty-cycle可以让这个世界像没发生过。我们的LoRaWAN是奔着广域网的大目标去的,相比于ZigBee、WiFi这些小型网络,它的考量应该是更慎重一些。”

前面这个臆想画面纯属玩笑,但我想LoRaWAN很可能真的是从功耗和网络稳定性这两个角度去考虑,所以才采用duty-cycle信道接入方式。

后记

如果想要保证单次传输的可靠性和及时性,那还是可以考虑用下CSMA机制。毕竟LoRa技术的自由度很大,玩家在LoRa调制的基础上,根据自己的应用场景来玩就好了。


LoRa信道争抢怎么办?传说中的冲突退避管用吗?相关推荐

  1. 基于海思Hi3861与LoRa信道调频技术的智能腰带

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 文章目录 腰带简介 一.主控芯片 二.JS信道调频算法 三.LoRa模块 1.使用说明 2.AT指令集 四.传感器 1 ...

  2. LoRa 节点侧学习笔记_汇总

    LoRa在今年(2016年)应该是最火的物联网技术,Semtech不停攻城略地,七大洲,哦,除了南极洲,所有地区都宣布要建立国家级的LoRa网络.虽然,我大中国的运营商要做NB-IoT,但是不乏中兴. ...

  3. 由认识到应用——物联网LoRa技术性能分析

    ####前言 在这之前,我们通过<从陌生到认识--LoRa技术>知道了LoRa,在这之后,我们或许可以将LoRa技术落地应用. ####题目 LoRa网关容量分析 LoRa节点制约分析 L ...

  4. LORA几个常见问题总结

    LORA广域物联网的几个常用问题总结 1.LORA是什么? LORA是一种Long Range(长距离)的简称,是一种长距离,低功耗,的无线通信技术.域2013年推出LORA芯片,目前semetch公 ...

  5. LoRa开发1:LoRa设计10问

    LoRa设计10问 引言: 近 5 年来,LoRa技术在国内受重视,从高校到企业,再到自主创业者,都在了解和研究.作为从事 LoRa 研发 5 年,推出完整 LoRa 物联网的锐米通信(www.rim ...

  6. LoRa技术及应用---5分钟带你入门!

    1.什么是 LoRa技术? LoRa全称是Long Range,既远距离的意思,由semtech公司研发并推广的一种低功耗局域网无线标准.目前,LoRa 主要在ISM频段运行,主要包括433.868. ...

  7. 物联16:4 ISO/IEC 14443-3 防冲突、防碰撞算法、Type A、Type B

    ISO/IEC14443-3 防冲突.防碰撞算法.TypeA.Type B 防冲突原理 1 前言  当2张或2张以上的同类型的PICC卡同时进入RF(Radio Frequency)区域时,多张卡同时 ...

  8. Lora SX1268使用

    Lora SX1268使用 1.常用命令 1.1 lora模式指令:Lora/FSK cmd: SetPacketType(); //配置lora模式 GetPacketType(); //返回配置模 ...

  9. 【LoRa网关以及LoRa自组网】以“有人物联网”为例

    [LoRa网关以及LoRa自组网]以"有人物联网"为例 0.参考资料 1. LoRa 自组网协议的理解 1.1[LoRa模块WH-L101-L-P-H10 ] 1.2[LoRa网关 ...

最新文章

  1. 深入Java虚拟机之虚拟机体系结构
  2. 《Pokemon Go》开发商明年将推出「哈利波特」题材AR游戏
  3. wxWidgets:国际化
  4. 在数据库‘master’中拒绝CREATE DATABASE权限 的问题
  5. Python《突破JS动态加载,成功爬取漫画》
  6. a0图框标题栏尺寸_a0图纸尺寸(a0图纸标题栏尺寸标准国标)
  7. mapminmax()、zscore()数据归一化
  8. Android低功耗蓝牙通讯
  9. 门禁管理系统服务器,门禁控制软件 门禁管理系统
  10. hbuilder中uniapp运行微信小程序模拟器时出错
  11. pandas to_excel产生空值的解决方案
  12. matlab熵权法,matlab—熵权法
  13. ggplot制作条形图
  14. 山东省农村信用计算机社考试,山东省农村信用社计算机专业考试题
  15. 服务器端渲染-Vue SSR搭建
  16. 想知道如何翻译视频?翻译视频声音生成字幕方法分享
  17. 05_JUC强大的辅助类
  18. FreeRTOS软件定时器 | FreeRTOS十三
  19. 逆水寒服务器紫荆之巅有关消息,逆水寒ol:官方钦定19个热门服务器?四大服舞阳城门口人们为患!...
  20. 8750H带的动MATLAB2019吗,i7-8750H处理器对比7代i7-7820HK跑分测试

热门文章

  1. Incomplete reply from server
  2. 深度学习数据集(一)
  3. 常见的硬件数据通信协议
  4. 【对比Java学Kotlin】object 关键字
  5. eclipse中文显示乱码解决方法总结
  6. Shell之awk命令
  7. 英语基础太差,能学好编程吗?
  8. cv2.read()函数
  9. python地图可视化前端页面展示_利用pyecharts实现地图可视化
  10. android 调用oracle,Android 调用WCF实例详解