1、 摘 要随着无线通信技术,微芯片制造等技术的进步,无线作为一种全新的信息获取和处理技术,凭借其自组织,无需布线、低功耗、低成本、智能性传感器网络强等特点,已逐渐渗透到农业领域。设计一个低功耗的无线网络作物种植环境监测系统具有重要的现实意义,可以有效降低人力消耗对农田环境的影响,获取精确的作物环境信息,使得农业逐渐地从以人力为中心、依赖于孤立机械的生产模式转向以信息和软件为中心的生产模式。本设计是一个以ZigBee射频芯片CC2530芯片为控制器,基于ZigBee无线网络协议的橘园种植环境信息实时监测系统,实现对橘园环境信息的定时采集,包括温度、湿度、光照度、土壤水分,将采集的信息在上位机软件中
2、进行显示和存储。本系统设计包括无线传感网络设计和上位机设计两大部分,无线传感网络设计主要以CC2530无线模块为核心,并提供各种必要的接口和模块,基于ZigBee2007 Z-Stack协议栈实现整个无线传感网络的建立;上位机设计基于C#语言,利用串口控件、图表控件、数据库操作,实现传感器数据实时显示、曲线绘制、历史查询并提供网络拓扑结构图显示。该设计目的在于克服现有橘园环境监测系统和方法存在的监测困难、监测范围有限的问题,提供一种设计合理、成本低、布网方便并且使用简单的适合于橘园大范围实时监测的方法,有利于实现柑橘园管理的规范化和自动化。使用普通CC2530模块在室外进行系统组网通信测试,结
3、果表明,发射功率为0dBm,距离在60m内,数据发送的成功率为93%以上,采样数据变化稳定,与实际环境相符;采集节点休眠时电流可达到0.24mA,在功耗设计上还需进一步完善。总体而言,系统运行情况良好,工作性能较为稳定,具有一定的可靠性。关键词:ZigBee Z-Stack 协议栈 CC2530 橘园环境 监测 The Wireless Orange Groves Monitoring System Based On CC2530Lin Tao(College of Engineering, South China Agricultural University, Guangzhou 5106
4、42, China)Abstract: The technologies of wireless network information and computer application have developed quickly in recent years. Its important to apply these technologies on the field of agriculture. To design a wireless monitoring system about the environment quality of planting will have real
5、istic sense,it can reduce human consumption impacts on the agricultural environment and obtain accurate crop environmental information, making the agricultural mode of production from human-centered, mechanized to informational and software-oriented.The design is a wireless orange groves monitoring
6、system which is based on the WSN protocol of ZigBee , using the CC2530 as its MCU and achieving the goals of obtaining the in formations of the orange groves environment including, temperature, humidity, illumination and soil moisture at regular time and saving the data in the database. The system i
7、ncludes two parts: the building of the wireless network by ZigBee and the design of host-computer software for monitoring system. The building of the wireless network is based on the CC2530 MCU, and provides different interfaces and models, using the ZigBee2007 Protocol stack to build the WSN. The h
8、ost-computer software is based on the C# language, using the Serial Com Control, Chart Control, Database Control to obtain the sensor data, draw curves, look up in a reference source and provide the network topological graph. The design aims to solve the problem that monitoring difficult and limited
9、 and provide acceptable, simple and convenience monitoring system for managing the orange groves standardized and automation.Carrying on the system network correspondence test outside by using the CC2530 module. It shows that when the Transmission power is 0dBm and communication distance is within 6
10、0m, the success rate of transmission is over 93%,the sampling data changes stability which is match with the actual environment. When the End-Device is on the sleep state, its current is about 0.24mA , the design of low power loss still need to be improved. Over all ,the system runs well, performanc
11、e stability.Key words: ZigBee Z-Stack Protocol CC2530 Orange environment Monitoring目 录1 前言11.1 课题的研究背景11.2 ZigBee技术简介12 系统方案设计23 基于橘园环境下的2.4G信道测试33.1 无线传感器网络信道模型33.2 橘园实验测试图表43.3 实验数据处理73.4 实验结论74 ZigBee协议栈84.1 Z-Stack简介94.2 Z-Stack工程设置104.3 Z-Stack操作系统104.4 Z-Stack任务事件的添加124.5 Z-Stack任务事件的触发145 Zig
12、Bee网络节点设计145.1 CC2530模块155.2 终端采集节点设计165.2.1 终端节点硬件设计175.2.1.1 TL431稳压管及2.5V参考电压源175.2.1.2 外部传感器接口及供电控制电路185.2.2 终端节点软件设计185.2.2.1 应用数据协议设计及数据的发送195.2.2.2 控制指令设计及数据的接收245.3 路由节点设计285.3.1 基本路由算法285.3.2 路由参数修改285.3.2.1 网络拓扑参数修改295.3.2.2 发射功率修改305.3.2.3 路由深度、网络容量修改315.4 协调器节点设计315.4.1 协调器硬件设计315.4.2 协调
13、器软件运行流程325.5 ZigBee网络拓扑设计335.6 ZigBee无线网络的建立346 上位机监测软件设计376.1 串口通信实现386.1.1 SerialPort类属性方法396.1.2 SerialPort类实现串口通信396.2 实时数据显示416.3 网络拓扑图426.3.1 数据库访问426.3.2 树的遍历436.3.3 Treeview控件显示拓扑图446.4 数据曲线图446.4.1 Chart 控件446.4.2 Chart控件实现数据绑定456.5 历史数据查询457 实验测试数据477.1 系统通信的稳定性测试477.2 节点功耗测试508 结论与展望51参 考
14、 文 献53附录A Z-Stack应用层事件主要代码55附录B 上位机主要事件处理函数60致 谢67毕业设计成绩评定表II1 前言1.1 课题的研究背景无线传感器网络(wireless Sensor Networks,WSN)是由一组随机分布的,集传感器、数据处理单元和通信模块于一体的微型传感器,以自组织方式构成的无线网络,其目的是协作地感知、采集和处理网络覆盖区域中被监测对象的信息,并传送给信息获取者(蒋 勋,等,2007)。随着无线通信技术,微芯片制造等技术的进步,无线传感器网络作为一种全新的信息获取和处理技术,凭借其自组织,无需布线、低功耗、低成本、智能性强等特点,逐步地取代传统的静态固
15、定拓扑网络(安振华,等,2010)。以至无线传感器网络这个新生的技术被冠以各种头衔,被认为是将对21世纪产生巨大影响的高新技术之一。WSN技术综合了传感器技术、嵌入式计算技术、网络技术、分布式信息处理技术和通信技术,在军事、工业、医疗、交通、环保、农业等诸多方面有着巨大的应用价值(史兵,等2011;高峰,等,2009;Grgic K, et al,2012;LI Zhen, et al,2011),正受到各技术和军事强国越来越多的关注,被美国技术评论杂志选为未来10种改变世界的新兴技术的第1位。目前,无线传感器网络在农业方面的应用集中在对果园或田间作物生长参数和环境因子的监测,部署的传感器节点
16、通过无线的方式将果园或田间中探测的信息传送给服务器(Ruiz-Garcia Luis, et al,2009)。我国农业具有地域分散、对象多样、生物自身变异大、环境因子不确定等特点,也是受环境影响最明显的领域,因此对环境与作物信息的监测显得十分重要。现有的数据采集系统大多是采用人工的或预先布线的有线采集方式。人工方式加大了工作量且难以保证数据的实时性和有效性;采用有线数据采集的监测系统受地理位置、物理线路和复杂环境因素的影响具有明显的局限性(樊志平,等,2010;彭孝东,等,2011)。根据农作物具有偏远、分散、易变、多样等特点,将无线传感网络技术应用在相对发展较慢的农业,设计一个低功耗的无线
17、网络作物种植环境监测系统具有现实意义。目前在无线局域网技术方面,比较流行的有 802. 11 标准(WiFi) 、HomeRF标准(家庭网络) 、蓝牙标准(Bluetooth)及ZigBee标准。而满足低功耗、低成本等要求的只有 ZigBee。1.2 ZigBee技术简介ZigBee技术作为一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据传输以及典型的有周期性数据、间歇性数据和低反应时间数据传输的应用。它依据IEEE 802. 15.4标准,可协调数千个微小的传感器间的相互通信,可工作在2.4GHz(全球流行)、86
18、8 MHz(欧洲流行)和915 MHz(美国流行)3个频段上,分别具有最高250kbit/s、20kbit/s和40kbit/s的传输速率,它的传输距离在10-75m的范围内,但可以继续增加。IEEE 802.15.4 协议与其他无线网络相比,突出的优点是:组网能力强、适应面广、可靠性高和节能性好,这使得ZigBee和无线传感器网络能够完美的结合在一起。ZigBee技术的目标就是针对工业,家庭自动化,遥测遥控,汽车自动化、农业自动化和医疗护理等(高强,等,2008;罗华,等,2010;Yu Chengbo, et al,2009),例如灯光自动化控制,传感器的无线数据采集和监控,油田,电力,矿
19、山和物流管理等应用领域(Ruiz-Garcia Luis, et al, 2009;Corral P, et al,2012)。目前,ZigBee已逐渐成为了无线传感器网络的首选通信协议。2 系统方案设计本系统主要由上位机监控单元和无线传感网络单元两部分组成,两部分之间通过RS232进行数据通信。如图1所示。上位机监控单元由上位机监控软件通过串口与无线传感网络中的协调器进行通信,获得网络中采集节点的传感器信息,并将数据进行处理,从而实现各采集节点的实时数据、历史记录、变化曲线的显示。无线传感网络单元是基于无线模块建立的ZigBee网络组成,采用ZigBee2007协议栈。运行ZigBee协议栈
20、的各节点之间,只要他们使用相同的信道和网络PANID,且彼此间在网络模块的通信范围内,通过彼此自动寻找,很快就可以形成一个互联互通的ZigBee网络,实现各节点间的数据通信。目前市场上的ZigBee射频收发“芯片”实际上只是一个符合物理层标准的芯片,它只负责调制解调无线通讯信号,所以必须结合单片机才能完成对数据的接收发送和协议的实现。而单芯片也只是把射频部分和单片机部分集成在了一起,不需要额外的一个单片机,它的好处是节约成本,简化设计电路,但这种单芯片也并没有包含ZigBee协议在里面。比较常用的ZigBee单芯片主要有CC2420、CC2430、CC2520、CC2530等。ZigBee模块
21、是已经包含了所有外围电路已经经过了厂家的优化设计,和老化测试,有一定的质量保证的产品。优秀可靠的ZigBee应用“模块”具有在硬件上设计紧凑,体积小,贴片式焊盘设计,可以内置Chip或外置SMA天线,通讯距离从100米到1200米不等,还包含了ADC,DAC,比较器,多个IO,I2C等接口和用户的产品相对接。ZigBee模块又有集成ZigBee协议栈和非集成ZigBee协议栈两种,本系统设计中数据网关使用已集成ZigBee协议栈(可通过串口AT指令集进行控制)的CC2530模块,按照设置的网络参数,和网络中的节点进行收发通讯,模块会进行数据校验,如数据无误即通过串口送出,使其具有一定的稳定性;
22、而路由节点和终端数据采集节点使用的是非集成ZigBee协议栈的CC2530模块,可根据用户的实际需求在ZigBee协议栈中制定自己的上层协议,添加底层传感器驱动,使节点的采集更加方便灵活。图1 系统结构图3 基于橘园环境下的2.4G信道测试通过无线信道传输的信号波形会受到多种物理信号的影响,从而使无线接收端接收的信号出现失真, 最终导致整个网络数据出错,影响通信。因此分析现场无线传感器网络的信道模型对于提高无线传感器网络的通信质量,保证网络中数据传输畅通具有重要的意义。3.1 无线传感器网络信道模型 Friis自由空间方程给出了接收节点距发射节点距离处天线的接收功率的表达式表示为(张先毅,等,
23、2008): ,其中、为收、发功率,是收发节点之间的函数;、为收发天线的增益;为收发节点之间的距离;称为远场距离;系统损耗为与传播无关的系统损耗因子,表示系统硬件中无损耗;为波长。无线传感器网络室外环境信道模型与传统的无线通信信道模型是不同的,在复杂环境下无线传感器网络的通信传播受到一些特定因素(如:遮挡物的布局、遮挡物的吸收、遮挡物的种类等)的严重影响,因此不能将自由空间信道模型简单的应用于无线传感器网络复杂室外的信道模型,根据自由空间无线信道模型公式,对于非自由空间这一模型具有一般性: 式中,n是信道衰落参数,其取值范围为2.0到5.0之间,2.0对应自由空间信道损失,5.0对应建筑物阻挡
24、的传播阴影区。经研究表明,室外的无线传感器网络信道模型服从距离功率定理,即:,为接收端对发射端所作得零值校对值, ,其中是硬件自身损耗,是节点和发射天线和接收天线不完全匹配所带来的损耗,发射天线的增益,接收天线的增益,为接收端接收到的信号强度,表示零均值,标准方差为的高斯正态随机变量,单位是。自无线传感器网络出现后许多研究人员都致力于无线传感器网络的环境信道模型的分析研究,n、两个参数的研究一直是科研人员研究的重点。3.2 橘园实验测试图表在橘园环境下做了2.4G的信道测试,在不同距离、不同高度、使用不同天线类型测得信道衰减数据如表1所示。表1 橘园环境下不同距离不同高度段获得的信道衰减数据高
25、度/m距离/m天线类型遮挡树木/颗信号衰减/dB1.50距离校准定向0-35.61.510定向1-80.861.520定向4-86.91.530定向4-89.691.540定向3-94.021.550定向3-97.72续表1高度/m距离/m天线类型遮挡树木/颗信号衰减/dB0.50距离校准定向0-37.060.510定向0-65.280.520定向0-75.030.530定向0-84.750.540定向0-86.810.550定向0-89.80.560定向2-95.91.510定向0-61.291.520定向0-71.141.530定向0-80.311.540定向0-81.481.550定向0
26、-85.161.560定向0-87.51.50距离校准全向(增益9dB)0-38.811.510全向(增益9dB)1-83.071.520全向(增益9dB)4-90.371.530全向(增益9dB)4-92.11.540全向(增益9dB)3-96.171.550全向(增益9dB)3-98.65根据以上表格数据,可知非视距(有物体遮挡)、天线类型、节点放置高度对信号衰减的都具有一定程度的影响,使用控制变量法,分别针对非视距(有物体遮挡)、天线类型、节点放置高度,绘制出这三个因素分别对应得信号衰减的变化图。非视距视距图2 其它条件相同,视距和非视距信号衰减变化图全向天线定向天线图3 其它条件相同,
27、不同天线对信号衰减变化图高度1.5m高度0.5m图4 其它条件相同,不同高度对信号衰减变化图3.3 实验数据处理由取对数可得,为接收端对发射端所作得零值校对值,为接收端接收到的信号强度,零值校对值把节点上的硬件损耗和不完全布匹损耗都考虑在内,即其中是硬件自身损耗,是节点和发射天线和接收天线不完全匹配所带来的损耗,发射天线的增益,接收天线的增益,选取空旷无阻挡空间测得的数据进行计算,则为零均值,标准方差为的高斯正态随机变量,单位是。所以用零值校对值和接收功率做差,即可计算出环境参数n值。从橘园测试表格的数值计算出环境参数n=3,幅值波动在0.3范围内,由于遮挡物较多,所以橘园的遮挡系数不可以忽略
28、,另外天线的高度也对信号的传输有所影响(沈杰,等,2008)。由橘园测试表格中阻挡物测得的数据可知道每10米的阻挡系数=8dB,高度相差1m,信号衰减差距3.5dB左右,因而得到荔枝园环境无线传感器模型: 所以橘园测试总结表格如下: 表2 橘园信道测试所得参数值环境因子n波动幅值遮挡系数x0零值校对接收功率高度衰减值30.30.8(dB/m)PiPr3.5(dB/m)3.4 实验结论在调整接收和发射天线高度时,天线的增高明显有利于信号的传播,在路径损耗上会有所改善,越贴近地面的传播损耗越大。由于山地具有一定的坡度,所以使用定向天线比使用全向天线接收要好。从以上的数据我们可以得知,在橘园环境下,
29、由于山坡地形以及果树的遮挡、对2.4G信号的衰减较大,使得其通信距离受到限制,使用定向天线、高度在1.5m的条件,其通信的距离大约可达到70m。因此在橘园环境下建立2.4G无线网络,需要的网络节点数目会较多,路由节点位置的选取、节点安置的高度以及天线的选择这些都可提高网络的通信质量及其可靠性。为了增加网络通信路由路径、可选择网状网络拓扑结构;为了减少地形以及果树的遮挡对信号传输的影响,可选择节点安置的高度在1.5m以上;为了增强发射信号,保证其路径损耗尽量不至于使得原始信号陨灭而可使用定向天线作为传输工具。4 ZigBee协议栈ZigBee协议栈建立在IEEE 802.15.4的PHY层和MA
30、C子层规范之上。它实现了网络层(network layer,NWK)和应用层(application layer,APL)。在应用层内提供了应用支持子层(application support sublayer,APS)和ZigBee设备对象(ZigBee Device Object,ZDO)。应用框架中则加入了用户自定义的应用对象。每一层的函数都严格按照IEEE 802.15.4标准和ZigBee 2006规范所规定的原格式编写,配合嵌入的一个操作系统和对任务的统一调度,再了解应用层函数调用的基础上,就可以构建功能完善,性能稳定的ZigBee无线网络(高守玮,2009)。ZigBee的体系结
31、构由称为层的各模块组成。每一层为其上层提供特定的服务:即由数据服务实体提供数据传输服务;管理实体提供所有的其他管理服务。每个服务实体通过相应的服务接入点(SAP)为其上层提供一个接口,每个服务接入点通过服务原语来完成所对应的功能。ZigBee协议的体系结构如下图所示。图5 ZigBee协议体系架构协议栈定义通信硬件和软件在不同级如何协调工作。在网络通信领域,在每个协议层的实体们通过对信息打包与对等实体通信。在通信的发送方,用户需要传递的数据包按照从高层到低层的顺序依次通过各个协议层,每一层的实体按照最初预定消息格式向数据信息中加入自己的信息,比如每一层的头信息和校验等最终抵达最低的物理层,变成
32、数据位流,在物理连接间传递。在通信的接收方数据包依次向上通过协议栈,每一层的实体能够根据预定的格式准确的提取需要在本层处理的数据信息,最终用户应用程序得到最终的数据信息进行处理。4.1 Z-Stack简介Z-Stack这是一款比较流行的ZigBee协议栈,基于ZigBee射频芯片,如CC2430、CC2530等,用户使用该协议栈可开发出具体的应用程序来。Z-Stack基于瑞典公司IAR开发的IAR Embedded Workbench for MCS51作为它的集成开发环境(李文仲,等,2009)。Z-Stack协议栈中提供了一个名为操作系统抽象层OSAL的调度程序。对于用户来说,除了能够看到
33、这个调度程序外,其它任何协议栈操作的具体实现细节都被封装在库代码中,用户在进行具体的应用开发时只能够通过调用API接口来实现其功能,对于Z-Stack协议栈实现的具体细节,如网络层、MAC层等无权得知。当前最新的Z-Stack协议栈为ZigBee 2007协议栈,Z-Stack中提供了三个例程,本设计基于ZigBee2007 Z-Stack协议栈的Sample例程进行开发,在安装完IAR 7.51A版本后,打开Sample例程(路径为下的SampleApp.eww工程文件),可以很清晰的看到ZigBee协议栈各层函数接口,如图6所示。图6 Z-Stack协议栈4.2 Z-Stack工程设置以工
34、程SampleApp为例,介绍ZigBee工程设置,有关ZigBee工程的设置实际上就是通过IAR的工程设置完成的。同一个工程中包含的多个project,ZigBee网络中的节点类型Coordinator、Router和EndDevice都有不同的project,根据所要的节点类型选择相应的project。先把project选择为CoordinatorEB,在SampleApp-CoordinatorEB上右击,选择Options进入工程设置界面,选择C/C+ Compiler-Preprocessor,设置预编译项。根据实际需要可去掉LCD_SUPPORTED=DEBUG,HAL_UART,
35、或是添加其它条件编译的选项,如图所示7所示。图7 ZigBee工程项目设置4.3 Z-Stack操作系统Z-Stack中的每一层都有很多原语操作要执行,因此对于整个协议栈来说,就会有很多并发操作要执行。Z-Stack中的每一层都设计了一个事件处理函数,用来处理与这一层操作相关的各种事件。将这些事件处理函数看成是与协议栈每一层相对应的任务,由Z-Stack中调度程序OSAL来进行管理。操作系统OSAL是一个轮转查询式操作系统,基于任务优先级处理,优先级越高的任务越早被系统处理。这样,对于Z-Stack而言,无论何时发生了何种事件,都可以通过调度协议栈相应层的任务,即事件处理函数来进行处理。这样,
36、整个协议栈便会按照时间顺序有条不紊的运行。图8 OSAL系统架构在Z-Stack main.c文件中可以看到主函数入口,主要是执行硬件检测,然后初始化系统,包括mac层、硬件层、网络层、应用层等的初始化,最后进入系统任务调度主循环osal_start_system(void),在OSAL.c文件中可以看到Z-Stack的任务调度主循环。 void osal_start_system( void )#if !defined ( ZBIT ) & !defined ( UBIT ) for(;) / Forever Loop#endif uint8 idx = 0; osalTimeUpdate(
37、); Hal_ProcessPoll(); do if (tasksEventsidx)/ 对idx值小的,即优先级高的任务首先被判断 break;/有任务则退出当前循环 while (+idx tasksCnt); if (idx tasksCnt) uint16 events; halIntState_t intState; HAL_ENTER_CRITICAL_SECTION(intState); events = tasksEventsidx;/获取任务事件号 tasksEventsidx = 0; / 清除对应任务的事件号标志 HAL_EXIT_CRITICAL_SECTION(in
38、tState); events = (tasksArridx)( idx, events);/根据事件类型执行相关的处理函数 HAL_ENTER_CRITICAL_SECTION(intState); tasksEventsidx |= events; /添加未被处理的事件 HAL_EXIT_CRITICAL_SECTION(intState); #if defined( POWER_SAVING ) /是否定义了节能的条件编译选项 else / 是否处理完所有的任务事件 osal_pwrmgr_powerconserve(); / 使系统进入休眠模式 #endif 4.4 Z-Stack任务
39、事件的添加 在进行任务事件的添加之前,应该先了解系统定义了哪一些任务列表,在Z-Stack OSAL_SampleApp.c我们可以看到系统定义了如下的任务列表,对应系统中的每个任务,包括mac层、网络层、硬件层、应用层等。 const pTaskEventHandlerFn tasksArr = macEventLoop,nwk_event_loop,Hal_ProcessEvent,#if defined( MT_TASK )MT_ProcessEvent,#endifAPS_event_loop,#if defined ( ZIGBEE_FRAGMENTATION )APSF_Proce
40、ssEvent,#endifZDApp_event_loop,#if defined (ZIGBEE_FREQ_AGILITY)| defined ( ZIGBEE_PANID_CONFLICT )ZDNwkMgr_event_loop,#endifSampleApp_ProcessEvent;一般在实际应用中,需要在SampleApp_ProcessEvent任务中添加自己的用户事件。但是应注意要为每个事件分配好事件号,SYS_EVENT_MSG,SAMPLEAPP_SEND_PERIODIC_MSG_EVT都是16位的事件号。SampleApp.c中定义的事件处理函数如下:uint16 S
41、ampleApp_ProcessEvent( uint8 task_id, uint16 events )afIncomingMSGPacket_t *MSGpkt;(void)task_id; / 任务ID号if ( events & SYS_EVENT_MSG )/此为应用层系统事件,当接收到底层传输过来的信息时会触发该事件MSGpkt = (afIncomingMSGPacket_t*)osal_msg_receive( SampleApp_TaskID );return (events SYS_EVENT_MSG);if ( events & SAMPLEAPP_SEND_PERIOD
42、IC_MSG_EVT )/此为自己定义的事件 return (events SAMPLEAPP_SEND_PERIODIC_MSG_EVT); 4.5 Z-Stack任务事件的触发 在Z-Stack中任务事件的触发使用两个函数,uint8 osal_set_event( uint8 task_id, uint16 event_flag )和uint8 osal_start_timerEx( uint8 taskID, uint16 event_id, uint16 timeout_value ),osal_set_event(uint8 task_id, uint16 event_flag),
43、其主要功能就是设置任务号和事件号,使得系统在轮询时可以查找到有任务事件需要处理。而uint8 osal_start_timerEx( uint8 taskID, uint16 event_id, uint16 timeout_value )是以硬件定时器为基础,最小精度为1ms,定时触发执行osal_set_event(uint8 task_id, uint16 event_flag),使得Z-Stack中的任何事件都可以按照时间顺序得到处理,从而提高了协议栈设计的灵活性。本设计中在应用层事件处理中使用两个时间函数来触发传感器采集信息,并向协调器发送信息。在OSAL.c文件中定义了uint8
44、osal_set_event( uint8 task_id, uint16 event_flag )原型。uint8 osal_set_event( uint8 task_id, uint16 event_flag ) if ( task_id tasksCnt ) halIntState_t intState; HAL_ENTER_CRITICAL_SECTION(intState); / 关闭所有终端 tasksEventstask_id |= event_flag; / 填入有效的事件标志位 HAL_EXIT_CRITICAL_SECTION(intState); / 恢复中断 else
45、 return ( INVALID_TASK ); return ( SUCCESS );对于Z-Stack进行了解,熟悉其系统运作,任务事件的添加处理,非常有助于用户开发出自己的实际应用程序,实现自己的无线传感网络应用。5 ZigBee网络节点设计本设计采用如图9所示的网状网络架构的ZigBee协议,其中ZigBee终端节点(End Device)主要负责数据采集,路由节点(Router)只承担数据计算与转发的通讯任务,协调器节点(Coordinator)为最后网关,主要负责建立网络、获取各点的信息并与上位机进行双工通信。一个ZigBee网络中只存在一个网络协调器,新增节点,如路由器节点、终端节点可以灵活的加入协调器建立的网络中,可满足构建大规模系统的要求。本系统设计ZigBee无线传感网络中节点的无线模块采用的是CC2530模块。CC2530 芯片是 TI 公司研制的一种片上系统,作为ZigBee SOC解决方案的代表之一,相比于众多的ZigBee芯片,CC2530颇受青睐支持。 此芯片支持ZigBee 和 IEEE