zigbee网络建立过程简介(G1)
- 格式:docx
- 大小:310.51 KB
- 文档页数:6
星形网络和树型网络可以看成是网状网络的一个特殊子集,所以接下来分析如何组建一个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协议解析无线个人局域网的工作原理与物联网应用无线个人局域网(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⽹络建⽴与加⼊协议栈如何辨别设备类型?在上图中可以看到协调器建⽴⽹络的步骤以及路由器和终端加⼊⽹络的过程,但协议栈究竟如何区分设备类型,仅从图中⽆法看出。
在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是一种低功耗、短距离无线通信技术,主要用于物联网设备之间的通信。
它基于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 是一种基于 IEEE 802.15.4 标准的无线通信协议,旨在提供低功耗、低数据率的短距离无线通信解决方案。
ZigBee 网络由一个或多个 ZigBee 设备组成,这些设备通过 ZigBee 协调器进行协调和管理。
本文将探讨构建 ZigBee 网络的关键步骤和注意事项。
步骤一:选择合适的硬件设备构建 ZigBee 网络的第一步是选择合适的硬件设备。
ZigBee 网络的设备分为三类:协调器(Coordinator)、路由器(Router)和终端设备(End Device)。
协调器是网络的主节点,负责组织和管理整个网络。
路由器允许设备之间进行中继和转发数据。
终端设备是网络中的最终节点,负责与其他设备进行通信。
在选择硬件设备时,需要考虑以下因素: - 功耗:如果是低功耗应用,选择低功耗的设备非常重要。
- 通信范围:根据项目需求选择合适的通信范围。
- 可靠性:确保设备的稳定性和可靠性。
- 成本:根据项目预算选择合适的硬件设备。
步骤二:设计网络拓扑结构在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网状网络包括两个步骤:网络初始化、节点加入网络。
其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网。
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设备。
星形网络和树型网络可以看成是网状网络的一个特殊子集,所以接下来分析如何组建一个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网络分为两步:第一步是协调器初始化一个网络;第二步是路由器或终端加入网络。
加入网络又有两种方法,一种是子设备通过使用MAC层的连接进程加入网络,另一种是子设备通过与一个先前指定的父设备直接加入网络。
一、协调器初始化网络协调器建立一个新网络的流程如图1所示。
图1 协调器建立一个新网络1、检测协调器建立一个新的网络是通过原语发起的,但发起原语的节点必须具备两个条件,一是这个节点具有ZigBee协调器功能,二是这个节点没有加入到其它网络中。
任何不满足这两个条件的节点发起建立一个新网络的进程都会被网络层管理实体终止,网络层管理实体将通过参数值为INVALID_REQUEST的的原语来通知上层这是一个非法请求。
2、信道扫描协调器发起建立一个新网络的进程后,网络层管理实体将请求MAC子层对信道进行扫描。
信道扫描包括能量扫描和主动扫描两个过程。
首先对用户指定的信道或物理层所有默认的信道进行一个能量扫描,以排除干扰。
网络层管理实体将根据信道能量测量值对信道进行一个递增排序,并且抛弃能量值超过了可允许能量值的信道,保留可允许能量值内的信道等待进一步处理。
接着在可允许能量值内的信道执行主动扫描,网络层管理实体通过审查返回的PAN描述符列表,确定一个用于建立新网络的信道,该信道中现有的网络数目是最少的,网络层管理实体将优先选择没有网络的信道。
如果没有扫描到一个合适的信道,进程将被终止,网络层管理实体通过参数仠为STARTUP_FAILURE的的原语来通知上层初始化启动网络失败。
3、配置网络参数如果扫描到一个合适的信道,网络层管理实体将为新网络选择一个PAN描述符,该PAN描述符可以是由设备随机选择的,也可以是在里指定的,但必须满足PAN描述符小于或等于0x3fff,不等于0xffff,并且在所选信道内是唯一的PAN描述符,没有任何其它PAN描述符与之是重复的。
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网络优点: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设备加入网络过程---关联加入在一个zigbee协调器设备建立网络后,路由器设备或者终端设备(end device),可以加入协调器建立的网络,具体加入网络有两种方式,一种是通过关联(association)方式,就是待加入的设备发起加入网络,具体实现方式后面讨论,另一中是直接(direct)方式,就是待加入的设备具体加入到那个设备下,作为该设备的子节点,由以前网络中的设备,想待加入的设备作为其子设备决定。
下面重点讨论第一种方式,也是实际中用的最多的方式通过关联方式加入一个网络:加入一个设备,是两个设备的事,即子设备和待定父设备对于子设备,首先子设备调用NLME-NETWORK-DISCOVERY.request 原语,设定待扫描的信道,以及每个信道扫描的时间,网络层收到这个原语,将要求MAC层执行被动或主动扫描。
具体发送到设备外的是一个becon request 帧,当在这个信道中的设备收到该帧,将会发送becon帧,这是子设备通过BEACON-NOTIFY.indication 原语,告知该设备的MAC 层,该becon帧包含了发送该帧的地址信息,以及是否允许其他设备以其子节点的方式加入。
待加入的设备,在网络层,将检查该becon帧协议 ID是否是zigbee ID 。
如果不是,将忽略;如果是,该设备将复制收到每个becon帧的相关信息到其关联表中(neighbor tabl e)。
一旦MAC层完成了扫描,将发送 MLME-SCAN.confirm 原语,告知网络层,网络层将发送NLME-NETWORK-DISCOVERY.confirm 原语,告知应用层。
应用层收到该原语,应用层将根据情况,要么重新要求扫描,或者从关联表中选择所发现的网络加入。
调用NLME-JOIN.request 原语,原语中各个参数的设置参看协议(可以在本站下载栏找到)非常容易。
如果在关联表中找不到合适的准父节点,将调用原语告知应用层,如果由多个设备可以满足要求,将选择到协调器节点深度最低的设备,如果有几个设备的深度相同,且都是最小深度,将从中随机选择一个。
zigbee数传电台快速建立zigbee网络的入门教程
为了让用户能快速熟悉基于zigbee3.0技术的zigbee数传电台,本文将引导用户结合上位机进行经过简单配置搭建一个ZigBee网络,包括节点类型配置、PANID设置、信道设置、发射功率设置。
1、快速入门建立一个ZigBee网络
结合上位机软件快速简单的建立一个ZigBee网络,具体步骤如下:
(1)将电台连接电脑,打开上位机软件“亿佰特ZigBee3.0上位机”,选择设备类型,选择串口号,选择串口波特率(默认115200kbps),点击打开串口。
(2)模组出厂为HEX指令配置模式,E180-DTU如果处于AT指令模式,需要切换至HEX指令模式,点击“读取参数”,消息框提示“读取参数成功”,主要的网络参数包括:长地址,电台类型默认为协调器(如果不是请设置成协调器),网络状态是"not have"(如果不是需要退出网络或恢复出厂)。
如果读取参数无效,有可能模组当前为传输模式,需要点击“进入配置模式”,消息框提示“进入配置状态成功”。
(3)点击“开始配网”,协调建立一个开放网络,协调器新建网络后会持续180秒开放网络,LINK灯1Hz闪烁,路由器和终端可以在这个时间内加入网络。
zi gbee 网络建立过程简介( G1)星形网络和树型网络可以看成是网状网络的一个特殊子集,所以接下来分析如何组建一个Zigbee网状网络。
组建一个完整的Zigbee网络分为两步:第一步是协调器初始化一个网络;第二步是路由器或终端加入网络。
加入网络又有两种方法,一种是子设备通过使用MAC层的连接进程加入网络,另一种是子设备通过与一个先前指定的父设备直接加入网络。
一、协调器初始化网络协调器建立一个新网络的流程如图1所示。
WliE-N ETWORK-FORW MION 啲TMJ^E-SCAN requestMLWE-SDAK confamMLME-SCAN.requestMLWE-SCAN contfni畝外站it PM ID.MUML-5C.1「eqestHL ME ShT cenfinnMLK1E-5TAr(T requestmiE-STARTanfirmNLM:'. NETWCftK-rORMMlON infirmAPL NWK MAC图1协调器建立一个新网络1、检测协调器建立一个新的网络是通过原语NLME_NETWORK_FORMATION.reqi发起的,但发起NLME_NETWORK_FORMATION.reqi原语的节点必须具备两个条件,一是这个节点具有ZigBee协调器功能,二是这个节点没有加入到其它网络中。
任何不满足这两个条件的节点发起建立一个新网络的进程都会被网络层管理实体终止,网络层管理实体将通过参数值为INVALID_REQUES的NLME_NETWORK_FORMATION.con的原语来通知上层这是一个非法请求。
2、信道扫描协调器发起建立一个新网络的进程后,网络层管理实体将请求MAC子层对信道进行扫描。
信道扫描包括能量扫描和主动扫描两个过程。
首先对用户指定的信道或物理层所有默认的信道进行一个能量扫描,以排除干扰。
网络层管理实体将根据信道能量测量值对信道进行一个递增排序,并且抛弃能量值超过了可允许能量值的信道,保留可允许能量值内的信道等待进一步处理。
Zigbee技术、产品、方案调研1.zigbee和802.15.4IEEE 802.15.4 的定义:○1网络发现机制2 形成和加入网络机制3.信道改变机制4.ACK,单跳,数据发送的碰撞避免5.单跳广播,非ACK如果你建立的网络是在一个单跳范围之内,那么802.15.4MAC.PHY就满足需求,无需ZigBee。
2.形成,加入,重组网络在zigbee节点与网络通信前,它必须形成或者加入现有的网络。
只有zigbee协调器可以形成网络,Zigbee路由器或终端加入网络。
每个阶段拥有一个唯一的64位IEEE(或MAC)地址,并且被分配一个16位的网络地址在网络层。
2.1 形成网络Zigbee协调器(ZCs)形成网络时,要决定一个网络标识符,称为PAN ID,然后从1-16,也就是802.15.4信道(11-26)选择其中一个。
ZC的责任:●形成网络●网络工作时建立802.15.4信道●建立PAN ID●决定使用的栈配置文件(编译或运行时选项)●其可作为网络和安全应用的可信任中心●作为终端绑定的仲裁者(调试选项)●也可作为网状网络的一个路由器●树状网络的顶点ZC可作为和互联网连接的网关,控制箱,温控器等等。
ZC形成网络的过程2.2 加入网络ZRs的责任:寻找加入正确的网络在网络上的延续广播参与路由,包括发现和维护路由允许其它设备加入网络设备终端的作用:寻找加入正确的网络询问它们的父节点在它们睡眠时发送的消息。
网络重组时发现新的父节点。
在没有应用时休眠保存电池能量。
信标中包含ZigBee网络的一些信息,如PAN ID,扩展的PAN ID,节点有没有的能力允许路由器或终端节点加入。
加入网络7.3 地址的分配寻址是在一个网络中是至关重要的。
Zigbee2种地址:IEEE或MAC地址,网络地址。
在堆栈文件0x01,地址的分配像父子关系形成树状。
计算数叫深度(从zigbee协调器开始的跳数)。
在CSKIP这种网络中,协调器是节点0(0x0000)。
星形网络和树型网络可以看成是网状网络的一个特殊子集,所以接下来分析如何组建一个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 将中止该过程。