nRF24L01+组网方式及防撞(防冲突)机制的实战分享

利用多个nRF24L01+模块组网通信的实现方式

这里讨论的组网方式,不包含使用6个通道实现的多对1通信方式,因其只限于6个发送端,局限性很大,可以附加其他技术实现更好的组网,暂时这里不讨论。这里分享的是所有nRF24L01+模块都使用通道0,实现的数量远超过6个的组网方式。

经过实战总结,可以实用到落地项目的有轮询方式、时分方式、自主避让方式等几种常用的组网方式,下面会逐一讲解实现原理。

防撞(防冲突)机制的实现原理

其实无论使用那种方式,都会涉及到防止冲突,也就是防止该信道出现多个发射信号冲撞的现象,因为一旦发生,接收方很难接收成功。除了组网内的各模块之间会发生这类现象,而且还要考虑工程密集安装的时候,也会与邻近其他组网的模块出现冲撞,所以防撞机制是必要的。

行之有效的防撞方式,经过实战检验,采用检测信道占用+按编号延迟的方式,可以很好的躲避碰撞。首先通过我的博文“nRF24L01+如何检测信道被占用-RSSI寄存器实战分享”里讲的,在发送之前先检测信道情况。然后如果信道忙,则根据自身编号(每个从机都从1-255进行依次编号)乘以一个时间基数,比如1ms(根据单片机处理相关逻辑的速度可加长),这样每个从机都会在检测到信道忙的时候,延时不同的时间再次检测和发送。如果同时遇到多个一起要发送,也会因为延时不同的原因,接下来就会错开了。

还有一种情况,就是在检测信道的时候是空闲的,但是在进入正式发送的时候,刚好有其他模块发送了,这就真撞上了。但是因为有编号延时机制,那么当检测到发送失败后,各自错开延时再次尝试,也会最终躲避碰撞了。

轮询方式一主多从

轮询方式是最安全可靠的方式,是典型的一主多从的组网方式。所有从机都不会主动发送信息,平时一直处于接收状态。只有主机发送给某个从机询问指令的时候,该从机才会立刻回复一条信息后,立刻再置为接收状态。这样就避免的多个模块随意发产生的频繁碰撞问题,使得每次通信都安全可靠。

但是这种方式是要规定一个轮询的时间间隔,主机定期询问一遍从机,这个时间间隔就影响了数据同步反应的速度。时间设置太短,模块工作太频繁。时间设置太长,从机的变化不能及时反应到主板。而且如果从机数量很多的话,每轮询一轮下来的时间也不可忽视,所以不适用于对从机变化的同步要求高的应用场景。

时分方式一主多从或多主多从

时分方式,是将所有参与组网的模块,按照编号顺序依次分配一个时间段作为发送的时间窗口。只有到模块自己的窗口期才可以发送,否则不能发送,平时都处在接收状态。这种方式也很好的规避了碰撞问题,但是遇到发送失败的话,就要等待下一个窗口期再尝试,否则会影响其它模块的发送。

这种方式就要求各个模块可以发送的时间间隙被确定下来,而且必须有一个时间基准,所有模块再同一个时间基准上开始计算自己的窗口期是哪里。时间基准的同步是这个方式的难点。实战中这种方式需要做一个群发模式,先让所有从机工作在同一个地址上,然后主机或临时主机发送时间基准,所有从机同时接收(不能一个一个发送,因为会有时延)。然后从机再工作在各自的地址上接收。

由于每个模块都分配了属于自己的发送窗口期(窗口期要大于模块发送一组32字节所需要的时间),所以这种方式既可以一主多从,也可以多主多从。但由于窗口期不能设置太短,对数量比较多的组网情况下,每个模块的两个窗口期的间隔可能会很长,所以组网数量不适合太多的应用场景。

自主避让方式一主多从或多主多从

自主避让方式,就是所有模块的发送时间都是没有限制的,有数据需要传送的时候就发,不经过任何主机指挥协调,遇到发送失败或信道占用,就延时躲避再次尝试,直到发送成功。

这种方式即可以一主多从,也可以多主多从。因为谁都可以随时发送,所以不需要主机协调,但是如果组网模块数量比较多的时候,某次碰撞可能会需要延时较长才会错开。因为有的可能接收到信息需要立刻回复,就有可能打乱延时错开的时间顺序造成二次碰撞,但终究是可以错开的。但是这种的稳定性略差,模块工作有时会一直等待,造成如果有需要给这个模块发数据的时候,一直发不进来的情况,继而造成更长时间的等待。

根据实际应用场景综合运用

以上三种方式均通过实战应用测试,在实际项目中,可以根据组网数量和对数据及时性和稳定性的要求,可以将这几种方式组合应用起来,不同的指令和时域可以使用不同的方式,或同时使用两种方式进行处理,会达到更好的效果。

这里只介绍了组网的方式原理,已经通过实战确认的,具体实现代码是需要一个完整的项目应用 场景来描述,这里就先不提供,后面陆续为大家分享更多的nRF24L01+实战应用。

原文地址:https://www.cnblogs.com/xueweisuoyong/p/11093176.html

时间: 2024-08-28 14:09:43

nRF24L01+组网方式及防撞(防冲突)机制的实战分享的相关文章

[转]Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件

Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件. 1.为了防止拖动ListView时,在列表末尾重复数据显示.需要加入 HashMap<Integer,View> lmap = new HashMap<Integer,View>();其中Integer为列表位置,View为子项视图,加入数据前首先if (lmap.get(position)==null) ,满足条件时,加入lmap.put(position, convertView

防撞灯测试仪的设计(未完待续)

频闪灯又叫防撞灯,顾名思义,它的作用是防止飞机发生碰撞.科技发展到现在,飞机防撞的系统有很多比如TACS.应答机等都具有防止飞机相撞的功能.防撞灯跟这些复杂的系统比起来显得非常原始,但是它的作用还是非常值得肯定的.要不然适航法规就不会强制飞机安装防撞灯了.要辨别防撞灯也很简单,晚上抬头看飞机,一闪一闪的就是它.民航飞机上还可以看到有颜色区别(左红又绿尾部白). 防撞灯一般都是氙气频闪灯.在飞机上工作时,都有标配的频闪的电源.比如波音的60-4983-3,空客的8ES系列频闪灯电源等.都是为频闪灯

汽车防撞软件引发的一套软件系统思路

有一个这样的想法,开发一套安装在汽车上的防撞软件,利用红外或者超声波获取车身外其他物体离车身的距离,距离过近就提出警告:这款软件还可以加载至汽车制动系统里面,自动控制汽车的速度,及左右转向的距离. 如果每辆车都安装这个系统,事故率将大大降低.利用卫星定位.拍照.摄像,利用此系统衍生出信息管理系统于交通部,于公安部都可以开发出相关系统. 对于交通部,可以管控车辆,实时路况:对于公安部,盗车将不复存在,实时抓捕开车逃犯,如果卫星上面能安装武器,可以实时打击.

几种VPN组网方式介绍

几种VPN组网方式介绍 VPN是(Virtual Private Network ,虚拟专用网络)的简称,最初是指通过公用网络(例如Internet)将多个不同地区的局域网,组建成广域网的一项技术.为什么要用VPN组网呢?我们简要介绍一下. 在Internet没有普及的时候,跨地区的单位如果要组建网络(广域网)需要从电信租用点对点或点对多点的"专线",例如某个单位总部在北京,在天津.广州.上海有分公司,如果这4个点要组成一个"大局域网",就需要租用3条专线,分别是从

H5棋牌及APP下载类域名在微信内转发如何做好防封防拦截

我们常常遇到自己正规的网站链接,无端被微信拦截,大家都为这问题苦恼不已.但凡想使用微信来推广产品或者从事活动营销的用户,就一定会遇到域名被微信拦截甚至封停的情况.域名没被封过,那你的营销人生肯定是不完整的.网络上流传很多域名防封.二维码防封.微信防红的技术,但效果并不理想, 那么如何做到微信域名防封呢?这就要借助一些技术来实现有效的防封措施了.给大家分享一段自己在防封这条路上的一些心得.有兴趣的朋友欢迎加我咨询或给我留言! 易实现的方案 第一步 你需要有一个微信域名检测接口,自己开发或是购买都可

在云端服务器+终端的方式安装配置网防G01管理监测系统

生产环境: 操作系统:CentOS release 6.9 (Final) 任务:网防G01管理监测系统 官网提供Linux安装步骤:http://help.gov110.cn/part2/chaper3/linux.html 操作步骤: 网防监测系统网址:http://www.gov110.cn/ 1.在网防监测系统注册账号 2.登录系统下载Linux服务版和客户PC端版 3.Linux服务器安装步骤:即服务端 [[email protected] tools]# wget http://up

UDP打洞、P2P组网方式研究

catalogue 1. NAT概念 2. P2P概念 3. UDP打洞 4. P2P DEMO 5. ZeroNet P2P 1. NAT概念 在STUN协议中,根据内部终端的地址(LocalIP:LocalPort)到NAT出口的公网地址(PublicIP:PublicPort)的影射方式,把NAT分为四种类型(rfc3489: http://www.ietf.org/rfc/rfc3489.txt) 1. Full Cone: 这种NAT内部的机器A连接过外网机器C后,NAT会打开一个端口

酷派S6安全解密之“防窃密防跟踪防监听”

近期苹果.小米被暴收集.回传用户信息的新闻引起了广大消费者的不满和恐慌.从苹果到小米,手机安全警钟长鸣. 有鉴于此,国家相关机关纷纷加强了用机安全管理.日前上海首批加密.安全手机唯一入选机型为酷派S6,引起消费者广泛关注. 作为首批入选的唯一加密.安全手机,酷派S6具有哪些安全特性呢?让我们一起来了解. 操作系统级深层防护:区别于第三方软件 纵观当前中国智能手机市场,向来不缺乏第三方应用厂商推出的安全应用,智能手机厂商同时越来越多地在产品中内置有安全应用.但众所周知的是智能手机安全应用仅在应用层

微信h5游戏如何在微信中做好域名防封 防屏蔽的 工作

最近微信开始大封杀,不知道原因是什么,可能是因为违规网站太多了吧,很多网站都被错杀了,下面我们聊一下怎样才能避免域名被封杀呢. 在各种不同的域名当中,能够做出了更适合的选择,这些对于大家域名防封_域名防红_微信域名防拦截都是很关键的,有太多的人在做的过程中,对于自身的一些选择工作,其实了解的并不算很多,这样就会直接影响到最终的结果,这一点对于我们来说都很重要. 大家在域名防封_域名防红_微信域名防拦截的时候,一定要找到一个比较熟悉的代码进行访问,在整个做的过程中,一定要知道用户想要体验的是什么,