`

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的原语来通知上层初始化启动网络失败。
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关联加入网络进程如图2-6所示。
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.request原语通知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.子节点通过孤立方式加入网络进程

本文转载自:http://www.hizigbee.com/forum.php?mod=viewthread&tid=5800&extra=page%3D1
  • 大小: 30.6 KB
  • 大小: 23.7 KB
  • 大小: 35.3 KB
  • 大小: 20.5 KB
  • 大小: 18.6 KB
  • 大小: 19.2 KB
分享到:
评论

相关推荐

    zigbee组网流程图

    zigbee物联网开发,用于智能家居改造,zigbee的组网流程能让你顺利的了解组网的脉络

    zigbee组网流程

    zigbee组网流程 Zigbee组网流程是指Zigbee网络的建立和节点加入网络的过程。该过程分为两个步骤:网络初始化和节点加入网络。 网络初始化是由网络协调器发起的,任何一个Zigbee节点要组建一个网络必须满足以下两点...

    ZigBee组网流程

    ### ZigBee组网流程详解 #### 一、概述 ZigBee是一种低功耗、低成本的无线网络技术标准,适用于传感器网络等短距离通信场合。ZigBee网络通常由三种类型的设备组成:协调器(Coordinator)、路由器(Router)以及终端...

    ZigBee组网入门学习

    本教程将通过深入解析“ZigBee组网入门学习”中的核心知识点,帮助初学者快速掌握ZigBee网络的构建和操作。 首先,我们要理解ZigBee网络的基本架构。ZigBee网络由三种类型的设备组成:协调器(Coordinator)、路由器...

    ZigBee组网机制以及数据的发送和接收

    ZigBee是一种支持数据传输的短距离无线通信技术,其技术特点主要体现在低功耗、低成本以及组网的灵活性。ZigBee技术的底层标准基于IEEE 802.15.4协议,而ZigBee联盟则在此基础上规定了应用层和网络层的标准。 ...

    1、协议栈工作流程和无线收发控制LED_;ZigBee组网_ZigBee_

    描述中的“协调器、终端上电,组网成功后 D1 灯闪烁”是对实际操作过程的简单描述,意味着当ZigBee网络的协调器和终端设备启动并完成网络组建后,D1 LED灯将闪烁,这通常作为网络状态的视觉反馈。 ZigBee是一种基于...

    ZigBee组网串口调试工具

    3. **数据包分析**:在调试过程中,工具能够捕获并解析ZigBee网络中的数据包,包括网络层、应用层和其他相关协议的信息,帮助开发者理解数据传输流程和可能存在的问题。 4. **网络拓扑发现**:ZigBee网络通常采用...

    zigbee 组网(很详细的组网资料)

    ### Zigbee组网详解 #### 一、Zigbee网络架构与构成 Zigbee是一种低功耗无线网络协议,广泛应用于智能家居、工业自动化、传感器网络等领域。在Zigbee网络中,网络架构主要包括三种设备类型:协调器(Coordinator)、...

    zigbee组网串口实验

    本实验将深入探讨ZigBee组网中的串口实验,这是理解和应用ZigBee技术的关键步骤。 首先,我们需要理解ZigBee组网的基本概念。ZigBee网络由协调器、路由器和终端设备组成。协调器负责建立和管理网络,路由器则提供...

    ZigBee组网车间环境信息监控系统

    《ZigBee组网在车间环境信息监控系统中的应用》 ZigBee技术,作为一种低功耗、低成本的无线通信技术,被广泛应用于各种环境监控系统中,尤其在车间环境信息监控方面,其优势更为显著。本文将深入探讨ZigBee在该系统...

    ZigBee组网实验代码

    ZigBee是一种低功耗、短距离、无线通信技术,广泛应用于物联网、智能家居、工业自动化等领域...每个实验都提供了宝贵的实践经验,帮助你在理论与实践之间架起桥梁,为深入理解ZigBee协议栈和构建实际应用打下坚实基础。

    ZigBee组网实验

    5. **数据传输**:在ZigBee网络中,设备间的数据传输需要遵循特定的协议流程。理解数据包的结构,如源地址、目的地址、序列号等字段,以及如何通过ZStack发送和接收数据,是实验的重点。 6. **网络调试**:在进行...

    zigbee组网程序

    Zigbee组网程序是一种基于IEEE 802.15.4标准的低功耗、短距离无线通信技术,广泛应用于智能家居、物联网(IoT)设备和工业自动化等领域。这个程序包含了协调器、路由器和终端节点的实现,这些都是构成Zigbee网络的基本...

    ZigBee_ZigBee_

    描述中的"ZigBee组网代码,路由节点,子节点"揭示了压缩包内容的重点。这表明你将找到与ZigBee网络中节点间通信相关的代码,包括路由节点(Router)和子节点(End Device)的角色和功能。 1. **ZigBee网络架构**:...

    zigbee组网

    通过对Zigbee组网的基本概念、Zstack协议栈的使用方法以及具体的组网实验介绍,我们可以了解到Zigbee技术不仅涉及硬件层面的设计,还包含了软件编程的复杂性。通过逐步实践,可以深入了解Zigbee网络的构建过程及其在...

    ZIGBEE组网论文

    ZIGBEE 组网ZIGBEE 组网ZIGBEE 组网ZIGBEE 组网ZIGBEE 组网ZIGBEE 组网ZIGBEE 组网ZIGBEE 组网

    ZigBee组网调试工具

    ZigBee组网调试工具

    zigbee 组网,路由

    在本项目中,我们将探讨如何利用C8051F2430微控制器进行Zigbee组网和路由,并通过代码实现数据的收发。 1. **Zigbee协议栈**: Zigbee协议栈由物理层(Physical Layer, PHY)、媒体访问控制层(Media Access Control,...

    zigbee组网 串口透传

    由点对点通信程序改写为组网后的多对多通信。

Global site tag (gtag.js) - Google Analytics