微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 终端位置变化后,从发出孤立广播到开始重新关联耗时约5s,能否调整协议栈加快重新关联操作

终端位置变化后,从发出孤立广播到开始重新关联耗时约5s,能否调整协议栈加快重新关联操作

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

如题,采用MESH协议,终端从一个路由器旁移动到另一个路由器旁时,发送数据,因发送失败进入孤立状态,发出孤立广播,发出后约5s才开始请求beacon进行重新关联的操作,能否修改协议栈参数降低这5s的等待时间。

通过修改DEXTENDED_JOINING_RANDOM_MASK、DBEACON_REQ_DELAY_MASK参数已经加快重连速度。

你好,首先你要知道节点变成孤立节点以后,状态是怎么样变化,协议栈处理的流程是什么,这样可以去看能不能改动。

当节点跟父设备断开以后,首先会调用ZDO_SyncIndicationCB( type, shortAddr );

这个函数里面会发送ZDApp_SendMsg( ZDAppTaskID, ZDO_NWK_JOIN_REQ, sizeof(osal_event_hdr_t), NULL );给ZDO层。

在下面处理这个消息

case ZDO_NWK_JOIN_REQ:
if ( ZG_BUILD_JOINING_TYPE && ZG_DEVICE_JOINING_TYPE )
{
retryCnt = 0;
devStartMode = MODE_RESUME;
_tmpRejoinState = true;
osal_cpyExtAddr( ZDO_UseExtendedPANID, _NIB.extendedPANID );
zgDefaultStartingScanDuration = BEACON_ORDER_60_MSEC;
ZDApp_NetworkInit( 0 );
}
break;

在上面把节点改成resume,然后初始化节点,

zgDefaultStartingScanDuration = BEACON_ORDER_60_MSEC;是orphan在每个信道广播的时间

--------------------------------

if ( events & ZDO_NETWORK_INIT )
{
// Initialize apps and start the network
devState = DEV_INIT;
osal_set_event( ZDAppTaskID, ZDO_STATE_CHANGE_EVT );

ZDO_StartDevice( (uint8)ZDO_Config_Node_Descriptor.LogicalType, devStartMode,
DEFAULT_BEACON_ORDER, DEFAULT_SUPERFRAME_ORDER );

// Return unprocessed events
return (events ^ ZDO_NETWORK_INIT);
}

-----------------------------------

在ZDO_StartDevice里面,然后调用

NLME_OrphanJoinRequest( zgDefaultChannelList,
zgDefaultStartingScanDuration );发送orphan notification,

然后然后,你可以再跟踪下到什么时候再去发送beacon了。。。。。

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

网站地图

Top