ZigBee协议栈网络层的研究与实现

慕尼黑

1. 引言

  随着科学技术的发展,无线技术逐渐取代有线技术,仅支持静态固定拓扑的无线网络也逐渐被支持动态变化拓扑的无线网络取代。在短距离的无线控制、监测、数据传输领域,通用的技术有802.11、蓝牙、homerf等,它们各有自己的优势,但仍然存在功耗大、组网能力差等劣势。为了弥补上述协议的不足,zigbee联盟于2004年12月中旬推出基于ieee 802.15.4的zigbee协议栈。 zigbee短距离低速无线个域网(low rate-wireless personal area network,lr-wpan)不仅具有低成本、低功耗、低速率、低复杂度的特点;而且具有可靠性高,组网简单、灵活的优势。本文将介绍zigbee协议栈并提出网络层的具体实现方案。

2. zigbee协议栈体系结构

本节将在介绍ieee 802.15.4标准和zigbee协议的基础上,重点分析zigbee协议栈的网络层关键技术及其工作机制。

2.1 ieee 802.15.4标准

ieee 802.15.4标准[1]于2003年5月制定完成,它满足国际标准化组织 (iso)开放系统互连(osi)参考模型,主要包括物理层、数据链路层。ieee 802.15.4协议与其他无线网络相比,突出的优点是:组网能力强,适应面广,可靠性高,节能性好。

2.2 zigbee协议栈

完整的zigbee[2,3]协议栈由物理层、介质访问控制层、网络层、安全层和高层应用规范组成。

图1 zigbee协议栈如图1所示,zigbee协议栈的网络层、安全层和应用程序接口等由zigbee联盟制定。其中安全层(security)主要实现密钥管理、存取等功能。应用程序接口负责向用户提供简单的应用软件接口(api),包括应用子层支持(application sub-layger support,aps)、zigbee设备对象(zigbee device object,zdo)等,实现应用层对设备的管理。

2.3 网络层关键技术

zigbee协议栈的核心部分在网络层。网络层主要实现节点加入或离开网络、接收或抛弃其他节点、路由查找及传送数据等功能,支持cluster-tree,aodvjr,cluster-tree+aodvjr等多种路由算法,支持星形(star)、树形(cluster-tree)、网格(mesh)等多种拓扑结构[4]。

cluster-tree(簇-树)是一种由网络协调器(coordinator)展开生成树状网络的拓扑结构,适合于节点静止或者移动较少的场合,属于静态路由,不需要存储路由表。aodvjr算法是针对aodv[5,6](ad hoc按需距离矢量路由协议)算法的改进,考虑到节能、应用方便性等因素,简化了aodv的一些特点,但是仍然保持aodv的原始功能。表1是两种算法的优缺点比较。

表1 cluster-tree和aodvjr的优缺点比较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只能把数据交给父节点,请其转发。

图2为cluster-tree+aodvjr算法时网络层数据传输示意图。节点e发送数据包给节点d,数字代表各种包发送的时间先后次序。从图中可以看出,节点e的类型是rfd,它只能将数据data传送给其父节点c。c的类型是rn+,所以它先把数据放入缓存后,再通过组播aodvjr路由请求包rreq查找到节点d的路由,节点d再通过单播沿最短的路径d-b-c给节点c回复aodvjr路由应答包rrep。节点c找到路由后,把缓存数据沿c-b-d发送给节点d,节点d再沿d-b-c-e发送确认包ack给节点e,节点e收到确认包后,整个通信过程结束。

图2 网络层数据传输示意图3.网络层实现

作者已在符合ieee 802.15.4的硬件平台上实现zigbee协议栈,成功研发出zigbee开发包(zigbee development kit,zdk),验证了其可行性。同时,根据一些特定的应用将算法改进,取得良好的运用效果。本节将重点介绍zigbee网络层的实现。

3.1无线模块的设计

根据不同类型节点功能不同的特点,作者在不同的硬件平台设计模块。设计制作的zigbee系列模块完全满足ieee 802.15.4和zigbee协议

  • ZigBee协议栈网络层的研究与实现已关闭评论
    A+
发布日期:2019年07月02日  所属分类:参考设计