微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > SampleRemote 协议栈关于组网分配地址的问题

SampleRemote 协议栈关于组网分配地址的问题

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

TI的朋友们你好

    我是Z-Stack 1.0.2的协议栈,我在SampleRemote里面看到了在TouchLink后,新的灯设备会被分配一个短地址,1是自己,其他节点按照2,3,4这样往下分配的:

static ZStatus_t initiatorSendNwkStartReq( zclLLScanRsp_t *pRsp )
{
....其他代码....

pParams->nwkAddr = zll_PopNwkAddress();
    if ( pParams->nwkAddr == 0 )
    {
      pParams->nwkAddr = osal_rand();
    }
    // update address for app notification
    selectedTarget.newNwkAddr = pParams->nwkAddr;

....其他代码....
}
uint16 zll_PopNwkAddress( void )
{
  if ( ( zllFreeNwkAddrBegin == 0 ) || ( zllFreeNwkAddrBegin > zllFreeNwkAddrEnd ) )
  {
    return ( 0 );
  }

  return ( zllFreeNwkAddrBegin++ );//从0x0002到0xFFF7往下分配
}

这个地址也会被发往灯设备。

1.  那么问题来了,我在initiatorScanRspCB里,即扫描信道处理函数里,会发现afAddrType_t *srcAddr 里有设备的原短地址。

这个地址是u16类型,而且永远是固定的(Mac地址),为什么不用这个地址来进行组网后的控制与通信?

2.  信道扫描到的设备短地址永远固定,那么它是不是唯一的?不会有重复或冲突?

3.  我可不可以不让遥控器自动分配地址,每次用扫描到的设备短地址进行分配?

                                                                                                                                非常感谢!

建议研究下ZigBee 标准和ZigBee Light Link的标准。

1, ZigBee网络通信是用短地址通信的,就像IP地址一样。

2,什么叫短地址永远固定?

3,什么叫设备短地址进行分配?

就是说现在组网后通信用的地址是按照遥控器给分配的2,3,4,5.....这样往下分配的,

我现在的做法是,不调用zll_PopNwkAddress();,不再使用这种分配方法,直接使用IEEE地址后四位,比如54DB, FA26, CD68, 54CC这些地址进行通信

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

网站地图

Top