首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

help:zigbee 网络动态重组问题!

help:zigbee 网络动态重组问题!

小弟最近在弄一个zigbee的项目,在组网上碰到了一些问题,请高人赐教!急!谢谢!                           

1.如果一个router断掉的话,会造成通过这个router路由的一系列节点瘫痪掉,大家有没有很好的解决方案.这样在实际中就会造成网络的不可靠.

2.子节点如何获得父节点的地址(网络地址或IEEE地址)

3.网络建立的过程是怎样的.先要启动coordinator建立一个网络,那么其他的设备启动的次序不一样是不是网络的拓扑就会不一样,后启动成为先启动的自节点.对于网络的建立过程和拓扑结构很迷惑.

4.假如网络瘫痪掉后,怎么样可靠的恢复,如何做一些必要的备份.

如果谁有关于网络重组方面的资料,可否共享一下.先行谢过!

尽力回答一些,有不对之处大家讨论:

1。据我所知freescale有一个manyhops的demo,实现mesh的功能,router断掉的话,它下面的节点会自动寻找其他节点连接。可以发mail到jimmytan@freescale.com问问

2。这个应该可以获得,但是怎么做我也不知道。

3。设备启动的先后次序的确会对网络拓扑造成影响。一般来说设备会scan周围的情况,等到一些信息,找到link quality比较好的路径。

4。在z-stack中可以预定义NV_RESTORE,这样设备和网络的信息会自动保存下来。

[此贴子已经被作者于2005-11-17 11:09:02编辑过]

1.z-stack中可以预定义NV_RESTORE 这个我知道的,我也实验过,但发现编译时加了这个选项后,就不能解除end device binding了,这个问题应该如何解决.我需要实现自由的bind和unbind啊.

2.routerepair是如何实现的,假如修复不了我又该如何去恢复网络呢? 谢谢!

[此贴子已经被作者于2005-11-17 17:40:19编辑过]

前面说到的manyhops用的是direct的方式,不通过binding,所以拿到程序后你就会知道NV_RESTORE和router repair的问题都是可以解决的
我来回答你提到的问题:
1.首先你的网络如果是tree/cluster tree的话,网络中的Router是不能动态路由的,所以如果某个router死掉的话,这条路经就会断掉。所以tree型网络直适合比较简单的网络,同时对网络的稳定性很高。在实际的网络中,mesh网络是必较多见的。mesh网络是支持动态路由的。如果某个router死掉的话,在网络层会起用route repair这个功能,去寻找其他的路由途径。这个过程,是需要一个路由算法来完成的,比如说通过link quality来决定。。。
2.每个device在出厂前,都会有一个64位的硬件地址(IEEE地址)。所以如果你想知道一个DEVICE的16位的地址的话,你可以调用NLME_GetshortAddr(),相反你可以调用NLME_GetExtAddr().你可以参照z-stack的开发文档说明。
3.在一个网络中,首先有coordinator起来建立网络,然后其他的devices申请加入。这个网络的拓扑结构是由每个devices的location决定的。如果是tree网络的话,网络的拓扑是定好的。但如果是mesh的网络,这个网络会根据这个网络中devices的变化会动态改变的。当然你如果用了NV_RESTORE的话,你的信息就会存下来。
4。如果你用了NV_RESTORE的话,你可以在网络重新起来的时候,去掉原来的信息。在SARD板子上,是按住SW3的同时,再POWER ON. Route repair是在网络层完成的工作,应用层是不用去管的,只要你启用了mesh功能,就可以了。
返回列表