-
那网络地址就是随机分配的。
-
类似这个么?
http://v.youku.com/v_show/id_XNTAyNzE5MzY4.html
-
1. 用的zstack是什么版本?
2. 打开了NV_RESTORE么?
网络地址是16位随机分配值。
重新上电后,协调器重新组了个网,路由器如果重新加入网络则还会被随机分配地址。
-
纠结一:
Many-To-One的有个参数是关于concentrator是否有内存限制。这个内存限制是否就是source route entries?
是这个意思
我选择的CONCENTRATOR_ROUTE_CACHE=false。这样貌似每次都会发送route record command,
因为你选择了 false,所以每次都会触发route record,如果你选择了true, 则只会发送一次route record。当该域为1时,concentrator收到route record后会将route record中记录的中继节点都存在souce route table中,下次要向该路由器发消息时直接查看source route table表,若有该路由器则直接沿这个路径发回去,不会再去发送普通路由的route request,route reply的广播
我能不能把MAX_RTG_SRC_ENTRIES设置成1,不使用source routing而使用正常的routing?
可以的,当你正常使用Source routing时,普通路由也是开启的,在你source route表中找不到对应的地址时,就会沿正常AODV的路由模式进行。
纠结二:
source route entries有个过期时间SRC_RTG_EXPIRY_TIME。这个时间能不能不过期?因为concertrator主动向router发数据source routing很有可能是过期了的。
因为source route表大小有限,且该表较大,因为可能中间的跳数较多,中间地址都存在里面了,所以设了个过期时间。一般这种应用都会定时向concentator上报数据,下次上报时就更新了。
-
Zigbee的标准可没有定义跟PC连接时的传输帧格式,这个是每个厂家自己定义的。所以这个问题没法回答吧。。。
-
附上 apscMaxWindowSize在spec中的定义:
apscMaxWindowSize :Fragmentation parameter - The maximum number of unacknowledged frames that can be active at once。Set by stack profile (1-8 supported)。
-
结合sniffer图片看的清楚哈。
这部分截图的前提是ZC 0x0000 发送fragment包给 ZR 0x1122, 每个包都经过ZR 0x8A9B中转。这个包总共的block number = 8, 即分成8个包发送。而apscMaxWindowSize = 3,这个是对节点的设置,意思是当收发fragment包时,接收方在一个window的时间内每收到3个block包就要发送一个APS的ack告知发起者都收到或有丢失,以免错误累积太多后再重发的开销太大。
回到例子,由图上可以看出,绿色APS的包为fragment的包,line 156-159为block 0(由于是第一个分片,所以APS extender hdr中的block number填的是总共的block数量,此实例中为8),line160-163为block 1,line 164-167为block 2,这时由于0x1122 收到3个block了,等于apscMaxWindowSize 了,然后发送一个APS ACK 给0x0000。
0x0000收到ack后再继续发送后续包,每过3个block后0x1122再发送一次APS ACK, 直到结束。
-
先上传一张sniffer的截图
-
可以联系我,我们可以合作 ,我已经在家里做了一个demo room, 硬件以及远程无线控制都完成了,就差android或iphone软件了,QQ:82557178.
-
用来更新网络信息的,将自己neighbour table中的结点广播给大家,并更新其中的lqi,cost等链路信息,维护链路。同时,neighbour table中的ageing功能也是通过查询其余结点的link status实现的。
可以更改,关于具体更改的方式每个厂家的API和工具不同,但肯定在NIB中(network information base),nwkLinkStatusPeriod域。
-
我是上海做zigbee研发的,具体可以详聊,kanjie.zhu@gmail.com
-
3. 路由节点的邻居表中是只保存它的子节点的信息吗?还是整个网络的节点信息?
并不仅仅保存其子结点信息,隔壁邻居的信息也会保存,会在其中标注好自己与他们的关系,如child, sibling,previous child等。
一般neighbor table的数量有限,具体的数量取决于厂商的不同实现,但通常会有ageing,即定期刷新的功能,几次没听到相应的link status,就可能把这个结点给删了,下次要发送数据会通过route request重新建立路由,或使能source routing的功能进行发送。
-
2. 路由节点和终端节点的网络深度是如何确定的?
coornidator是0的话,其子结点为1,再子结点为2,依次类推
-
1. 终端节点如何通过路由器入网的?
在security level = 0的网络中,end device加入router与router加入coordinator是一样的,加入完成后通过发送device announce命令通知整个网络,需要注意的是通常router加入网络后的device announce命令是广播的,再由其他收到的结点一层层广播下去,直至整个网络都知道有新router加入。而end device加入网络后的device announce是单播给父结点的router,再由此router代为广播。
在security level = 5的网络中,当有新结点加入router,不管新节点是router还是end device,其被加入的router都会发送update device给Trust Center(通常使用coordinator作为Trust Center),再由Trust Center发送nwk key或APS key给新节点,然后再继续剩余的加网过程。
-
没明白为什么要用到GPRS? 一端用zigbee发送控制命令,另一端zigbee接收命令后通过GPIO/I2C/SPI等方式驱动LED
-
路由能力是指的具有建立/维护路由表,发送route request,route reply,route record能力的结点,Coordinator和Router具有此能力,End-Device不具备
-
我对你们所使用的硬件不是很熟悉,说说我们目前自己使用的策略吧,通常情况下在硬件层使用的是CS或ED的检测方式,ED的能量设置到-80~-90DB,这样相当于检测条件较松,两者满足一个就能发送数据,当外界干扰特别大的时候如WIFI干扰特别强时,选择channel26并只用ED,能量设置到-75左右,这样检测条件较紧。BE设置的5,即在2的0次方到2的5次方间会随机退避重试,重试的次数是3。
-
最少的应该是26,其余全在wifi的覆盖范围内
-
只要网络中有router,那新的router也应该可以加入的吧
-
先做个实验用抓包器抓一下:
当r4加入网络时,查看coordinator发出的beacon包,检查其中的router capacity位是否为1?
如果为0,说明r1掉线时,coordinator端的maxRouter计数没有更新,你得确保r1掉线超过45秒,(3个link status的时间),如果超过45秒后再加入r4,这一位还是0,说明是stack bug。