论文设计风电场数据采集系统软件设计基于ZigBee及GPRS的小型风电场数据采集系统软件设计.doc

上传人:laozhun 文档编号:4136197 上传时间:2023-04-07 格式:DOC 页数:43 大小:1.90MB
返回 下载 相关 举报
论文设计风电场数据采集系统软件设计基于ZigBee及GPRS的小型风电场数据采集系统软件设计.doc_第1页
第1页 / 共43页
论文设计风电场数据采集系统软件设计基于ZigBee及GPRS的小型风电场数据采集系统软件设计.doc_第2页
第2页 / 共43页
论文设计风电场数据采集系统软件设计基于ZigBee及GPRS的小型风电场数据采集系统软件设计.doc_第3页
第3页 / 共43页
论文设计风电场数据采集系统软件设计基于ZigBee及GPRS的小型风电场数据采集系统软件设计.doc_第4页
第4页 / 共43页
论文设计风电场数据采集系统软件设计基于ZigBee及GPRS的小型风电场数据采集系统软件设计.doc_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《论文设计风电场数据采集系统软件设计基于ZigBee及GPRS的小型风电场数据采集系统软件设计.doc》由会员分享,可在线阅读,更多相关《论文设计风电场数据采集系统软件设计基于ZigBee及GPRS的小型风电场数据采集系统软件设计.doc(43页珍藏版)》请在三一办公上搜索。

1、南京工业大学毕业设计题目:基于ZigBee及GPRS的小型风电场数据采集系统软件设计 2012年6月基于Zigbee及GPRS的小型风电场数据采集系统软件设计摘要为实现对风电场现场数据采集的目标而对风电场进行监控,但是传统的监控系统多采用以太网光纤通讯。对于大型风电场,随着发电机组数量的增加, 势必增加布线费用, 且当风电场扩充时, 过多的通信线路会造成施工与维护困难等一系列问题。本课题以ZigBee技术和GPRS无线分组交换技术为基础,通过对小型风电场的相关数据的采集,主要包括有风电场的温度、湿度、风向、风速以及大气压力,来实现对风电场运行状态的实时监控。本文以小型风电场的数据采集系统为课题

2、背景,论述了ZigBee软件平台的开发过程,主要完成课题中数据采集系统软件部分设计。首先介绍了ZigBee技术的发展现状和应用前景。其次,介绍了TI Z-Stack的软件架构。另外,本文还介绍了应用层任务处理函数及自定义事件。 关键词:风电场ZigBee技术数据采集Software Design of Small Wind Farms Data Collection System Based on Zigbee and GPRSAbstractTo achieve the goal of the wind farm site date acquisition to monitor the wi

3、nfd farm,but the traditional monitoring system is the use of Ethernet fiber-optic communications. For large wind farms, along with the increase in the number of generating units, certainly will increase wiring fee, and when the wind power expansion, too much communication lines will cause the constr

4、uction and maintenance difficulties and so on a series of problems. This paper is based on the ZigBee technology and GPRS wireless packet switching technology. By collecting relevant date on small wind farms, including wind farms, temperature, humidity, wind direction, wind speed and atmospheric pre

5、ssure, it finally achieves the purpose of real-time monitoring of the operature status of the wind farm. With the subject background of using the date acquisition system for small-scale wind farm, this paper discusses the development process of the ZigBee software part, mainly to complete the softwa

6、re part design of the data acquisition system in the subject. Firstly it introduces the current situation of the development of ZigBee technology and its development trend. Secondly, it introduces the software architecture of TI Z-Stack. In addition, this paper also describes task handler of the app

7、lication layer and its custom events.Keywords: wind farm; ZigBee technology; data collector目录摘要IAbstractII第一章 绪 论11.1概述11.2 ZigBee技术简介11.3 GPRS技术61.4本文的主要工作6第二章 系统软件总体方案设计72.1系统总体方案设计72.2软件编程的设计说明82.2.1 终端节点82.2.1 路由节点82.2.1 协调器节点9第三章 软件系统具体实现方案103.1 Z-Stack 协议栈103.3.1 系统初始化103.3.2 操作系统的执行113.3.3 Z-

8、Stack文件结构133.2应用层初始化程序153.3 事件处理程序16第四章 系统调试214.1 IAR编译环境设置214.2系统调试与结果25结语27参考文献28致谢29附录1: 应用层程序清单30第一章 绪 论1.1概述 当前,全球能源供应紧张,环境问题日益突出,风能具有储量巨大、分布广泛、清洁无污染和可再生的特点,符合人类可持续发展的要求,越来越受到世界各国和地区的广泛关注。世界风电产业近来迅速发展,风力发电已经成为解决世界能源短缺的重要途径之一。 由于风力发电的本身条件限制,风力发电机一般在恶劣的环境下工作,在无人值守的情况下长年运行,因此要保证对其进行实时、可靠的控制。在大型风力发

9、电场,通常需要对几十台或上百台风力发电机进行集群控制,这就要求采用先进的控制技术和通信手段。微机控制以其高可靠性、高性能价格比为这一实现提供了现实依据。传统的监控系统多采用以太网光纤通讯, 而对于大型风电场,随着发电机组数量的增加, 势必增加布线费用, 且当风电场扩充时, 过多的通信线路会造成施工与维护困难等一系列问题。因此, 采用基于ZigBee无线传感器网络和GPRS技术相结合的无线监控系统,来实现各风力发电机之间的互联、各风力发电机组与监控中心的通讯是一种很好的方法。1.2 ZigBee技术简介1、无线传感器网络 无线传感器网络(WSN)是当前在国际上备受关注的、涉及多学科高度交叉、知识

10、高度集成的前沿热点研究领域3。它综合了传感器、嵌入式计算、现代网络以及无线通信和分布式信息处理等技术,能够通过各类集成化的微型传感器协同完成对各种环境或监测对象的信息的实时监测、感知和采集,这些信息通过无线方式被发送,并以自组多跳的网络方式传送到用户终端,从而实现物理世界、计算世界以及人类社会这三元世界的连同。无线传感器网络是由大量体积小、成本低。具有无线通信、传感、数据处理能力的线感器节点组成的2。在无线传感器网络中,大量传感器节点被分布在整个观测区域中,各个传感器节点讲探测的有用信息经过初步的数据处理和信息融合后传送给用户。数据传送的过程是通过相邻的路由节点接力传送回基站,然后再以卫星通信

11、或者有线网络连接的方式传送给终端用户。1)传感器节点体系结构传感器节点一般由传感器模块、处理器模块、无线通信模块和能量供应模块四个功能模块组成。传感器模块又称数据采集模,包括传感器、A/D转换器,负责监测区域内信息的采集和数据转换;处理器模块又称数据处理和控制模块,包括微处理器、存储器,负责控制整个传感器节点的操作,存储和处理本身采集的数据以及其他节点发来的数据;无线通信模块通过无线收发器负责与其他传感器节点进行无线通信,交换控制信息和收发采集数据;能量供应模块(电池、DC/AC能量转换器)为传感器节点提供运行所需的能量,通常采用微型电池。2)无线传感器网络协议无线传感器网络的网络体系具有二维

12、结构,即横向的通信协议层和纵向的传感器网络管理面。通信协议层可以划分为物理层、链路层、网络层、传输层和应用层。网络管理面则划分为能耗管理面、移动性管理面以及任务管理面。3)无线传感器网络拓扑结构包括星型网、网状网和混合网。随着数字通信和计算机技术的发展,许多短距离无线通信的要求被提出。目前,五种短距离无线网络技术正在成为业界谈论的热点,分别是无线局域网(Wi-Fi)、超带宽通信(UWB)、近场通信(NFC)、蓝牙(Bluetooth)、红外线数据通IrDa和ZigBee。而本系统运用的正是ZigBee无线通信技术。2、ZigBee技术简介 ZigBee是一种新兴的短距离、低功耗、低数据速率、低

13、成本、低复杂度的无线网络技术。蜜蜂在发现花丛后,会通过一种特殊的肢体语言ZigZag行舞蹈,来告知同伴食物源位置的信息,这是蜜蜂之间传达信息的一种简单方式1。借此意义ZigBee作为新一代无线通讯技术的命名。ZigBee也被称为“HomeRF Lite”、“RF-EasyLink”或“firefly”无线电技术,目前统称为ZigBee技术。ZigBee技术可使用的频段有3个:(1)2.4GHz的ISM频段(全球流行),可使用16个信道,最高传输速率达250kbit/s (2)欧洲的868频段,仅可使用1个信道,最高传输速率达20kbit/s (3)美国的915频段,可使用10个信道,最高传输速

14、率达40kbit/s。中国采用的是2.4GHz频段,是免申请和免费使用的频率,带宽为250K。作为一种无线通信技术, ZigBee一下主要特点:1)数据传输速率低:只有10K字节/秒到250K字节/秒,专注于低传输应用2)功耗低:在低耗电待机模式下,两节普通5号干电池可使用6个月到两年,免去了充电或者频繁更换电池的麻烦。这是ZigBee的支持者所一直引以为豪的独特优势;3)成本低:因为ZigBee数据传输速率低,协议简单,所以大大降低了成本,且ZigBee协议免收专利费。4)网络容量大:可支持节点达65000个;每个ZigBee网络最多课支持255个设备,即每个ZigBee设备可与另外254台

15、设备相连接;5)时延短:通常时延都在15毫秒至30毫米之间;6)安全:ZigBee提供了数据完整性检查和鉴权功能,加密算法采用AES-128,同时可以灵活确定其安全属性;7)有效范围小:有效覆盖范围1075米之间,具体依据实际发射功率的大小和各种不同的应用模式而定,基本上能够覆盖普通的家庭或办公室环境;8)工作频段灵活:使用的频段分别为2.4GHz、868MHz(欧洲)及915MHz(美国),均为免执照频段。3、 ZigBee协议栈 ZigBee无线传感器网络通信标准是的IEEE 802.15.4,这是IEEE无线个人网络工作组的一项标准,被称作IEEE 802.15.4(ZigBee)技术标

16、准。IEEE 802.15.4包括用于低速无线个人网络的物理层和媒体接入控制层6。ZigBee协议栈采用分层结构,每个层都有一套特定的服务方法和上一层连接,称为协议,每一层也为上一层提供一系列特殊的服务。数据实体提供数据的传输服务,而管理实体提供所有的服务类型。每个层的服务实体通过服务接入点(SPA)和上一层相接,每个SPA提供大量服务方法完成相应的操作图1-1 协议栈结构如图1-1所示,协议栈的体系结构从上至下包括:应用层(APL层),网络层(NWK层),媒介层(MAC层),物理层(PHY层)。其中,IEEE802.15.4 2003标准定义了最下面两层底层协议:物理层(physical l

17、ayer,PHY)和媒介层(medium access control sublayer,MAC)。ZigBee联盟又在此基本上建立的应用层(application layer,APL)和网络层(network layer,NWK)。应用层APL层又包括应用支持子层(application support -layer APS),ZigBee的设备对象(zigbee device object ZDO)以及制造商定义的应用对象7。4、ZigBee的网络拓扑构架和设备节点ZigBee以一个个独立的工作节点为依托,通过无线通信组成了包括星状、树状和网状在内的三种网络拓扑结构。,因此每个节点的功能并

18、不完全相同,工作节点分为三类:终端节点、路由节点和协调器节点。根据工作节点的不同作用,ZigBee定义了3种类型的设备,各种设备都有自己的功能要求:1)ZigBee协调器(Co-ordinator),是启动和配置网络的一种设备,是整个网络的核心节点,一个ZigBee网络只允许有一个ZigBee协调器,它需要启动并建立整个网络和赋予一个PANID,同时赋予每一个加入网络的设备一个16位的ID号;2)ZigBee路由器(Router),是一种支持关联的设备,主要起到将数据转发到其他设备的作用,ZigBee网络或树形网络可以有多个ZigBee路由器,ZigBee星型网络不支持ZigBee路由器;3)

19、ZigBee终端设备(End Device),执行具体功能的设备,风电场采集系统中在终端设备上安装传感器芯片,用于收集采集到的信号。以上的三种设备可以根据功能的完整性分为全功能设备(FFD)和半功能设备(RFD)。全功能设备用于负责与所控制的子节点通信、汇集数据和发布控制,或起到通信路由的作用,所以可以是协调器、路由器或者终端设备。半功能设备只起到一个作用,系统中的大部分节点都是半功能设备,所以半功能设备只作为终端设备。一个FFD可与多个RFD或多个其他FFD通信,而一个RFD只能与一个FFD通信。 在本设计中,采用的是树形拓扑结构,包括一个Co-ordinator以及一系列的Router和E

20、nd Device节点。Co-ordinator连接一些列的Router和End Device,它的子节点的Router也可以连接一系列的Router和End Device。这样可一个重复多次层级,如图1-2所示。图1-2 树形拓扑结构5、 ZigBee技术的发展现状和应用前景 ZigBee技术的应用十分广泛,在工业控制、工业无线定位、家庭网络、汽车自动化、楼宇自动化、消费电子、医用设备控制等多个领域都具有广泛的应用前景。现阶段以商业大楼自动化,家庭自动化控制(新建安装)与仪表控制为重点11。商业大楼可以利用ZigBee完成自动控制,管理员可以有效地管理空调,灯光,火灾感应系统等各项开关控制系

21、统,可以达到减少能源费用,降低管理人力等节约目的。对消费者来说,若家中具有ZigBee系统,可方便的监控家中的整体运作,有效掌握电力,自来水,瓦斯的使用状况之外,亦可以具有安全功能,例如可以在家中安装无线传感器来监控各种不同情况,一旦侦查到异状即可自动发出警告。ZigBee在仪表控制市场随着国际仪表巨头中国华立仪表集团;韩国NURI Telecom等纷纷开始引进ZigBee技术之仪表控制系统之后,这个市场开始受到重视。ZigBee仪表控制系统相当适合人工高昂,幅员辽阔,或是抄表员素质不良,抄表准确度不高,又或抄表员不易进入水,电,瓦斯仪表所在地的地方。具有这样背景的地方促使ZigBee仪表控制

22、市场具有一定的需求12。虽然ZigBee应用越来越多,芯片出货量也连年递增,但总体来说,ZigBee市场仍然处于起步探索阶段,还没有真正上量起飞,主要表现在在于可应用的终端商用产品还多处于研发阶段,真正上市的不多,具有典型应用的方向和领域便少,点对点的应用较多,体现ZigBee优势的网状网络应用少,缺乏体现ZigBee大型组网应用。虽然ZigBee在艰难中前进,但未来整个ZigBee产品还是值得我们期待,从技术标准层面上来看,未来ZigBee将紧密迎合物联网大概念方向趋势的发展,努力扮演好传输层界于IPV6结合,更面上的角色,在ZigBee联盟的推动下,ZigBee技术将朝着开发SoC(片上系

23、统),更多规范,廉价,更省电,更快速等方向发展。1.3 GPRS技术GPRS ( General Packet Radio Service) 是通用分组无线业务的简称24。它是第二代移动通信技术GSM向第三代移动通信技术3G的过渡技术,经常被描述成2.5G,GPRS是GSM Phase2.1规范实现的内容之一,是在现有的GSM移动通信系统基础上发展起来的一种移动分组数据业务5。GPRS通过在GSM数字移动通信网络中引入分组交换功能实体,以交换采用分组方式进行的数据传输。GPRS能提供比现有GSM网9.6kb/s更高的数据传输速率,最高可达171.2kb/s。GPRS采用分组交换技术,数据传输速

24、率高,它支持多种带宽,是对有效带宽的高效利用22。GPRS网络满足电力负荷管理系统中数据的通信速率的要求。GPRS具有“永远在线”的功能,当终端与GPRS网络建立连接后,即使没有数据传送,终端也一直与网络保持连接,再次进行数据传输时不需要重新连接,而网络容量只有在实际进行传输时才被占用,从而保证了数据交换的实时性7。GPRS是以传输的数据量,而不是以连接时间为基准来收费的,接入GPRS网络但没有数据传输是不收费的,这使得通信信道的使用费用大大降低。GPRS网络是在现有的GSM网络系统的基础上引入新的部件而构成的无线数据传输系统,在一次性投入和网络维护上的开销小,可以节省耗费巨大的导线材料和人工

25、费用,而且免除了日常检修和维护费用,同时,具有高可靠性,扩展性和抗干扰性。综上所述,在电力负荷管理系统中使用GPRS通讯模块,充分利用覆盖面广,运行可靠、费用低廉的GPRS公用无线网络,实现GPRS无线数据通讯功能进行数据传输,达到电力负荷管理的通讯要求,做到GPRS在电力数据采集的实用化23。1.4本文的主要工作本文中软件设计的主要工作有:1)系统初始化及无线传感网络的建立;2)终端节点、路由节点、协调器节点各功能模块的流程图设计;3)数据的发送及重发机制设计;4)终端节点、路由节点、协调器节点整体程序框架设计;5)终端节点、路由节点、协调器节点程序设计;5)GPRS模块流程图及程序设计;6

26、)系统的可靠性实时性以及数据传输的准确性等进行调试。第二章 系统软件总体方案设计2.1系统总体方案设计小型风电场采集系统主要用于对风能现场的数据进行测量采集,包括大气压力、温度、湿度、风速以及风向,实现对风电场环境的检测。通过数据采集系统,可以保证系统的信息完整,正确掌握风电系统的运行状态,帮助诊断系统故障,提高生产效率。系统采用ZigBee组建无线传感器网络,网络采用树形拓扑结构,包括终端采集节点、路由节点和中心协调器节点。终端节点上连接风速传感器、风向传感器、温湿度传感器和大气压力传感器,用来采集风电场相关参数。终端采集节点通过路由将测风数据发送给中心协调器节点,中心协调器节点再通过GPR

27、S模块讲测风数据发送至远程计算机控制中心。图 2-1 系统结构图如图2-1所示,本设计主要是对系统软件进行设计,着重分析在数据采集系的应用中各个功能进行模块化设计。提出适合风电场的数据采集系统的总体设计方案,并详细介绍该系统各个组成模块的功能及软件实现过程,其中包括数据采集模块,ZigBee控制模块,GPRS模块,以及以上模块与主控芯片的连接设计,采用基于51的内核芯片2430进行系统主控电路的设计,最终通过无线网络将采集数据发送至服务器。并对系统的可靠性实时性记忆数据传输的准确性等进行调试。2.2软件编程的设计说明2.2.1 终端节点由图2-2可知:终端采集模块涉及的程序包括应用层初始化、采

28、集指令事件、发送数据事件、重发数据事件、自动寻找目的设备事件、KEY检测事件和程序运行事件。对于终端、路由和协调器节点,都涉及到寻找目的设备事件。不同的节点(彼此间在网络模块的通信范围内)通过彼此自动寻找,就可以形成一个互联互通的Zigbee 网络;当节点撤销或位置变化时, 模块可以通过重新寻找通信对象, 确定彼此间的联络, 对原有网络进行刷新对于测风采集终端节点。每个终端节点上,连接着一个LED灯、LCD液晶显示器和键盘控制模块等。程序运行事件控制LED的状态,用于显示加入网络正常;KEY检测事件涉及到LCD和键盘控制模块,在键盘控制电路中S1键用于启动采集模块,S2键用于修改采集时间,LC

29、D上会显示出采集时间。终端节点主要的工作是采集数据以及通过CC2430的射频电路发送给它的父节点,这就一定会涉及到采集指令事件、发送数据和重发数据事件。节点采集数据通过AD转换,发送出去,重发机制保证路由或协调器节点能够准确接收到数据。图2-2 终端节点结构图2.2.1 路由节点由图2-3所示:路由节点涉及的程序包括应用层初始化、发送数据事件、重发数据事件、重发响应信息事件、自动寻找目的设备事件和程序运行事件。路由节点的作用是将数据转发到其他设备,重发响应信息事件是将路由节点准确接受数据后对发送数据做出的回应。程序运行事件中,LED显示路由是否正常工作。图2-3 路由节点结构图2.2.1 协调

30、器节点由图2-4所示:协调器节点涉及的程序包括发送数据事件、重发数据事件、重发响应信息事件、自动寻找目的设备事件、KEY检测事件和程序运行事件。协调器节点是ZigBee网络的核心,它需要启动并建立整个网络和赋予一个PANID,同时赋予每一个加入网络的设备一个16位的ID号。协调器节点的主控芯片CC2430F128将接收到的数据首先在LCD上显示,同时显示采集时间间隔。另外,它将把数据进行打包通过GPRS模块(MC55)发送至远程的计算机控制中心,由远程的服务器接收,并在上位机显示。协调器节点同终端一样,连接有LED、LCD和键盘控制电路。按键电路与终端节点不同的是S1键用于短信功能,S2键用于

31、GPRS模块关机、这里KEY检测事件中,将接收到的数据首先在LCD上显示,同时显示采集时间间隔。图2-4 协调器节点结构图。第三章 软件系统具体实现方案数据采集的过程,简单来说,就是终端节点(传感器芯片)采集现场信息后将其转化成数字信号数据,然后将其发送给其连接的路由器节点。路由节点在无线网络中起到数据转发的作用,通过相邻路由节点,节节发送数据,最终将数据发送至协调器节点。协调器节点有一个接收数据的过程,并返回接收数据响应,报告给发送节点(终端节点)接收成功。之后协调器节点在将数据发送至串口,进入GPRS模块高速率发送出去,最终至远程计算机控制中心,过程如图2-1所示。在本章中,主要介绍Z-S

32、tack协议栈,应用层初始化程序以及应用层自定义的7个事件,并画出了流程图介绍程序的运行过程。3.1 Z-Stack 协议栈Z-Stack的main函数在Zmain.c中,总体上来说,它一共做了两件工作,一个是系统初始化,即由初始代码来初始化硬件系统和软件架构的各个模块,另一个及时开始执行操作系统1。如图3-1所示。图3-1 协议栈主要流程3.3.1 系统初始化系统初始化代码需要完成初始化硬件平台和软件架构所需要的各个模块,为操作系统的运行做好准备工作,主要分为初始化系统时钟、检测芯片工作电压、初始化堆栈、初始化各个硬件模块、初始化FLASH存储、形成芯片MAC地址、初始化非易失性变量、初始化

33、MAC层协议、初始化应用帧层协议、初始化操作系统等十余部分,如图3-2所示及程序见附录程序清单3.1。图 3-2 系统初始化流程图 3.3.2 操作系统的执行在这里,我们先要了解操作系统的特点。Ti Z-Stack是基于轮转查询式操作系统的16。这个系统中,有一个“优先级”的概念,先处理排列在前面优先级高的任务,再处理后 面低的任务。而每个任务中又有多个事件存在。这里采用把优先级放在最重要地位的调度方式,优先级高的任务中的所有时间都具有很高的级别,即只要优先级高的任务有事件没有处理完,就一直处理,直到所有事件得到处理,才去执行下一个任务事件的查询。另外,即使当前在处理的任务中有两个以上事件待处

34、理,处理完一件后,也要回头再去查询优先级更高的任务。只有在任务更高的任务没有事件要处理的情况下,才会处理原来任务优先级第二高的事件。如果此时发现优先级高的任务有了新的事件要处理,则立刻处理该事件。通过这中轮转查询式调度方式,就赋予了优先级高的任务最大的权力,尽可能保证高优先级的每一个事件都能得到及时的处理。系统初始化,即启动代码为操作系统的执行做好了准备工作,之后就开始执行操作系统入口程序,并讲控制权全部交给操作系统。操作系统实体只有一行代码:osal-start-system(); / No Return frm here这句代码的注释意思是,本函数不会返回,也就是它是一个死循环,永远不可能

35、执行玩。这个函数就是轮转查询式操作系统的主体部分,它所做的就是不断查询每个任务中是否有事件发生,如果发生,就执行相应的函数,如果没有发生,就查询下一个任务。首先我们明确系统要执行的几个任务,在SerialApp本项目中,不算调试的任务,操作系统一共要处理6项任务,分别是MAC层、网络层、板硬件抽象层,应用层、ZigBee设备应用层以及用户处理的应用层,其优先级由高到低,即Mac层具有最高的优先级。 项目SerialApp中的tasksArr函数数组代码见程序清单3.2,流程图如图3-3所示。程序清单3.2:Const pTaskEventHandlerFn taskaAee= macEvent

36、Loop, /MAC层任务处理函数 nwk_event_loop, /网络层任务处理函数 Hal_ProcessEvent, /板硬件抽象层任务处理函数 # if defined ( MT_TASK ) MT_ProcessEvent, /调试任务处理函数,可选 # endif APS_event_loop, /应用层任务处理函数,用户不要更改 ZDApp_event_loop, /ZigBee设备应用层任务处理函数,用户可以根据需要更改 SampleAPP_ProcessEvent /SerialApp的用户任务处理函数;Z-Stack已经编写了对从MAC层到ZigBee设备应用层这五层任务

37、的事件的处理函数,一般情况下不需要修改这些函数,所以只需要编写应用层的任务和事件处理函数。所以,在本设计中,重点是APP应用层的任务及事件函数14。操作系统多任务处理流程图如图3-3所示。图3-3轮转查询式操作系统多任务处理在App任务处理函数中,一共需要添加三个文件,1)主文件(SerialApp.c):存放具体的任务事件处理函数(SampleApp_ProcessEvent)2)头文件(SerialApp.h):定义设备配置信息,定义自定义事件名。3)操作系统接口文件(Osal_SerialApp.c):存放任务处理函数数组tasks的文件。3.3.3 Z-Stack文件结构系统软件总体结

38、构如图3-4所示,整个程序是围绕CC2430单片机设计的,软件程序采用模块化设计更容易理解和调试。整个程序从上至下包括:APP应用层,HAL硬件层,MAC层,MT层,NWK网络层,OSAL(协议栈操作系统),AF应用框架层,安全层,Services层,Tool(工具配置目录),ZDO目录,ZMac(MAC层目录),Zmain(主函数目录),Output(输出文件目录)。本设计中,主要研究的是APP应用层中所涉及的程序函数以及其流程图。各个目录含义如下:1)App:应用层目录,其目录结构如图3-5所示。这个目录下的后三个文件是创建一个新项目是要主要添加的文件。2)HAL:硬件层目录,其目录结构如

39、图3-6所示。Common目录下的文件是公用文件,基本上与硬件无关,其中hal_assert.c是断言文件,用于调试,hal_driver.c是驱动文件,抽象出与硬件无关的驱动函数,包含有与硬件相关的配置和驱动及操作函数。Include目录下主要包含各个硬件模块的头文件,而Target目录下的文件是跟硬件平台相关的,可以看到有两个平台,分别是CC2430DB平台和一个是CC2430EB平台,其中CC2430DB文件夹是灰白色的,表示你的项目并没有使用这个平台,意味着CC2430EB平台正在使用中。图 3-4 Z-Stack在项目中的目录结构 3)MAC层:MAC层目录,4)MT:监控调试层目录

40、,该目录下的文件主要用于调试目的,即实现通过串口调试各层,与各层进行直接交互。5)NWK:网络层目录,含网络层配置参数文件及网络层库的函数接口文件,和APS层库的函数接口。6)OSAL:协议栈的操作系统。7)Profile:AF层目录,包含AF层处理函数接口文件。8)Security:安全层目录,包含安全层处理函数接口文件。9)Services:ZigBee和802.15.4设备的地址处理函数目录。包括地址模式的定义及地址处理函数。10)Tools:工程配置目录,包括空间划分及Z-Stack相关配置信息。11)ZDO:ZigBee设备对象,可认为是一种公共的功能集方便用户用自定义的对象调用AP

41、S子层的服务和NWK层的服务。12)ZMac:如图3-7所示,其中zmac.c是Z-Stack MAC导出层接口文件,zmac_cb.c是ZMAC需要调用的网络层函数。13)ZMain:如图3-8所示,在ZMain.c主要包含了整个项目的入口函数main(),在OutBoard.c中包含对硬件开发平台各类外设进行控制的接口函数。14)Output:输出文件目录,这个EW8051 IDE自动生成的。 图3-5 APP目录结构 图3-6 HAL目录结构 图3-7 ZMac层目录结构 图3-8 ZMain层目录结构3.2应用层初始化程序如图3-9所示为应用层初始化函数SerialApp_Init的流

42、程图。程序见附录程序清单3.3。其主要过程如下:1)为进行I/O口初始化,设置芯片引脚连接什么地址等。 2)调用memcpy()函数为项目选择合适的信道,赋予一个PANID,同时赋予每一个加入网络的设备一个16位的ID号。包括设置接收序列号,分配任务ID,设置目的设备端口,设置目的地址,设置目的地址模式和广播等待。3)注册端口描述符4)获取64位地址5)串口配置信息,包括设置波特率,流量控制,流控阀值 ,最大接收量,最大发送量等等6)判断是否拥堵,接受回调函数图3-9 应用层初始化3.3 事件处理程序在SerialApp.h中定义了7个自定义事件:重发数据事件、重发响应信息事件、发送数据事件、

43、自动寻找目的设备事件、KEY检测周期、程序运行事件和采集指令事件。下面几小节详细介绍了这几个自定义事件的流程图以及代码。1、 重发数据事件重发数据事件程序见程序清单3.4,流程图如图3-10所示。程序在应用层中采取两种措施增强数据通信的可靠性。首先是利用重发数据事件SERIALAPP_MSG_RTRY_EV重发数据,重新发送次数由rtyCnt决定。由于在数据包之前增加了序列号SerialApp_SeqTxt,多次重发的数据不会被接收节点反复发送到串口。另外,加入了数据接收响应机制,发送节点在发送完数据后等待接收节点发挥接收数据响应,收到返回接收数据响应的命令SERIALAPP_CLUSTRID

44、2后,判断信息包中的接收状态参数。若接收状态为OTA_DUP_MSG,表示接收节点串口繁忙,应启动重发机制,延时后产生重发数据事件;若接收状态OTA_SUCCESS,表明接收节点将数据成功发送至串口,应释放缓存区,等待串口接收下一包数据。图3-10重发数据事件流程图2、重发响应信息事件如图3-11所示。在重发响应信息事件中,接收节点将接收状态参数打包成为接收数据响应信息,返回发送给发送节点。这里用stat记录接收节点发送的接收数据响应信息数据是否已成功发送给发送节点。系统对stat进行判断,如果stat不是SUCCESS,表示接收节点发送接受数据响应信息没有成功,系统则启动定时器进行延时后产生

45、重发数据响应事件。程序代码见附录程序清单3.5。图3-11重发响应信息事件流程图3、发送数据事件如图3-12所示,发送数据事件SERIALAP_MSG_SEND_EVT触发事件处理函SerialApp_ProcessEvent去调用SerialApp_SendData,将数据无线发送到接收节点。首先判断是否是协调器节点,如果是协调器节点,那么将协调器节点的数据发送至串口,如果是终端节点,那么就将终端节点的数据发送出去(数据通过路由节点相邻发送方式,最终发送给终端),发送结束后调用FREE_OTABUF()释放接收数据缓存区。发送数据事件见程序清单3.6。图3-12 发送数据事件流程图4、自动寻

46、找目的设备事件如图3-13所示,SERIALAPP_AUTO_FIND_EVT事件是触发新设备去自动寻找数据传输的目的设备的事件。每个设备都能触发此事件。当设备状态(ZDO_STATE_CHANGE)改变后(这个状态的改变一般由建立网络或新设备加入网络引起),调用ZDApp_AutoFindDestination函数寻找设备,如果找到设备地址,break退出if,退出事件;如果没有找到,返回启动定时器延时 ,延时结束后继续寻找设备触发此事件。程序见附录程序清单3.7。图3-13 自动寻找目的设备事件流程图5、KEY检测周期事件 在这里,P1_0,P1_4分别对应协调CC2430模块上的两个按键

47、S1、S2,在终端节点和协调器节点上,都连接LCD液晶显示器,而按键控制的功能不同。如图3-14所示,Key检测周期事件每0.002秒执行一次,系统不断循环执行。触发事件后,先判断是否是设备协调器节点,如果是协调器设备,按下S1键,则GPRS关机,液晶上显示“GPRS Power Off!”;按下S2键,则开启发送短信功能,液晶上显示“SMS TEST!”。如果是终端节点,按下S1键,启动定时器,1秒后开始采集数据,按下S2键,采集时间增加5秒,液晶上显示采集时间。程序见附录程序清单3.8。图3-14 KEY检测周期事件流程图6、程序运行事件 如图3-15所示,P1_3控制的是一个LED灯。CC2430协调器芯片、终端和路由上均连接有个一个LED灯,显示状态。P1_3取反,即LED灯亮。 首先判断是否是协调器节点。若是终端或者路由节点,LED灯亮表示加入网络正常。若是协调器节点,LED 指示GSM模块的网络状况,在之后进行GPRS指令

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号