TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2530组网深度问题

1、看了好多Zigbee模块的资料,说法不一致,Zigbee2006协议中相关的说法为,网络层有个常量是nwkcMaxDepth的值是0x0f,为什么只支持15级呢?

2、默认是5级,当每个路由的终端数都是最大值时,各个中断同时像协调器发送数据,会不会出现数据竞争,网络不稳定的情况?

3、是不是级数越大,对CC2530的内部RAM的需求就越大?现有的8K能支持15级么?

4、实现可靠通信,最多支持多少级路由?

 

VV:

1, 现在的ZigBee协议栈标准已经是ZigBee Pro了,ZigBee2006 是早期的协议标准。这个0x0F是指广播半径的深度,也就是一个广播数据可以最多转发的次数2*0x0F.  只是一个默认的参考值而已。

#if !defined ( DEF_NWK_RADIUS )  // the default network radius set twice the value of <nwkMaxDepth>  #define DEF_NWK_RADIUS           ( 2 * BEACON_MAX_DEPTH )#endif

2, 看同时发数据的设备个数,如果是同时刻竞争方式发数据的话,肯定会有问题。有大量的重发和丢包现象。

3, 只能说是有关系,CC2530的RAM在网络参数上,主要保存了子设备的信息,邻居表信息,路由表信息,那么你这些表格设的越大RAM开销也就越大。如果你的级数很大,但是只一个设备连另外一个设备的话,这样消耗的RAM也不会很大。

4,看实际应用的需求和实际应用场景

Emily:

回复 VV:

谢谢,那网络中,某个节点退出网络时(认为节点有故障),协调器能发现、定位故障节点吗?

VV:

回复 Emily:

如果是主动离开的,会发送leave消息出来。

如果是因为电池能量不足离开的,或者故障等离开,只能是应用层做相关的心跳机制了。

但是对于End device,现在Z-stack Home 1.2.0协议栈里面加入了child aging功能,如果节点长时间不跟父节点通信,父节点会把节点信息删除掉

Emily:

回复 VV:

谢谢,在这个网络中,都是协调器主动向目的设备发起数据,那End device 会不会主动向协调器或者父节点主动发送数据呢。

节点长时间不与父节点通信,父节点删除这个节点信息之前会进行一下消息确认吗?一般这个时间有多长呢?

我们在使用的时候,可能会 一天让节点执行两次,也会一个多月不去用它,让他工作在深度睡眠模式下,直到有个外部中断信号触发唤醒。

另外,即使父节点把这个节点信息删除,是不是等节点醒来还会自动加入网络?

VV:

回复 Emily:

// Child table Management timeout values

CONST uint16 gKEEPALIVE_TIMEOUT_MAX = KEEPALIVE_TIMEOUT_MAX; //在协议栈运行过程中,被初始化以后就不会变化了,用来表示节点最大的Age时间可以是60分钟

CONST uint16 gTIMEOUT_COUNTER_MAX = TIMEOUT_COUNTER_MAX;//在协议栈运行过程中是动态变化的,协议栈中有一个1分钟的循环timer event,当timer event触发的时候,会去检测在这个在一分钟是否有收到Data request,或者其他数据,如果没有的话就会把timeoutCounter减1,如果连续60分钟没有收到的话就把这个节点放到另外一个not child 的list里面去了,在中途只要收到一条来自这个节点的数据,这个counter立刻被Reset成初始化60,这个值就是通过endDevKaTimeout获得的。

当有新的RFD设备入网的时候,初始化RFD设备的Aging Timeout时间为60分钟。

ZDO_ProcessEndDeviceTimeoutReq 就是你说的功能。

gancheng:

回复 VV:

我知道路由的nwk_link_status包会重置age,这在2.6之前的core就有,最新的HA协议栈里面,终端节点发送的除了data request,其他任何数据都能重置age吗?

VV:

回复 gancheng:

发送数据的时候,必定会发送data request,用data request来做标记

gancheng:

回复 VV:

这个不一定吧,比如一种情况,终端设置成RxOnWhenIdle=true的时候。

VV:

回复 gancheng:

对的,如果把终端节点设置为Rx always on,那还不如设置成路由呢!

dongwei jiao:

回复 VV:

一个zigbee网络中,pan id应该是唯一的吧?

网络中一台A协调器连接N台路由设备,短地址是A协调器分配的?如果同一台路由设备连接到另外一台B协调器上,再次重新组网到A设备上,这时短地址应该是重新

分配?这个网络如果最多能连接20台设备,比如5台设备反复更换网络,会把地址沾满,导致A协调器不能在连接这5台设备?

如果上述问题存在,那又如何解决连接问题呢?

谢谢

赞(0)
未经允许不得转载:TI中文支持网 » CC2530组网深度问题
分享到: 更多 (0)