协议栈:Z-Stack Home 1.2.2a
CPU:CC2530
节点:一个路由器,一个终端
问题:
enddevice离网后无法恢复加入父节点,仿真发现是由于终端节点ZDApp_NwkDescListProcessing()函数中deviceCapacity为0导致失败;而使用协议分析仪捕捉的数据包中,父节点回复的beacon中end deviceCapacity为1(见附件)
当两节点距离较近时,恢复入网的几率更大,仿真发现成功时ZDApp_NwkDescListProcessing()函数中的deviceCapacity为1。
附件中的数据是在两节点距离较近时捕捉的,可见经过了20多次的beacon request与beacon才成功恢复入网,而所有父节点回复的beacon中end deviceCapacity均为1.
请问这是什么原因呢?
VV:
最有可能的就是收到的beacon 信号强度太低,或者是没有收到beacon。
因为sniffer是一个第三方设备,sniffer收到并不一定设备也收到。
你可以看下接收处理beacon的地方,
void ZDO_beaconNotifyIndCB( NLME_beaconInd_t *pBeacon )
// check if this device is a better choice to join… // …dont bother checking assocPermit flag is doing a rejoin if ( ( pBeacon->LQI > gMIN_TREE_LQI ) && ( ( pBeacon->permitJoining == TRUE ) || ( _tmpRejoinState ) ) ) {
另外你们的CC2530节点硬件是否有测试过,频偏,发射功率都正常么?
sinan chen:
回复 VV:
@VV
感谢回复。
我将gMIN_TREE_LQI 调低后,问题基本解决。
另外,问下频偏,发射功率的测试有推荐的机构吗?我们不具备测试的能力,谢谢
天空:
回复 sinan chen:
有2种方法:
1,去TI的开放实验室,里面有相关的测试仪器
2,去RF测试仪器的开发实验室也可以。但是这种实验室是为了卖仪器的。免不了他们的商务来打扰你
xiaohui bu:
回复 天空:
1,去TI的开放实验室,里面有相关的测试仪器
TI的开放实验室在哪?深圳有吗?