原创 zigbee路由原理-树型

2009-7-13 15:22 1569 11 12 分类: 消费电子

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

}

更多资料与技术讨论请联系:

上海无线龙通讯科技有限公司

联系人:司文铠

QQ876692208

MSN:siwenkai@hotmail.com

TEL13816689475

email:wxlsiwenkai@yahoo.com.cn

skype:sparksi01

公司网址:www.wxlsoc.com

 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1337322 2009-7-27 11:01

详细原理看我博客http://blog.csdn.net/beeboobeeboo/archive/2009/07/18/4359082.aspx
相关推荐阅读
用户1458789 2012-07-19 13:56
ZigBee技术简介,以及ZigBee的未来展望
  与蜂共舞—ZigBee技术一瞥 本文从ZigBee的发展历史入手,探讨了这种基于无线传感器技术的网络应用的协议栈、性能分析和...
用户1458789 2012-07-18 10:54
《CC430与无线传感网》物联网教学,书
· CC430与无线传感网  · 编号:CC430与无线传感网  · 价格:38.00元     《CC430与无线传感网》介绍一个运行在CC430等片上系统的小型无...
用户1458789 2012-07-12 10:22
ZigBee谁为王?谁为寇!
一、ZigBee无线技术一鸣惊人  ZigBee是一种崭新的,专注于低功耗、低成本、低复杂度、低速率的近程无线网络通信技术。也是目前嵌入式应用的一个大热点。 ZigBee的特点主要有以下几...
用户1458789 2012-07-11 15:10
采用ZigBee PRO自己动手设计的工业用无线传感器网络
一、 无线传感器网络是工业自动化的新热点             无线传感器网络的出现 引起了全世界范围的广泛关注,被称为二十一世纪最具影响的技术之一。改变世界的10...
用户1458789 2012-07-11 15:02
集成嵌入式蓝牙、RFID、wifi、3G、zigbee,温度,湿度,光敏,压力,红外,三维加速度,物联网实验箱
无线龙感知RF2-2440/6410/V210物联网实验箱全面集成WinCE6.0/ LINUX/ANDRO三大平台。通过简单更换核心模块,可以实现对ARM9/ARM11/Cortex-A8-等三...
用户1458789 2012-07-04 14:21
德州仪器(最新处理器)Cortex-A8,物联网试验箱,传感器嵌入技术。教学设备
无线龙物联网实验箱全面集成WinCE6.0/ LINUX/ANDRO三大平台。通过简单更换核心模块,可以实现对ARM9/ARM11/Cortex-A8-等三种主流处理器构架嵌入式教学;配备全速WI...
我要评论
1
11
关闭 站长推荐上一条 /3 下一条