您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > Zigbee协议栈原理基础
1Zigbee协议栈相关概念1.1近距离通信技术比较:近距离无线通信技术有wifi、蓝牙、红外、zigbee,在无线传感网络中需求的网络通信恰是近距离需求的,故,四者均可用做无线传感网络的通信技术。而,其中(1)红外(infrared):能够包含的信息过少;频率低波衍射性不好只能视距通信;要求位置固定;点对点传输无法组网。(2)蓝牙(bluetooth):可移动,手机支持;通信距离10m;芯片价格贵;高功耗(3)wifi:高带宽;覆盖半径100m;高功耗;不能自组网;(4)zigbee:价格便宜;低功耗;自组网规模大。WSN中zigbee通信技术是最佳方案,但它连接公网需要有专门的网关转换进一步学习stm32。1.2协议栈协议栈是网络中各层协议的总和,其形象的反映了一个网络中文件传输的过程:由上层协议到底层协议,再由底层协议到上层协议。1.2.1Zigbee协议规范与zigbee协议栈Zigbee各层协议中物理层(phy)、介质控制层(mac)规范由IEEE802.15.4规定,网络层(NWK)、应用层(apl)规范由zigbee联盟推出。Zigbee联盟推出的整套zigbee规范:2005年第一版ZigBeeSpecificationV1.0,zigbee2006,zigbee2007、zigbeeprozigbee协议栈:很多公司都有自主研发的协议栈,如TI公司的:RemoTI,Z-Stack,SimpliciTI、freakz、msstatePAN等。1.2.2z-stack协议栈与zigbee协议栈z-stack协议栈与zigbee协议栈的关系:z-stack是zigbee协议栈的一种具体实现,或者说是TI公司读懂了zigbee协议栈,自己用C语言编写了一个软件—---z-stack,是由全球几千名工程师共同开发的。ZStack-CC2530-2.3.1-1.4.0软件可与TI的SmartRF05平台协同工作,该平台包括MSP430超低功耗微控制器(MCU)、CC2520RF收发器以及CC2591距离扩展器,通信连接距离可达数公里。Z-Stack中的很多关键的代码是以库文件的形式给出来,也就是我们只能用它们,而看不到它们的具体的实现。其中核心部分的代码都是编译好的,以库文件的形式给出的,比如安全模块,路由模块,和Mesh自组网模块。与z-stack相比msstatePAN、freakz协议栈都是全部真正的开源的,它们的所有源代码我们都可以看到。但是由于它们没有大的商业公司的支持,开发升级方面,性能方面和z-stack相比差距很大,并没有实现商业应用,只是作为学术研究而已。还可以配备TI的一个标准兼容或专有的网络协议栈(RemoTI,Z-Stack,或SimpliciTI)来简化开发,当网络节点要求不多在30个以内,通信距离500m-1000m时用simpliciti。1.2.3IEEE802.15.4标准概述IEEE802.15.4是一个低速率无线个人局域网(LowRateWirelessPersonalAreaNetworks,LR-WPAN)标准。定义了物理层(PHY)和介质访问控制层(MAC)。LR-WPAN网络具有如下特点:◆实现250kb/s,40kb/s,20kb/s三种传输速率。◆支持星型或者点对点两种网络拓扑结构。◆具有16位短地址或者64位扩展地址。◆支持冲突避免载波多路侦听技术(carriersensemultipleaccesswithcollisionavoidance,CSMA/CA)。(mac层)◆用于可靠传输的全应答协议。(RTS-CTS)◆低功耗。◆能量检测(EnergyDetection,ED)。◆链路质量指示(LinkQualityIndication,LQI)。◆在2.45GHz频带内定义了16个通道;在915MHz频带内定义了10个通道;在868MHz频带内定义了1个通道。为了使供应商能够提供最低可能功耗的设备,IEEE(InstituteofElectricalandElectronicsEngineers,电气及电子工程师学会)定义了两种不同类型的设备:一种是完整功能设备(full.functionaldevice,FFD),另一种是简化功能设备(reduced.functionaldevice,RFD)。1.2.4ZigBee协议体系结构IEEE802.15.4定义物理层、介质访问控制层ZigBee联盟定义网络层(networklayer,NWK)、应用层(applicationlayer,APL)。应用层内定义:应用支持子层(applicationsupportsub—layer,APS)、ZigBee设备对象(ZigBeeDeviceObject,ZDO)(端点号0)、应用框架中用户自定义应用对象(端点号1-240,可以定义0-240个应用)。每一层为其上层提供特定的服务--数据服务实体数据传输服务;管理实体提供管理服务。每个服务实体通过相应的服务接入点(SAP)为其上层提供一个接口,每个服务接入点通过服务原语来完成所对应的功能。1.2.4.1物理层:物理层定义了物理无线信道和MAC子层之间的接口,提供物理层数据服务和物理层管理服务。具体内容:1)ZigBee的激活;2)当前信道的能量检测;3)接收链路服务质量信息;4)ZigBee信道接入方式;5)信道频率选择;6)数据传输和接收。1.2.4.2介质接入控制子层(MAC)MAC层负责处理所有的物理无线信道访问,并产生网络信号、同步信号;支持PAN连接和分离,提供两个对等MAC实体之间可靠的链路。具体功能:1)网络协调器产生信标;2)与信标同步;3)支持PAN(个域网)链路的建立和断开;4)为设备的安全性提供支持(加密解密功能);5)信道接入方式采用免冲突载波检测多址接入(CSMA-CA)机制;6)处理和维护保护时隙(GTS)机制;7)在两个对等的MAC实体之间提供一个可靠的通信链路。1.2.4.3网络层(NWK)ZigBee协议栈的核心部分在网络层。网络层主要实现节点加入或离开网络、接收或抛弃其他节点、路由查找及传送数据等功能。具体功能:1)网络发现;(路由器、终端)2)网络形成;(协调器)3)允许设备连接;4)路由器初始化;5)设备同网络连接;6)直接将设备同网络连接;7)断开网络连接;8)重新复位设备;9)接收机同步;10)信息库维护。1.2.4.4应用层(APL)应用层包括:应用支持层(APS)、ZigBee设备对象(ZDO)、制造商所定义的应用对象(AF)。(1)APS功能:维持绑定表、在绑定的设备之间传送消息。(2)ZDO功能:定义设备在网络中的角色(如物理实体节点被定义为协调器、路由器还是终端设备),发起和响应绑定请求,在网络设备之间建立安全机制(加解密),发现网络中的设备并且决定向他们提供何种应用服务。ZDO使用APS层的APSDE-SAP和网络层的NLME-SAP。ZDO是特殊的应用对象,它在端点(entire)0上实现。远程设备通过ZDO请求描述符信息,接收到这些请求时,ZDO会调用配置对象获取相应描述符值(eg设备什么时候出厂的、需不需要电池、传输距离多少、使用什么规范)。(3)AF(应用程序框架):用户自定义的应用对象,并且遵循规范(profile)运行在端点1~240上。在ZigBee应用中,提供2种标准服务类型:键值对(KVP)或报文(MSG)。2ZigBee基本概念2.1设备类型三种逻辑设备类型:协调器、路由器、终端设备。协调器的角色主要涉及网络的启动和配置。一旦这些都完成后,协调器的工作就像一个路由器(或者消失goaway)。由于ZigBee网络本身的分布特性,因此接下来整个网络的操作就不在依赖协调器是否存在。路由器一直活跃,须使用主电源供电。但当树状拓扑结构时,允许其间隔一定的周期操作一次,可使用电池。终端设备没有特定的维持网络结构的责任,可以睡眠或者唤醒,可用电池供电。对存储空间(特别是RAM的需要)比较小。2.2协议规范协议栈规范由ZigBee联盟定义指定。在同一个网络中的设备必须符合同一个协议栈规范(同一个网络中所有设备的协议栈规范必须一致)。ZigBee联盟为ZigBee协议栈2007定义了2个规范:ZigBee和ZigBeePRO。所有的设备只要遵循该规范,即使在不同厂商买的不同设备同样可以形成网络。如果应用开发者改变了规范,那么他的产品将不能与遵循ZigBee联盟定义规范的产品组成网络,也就是说该开发者开发的产品具有特殊性,我们称之为“关闭的网络”,也就是说它的设备只有在自己的产品中使用,不能与其他产品通信。更改后的规范可以称之为“特定网络”规范。协议栈规范的ID号可以通过查询设备发送的beacon帧获得。在设备加入网络之前,首先需要确认协议栈规范的ID。“特定网络”规范ID号为0;ZigBee协议栈规范的ID号为1;ZigBeePRO协议栈规范的ID号为2。协议栈规范的ID(STACK_PROFILE_ID)在nwk_globals.h中定义:#defineNETWORK_SPECIFIC0#defineHOME_CONTROLS1//zigbee首先应用于智能家居,故直接把zigbee协议栈规范定义为home_control#defineZIGBEEPRO_PROFILE2#defineGENERIC_STAR3#defineGENERIC_TREE4#ifdefined(ZIGBEEPRO)#defineSTACK_PROFILE_IDZIGBEEPRO_PROFILE#else#defineSTACK_PROFILE_IDHOME_CONTROLS#endif2.3拓扑结构星型、树状、网状#defineNWK_MODE_STAR0#defineNWK_MODE_TREE1#defineNWK_MODE_MESH2#if(STACK_PROFILE_ID==ZIGBEEPRO_PROFILE)#defineNWK_MODENWK_MODE_MESH#elif(STACK_PROFILE_ID==HOME_CONTROLS)#defineNWK_MODENWK_MODE_MESH#elif(STACK_PROFILE_ID==GENERIC_STAR)#defineNWK_MODENWK_MODE_STAR#elif(STACK_PROFILE_ID==NETWORK_SPECIFIC)#defineNWK_MODENWK_MODE_MESH#endif一般拓扑结构定义为网状网络2.4信标与非信标模式Zigbee网络的工作模式可以分为信标(Beaeon)和非信标(Non-beaeon)两种模式。信标:所有设备同步工作、休眠。协调器负责以一定的间隔时间(一般在15ms-4mins之间)向网络广播信标帧,两个信标帧发送间隔之间有16个相同的时槽,这些时槽分为网络休眠区和网络活动区两个部分,消息只能在网络活动区的各时槽内发送。非信标:终端可休眠,路由器、协调器一直工作。父节点为终端缓存数据,终端主动向父节点提取数据,故,终端大多处于休眠状态,周期性醒来与父节点握手以确认自己仍处于网络中,醒来一般需要15ms。实际使用中非信标模式使用更多,因为路由器、协调器往往还要担任一些其他功能,且常常加入功放扩大传输距离,一般加主电源供电。2.5地址两种地址:64位IEEE地址,即MAC地址,16位网络地址(协调器网络地址为0x00)。#defineNWK_PAN_COORD_ADDR0x00002.5.1网络地址分配分布式寻址方案:ZigBee2006、ZigBee2007使用分布式寻址方案来分配网络地址,保证唯一。设备只能从父设备接受网络地址,不需要全网通讯分配,有助于测量。随机地址分配机制:ZigBee2007PRO采用。新节点加入时,父节点为其随机分配地址,然后产生“设备声明”(包含分配到的网络地址和IEEE地址)发送至网络。若有冲突,则通过
本文标题:Zigbee协议栈原理基础
链接地址:https://www.777doc.com/doc-3990600 .html