shu87946726 发表于 2013-6-20 23:32:22

ZigBee 路由数据转发的问题

       现在做一个项目,采用协调器加路由的方式进行组网,但是传输距离不够远,希望路由具备转发数据的能力,从测试的情况看,单点传送时,也就是协调器给网络中的路由设备发数据,貌似路由没起作用啊,远端的路由无法返回数据。
   我是这样处理的。。协调器对网络中的路由发送采集数据命令。对应的路由会将数据返回,但当两者距离远时,通讯失败。。路由没应答。。所以就在之间放了几个路由设备,但是仍然通讯不了,感觉没起作用。。我是采用根据物理地址获取网络地址,再使用网络地址通信的方式。但我在测试的时候,我的一条广播命令,远端路由设备却能返回数据。希望大神指教,这是什么原因,采取什么方式才能使路由设备起到数据转发的功能。

mmyer 发表于 2013-6-26 12:17:14

没描述清楚,用什么方案,协议自己写还是协议栈。用物理地址获取网络地址也是要广播,还不如直接广播或者在协调器上做一个物理地址和网络地址的映射。

shu87946726 发表于 2013-6-26 21:31:23

mmyer 发表于 2013-6-26 12:17 static/image/common/back.gif
没描述清楚,用什么方案,协议自己写还是协议栈。用物理地址获取网络地址也是要广播,还不如直接广播或者在 ...

       非常感谢你的回复,最近试了一下,路由貌似起到作用了,采用CC2530,协议栈采用Z-Stack 2.51a 的 Sample例程,之所以没有采用广播方式,是听说会产生广播风暴,虽然不知道具体是什么。我是用协调器对路由发送采集数据命令,然后路由会应答,数据量有点多,最大时,有差不多900字节,所以采用分包发送,在距离较近时,通讯很正常,在距离远的时候。距协调器较远的路由设备不能加入协调器创建的网络,需要拿到很近,才能加入网络成功(路由设备会在加入协调的网络后,发送自己的物理地址给协调器,方便之后的用物理地址获取网络地址进行通讯),接着如果把那个路由放到远处,在中间再放一个路由,发送采集数据命令,也能通讯成功,但会存在掉包失败现象,我已在协议栈中设置接受灵敏度为-94DBM了,不知道采用什么方式能让距离较远的设备能一上电就加入到协调器创建网络呢?
    另外一个问题,因为安装环境的限制,在有遮挡物的情况下,比如远端的路由要绕过建筑物好几个弯,才能到协调器,虽然有路由,但情况也不理想了,丢包很严重。不知道各位大神有什么好的方法,小弟不胜感激。

mmyer 发表于 2013-6-26 23:14:13

加入网络时是要检测父节点的信号强度,在一个阀值以上才会加入,所以会出现距离比较近时才能加入,但加入后通信距离又可以远很多,这是出于稳定性的考虑吧。修改这个阀值可以让加入时的距离远一些。由于2.4G的穿透能力比较差决定了它在有障碍物的情况下通信距离会大打折扣,解决这个问题一方面是加大发射功率,但是功率毕竟有限,解决这个问题还是加路由中继,我觉得是你的路由工作不正常才出现你说的问题。

shu87946726 发表于 2013-6-27 13:49:56

mmyer 发表于 2013-6-26 23:14 static/image/common/back.gif
加入网络时是要检测父节点的信号强度,在一个阀值以上才会加入,所以会出现距离比较近时才能加入,但加入后 ...

那么在上述问题中,远端的路由的设备的父节点是协调器呢?还是在两者之间的路由呢?你的意思是我的路由中继功能不正常?将设备配置成路由后。我就没怎么管了,Z-Stack对于路由方面的很多东西都是不可见的。很多东西都不是很明白

cmheia 发表于 2013-6-28 00:50:36

{:loveliness:}你这方案难度太高了,换JN516x吧,这个简单,SNMP

shu87946726 发表于 2013-6-28 11:25:27

cmheia 发表于 2013-6-28 00:50 static/image/common/back.gif
你这方案难度太高了,换JN516x吧,这个简单,SNMP

现在即将面临交货,方案短期内无法改了。现在是通讯距离限制了通讯的质量。距离短的时候,通讯很正常,基本没什么掉包现象,但是距离远的时候交比较严重,加路由中继的话,效果也不是很明显

30zero 发表于 2013-8-21 17:20:15

请问楼主能否分享一下呢?
页: [1]
查看完整版本: ZigBee 路由数据转发的问题