This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

zigbee 请求帮助!!!

使用的协议栈版本是:ZStack-CC2530-2.5.1a

使用的无线芯片是:CC2530F256RHAT

开发环境是:IAR 8.10.3

项目描述:

20个终端,1个协调器。每一个终端都布局在协调器的20米范围内。20个终端都能与协调器通信上。20个终端会每天断电重新上电一次,协调器也可能会断电重新上电。我现在使用项目工程是从D:\Texas Instruments\ZStack-CC2530-2.5.1a\Projects\zstack\Samples\GenericApp修改过来的,并且不管是协调器还是终端,我都在Option中的C/C++Compoler的Preprocessor的Defined symbols中加入了NV_INIT、NV_RESTORE,希望系统保留原先的网络。另外,如果终端找不到原来的网络存在,在检测到设备状态为(devState == DEV_NWK_DISC)时,1分钟后将恢复这个终端的自由之身,重新寻找新的网络,重新加入,这个处理方法如下:

if(devState == DEV_NWK_DISC)
    {
        JoiningNWKTimer ++;
        if(JoiningNWKTimer >= 6000)
        {
            JoiningNWKTimer = 0;
            
            // 网络复位
            zgWriteStartupOptions(ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE);
            SystemReset();
        }
    }
    else
    {
        JoiningNWKTimer = 0;
    }

以上这个代码只在终端程序上实现,协调器没有使用。

现在遇到的问题是:刚开始上电终端都能与协调器通信上,接下来给协调器断电,断电时间超过设置的1分钟,然后协调器重新上电,这样反复几次之后,发现协调器与终端通信不上了,采用SmartRF Packet Sniffer工具抓包(为了方便起见,我停掉了19个终端,只保持一个终端在线),发现终端会发出beacon resqust请求,协调器也会发出回应,但是接下来终端没有理会协调器,还是发beacon resqust请求。抓包工具展示如下:

请TI的大牛们帮忙分析一下状况,显现,在线等着你们精彩的解答!!!!