前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的zigbee协议主题范文,仅供参考,欢迎阅读并收藏。
关键词:zigbee;PHY服务;原语;MAC层
中图分类号:TN91 文献标识码:A 文章编号:2095-1302(2015)06-00-02
0 引 言
ZigBee无线网络协议层基于国际标准化组织(ISO)和开放式系统互联(OSI)基本参考模型。ISO/OSI模型有7层,但ZigBee仅保留了对于组建低功耗、低数据率的无线网络所需的功能层。物理层和媒体接入控制协议是在IEEE 802.15.4中描述的低速率无线个人局域网,在其定义的物理(PHY)层和媒体访问控制(MAC)层基础上制定的一种低速无线个域网(LR-WPAN)技术规范,所以ZigBee协议栈的物理(PHY)层和媒体访问控制(MAC)层是按照IEEE 802.15.4标准规定来工作的,网络(NWK)层和应用(APL)层由ZigBee标准定义[1]。
1 PHY概述
IEEE802.15.4协议描述中分别有2.4 GHz物理层和868/9l5 MHz物理层两个物理层标准,数据传输速率高达250 kb/s。两个物理层使用的传输方式都基于DSSS(Direct Sequence Spread Spectrum,直接序列扩频),简称直扩方式(DS方式),在物理层使用相同的数据包格式,其低功耗、低成本的优点使它在很多领域获得了广泛的应用[2]。在于调制方式、工作频率、扩频码片长度和传输速率方面有所区别。2.4GHz频段申请的ISM频段在全球范围内无需统一申请,有利于ZigBee设备降低生产成本和市场推广;另外通过采用高阶调制可以达到250 kb/s的传输速率,从而获得极小的通信延时、极短的周期以及更大的吐吞量,从而ZigBee网络中的终端节点更加节电。欧洲的ISM频段是868 MHz,美国的ISM频段是915 MHz,引入868 MHz及915 MHz这两个频段可以使2.4 GHz附近的无线通信设备在不互相影响的条件下发出各自的频率。这两个频段在无线信号传输过程由于表现出小损耗特点,因而拥有极广的通信范围,可以适当降低接收机的灵敏度而不改变传输质量,从而在给定区域用较少设备进行有效覆盖。
2 PHY服务机制
PHY层提供两种类型的服务:PHY数据服务和PHY管理服务。PHY数据服务负责在射频信道中收发PHY协议数据单元(PPDU)。PHY还有一个称为物理层管理实体(PLME)的管理实体,通过PLME可以唤醒PHY管理功能。
(1)PHY数据服务
数据总是以MAC协议数据单元(MPDU)的形式进行传输。本地MAC需要传输数据时,就向PHY提供一个MPDU. PHY尝试进行传输,然后向MAC报告传输结果(成功或失败)。当射频收发器收到数据后,PHY层通知MAC层收到了一个MPDU。PHY层不仅向MAC层提供MPDU,还向MAC层提供链路质量指标(LQI)信息。如图1所示。
图1 两台设备间的数据传输服务
数据可以由MAC层产生,更高层完全不知道这个数据的存在。数据由ZigBee设备对象(ZDO)或应用支持子层应用对象产生。在传输过程中,每一层都对数据单元(DU)加入自己的头部和尾部(如果允许),然后将该结果传递给下一个更低层。每一层的数据单元都以该层的名称命名。在APS层和NWK层,数据单元分别被称为APS协议数据单元(APDU)和NWK协议数据单元(NPDU)。PHY数据服务接收一个MAC协议数据单元(MPDU)并创建将通过射频传输的PHY协议数据单元(PPDU)。在接收端,数据从某一层向上传输到下一个更高层,直到数据单元到达目的层头部和尾部被删除。
(2)PHY管理服务
管理实体提供的管理服务有:信道能量检测(ED)、链路质量指示(LQI)、空闲信道评估(CCA)等。信道中接收信号的功率强度是由信道能量检测来完成的,是为上层提供信道选择的依据[3]。噪声信号功率和有效信号功率之和作为信道检测结果的依据,其检测过程没有进行解码操作。而链路质量指示对检测信号需要进行解码操作,生成一个信噪比的指标值,为上层提供接收的无线信号的质量和强度服务信息。空闲信道评估主要评估信道指标值是否空闲。
3 PHY服务实现
IEEE 802.15.4和ZigBee标准使用原语的概念来描述服务,这些服务由上一层使用。相邻协议层之间的通信是通过在层与层之间调用函数或传递原语来管理的。服务原语的概念是比较抽象的,要实现特定层提供的服务需要由它来指定需要传递的信息来完成。服务原语与具体的服务实现无关,服务原语有请求、通知、响应、确认4种情况[4],具体如下:
(1)请求(request)原语。请求原语由网络服务请求方的用户发送特定信息到它的服务提供层进行响应,请求启动某一项服务。
(2)通知(indication)原语。指示原语由网络用户的服务提供层发送到对应服务响应方用户的相应层,跟远端服务请求逻辑相关。
(3)响应(response)原语。响应原语由服务响应端的用户发出信息到服务提供层,从而完成提示原语启动的程序。
(4)确认(confirm)原语。验证服务原语是由服务提供层发出并传输到服务请求端的用户方,该原语是确认服务请求原语的传递结果。
在多用户存在的网络中,服务原语交换过程是两个对等的用户通过服务提供层交换信息,它们通过原语的传递,建立相关服务[5]。在其下一层提供服务的基础上建立服务用户的功能。层间信息传输流事件是离散的,是通过发送服务原语来实现事件的。协议使用服务原语来描述每一层的功能。每个原语指定要执行的操作或者提供之前请求的操作结果。一个原语也可能携带执行其任务所需的参数。如图2所示。
图2 服务原语交换过程
如上图,N+1层为服务用户、N层为服务提供者,在PHY层数据服务中,PHY数据请求(PD-Data. Request)原语由MAC层产生,并传递给PHY层,以请求传输一个MPDU。通知原语由第N层产生给其上一层,表明产生了一个对第N+1层很重要的事件。当PHY接收来自网络上另一个设备的数据,这些数据需要传送到MAC层,PHY用户使用PD-Data的通知原语来传送数据信息给MAC层。
如果通知原语需要一个响应,则响应原语从N+l层传送到第N层。PHY层和NWK层没有任何响应原语。MAC层和APL层包含响应原语。第N层使用确认原语向第N+1层确认其传递的请求原语已经完成。PD-Data的确认原语由PHY层实体产生并发给它的MAC子层实体,以响应一个PD-Data的请求原语。在确认时,PHY层通知MAC层传输是否成功。
4 结 语
PHY层是最接近硬件的层,直接控制射频收发器并与其通信。研究PHY服务机制及PHY服务的实现原理对ZigBee在物联网中的应用具有重要的基础意义。
参考文献
[l]郭园.基于ZigBee和GPRS的LED路灯智能照明控制系统的研究[D].青岛:青岛科技大学,2012.
[2]朱洲.基于ZigBee技术的无线自动抄表系统[D].重庆:重庆大学,2005.
[3]薛秦刚. IEEE 802.15.4的ZigBee协议栈研究与仿真[D].西安:西安理工大学,2010.
关键词:ZigBee;无线网络;实时操作系统;软件设计
中图分类号: TN929 文献标志码:A文章编号:1009-3044(2009)36-10608-03
Design of Physical Layer and MAC Layer of ZigBee Protocol Based on Embedded Real-Time Operating System
SUN Yi
(Shandong Jiaotong University, Jinan 250357, China)
Abstract: This paper researches on wireless sensor network based on Embedded Real-Time Operating System. In analyzing RTOS and wireless sensor networks, a software design methods on physical and MAC layer of ZigBee is presented based on a micro-kernel embedded real-time operating system. This method reduced the difficulty of the wireless network development by programs expansion and codes migration. It provides a simple and easy to realize platform for the subsequent network layer and application layer development.
Key words: ZigBee; wireless sensor network; real time operating system; software design
随着嵌入式系统、无线通信、微电子等技术的快速发展,具有感知、计算和无线网络通信能力的传感器,以及由其构成的无线传感器网络(Wireless Sensor Network, WSN)引起了人们的极大关注。实时操作系统(Real-Time Operating System,RTOS)是建立在单片机硬件系统之上的一个平台,用户的一切开发工作都在该平台上进行,它定义了每个应用任务和内核的接口,也促进了应用程序的标准化。应用程序标准化后便于软件的存档、交流、修改和扩展,减少开发管理工作量。ZigBee是一种新兴的短距离、低速率、低功耗无线网络技术,国际上IEEE802.15.4工作组及ZigBee联盟共同致力于该无线连接技术的推广工作,其中,IEEE802.15.4只规定了ZigBee的物理层和MAC层的功能,仅处理这两层的通信协议。ZigBee网络通信过程,大致包括协调器组织网络,节点器件加入、离开,发送、接收数据,信标帧的产生、重发,安全机制以及PIB属性管理等等过程,利用传统的前后台模式思路,开发过程和调试过程会非常复杂,甚至实时性、稳定性较差。
本文正是鉴于ZigBee网络协议的复杂性和嵌入式RTOS平台开发的方便性,在分析二者特点的基础上,将ZigBee协议的物理层和MAC层移植到RTOS上。利用RTOS来开发,通过把复杂的过程划分为几个独立的任务,任务之间的相互联系通过事件来驱动,这样会使设计过程简单,降低开发难度,大大增加程序的移植性和代码的可重复利用性。经多次测试、使用,开发的嵌入式系统运行效果良好,系统比较可靠、稳定。
1 设计目标
软件设计分为两部分:系统级任务和应用级任务。系统级任务能够独立完成基础性工作,不需要高层协议来管理,并且给应用级任务提供接口,能够实现任务的扩展;应用级任务通过系统级任务提供的交互与操作系统进行交互,应用级任务根据实际的需要来开发,利用操作系统提供的接口,利用系统级任务来实现具体的应用。
2 系统设计
在原有RTOS基础上增加几个系统任务,完成ZigBee网络通信的基本功能,使RTOS成为符合ZigBee开发的嵌入式操作系统。其中增加的系统功能为:协调器的网络组建功能,节点器件的加入网络和断开网络功能,信标帧的产生功能,信标帧的跟踪功能,数据接收功能,数据发送功能,数据确认重发功能以及网络邻居表的维护和PIB属性的管理。整个通信主程序的流程图如图1所示。
2.1 系统级任务分析
系统初始化设计:主要是对寄存器等基本硬件进行设置,对变量赋初始值等。
1)消息泵任务emMsg_Pump()。该任务是整个系统消息机制核心部分,负责接收并处理每个任务发给系统的消息,并根据消息值触发相应的任务。是系统优先级最低的任务,永远处于就绪状态。系统运行之初,如果没有其他优先级高的任务,系统便会运行此任务,处于就绪状态。在整个嵌入式系统运行期间,所有任务之间通信机制是消息驱动机制,具体做法是某个进程运行结束时,产生系统消息,并把它放入系统的消息队列,等到消息分发任务运行时候,它从消息队列中提取消息,然后分发消息到需要触发的任务当中,修改触发任务的运行状态为就绪状态,当系统再次调度时,运行要触发的任务。流程图如图2所示。
2)组建网络或加入网络任务emAssociation_Join()。要实现节点和协调器之间通信,必须构成一个基本的ZigBee无线网络。IEEE802.15.4标准中规定无线个人局域网的构成至少有一个协调器,最大网络容量为255个节点。该任务就是实现构建网络的过程。若器件是协调器,它首先完成创建一个网络的过程,若是节点器件,则完成加入网络的过程。具体组网的过程实现:协调器首先进行频道扫描确定未使用的信道,并在自己电磁波辐射范围内通过接收的信标帧来捕捉其它协调器的信息,从而确定此范围内正在使用的信道和网络标识符,然后根据某种算法选择一个未使用网络标号更新系统的macPANId,通过自己的信道发送信标帧,通知周围的节点。网络节点器件被动的扫描,捕捉附近的网络协调器,选择合适的网络协调器,发送加入网络请求,收到ack应答后开始在最大响应时间内等待协调器的响应帧。如果协调器允许此节点加入网络,则会分配一个16位的短地址给节点,并把此节点的信息存入网络邻居表,网络节点收到允许加入的响应帧后更新自己的地址信息。否则,继续扫描其他的协调器,请求加入其他网络。当协调器和节点器件完成上述过程后,也就完成了组网的过程。当组网过程结束后,会改变系统的状态机,产生消息MSG_JOIN_NET并触发另一个任务的运行。
3)断开网络连接的任务emAssociation_Leave()。该任务是节点器件任务。当网络节点想离开当前加入的网络,就发送离开网络的请求命令,协调器允许其离开,会在信标帧中通知此节点同时将其信息从网络邻居表中删除。网络节点完成该任务后,产生系统消息MSG_LEAVE_NET,并修改系统的状态机。
4)数据帧报文发送任务emPacket_Send()。当协议上层要发送数据,把数据写入发送缓冲区,并产生系统消息给RTOS,由RTOS来完成数据报文发送。RTOS便会调用该数据帧报文发送任务,首先填写帧控制、地址等报文头信息,复制数据缓冲区内的数据,加上CRC校验码,完成数据报文封包工作。其次打开射频收发器的发送开关,通过对CCA检测,判断通信信道的状态,从而实现冲突碰撞检测机制。若信道空闲,则发送报文,若信道处于忙状态,则随机等待一段时间,再次检测信道状态,直到其空闲,完成数据报的发送过程,同时发送系统消息MSG_SEND_END触发确认重发任务,在macAckWaitDuration时间内等待收到报文的设备发送ack确认报文。在上述时间段内收到ack确认,便返回一个数据发送成功的状态,否则便启动重发机制,若重发次数超过aMaxFrameResponse,仍未收到确认,则丢弃报文,返回发送失败的状态。流程图如图3所示。
5)数据帧报接收任务emPacket_Receive()。该任务对报文进行三级过滤,首先对报文进行地址辨识,检测报文的发送目的地址是否是发给本网络的协调器,不是则丢弃报文,完成数据报文第一级过滤;其次对报文进行长度判断,检测报文长度是否符合协议规定,不符合则丢掉报文,完成第二级数据报文的过滤;接着对报文进行CRC校验的判断,不正确则丢掉报文,实现第三级报文过滤。最后根据报文种类的不同将其存入对应的接收缓冲区,修改信号量的值,表明数据接收缓冲区内有数据。流程图如图4所示。
该任务有中断实现,执行完毕并不触发消息,只是修改接收缓冲区的信号量的值。原因在于网络内的节点发送数据频率较高,为了能够及时响应,保证此任务不会使其它正在进行的任务重复重启。从而提高了系统实时性,减少了数据报文的丢失率。
6)各种命令处理任务emCmd_Process()。在ZigBee无线网络中,规定在接收到的报文中对确认帧是优先处理的,其次是命令帧,最后才是数据帧。协调器处理的命令包括节点器件的请求加入网络命令、离开网络命令、网络冲突命令、器件孤立命令。协调器收到这些命令,可能要发送响应命令,又涉及到冲突检测、确认和重发的判定,为了减少对系统任务在实现一个简单的功能反复切换,直接在命令处理任务中实现确认重发机制。协调器对请求加入网络的命令要给予响应,分配短地址,加入网络邻居表;对来开网络请求,要在信标帧中给予通知,并从网络邻居表中删除节点信息。对网络标识符冲突命令,要重新扫描、组网等。处理完毕产生系统消息MSG_CMD_END,触发数据处理任务。
7)数据帧报文的处理任务emData_Process()。把数据帧的报文处理,单独作为一个任务,主要原因在于数据帧是在协议上层来组织和处理,操作系统如果收到数据和数据请求命令,只给上层任务发送消息,触发上层处理任务。具体的处理工作由上层处理任务完成,从而实现了操作系统完成基本的操作,给上层任务提供接口,供上层任务使用,为后续开发奠定了基础。
8)定时发送信标帧的任务emBeacon_Send(),在信标使能的网络中,所有的通信过程都是由协调器来主导,协调器通过信标帧来实现网络内所有节点的通信的同步,并且控制通信的节点,控制通信的时间等。节点器件加入网络,也要首先对信标帧进行跟踪捕捉,进行综合判断。所以在ZigBee网络内,协调器每隔一定的时间来发送信标帧,网络内的各个节点器件通过信标帧安排自己的工作,从而实现了信标使能网络的通信过程。发送信标帧后发送系统消息MSG_BEACON_OVER。这个任务是由定时器的定时消息驱动。当定时时间到达以后,发送定时到达的系统消息MSG_TIME_OUT,通过系统调度实现此任务的运行。
2.2 应用级任务分析
1)对数据请求命令的处理任务emDataRequest_Task()。这个任务收到操作系统的消息后,就会组织数据,发送给节点。它要做的只是发送一个消息给系统,消息的内容包括发送数据的指针和数据的长度。
2)网络PIB数据库管理emPIB_Manage(),此任务可以用来更新、维护物理层和MAC层的属性,包括能量设定管理,以适应不同情况下通信需要。
3 结束语
该文通过对嵌入式RTOS运行机制和无线传感器网络ZigBee协议的深入研究,成功将ZigBee协议的物理层和MAC层移植到RTOS上,对无线通信过程各个环节进行了较为详细任务实现分析,该方法的实现降低了系统开发难度,提高了开发效率,对于开发相关的应用软件或进行硬件平台的移植有一定参考价值。
参考文献:
[1] 威尔姆舍斯特.PIC嵌入式系统开发[M].北京:人民邮电出版社,2008.
[2] Estrin D,Culler D,Pister K,et al.The Physical World with Pervasive Networks[J].IEEE Pervasive Computing,2002,1(1):59-69.
[3] 孙利民,李建中,陈渝,等.无线传感器网络[M].北京:清华大学出版社,2005.
关键词:Z-stack;HA规范;ZCL;ZigBee
中图分类号:TP311 文献标识码:A 文章编号:2095-1302(2013)04-0054-03
0 引 言
目前,国内市场上ZigBee产品虽然很多,但大多采用的都是私有协议栈,阻碍了不同厂家产品之间的互用和替代,这也是ZigBee市场规模无法迅速扩大的一个重要原因,因此,开发具有符合标准规范的ZigBee产品成为当务之急。目前国内的ZigBee行业规范还正在处于形成阶段,但国际上的ZigBee规范已经建立并受到国际上众多厂商的追随,因此,本文就如何开发符合ZigBee联盟规定的HA规范的ZigBee应用进行了探讨。
Z-stack是TI公司推出的ZigBee协议栈系统,这是一个通过ZigBee联盟认证的符合ZigBee2007规范的平台。借由TI公司ZigBee芯片及SOC产品在国内的广泛接受,Z-stack也称为众多芯片厂商提供的协议栈中开发者接受度比较广的一款ZigBee协议栈。本文探讨的ZigBee产品应用开发是基于Z-stack协议栈的。
1 ZCL库(ZigBee cluster library)[1]
在ZigBee协议栈中,簇是一组命令和属性的集合,这些命令和属性组合起来,构成了实现某一功能的实体。
ZCL是由ZigBee联盟制定的包含了大量功能簇(cluster)的大集合。在应用开发中,以ZCL中已有的簇作为功能单元来使用,可以增强通用性,避免重复开发。
ZCL对功能簇进行了分类和描述。每个功能簇都包含有一个或多个属性及命令,ZCL对每个属性都进行了定义和描述,包括属性ID、名称、数据类型、数值范围、初始值、可读写性以及强制性;同时,也对此簇所包含的命令进行了定义,包括命令ID、命令名称、命令数据帧内容和触发效果等。
ZCL中的通信是基于Client/Server模型的以簇为单位进行的。两个不同功能设备之间的相互通信,是基于某一个或多个功能簇的。用来储存这些簇属性的设备,称为Server端;而用来操作这些簇属性的设备,称为Client端。针对Client/Server端口类型的不同,同一个簇也具有不同的属性和命令。例如,操作属性的命令,通常由Client端发送给Server端;而用针对这些操作命令的回复,通常由Server端发送给Client端。另外,报告类型的命令(report attribute command)通常由Server端发送给Client端。以On/Off簇为例,该簇的作用是实现开关设备的开/关状态的控制,体现在设备上,分为Client端和Server端两种角色的设备,比如开关是Client端,而某个具有ZigBee模块的灯节点则代表了相应的Server端。Server端作为命令的接收者,必须能够识别开/关/切换这几个来自Client端的命令(在ZCL中,已经规定好这些命令对应的ID,如0x00代表关,0x01代表开,0x02代表切换),同时,由于命令操作的是属性,因此,该Server端必须保存有开关状态这一属性。
另外,ZCL制定了基于cluster的各类命令帧的格式(包括读、写、报告等);定义了用于寻址的各指示参数(包括规范ID、设备ID、簇ID、属性ID和命令ID);规定了用于各属性和命令中各类数据的数据类型;还规定了在通信中可能会出现的所有状态的枚举数组。
2 HA(home automation)规范[2]
HA规范是由ZigBee联盟(ZigBee alliance)制定的对用于住宅环境的各类常见应用的设备描述和操作规范。通过这一规范,为不同厂商的ZigBee HA设备提供了标准的接口和定义,确保其相互之间能够相互通信并协同工作。
HA规范的范围主要集中在对家用设备进行的实时操作,该规范可以构筑在ZigBee2007的两个子规范(ZigBee、ZigBee pro)之上。
HA规范可以简单分成围绕网络特性的参数设置和围绕功能实现的设备描述分类(包括相应设备的簇以及特性和功能)这两大部分的内容。
2.1 参数设置
HA规范对涉及到协议栈各功能方面的一些参数进行了明确的规定,例如用于设备启动时的启动参数集(startup attribute sets),要求每个设备都必须内置这些参数,例如将PAN ID设置成0xffff等。还有比如用于网络重连接的时间间隔、安全中心连接秘钥等等参数。
在安全参数的设置方面,HA规范中规定,设备的初始网络安全秘钥(network key)是空的,即每个设备的网络安全秘钥必须由安全中心来统一分配;而安全中心连接秘钥(trust center link key)是每个设备都预置好的。
2.2 设备描述
HA规范对可能会用到的设备进行了划分并设置了相应的ID,在HA网络中的每个终端都必须符合至少一项该分类图中给出的设备描述分类(如果同时符合多个设备描述的话,需要在自己的设备描述中枚举这些设备类型)。
ZigBee技术首先被运用到军事领域,之后这项技术逐步被应用到民用领域。在民用中,符合802.15.4的主要有ZigBee和一些专用的协议栈(如图2)。其中发展速度最快的当属ZigBee了,例如无线传感网络、自动抄表、楼宇控制、医疗电子等应用;接下来,Zigbee会向消费类电子领域渗透。
ZigBee的应用优势
全球不同的国家频带分布不同,其中2,4GHz在全球基本上都可以应用。不同的国家也有一些不同的1GHz以下的一些频带,在美国是900多MHz,中国大陆用433MHz。ZigBee的优势是采用IEEE802.15.4的频带调制方法,可以用在全球不同的地方。但是802.15.4不一定采用ZigBee协议栈,反过来ZigBee协议栈一定是使用802.15.4。
与专用标准相比,ZigBee的优势是通用。例如今天家庭都有不同的表,包括电表、水表、气表,ZigBee协议栈可以实现不同的表进行统一的管理。
智能家居方面ZigBee也可以大展身手,因为在这个领域有很多不同的生产厂家,有生产灯控的,还有生产探头的……。如果灯控和探头中间没有一个标准的协议栈,沟通就很困难。标准的协议栈――ZigBee可以帮助灯控和探头沟通。
ZigBee的应用很多,例如医院里面把一些贵重仪器定位。美国还有一个客户把ZigBee定位应用到停车场,因为美国的汽车出租公司有很多汽车,所以把ZigBee的芯片放在每一辆汽车中,在停车场里建立一个ZigBee的网络,这就方便给他们的客户或其工作人员去找到车的位置。
三种芯片方案
目前市场上的ZigBee有三种芯片方案(如表1)。
在选用哪种方案时,需要考虑几个方面:第一,有没有空间?方案1的单芯片方案是空间占用最少的。第二,客户需要的开发时间大概多少?如果时间很短,方案2理想,因为ZigBee的协议栈已经做好,只要MCU或DSP具有SPI或UART接口,即可与ZigBee处理器连接。第三,方案3方案较有弹性。另外,方案1和3相对来说功耗都较低。
当然采用哪种方案不能一概而论,还有一些特殊应用情况。例如安防探头,如果做好再拆开在国内就要再次认证,所以在这种情况以下,再外加一个ZigBee处理器会比较简便。
ZigBee的技术挑战
ZigBee要在市场上大量的使用,一个重要的挑战就是在软件上的定义,例如协议栈上怎么样使ZigBee的网络稳定,还有可靠性。目前这些技术基本上已成熟,都是ZigBee Alliance来跟所有的厂家一起定义的。据TI低功耗射频业务全球市场营销总监Emmanuel Sambuis介绍,今年4月TI在芯片厂商中率先为方案2推出了ZigBee处理器一CC2480,特点是把协议栈已经做好,免去了客户处理ZigBee协议栈的操作,以加速客户zigBee在市场上的开发。
关键词:ZigBee技术 3G技术 网关
1. 引言
各种网络终端的出现和家庭智能化都迫切需要一种具备低成本、近距离、低功耗等优点的无线互联标准,ZigBee就是在这样的背景下应运而生的。ZigBee主要应用于短距离、数据传输速率不高的各种电子设备之间的无线通信。而3G移动通信系统的产生则是由于人们对信息处理和共享的需求不断提高。本文就是为实现私有网络的跨距离监控,设计了一种基于ZigBee无线通信技术的3G网关通信节点,其中3G技术采用的WCDMA技术。
2 . 3G网关的设计和总体架构
ZigBee模块选用的是JN5121芯片,它是高性能、低功耗的无线SoC芯片,JN5121内置的ROM存储器中集成了点对点通信与网状通信的完整协议栈;其内置的RAM存储器,可以支持网络路由和控制器功能而不需要外部扩展任何的存储空间。内置的硬件MAC地址和高度安全的AES加密算法加速器,减少了系统的功耗和处理器的负载。
3G部分选用的是一款可以安装3G模块的3G开发板,此3G模块选用的是基于WCDMA技术的华为公司生产的MU103模块。
该网关以JN5121自带的8位处理器作为网关的主系统,JN5121以ZigBee协议栈为基础,在网关与ZigBee路由节点和终端节点之间接收数据通信,WCDMA模块用于将ZigBee节点的数据发送到控制中心以及从控中心接收命令,系统硬件的总体结构如下:
3. 硬件电路设计
硬件主要包括嵌入式处理器、ZigBee模块、3G模块三部分组成。但是考虑到选用的ZigBee模块是JN5121模块,本身自带8位微处理器,所以此硬件主要包括ZigBee模块和3G模块两部分组成。
3G网关的硬件框图
4. 软件设计
本设计使用的是CodeBlocks软件,它是一款免费、开源、跨平台的C/C++ IDE,支持Windows、Linux、MacOSX。同时它还支持各种不同的编译器。
4.1 WCDMA网络和本设计中自组织网络的通信协议
本设计中WCDMA网络协议采用的是基于基站的协议模型,从下到上依是MTP1、MTP2、MTP3和SCCP。
MTP1定义了数字链路在物理上、电气上及功能上的特性;对应于OSI模型中的物理层;
MTP2确保消息在链路上实现精确的端到端传送。对应OSI模型中的数据链路层;
MTP3提供两个信令点间消息的路由选择功能,对应OSI模型中的网络层;
SCCP位于MTP之上,为MTP提供附加功能,对应于OSI模型中的应用层。
4.2 协议转换软件原理
JN5121自带的8位处理器是实现ZigBee网络与WCDMA网络的透明传输的关键系统,将ZigBee协议转换成WCDMA协议,实现数据的远程传输,同时能够将WCDMA协议转换成ZigBee协议,向ZigBee节点发送控制命令。
从ZigBee往WCDMA的传输:3G网关从ZigBee节点中接收到数据时,ZigBee模块将接收到的数据传输到自带的8位处理器,此处理器对接收到的数据进行处理,去掉ZigBee协议栈头,提取有用的数据载荷,然后加上WCDMA的协议栈头。从WCDMA向ZigBee传输数据的处理过程相反。
5. 总结
各种无线网络之间的互通已成为必然。为了实现信息资源的共享,并对各种不同网络的优点进行互补,网络融合是未来网络发展以及通信技术和通信标准发展的方向。本设计研究ZigBee网络和3G网络网关设计方案及实现,提出了一种在嵌入式技术、3G技术和ZigBee技术的基础上,设计了一款3G网关的设计方案,实现了ZigBee网络与3G网络的数据互通和个人局域网的远程实时监控。
参考文献:
[1] 王权平,王莉.ZigBee技术简析,通讯世界,2003,4
关键词:ZigBee;一致性与互通性;ZigBee协议;测试节点
中图分类号:TP311.52
2007年,ZigBee联盟宣布了认证计划。为了确保ZigBee[1]产品的可靠性以及在无线组网中工作的稳定性,ZigBee联盟负责实施、管理了认证测试。每一个产品都基于公共应用规范,以保证各个设备制造商的产品之间的互操作性。目前,全球只有三家实验室为ZigBee联盟指定的完整测试服务授权厂商[2]。国内还没有一个广受认可的官方ZigBee测试规范。因此,就需要一个测试规范来检测ZigBee设备是否达到ZigBee协议标准。
1 系统设计
该平台是一个专门用于测试一个采用ZigBee协议标准开发的ZigBee设备是否符合ZigBee协议标准,是为了保证ZigBee设备的一致性、互通性。平台由ZigBee测试节点、以太网、ZigBee网络和PC机控制端组成。
硬件方面,ZigBee节点的主要功能是采集和上传数据,完成数据从ZigBee协议环境下到TCP/IP协议环境下的转换,并且能在无人看管的条件下长期运行。软件方面,应具备如下功能:准确地接收节点上传的数据,进行实时的显示、存储并可随时查看历史数据,通过对数据的修改和反馈,达到验证ZigBee节点是否符合ZigBee协议标准的目的。当对ZigBee测试节点进行测试时,测试节点能自动加入协调器节点发起的网络,将节点各层属性数据上传至协调器节点,当传输距离超过一跳传输距离时,数据以多跳方式传输,触发协调器节点执行数据接收程序,该程序模块通过调用函数将接收到的数据解析成TCP/IP协议下的数据,对数据处理后,使用Socket网络编程,将数据上传至计算机软件,软件调用合适的函数对接收到的数据包进行解析,将数据实时的显示在软件界面中,采用合适的方法,完成对该节点的测试与验证。该测试平台的系统架构图如图1所示。
1.1 ZigBee网络硬件组成
一个ZigBee网络的硬件组成包含ZigBee协调器节点、路由器节点以及终端节点三种,ZigBee网络中的设备分为全功能设备(FFD)和半功能设备(RFD)。其中,FFD设备可提供全部的IEEE 802.15.4的MAC层服务,可充当ZigBee网络中的任何设备,因为FFD设备不仅可以发送和接收数据,还具备路由转发数据的功能;而RFD设备只提供部分的IEEE 802.15.4 MAC层服务,因此只能充当终端节点,而不能充当协调器节点和路由节点,因此它只负责将自身的属性数据发送给协调器节点和路由节点,并不具备数据转发、路由发现和路由维护等功能。
整个节点硬件电路主要包括射频模块、电源模块、传感器、嵌入式控制器和时钟五个部分组成。ZigBee网络测试节点采用了以ATmega128为核心控制模块,以CC2530芯片为无线收发模块的设计方法[3],ATmega128与CC2530芯片是通过SPI方式进行相互之间的通讯的,ATmega128采用主模式,CC2530采用从模式。电源采用连接式电源。时钟电路主要是采用ATmega128晶振来产生同步信号,从而实现射频模块与处理器之间的同步。
在节点上由ATmega128为主控芯片及其芯片及电路组成的数据转换设备,完成ZigBee协议数据到以太网TCP/IP协议数据的转换。图2为实际开发节点实物图。
1.2 系统软件设计
软件设计方面包括硬件节点的软件设计和PC机端的软件设计。
1.2.1 协调器软件设计
协调器软件设计功能主要为:(1)创建并维护ZigBee网络,实现对ZigBee网络的创建,维护节点加入和退出时的网络拓扑结构。(2)接收PC机服务器端发送来的控制指令,并将其通过ZigBee网络发送给各路由器节点和终端节点。(3)将ZigBee网络区域的节点的各层属性数据经过处理和融合,最后通过ZigBee模块发送给PC机服务器端。
1.2.2 路由器节点和终端节点软件设计
终端节点的作用是采集数据,路由器除了采集数据以外还负责建立数据路由,其主要功能如下:(1)通过扫描可用信道寻找可用网络,如果存在可用网络,则终端节点/路由器节点就开始请求加入到网络中,当成功加入网络后,终端节点/路由器节点便开始向目标服务器发送自身的各层属性数据。(2)采用中断方式,接收由ZigBee网络协调器发送过来的命令,并对命令进行判断,如果命令被判断为控制命令,终端节点/路由器节点则根据命令帧收发数据,如果命令是修改命令,则根据命令,终端节点/路由器节点完成对对应属性值的修改。
1.2.3 服务器软件设计
该平台软件是以Windows XP为操作系统,采用C++语言,选用Visual Studio 2010程序开发工具以及MFC对界面程序及其它应用程序的设计[4]。软件界面如图3所示。
PC机软件主要包含四个模块:(1)网络通信模块,对整个ZigBee网络进行监听;(2)数据处理模块,解析ZigBee网络协议,接收网络中的节点数据包,分析数据包中的数据,对解析好的数据进行分类;(3)数据显示模块,在软件中显示接收的各节点IP地址及TCP/IP模型各层数据;(4)验证模块,ZigBee节点接收服务器的修改命令,对节点属性进行修改和反馈。
(1)网络通信模块。为完成PC机软件端对整个ZigBee网络进行监听,ZigBee测试节点采用TCP/IP协议的Socket编程与服务器端建立连接,使用了IO完成端口(Completion Port)网络通信模型。实现TCP/IP协议通信所采用的临时端口号为10012。
摘 要:随着计算机行业的迅猛发展,软件系统也相应增加了其复杂难度,系统架构的设计在整个软件中占据的比例越来越重,框架是软件系统设计开发过程中滋生中的一个概念,在于重复使用已完成的设计和代码且适用于实现某一特定类型的软件系统,保证其质量。本文则主要详细分析SSH组合框架中J2EE体系结构的设计,以及它在人力资源管理系统中的应用实现,以供参考。
关键词:J2EE;SSH组合;框架;设计;实现
中图分类号:TP311.52
近年来,Java技术的日趋完善和逐渐成熟,它作为企业计算机应用中的标准平台,J2EE体系架构也得到了全面的发展。它结合了面向对象的MVC设计模式,构成了一种快速高效的开发模式。这种开发模式有三种较为主流的框架:Hibernate、Struts、Sping。当前特整合了一些优秀的框架来适应不同的应用需求以此来快速提高开发效率,已经成为系统软件开发所流行的趋势。
1 J2EE体系结构相关概述
1.1 J2EE概念
1.2 J2EE体系上的结构框架分析
框架存在的意义在于它们之间存在着不同的模板,且紧密关联,重要在于根据这些关联性来有效的完成一些设计。它的关键是框架内对象间的交互模式和控制流模式。在很多情况下框架都以组件库的形式出现,是一个可复用的设计组建,整个设计、协作组之间的责任分配、控制流程和依赖关系都可通过框架来作详细阐明。当前基J2EE架构已经开发出许多框架,使开发人员的负担减轻了许多。当前构建Web应用时要注重考虑业务逻辑处理、用户请求处理及数据持久化等问题,从而出现了Hibernate、Struts、Sping三种基于Web层、数据层和业务层上比较常用的框架。
1.2.1 Hibernate框架
Hibernate框架支持使用各种Java思想,如实现对象利用Inheritance、Composition等,是一种比较彻底的Java对象映射工具。Hibernate框架具有很大灵活性,它可以在一张表的同一行当中映射一个用户定义的多个类的实例。因而传统的从数据库提取数据的代码编写量可以利用Hibernate QL来完成,缩短了提取时间,节省了开发成本。Hibernate框架之所以可以映射到数据库的行,前提是因为它通过Properties和类的映射文件,且某些功能构件界于它最大模式和最小模式之间,是具有可选性的,从而实现简化操作。
1.2.2 Sping框架
Struts是基于多层J2EE系统的框架,它提供了AOP的支持,JDBC的提取框架,Bean的配置基础等,实现了MVC,为不同数据的技术访问提供了统一的接口。Struts是一个服务于所有层面的应用程序框架,由七个定义良好的模块组成(具体组成构图如图3所示),由于Struts模块化的很好,以致并不强求在每一层中都要使用,根据自身所需选择即可。
1.2.3 Struts框架
Struts框架基于MVC设计模式,一个应用程序的商业逻辑、控制逻辑及表现逻辑的代码可以利用Struts框架中MVC设计模式来分解,复杂的Web应用也可以利用它来构建。Struts是开源软件,是Apache的Jakarta项目组成部分之一,受到全世界Java程序员的广泛支持,开发者也可以免费使用并通过源代码来深入了解MVC的内部实现机制。Struts因受到ActionServlet配合从而实现提供了灵活易用的系统导航机制,可以有机的联系系统中的各部分,使其脉络更加清晰,提高了系统的可扩充性和可维护性。
2 SSH组合构架设计和实现
Struts简化了基于MVC的Web应用程序的开发,由于它的设计主要针对表示层,在后端逻辑层支持方面没有表示层应用效果佳,因而为了弥补它在逻辑层方面功能的不足,有必要研究改进Struts框架。Spring因自身良好的模块化可以有效的组织系统的中间层,在事物管理方面发挥着独特的优势。Hibernate因自身优势在于持久化则可以大大减少操作数据库的工作量。所以,可综合上述内容在J2EE架构的基础上整合Hibernate、Struts、Sping,使三者形式一个组合框架,充分发挥在表示层、业务层及持久层等方面的作用。
2.1 SSH组合构架设计
SSH组合构架在设计方面追求简洁Web框架,功能方面也较为齐全,以此来降低层与层之间的耦合度和提高组件的可复用性。SSH组合构架分表示层、持久层和业务层,功能和处理程序方面都有明确的规定,不能混合至其他层当中,它们之间会有一个通信接口。
首先是表示层的设计,它通用的控制组件ActionServle主要承担MVC中的Controller角色,以Strutsconfig.xml为核心,通过运用Action类来实现链接转向、业务逻辑等方面处理,其主要功能有:为显示提供一个模型、管理用户的请求、做出相应的相应及进行框架验证等。其次是业务层设计;实现业务组件的关联组装基于Struts,主要功能处理应用程度的业务逻辑和执行管理事业和程序,提升系统的可扩展性和兼容性。第三持久层设计;实现数据库交互的常用操作借助Hibernate,还可对数据库访问性能进行优化,提升编码效率。之后将数据库连接对象,提高编码效率。其主要功能有:提供数据接口支持业务逻辑层,删除,更新及存储数据库记录。
SSH组合构架设计的实现需要考虑Spring应用环境的装载,通过使用Spring的ContextLoaderPlugin来进行Struts的ActionServlet装载Spring应用程序环境,它可以在struts应用启动时被初始化且关闭时被销毁,总之,三方合成的SSH组合构架设计可以快速构建高效稳定的应用系统,实现层间的松散耦合。
3 结束语
总之,本文研究中通过在人力资源管理系统开发中结合Hibernate、Struts、Sping及J2EE的特点,实现了系统结构的较强的指导作用,以致在后续项目实施过程中表现出了良好的性能,因此,有效结合三种开源框架可充分提高系统的维护性和可扩展性,便于企业级系统更好的应用。
参考文献:
[1]龚涛.基于J2EE框架的会计信息系统的设计与实现[D].华中科技大学,2010.
[2]王春超.基于J2EE架构的SSH组合框架的研究[D].长春理工大学,2010.
[3]伍飞.基于J2EE架构的SSH框架研究及其在HRMS中的应用[D].江南大学,2010.
[4]孟凡迪.基于J2EE架构的江苏电信10000号外呼营销系统的设计与实现[D].东南大学,2009.
关键词:Zigbee;组网结构;物联网
中图分类号:TN915.65 文献标志码:A 文章编号:1674-9324(2012)04-0213-02
通信技术、嵌入式技术、信息家电的飞速发展,使智能家居网络的构建成为可能。ZigBee是一种短距离、低速率的无线网络技术,而与物联网的结合更加突出了ZigBee的技术。ZigBee一般采用IEEE802.15.4收发器与ZigBee协议栈的组合,在数千个微小的节点之间相互协调实现通信。这些节点只需要很少的能量,以接力的方式通过无线电波将数据从一个传感器传到另一个节点,所以它们的通信效率非常高。因此,ZigBee在传感器网络、智能家居、工业自动化等领域有广泛的应用。在这样的背景之下,很多公司都开始了ZigBee产业化的道路。智能家居是未来家居的发展方向,它利用先进的物联网技术将家居生活有关的各种子系统有机地结合在一起,通过统筹管理,为人们提供智能、舒适的居住环境。ZigBee技术是一种家电智能控制无线系统,是近几年发展起来的一种短距离的无线通信技术,具有短距离、低功耗、低数据率、低成本、安全可靠等优点,而物联网使用的无线技术,实现物物相连,给人们的生活带来重大改变。家庭内部地理范围小,非常适合ZigBee技术对其进行联网,而ZigBee的最初切入点也正是家庭自动化。采用ZigBee技术组建智能家居内部通信网,其网络采用网络拓扑结构,实现简单,并且具备自组网功能,新传感器节点入网无需人工配置,考虑了系统异常的情况。每一个Zigbee网络节点(FFD)还可在自己信号覆盖的范围内,和多个不承担网络信息中转任务的孤立的子节点(RFD)无线连接。ZigBee技术会因室内环境影响做出相应的改善,采用了多工作模式(如休眠模式)降低了传感器节点的功耗,延长了节点的使用寿命。智能家电控制系统实现了传感器的通用接入,组建了基于ZigBee技术的自组织网络,系统安装方便,扩展性好,具有很好的实用价值。总之,智能家电控制系统已把人们从日常琐事中解放了出来,实现了智能化家居。
一、Zigbee无线组网技术及其协议
家电智能控制无线自组网络系统采用ZigBee技术,对于一种近距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术,它符合IEEE802.15.4协议。在网络组建上,它选用的是“星状组网”方案,因为星形结构适合于实时性要求高,数据量比较大的场合。以下是家庭网络的总体结构。
IEEE 802.15.4标准是针对于低速无线个人区域网,把低能量消耗、低速率传输、低成本作为重点目标,旨在为个人或者家庭范围内不同设备之间低速互连提供统一的标准。基于ZigBee的无线传感器网络具有备成本低、传输速率低、设备体积小、省电、网络自愈等特点,ZigBee可以广泛应用在家庭自动化。
二、Zigbee技术家电智能硬件设计
在硬件设计上,家电智能控制系统的硬件设计,主要有射频数据模块、微控制器和设备组成。微处理器选用Freescale公司推出的超低功耗MC9S08GT60,无线收发器选用Freescale公司推出的一种短距离、低功耗,工作在2.4Ghz的MC13192。
三、Zigbee技术家电智能软件设计
在软件设计上,家电智能系统的软件设计分为三层:系统平台层、协议层和应用层。系统平台层通过API应用程序接口来给协议层提供服务;协议层则实现了基于802.15.4的物理层和链路层以及基于ZigBee的网络层协议;应用层通过API来调用协议层提供的服务,实现网络的管理和数据传输等任务。
Zigbee技术的协议层结构简单,不同于蓝牙和其他网络结构,这些网络结构通常为7层,而Zigbee技术仅为3层。在Zigbee技术中,PHY层和MAC层采用lEEE802.15.4协议标准,其中,PHY提供了两种类型的服务:通过物理层管理实体接口(PLME)对PHY层数据和PHY层管理提供服务。
四、结束语
通过项目组全体成员和指导老师的努力,经过了一年左右的时间,我们终于完成了本次项目的论文。从开始申请这个项目时的茫然到这个项目论文文章的完成,每一个阶段对于我们来说都是一次新的尝试和挑战。在这段时间里,我们学到了很多知识也感受了很多,因为这不是一个人独立完成的而是以小组形式,分工合作来完成的。明确目标很重要,小组成员之间的相互协调更是不可或缺,这些都体现出了团队合作的重要性。虽然本次项目不是很完善,还有很多不足之处,但是小组全体成员和指导老师的努力大家是有目共睹的,这些对于我们来说就是莫大的欣慰和成就感,我们相信其中的酸甜苦辣终究会化成美味的甘泉。这次论文的经历让我们受益匪浅,从中我们知道论文是要用心去写,是真正学习和研究的过程,没有学习就不可能有研究能力,没有研究就不会有所突破。希望这次的经历能让我们大家在以后的学习和工作中更加努力,激励着我们继续进步。
参考文献:
[1]李文仲.CC1110/CC2510无线单片机和无线自组织网络入门与世界[M].北京:北京航空航天大学出版社,2008.
[2]
关键词ZigBee协议;网络;IEEE802.15.4;路由算法;Tree路由;Z-AODV路由
1概述
ZigBee技术是由英国Invensys公司、日本三菱电气公司、美国摩托罗拉公司以及荷兰飞利浦等公司在2002年10月共同提出设计研究开发的具有低成本、体积小、能量消耗小和传输速率低的无线通信技术。
2000年12月,IEEE802无线个域网(WPAN,WirelessPersonalAreaNetwork)小组成立,致力于WPAN无线传输协议的建立。2003年12月,IEEE正式了该技术物理层和MAC层所采用的标准协议,即IEEE802.15.4协议标准,作为ZigBee技术的网络层和媒体接入层的标准协议。2004年12月,ZigBee联盟在IEEE802.15.4定义的物理层(PHY)和媒体接入层(MAC)的基础上定义了网络层和应用层,正式了基于IEEE802.15.4的ZigBee标准协议。
2网络层的研究
ZigBee技术的体系结构主要由物理层(PHY)、媒体接入层(MAC)、网络/安全层以及应用框架层组成,各层之间的分布如图1所示。图1ZigBee技术协议组成PHY层的特征是启动和关闭无线收发器、能量检测、链路质量、信道选择、清除信道评估(CCA)以及通过物理媒体对数据包进行发送和接收。MAC层可以实现信标管理、信道接入、时隙管理、发送确认帧、发送连接及断开连接请求,还为应用合适的安全机制提供一些方法。它包含具有时间同步信标的可选超帧结构,采用免碰撞的载波侦听多址访问(CSMA-CA)。安全层主要实现密钥管理、存取等功能。网络层主要用于ZigBee的LR-WPAN网的组网连接、数据管理等。应用框架层主要负责向用户提供简单的应用软件接口(API),包括应用子层支持APS(ApplicationSub-layerSupport)、ZigBee设备对象ZDO(ZigBeeDeviceObject)等,实现应用层对设备的管理,为ZigBee技术的实际应用提供一些应用框架模型等,以便对ZigBee技术的开发应用。
网络层的定义包括网络拓扑、网络建立、网络维护、路由及路由的维护。
2.1ZigBee的网络拓扑结构
ZigBee定义了三种拓扑结构:星型拓扑结构(Star),主要为一个节点与多个节点的简单通信设计;树型拓扑结构(Tree),使用分等级的树型路由机制;网格型拓扑结构(Mesh),将Z-AODV和分等级的树型(Tree)路由相结合的混合路由方法。三种拓扑结构如图2所示。图2网络的三种拓扑结构ZigBee定义了三种设备类型:ZigBee协调器(ZigBeeCoordinator,ZC),用于初始化网络信息,每个网络只有一个ZC;ZigBee路由器(ZigBeeRouter,ZR),它起监视或控制作用,但它也是用跳频方式传递信息的路由器或中继器;ZigBee终端设备(ZigBeeEndDevice,ZED),它只有监视或控制功能,不能做路由或中继之用。
在IEEE标准中,ZED被称为精简功能设备(Reduced-FunctionDevice,RFD),ZC和ZR被称作全功能设备(Full-FunctionDevice,FFD)。
2.2网络层路由算法的分析
网络层支持Tree、Z-AODV、Tree+Z-AODV等多种路由算法。
2.2.1AODV路由协议
DSDV(destination-sequenceddistance-vector)协议是一个基于传统的BellmanFord路由机制的表驱动算法,被认为是最早的无线自组网络路由协议。DSDV在传统的distance-vector算法的基础上采用了序列号机制,用于区分路由的新旧程度,防止distance-vector算法可能产生的路由环路。DSDV采用时间驱动和事件驱动技术控制路由表的传送,即每个移动节点在本地都保留一张路由表,其中包括所有有效目的节点、路由跳数、目的节点路由序列号等信息,目的节点路由序列号用于区别有效和过期的路由信息以避免环路的产生。
DSR(dynamicsourcerouting)协议是最早采用按需路由思想的路由协议,包括路由发现和维护两个过程。它的主要特点是使用
了源路由机制进行数据包转发。
AODV(ad-hocon-demanddistancevector)协议在DSDV协议的逐跳路由、序列号、定期广播机制基础上,加入了DSR的按需路由发现和维护机制。
AODV在每个中间节点隐式保存了路由请求和应答的结果,并利用扩展环搜索(expandingringresearch)的办法限制搜索发现目的节点的范围。AODV支持组播功能,支持QoS,而且AODV使用IP地址,便于同Internet连接。但AODV基于双向信道的假设,路由应答数据包直接沿着路由请求的反方向回溯到源节点,因而不支持单向信道。与DSDV保存完整的路由表不同的是,AODV通过建立按需路由来减少路由广播的次数,这是AODV对DSDV的重要改进。与DSR相比,AODV的好处在于源路由并不需要包括在每一个数据包中,这样会降低路由协议的开销。AODV是一个纯粹的按需路由协议,那些不在路径内的节点不保存路由信息,也不参与路由表的交换。
2.2.2Z-AODV能量平衡路由
在ZigBee路由规范中没有过多的考虑能量控制,但是对于adhoc无线网络来说,能量控制非常重要。因此提出了能量控制策略来改进ZigBee路由。它将使节点避免用尽所有能量以至于过早的失去作用。当节点想要选择路径时,它将考虑路径上的节点的剩余能量。
Z-AODV算法是针对AODV(Adhoc按需距离矢量路由协议)算法的改进,AODV是基于序列号的路由,它总是选择最新的路由。Z-AODV是基于路径的能量消耗的路由,考虑到节能、应用方便性等因素,简化了AODV的一些特点,但仍保持AODV的原始功能。
在路由选择和路由维护时,ZigBee的路由算法使用了路由成本的度量方法来比较路由的好坏。假定一个长度为L的路由P,则它的路由成本为:为:其中,表示从节点Di到节点Di+1的链路成本。对于链路l,链路成本可按照下面的表达式计算:其中,pl为链路l中发送数据包的概率。
在ZigBee规范中没有涉及到pl的具体计算方法。pl可通过实际计算收到的信标和数据帧来进行估计,即通过观察帧的响应序列号来检测丢失的帧,这就通常被认为最准确地测量接收概率的方法。但是,对于所有的方法来说,最直接和有效的方法就是基于IEEE802.15.4的MAC层和PHY层所提供的每一帧的LQI通过平均所计算的值。即使使用其他方法,最初的成本估计值也是基于平均的LQI值。可以根据驱动函数表来映射平均LQI值与C﹛l﹜值的关系(见表1)。表1LQI值与链路成本的关系能量平衡运算要考虑许多因素来选择路由。这些因素包括临近节点的能量、节点自身的能量和链路质量。剩余能量Elocal可以在每一个ZigBee帧中的保留域发送,这样每个节点都能得到它的邻居节点最新的能量分配﹛E1,E2…En﹜。
2.2.3树型(Tree)路由
树型路由机制包括配置树型地址和树型地址的路由。当协调器建立一个新的网络,它将给自己分配网络地址0,网络深度Depth0=0。如果节点(i)想要加入网络,并且与节点(k)连接,那么节点(k)将称为节点(i)的父节点。根据自身的地址Ak和网络深度Depthk,节点(k)将为节点(i)分配网
络地址Ai和网络深度Depthi=Depthk+1。网络深度表示仅仅采用父子关系的网络中,一个传送帧传送到ZigBee协调器所传递的最小跳数。ZigBee协调器自身深度为0,而它的子设备深度为1。
图3为ZigBee树型结构。参数nwkMaxChildren(Cm)表示路由器或协调器在网络中允许拥有子设备数量的最大值。参数nwkMaxRouters(Rm)表示子节点中路由器的最大个数,而剩下的设备数为终端设备数。图3ZigBee树型结构一个新的RFD节点(i),它没有路由能力,它与协调器连接作为协调器的第n个子节点。根据它的深度d,父节点(k)将为子节点(i)分配网络地址:
Ai=Ak+Cskip(d)·Rm+n其中1≤n≤(Cm-Rm)
如果是新的子节点FFD,它有路由能力,父节点(k)将给它分配网络地址:
Ai=Ak+1+Cskip(d)·(n-1)
其中,
否则,参数nwkMaxDepth(Lm)表示网络的最大深度。
假设一个路由器向网络地址为D的目的地址发送数据包,路由器的网络地址为A,网络深度为d。路由器将首先通过表达式:
A<D<A+Cskip(d-1)
判断该目的节点是否为自己的子节点。如果目的节点是自己的子节点,则下一跳节点的地址为:
否则,下一跳节点是该路由器的父节点。
2.2.4Tree+Z-AODV路由算法的分析
根据上文对Tree和Z-AODV两种路由算法的分析,在我们的ZigBee网络中将二者结合,使用Z-AODV和分等级的树型(Tree)路由相结合的混合路由方法,构成网格型拓扑结构(Mesh)的网络。
具体实现方法是在数据帧帧头的DiscoverRouter域指定路由。该域可以是如下三种值:
⑴抑制路由发现:它使用已经存在的路由表。当路由表中没有相应的目的节点的地址时,参数nwkUseTreeRouting的值为TRUE,网络将使用树型路由。
⑵使能路由发现:如果在路由表中有路由地址,将按照该路由表进行路由。否则,路由器将使用Z-AODV路由算法初始路由发现。如果该节点没有初始路由发现的能力,它将使用树型路由。
⑶强制路由发现:不管是否有相应的路由表,节点都强制使用Z-AODV路由算法初始化路由发现。
在ZigBee规范中提出了将AODV和Tree路由混合的路由机制。但在ZigBee规范中并没有说明如何配置参数来选择路由策略,没有使两者平衡的设计方法。根据上面Tree路由和Z-AODV的分析,我们提出了基于数据特性的路由方法,即在两种路由算法构成的网格型网络中,根据节点间传输数据特性的不同,通过设置数据帧帧头的DiscoverRouter域,选择不同的路由方法。对于捆绑型的连续数据,ZigBee应用层应选择使用使能路由的方法。即采用Z-AODV路由首先建立路由发现,然后选择跳数少的路由,成为最佳路径;对于爆发型的不连续数据则使用抑制路由发现的方法,即在路由表中没有响应的目的节点的地址时,采用Tree路由方法。因为这种路由不需要建立路由表,因此对传输的数据响应较快。
图4为节点接收到上层或其他节点发送的数据包时,网络层处理程序的流程图。图4路由算法流程图2.3总结
Tree路由是一种由网络协调器展开生成树状网络的拓扑结构,适合于节点静止或者移动较少的场合,属于静态路由,不需要存储路由表。树型路由对传输数据包的响应较快,因为树型路由不需要建立路由表。其缺点是所选择的路由并非是最佳的路由,不能获得最小路由。树型路由适用于爆发型的数据传输。
Z-AODV需要首先建立路由发现,然后选择跳数少的路由,成为最佳路径。Z-AODV适用于连续的数据传输。
在ZigBee规范中,设计了Z-AODV和Tree路由混合的路由策略,这里我们提出了基于数据服务的ZigBee路由选择策略。根据上述分析可以看出,这种路由选择机制在网络性能和低功耗方面有明显的优势;并且根据能量控制机制,可以有效地平衡节点能量,避免节点耗尽能量而过早地失去作用。
3ZigBee模块硬件设计
模块集无线收发器、微处理器、存储器和用户API等软硬件于一体,可实现1.0版ZigBee协议栈的功能。图5ZigBee模块框图图5是模块的硬件框图,射频芯片采用Chipcon公司生产的符合IEEE802.15.4标准的模块CC2420;控制射频芯片的微处理器可以根据需要选择Atmel公司的AVR系列单片机或者SiliconLabs公司的8051内核单片机。单片机与射频芯片之间通过SPI通信。单片机与外部设备之间通过串口通信,单片机自带若干ADC或者温度传感器,可以实现简单的模数转换或者温度监控。为了方便代码移植到不同的硬件平台,模块固件采用标准C语言编写代码实现。
参考文献
[1]蒋挺,赵成林.紫蜂技术及其应用[M].北京:北京邮电大学出版社,2006
[2]ZigBeeSpecification.ZigBeeAlliance[R],2006
[3]IEEE.IEEEstandards8021.15.4[R];2003
关键词:智慧教室;灯光;ZigBee;CC2430
中图分类号:TP399 文献标识码:A 文章编号:2095-1302(2014)10-00-03
0 引 言
智慧教室的灯光控制是物联网的一项重要应用。因此,从系统硬件、软件和协议数据格式上,对智慧教室的灯光控制系统进行全面的设计,对于物联网的应用推广和节能减排,都具有重要的应用示范价值与实用性意义。
1 总体架构
智慧教室灯光控制系统的基本架构如图1所示。该系统由信息感测节点(ZigBee无线传感器节点)、智能处理平台以及继电器节点组成。系统中的三种功能节点采用ZigBee协议构成无线传感器网络(WSN)。智能处理平台在WSN中担任ZigBee协调器节点,信息感测节点及继电器节点担任ZigBee终端节点。
图1 智慧教室灯光控制系统架构
信息感测节点主要通过传感器技术实现对环境信息的感知及采集,如光照强度、人体感应数据,并通过ZigBee协议将采集结果传至信息处理平台。
信息处理平台中,ZigBee协调器负责接收感知数据,并将接收到的数据通过RS232串口传送到应用开发平台,应用开发平台对收到的采集结果进行分析、决策后,将控制命令从RS232发往ZigBee协调器,ZigBee协调器通过ZigBee无线通信协议将控制命令发送到继电器。
继电器节点通过ZigBee协议接收ZigBee协调器发来的控制命令,执行开或关灯的指令。
ZigBee无线通信协议不需要独立的硬件设备,而是以无线通信模块的形式,在信息感测节点、信息处理平台和继电器节点中均需要实现。
2 硬件设计
2.1 信息感测节点
信息感测节点硬件上由传感器、微处理器、无线通信模块、电池组成。图2所示是信息感测节点的组成图。在设计上,为了降低成本,并提高硬件的可扩展性和灵活性,信息感测节点的微处理器及无线通信模块可采用选用相同的ZB2430底板实现,其核心芯片是TI公司的CC2430,ZB2430电路原理图如图3所示。传感器选用插件式的硬件设计,通过ZB2430的I/O扩展口与ZB2430相连,信息感测节点只在传感器插件上不同。根据智慧教室灯光控制的实际需要,选用了光照、人体两类传感器,共两类信息感测节点。
图2 信息感测节点组成
2.2 信息处理平台硬件
信息处理平台硬件上采用DMATEK的DMA210XP整合平台,其集成了应用开发平台和ZigBee协调器端功能,ZigBee协调器端接收从感测节点采集到的数据,并通过串口传输到应用开放平台,由其对感测数据做进一步的分析、处理和显示,其组成图如图3所示。
ZigBee协调器端采用DAMTEK的ZB2430-03实现, ZB2430-03的硬件组成与信息感测节点的ZB2430完全一致,只在软件上不同,通过在软件上定义ZB2430为从模块(终端)、ZB2430-03为主模块(协调器),实现信息在两者间通信。
图3 信息处理平台组成
应用开发平台采用具有先进ARM Cortex A8核心的Samsung S5PV210处理器,该处理器采用ARM Cortex A8核心,DMA210XP应用平台结合ZigBee 无线感测,实现智慧教室灯光控制的应用 。
2.3 继电器节点硬件
继电器节点硬件设计与信息感测节点硬件类似,但没有传感器模块。
3 软件设计
3.1 信息感测节点软件
信息感测节点的软件可采用嵌入式系统的开发方式与流程,开发工具为IAR。本系统共涉及光照、人体两类传感器,这两类传感器获取到的数据格式略有不同。具体如下:
相同部分:
#define MAX_SEND_BUF_LEN 128 //定义发送缓冲区长度上限
static uint8 pTxData[MAX_SEND_BUF_LEN]; //定义发送缓冲区的大小
/*填充发送缓冲区,对5类传感器均相同,开始*/
pTxData[0] = 0xFF;
pTxData[1] = 0xFD;
pTxData[3] = 4;
pTxData[8] = 0;
pTxData[9] = 0;
pTxData[10] = CheckSum(pTxData,10); //校验和
/*填充发送缓冲区,对2类传感器均相同,结束*/
不同部分有光电传感器的数据获取与处理:
unsigned intADC_GetValue(void)// 获取传感器采样数据
{
unsigned intadcValue = 0;
adcValue = adcSampleSingle(ADC_REF_AVDD, ADC_12_BIT, HAL_BOARD_IO_ADC_CH);
return adcValue;
}
/*对采样数据的转换,开始*/
ADC_VALUE = ADC_GetValue()*3.3/16384/2;
pTxData[4] = (uint8)ADC_VALUE%10 + 48;
pTxData[5] = (uint8)(ADC_VALUE*10)%10 + 48;
/*对采样数据的转换,结束*/
pTxData[6] = 0x00; //填充发送缓冲区
pTxData[7] = 0x00; //填充发送缓冲区
人体传感器的数据处理:
pTxData[4] = HAL_INT_VAL();
pTxData[5] = 0x00;
pTxData[6] = 0x00;
pTxData[7] = 0x00;
信息感测节点应用程序对传感器测量值的获取、转换、缓存及无线发送功能可采用如图4所示的程序流程来实现。
图4 信息感测节点数据处理流程图
3.2 信息处理平台软件
信息处理平台的ZigBee协调器模块通过ZigBee点对点无线通信协议,负责接收和汇聚各传感器采集到的感测信息,并将接收到感测数据通过RS 232串口传输到应用开发平台;同时,负责从RS 232串口接收从应用开发平台下达的控制命令,并通过ZigBee无线通信协议将控制命令发送到ZigBee继电器节点(电灯)。具体程序流程如图5所示。
图5 ZigBee协调器端程序流程图
3.3 继电器节点软件设计
在本系统中,用ZigBee继电器模拟教室电灯,ZigBee继电器通过ZigBee点对点无线通信协议接收ZigBee协调器发来的控制命令,实现对各继电器(电灯)的打开及关闭控制。其ZigBee继电器程序流程如图6所示。
图6 继电器节点程序流程图
4 ZigBee点对点通信参数及数据格式设计
4.1 ZigBee点对点通信参数设计
对Zigbee点对点通信参数的设置,有RF_CHANNEL、PAN_ID、SENSOR_ADDR、COORD_ADDR四项。ZigBee无线传感器节点模块、ZigBee继电器模块、ZigBee协调器模块的RF_CHANNEL、PAN_ID设置一致;无线传感器节点模块的SENSOR_ADDR为无线传感器节点地址;无线传感器节点模块的COORD_ADDR为发送地址,要与协调器模块的COORD_ADDR设置一致;继电器模块的RELAY_ADDR为继电器地址,要与协调器模块的RELAY_ADDR设置一致。本设计采用的设置如下:
#define RF_CHANNEL 22 // 频道 11~26
#define PAN_ID 0x1122 //网络id
#define COORD_ADDR 0x5566 //协调器地址
#define RELAY_ADDR 0x7788 //继电器地址
4.2 ZigBee无线通信数据格式设计
4.2.1 协调器接收格式
本设计的发送端传感器格式(byte1-byte10)如图7所示。
Head Type Len Data Res Chk
0xFA 0xFB Type 0x04 D1 D 2 D 3 D 4 保留 校验和
图7 发送端传感器格式
图7中,byte1,byte2:传感器端数据发送的固定头,固定为0xFA,0xFB;byte3:数据类型的标识,例0x01人体,0x02光照;byte4:为传感数据长度(统一为0x04);byte5-byte8:传感器采集到的具体数据;byte9:保留;byte10:byte1-byte9校验值(相加取低8位)。
4.2.2 协调器发送数据格式
本设计的接收端为电灯(继电器),格式(byte1-byte10)如图8所示。
Head Number Len Res Chk
0xFB 0xFA Des 0x04 保留 保留 保留 保留 校验和
图8 接收端格式(byte1-byte10)图
图8中,byte1,byte2:Coordinator端数据发送控制继电器命令的固定头0xFA,0xFB;byte3:Coordibator端数据发送对象,是继电器序号;0x01:发送命令给继电器1端,表示电灯1;0x02:发送命令给继电器2端,表示电灯2;0x03:发送命令给继电器3端,表示电灯3;0x04:发送命令给继电器4端,表示电灯4,以此类推;byte4:命令长度,固定为0x04;byte5:发送给继电器的命令内容(0x02为关闭,0x01为开启);byte6-byte9:保留;byte10:byte1-byte9校验值(相加取低8位)。
4.2.3 电灯(继电器)应答数据格式
本设计的接收端,即协调器的格式(byte1-byte9)如图9所示。
Head Number Len 应答码 Chk
0xFB 0xFA Des 0x04 R1 R2 R3 R4 校验和
图9 协调器的格式图
图9中,byte1-byte4:表示收到的数据原值返回;byte5-byte8:应答码,固定为0xAA 0xBB 0xCC 0xDD;byte9:是byte1-byte8的校验值(相加取低8位)。
5 结 语
智慧教室的灯光控制是物联网的一项重要应用,本文从硬件、软件和协议数据格式上对智慧教室的灯光控制系统进行了较为全面的设计,对物联网的应用推广、节能减排等方面都具有重要的应用价值与实用性,只需在软件上和传感器插件上做少量改动,本系统的应用还可进一步推广,如应用到仓储监控、智慧家居等方面,具有很强的可扩展性。
参考文献
[1]杨子威. 基于ZigBee技术的LED路灯节能控制系统的设计[J].现代电子技术,2014,37(8): 40-45 .
[2]白成林,马.基于物联网技术的智能路灯监控系统[J]. 电子技术应用,2014,40(3): 82-85.
[3]孔令荣,王昊.基于无线传感网络的智能路灯照明系统分析[J].电子科技,2013,26(11): 108-110,113.