基于 ZigBee技术的无线传感器网络系统
2010-02-26彭道刚
彭道刚,张 浩,李 辉,夏 飞
(上海电力学院电力与自动化工程学院,上海 200090)
工业无线技术是工业自动化领域前沿热点技术,引领工业自动化系统未来的发展方向.工业无线技术是 20世纪初新兴的、一种面向设备间信息交互的无线通信技术,是对现有工业通信技术在工业应用方向上的功能扩展和提升,将引发传统工业测控模式的变革,引领工业自动化系统向着低成本、高可靠、高灵活的方向发展[1].美国及欧洲等一些国家多次在发展规划中指出,工业无线技术将在提高产品质量、降低生产成本、提高能源效率等方面发挥重要作用.美国能源部还将工业无线技术列为在 2020年实现美国工业整体能耗降低 5%目标的主要技术手段之一.可以预见,未来工业控制网络主要的存在形式应该是有线和无线的混合网络.在与有线网络一样能够满足工业生产监控管理需要的前提下,无线方案将使用更低的成本、更快的速度建立更灵活、易扩充、易管理的企业监控网络.
我国是国际上最早开展工业无线技术研发与应用的国家之一,由中国科学院沈阳自动化研究所主持制定的用于工业过程自动化的无线网络W IA-PA规范,于 2008年 10月 31日经过国际电工委员会(IEC)全体成员国的投票,以 96%的得票率获得通过,作为公共可用规范 IEC/PAS 62601标准化文件正式颁布.我国拥有自主知识产权的 W IA-PA技术成为国际标准,标志着在工业无线通信领域,中国已经成为技术领先的国家之一.
1 ZigBee无线传感器网络技术特点
目前,短距离无线通信技术已成为无线通信领域的一个重要分支.ZigBee是一组基于 IEEE 802.15.4标准的关于无线组网、安全和应用软件方面的技术标准.IEEE仅处理低级 MAC层和物理层协议.ZigBee联盟对其网络层协议和 API进行了标准化,规定每个 ZigBee协调器可连接多达255个节点,几个协调器则可形成一个网络,对路由器传输的数目则没有限制.ZigBee联盟还开发了安全层,以保证这种便携设备不会意外泄露其标识,而且这种利用网络的远距离传输不会被其他节点获得[2].ZigBee无线网络技术的主要特点有以下几点.
(1)低成本 通过大幅简化协议,降低了对ZigBee通信控制器的要求,因而大大降低了成本,且免收专利费.
(2)低速率 在 2.4 GHz的频段只有 10~250 kbit/s,专注于低传输应用.
(3)近距离 传输范围一般介于 10~100m之间,在增加 RF发射功率后,亦可增加到 1~3 km,如果通过路由器和节点间通信的接力,传输距离将可以更远,具体依据实际发射功率的大小和各种不同的应用模式而定.
(4)低能耗 通常 ZigBee节点所承载的应用数据速率都较低,在不需要通信时,节点可以进入低功耗的休眠状态;在低耗电待机模式下,两节普通 5#干电池可使用0.5~2年,免去了充电或者频繁更换电池的麻烦,这也是 ZigBee的支持者所一直引以为豪的独特优势.
(5)高容量 ZigBee可采用星型、树型和网状拓扑结构,由一个主节点管理若干子节点,最多一个主节点可管理 254个子节点,同时主节点还可由上一层网络节点管理,最多可组成 65 000个节点的大型网络.
(6)可靠性 ZigBee物理层采用了扩频技术,能够在一定程度上抵抗干扰;MAC应用层(APS部分)有应答重传功能;MAC层的 CSMA机制使节点发送前先监听信道,可以起到避开干扰的作用.当 ZigBee网络受到外界干扰而无法正常工作时,整个网络可以动态地被切换到另一个工作信道上.
(7)短时延 ZigBee的响应速度较快,一般从睡眠转入工作状态只需 15 ms,节点连接进入网络只需 30 ms,进一步节省了电能.
(8)高安全性 ZigBee提供了 3级安全模式,包括无安全设定、使用接入控制清单(ACL)防止非法获取数据,以及采用高级加密标准(AES-128)的对称密码,以灵活确定其安全属性.
(9)免执照频段 使用频段为 2.4 GHz,868 MHz(欧洲)及 915 MHz(美国),均为免执照频段.
表1为ZigBee,GPRS/CDMA,Wi-Fi,Bluetooth等几种无线技术的特点对比.
表1 几种无线技术的特点对比
2 ZigBee无线网络的拓扑结构与协议栈
2.1 ZigBee无线网络的拓扑结构
ZigBee无线网络节点按照网络角色的不同可以分为中心节点(协调器)、路由节点(中继器)和终端节点.中心节点包含所有的网络消息,是 3种设备类型中最复杂的一种,存储容量最大、计算能力最强.主要功能是发送网络信标、建立一个网络、管理网络节点、存储网络节点信息、寻找一对节点间的路由消息、不断地接收信息等.此外,按照 ZigBee网络设备功能的不同可分为全功能设备(Full-Function Device,FFD)与精简功能设备(Reduced-Function Device,RFD).FFD可以担任网络协调者,形成网络,与其他的 FFD或是 RFD连结.
FFD具备控制器的功能,可提供信息双向传输.RFD只能传送信息给 FFD或从 FFD接收信息.在 ZigBee无线网络中,FFD通常有 3种工作状态,即:作为个域网(PAN)的主协调器;作为一个从协调器;作为一个终端设备.一个 FFD可以同时和多个 RFD或多个 FFD通信,而对于一个RFD来说,它只能与一个 FFD通信.因此,RPD仅需要使用较小的资源和存储空间[3].
ZigBee无线传感器网络支持星型拓扑结构和对等拓扑结构这两种类型的网络拓扑结构.其中,对等网络又分为树型网络和网状网络.ZigBee网络拓扑结构如图 1所示.
图1 ZigBee网络拓扑结构
ZigBee星型网络以网络协调器为中心,所有其他节点设备只能与网络协调器进行通信,星型网络中的两个设备如果需要通信,都必须先把各自的数据包发送给网络协调器,然后由网络协调器转发给对方.这样的网络拓扑结构不太适合大范围的多跳网络.
在 ZigBee的对等拓扑网络结构中,同样也存在一个主协调器,它又分为树型拓扑结构和网状拓扑结构.在树型网络拓扑结构中,每一个节点都只能与其父节点和子节点之间通讯.在树型网络拓扑结构中,在可能的情况下,路由器节点之间可以直接通讯.对等网络拓扑结构能够组成多跳的复杂性网络,因此该拓扑网络结构在工业监测和控制、无线传感器网络、供应物资跟踪、农业智能化及安全监控等方面都有广泛的应用.
2.2 ZigBee无线网络的协议栈
ZigBee无线网络协议标准以 IEEE802.15.4标准定义的物理层及 MAC层为基础,并对其进行了扩展,对网络层协议和 API进行标准化,定义了一个灵活、安全的网络层,支持多种拓扑结构,在动态的射频环境中提供高可靠性的无线传输.此外,ZigBee联盟还开发了应用层、安全管理、应用接口等规范.ZigBee协议栈的体系结构见图 2.
图2 ZigBee协议栈的体系结构
IEEE802.15.4小组定义了最下两层:物理层和 MAC层.ZigBee联盟提供了网络层和应用层框架设计,其中应用层框架包括应用支持子层、ZigBee设备对象,以及由制造商制定的设备对象.
2.2.1 物理层
ZigBee物理层主要功能有启动和关闭无线收发器、能量检测、链路质量、信道选择、清除信道评估,以及通过物理媒体对数据包进行发送和接收,并负责物理层数据比特与链路层数据帧的相互转化.
ZigBee物理层通过射频固件和硬件提供了一个从MAC层到物理层无线信道的接口.其结构及接口如图 3所示.
图3 ZigBee物理层的结构与接口
从图 3可以看出,在物理层存在有数据服务接入点和物理层实体服务接入点,通过这两个服务接入点提供以下两种服务:
(1)通过物理层数据服务接入点(PD-SAP)为物理层数据提供服务;
(2)通过物理层管理实体服务接人点(PLME-SAP)为物理层管理提供服务.
物理层协议数据单元(PPDU)数据包的格式如表 2所示.
表2 物理层协议数据单元(PPDU)的格式
在 PPDU数据包结构中,最左边的字段优先发送和接收.在多个字节的字段中,优先发送或接收最低有效字节,而在每一个字节中优先发送最低有效位字节.同样在物理层与毗层之间数据字段的传送也遵循这一规则.
每个 PPDU数据包都由以下几个基本部分组成:同步包头;物理层包头 PHR;物理层净荷.在同步包头中,收发机根据前同步码引入的消息,可获得码同步和符号同步的信息.其中,帧定界符由一个字节组成,用来说明前同步码的结束和数据包数据的开始.在物理层包头中,帧长度占 7 bit,它的值是物理层服务数据单元(PSDU)包含的字节数(即净荷数),该值在零到 aMax-PHYPacketSize之间.物理层服务数据单元 PSDU的长度是可以变化的,并且该字段能够携带物理层数据包的数据.如果数据包的长度类型为 5个字节或大于 8个字节,那么物理层服务数据单元携带 MAC层协议数据单元(MPDU).
物理层数据服务接入点支持在对等连接MAC层的实体之间传输 MAC层协议数据单元.物理层数据服务接入点所支持的原语有请求原语、确认原语和指示原语.物理层用 PD-DATA.request原语请求向本地的物理层实体发送一个数据单元,当物理层实体收到 PD-DATA.request原语后,如果发射机正处于激活状态(即 TX-ON状态),物理层将构造一个物理层协议数据单元(PPDU),该单元包含要发送的物理层服务数据单元(PSDU).在物理层实体完成发送之后,就会向 MAC层返回一个 SUCCESS状态的 PD-DATA.confirm原语.当物理层收到 PD-DATA.request原语时,如果设备的收发机正处于接收状态(即 RXON状态)或者收发机处于关闭状态(即 TRX-OFF状态),那么物理层实体将返回一个带有 RX-ON或 TRX-OFF状态的 PD-DATA.confirm原语,表示设备的发射机未激活,必须将发射机激活后,才能正确地执行 PD-DATA.request原语.当物理层接收到来自远方发送来的数据后利用 PD-DATA.indication原语向本地 MAC层实体传送一个MPDU,将接收到的数据包发送给 MAC层.
2.2.2 MAC层
MAC层的功能包括:物理信道访问,建立并维持 PAN网络,允许设备加入或退出 PAN网络,让设备获得并保持与 PAN协调设备的同步,数据帧的发送、接受和确认,对 GTS的分配和处理等.
MAC层在服务协议汇聚层(SSCS)和物理层之间提供了接口,如图 4所示.
图4 ZigBee的 MAC层结构及接口
MAC层包括一个 MAC层管理实体(MLME),该实体提供一个服务接口,通过此接口可调用 MAC层管理功能.同时,该管理实体还负责维护 MAC层固有的管理对象数据库.另外,MAC层通过它的两个不同的服务接入点提供两种不同的 MAC层服务,即 MAC层通过其公共部分的子层服务接入点提供数据服务;通过其管理实体服务接入点提供管理服务.
在 MAC层中还规定了两种信道接入模式:一种是信标模式;另一种是非信标模式.信标模式规定了一种超帧格式,显然在信标模式,要求协调器周期性地发送信标,在超帧的开始部分发送信标帧,紧接着是竞争接入时期,在这段时间内各节点以 CAMA-CA竞争方式接入信道,再后面是非竞争接入时期,节点采用保护时隙(GTS)的方式接入信道,最后是非活跃时期,节点进入休眠状态并等待下一个超帧周期的开始再发送信标帧.而非信标模式则比较灵活,节点均以 CAMA-CA竞争方式接入信道,不需要周期性地发送信标帧.
MAC层协议数据单元即 MAC层帧,其结构由 MAC层帧头、帧载荷和帧尾组成.MAC层帧头的子域顺序是固定的,但在所有的帧中,可以不包含地址子域,MAC层数据帧结构如表 3所示.
表3 MAC层协议数据单元格式
两个 ZigBee设备必须进行的数据服务消息顺序如图 5所示.
图5 MAC层数据单元传输的过程
由图 5可知,当—个服务协议数据单元的数据信息(即 MSDU)要发送给一个对等连接的服务协议汇聚层实体时,发送端服务协议汇聚层实体生成 MCPS-DATA.request原语并发送给本地的MAC层.MAC层实体在收到该原语后,就开始发送已经准备就绪的 MSDU,并根据原语所提供的参数构造 MAC层协议数据单元.
3 ZigBee无线传感器网络开发平台
目前市场上常见的 ZigBee无线传感器网络解决方案主要有英国 Jennic公司的 JN5121/JN5139,Freescale MC1321x ZigBee,Chipcon CC2430 ZigBee,Digi XBee ZigBee等.本文对Jennic公司的 JN5121模块进行介绍[4].
英国 Jennic公司的 JN5121模块可以最快的产品上市速度和较低的开发成本创建 IEEE802.15.4兼容系统.JN5121模块集成了所有的射频组件,可提供一整套根据 IEEE802.15.4协议开发无线系统的解决方案.相比其他开发平台,最突出的优势就在于它的高集成性,从而在软件与硬件上给开发人员提供了很大的便利.JN5121 ZigBee芯片如图 6所示.
图6 JN 5121芯片内部结构
Jennic ZigBee软件开发平台使用 Jennic公司SDK软件平台,包括 Codeblocks,Flash Programmer,W iniZB NCTool等工具.Codeblocks属开源的C/C++开发工具,它与基于 cygwin的 gcc编译器进行连接,用以完成代码的编译工作.Flash Programmer软件是用来将编译好的代码下载到传感器板中的工具.W iniZB NCTool软件作功能测试之用,它可以用于发现网络拓扑结构及设备状态等信息,还可以对网络进行相关的配置.
该软件开发平台可以支持 ZigBee和 802.15.4两种协议组件的开发,因此在进行应用程序开发时,可以根据特定的需要来灵活选择所需要的组件.ZigBee协议栈组件都是基于 MAC层的802.15.4协议栈进行开发的,该组件在 802.15.4协议栈的基础上提供了路由、网络拓扑、节点管理等网络层的众多功能,在开发应用层程序时,可以直接获得联通的无线网络连接.因此,对基于ZigBee协议栈组件的应用开发会更加简单.而802.15.4协议栈组件只能实现基本的星形网络拓扑,用户需要了解和管理更多的内容,但是开发的灵活性足够大,而且可以为每个网络节点节省ZigBee协议栈的版权使用费用.
在应用程序中对网络的拓扑方式有特殊要求时,可以基于 802.15.4协议栈组件进行应用开发,这样就可以使用户严格控制网络的拓扑方式.此外,当对于应用程序的规模有较大需求时,也可以采用更小的 802.15.4协议栈组件,使开发者获得更大的编程空间.IEEE802.15.4协议栈组件的层次架构如图 7所示.
图7 IEEE 802.15.4协议栈组件架构
应用程序通过 802.15.4的协议栈 API和IEEE 802.15.4的协议层进行交互,以实现MCPS/MLME原语的请求和确认、消息的标识和回应.IEEE 802.15.4协议层与底层的硬件以及寄存器进行交互,硬件层产生各种中断,并通过中断句柄将其转发给各个软件模块.还可以使用应用队列 API来简化对通讯协议层和硬件 API中断的处理过程.应用程序可以通过集成外围设备API控制 JN 5121无线微处理器的集成外围设备,比如 UART,计时器,通用 I/O等,还可以使用板卡 API控制板载无线传感器和其他板载设备,如LED、按钮、温湿度传感器等.
基于 Jennic JN5121模块,本文作者设计开发了包括 ZigBee中心节点和 ZigBee终端节点的ZigBee无线传感器网络测量系统.
4 结束语
工业无线技术在工业自动化领域的应用成为继工业以太网之后的又一个热点技术,是对现有工业通信技术在工业应用方向上的功能扩展和提升,将引领工业自动化系统向低成本、高可靠性、高灵活性的方向发展.我国在工业无线网络研究方面已取得较大进展,拥有已成为国际标准的自主知识产权 W IA-PA技术.
以低功耗、低成本的 ZigBee无线网络技术为基础,将其应用在发电设备无线远程监测系统中,不仅可以节约监测成本,而且对于电力企业的节能降耗也具有重要意义.
[1]凌志浩,吴勤勤.ZigBee无线通信技术及其应用探讨[J].自动化仪表,2005,26(6):5-9.
[2]赵芸,张浩,彭道刚.ZigBee无线网络技术的应用[J].机电一体化,2007,13(4):34-38.
[3]吴键,袁慎芳,殷悦,等.基于 ZigBee技术的无线传感器网络及其应用研究[J].测控技术,2008,27(1):13-16.
[4]PENG Dao-gang,ZHANG Hao,YANG Li,et al.Design of zigbee wireless network based on embedded ARM platform[C]∥Proceedings of the Second International Symposium on Test Automation&Instrumentation,2008,(1):403-406.