Part Number:CC2530Other Parts Discussed in Thread:Z-STACK
nwk_globals.h文件中原始内容如下:
// ZigBee Alliance Pre-configured TC Link Key – 'ZigBeeAlliance09'
#define DEFAULT_TC_LINK_KEY { 0x5a, 0x69, 0x67, 0x42, 0x65, 0x65, 0x41, 0x6c,\
0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x30, 0x39 }
nwk_globals.h文件中修改如下:
// ZigBee Alliance Pre-configured TC Link Key – 'ZigBeeAlliance09'
#define DEFAULT_TC_LINK_KEY { 0x20, 0x69, 0x67, 0x42, 0x65, 0x65, 0x41, 0x6c,\
0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x30, 0x20 }
后续实验操作中,代码组网流程是这样的:
节点组网发起请求第一步
zgWriteStartupOptions(ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE);//删除当前的组网信息
resetflag[0] = 1 ;//终端复位标志置1
osal_nv_write(0x0402, 0, 12, resetflag);//模式写入到flash
SystemReset();//重启MCU
第二步节点设备复位之后会根据标志位执行ZDOInitDevice(0);
再复位前,协调器开启了入网窗口60s,设备就完成了该网络的入网,
问题:我给两个协调器烧录的程序是一个版本,除了nwk_globals.h文件中的key是不同的,A协调器是0x20…0x20,B协调器是0x10….0x10;C路由节点的keyf分两次烧录实验,分别为A协调器的key和B协调器的key。
实验结果:
C路由节点因为之前就加入过A协调器,无论key改成什么都只能加入到A协调器,始终没法加入到B协调器,麻烦TI大佬解惑
Cherry Zhou:
您好我们已经收到您的问题并反馈,预计将于24小时内给您答复。谢谢。
,
YiKai Chen:
Z-Stack 2.5.1a預設加密功能是沒有打開的,你的f8wconfig.cfg內的-DSECURE=0有沒有改成-DSECURE=1併加上去使能加密功能?
,
xuan ouyang:
代码中是有enable的
,
xuan ouyang:
协调器和路由都是开启状态
,
YiKai Chen:
Z-Stack 2.5.1a太舊了,不確定TC Link Key是不是會運作;建議你把ZGlobals.c內的zgPreConfigKeys設成TRUE,zgUseDefaultTCLK設成FALSE,然後修改defaultKey試試看
,
xuan ouyang:
我按照要求修改了,zgPreConfigKeys設成TRUE,zgUseDefaultTCLK設成FALSE,路由节点修改了ZDSecMgrTCMasterKey的值,还是会自动加入到原来的网络
,
YiKai Chen:
修改defaultKey試試,另外建議抓包看看封包是不是加密的
,
Cherry Zhou:
如果使用相同的 DEFAULT_KEY ,那么即使没有该弃用 Zigbee 规范下的正确 TC Link Key ,器件也能够自由通信。
您可以通过 DEFAULT_CHANLIST 和 ZDAPP_CONFIG_PAN_ID 进一步分隔网络。
以及为了更好地解决您的问题,您是否能提供监听器日志?
,
Cherry Zhou:
如果该节点具有不同的 TC Link 密钥,并且它们不共享预分配的 Nwk 密钥,那么我们认为该节点不能加入 ZC 的网络。 ZCD_STARTOPT_DEFAULT_network_State 和 ZCD_STARTOPT_DEFAULT_CONFIG_STATE 都应设置为完全出厂的新配置,否则无法确定器件是否正在重新加入其先前的网络或重新尝试加入 (包括网络发现) 。