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.

enddevice无法恢复加入父节点,仿真发现是由于deviceCapacity为0,而捕捉数据包中deviceCapacity为1

Other Parts Discussed in Thread: Z-STACK, CC2530

协议栈: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.

请问这是什么原因呢?

201702062203.zip
  • 最有可能的就是收到的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节点硬件是否有测试过,频偏,发射功率都正常么?

  • @VV 

    感谢回复。

    我将gMIN_TREE_LQI 调低后,问题基本解决。

    另外,问下频偏,发射功率的测试有推荐的机构吗?我们不具备测试的能力,谢谢

  • 有2种方法:

    1,去TI的开放实验室,里面有相关的测试仪器

    2,去RF测试仪器的开发实验室也可以。但是这种实验室是为了卖仪器的。免不了他们的商务来打扰你

  • 1,去TI的开放实验室,里面有相关的测试仪器

    TI的开放实验室在哪?深圳有吗?