LoraWAN论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 10031|回复: 0

LoRaWAN 的防冲突机制是什么,节点避免碰撞如何选择信道

[复制链接]

88

主题

434

帖子

4043

积分

论坛元老

Rank: 8Rank: 8

积分
4043
发表于 2020-2-12 17:22:00 | 显示全部楼层 |阅读模式
本帖最后由 BeyondDream 于 2022-5-26 14:19 编辑

请问 LoRaWAN 的防冲突机制是什么?另外网关有 8 个信道,节点上行数据时怎么选择使用哪个信道呢?
关于无线电冲突避免,经典的答案在:《LoRaWan终端如何处理通信碰撞http://lora.timeddd.com/forum.php?mod=viewthread&tid=51

LoRaWAN 防冲突的机制是 ALOHA 算法,节点上行频率是“随机”选择 8 通道中的一个。

ALOHA 协议原理:很简单,只要用户有数据要发送,就尽管让他们发送。规定时间内若收到应答,表示发送成功,否则重发。
重发策略:等待一段随机的时间,然后重发;如再次冲突,则再等待一段随机的时间,直到重发成功为止。
优点:简单易行。
详情链接:https://blog.csdn.net/jiangjunjie_2005/article/details/54176245

回复

使用道具 举报

88

主题

434

帖子

4043

积分

论坛元老

Rank: 8Rank: 8

积分
4043
 楼主| 发表于 2020-2-12 17:26:01 | 显示全部楼层
本帖最后由 BeyondDream 于 2021-8-3 17:11 编辑

图1  8 通道随机上行_理想顺序



图2  8 通道随机上行_现实顺序



图3  8 通道随机上行_冲突丢包



信道就像车道,如下图所示,SX130x 的 8 信道可以并行 8 辆汽车,SX127x/SX126x 的 1 信道只能并行 1 辆汽车。


本帖子中包含更多资源

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

x
回复

使用道具 举报

88

主题

434

帖子

4043

积分

论坛元老

Rank: 8Rank: 8

积分
4043
 楼主| 发表于 2020-2-18 10:04:50 | 显示全部楼层
本帖最后由 BeyondDream 于 2020-2-18 10:53 编辑

其实节点每次上报都是“随机”选择信道的,它的实现代码如下:
Channel = enabledChannels[randr( 0, nbEnabledChannels - 1 )];
randr() 是一个随机函数,上面的代码语句表示:从可用的信道中随机选择一个频点上报

比如 A 和 B 节点第一次都选择了 3 信道,第二次它们随机选择(比如:A 选择 5,B 选择 7)
当然,第二次它们也可能冲突,我们可以算下概率,因为有 8 通道,每个节点有 8 种可能,那么两者同时冲突的概率是 1/(8*8)=1/64
回复

使用道具 举报

0

主题

1

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2020-5-7 14:42:02 | 显示全部楼层
谢谢分享,学习了!
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|LoraWAN论坛  

GMT+8, 2022-6-28 13:48 , Processed in 0.171942 second(s), 5 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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