微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 关于Z3.0 BDB NWK_STEERING的问题

关于Z3.0 BDB NWK_STEERING的问题

时间:10-02 整理:3721RD 点击:

我在使用CC2530 作为终端设备加入ZHA的网络,其中CC2530的

zgApsAllowR19Sec设置为TRUE,

初始化时候,先调用bdb_initialize(),然后按键后调用 bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING);

用抓包数据分析数据交互过程,

终端设备发送beacon,收到应答后,然后终端设备发送association request ,协调器应答association response ,然后终端设备发送几次 data request , 协调器发送data response ,这样交互几次之后,终端设备再次发送association request ,协调器再次应答association response。

直到BDB的回调函数返回BDB_COMMISSIONING_NO_NETWORK ,才会结束。

为什么会多次发送association request ,为什么收到association response后,BDB不返回SUCCESS?

问题2:

我让设备自己离开网络,调用如下函数:

 NLME_LeaveReq_t leaveReq;
   osal_memset((uint8 *)&leaveReq,0,sizeof(NLME_LeaveReq_t));
   osal_memcpy(leaveReq.extAddr,NLME_GetExtAddr(),Z_EXTADDR_LEN);
   leaveReq.removeChildren = 0;
   leaveReq.rejoin = 0;
   leaveReq.silent = 0;
   NLME_LeaveReq( &leaveReq );
为什么调用这个函数后,有时候设备重启,有时候设备不重启。

设备重启后,有时候会提示PARENT_LOST ,有时候不提示PARENT_LOST。

问题3:

当提示PARENT_LOST后,我调用了bdb_ZedAttemptRecoverNwk();

为什么调用ZedAttemptRecoverNwk()函数后,不能再次收到BDB的回调函数事件 , 我看手册是调用ZedAttemptRecoverNwk()后,不论是否入网成功,BDB的回调函数都应该被执行,来通知用户程序是否入网成功。

下图是入网时候多次association的抓包截图:



问题一,协调器在回复Associate Response以后,协调器有回复Transport Key没有解析出来的,请确认两边的Trust Center Link Key是否一样?

为什么要把zgApsAllowR19Sec设置成TRUE

问题二,如果终端节点要让自己离网,请把extAddr设置成NULL

问题三,在ZDO_STATE_CHANGE里面有收到状态改变么?

请问你们现在开发什么产品,是否需要过zb3.0的认证?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top