专栏中心

EEPW首页 > 专栏 > zigbee路由原理-树型

zigbee路由原理-树型

发布人:mayer 时间:2009-09-06 来源:工程师 发布文章
zigbee路由原理-树型

 

ZigBee2004和ZigBee2007 均有对树型路由的支持.

     ZigBee2004采用分布式地址分配策略;ZigBee2007地址分配策略可选,如果选用随机地址分配策略,就不支持树型路由.

     当采用分布式地址分配策略时,网络层有一套算法来支持数型路由.

    

     分布式地址分配策略的树型路由原理来原于地址分配算法原理.

     当节点发送数据时,如果节点为终端节点,则数据直接发给终端节点的父节点,当接点为ROUTER点时,通过比较目标地址和CSKIP 可以知道是要向上传(传给父节点)还是向下传,传给某一个子节点.COORDINATOR只需要决定传给哪一个子节点.

    判断某一个节点是不是自己的下游节点算法是:

    如果目标地址比该地址大,切目地址小于该节点上一级CSKIP与该节点地址的和,

    C语言实现代码为:

PRIVATE bool_t IsMyDescendant( uint16 parentaddr,

                 uint16 childaddr,uint8 parentdepth )

{

    if (parentdepth == 0)

           return TRUE;

      else

    {

        if ((parentaddr < childaddr) &&

            (childaddr < (parentaddr + get_Cskip( parentdepth-1 ))))

            return TRUE;

        else

            return FALSE;

    }

}

树型路由实现算法 C语言代码为:

PRIVATE bool_t JTreeRouting(uint16 dstaddr, uint16 *dstnexthop)

{

    NWK_NeighborTable_s *ChildPtr;

    if(dstaddr == 0xffff)

    {

        *dstnexthop = 0xffff;

        return TRUE;

    }

#ifdef I_AM_ENDDEVICE

     *dstnexthop = psPib->u16CoordShortAddr;

     return TRUE;

#else //router or coor

        // Find which of my child nodes is the parent of the destination.

#ifndef I_AM_COORDINATOR

          if (!IsMyDescendant( gsNWK_Para.gsNIB.u16nwkNetworkAddress,

               dstaddr, gsNWK_Para.gNwkDepth ))

        {

                *dstnexthop = psPib->u16CoordShortAddr;

                return TRUE;

        }

#endif

ChildPtr = gsNWK_Para.neighbortablehead;

        while(ChildPtr != NULL)

        {

             if(ChildPtr->u8Relationship == NEIGHBOR_CHILD )

             {

                  if (((ChildPtr->u16Addr == dstaddr)           

                 ||IsMyDescendant(ChildPtr->u16Addr,dstaddr,          

                  gsNWK_Para.gNwkDepth+1)))

                  {

                       *dstnexthop = ChildPtr->u16Addr;

                        return TRUE;

                  }

             }

             ChildPtr = (NWK_NeighborTable_s *)ChildPtr->next;

}//end while

     return FALSE;

#endif

}

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

P89C669单片机数据手册

P89C669单片机用户手册 (英)

TI采用多芯片封装技术“改造”隔离电源模块

中国半导体设备厂商再获资本加码

EDA/PCB 2026-03-30

泰克发布高效电源测试白皮书: 以95.5%回馈效率重塑AI数据中心测试标准

测试测量 2026-03-30

Solidigm亮相中国闪存市场峰会,聚焦AI工作流挑战,展示高性能存储方

网络与存储 2026-03-30

马瑞利将在2026北京车展发布20余项创新成果 推进本土化、成本效率优势与快速交付

P89C669单片机数据手册 (英)

如何在恶劣环境中增强电子电缆性能

《嵌入式系统设计》1-说明及嵌入式系统与桌面系统(到处理器技术)

视频 2010-02-02

长安大学飞思卡尔智能车大赛宣传片

视频 2010-02-01

日本三大半导体厂商将整合,功率半导体领域迎变局

韩国智能车

视频 2010-02-01

《嵌入式系统设计》2-嵌入式系统与桌面系统(处理器技术到I2C)

视频 2010-02-02

飞思卡尔智能车辽宁工程技术大学电信学院

视频 2010-02-01

BOE(京东方)携手美高梅亮相国际顶级艺术盛会 以创新显示演绎科技与文化融合的新浪潮

P89C66X单片机字节方式硬件I2C软件包 (从方式)

通过平台固件弹性保障未来数据中心的安全

BOE(京东方)AI+创新应用大会亮相中关村论坛 共筑AI创新与产业融合新生态

更多 培训课堂
更多 焦点
更多 视频

技术专区