zigbee网络建立过程简介

星形网络和树型网络可以看成是网状网络的一个特殊子集,所以接下来分析如何组建一个Zigbee网状网络。

组建一个完整的Zigbee网络分为两步:第一步是协调器初始化一个网络;第二步是路由器或终端加入网络。

加入网络又有两种方法,一种是子设备通过使用MAC层的连接进程加入网络,另一种是子设备通过与一个先前指定的父设备直接加入网络。

一、协调器初始化网络
协调器建立一个新网络的流程如图1所示。

图1 协调器建立一个新网络
1、检测协调器
建立一个新的网络是通过原语发起的,但发起原语的节点必须具备两个条件,一是这个节点具有ZigBee协调器功能,二是这个节点没有加入到其它网络中。

任何不满足这两个条件的节点发起建立一个新网络的进程都会被网络层管理实体终止,网络层管理实体将通过参数值为INVALID_REQUEST的的原语来通知上层这是一个非法请求。

2、信道扫描
协调器发起建立一个新网络的进程后,网络层管理实体将请求MAC子层对信道进行扫描。

信道扫描包括能量扫描和主动扫描两个过程。

首先对用户指定的信道或物理层所有默认的信道进行一个能量扫描,以排除干扰。

网络层管理实体将根据信道能量测量值对信道进行一个递增排序,并且抛弃能量值超过了可允许能量值的信道,保留可允许能量值内的信道等待进一步处理。

接着在可允许能量值内的信道执行主动扫描,网络层管理实体通过审查返回的PAN描述符列表,确定一个用于建立新网络的信道,该信道中现有的网络数目是最少的,网络层管理实体将优先选择没有网络的信道。

如果没有扫描到一个合适的信道,进程将被终止,网络层管理实体通过参数仠为STARTUP_FAILURE的的原语来通知上层初始化启动网络失败。

3、配置网络参数
如果扫描到一个合适的信道,网络层管理实体将为新网络选择一个PAN描述符,该PAN描述符可以是由设备随机选择的,也可以是在里指定的,但必须满足PAN描述符小于或等于0x3fff,不等于0xffff,并且在所选信道内是唯一的PAN描述符,没有任何其它PAN描述符与之是重复的。

如果没有符合条件的PAN描述符可选择,进程将被终止,网络层管理实体通过参数值为STARTUP_FAILURE的的原语来通知上层初始化启动网络失败。

确定好PAN描述符后,网络层管理实体为协调器选择16位网络地址0x0000,MAC子层的macPANID参数将被设置为PAN描述符的值,macShortAddress PIB参数设置为协调器的网络地址。

4、运行新网络
网络参数配置好后,网络层管理实体通过原语通知MAC层启动并运行新网络,启动状态通过原语通知网络层,网络层管理实体再通过原语通知上层协调器初始化的状态。

5、允许设备加入网络
只有ZigBee协调器或路由器才能通过原语来设置节点处于允许设备加入网络的状态。

当发起这个进程时,如果PermitDuration参数值为0x00,网络层管理实体将通过原语把MAC层的
macAssociationPermit PIB属性设置为FALSE,禁止节点处于允许设备加入网络的状态;如果
PermitDuration参数值介于0x01和0xfe之间,网络层管理实体将通过原语把macAssociationPermit PIB属性设置为TRUE,并开启一个定时器,定时时间为PermitDuration,在这段时间内节点处于允许设备加入网络的状态,定时时间结束,网络层管理实体把MAC层的macAssociationPermit PIB属性设置为FALSE;如果PermitDuration参数的值为0xff,网络层管理实体将通过原语把
macAssociationPermit PIB属性设置为TRUE,表示节点无限期处于允许设备加入网络的状态,除非有另外一个原语被发出。

允许设备加入网络的流程如图2所示。

图2 允许设备加入网络
通过以上流程协调器就建立了一个网络并处于允许设备加入网络的状态,然后等待其它节点加入网络。

二、节点加入网络
一个节点加入网络有两种方法,一种是通过使用MAC层关联进程加入网络,另一种是通过与先前指定父节点连接而加入网络。

1)通过MAC层关联加入网络
子节点请求通过MAC关联加入网络进程如图3所示。

父节点响应通过MAC关联加入网络进程如图4所示。

1、子节点发起信道扫描
子节点通过原语发起加入网络的进程,网络层接收到这个原语后通过发起原语请求MAC层执行一个主动扫描或被动扫描以接收包含了PAN标志符的信标帧,扫描的信道以及每个信道的扫描时间分别由原语的参数ScanChannels和ScanDuration决定。

2、子节点存储各PAN信息
MAC层通过原语将扫描中接收到的信标帧信息发送到网络层管理实体,信标帧信息包括信标设备的地址、是否允许连接以及信标净载荷。

如果信标净载荷域里的协议ID域与自己的协议ID相同,子设备就将每个匹配的信标帧相关信息保存在邻居表中。

信道扫描完成后,MAC层通过原语通知网络层管理实体,网络层再通过原语通知上层,该原语包含了每个扫描到的网络的描述符,以便上层选择一个网络加入。

3、子节点选择PAN
如果上层需要发现更多网络,则可以重新执行网络发现,如果不需要,则通过原语从被扫描到的网络中选择一个网络加入。

参数PANID设置为被选择网络的PAN标识符。

4、子节点选择父节点
一个合适的父节点需要满足三个条件:匹配的PAN标志符、链路成本最大为3、允许连接,为了寻找合适的父节点,原语请求网络层搜索它的邻居表,如果邻居表中不存在这样的父节点则通知上层,如果存在多个合适的父节点则选择具有最小深度的父节点,如果存在多个具有最小深度的合适的父节点则随机选择一个父节点。

5、子节点请求MAC关联
确定好合适的父节点后,网络层管理实体发送一个原语到MAC层,地址参数设置为已选择的父节点的地址,尝试通过父节点加入网络。

6、父节点响应MAC关联
父节点通过原语通知网络层管理实体一个节点正尝试加入网络,网络层管理实体将搜索它的邻居表查看是否有一个与尝试加入节点相匹配的64位扩展地址,以便确定该节点是否已经存在于它的网络中了。

如果有匹配的扩展地址,网络层管理实体获取相应的16位网络地址并发送一个连接响应到MAC 层。

如果没有匹配的扩展地址,在父节点的地址分配空间还没耗尽的条件下网络层管理实体将为尝试加入的节点分配一个16位网络地址。

如果父节点地址分配空间耗尽,将拒绝节点加入请求。

当同意节点加入网络的请求后,父节点网络层管理实体将使用加入节点的信息在邻居表中产生一个新的项,并通过原语通知MAC层连接成功。

7、子节点响应连接成功
如果子节点接收到父节点发送的连接成功信息,发送一个传输成功响应信息以确认接收,然后子节点MAC层将通过原语通知网络层,原语包含了父节点为子节点分配的网内唯一的16位网络地址,然后网络层管理实体设置邻居表相应邻居设备为它的父设备,并通过原语通知上层节点成功加入网络。

8、父节点响应连接成功
父节点接收到子节点的传输成功响应信息后,将通过原语将传输成功的响应状态发送给网络层,网络层管理实体通过原语通知上层一个节点已经加入了网络。

图3 子节点请求加入网络进程
图4 父节点响应加入网络进程
2)通过与先前指定父节点连接加入网络
子节点通过与指定的父节点直接连接加入网络,这个时候父节点预先配置了子节点的64位扩展地址。

父节点处理一个直接加入网络的进程如图5所示。

子节点通过孤立方式加入网络进程如图6所示。

1、父节点处理子设备直接加入网络
父节点通过原语开始处理一个设备直接加入网络的进程。

父节点网络层管理实体将首先搜索它的邻居表查看是否存在一个与子节点相匹配的64位扩展地址,以便确定该节点是否已经存在于它的网络中了。

如果存在匹配的扩展地址,网络层管理实体将终止这个进程并告诉上层该设备已经存在于设备列表中了。

如果不存在匹配的扩展地址,在父节点的地址分配空间还没耗尽的条件下网络层管理实体将为子节点分配一个16位网络地址,并使用子节点的信息在邻居表中产生一个新的项。

然后通过原语上层设备已经加入网络。

2、子节点连接父节点确认父子关系
子节点通过原语发起孤立扫描来建立它与父节点之间的关系。

这时网络层管理实体将通过请求MAC层对物理层所默认的所有信道进行孤立扫描,如果扫描到父设备,MAC层通过原语通知网络层,网络层管理实体再通过原语通知上层节点请求加入成功,即与父节点建立了父子关系,可以互相通信。

图5 父节点处理一个直接加入网络进程
图6 子节点通过孤立方式加入网络进程
设备的MAC 层向上层发送原语告知一个孤立设备的存在。

只有ZigBee 协调器或ZigBee 路由器才可以接受原语,其他设备收到原语时NLME 将中止该过程。

ZigBee 协调器或ZigBee路由器收到原语后,首先判断孤立设备是否是它的子设备。

这个判断过程是通过比较孤立设备与近邻表中子设备的扩展地址来实现的。

如果ZigBee 协调器或ZigBee 路由器发现孤立设备是它的子设备,NLME 将获取该子设备的16 位网络地址并通过孤立响应发送给MAC 子层。

孤立响应时通过向MAC 层发送原语来实现的,孤立响应命令向子设备传送的结果状态通过原语反馈给NLME。

如果ZigBee 协调器或ZigBee 路由器发现孤立设备不是它的子设备,NLME 就通过孤立响应原语把这一情况反映给MAC 层。

下图是父设备把孤立的子设备加入或重新加入到网络过程的信息流程。

图7父设备把孤立的子设备加入或重新加入到网络。

合集下载

Zigbee组网流程——理论

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的工作原理

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组网流程

1、网络形成组网开始时,网络层首先向MAC层请求分配协议所规定的信道,或者由PHY层进行有效信道扫描,网络层管理实体等待信道扫描结果,然后根据扫描结果选择可允许能量水平的信道。

找到合适的信道后,为这个新的网络选择一个个域网标识符(PANID)。

PANID可由网络形成请求时指定,也可以随机选择一个PANID(除广播PANID固定为0xFFFF外),PANID 在所选信道中应该是唯一的。

PANID一旦选定,无线网关将选择16位网络地址0x0000作为自身短地址,同时进行相关设置。

完成设置后,通过MAC层发出网络启动请求,返回网络形成状态。

2、网络维护网络维护网络维护主要包括设备加入网络和离开网络过程。

当网络形成后,通过网络管理实体设定MAC层连接许可标志来判断是否允许其他设备加设备初始化为协调器入网络。

加入方式有联合方式和直接方式,在协议实现中采取直接加入网络方式。

这种方式下由待加入的设备发送请求加入信标帧,网关接收到后,网络管理实体首先判断这个设备是否已存在于网络。

存在,则使其加入网络;若不存在,则向设备发送信标帧,为这个设备分配一个网络中唯一的16位的短地址。

这里的信标帧是由网关无线协议MAC层生成作为PHY层载荷,它包含PANID、加入时隙分配等信息。

网内设备也可以请求断开网络。

当网关收到设备断开连接请求后,MAC层向网络层发送报告,开始执行断开流程,从设备列表中删除该设备相关信息。

网络层上层请求网络层发现当前在运行的网络:NLME NETWORK DISCOVERY.request(ScanChannels,ScanDuration)ScanChannels:高5为保留(b27~b31),低27为分别表示27个有效信道,该位为1,表示扫描;为0不扫描。

ScanDuration:扫描时间,aBaseSuperframeDuration*(2^n+1),n为ScanDuration值。

网络层在家收到该原语后,将通过检查ScanChannels参数发现网络,如果该设备为一个FFD 设备,则执行主动的扫描。

构建zigbee网络总结

构建zigbee网络总结

构建 ZigBee 网络总结概述ZigBee 是一种基于 IEEE 802.15.4 标准的无线通信协议,旨在提供低功耗、低数据率的短距离无线通信解决方案。

ZigBee 网络由一个或多个 ZigBee 设备组成,这些设备通过 ZigBee 协调器进行协调和管理。

本文将探讨构建 ZigBee 网络的关键步骤和注意事项。

步骤一:选择合适的硬件设备构建 ZigBee 网络的第一步是选择合适的硬件设备。

ZigBee 网络的设备分为三类:协调器(Coordinator)、路由器(Router)和终端设备(End Device)。

协调器是网络的主节点,负责组织和管理整个网络。

路由器允许设备之间进行中继和转发数据。

终端设备是网络中的最终节点,负责与其他设备进行通信。

在选择硬件设备时,需要考虑以下因素: - 功耗:如果是低功耗应用,选择低功耗的设备非常重要。

- 通信范围:根据项目需求选择合适的通信范围。

- 可靠性:确保设备的稳定性和可靠性。

- 成本:根据项目预算选择合适的硬件设备。

步骤二:设计网络拓扑结构在ZigBee 网络中,网络拓扑结构的设计非常重要。

常见的拓扑结构包括星型、网状和链状。

不同的拓扑结构适用于不同的应用场景。

星型拓扑结构星型拓扑结构是最简单和最常见的ZigBee 网络拓扑结构。

在星型拓扑结构中,所有设备都通过协调器进行通信。

该拓扑结构适用于需要集中管理的应用,例如家庭自动化系统。

网状拓扑结构网状拓扑结构允许设备之间进行多跳通信,提供了更强大的网络覆盖能力。

在网状拓扑结构中,路由器负责转发数据,并确保数据能够可靠地从源设备传输到目标设备。

该拓扑结构适用于需要大范围通信的应用,例如智能城市和工业自动化系统。

链状拓扑结构链状拓扑结构是一种特殊的网状拓扑结构,它只允许设备之间进行单向通信。

链状拓扑结构适用于需要按序传输数据的应用,例如传感器网络。

在设计网络拓扑结构时,需要考虑以下因素: - 设备位置:根据设备的位置选择合适的拓扑结构。

第三章 zigbee网络原理与开发PPT课件

第三章 zigbee网络原理与开发PPT课件

1.2 短距离无线网络的分类
1.2 短距离无线网络的分类
1.2 短距离无线网络的分类
1.2 短距离无线网络的分类
1.2 短距离无线网络的分类
1.2 短距离无线网络的分类
1.2 短距离无线网络的分类
1.2 短距离无线网络的分类
1.2 短距离无线网络的分类
1.3 ZIGBEE 版本介绍
1.1 无线网络数据传输协议对比
1.1 无线网络数据传输协议对比
Zigbee与现有标准传输协议的比较:
1.1 无线网络数据传输协议对比
因此:Zigbee数据 速率较低,不适 用于传输大数据 量的应用领域。
1.2 短距离无线网络的分类
1.2 短距离无线网络的分类
1.2 短距离无线网络的分类
1.3 一个例程
我们通过上面的点亮 LED例子来说明这个功能 的使用方法。
void main(void) { P1DIR = 0xFF; while(1)
首先修改工程的代码, {
在这里我们要实Βιβλιοθήκη 两个设#ifndef Blink_LED
备在一个工程中实现不同 的功能,两个模块的名称 分别定义为:Blink_LED 和Open_LED。实现的功
2007年底,ZigBee PRO推出。
目前已经吸引了一些最具创新性和在世界知名的组织,如华 为、罗格朗、施耐德、飞利浦、霍尼韦尔等知名企业,一个 由400多家企业和其他组织构成的非营利性开放联合体,
1.4 ZIGBEE无线网络通信信道分析
信道编号
中心频率/MHz 信道间隔/MHz 频率上限/MHz 频率下限/MHz
主要内容
3.1 Zigbee简介 3.2 Zigbee开发环境及调试 3.3 Zigbee 硬件简介 3.4 Zigbee无线传感器网络开发基础 3.5 Zigbee无线传感器网络高级开发 3.6 Zigbee无线传感器网络管理 3.7 Zigbee 无线传感器网络开发实例

zigbee 原理

zigbee 原理

zigbee 原理
Zigbee是一种无线通信协议,专门用于低功耗、短距离通信。

它基于IEEE 802.15.4标准,并且通过射频通信进行数据传输。

Zigbee的原理如下:
1. 网络拓扑:Zigbee网络由一个或多个设备组成,这些设备可以是传感器、控制器、终端设备等。

这些设备按照不同的拓扑结构组成网络,常见的拓扑结构包括星型、网状和树状结构。

2. 节点角色:在Zigbee网络中,不同的设备扮演不同的角色。

其中,协调器(Coordinator)是网络的核心,负责管理网络节
点和协调通信。

路由器(Router)用于转发数据,扩展网络范围。

终端设备(End Device)通常是最简单的设备,用于与其
他设备进行通信。

3. 数据通信:Zigbee使用无线射频通信方式,在2.4GHz频段
进行数据传输。

通信过程中,设备通过发送和接收数据帧进行交互。

数据帧中包含了一些必要的信息,如发送者、接收者、数据内容等。

4. 网络组建:Zigbee网络的组建过程通常包括扫描、加入和路由等步骤。

设备首先进行扫描,查找网络中可用的节点。

然后,设备可以加入到网络中,成为网络的一部分。

路由器设备可以通过建立多个路径,实现节点之间的数据传输。

5. 低功耗设计:Zigbee在设计上非常注重低功耗,以满足无线传感器网络的需求。

设备可以进入睡眠模式以节省能源,并且
可以通过唤醒信号来重新激活。

总的来说,Zigbee的原理是基于低功耗、短距离的无线通信,通过网络拓扑、节点角色、数据通信和低功耗设计等要素,实现设备之间的数据传输和协作。

Zigbee组网实验报告

Zigbee组网实验一.实验目的1.了解zigbee网络2.掌握zigbee节点程序下载方式3.掌握如何组建zigbee星状网络二.实验意义通过实验了解zibee网络的特点,体会其组网及通信过程三.实验环境PC机一台(内安装IAR环境)智能网关一个ZigBee节点ZigBee仿真器一套四.实验原理每一个星状网络中只有一个协调器,当协调器被激活后,它就会建立一个自己的网络。

其它位于协调器附近的zigbee节点,如果与该协调器处于同一信道,则会自动加入到该网络当中。

五.实验步骤一、认识实验设备以及下载设备连接连接线路如图所示:二、Zigbee网络组建1、协调器下载协调器在本套智能家居系统中担任信息收集与传输的工作,它和每个ZigBee模块进行无线通讯,并将信息传送给智能网关,同时也将网关的控制指令发送给各个模块。

我们首先将一个ZigBee模块下载成协调器,具体步骤如下:(1)打开“\实验程序\协调器\Projects\zstack\Samples\collector SimpleApp 1.25\ CC2430DB\SimpleApp.eww”。

如图1-6所示:(2)不同的实验小组选择自己所分配的信道。

点击左侧的文件导航栏,找到tools文件夹,打开其中的文件f8wConfig.cfg,找到自己小组的信道,将行的注释去掉,并且确认其他各个信道代码均为注释状态。

更改完信道之后,在菜单栏中选择Project\Rebuild All进行编译,编译完成后生成的HEX 文件保存在\实验程序\协调器\Projects\zstack\Samples\collectorSimpleApp1.25\CC2430DB\SimpleCollectorEB\Exe 中。

(3)更改完信道之后,在菜单栏中选择Project\Rebuild All进行编译,编译完成后生成的HEX文件保存在\实验程序\协调器\Projects\zstack\Samples\collectorSimpleApp1.25\CC2430DB\SimpleCollec torEB\Exe中;(4)打开smartRF下载软件,如图所示,按照图将下载设备的各个线连接好,之后按一下下载器(也就是白色盒子)上面的黑色按钮,则下载界面中将会识别到要与下载器相连接的zigbee模块芯片,如图所示,对相关条件进行勾选;2.其它zigbee终端节点的下载Zigbee终端节点在上电后自动加入到处于同一信道的zigbee协调器所组建的zigbee网络当中。

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关联加入网络进程如图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 将中止该过程..ZigBee 协调器或ZigBee路由器收到MLME-ORPHAN.indication 原语后;首先判断孤立设备是否是它的子设备..这个判断过程是通过比较孤立设备与近邻表中子设备的扩展地址来实现的..如果ZigBee 协调器或ZigBee 路由器发现孤立设备是它的子设备;NLME 将获取该子设备的16 位网络地址并通过孤立响应发送给MAC 子层..孤立响应时通过向MAC 层发送MLME-ORPHAN.response原语来实现的;孤立响应命令向子设备传送的结果状态通过MLME-COMMSTATUS.indication 原语反馈给NLME..如果ZigBee 协调器或ZigBee 路由器发现孤立设备不是它的子设备;NLME 就通过孤立响应原语把这一情况反映给MAC 层..下图是父设备把孤立的子设备加入或重新加入到网络过程的信息流程..图7父设备把孤立的子设备加入或重新加入到网络。

Zigbee网络

Zigbee网络优点:1)低功耗:在非工作状态下,ZigBee 节点会处于休眠模式,耗能很低,两节五号干电池可以支持一个节点工作 6-24 个月,甚至更久;在工作模式下,由于ZigBee 技术的数据传输速率低,传输的数据量很小,因此信号作用的时间很短。

再加上设备的休眠激活、搜索和信道接入时延都比较短,这使得 ZigBee 节点更加省电[1]。

2)延时短:ZigBee 的响应速度很快,通信时从休眠状态转换到激活的时延都非常短,一般只需 15ms,节点连接进入网络所需要的时间仅为 30ms,进一步减少了能源消耗[2]。

3)低成本:因为ZigBee网络的数据传输速率低,协议简单,所以大大降低了硬件开发成本,并且 ZigBee 协议免收专利费用和免执照频段[2]。

4)安全性高:ZigBee 提供了数据完整性检查和鉴权功能,在数据传输中提供了三级安全性。

第一级实际是无安全方式,对于某种应用,如果安全并不重要或者上层已经提供足够的安全保护,器件就可以选择这种方式来转移数据。

对于第二级安全级别,器件可以使用接入控制清单(ACL)来防止非法器件获取数据,在这一级不采取加密措施。

第三级安全级别在数据转移中采用属于高级加密标准(AES)的对称密码。

AES可以用来保护数据净荷(一帧中传输的用户数据部分)和防止攻击者冒充合法器件[3]。

5)网络容量大:一个星型结构的 ZigBee 网络最多可以容纳 254 个从设备和一个主设备,网络构成灵活,在一个单独的 ZigBee 网络内可以支持超过 65000 个ZigBee网络节点[2]。

6)免执照频率:ZigBee 技术有三种传输频率段,分别为 868MHz(欧洲1个信道,数据传输速率为20kb/s),915MHz(美国10个信道,数据传输速率为40kb/s)和2.4GHz(16个信道,全球统一无需申请的ISM频段,有助于ZigBee设备的推广和生产成本的降低)频率段为全球免费使用频段,传输速率达到250KB/s。

zigbee组网过程

}
协调器建网
ZDObject.c
voidZDO_StartDevice( bytelogicalType,devStartModes_tstartMode, bytebeaconOrder, bytesuperframeOrder)
{
ZDApp_ChangeState(DEV_COORD_STARTING);
}
OSAL_SampleLight.c
voidosalInitTasks( void )
{
uint8taskID= 0;
ZDApp_Init(taskID++ );
zcl_Init(taskID++ );
zclSampleLight_Init(taskID++ );

ZDApp.c
voidZDApp_Init( uint8task_id)
if( (zclSampleLight_NwkState== DEV_ZB_COORD) ||
(zclSampleLight_NwkState== DEV_ROUTER) ||
(zclSampleLight_NwkState== DEV_END_DEVICE) )
{
#ifdefLED
if(IsOffline)
}
ZDApp.c
UINT16ZDApp_event_loop(bytetask_id, UINT16 events )
{
……
if ( events &ZDO_NETWORK_START)//网络启动事件处理
{
ZDApp_NetworkStartEvt();
}
}
ZDApp.c
voidZDApp_NetworkStartEvt( void )
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档