ZIGBee组网流程
实验-ZigBee组网
实验-ZigBee组⽹实验:ZigBee基本通信实验⼀、实验⽬的1.了解ZigBee协议及其在软件上如何实现。
2.学习使⽤sniffer嗅探⽹络节点之间通信数据包并分析数据包。
3. 学习Zigbee⽹络组⽹及路由选择。
⼆、实验内容1.基于z-stack协议栈的组⽹及数据传输。
2.使⽤sniffer抓取节点之间传输的数据包并分析数据包组成。
三、实验设备1.IAR开发平台环境2.ZigBee开发套件3.Sniffer抓包⼯具(软件和硬件)实验开发套件的领取注意事项:1、每周五上午1-2节可到电信5号楼东303A房间,协同创新中⼼找蓝伟涛学长(领取FPGA开发板)或电信1号楼515室找赵曜学长(领取Zigbee开发套件)。
2、每个⼩组以组长为代表签字领取⼀套开发套件,并在三周内归还。
请爱护实验套件,归还时确保所有部件完好齐全。
3、实验中若有问题可在周五上午1-2节课时间去上述地址找两位助教答疑。
四、实验原理1,ZigBee协议概述ZigBee作为⼀种⽆线通信标准,它是以IEEE802.15.4⽆线通信技术为基础的⼀组涉及到⽹络、安全和应⽤⽅⾯的软件协议。
它是⼀种短距离、低复杂度、低功耗、地数据传输速率和低成本的双向⽆线通信技术。
该技术可以应⽤于超低功耗率损耗的⽆线⽹络中,它满⾜ISO/OSI参考模型。
其物理层和MAC层采⽤了IEEE802.15.4标准;ZigBee联盟定义了上层部分,包括⽹络层和应⽤层。
⽆线通信⽹络软件以z-stack作为ZigBee的协议栈,硬件为基于CC2530-ZigBee开发套件。
2 设备类型(Device Types)在ZigBee⽹络中存在三种逻辑设备类型:Coordinator(协调器),Router(路由器)和End-Device(终端设备)。
ZigBee⽹络由⼀个Coordinator以及多个Router和多个End_Device组成。
在ZStack-CC2530-2.3.1-1.4.0中⼀个设备的类型通常在编译的时候通过编译选项确定。
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组网流程
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 是一种基于 IEEE 802.15.4 标准的无线通信协议,旨在提供低功耗、低数据率的短距离无线通信解决方案。
ZigBee 网络由一个或多个 ZigBee 设备组成,这些设备通过 ZigBee 协调器进行协调和管理。
本文将探讨构建 ZigBee 网络的关键步骤和注意事项。
步骤一:选择合适的硬件设备构建 ZigBee 网络的第一步是选择合适的硬件设备。
ZigBee 网络的设备分为三类:协调器(Coordinator)、路由器(Router)和终端设备(End Device)。
协调器是网络的主节点,负责组织和管理整个网络。
路由器允许设备之间进行中继和转发数据。
终端设备是网络中的最终节点,负责与其他设备进行通信。
在选择硬件设备时,需要考虑以下因素: - 功耗:如果是低功耗应用,选择低功耗的设备非常重要。
- 通信范围:根据项目需求选择合适的通信范围。
- 可靠性:确保设备的稳定性和可靠性。
- 成本:根据项目预算选择合适的硬件设备。
步骤二:设计网络拓扑结构在ZigBee 网络中,网络拓扑结构的设计非常重要。
常见的拓扑结构包括星型、网状和链状。
不同的拓扑结构适用于不同的应用场景。
星型拓扑结构星型拓扑结构是最简单和最常见的ZigBee 网络拓扑结构。
在星型拓扑结构中,所有设备都通过协调器进行通信。
该拓扑结构适用于需要集中管理的应用,例如家庭自动化系统。
网状拓扑结构网状拓扑结构允许设备之间进行多跳通信,提供了更强大的网络覆盖能力。
在网状拓扑结构中,路由器负责转发数据,并确保数据能够可靠地从源设备传输到目标设备。
该拓扑结构适用于需要大范围通信的应用,例如智能城市和工业自动化系统。
链状拓扑结构链状拓扑结构是一种特殊的网状拓扑结构,它只允许设备之间进行单向通信。
链状拓扑结构适用于需要按序传输数据的应用,例如传感器网络。
在设计网络拓扑结构时,需要考虑以下因素: - 设备位置:根据设备的位置选择合适的拓扑结构。
zigbee组网方案
zigbee组网方案Zigbee组网方案简介Zigbee是一种低功耗、近距离的无线通信技术,主要应用于物联网领域。
它基于IEEE 802.15.4标准,通过无线信号传输数据,可以实现设备之间的互联和通信。
本文将介绍Zigbee组网的原理以及常见的组网方案。
Zigbee组网原理Zigbee组网主要由三个组成部分组成:协调器(Coordinator),路由器(Router)和终端设备(End Device)。
协调器是整个网络的中心,负责管理和控制整个网络,并在必要时与外部网络通信。
路由器可以通过多跳方式将数据传输到不同的节点,终端设备是网络中的终端节点,主要用于数据的采集和传输。
Zigbee网络采用星状拓扑结构,协调器位于网络的中心,路由器和终端设备通过与协调器的连接来建立网状拓扑结构。
这种结构可以保证网络的稳定性和可靠性。
组网过程中,首先需要进行网络的初始化和配置。
协调器将会发出一个网络启动信号,其他设备在接收到信号后可以加入已有网络或创建一个新的网络。
随后,设备会通过Zigbee的网络协议进行数据的传输和交换。
协议包括了设备之间的通信规则、数据的格式和传输的方式。
Zigbee组网方案Zigbee组网方案有两种常见的方式:单主结构和多主结构。
单主结构在单主结构中,只有一个协调器作为网络的中心,其他设备通过与协调器的连接来进行通信。
这种结构的优点是简单和易于部署,适用于规模较小的网络。
然而,由于只有一个协调器,整个网络的稳定性和可靠性会受到限制。
多主结构多主结构中,可以有多个协调器作为网络的中心。
这种结构的优点是能够提供更高的灵活性和可扩展性,并且可以实现区域之间的连接和通信。
每个协调器都可以管理一部分设备和节点,通过多跳方式实现数据的传输。
然而,多主结构的部署和管理相对复杂,需要更多的设备和资源。
Zigbee网络拓扑结构除了单主结构和多主结构之外,Zigbee还支持多种拓扑结构,包括星状、网状、树状和混合结构。
zigbee网络建立过程简介
星形网络和树型网络可以看成是网状网络的一个特殊子集,所以接下来分析如何组建一个Zigbee网状网络。
组建一个完整的Zigbee网络分为两步:第一步是协调器初始化一个网络;第二步是路由器或终端加入网络。
加入网络又有两种方法,一种是子设备通过使用MAC层的连接进程加入网络,另一种是子设备通过与一个先前指定的父设备直接加入网络。
一、协调器初始化网络协调器建立一个新网络的流程如图1所示。
图1 协调器建立一个新网络1、检测协调器建立一个新的网络是通过原语发起的,但发起原语的节点必须具备两个条件,一是这个节点具有ZigBee协调器功能,二是这个节点没有加入到其它网络中。
任何不满足这两个条件的节点发起建立一个新网络的进程都会被网络层管理实体终止,网络层管理实体将通过参数值为INVALID_REQUEST的的原语来通知上层这是一个非法请求。
2、信道扫描协调器发起建立一个新网络的进程后,网络层管理实体将请求MAC子层对信道进行扫描。
信道扫描包括能量扫描和主动扫描两个过程。
首先对用户指定的信道或物理层所有默认的信道进行一个能量扫描,以排除干扰。
网络层管理实体将根据信道能量测量值对信道进行一个递增排序,并且抛弃能量值超过了可允许能量值的信道,保留可允许能量值内的信道等待进一步处理。
接着在可允许能量值内的信道执行主动扫描,网络层管理实体通过审查返回的PAN描述符列表,确定一个用于建立新网络的信道,该信道中现有的网络数目是最少的,网络层管理实体将优先选择没有网络的信道。
如果没有扫描到一个合适的信道,进程将被终止,网络层管理实体通过参数仠为STARTUP_FAILURE的的原语来通知上层初始化启动网络失败。
3、配置网络参数如果扫描到一个合适的信道,网络层管理实体将为新网络选择一个PAN描述符,该PAN描述符可以是由设备随机选择的,也可以是在里指定的,但必须满足PAN描述符小于或等于0x3fff,不等于0xffff,并且在所选信道内是唯一的PAN描述符,没有任何其它PAN描述符与之是重复的。
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网络当中。
实验之前请先设置协调器和终端节点的通道及panid号。由于本套实验
实验之前请先设臵协调器和终端节点的通道及PANID号。
由于本套实验中没有涉及到ZIGBEE协议栈和IAR开发环境的使用,所以在实验箱配臵的时候就已经设定每个实验箱的终端节点的通道和PANID,只要将协调器的参数设臵与终端节点一致即可。
理论上每个实验箱配臵的终端节点以上两个参数不完全相同(也就是至少一个参数不一样)。
一、ZIGBEE组网实验1、硬件环境搭建硬件设备:短距离无线通信实验平台1台、PC1台、ZIGBEE协调器模块1个(板载)、ZIGBEE终端节点1个、2.4G天线1根;硬件连接:首先连接实验设备电源:9V/2A,让实验设备正常启动。
检查确认ZIGBEE协调器模块正常,模块开关拨到ON位臵连接串口调试线2、设臵ZIGBEE协调器参数当系统正常启动后进入WXL-zigbee界面设臵ZIGBEE通道和PANID 备注:由于本套实验中没有涉及到ZIGBEE协议栈和IAR开发环境的使用,所以在实验箱配臵的时候就已经设定每个实验箱的终端节点的通道和PANID,只要将协调器的参数设臵与终端节点一致即可。
理论上每个实验箱配臵的终端节点以上两个参数不完全相同(也就是至少一个参数不一样)。
这里通道设臵为0x0B,PANID为0x0001.3、下载Zigbeenet组网应用程序到LINUX首先检查串口调试线的虚拟串口号:打开超级终端保证嵌入式板子已经正常启动,同时保证各连接线正常。
此时可以再超级终端中按回车建,如果有:出现,表示各方面运行正常。
否则需要检查以上各步骤。
如果是第一次使用ZIGBEE功能,那么此时输入ls命令可以查看各应用程序。
可以看出里面没有ZIGBEE应用程序。
此时在超级终端菜单上选择“传送---发送文件”浏览目录\zigbee-cc2530\net到我们编译后的文件:点击发送即可发送完毕可以通过ls命令查看。
可以看到已经有zigbeenet的应用程序在其中了。
4、实验项目进入ZIGBEE组网应用程序:ls查看应用程序进入ZIGBEE应用程序只需要在超级终端中连续输入以下两行命令即可chmod 775 zigbeenet./ zigbeenet此时会自动去格式化并建立网络,建立网路后ZIGBEE协调器模块的红色LED 会被点亮:ZIGBEE网络启动命令为:对应LINUX代码如下:上电终端节点当模块红色LED被点亮时,表示加入网络成功,此时可以在超级终端上看到加入节点信息。
zigbee组网实验报告
zigbee组网实验报告ZigBee组网实验报告引言:ZigBee是一种低功耗、低速率、低成本的无线通信技术,被广泛应用于物联网领域。
本实验旨在通过搭建ZigBee网络,探索其组网原理和应用。
一、实验背景随着物联网的快速发展,各种智能设备的出现使得人们的生活更加便捷和智能化。
而ZigBee作为一种独特的无线通信技术,具有低功耗、低成本和可靠性强的特点,成为物联网领域的重要组成部分。
二、实验目的1.了解ZigBee组网的基本原理和拓扑结构;2.搭建ZigBee网络,实现设备之间的通信;3.探索ZigBee在物联网领域的应用。
三、实验步骤1.准备工作在实验开始前,需要准备一些硬件设备,包括ZigBee模块、开发板、传感器等。
同时,还需要安装相应的软件开发环境。
2.搭建ZigBee网络首先,将ZigBee模块插入开发板,连接电源并进行初始化设置。
然后,通过软件开发环境,配置网络参数,包括网络ID、信道等。
接下来,将各个设备逐一加入网络,形成一个完整的ZigBee网络。
3.通信测试完成网络搭建后,进行通信测试。
通过发送指令或传感器数据,验证设备之间的通信是否正常。
同时,还可以进行数据传输速率测试,评估网络的性能。
四、实验结果与分析经过实验,成功搭建了一个ZigBee网络,并实现了设备之间的通信。
通过测试发现,ZigBee网络具有较低的功耗和较高的可靠性,适用于物联网领域的各种应用场景。
五、实验总结ZigBee作为一种重要的无线通信技术,具有广泛的应用前景。
通过本次实验,我们深入了解了ZigBee组网的原理和应用,并通过实际操作掌握了搭建ZigBee网络的方法。
这对我们进一步研究和应用物联网技术具有重要意义。
六、展望在未来,随着物联网的不断发展,ZigBee网络将在更多的领域得到应用。
例如智能家居、智能医疗、智能交通等,ZigBee技术将为这些领域带来更多的便利和创新。
结语:通过本次实验,我们对ZigBee组网技术有了更深入的了解,并体验了其在物联网领域的应用。
如何实现ZigBee快速组网?
如何实现ZigBee快速组网?真想一键组网,真想让它自组网,真不想看繁琐的组网协议,究竟如何快速实现ZigBee 组网,请看图!Zigbee的前身是1998年由 INTEL、lBM等产业巨头发起的“ Homer flite”技术,随着我国物联网正进入发展的快车道,ZigBee也正逐步被国内越来越多的用户接受。
但在发展上还是有很多的挑战,比如说如何最大化发挥ZigBee组网优势?Zigbee技术的主要特点是支持自组网能力强,自恢复能力强,因此,对于井下定位,停车场车位定位,室外温湿度采集,污染采集等应用非常具有吸引力。
图 1 ZigBee在智慧停车应用组建一个完整的ZigBee网络包括两个步骤:网络初始化、节点加入网络。
其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网。
图 2 ZigBee网络拓扑结构网络初始化流程:↖确定网络协调器;↖进行信道扫描过程;↖设置网络ID;节点通过协调器加入网络:↖查找网络协调器;↖发送关联请求命令(Associaterequest command);↖等待协调器处理;↖发送数据请求命令;↖回复组网确认;节点通过已有节点加入网络ZLG致远电子基于Silicon Lab EFR32MG芯片设计的ZM32系列ZigBee模块,充分发挥ZigBee协议优势,结合致远电子在无线行业积累创新,可为客户提供三种不同组网方式。
手动组网图 3 手动组网流程图配置网络参数:◆选择工作类型:协调器要先保存好配置参数,成为网络内第一台物理设备;◆配置通道号;◆配置网络号 (PAN ID);图 4 分别设置模块配置提交保存当设备的本地地址变成非 0xFFFF 时,设备入网成功。
图 5 路由与终端设备成功入网图 6 测试实例普通自组网图 7 主机与从机模块普通自组网流程图图 8 配置模块工作类型图 9 启用自组网功能✧控制协调器组网●在协调器所在的 DEMO Board 上找到 S2,按下至少 3 秒后放开,然后观察DEMO Board 上 STATE LED 是否从闪烁 4 下,变成闪烁 2 下;(如果还是闪烁 4 下,请重新按下 S2 3 秒);●在协调器所在的 DEMO Board 上找到 S3,一直按着不要松开,STATE LED 从闪烁 2下,变成闪烁 1 下;此时协调器允许新设备加入网络;图 10 控制协调器允许入网使用配置工具获取设备信息,协调器已经自动设置了唯一网络号信息;图 11 协调器设置网络PAN ID图 12 控制路由/终端设备组网●在路由/终端设备所在的 DEMO Board 上找到 S3,按下至少 100 ms 后放开;●观察DEMO Board 上 STATE LED 是否从闪烁 4 下,到闪烁 3 下,最后闪烁 2下;●如果还是闪烁 4 下,检查协调器是否一直按着按钮 S3;图 13 网络建立成功模块信息此时,使用配置工具获取设备信息,本地地址已自动设置,表示网络建立成功。
第8讲 ZigBee组网流程报告
ZigBee网络关键技术研究0 引言20世纪六七十年代,计算资源放在计算中心,计算机的体积庞大;80年代,个人计算机普及,借助网络通信,实现资源共享、信息互通;90年代随着无线电话的普及,无线通信技术得到发展。
现在常见的几种近距离无线通信技术:(1)WiFi:即IEEE802.11x,提供无线局域网的接入(2)蓝牙:工作在2.4GHz的频段(3)红外线数据通信IrDA:利用红外线进行点对点通信(4)ZigBee:近距离无线通信技术,以2.4GHz为主要频段,采用扩频技术Zigbee是IEEE 802.15.4协议的代名词,是一种短距离、低功耗的无线通信技术。
其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。
主要适合用于自动控制和远程控制领域,可以嵌入各种设备。
Zigbee是一个由可多到65000个无线数传模块组成的一个无线数传网络平台,十分类似现有的移动通信的CDMA网或GSM网,每一个Zigbee网络数传模块类似移动网络的一个基站,在整个网络范围内,它们之间可以进行相互通信;每个网络节点间的距离可以从标准的75米,到扩展后的几百米,甚至几公里。
1 ZigBee网络拓扑结构Zigbee协议标准中定义了三种网络拓扑结构形式:星状结构,树状结构,网状结构。
星形网络和树型网络可以看成是网状网络的一个特殊子集,网络拓扑结构是最常用的结构形式。
如图1所示,图1 ZigBee网络拓扑结构图Zigbee网络只支持2种物理设备;全功能设备(FFD,Full Function Device)和精简功能设备(RFD,Reduced FunctionDevice),其中FFD设备可提供全部服务,可充当任何Zigbee节点,不仅可以发送和接收数据,还具有路由功能,因此可以接收子节点;而RFD设备只提供部分服务,只能充当终端节点,不能充当协调器和路由节点,它只负责将采集的数据信息发送给协调器和路由节点,并不具备路由功能,因此不能接收子节点,并且RFD之间的通信必须通过FFD才能完成。
Zigbee设备入网过程
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是一种新兴的短距离、低功耗、低数据传输速率的无线网络技术,它是一种介于无线标记技术和蓝牙之间的技术方案。
ZigBee是建立在IEEE 802.15.4标准之上,它确定了可以在不同制造商之间共享的应用纲要。
IEEE 802。
15.4标准定义了ZigBee协议的PHY层和MAC层。
PHY层规范确定了在2.4GHz(全球通用的ISM频段)以250kb/s的基准传输率工作的低功耗展频无线电以及另有一些以更低数据传输率工作的915MHz(北美的ISM频段)和868MHz(欧洲的ISM频段)的实体层规范。
MAC层规范定义了在同一区域工作的多个IEEE 802。
15。
4无线电信号如何共享空中通道。
为了促进ZigBee技术的发展,2001年8月成立了ZigBee联盟,2002年下半年,英国Invensys公司、日本三菱电子公司、美国摩托罗拉公司以及荷兰飞利浦半导体公司四大巨头共同宣布,它们将加入“ZigBee联盟”,目前该联盟已经有150多家成员,以研发名为ZigBee的下一代无线通信标准.正如前面所述,ZigBee不仅仅只是802。
15.4的名字,IEEE 802。
15.4仅处理低级MAC层和PHY层协议,所以ZigBee联盟对其网络层协议和API进行了标准化,还开发了安全层,以保证这种便携设备不会意外泄漏其标识。
ZigBee的组成和构网方式1。
FFD和RFD利用zigbee技术组件的无线个人区域网(WPAN)是一种低速率的无线个人区域网(LR WPAN),这种低速率个人区域网的网络结构简单、成本低廉,具有有限的功率和灵活的吞吐量。
在一个LR WPAN网络中,可同时存在两种不同类型的设备,一种是具有完整功能的设备(FFD),另一种是简化功能的设备(RFD)。
在网络中,FFD通常有3中工作状态:(1)作为个人区域网络(PAN)的主协调器;(2)作为一个普通协调器;(3)作为一个终端设备。
FFD可以同时和多个RFD或其他FFD通信。
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设备加入网络过程---关联加入在一个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网络建立过程简介(G1)知识讲解
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组网方案
Zigbee组网方案介绍Zigbee是一种低功耗、短距离、低速率的无线通信技术,常用于物联网应用。
Zigbee组网方案是指在Zigbee网络中,如何合理布局设备和搭建网络结构,以实现稳定的通信和高效的数据传输。
本文将介绍Zigbee组网的基本原理、网络拓扑结构以及常用的组网方案。
基本原理Zigbee使用IEEE 802.15.4无线通信标准,工作于2.4GHz频段。
它采用低功耗、低速率的通信方式,支持星型和网状拓扑结构,以及多种网络拓扑结构的组合。
Zigbee组网的基本原理是利用协调器(Coordinator)作为网络的核心,连接所有的设备,并管理网络的功能。
其他设备可以是从节点(End Device)或路由器(Router),将数据通过网络传输给协调器。
协调器负责设备的加入和离开、数据的传输和路由选择等功能。
从节点负责传感器数据的采集和发送,路由器则负责数据的中继和路由选择。
网络拓扑结构Zigbee网络支持多种网络拓扑结构的组合,常见的有星型和网状两种。
星型结构星型结构是最简单的网络拓扑结构,所有设备都直接连接到协调器。
这种结构下,数据传输的距离较近,通信效果稳定可靠。
然而,星型结构下的设备数量有限,且中心节点容易成为瓶颈。
星型结构星型结构网状结构网状结构是一种多对多的网络拓扑结构。
各个设备可通过路由器相互连接,数据可以从源设备通过多个中继节点传输到目标设备。
这种结构下,网络的扩展性较好,且传输距离也可以更远。
网状结构网状结构组网方案根据实际应用需求,选择合适的组网方案是关键。
下面介绍几种常用的Zigbee 组网方案。
单一网状结构在小型范围内,可使用单一网状结构。
所有设备通过路由器连接,数据可以从源设备直接传输到目标设备。
这种方案易于部署,但设备数量和覆盖范围有限。
多层级网状结构对于大范围的应用场景,可使用多层级网状结构。
将网络划分为多个区域,每个区域内有一个协调器和多个路由器。
协调器之间通过路由器连接,形成多层级的网状结构。
ZIGBee组网流程
ZIGBee组网流程第一个功能:协调器的组网,终端设备和路由设备发现网络以及加入网络//第一步:Z-Stack 由main()函数开始执行,main()函数共做了2 件事:一是系统初始化,另外一件是开始执行轮转查询式操作系统int main( void ){.......// Initialize the operating systemosal_init_system(); //第二步,操作系统初始化......osal_start_system(); //初始化完系统任务事件后,正式开始执行操作系统......}//第二步,进入osal_init_system()函数,执行操作系统初始化uint8 osal_init_system( void ) //初始化操作系统,其中最重要的是,初始化操作系统的任务{// Initialize the Memory Allocation Systemosal_mem_init();// Initialize the message queueosal_qHead = NULL;// Initialize the timersosalTimerInit();// Initialize the Power Management Systemosal_pwrmgr_init();// Initialize the system tasks.osalInitTasks(); //第三步,执行操作系统任务初始化函数// Setup efficient search for the first free block of heap.osal_mem_kick();return ( SUCCESS );}//第三步,进入osalInitTasks()函数,执行操作系统任务初始化void osalInitTasks( void ) //第三步,初始化操作系统任务{uint8 taskID = 0;tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt);osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt));//任务优先级由高向低依次排列,高优先级对应taskID 的值反而小macTaskInit( taskID++ ); //不需要用户考虑nwk_init( taskID++ ); //不需要用户考虑Hal_Init( taskID++ ); //硬件抽象层初始化,需要我们考虑#if defined( MT_TASK )MT_TaskInit( taskID++ );#endifAPS_Init( taskID++ ); //不需要用户考虑#if defined ( ZIGBEE_FRAGMENTATION )APSF_Init( taskID++ );#endifZDApp_Init( taskID++ ); //第四步,ZDApp层,初始化,执行ZDApp_init函数后,如果是协调器将建立网络,如果是终端设备将加入网络。
ZigBee如何快速一键自组网?
ZigBee如何快速一键自组网?ZigBee技术作为物联网领域最常用的无线技术,经常受限于协议栈开发难、组网过于繁琐等问题而难以应用,这里将为您介绍ZigBee如何快速一键自组网? ZigBee技术作为物联网领域最常用的无线技术,目前在智能家居、农田智能管理、节能应用等行业得到大量应用。
为方便大家利用ZigBee进行项目开发,今天对ZigBee协议栈及组网相关知识做个分享。
图1 ZigBee无线网络应用 ZigBee协议栈可以分为四层:物理层(PHY)、媒体访问控制层(MAC)、网络层(NWK)及应用层(APL)。
如图2所示,粉色的部分是由IEEE标准中定义的,浅蓝色部分是由ZigBee联盟规定的,黄色部分是由设备厂商自行定义。
图2 ZigBee协议栈图示 ZigBee协议栈的物理层及MAC层都是IEEE802.5.14标准中定义的。
PHY 层(物理层)规定了所使用的频段,以及所使用的编码、调制、扩频、调频等无线传输技术。
MAC层的主要作用规定了无线信道的访问控制机制,也就是规定各个设备按照什幺规矩轮流使用信道;如果没有MAC层协议,节点一多,没有规矩的收发机制,就会发生信号冲突,则无法正常传输数据了。
ZigBee协议栈在802.15.4协议基础上定义了网络层。
网络层的主要作用是负责设备的连接和断开、在帧数据传递时采用的安全机制、路由发现和维护。
简单说,就是保障设备之间的组网和网络节点间的数据传输。
标准的ZigBee网络协议包括协调器、路由器和终端节点,而建立一个ZigBee网络除了必须要有的协调器之外,仅需加上路由器或终端节点即可。
在启动标准ZigBee Pro网络通讯前,如果没有建立存储跳转路径的路由表,则节点无法通信,同样需要定时地发送网络报文检查节点是否异常。
由此可见,ZigBee Pro不仅启动速度慢,而且定时发送网络报文占用大量的带宽。
图3 ZigBee Pro组网图示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ZIGBee组网流程第一个功能:协调器的组网,终端设备和路由设备发现网络以及加入网络//第一步:Z-Stack 由main()函数开始执行,main()函数共做了2 件事:一是系统初始化,另外一件是开始执行轮转查询式操作系统int main( void ){.......// Initialize the operating systemosal_init_system(); //第二步,操作系统初始化......osal_start_system(); //初始化完系统任务事件后,正式开始执行操作系统......}//第二步,进入osal_init_system()函数,执行操作系统初始化uint8 osal_init_system( void ) //初始化操作系统,其中最重要的是,初始化操作系统的任务{// Initialize the Memory Allocation Systemosal_mem_init();// Initialize the message queueosal_qHead = NULL;// Initialize the timersosalTimerInit();// Initialize the Power Management Systemosal_pwrmgr_init();// Initialize the system tasks.osalInitTasks(); //第三步,执行操作系统任务初始化函数// Setup efficient search for the first free block of heap.osal_mem_kick();return ( SUCCESS );}//第三步,进入osalInitTasks()函数,执行操作系统任务初始化void osalInitTasks( void ) //第三步,初始化操作系统任务{uint8 taskID = 0;tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt);osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt));//任务优先级由高向低依次排列,高优先级对应taskID 的值反而小macTaskInit( taskID++ ); //不需要用户考虑nwk_init( taskID++ ); //不需要用户考虑Hal_Init( taskID++ ); //硬件抽象层初始化,需要我们考虑#if defined( MT_TASK )MT_TaskInit( taskID++ );#endifAPS_Init( taskID++ ); //不需要用户考虑#if defined ( ZIGBEE_FRAGMENTATION )APSF_Init( taskID++ );#endifZDApp_Init( taskID++ ); //第四步,ZDApp层,初始化,执行ZDApp_init函数后,如果是协调器将建立网络,如果是终端设备将加入网络。
#if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )ZDNwkMgr_Init( taskID++ );#endifSerialApp_Init( taskID ); //应用层SerialApp层初始化,需要用户考虑在此处设置了一个按键触发事件,//当有按键按下的时候,产生一个系统消息}//第四步,进入ZDApp_init()函数,执行ZDApp层初始化//The first stepvoid ZDApp_Init( uint8 task_id ) //The first step,ZDApp层初始化。
{// Save the task IDZDAppTaskID = task_id;// Initialize the ZDO global device short address storageZDAppNwkAddr.addrMode = Addr16Bit;ZDAppNwkAddr.addr.shortAddr = INVALID_NODE_ADDR;(void)NLME_GetExtAddr(); // Load the saveExtAddr pointer.// Check for manual "Hold Auto Start"ZDAppCheckForHoldKey();// Initialize ZDO items and setup the device - type of device to create.ZDO_Init();// Register the endpoint description with the AF// This task doesn't have a Simple description, but we still need// to register the endpoint.afRegister( (endPointDesc_t *)&ZDApp_epDesc );#if defined( ZDO_USERDESC_RESPONSE )ZDApp_InitUserDesc();#endif // ZDO_USERDESC_RESPONSE// Start the device?if ( devState != DEV_HOLD ) //devState 初值为DEV_INIT ,所以在初始化ZDA层时,就执行该条件语句{ZDOInitDevice( 0 ); //The second step, 接着转到ZDOInitDevice()函数,执行The third step;}else{// Blink LED to indicate HOLD_STARTHalLedBlink ( HAL_LED_4, 0, 50, 500 );}ZDApp_RegisterCBs();}//The third step,执行ZDOInitDevice()函数,执行设备初始化uint8 ZDOInitDevice( uint16 startDelay ) //The third step,ZDO层初始化设备,{.......// Trigger the network startZDApp_NetworkInit( extendedDelay ); //网络初始化,跳到相应的函数里头,执行The fourth step.......}//The fouth step,执行ZDApp_NetWorkInit()函数void ZDApp_NetworkInit( uint16 delay ) //The fourth step,网络初始化{if ( delay ){// Wait awhile before starting the deviceosal_start_timerEx( ZDAppTaskID, ZDO_NETWORK_INIT, delay ); //发送ZDO_NETWORK_INIT(网络初始化)消息到ZDApp层,转到//ZDApp层,执行The fifth step ,ZDApp_event_loop() 函数}else{osal_set_event( ZDAppTaskID, ZDO_NETWORK_INIT );}}//The fifth step,转到ZDApp_event_loop()函数UINT16 ZDApp_event_loop( uint8 task_id, UINT16 events ){if ( events & ZDO_NETWORK_INIT ) //The fivth step,网络初始化事件处理{// Initialize apps and start the networkdevState = DEV_INIT;//设备逻辑类型,启动模式,信标时间,超帧长度,接着转到The sixth step,去启动设备,接着执行The sixth step,转到ZDO_StartDevice()ZDO_StartDevice( (uint8)ZDO_Config_Node_Descriptor.LogicalType, devStartMode,DEFAULT_BEACON_ORDER, DEFAULT_SUPERFRAME_ORDER );// Return unprocessed eventsreturn (events ^ ZDO_NETWORK_INIT);}}//The sixth step,执行ZDO_StartDevice()函数,启动设备void ZDO_StartDevice( byte logicalType, devStartModes_t startMode, byte beaconOrder, byte superframeOrder ) //The sixth step{......if ( ZG_BUILD_COORDINATOR_TYPE && logicalType == NODETYPE_COORDINATOR ) //当设备作为协调器时,执行这个条件语句。
{if ( startMode == MODE_HARD ){devState = DEV_COORD_STARTING;//向网络层发送网络形成请求。
当网络层执行NLME_NetworkFormationRequest()建立网络后,将给予ZDO层反馈信息。
// 接着转到The seventh step,去执行ZDApp层的ZDO_NetworkFormationConfirmCB()函数ret = NLME_NetworkFormationRequest( zgConfigPANID, zgApsUseExtendedPANID, zgDefaultChannelList,zgDefaultStartingScanDuration, beaconOrder,superframeOrder, false );}if ( ZG_BUILD_JOINING_TYPE && (logicalType == NODETYPE_ROUTER || logicalType == NODETYPE_DEVICE) ) //当为终端设备或路由时{if ( (startMode == MODE_JOIN) || (startMode == MODE_REJOIN) ){devState = DEV_NWK_DISC;// zgDefaultChannelList与协调器形成网络的通道号匹配。