在现在的网络科技中,ZigBee协议栈的应用感觉对是最为火热的。那么我们现在就来认识一下ZigBee协议栈。随着科学技术的发展,无线技术逐渐取代有线技术,仅支持静态固定拓扑的无线网络也逐渐被支持动态变化拓扑的无线网络取代.
在短距离的无线控制、监测、数据传输领域,通用的技术有802.11、蓝牙、HomeRF等,它们各有自己的优势,但仍然存在功耗大、组网能力差等劣势.为了弥补上述协议的不足,ZigBee联盟于2004年12月中旬推出基于IEEE 802.15.4的ZigBee协议栈. ZigBee短距离低速无线个域网(Low Rate-Wireless Personal Area Network,LR-WPAN)不仅具有低成本、低功耗、低速率、低复杂度的特点;而且具有可靠性高,组网简单、灵活的优势.本文将介绍ZigBee协议栈并提出网络层的具体实现方案.
◆ZigBee协议栈体系结构
本节将在介绍IEEE 802.15.4标准和ZigBee协议的基础上,重点分析ZigBee协议栈的网络层关键技术及其工作机制.
1 IEEE 802.15.4标准
IEEE 802.15.4标准[1]于2003年5月制定完成,它满足国际标准化组织 (ISO)开放系统互连(OSI)参考模型,主要包括物理层、数据链路层.IEEE 802.15.4协议与其他无线网络相比,突出的优点是:组网能力强,适应面广,可靠性高,节能性好.
2 ZigBee协议栈
完整的Zigbee[2,3]协议栈由物理层、介质访问控制层、网络层、安全层和高层应用规范组成.
ZigBee协议栈的网络层、安全层和应用程序接口等由ZigBee联盟制定.其中安全层(Security)主要实现密钥管理、存取等功能.应用程序接口负责向用户提供简单的应用软件接口(API),包括应用子层支持(Application Sub-layger Support,APS)、ZigBee设备对象(ZigBee Device Object,ZDO)等,实现应用层对设备的管理.
3 网络层关键技术
ZigBee协议栈的核心部分在网络层.网络层主要实现节点加入或离开网络、接收或抛弃其他节点、路由查找及传送数据等功能,支持Cluster-Tree,AODVjr,Cluster-Tree+AODVjr等多种路由算法,支持星形(Star)、树形(Cluster-Tree)、网格(Mesh)等多种拓扑结构[4].
Cluster-Tree(簇-树)是一种由网络协调器(Coordinator)展开生成树状网络的拓扑结构,适合于节点静止或者移动较少的场合,属于静态路由,不需要存储路由表.AODVjr算法是针对AODV[5,6](Ad hoc按需距离矢量路由协议)算法的改进,考虑到节能、应用方便性等因素,简化了AODV的一些特点,但是仍然保持AODV的原始功能.
Cluster-Tree+AODVjr路由算法汇聚了Cluster-Tree和AODVjr的优点.网络中的每个节点被分成四种类型:Coordinator、RN+、RN-、RFD(RN:Routing Node,路由节点;RFD:Reduced Function Device).其中Coordinator的路由算法跟RN+相同,Coordinator、RN+和RN-都是全功能节点(FFD: Full Function Device),能给其他节点充当路由节点;RFD只能充当Cluster-Tree的叶子(Leaf Node).如果待发送数据的目标节点是自己的邻居,直接通信即可;反之,如果不是自己的邻居时,三种类型的节点处理数据包各不相同:RN+可以启动AODVjr,主动查找到目标节点的最佳路由,且它可以扮演路由代理(Routing Agent)的角色,帮助其他节点查找路由;RN-只能使用Cluster-Tree算法,它可以通过计算,判断该交给数据包请自己的父节点还是某个子节点转发;而RFD只能把数据交给父节点,请其转发.
◆网络层实现
作者已在符合IEEE 802.15.4的硬件平台上实现ZigBee协议栈,成功研发出ZigBee开发包(ZigBee Development Kit,ZDK),验证了其可行性.同时,根据一些特定的应用将算法改进,取得良好的运用效果.本节将重点介绍ZigBee网络层的实现.
1 无线模块的设计
根据不同类型节点功能不同的特点,作者在不同的硬件平台设计模块.设计制作的ZigBee系列模块完全满足IEEE 802.15.4和ZigBee协议的规范要求,符合ISM/SRD规范,通过美国FCC认证.模块集无线收发器、微处理器、存储器和用户API等软硬件于一体,能实现1.0版ZigBee协议栈的功能.Coordinator可以连接使用ARM处理器开发的嵌入式系统,功能较多的路由节点(RN+,RN-)由高档单片机充当,功能较少的叶子节点(RFD)使用普通的单片机.模块还可以根据实际需要,工作在不同的睡眠模式和节能方式.
射频芯片采用Chipcon公司生产的符合IEEE 802.15.4标准的模块CC2420;控制射频芯片的微处理器,可以根据需要选择Atmel公司的AVR系列单片机或者Silicon Labs公司的8051内核单片机.单片机与射频芯片之间通过SPI进行通信,连接速率是6Mbps.单片机与外部设备之间通过串口进行通信,连接速率是38.4kbps.单片机自带若干ADC或者温度传感器,可以实现简单的模数转换或者温度监控.为了方便代码移植到不同的硬件平台,模块固件采用标准C语言编写代码实现.
2 网络的建立
ZigBee网络最初是由协调器发动并且建立.协调器首先进行信道扫描(Scan),采用一个其他网络没有使用的空闲信道,同时规定Cluster-Tree的拓扑参数,如最大的儿子数(Cm)、最大层数(Lm)、路由算法、路由表生存期等.
协调器启动后,其他普通节点加入网络时,只要将自己的信道设置成与现有的协调器使用的信道相同,并提供正确的认证信息,即可请求加入(Join)网络.一个节点加入网络后,可以从其父节点得到自己的短MAC地址,ZigBee网络地址以及协调器规定的拓扑参数.同理,一个节点要离开(Leave)网络,只须向其父节点提出请求即可.一个节点若成功地接收一个儿子,或者其儿子成功脱离网络,都必须向协调器汇报.因此,协调器可以即时掌握网络的所有节点信息,维护网络信息库(PIB,PAN Information Base).
3 路由设计与实现
在传输数据时,不同类型的的节点有不同的处理方法,协调器的处理机制与RN+相同.网络层路由设计分为RN+,RN-和RFD三个模块.因为实际点对点通信是通过MAC地址进行数据传输的,所以每个节点在接收到信息包时,都要维护邻居表,邻居表主要起地址解析(Address Resolution)的作用:将邻居节点的网络地址转换成MAC地址.另外,类型是RN+的节点在接收到信息包或者启动AODVjr查找路由时,还必须维护路由表.邻居表和路由表的记录都有生存期,超过生存期的记录将被删除.
4 测试方法
无线通信有其特殊性质,每个节点发送的数据包既是信号源,同时又可能是干扰源,因此无线网络的测试是一大难题.为了能在室内方便测试网络性能,引入黑名单机制,强制让一些节点对黑名单节点发送的数据包"视而不见",以测试十几点甚至几十点的特殊网络.在实际应用时,去掉黑名单并不影响网络的工作性能.测试时,还可以采用符合IEEE 802.15.4的包(Sniffer),记录测试过程中空气中所传输的无线数据.每个模块还可以通过I/O输出自己的收发状态等信息.通过多种手段对测试过程进行分析,才能提高开发测试效率.
联系客服