微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > Zigbee技术规范与协议栈分析

Zigbee技术规范与协议栈分析

时间:05-25 来源:互联网 点击:

     伴随无线传感器网络的迅猛发展,Zigbee技术作为最近发展起来的一种短距离无线通信技术,以其低功耗、自组织、安全可靠、支持大量节点等优势,被业界 认为是最有可能应用在工控场合的无线方式。到目前为止,节点已经应用于工业监控、智能家庭、安全医疗等多个领域,具有很大的发展空间。

    Zigbee协议栈(Z-STACK)作为Zigbee技术的核心,是开发802.15.4/Zigbee必须掌握的关键技术。协议栈发展至今已有四种版 本(见表1),尽管实现功能越发完善,但是并未移植标准的操作系统统一任务调度,嵌套相当复杂,而显得源代码的可读性和可操作性较差,开发者在理解和实现 协议的过程中仍会遇到很多困难。本文通过对最典型的、起到承上启下作用的Zigbee-2006协议栈的解读,对协议程序的运行过程提供一种准确的解释分 析,降低开发者的阅读难度和工作量,为协议栈自身的发展、Zigbee设备的开发及应用的推广提供强有力的技术支持。

 


1 协议栈体系结构及规范
    Zigbee协议栈体系结构如图1所示[1], 协议栈的层与层之间通过服务接入点(SAP)进行通信。SAP是某一特定层提供的服务与上层之间的接口。大多数层有两个接口:数据实体接口和管理实体接 口。数据实体接口的目标是向上层提供所需的常规数据服务;管理实体接口的目标是向上层提供访问内部层参数、配置和管理数据的服务[2]

 


1.1 物理层服务规范
    物理层通过射频固件和硬件提供MAC层与物理无线信道之间的接口。从概念上说,物理层还应包括物理层管理实体(PLME),以提供调用物理层管理功能的管 理服务接口;同时PLME还负责维护物理层PAN信息库(PHY PIB)。物理层通过物理层数据服务接入点(PD-SAP)提供物理层数据服务;通过物理层管理实体服务接入点(PLME-SAP)提供物理层管理服务。
1.2 MAC层服务规范
    MAC层提供特定服务会聚子层(SSCS)和物理层之间的接口。从概念上说,MAC层还应包括MAC层管理实体(MLME),以提供调用MAC层管理功能 的管理服务接口;同时MLME还负责维护MAC PAN信息库(MAC PIB)。MAC层通过MAC公共部分子层(MCPS)的数据SAP(MCPS-SAP)提供MAC数据服务;通过MLME-SAP提供MAC管理服务。 这两种服务通过物理层PD-SAP和PLME-SAP提供了SSCS和PHY之间的接口。除了这些外部接口外,MCPS和MLME之间还隐含了一个内部接 口,用于MLME调用MAC数据服务。
1.3 应用层规范
    Zigbee应用层包括APS子层、ZDO(包含ZDO管理平台)和厂商定义的应用对象。应用支持子层(APS)提供了网络层(NWK)和应用层 (APL)之间的接口,功能是通过ZDO和厂商定义的应用对象都可以使用的一组服务来实现。数据和管理实体分别由APSDE-SAP和APSME-SAP 提供。APSDE提供的数据传输服务在同一网络的两个或多个设备之间传输应用层PDU;APSME提供设备发现和绑定服务,并维护管理对象数据库—— APS信息库(AIB)。
1.4 网络层规范
    网络层应提供保证IEEE 802.15.4 MAC层正确工作的能力并为应用层提供合适的服务接口。数据和管理实体分别由NLDE-SAP和NLME-SAP提供。具体来说,NLDE提供的服务:一 是在应用支持子层PDU基础上添加适当的协议头产生网络协议数据单元(NPDU);二是根据路由拓扑,把NPDU发送到通信链路的目的地址设备或通信链路 的下一跳。而NLME提供的服务包括配置新设备、创建新网络、设备请求加入/离开网络和Zigbee协调器或路由器请求设备离开网络、寻址、近邻发现、路 由发现、接收控制等。网络层的数据和管理服务由MCPS-SAP和MLME-SAP提供了应用层和MAC子层之间的接口。除了这些外部接口,在NWK内部 NLME和NLDE之间还有一个同隐含接口,允许NLME使用NWK数据服务。
2 协议栈程序分析
2.1 运行环境

    软件环境:IAR 7.20、串口调试工具、数据分析仪以及各硬件驱动软件等。
    硬件环境:PC(.NET 1.1 架构, Windows 98以上,1个串口,1个USB接口)、CC2430 ZigBee开发板(至少包括一个网络协调器和一个终端设备,验证阶段可省略路由设备)等。
2.2 程序流程
    将各开发板与PC正确连接,运行各软件,当程序烧至开发板后,启动即调用主函数ZSEG int main( void )。主函数的主要工作流程如图2所示。需要注意的是,Zigbee协议栈的精华在于操作系统OSAL的任务调度,因此,在进入主循环处理函数之前的准备工 作中,操作系统的初始化尤为重要。osalTaskInit()、osalAddTasks()、osalInitTasks()三个函数的调用构成了协 议栈的七大任务列表,其具体实现结果如图3。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top