zigbee网络建立过程简介(G1)
ZigBee网络的建立

【2017-2018学年第2学期】
【基本信息】
【开课部门】
青软实训
【实验课程】
ZigBee技术及应用实验
独立□ 非独立□
【实验项目】
ZigBee网络的建立
【项目类型】
基础综合□ 设计□
研究创新□ 其它□
【项目学时】
2
【学生姓名】
【学 号】
【专 业】
【班 级】
【同组学生】
【实验室名】
【实验日期】
②按键触发广播数据发送函数
SampleAPP_SendPeriodicMessage();
③接收端收到数据后LED1~LED3同时闪烁。
3、通过网络状态改变调用数据发送发送数据,接收端接收数据。(定时函数打开),其余步骤与步骤②相同。
4、路由器节点接收数据成功后,调用函数发送函数将数据发送给协调器:重新定义个MySendMessage函数,并声明一下。在MySendMessage函数中将地址模式改成单播地址。端点地址保持不动。并重新定义个新的簇ID #define SAMPLEAPP_MY_CLUSTERID 3。编译程序,并下载到ZigBee开发板中。
【教师Байду номын сангаас报告的最终评价及处理意见】
成绩(百分制):(涂改无效)
教师:年 月 日
【实验报告】
1.实验目的:
1、掌握协议栈的运行机制
2、掌握协议栈的下载及调试
3、掌握协议栈信道设置
4、掌握协议栈PANID的设置
二.实验原理:
安装ZStack协议栈并分析代码,下载程序,协调器建立网络
三.实验设备:
ZigBee开发套件
四.实验步骤:
1、按键测试,通过亮灯情况判断ZigBee开发套件上的四个按键具体是SW哪个型号。
Zigbee组网流程——理论

星形网络和树型网络可以看成是网状网络的一个特殊子集,所以接下来分析如何组建一个Zigbee网状网络。
组建一个完整的Zigbee网络分为两步:第一步是协调器初始化一个网络;第二步是路由器或终端加入网络。
加入网络又有两种方法,一种是子设备通过使用MAC层的连接进程加入网络,另一种是子设备通过与一个先前指定的父设备直接加入网络。
一、协调器初始化网络协调器建立一个新网络的流程如图1所示。
图1 协调器建立一个新网络1、检测协调器建立一个新的网络是通过原语NLME_NETWORK_FORMATION.request发起的,但发起NLME_NETWORK_FORMATION.request原语的节点必须具备两个条件,一是这个节点具有ZigBee协调器功能,二是这个节点没有加入到其它网络中。
任何不满足这两个条件的节点发起建立一个新网络的进程都会被网络层管理实体终止,网络层管理实体将通过参数值为INVALID_REQUEST的NLME_NETWORK_FORMATION.confirm的原语来通知上层这是一个非法请求。
2、信道扫描协调器发起建立一个新网络的进程后,网络层管理实体将请求MAC子层对信道进行扫描。
信道扫描包括能量扫描和主动扫描两个过程。
首先对用户指定的信道或物理层所有默认的信道进行一个能量扫描,以排除干扰。
网络层管理实体将根据信道能量测量值对信道进行一个递增排序,并且抛弃能量值超过了可允许能量值的信道,保留可允许能量值内的信道等待进一步处理。
接着在可允许能量值内的信道执行主动扫描,网络层管理实体通过审查返回的PAN描述符列表,确定一个用于建立新网络的信道,该信道中现有的网络数目是最少的,网络层管理实体将优先选择没有网络的信道。
如果没有扫描到一个合适的信道,进程将被终止,网络层管理实体通过参数仠为STARTUP_FAILURE的NLME_NETWORK_FORMATION.confirm的原语来通知上层初始化启动网络失败。
ZigBee协议解析无线个人局域网的工作原理与物联网应用

ZigBee协议解析无线个人局域网的工作原理与物联网应用无线个人局域网(Wireless Personal Area Network,简称WPAN)是一种短距离无线通信技术,ZigBee作为其一种重要的协议,已经在物联网应用中得到广泛应用。
本文将详细解析ZigBee协议的工作原理,并探讨其在物联网中的应用。
一、ZigBee协议的工作原理ZigBee协议是基于IEEE 802.15.4标准的一种低功耗、短距离、低数据速率无线通信协议。
其工作原理如下:1. 网络拓扑结构ZigBee网络可以采用星形、树形、网状等多种拓扑结构。
其中,星形结构由一个协调器(Coordinator)和多个终端节点(End Device)组成,协调器负责网络的组网与管理。
树形结构则是在星形结构的基础上,增加了路由器(Router)节点,实现了终端节点之间的数据转发。
网状结构是最灵活的,不仅可以进行节点之间的数据转发,还可以自动选择最佳的传输路径。
2. 网络通信方式ZigBee协议采用两种主要的通信方式,分别是直接通信(Direct Communication)和间接通信(Indirect Communication)。
直接通信是指两个节点之间直接建立通信链路,可以实现低延时的数据传输;间接通信则是通过路由器节点进行数据传输,适用于节点之间距离较远或传输条件较差的情况。
3. 网络协调ZigBee网络中的协调器负责网络的组网与管理,包括网络的初始化、频道选择、路由调度等。
协调器还可以与外部设备进行无线通信,用于与其他网络的互联。
4. 节能机制为了实现低功耗的通信,ZigBee协议引入了一系列的节能机制。
其中包括低功耗睡眠模式、快速唤醒模式、层次化网络等。
节点可以在不使用时进入睡眠模式,只有当数据传输时才会唤醒,从而有效节省能耗。
二、物联网应用中的ZigBee协议ZigBee协议在物联网应用中具有广泛的应用前景,主要体现在以下几个方面:1. 智能家居ZigBee协议可以实现智能家居中各个设备的互联互通。
zigbee网络建立与加入

zigbee⽹络建⽴与加⼊协议栈如何辨别设备类型?在上图中可以看到协调器建⽴⽹络的步骤以及路由器和终端加⼊⽹络的过程,但协议栈究竟如何区分设备类型,仅从图中⽆法看出。
在ZDApp.c⽂件中,ZDOInitDevice( uint16 startDelay )函数调⽤了ZDAppDetermineDeviceType()函数,函数原型:/********************************************************************** @fn ZDAppDetermineDeviceType()* @brief Determines the type of device to start.** Looks at zgDeviceLogicalType and determines what type of* device to start. The types are:* ZG_DEVICETYPE_COORDINATOR* ZG_DEVICETYPE_ROUTER* ZG_DEVICETYPE_ENDDEVICE** @param none* @return none*/void ZDAppDetermineDeviceType( void ){if ( zgDeviceLogicalType == ZG_DEVICETYPE_COORDINATOR ){devStartMode = MODE_HARD; // Start as a coordinatorZDO_Config_Node_Descriptor.LogicalType = NODETYPE_COORDINATOR;}else{if ( zgDeviceLogicalType == ZG_DEVICETYPE_ROUTER )ZDO_Config_Node_Descriptor.LogicalType = NODETYPE_ROUTER;else if ( zgDeviceLogicalType == ZG_DEVICETYPE_ENDDEVICE )ZDO_Config_Node_Descriptor.LogicalType = NODETYPE_DEVICE;// If AIB_apsUseExtendedPANID is set to a non-zero value by commissioning// The device shall do rejoin the network. Otherwise, do normal joinif ( nwk_ExtPANIDValid( AIB_apsUseExtendedPANID ) == false ){devStartMode = MODE_JOIN; // Assume joining}else{devStartMode = MODE_REJOIN;}}}该函数中的关键句是if(zgDeviceLogicalType == ZG_DEVICETYPE_COORDINATOR) ,其中,在ZGlobals,c⽂件中有如下定义:zgDeviceLogicalType = DEVICE_LOGICAL_TYPE ⽽在ZGlobals.h⽂件中有如下宏定义:#defineDEVICE_LOGICAL_TYPE ZG_DEVICETYPE_COORDINATOR,最终在sapi.h⽂件中,出现如下宏定义:#defineZG_DEVICETYPE_COORDINATOR 0x00 ,这样看来似乎绕了⼀圈⼜绕回了原点,其实并⾮如此,在ZGlobals.h⽂件中完整的宏定义代码:// Default Device Logical Type#if !defined ( DEVICE_LOGICAL_TYPE )#if ( ZG_BUILD_COORDINATOR_TYPE )// If capable, default to coordinator#define DEVICE_LOGICAL_TYPE ZG_DEVICETYPE_COORDINATOR #elif ( ZG_BUILD_RTR_TYPE )#define DEVICE_LOGICAL_TYPE ZG_DEVICETYPE_ROUTER#elif ( ZG_BUILD_ENDDEVICE_TYPE )// Must be an end device#define DEVICE_LOGICAL_TYPE ZG_DEVICETYPE_ENDDEVICE#else#error ZSTACK_DEVICE_BUILD must be defined as something!#endif#endif可以看出,设备是协调器,路由器还是终端,都是在这⾥区别开来的。
zigbee的工作原理

zigbee的工作原理Zigbee是一种低功耗、短距离无线通信技术,主要用于物联网设备之间的通信。
它基于IEEE 802.15.4标准,并在其基础上添加了网络层和应用层协议。
Zigbee网络由一个协调器(Coordinator)和多个设备(Device)组成,协调器负责网络的管理和控制。
Zigbee的通信距离一般在几十米到几百米之间,传输速率较低,可达到250kbps。
它采用的是低功耗的射频技术,以确保设备的电池寿命较长。
此外,Zigbee使用的是mesh网状网络拓扑,设备之间可以通过多跳传输进行通信,提高了网络的覆盖范围和稳定性。
Zigbee的工作原理如下:1.设备加入网络:当设备加入Zigbee网络时,它会发送一个加入请求,协调器验证设备的身份后,将其分配给合适的网络节点。
设备可以是有源设备(Powered Device,PD)或无源设备(End Device,ED)。
有源设备可以直接与协调器通信,而无源设备需要通过其他设备进行中继。
2.建立网络拓扑:Zigbee网络采用mesh网状拓扑结构,其中每个设备都可以是路由器(Router),即可以进行中继的节点,或终端设备(End Device),即不能进行中继的节点。
设备之间可以通过多跳传输进行通信,数据可以沿着多个路径传递,提高了网络的可靠性和覆盖范围。
3.网络管理与路由选择:协调器负责网络的管理和控制,它会维护网络拓扑结构,并执行路由选择算法。
路由选择算法决定了数据传输的最佳路径,通过选择具有最佳信号强度和跳数的路由器进行数据传输,保证了数据的快速传递和可靠性。
4.数据传输和通信:设备之间可以通过两种方式进行通信,即直接通信和间接通信。
直接通信是指设备直接发送数据给目标设备,而间接通信是指设备通过中继节点进行数据传输。
设备可以根据需求选择合适的通信方式,以达到最佳的传输效果。
总的来说,Zigbee通过建立mesh网状网络拓扑,利用低功耗的射频技术实现设备之间的无线通信。
构建zigbee网络总结

构建 ZigBee 网络总结概述ZigBee 是一种基于 IEEE 802.15.4 标准的无线通信协议,旨在提供低功耗、低数据率的短距离无线通信解决方案。
ZigBee 网络由一个或多个 ZigBee 设备组成,这些设备通过 ZigBee 协调器进行协调和管理。
本文将探讨构建 ZigBee 网络的关键步骤和注意事项。
步骤一:选择合适的硬件设备构建 ZigBee 网络的第一步是选择合适的硬件设备。
ZigBee 网络的设备分为三类:协调器(Coordinator)、路由器(Router)和终端设备(End Device)。
协调器是网络的主节点,负责组织和管理整个网络。
路由器允许设备之间进行中继和转发数据。
终端设备是网络中的最终节点,负责与其他设备进行通信。
在选择硬件设备时,需要考虑以下因素: - 功耗:如果是低功耗应用,选择低功耗的设备非常重要。
- 通信范围:根据项目需求选择合适的通信范围。
- 可靠性:确保设备的稳定性和可靠性。
- 成本:根据项目预算选择合适的硬件设备。
步骤二:设计网络拓扑结构在ZigBee 网络中,网络拓扑结构的设计非常重要。
常见的拓扑结构包括星型、网状和链状。
不同的拓扑结构适用于不同的应用场景。
星型拓扑结构星型拓扑结构是最简单和最常见的ZigBee 网络拓扑结构。
在星型拓扑结构中,所有设备都通过协调器进行通信。
该拓扑结构适用于需要集中管理的应用,例如家庭自动化系统。
网状拓扑结构网状拓扑结构允许设备之间进行多跳通信,提供了更强大的网络覆盖能力。
在网状拓扑结构中,路由器负责转发数据,并确保数据能够可靠地从源设备传输到目标设备。
该拓扑结构适用于需要大范围通信的应用,例如智能城市和工业自动化系统。
链状拓扑结构链状拓扑结构是一种特殊的网状拓扑结构,它只允许设备之间进行单向通信。
链状拓扑结构适用于需要按序传输数据的应用,例如传感器网络。
在设计网络拓扑结构时,需要考虑以下因素: - 设备位置:根据设备的位置选择合适的拓扑结构。
zigbee发展史

ZigBee技术的发展史一、ZigBee的起源及技术简介蜜蜂在发现花丛后会通过一种特殊的肢体语言来告知同伴新发现的食物源位置等信息,这种肢体语言就是ZigZag行舞蹈,是蜜蜂之间一种简单传达信息的方式。
借此意义ZigBee作为新一代无线通讯技术的命名。
在此之前ZigBee也被称为“HomeRF Lite”、“RF- EasyLink”或“fireFly”无线电技术,目前统称为ZigBee。
简单的说,ZigBee是一种高可靠的无线数传网络,类似于CDMA和GSM网络。
ZigBee数传模块类似于移动网络基站。
通讯距离从标准的75m到几百米、几公里,并且支持无限扩展。
ZigBee是一个由可多到65000个无线数传模块组成的一个无线数传网络平台,在整个网络范围内,每一个ZigBee网络数传模块之间可以相互通信,每个网络节点间的距离可以从标准的75m无限扩展。
与移动通信的CDMA网或GSM网不同的是,ZigBee网络主要是为工业现场自动化控制数据传输而建立,因而,它必须具有简单,使用方便,工作可靠,价格低的特点。
而移动通信网主要是为语音通信而建立,每个基站价值一般都在百万元人民币以上,而每个ZigBee“基站”却不到1000元人民币。
每个ZigBee 网络节点不仅本身可以作为监控对象,例如其所连接的传感器直接进行数据采集和监控,还可以自动中转别的网络节点传过来的数据资料。
除此之外,每一个ZigBee网络节点(FFD)还可在自己信号覆盖的范围内,和多个不承担网络信息中转任务的孤立的子节点(RFD)无线连接。
二、ZigBee的发展1、IEEE 802.15.4标准的提出最近几年来,由于无线接入技术的需求日益增大,以及数据交换业务(如因特网、电子邮件、数据文件传输等)不断增加,无线通信和无线网络均呈现出指数增加的趋势。
这有力的推动力无线通信向高速通信方向的发展。
然而,工业、农业、车载电子系统、家用网络、医疗传感器和伺服执行机构等都是无线通信还未涉足或者刚刚涉足的领域。
zigbee组网原理详解

导读:组建一个完整的zigbee网状网络包括两个步骤:网络初始化、节点加入网络。
其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网。
1.组网概述组建一个完整的zigbee网状网络包括两个步骤:网络初始化、节点加入网络。
其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网。
2. 网络初始化预备Zigbee网络的建立是由网络协调器发起的,任何一个zigbee节点要组建一个网络必须要满足以下两点要求:(1)节点是FFD节点,具备zigbee协调器的能力;(2)节点还没有与其他网络连接,当节点已经与其他网络连接时,此节点只能作为该网络的子节点,因为一个zigbee网络中有且只有一个网络协调器。
FFD:Full Function Device 全功能节点RFD:Reduced FunctionDevice 半功能节点3.网络初始化流程3.1 确定网络协调器:首先判断节点是否是FFD节点,接着判断此FFD节点是否在其他网络里或者网络里是否已经存在协调器。
通过主动扫描,发送一个信标请求命令(Beaconrequest command),然后设置一个扫描期限(T_scan_duration),如果在扫描期限内都没有检测到信标,那么就认为FFD在其pos内没有协调器,那么此时就可以建立自己的zigbee 网络,并且作为这个网络的协调器不断地产生信标并广播出去。
注意:一个网络里,有且只能有一个协调器(coordinator)。
3.2 进行信道扫描过程。
包括能量扫描和主动扫描两个过程:首先对指定的信道或者默认的信道进行能量检测,以避免可能的干扰。
以递增的方式对所测量的能量值进行信道排序,抛弃那么些能量值超出了可允许能量水平的信道,选择可允许能量水平的信道并标注这些信道是可用信道。
接着进行主动扫描,搜索节点通信半径内的网络信息。
这些信息以信标帧的形式在网络中广播,节点通过主动信道扫描方式获得这些信标帧,然后根据这些信息,找到一个最好的、相对安静的信道,通过记录的结果,选择一个信道,该信道应存在最少的zigbee网络,最好是没有zigbee设备。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
星形网络和树型网络可以看成是网状网络的一个特殊子集,所以接下来分析如何组建一个Zigbee网状网络。
组建一个完整的Zigbee网络分为两步:第一步是协调器初始化一个网络;第二步是路由器或终端加入网络。
加入网络又有两种方法,一种是子设备通过使用MAC层的连接进程加入网络,另一种是子设备通过与一个先前指定的父设备直接加入网络。
一、协调器初始化网络协调器建立一个新网络的流程如图1所示。
图1 协调器建立一个新网络1、检测协调器建立一个新的网络是通过原语NLME_NETWORK_FORMATION.request发起的,但发起NLME_NETWORK_FORMATION.request原语的节点必须具备两个条件,一是这个节点具有ZigBee协调器功能,二是这个节点没有加入到其它网络中。
任何不满足这两个条件的节点发起建立一个新网络的进程都会被网络层管理实体终止,网络层管理实体将通过参数值为INVALID_REQUEST的NLME_NETWORK_FORMATION.confirm的原语来通知上层这是一个非法请求。
2、信道扫描协调器发起建立一个新网络的进程后,网络层管理实体将请求MAC子层对信道进行扫描。
信道扫描包括能量扫描和主动扫描两个过程。
首先对用户指定的信道或物理层所有默认的信道进行一个能量扫描,以排除干扰。
网络层管理实体将根据信道能量测量值对信道进行一个递增排序,并且抛弃能量值超过了可允许能量值的信道,保留可允许能量值内的信道等待进一步处理。
接着在可允许能量值内的信道执行主动扫描,网络层管理实体通过审查返回的PAN描述符列表,确定一个用于建立新网络的信道,该信道中现有的网络数目是最少的,网络层管理实体将优先选择没有网络的信道。
如果没有扫描到一个合适的信道,进程将被终止,网络层管理实体通过参数仠为STARTUP_FAILURE的NLME_NETWORK_FORMATION.confirm的原语来通知上层初始化启动网络失败。
3、配置网络参数如果扫描到一个合适的信道,网络层管理实体将为新网络选择一个PAN描述符,该PAN描述符可以是由设备随机选择的,也可以是在NLME_NETWORK_FORMATION.request里指定的,但必须满足PAN描述符小于或等于0x3fff,不等于0xffff,并且在所选信道内是唯一的PAN描述符,没有任何其它PAN描述符与之是重复的。
如果没有符合条件的PAN描述符可选择,进程将被终止,网络层管理实体通过参数值为STARTUP_FAILURE的NLME_NETWORK_FORMATION.confirm的原语来通知上层初始化启动网络失败。
确定好PAN描述符后,网络层管理实体为协调器选择16位网络地址0x0000,MAC子层的macPANID参数将被设置为PAN描述符的值,macShortAddress PIB参数设置为协调器的网络地址。
4、运行新网络网络参数配置好后,网络层管理实体通过MLME_START.request原语通知MAC层启动并运行新网络,启动状态通过MLME_START.confirm原语通知网络层,网络层管理实体再通过NLME_NETWORK_FORMATION.confirm原语通知上层协调器初始化的状态。
5、允许设备加入网络只有ZigBee协调器或路由器才能通过NLME_PERMIT_JOINING.request原语来设置节点处于允许设备加入网络的状态。
当发起这个进程时,如果PermitDuration参数值为0x00,网络层管理实体将通过MLME_SET.request原语把MAC层的macAssociationPermit PIB属性设置为FALSE,禁止节点处于允许设备加入网络的状态;如果PermitDuration参数值介于0x01和0xfe之间,网络层管理实体将通过MLME_SET.request原语把macAssociationPermit PIB属性设置为TRUE,并开启一个定时器,定时时间为PermitDuration,在这段时间内节点处于允许设备加入网络的状态,定时时间结束,网络层管理实体把MAC层的macAssociationPermit PIB属性设置为FALSE;如果PermitDuration参数的值为0xff,网络层管理实体将通过MLME_SET.request原语把macAssociationPermit PIB属性设置为TRUE,表示节点无限期处于允许设备加入网络的状态,除非有另外一个NLME_PERMIT_JOINING.request原语被发出。
允许设备加入网络的流程如图2所示。
图2 允许设备加入网络通过以上流程协调器就建立了一个网络并处于允许设备加入网络的状态,然后等待其它节点加入网络。
二、节点加入网络一个节点加入网络有两种方法,一种是通过使用MAC层关联进程加入网络,另一种是通过与先前指定父节点连接而加入网络。
1)通过MAC层关联加入网络子节点请求通过MAC关联加入网络进程如图3所示。
父节点响应通过MAC关联加入网络进程如图4所示。
1、子节点发起信道扫描子节点通过NLME_NETWORK_DISCOVERY.request原语发起加入网络的进程,网络层接收到这个原语后通过发起MLME_SCAN.request原语请求MAC层执行一个主动扫描或被动扫描以接收包含了PAN标志符的信标帧,扫描的信道以及每个信道的扫描时间分别由NLME_NETWORK_DISCOVERY.request原语的参数ScanChannels和ScanDuration决定。
2、子节点存储各PAN信息MAC层通过MLME_BEACONNOTIFY.indication原语将扫描中接收到的信标帧信息发送到网络层管理实体,信标帧信息包括信标设备的地址、是否允许连接以及信标净载荷。
如果信标净载荷域里的协议ID域与自己的协议ID相同,子设备就将每个匹配的信标帧相关信息保存在邻居表中。
信道扫描完成后,MAC层通过MLME_SCAN.confirm原语通知网络层管理实体,网络层再通过NLME_NETWORK_DISCOVERY.confirm原语通知上层,该原语包含了每个扫描到的网络的描述符,以便上层选择一个网络加入。
3、子节点选择PAN如果上层需要发现更多网络,则可以重新执行网络发现,如果不需要,则通过NLME_JOIN.request原语从被扫描到的网络中选择一个网络加入。
参数PANID设置为被选择网络的PAN标识符。
4、子节点选择父节点一个合适的父节点需要满足三个条件:匹配的PAN标志符、链路成本最大为3、允许连接,为了寻找合适的父节点,NLME_JOIN.request原语请求网络层搜索它的邻居表,如果邻居表中不存在这样的父节点则通知上层,如果存在多个合适的父节点则选择具有最小深度的父节点,如果存在多个具有最小深度的合适的父节点则随机选择一个父节点。
5、子节点请求MAC关联确定好合适的父节点后,网络层管理实体发送一个MLME_ASSOCIATE.request原语到MAC层,地址参数设置为已选择的父节点的地址,尝试通过父节点加入网络。
6、父节点响应MAC关联父节点通过MLME_ASSOCIATE.indication原语通知网络层管理实体一个节点正尝试加入网络,网络层管理实体将搜索它的邻居表查看是否有一个与尝试加入节点相匹配的64位扩展地址,以便确定该节点是否已经存在于它的网络中了。
如果有匹配的扩展地址,网络层管理实体获取相应的16位网络地址并发送一个连接响应到MAC层。
如果没有匹配的扩展地址,在父节点的地址分配空间还没耗尽的条件下网络层管理实体将为尝试加入的节点分配一个16位网络地址。
如果父节点地址分配空间耗尽,将拒绝节点加入请求。
当同意节点加入网络的请求后,父节点网络层管理实体将使用加入节点的信息在邻居表中产生一个新的项,并通过MLME_ASSOCIATE.response原语通知MAC层连接成功。
7、子节点响应连接成功如果子节点接收到父节点发送的连接成功信息,发送一个传输成功响应信息以确认接收,然后子节点MAC层将通过MLME_ASSOCIATE.confirm原语通知网络层,原语包含了父节点为子节点分配的网内唯一的16位网络地址,然后网络层管理实体设置邻居表相应邻居设备为它的父设备,并通过NLME_JOIN.confirm原语通知上层节点成功加入网络。
8、父节点响应连接成功父节点接收到子节点的传输成功响应信息后,将通过MLME_COMM_STATUS.indication原语将传输成功的响应状态发送给网络层,网络层管理实体通过NLME_JOIN.indication原语通知上层一个节点已经加入了网络。
图3 子节点请求加入网络进程图4 父节点响应加入网络进程2)通过与先前指定父节点连接加入网络子节点通过与指定的父节点直接连接加入网络,这个时候父节点预先配置了子节点的64位扩展地址。
父节点处理一个直接加入网络的进程如图5所示。
子节点通过孤立方式加入网络进程如图6所示。
1、父节点处理子设备直接加入网络父节点通过NLME_DIRECT_JOIN.request原语开始处理一个设备直接加入网络的进程。
父节点网络层管理实体将首先搜索它的邻居表查看是否存在一个与子节点相匹配的64位扩展地址,以便确定该节点是否已经存在于它的网络中了。
如果存在匹配的扩展地址,网络层管理实体将终止这个进程并告诉上层该设备已经存在于设备列表中了。
如果不存在匹配的扩展地址,在父节点的地址分配空间还没耗尽的条件下网络层管理实体将为子节点分配一个16位网络地址,并使用子节点的信息在邻居表中产生一个新的项。
然后通过NLME_DIRECT_JOIN.confirm原语上层设备已经加入网络。
2、子节点连接父节点确认父子关系子节点通过NLME_JOIN.request原语发起孤立扫描来建立它与父节点之间的关系。
这时网络层管理实体将通过MLME_SCAN.request请求MAC层对物理层所默认的所有信道进行孤立扫描,如果扫描到父设备,MAC层通过MLME_SCAN.confirm原语通知网络层,网络层管理实体再通过NLME_JOIN.confirm原语通知上层节点请求加入成功,即与父节点建立了父子关系,可以互相通信。
图5 父节点处理一个直接加入网络进程图6 子节点通过孤立方式加入网络进程设备的MAC 层向上层发送MLME-ORPHAN.indication 原语告知一个孤立设备的存在。
只有ZigBee 协调器或ZigBee 路由器才可以接受MLME-ORPHAN.indication 原语,其他设备收到MLME-ORPHAN.indication 原语时NLME 将中止该过程。