lisemi 发表于 2010-10-21 17:47:20

nRF24L01实现发送和接收配对问题

近段时间做了一个nRF24L01无线通信程序,已实现数据通信,可问题又来了,要是我同一个环境下有多台发送和接收的机器,怎么才能使他们其中一对配对起来而不受其他发送和接收模块的影响,我说的是像蓝牙那样配对起来。要是靠发送地址或数据不同来实现的话,只能会造成程序不通用,每个模块要下不同的程序,那样太不方便了。请高手指教如何是实现配对?谢谢了!

xiaoye2886 发表于 2010-10-21 22:34:56

应该用外部储存器记录ID号就行了,像无线鼠标一样,对好码,就一直可以使用了。

hyh050106106 发表于 2010-10-22 09:38:45

同问~

lisemi 发表于 2010-10-22 14:07:20

怎么没人回答的,自己顶!!

wuzhaokui88 发表于 2010-10-22 20:13:34

可以在通信程序理加上配对密码   密码对上就解决一对多了可以的

lisemi 发表于 2010-10-27 15:38:52

我要的效果是发送端数据加前码或后码,而所加的前码或后码是一个随机数,发送机每上电一次随机数都会变化,接收端接收的数据以第一次接收到的数据为标准,要是有不同的数据发送到来接收端就不接收。断电之后再上电则重新判断第一个数据。请问接收端该怎样判断?

sio2 发表于 2010-11-2 18:52:28

一个解决方案:发送端和接收端都设置一个配对按钮,同时按下两方的按钮进行配对。发送端检测到按钮被按下后发送所有接收端都能接收的配对命令和编码随机数,只有配对按钮被按下的接收端才将这个随机数作为自己的地址。成功后双方都将这个地址放到EEPROM中,这样断电也不会影响配对,更利于实用。

Momo 发表于 2010-11-2 20:14:59

刘兄好久不见,宝宝现在如何?会叫爸爸了吧?

Momo 发表于 2010-11-2 20:17:49

不好意思楼主,光顾着和老朋友打招呼了。
你的问题解决方案,一般来说会在收发端都加入EEPROM,一旦对码后互相写入对方的ID等信息,这样下次开机就不会重复了。

至于这个ID如何产生,根据产品特性来定,要求稍微低点的,对码是随机产生2~3个bytes,要求高点的,每台产品在批量生产时写入唯一ID。

sio2 发表于 2010-11-5 19:09:59

呵呵,谢谢Momo挂念!孩子会跑了,能含混不清的说些话,大人基本能懂他的意思。
针对楼主的问题我这个解决方案似乎要多加两个开关,我去年买了套无线键鼠套装,自动对码,没有额外的硬件参与,我也没搞懂是出厂前就配好对了还是通电时临时配对。现在想来厂家为了量产估计也不会出厂前就配好对,那也会影响产品的通用性。但要在没有额外硬件支持的条件下实现配对那就只有通电时间先后的区别了,一个设备通电后首先扫描所有能通讯的设备,利用设备出厂就固有的ID或是临时产生一个ID,先通电的产品在某种协议下配对成功后都互相记录下对方ID。后通电的产品就可以知道那些已经配对好了的,对于已经通电还没配好对的则自动配对。要实现这个功能就要求有一个公共通道是所有接收端都能收到信息的。。。。。。这都是一个算法问题,头大了,呵呵,算法肯定好多。以上只是我对自动配对的一些设想,欢迎批评指正。

lisemi 发表于 2010-11-10 21:54:41

谢谢大家了,参照大家的方法我已经实现配对了。

lgymilu 发表于 2010-12-13 09:38:35

请教楼主一个问题,我也在做24L01的程序,想要实现数据相互传输,即接收端收到数据后再把另一组数据传给发送端,发送端转为接收端,但是时序上总是把握不好,有什么解决办法吗

lisemi 发表于 2010-12-13 16:41:13

原发送端发完数据后就进入接收模式,原接收端判断数据收到后就转为发送模式发送想要的数据就可以了。
页: [1]
查看完整版本: nRF24L01实现发送和接收配对问题