首页 > 编程知识 正文

zigbee模块硬件介绍(Zigbee组网方案)

时间:2023-05-04 21:02:51 阅读:123219 作者:2099

ZigBee组网原理详解1 .组网概述

构建完整的zigbee网状网络包括初始化网络和节点加入网络两个步骤。 其中,节点加入网络包括两个步骤:通过与协调器的连接进行加入和通过现有父节点进行加入。

ZigBee网络的节点主要由三个节点组成:终端节点、路由器节点和PAN协调员节点

节点功能:

协调节点: ZigBee协调器是网络各节点信息的汇聚点,是网络的核心节点,负责网络的构建、维护和管理,通过串口实现各节点与上位机的数据传输; ZigBee协调器通信能力、处理能力、发送能力强,能够向远程控制端发送数据。

路由器节点:负责数据包的传输,进行数据的路由搜索和路由维护,允许节点加入网络,辅助子节点的通信; 路由器节点是终端节点和协调器节点的中继,中继终端节点和协调器节点之间的通信。

终端节点:终端节点可以直接连接到协调器节点,也可以通过路由器节点连接到协调器节点。

2 .网络初始化准备

Zigbee网络的构建由网络协调员启动,其中一个Zigbee节点要构建网络必须满足以下两个要求:

)1)节点是FFD节点,具备zigbee协调器的能力;

)2)节点尚未连接到其他网络。 如果节点已经连接到其他网络,则该节点仅充当该网络的子节点,因为zigbee网络有一个网络协调员,而只有一个网络协调员。

软盘:全功能设备完整功能节点

rfd :精简功能设备半功能节点

全功能设备(FFD )设备可以提供用作热河ZigBee设备的所有IEEE 802.15.4 MAC服务,因此FFD设备不仅可以发送和接收数据,还具有路由功能。

精简功能设备(RFD )设备仅提供IEEE 802.15.4 MAC服务的一部分,智能地充当终端节点,而不充当仲裁点和路由节点,因此将收集到的数据信息与仲裁点和规则

3 .网络初始化过程

ZigBee网络的初始化只由网络协调员开始。 在构建网络之前,必须确定自身节点尚未连接到其他网络。 如果节点已经连接到其他网络,则此节点只能用作该网络的子节点。 ZigBee网络有ZigBee协调员,也有唯一的ZigBee协调员。 网络建立后,协调员将退化为路由器的角色,也可以移除协调员。 这要归功于ZigBee网络的分布式特性。

3.1网络协调员的决定:

首先确定该节点是否是FFD节点,然后确定FFD节点是否存在于另一网络中,或者网络中是否已经存在协调器。 主动扫描发送信标请求命令(Beaconrequest command ),设置扫描期间(T_scan_duration ),如果在扫描期间内未检测到信标,则FFD将其pos

注意:一个网络只有一个协调员(coordinator )。

3.2进行通道扫描流程。

有两个过程:能量扫描和主动扫描。 首先,对指定信道或默认信道进行能量检测,以避免可能的干扰。 测量得到的能量值按信道顺序递增,抛弃那些能量值超过允许能量水平的信道,选择允许能量水平的信道,并标记这些信道为可用信道。 接着进行主动扫描,搜索节点通信半径内的网络信息。 这些信息以信标帧的形式在网络中广播,其中节点通过活动信道扫描获得这些信标帧,基于这些信息,找到最佳的相对安静的信道,以及记录的结果是最小的zigbebed 在主动扫描期间,MAC层丢弃除了PHY层数据服务接收到的信标之外的所有帧。

3.3设置网络ID。

找到合适的通道后,协调员将选择网络的网络标识符(PAN ID,值()0x3fff )。 此ID在所使用的通道中必须是唯一的,并且不能与其他zigbee网络冲突,也不能是广播地址0xFFFF )。 PAN ID可以通过监视其他网络的ID并选择不冲突的ID来获取,也可以人工指定扫描的通道来确定与其他网络不冲突的PAN ID。

zigbee网络有两种地址模式:扩展地址(64位)和短地址(16位)。 其中,扩展地址由IEEE组织分配,用于唯一的设备id。 短地址用于本地网络中的设备id。 在一个网络中,每个设备的短地址必须是唯一的,并且在节点加入网络时由父节点分配,并使用短地址进行通信。 对协调员来说,短地址通常设置为0x0000。

完成上述步骤后,zigbee网格网络成功初始化,然后等待其他节点加入。 加入时,使范围内信号最强的父节点(包括协调器)加入网络,成功时获取网络的短地址,通过该地址进行数据的发送接收,网络拓扑和地址分别传递给各个flash

4 .节点通过协调器

加入网络

    当节点协调器确定之后,节点首先需要和协调器建立连接加入网络。

    为了建立连接,FFD节点需要向协调器提出请求,协调器接收到节点的连接请求后根据情况决定是否允许其连接,然后对请求连接的节点做出响应,节点与协调器建立连接后,才能实现数据的收发。节点加入网络的具体流程可以分为下面的步骤:

4.1 查找网络协调器。

    首先会主动扫描查找周围网络的协调器,如果在扫描期限内检测到信 标,那么将获得了协调器的有关信息,这时就向协调器发出连接请求。在选择合适的网络之后,上层将请求MAC层对物理层PHY和MAC层的phyCurrentChannel、macPANID等PIB属性进行相应的设置。如果没有检测到,间隔一段时间后,节点重新发起扫描。

4.2 发送关联请求命令(Associaterequest command)。

    节点将关联请求命令发送给协调器,协调器收到后立即回复一个确认帧(ACK),同时向它的上层发送连接指示原语,表示已经收到节点的连接请求。但是这并不意味着已经建立连接,只表示协调器已经收到节点的连接请求。当协调器的mac层的上层接收到连接指示原语后,将根据自己的资源情况(存储空间和能量)决定是否同意此节点的加入请求,然后给节点的mac层发送响应。

4.3 等待协调器处理。

    当节点收到协调器加入关联请求命令的ACK后,节点mac将等待一段时间,接受协调器的连接响应。在预定的时间内,如果接收到连接响应,它将这个响应向它的上层通告。而协调器给节点的mac层发送响应时会设置一个等待响应时间(T_ResponseWaitTime)来等待协调器对其加入请求命令的处理,若协调器的资源足够,协调器会给节点分配一个16位的短地址,并产生包含新地址和连接成功状态的连接响应命令,则此节点将成功的和协调器建立连接并可以开始通信。若协调器资源不够,待加入的节点将重新发送请求信息,直接入网成功。

4.4 发送数据请求命令。

如果协调器在响应时间内同意节点加入,那么将产生关联响应命令(Associateresponse command)并存储这个命令。当响应时间过后,节点发送数据请求命令(Datarequest command)给协调器,协调器收到后立即回复ACK,然后将存储的关联响应命令发给节点。如果在响应时间到后,协调器还没有决定是否同意节点加入,那么节点将试图从协调器的信标帧中提取关联响应命令,成功的话就可以入网成功,否则重新发送请求信息直到入网成功。

4.5 回复。

    节点收到关联响应命令后,立即向协调器回复一个确认帧(ACK),以确认接收到连接响应命令,此时节点将保存协调器的短地址和扩展地址,并且节点的MLME向上层发送连接确认原语,通告关联加入成功的信息。

 

5.节点通过已有节点加入网络

    当靠近协调器的FFD节点和协调器关联成功后,处于这个网络范围内的其他节点就以这些FFD节点作为父节点加入网络了,具体加入网络有两种方式,一种是通过关联(associate)方式,就是待加入的节点发起加入网络;另一种是直接(direct)方式,就是待加入的节点具体加入到那个节点下,作为该节点的子节点。其中关联方式是zigbee网络中新节点加入网络的主要途径。

    对于一个节点来说只有没有加入过网络的才能进行加入网络。在这些节点中,有些是曾经加入过网络中,但是却与它的父节点失去联系(这样的被称为孤儿节点),而有些则是新节点。当是孤儿节点时,在它的相邻表中存有原父节点的信息,于是它可以直接给原父节点发送加入网络的请求信息。如果父节点有能力同意它加入,于是直接告诉它的以前被分配的网络地址,它便入网成功;如果此时它原来的父节点的网络中,子节点数已达到最大值,也就是说网络地址已经分配满,父节点便无法批准它加入,它只能以新节点身份重新寻找并加入网络。

    而对于新节点来说,他首先会在预先设定的一个或多个信道上通过主动或被动扫描周围它可以找到的网络,寻找有能力批准自己加入网络的父节点,并把可以找到的父节点的资料存入自己的相邻表。存入相邻表的父节点的资料包括zigbee协议的版本、协议栈的规范、PAN ID和可以加入的信息。在相邻表中所有的父节点中选择一个深度最小的,并对其发出请求信息,如果出现相同最小深度的两个以上的父节点,那么随机选取一个发送请求。如果相邻表中没有合适的父节点的信息,那么表示入网失败,终止过程。如果发出的请求被批准,那么父节点同时会分配一个16位的网络地址,此时入网成功,子节点可以开始通信。如果请求失败,那么重新查找相邻表,继续发送请求信息,直到加入网络。

6.ZigBee分离流程

    正常的分离过程:

    1).协调器主动要求设备分离

    协调器向设备发送接触连接命令,不管设备是否有ACK回应,协调器都认为该设备已经分离

    2).已连接设备主动分离

    设备主动向协调器发送接触连接命令,不管有没有收到协调器的ACK回应,设备都认为自己已经分离

    3).异常分离过程

    由于设备突然断电或者被阻挡覆盖,而造成的分离。前一种,在重启后,会发起孤儿请求连接。后一种,设备会尝试重试重传并等待ACK响应,如果没有响应,设备则为认为自己已经失去联系,间隔一段时间(默认为1s)后,节点重新并且不断的发起扫描。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。