文档库 最新最全的文档下载
当前位置:文档库 › ZigBee协议分析及其实现

ZigBee协议分析及其实现

第26卷第1期 齐 齐 哈 尔 大 学 学 报 Vol.26,No.1 2010年1月 Journal of Qiqihar University Jan.,201

ZigBee 协议分析及其实现

赖联有

(集美大学 信息工程学院,福建 厦门 361021)

摘要:在介绍ZigBee 的协议体系结构的基础上,具体描述了TI Z-Stack 协议的架构及软件开发方法。作为应用实例,给出ZigBee 路由器的硬件框图和路由算法设计。 关键词:ZigBee;Z-Stack;无线路由器

中图分类号:TP393.04 文献标识码:A 文章编号:1007-984X(2010)01-0047-04

ZigBee 是一种新兴的短距离、低功耗、低成本、低数据率、低复杂度的无线网络技术;它以IEEE 802.15.4技术标准为基础,并对此进行了有效的扩展,覆盖了协议的网络层和安全层,以及应用框架和规范。ZigBee 具有IEEE 802.15.4的无线物理层所规定的全部特点。IEEE 802.15.4是IEEE 针对低速率无线个人区域网(LR-WPAN)制定的无线通信标准。该标准把低功耗、低速率传输、低成本作为重点目标,旨在为个人或家庭内不同设备之间低速率无线互连提供统一标准。此外,ZigBee 还具备自组织网络的功能,并能实现网络的自我功能恢复。ZigBee 的主要应用领域包括无线数据采集、无线工业控制、消费型电子设备、汽车自动化、家庭和楼宇自动化、医用设备控制、远程网络控制等场合

[1-3]

1 ZigBee 协议体系结构

ZigBee 协议结构[4]

在采用OSI七层模型的基础上根据市场和应用的实际需要而定义而成的

ZigBee 协议规范采用了IEEE 802.15.4 定义的物理层(PHY)和媒体介质访问层(MAC),由摩托罗拉、飞利浦半导体、三菱电气等国际知名公司组成的ZigBee联盟定义了网络层(NWK)和应用层(APL)。ZigBee 支持星形、树状和网状网络拓扑结构,其协议体系结构如图1所示。

对于物理层(PHY),ZigBee采用了868/915 MHz物理层和2.4 GHz物理层,两个物理层都基于直接序列扩频(DSSS)技术,使用相同的物理层数据包格式,区别在于工作频率、调制技术、扩频码片长度和传输速率不同。物理层数据包由同步包头、物理层包头和物理层净荷3部分组成。物理层通过射频固件和射频硬件提供了一个从MAC层到物理层无线信道的接口。

对于体介质访问层(MAC),主要实现的功能有:网络协调器产生网络信标;与信标同步;支持个域网(PAN)链路的建立与断开;为设备的安全提供支持;信道接入方式采用载波监听多址接入/冲突避免(CSMA/CA)机制;处理和维护保护时隙(GTS)机制;在两个对等网的MAC实体之间提供一个可靠的通信链路。

对于网络层(NWK),其主要功能是负责拓扑结构的建立和维护网络连接,包括设计连接和断开网络时所采用的机制、帧信息传输过程中所采用的安全性机制、设备的路由发现和路由维护和转交机制等。

对于应用层(APL),又包括了应用支持子层(APS)、ZigBee设备对象(ZDO)和由制造商制订的应用对象。应用支持层的功能包括维持绑定表、在绑定的设备之间传送消息。ZigBee设备对象的功能包括:定义设备在网络中的角色、发起和响应绑定请求、在网络设备之间建立安全机制。

收稿日期:2009-10-09

基金项目:集美大学科研基金资助项目(ZB2006012)

作者简介:赖联有(1975-),男,讲师,硕士,从嵌入式系统设计、无线通信技术研究,kaikaixinxinlly@https://www.wendangku.net/doc/0612415797.html,。

·48· 齐 齐 哈 尔 大 学 学 报 2010年

在ZigBee协议栈中,任何通信数据都是采用帧的格式来组织完成的。协议的每一层都有特定的帧结构。当应用程序需要发送数据时,将通过APS数据实体发送数据请求到APS,下面的每一层都会为数据附加相应的帧头,组成要发送的帧信息,其帧结构之间的关系如图2所示。

在分层的通信协议中,层与层之间通过服务接入点(SAP)相连接。SAP是层与层之间的唯一接口,其具体的服务是以通信原语的形式供上层调用的。在上层调用下层服务时,只要遵循统一的原语规范,并不需要去了解如何处理原语,这样就做到了数据层与层之间的透明传输。层与层之间的通信原语可以为Requst、Indication、Reponse、Confirm四种,它们之间的关系如图3所示。采用通信原语,简化了程序设计的难度、提高了系统的稳定性。

2 ZigBee 协议体系结构的实现——TI Z-Stack

针对协议规范,ZigBee联盟的很多成员(如TI、Microchip等公司)分别推出了ZigBee芯片,并根据本公司产品的特点,在ZigBee协议栈的实现上作了特别的优化处理。Microchip推出了协议栈MpZBee,TI则推出了免费的协议栈Z-Stack。Z-Stack提供了大量的API函数供开发人员调用,设计人员无需深入了解ZigBee的协议实现细节即可设计出产品,大大减轻了设计人员的工作强度,加快了产品开发进展。

TI Z-Stack 是一个基于轮转查询的操作系统。Z-Stack 的主函数main()总体上只有二个功能:一个是系统初始化,另一个是开始执行操作系统实体,即“开始→系统初始化→执行操作系统”。系统初始化的主要功能有:初始化系统时钟、检测芯片工作电压、初始化堆栈、初始化各个硬件模块、初始化Flash 存储、形成MAC 地址、初始化非易失变量、初始化MAC 层协议、初始化应用帧协议、初始化操作系统等等。

Z-Stack 操作系统实体只有一行代码,即“osal_start_system();”。

osal_start_system()函数通过调用(tasksArr[idx])(idx,events)函数来执行具体的处理函数。tasksArr[]是一个函数指针的数组,根据不同的idx 就可以执行不同的函数。

Z-Stack的协议栈架构、操作系统实体及osal_start_system()主体部分代码如图4所示。

TI提供的Z-Stack的文件主要包括了14个文件目录:App、HAL、MAC、MT、NWK、OSAL、Profile、Securitey、Services、Tools、ZDO、ZMAC、ZMain、Output。TI Z-Stack已经编写了对从MAC层(macEventLoop)到ZigBee 设备应用层(ZDApp_event_loop)这5层的所有相关函数,并提供了调用接口[4]

。一般情况下,用户无需修改这些函数,只需要按照自己的需求编写应用层的任务和事件的处理函数就可以了。一般情况下,用户只需要添加3个文件就可以完成一个项目,即一个主文件,一个主文件的头文件,一个操作系统接口文件。其中操作系统接口文件是专门用来存放任务处理函数taskArr[]的文件。通过这种方式,Z-Stack实现了大部分公用代码,用户只需要增加几个文件,编写自己的任务处理函数就可以了,而无需修改Z-Stack的核心代码,大大增加了程序的通用性和可移植性。

3 一个例子——ZigBee 路由器设计

ZigBee 设备主要工作在2.4 GHz 频段上,这一特性决定了ZigBee 设备的传输距离有限。为解决这个问题,必须使用ZigBee 路由器。路由器的主要功能是为经过路由器的每个数据帧寻找一条最佳的路径,并将该数据帧有效的送到目的节点[5]

。好的路由器的设计,不仅能扩展数据传输距离,还可以可以节约网络资源,大大提高通信速度。

在硬件方面,ZigBee 路由器在硬件上主要由:MSP430十六位超低功耗单片机、CC2430 ZigBee 无线模块、IIC 模块(IIC 存储、IIC 日历)、TUSB3410 RS232-USB 串口通信模块、LCD12864显示模块、按键模块、

第1期 ZigBee 协议分析及其实现 ·49·

电源及锂电池充电模块组成,其硬件系统结构图5所示。

图4 Z-Stack 的协议栈架构、操作系统实体及实现代码

MSP430是TI 公司的十六位超低功耗FLASH 型单片机。设计选用

MSP430单片机主要基于两点考虑:(1)MSP430对 CC2430提供了最好的支持,开发文档资料很齐全。(2)MSP430具有超低功耗特点,芯片共有一种活动模式(AM )和5种低功耗模式(LPM0~LPM4),在等待方式下耗电为0.7 uA,在节电方式下最低可达 0.1 uA,被称为世界上最省电的MCU,特别适合手持设备的应用。

CC2430是Chipcon 公司推出的符合IEEE802.15.4标准的射频收发器,它包含了众多功能,是ZigBee 产品理想的RF 器件。CC2430的选择性和敏感性指数超过了IEEE802.15.4标准的要求,可确保短距离通信的有效性和可靠性,其数据传输率高达250 kbps,可以实

现多点对多点的快速组网。CC2430 ZigBee 无线模块工作在2.4 GHz 的高频段,是硬件设计中的难点。CC2430 ZigBee 无线模块可以开发者自己设计,Chipcon 公司提供了硬件电路原理图、器件参数及PCB Layout 的全部资料。

TUSB3410 是TI 公司的USB-UART 芯片,把USB 接口虚拟成一个串口(例COM3),使用简单。通过该接口,一方面可以把设置参数下载到IIC 存储模块中,另一方面也可以通过USB 接口给手持机的锂电池充电。

在软件方面,对于TI 有Z-Stack 的应用开发,采用的软件开发环境主要有:IAR Workbench、SmartRF

·50· 齐 齐 哈 尔 大 学 学 报 2010年

Studio、Packet Sniffer。IAR Workbench 主要用于MSP430单片机程序的编译和调试;SmartRF Studio 是TI 公司针对本公司的RF 芯片的辅助设计软件,本设计中主要用于对CC2430的寄存器设置;Packet Sniffer 主要用于协议分析。

此外,开发ZigBee 无线定位产品时,还需要用到Z-Location Engine 软件。 在程序设计方面,MSP430程序主要由CC2430寄

存器配置程序和ZigBee 协议栈程序两部分组成。对于

CC2430寄存器的配置程序,首先使用SmartRF Studio

产生CC2430的寄存器设置数据,然后通过SPI 总线把

设置数据写入相应的CC2430寄存器。路由器的程序流程图如图6所示。 ZigBee 路由协议是基于AODV 专用网络路由协议来实现的。ZigBee 器由器主要功能是:路径的发现和

选择、路径保持维护、路径期满处理。Z-Stack 提供了

完善高效的路由算法,并且路由对于应用层来说是完全透明的[5~8]

。用户在实现路由算法时,主要通过路由记录表的配置来实现,这个重要的配置文件是f8wConfig.cfg 。用户可以通过配置文件中的

ROUTE_EXPIRY_TIME 配置路径满期时间,通过

MAX_RTG_ENTRIES 配置路由表的大小,通过MAX_REQ_ENTRIES 配置并发查找路径的大小,等等。

4 结束语

本文介绍了ZigBee 协议体系结构,TI 的ZigBee 协议栈Z-Stack 的基本原理和应用方法,并给出了ZigBee 了路由器算法及其实现过程。ZigBee 协议较为复杂,大部分的设计都是基于现有的开放式协议的基础之上的开发。因此,在了解ZigBee 协议体系结构的基础上深入理解Z-Stack 的含义和透明调用方法是ZigBee 设备开发的关键。

参考文献

[1] 李文仲.ZigBee 无线网技术入门与实践[M].北京:北京航空航天大学出版社,2007:4-5.

[2] 杜丽敏,郭文成.ZigBee 技术在远程抄表系统中的应用[J].单片机与嵌入式系统应用,2006(7):43-48. [3] 金纯,罗祖秋,罗凤,等.ZigBee 技术基础与案例分析[M].北京:国防工业出版社,2008:2-3. [4] 高守玮,吴灿阳.ZigBee 技术实践教程[M].北京:北京航空航天大学出版社,2009:229-230.

[5] 李文仲,段朝玉.PIC 单片机与ZigBee 无线网络实战[M].北京:北京航空航天大学出版社,2007:4-5. [6] ZigBee Alliance.ZigBee alliance Network specification version 1.0[S].2004.

[7] ZigBee Alliance.ZigBee Specification Version 1.0-ZigBee Document 05347r06,December 14th ,2004. [8]

Chipcon Semiconductor.Z-Stack API.2006.

Analyze and application on ZigBee protocal stack

LAI Lian-you

(School of Information Engineering,Jimei University,Xiamen 361021,China)

Abstract:The paper introduces the protocol architecture and software development methods of TI Z-Stack based on the specifics of ZigBee.As examples of application, the hardware block diagram of ZigBee router and routing algorithm are given.

Key words:ZigBee;Z-Stack;wireless router

相关文档