liuh 发表于 2007-10-18 15:35:25

请问nrf905怎样可以做到多发多收?

用nrf905做的模块,单个发送接收都没问题。因为项目要求多个发送、多个接收并存,在使用中发现大部分数据被丢失,dbm设置高的设备丢失相对低点。即使发送前检测是否有载波信号丢失问题依然严重,很急。

多发多收同时存在的设备大概在100左右,请高手给个思路,谢谢了。

lwz720 发表于 2007-10-18 15:56:58

如果硬件无法完成,就只能通过改动协议来防止碰撞.

mutoudonggua 发表于 2007-10-18 15:59:10

时分加频分

如果对数据率要求严格,无法满足100个同时通信

walker 发表于 2007-10-18 17:57:51

估计楼主手中这块山芋有点烫。
    多机互联得有个可行的协议,光靠检测载波是不够的。提点儿思路供你参考。
    整个系统共用多信道,不要只使用单信道,发送先载波侦听,哪个空就在哪个信道上发送;
    接收要多信道扫描;
    发送时长要大于扫描接收一轮的时间;
    要建立应答重发机制;
    发送数据要排队,确认发送成功的数据,从发送队列中去掉;
    辨别并忽略重复接受的数据;
    ... ...

Oliver 发表于 2007-10-18 22:46:12

分组同步,快速点名方式,或者自动排序上传.

liuh 发表于 2007-10-19 09:40:02

不好意思,昨天发完问题又想办法测试去了,没来得及答复。

lwz720 ,就是同时存在设备太多,所以不知道怎样定义协议才能防止碰撞。谢谢:)
mutoudonggua 木头东瓜,接收发送基于体积和成本考虑都是使用的晶振8m的单片机非arm,如果划分100甚至更多。。。我试试,谢谢:)
walker,如果用硬件实现多信道,应该可以做到,但接收设备会比较复杂。如果用软件实现多信道。。。发送时长要大于扫描接收一轮的时间。。。如果有3个信道被占用,接收端的扫描时间就=3个信道信息处理时间,那么第4信道发送的数据时间怎么计算呢?。。。因为发送端是低功耗手持设备,基于功耗考虑,应答重发比较难(少量丢数据<2-4%被允许)。。。接收数据有队列。。。基于单片机资源和速度,重复数据会递交到计算机再处理。。。另外,做的nrf905模块的信道精度并没有资料上那么高,在多信道载波检测时依然存在干扰,加大一倍后干扰变小。我先试试,非常感谢您的建议:)
Oliver,所有手持设备完全突发事件,不做接收处理,分组分时轮询等比较困难。谢谢:)

开始太急没说清楚,简单说一下。
构成:
    手持发送设备(同一范围内最多100点)、接收设备(同一范围内最多10个点,总数大于200点)、电脑中央控制器(arm连接电脑处理)。

数据流:
    手持发送设备--单向--》 接收设备、电脑中央控制器--双向--》 接收设备

设备:
    手持发送设备:按键操作存队列。休眠唤醒后,检测队列,不为空检测波,无波发。
    接收设备:等待接收处理(手持机430M,中央控制器433M)。
    电脑中央控制器:接收的数据存队列,每秒递交电脑一次。

再次谢谢大家。我先按大家的建议小范围测试。。。明后天再来。

ilymy 发表于 2007-10-19 10:07:16

支持2楼

如果节点离的很近,频分也不行的,我试过,影响很大的

数据少的话就每一个点一个id,轮班来,节点太多抢占式通信恐怕不行

liuh 发表于 2007-10-20 08:59:40

节点一多就出问题,程序怎么改都不行。
也许得改硬件了。。。10个信道的接收设备,每秒轮询汇总一次数据,然后发送给中央控制器。。。

软件测试与硬件改进同时进行吧,只能这样了。谢谢大家。

nicholasdlut 发表于 2013-3-25 23:32:12

walker 发表于 2007-10-18 17:57 static/image/common/back.gif
估计楼主手中这块山芋有点烫。
    多机互联得有个可行的协议,光靠检测载波是不够的。提点儿思路供你参考 ...

思路不错,值得研究
页: [1]
查看完整版本: 请问nrf905怎样可以做到多发多收?