毕业设计(论文)-基于CC2530的温度监测系统设计 - 图文

更新时间:2024-05-16 02:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

编号:( )字 号

本科生毕业设计

题目: 基于 CC2530 的温度监测系统设计

姓名: 学号:

2010-4班级: 信息工程 班

二〇一四年六月

中 国 矿 业 大 学

本科生毕业设计

姓 名:学 院:专 业:设计题目:专 题:指导教师:

学 号: 04101918

信息与电气工程学院 信息工程 基于CC2530的温度监测系统设计 华 钢 职 称: 教 授

二〇一四年 六月 徐州

中国矿业大学毕业设计任务书

学院 信息与电气工程学院 专业年级 信息2010级 学生姓名 李明达

任务下达日期: 2013年12月30日

毕业设计日期: 2013年12月30日至2014年6月10日

毕业设计题目: 基于CC2530的温度监测系统设计

毕业设计专题题目:

毕业设计主要内容和要求:

1.设计基于CC2530的无线温度检测节点; 2.多个节点组成一跳网络; 3.节点可睡眠; 4.设计节点软件; 5.简单设计上位机软件

院长签字: 指导教师签字: 年 月 日

中国矿业大学毕业设计指导教师评阅书

指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力;③研究内

容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题;⑧是否同意答辩等):

成 绩: 指导教师签字: 年 月

中国矿业大学毕业设计评阅教师评阅书

评阅教师评语(①选题的意义;②基础理论及基本技能的掌握;③综合运用所学知识解

决实际问题的能力;③工作量的大小;④取得的主要成果及创新点;⑤写作的规范程度;⑥总体评价及建议成绩;⑦存在问题;⑧是否同意答辩等):

成 绩: 评阅教师签字: 年 月

中国矿业大学毕业设计答辩及综合成绩

答 辩 情 况 回 答 问 题 提 出 问 题 正 确 基本 正确 有一般性错误 有原则性错误 没有 回答 答辩委员会评语及建议成绩: 答辩委员会主任签字: 年 月 日 学院领导小组综合评定成绩: 学院领导小组负责人: 年 月 日

摘 要

本文主要对煤矿监控系统中温度的监测进行研究和分析,根据国内目前对于温度监测方法的研究,设计了一种基于CC2530的温度监测系统。

本文首先对本课题的研究意义及国内发展现状进行分析和研究,详细比较了几种现有的温度监测方法,根据煤矿监控系统所处的复杂环境需要,提出了基于CC2530的温度监测系统设计。随后本文对设计所采用的ZigBee无线自组网技术和ZigBee开发套件进行了简要介绍,并对设计所采用的Z-Stack协议栈的工作流程作详细介绍。本温度监测系统设计在Z-Stack协议栈的基础上进行,其中包括温度的采集、处理和传输,终端节点的休眠与唤醒,协调器节点串口通信等。另外,本文还对上位机软件进行了简单设计,用于温度数据在上位机上的显示。最后,本文对该系统的温度监测功能效果进行验证,并总结分析验证结果。

最终,设计出一种基于CC2530的温度监测系统。该无线传感系统能够实现点对点通信,传感器节点负责进行温度数据的采集和发送,协调器节点负责温度数据的接收和转发,上位机软件负责对温度数据的显示。

关键词:ZigBee;CC2530;DS18B20;温度监测

Abstract

This paper mainly carries on research and analysis of the monitoring temperature of coal mine monitoring system, according to the current domestic research for temperature monitoring method, design a temperature monitoring system based on CC2530.

This paper first carries on the analysis and research of this topic research significance and the domestic development status, a detailed comparison of the temperature monitoring method of several existing, according to the complex environment of coal mine monitoring system which needs, puts forward the design temperature monitoring system based on CC2530. Then the design of the ZigBee wireless ad hoc network technology and ZigBee development kit are introduced, and the design of the Z-Stack protocol stack of the work process are introduced in detail. The temperature monitoring system design based on the Z-Stack protocol stack, including the acquisition, processing and transmission of temperature, dormancy and awakening of terminal nodes, the coordinator node serial communication etc.. In addition, this paper also gives a simple design for the software, used to display in the upper computer temperature data. Finally, this paper verifies the temperature monitoring function of the system, and analyzed the results.

Finally, the design of a temperature monitoring system based on CC2530. The wireless sensing system can realize the point-to-point communication, sensor nodes are responsible for temperature data acquisition and sending, receiving the coordinator node is responsible for temperature data and forwarding, PC software is responsible for the display of the temperature data.

Key words: ZigBee; CC2530; DS18B20; Temperature monitoring

目 录

1.绪 论 ............................................................................................................................................................... 1

1.1课题的研究背景及意义 ........................................................................................................................ 1 1.2国内外研究概况 .................................................................................................................................... 1 1.3论文的主要内容及结构安排 ................................................................................................................ 2 2.ZigBee协议简介 .............................................................................................................................................. 3

2.1 ZigBee协议体系结构 ........................................................................................................................... 3

2.1.1物理层(PHY) ......................................................................................................................... 3 2.1.2媒体介质访问层(MAC) ........................................................................................................ 4 2.1.3网络层(NWK) ....................................................................................................................... 5 2.1.4应用层(APL) ......................................................................................................................... 5 2.2 ZigBee基本概念 ................................................................................................................................... 6

2.2.1设备类型 ..................................................................................................................................... 6 2.2.2网络拓扑结构 ............................................................................................................................. 7 2.2.3信标与非信标模式 ..................................................................................................................... 8 2.2.4 ZigBee术语 ................................................................................................................................ 8 2.2.5绑定 ............................................................................................................................................. 9 2.2.6 ZigBee原语 ................................................................................................................................ 9

3.基于CC2530的温度监测系统 ...................................................................................................................... 10

3.1系统设计思路及整体结构 .................................................................................................................. 10 3.2系统硬件设计 ...................................................................................................................................... 10

3.2.1 ZigBee开发套件 ...................................................................................................................... 10 3.2.2 CC2530概述 ............................................................................................................................. 12 3.2.3 DS18B20概述 .......................................................................................................................... 15 3.3系统软件设计 ...................................................................................................................................... 15

3.3.1软件开发环境IAR简介 .......................................................................................................... 15 3.3.2 Z-Stack体系架构及工作流程 ................................................................................................. 15 3.3.3网络通信过程 ........................................................................................................................... 19 3.3.4温度测量与数据传输 ............................................................................................................... 20 3.3.5节点休眠 ................................................................................................................................... 23 3.3.6上位机软件设计 ....................................................................................................................... 24

4.系统测试 ......................................................................................................................................................... 27

4.1系统测试步骤 ...................................................................................................................................... 27 4.2系统测试结果 ...................................................................................................................................... 27 4.3系统测试结果分析 .............................................................................................................................. 28 5.总结与展望 ..................................................................................................................................................... 29

5.1工作总结 .............................................................................................................................................. 29 5.2前景展望 .............................................................................................................................................. 29 参考文献 ............................................................................................................................................................ 31 翻译部分 ............................................................................................................................................................ 32

中文译文 .................................................................................................................................................... 32 原文 ............................................................................................................................................................ 37 致 谢 ................................................................................................................................................................ 42

中国矿业大学2014届本科生毕业设计 第1页 1.绪 论

1.1课题的研究背景及意义

煤炭自燃产生的有害气体不仅严重危害井下人员的健康,而且容易诱发瓦斯、煤尘爆炸事故,并造成严重的资源浪费,因此研制煤矿采空区火源点感知网络系统是煤矿安全生产的迫切需要,对于制定采空区防灭火措施,实现煤矿安全高效生产和可持续发展具有重大的现实意义。

基于CC2530的温度监测系统不仅能有效满足煤矿采空区火源点感知的需求,而且还因为其具有低成本、低功耗等特点,受到人们的广泛青睐。由于简化协议,对于控制器的要求已经很低,以8051的8位控制器测算,每块芯片仅需要2美元,而且ZigBee协议免专利费,免执照频段,进一步降低了产品成本。CC2530在众多无线通讯芯片中最为突出的优势是低功耗,在休眠模式下,2节5号电池就可以维持1 至2年。

因此,研究基于CC2530的温度监测系统是非常有意义的。

1.2国内外研究概况

煤矿采空区自然发现火源位置的探测在技术实现上的难度较大。国内外在这一领域内进行了大量的研究工作。现有技术主要有:电磁探测法、气体探测法和温度探测法。它们各具特点,适应不同的开采条件,也存在着各自的不足之处。

气体探测法。主要包括采空区气体成分分析法和测氡法。束管是当前我国煤矿火灾监测的主要手段,它利用在采空区不同位置布置多条空气采集管,定时抽取特定区域的气体样本,对该区域某点的O2、N2、CO、CH4、CO2、C2H4、C2H6、C2H2等自然火灾标志气体含量循环监测,判断煤面的氧化情况,预测预报发火点的温度变化,为煤矿自然火灾的防治工作提供科学依据。具统计我国目前获得安标的都是该类产品。国内外,还开展了测氡法探测火源位置的研究。其基本原理是放射性元素存在衰变现象,在衰变过程中产生氡气,而在实际的地层测量中。人们找到了温度与氡气浓度之间的关系,依据这种关系可以从氡气浓度的变化反过来推算出火源的温度。

电磁法。包括磁性探测法和电阻率探测法。磁性探测法,利用煤层上覆岩中常含有大量菱铁矿及黄铁矿结核,发生自燃时,上覆岩受高温烘烤,铁质成分发生变化而形成磁性物质,且磁性随自燃温度的升高而增强的原理,实现对采空区发火点的检测。电阻率法,地下煤层沿走向或其它方向电阻率基本保持不变,自燃后引起煤层和周围岩石电阻率变化;自燃初期电阻率下降,后期表现较高电阻率,比较未自燃区和自燃区的变化来判断自燃位置。

温度探测法。主要有二类系统,基于无线的采空区温度监测系统、基于分布式光纤传感器的采空区温度监测系统。无线传感器网络温度监测技术是近年来逐步发展起来的监测煤自然发火的检测方法。河南理工大学、西安科技大学、黑龙江科技学院、太原电子研究

中国矿业大学2014届本科生毕业设计 第2页 设计院等相继对采空区温度场无线自组网传感器监测系统进行了理论研究和开发。他们的研究表明,煤自燃温度场无线网络监测法能及时预测温度场的微弱变化 ,比 CO的预报更早 ,对于煤炭自然发火早期预警预报有十分重要的意义 ,已经被业界认可。但是,这方面至今还没有产品推出。山东省科学院,提出了利用光纤拉曼散射效应(Raman scattering)和光时域反射测量技术(Optical Time-Domain Reflectometry,简称OTDR)来获取空间温度分布信息。其中光纤拉曼散射效应(Raman scattering)用于实现温度测量,光时域反射测量技术(Optical Time Domain Reflectometer)用于实现温度定位,是近几年发展起来的一种用于实时测量空间温度场分布的高科技技术,它能够连续测量光纤沿线的温度分布情况,测量距离可达30公里,空间定位精度达到米的数量级,能够进行不间断的自动测量,特别适宜于需要长距离、大范围多点测量的应用场合。

综上所述,束管监测系统属于对自然发火的间接测量,发火点定位困难,且束管监测系统的管线较长,投入大,维护困难,且经常发生管路漏气或堵塞现象。分布式光纤温度监测系统,在采空区温度检测中遇到的最大问题,是监测光纤极可能被塌落的顶板砸断,造成不可恢复故障。测氡法,该方法与实用还有很大距离,首先是地质因素的影响,并不是所有矿都具有可供测量的氡气存在;另一方面就是氡气浓度与火源温度之间的关系并不是单调增减,而是在某一基轴线上的减幅波动,从而影响火源定位准确性。电磁法自然发现火点探测技术,必须等煤炭燃烧起来才可以使用,适用于已经火灾已经形成情况下,不适用于火源点的预警与报警。

1.3论文的主要内容及结构安排

本论文主要研究“基于CC2530的温度监测系统设计”,包括节点的硬件设计、无线传感器网络的组建、对温度监测功能的实现分析。 本文共分为六章:

第一章,绪论阐述了基于CC2530的温度监测系统研究的背景及意义,国内外研究煤矿采空区自然发现火源位置的探测的概况;

第二章,简述ZigBee协议栈结构、协议中各子层功能; 第三章,对CC2530开发套件及CC2530芯片进行简介,对设计采用的软件开发环境IAR进行简介,详细介绍Z-Stack协议栈工作流程,对温度采集、处理、传输程序进行分析和对休眠与唤醒程序进行分析,分析上位机软件设计;

第四章,简述该系统设计的测试及调试过程,分析实验结果;

第五章,总结与展望,对整个设计进行总结分析出自己的心得体会。

中国矿业大学2014届本科生毕业设计 第3页

2.ZigBee协议简介

2.1 ZigBee协议体系结构

ZigBee协议基于IEEE802.15.4标准,由IEEE802.15.4和ZigBee联盟共同制定。ZigBee协议栈由物理层(PHY)、媒体介质访问层(MAC)、网络层(NWK)和应用层(APL)共4层构成,其中PHY层和MAC层由IEEE802.15.4标准工作组制订,而NWK层和APL层由ZigBee联盟自行制订。每一层都完成其各自特定的任务并且向上一层提供服务,数据服务实体主要负责数据传输服务,管理服务实体则主要负责所有的其他管理服务。每个服务实体为其上层提供需要的接口都是通过其相应的服务接入点(SAP)实现的,每个SAP所对应的功能通过服务原语来完成,且每个SAP支持许多种不同的服务原语。ZigBee协议体系结构如图2.1所示:

应用程序框架应用设备240端点240APSDE-SAP应用设备1端点1APSDE-SAP应用支持子层(APS)APS 安全管理安全服务供应商NLED-SAPAPS 消息中转反射器管理ZDO公共接口ZigBee设备对象(ZDO)端点0APSDE-SAPAPSME-SAPNLME-SAP网络层(NWK) NWK 安全管理NWK 消息中转路由管理网络管理ZDO管理面板MLDE-SAP媒体介质访问层(MAC) PD-SAP物理层(PHY)2.4GHzMLME-SAPPLME-SAP868/915MHzIEEE802.15.4制定终端制造商制定ZigBee联盟制定各层接口

图2.1 ZigBee协议体系结构图

2.1.1物理层(PHY)

中国矿业大学2014届本科生毕业设计 第4页 物理层定义了物理无线信道和MAC 层之间的接口,提供三种不同的通信频段:868MHz-868.6MHz、902MHz-928MHz和2400MHz-24835MHz,以及1个、10个以及16个不同的信道。

物理层提供两种服务:物理层数据服务(PD)和物理层管理服务(PLME)。通过无线信道的发送和接收以及物理层协议数据单元(PPDU)来实现物理层数据服务。PLME主要通过调用物理层管理功能函数来提供管理和服务,其中物理层数据服务接入点(PD-SAP)给MAC层提供数据服务接口,而物理层管理实体服务接入点(PLME-SAP)给MAC层提供管理服务接口。驱动程序为物理层提供的接口是无线射频服务接入点(RF-SAP),从外界接收到数据包后,从物理层中提取信息并通过PD-SAP上传给上层协议。物理层结构及接口示意图如图2.2所示。

数据服务接入点(PD-SAP)物理层管理实体服务接入点(PLME-SAP)物理层管理实体(PLME)物理层(PHY)物理层信息库(PHY PIB)无线射频服务接入点(RF-SAP) 图2.2 物理层结构及接口示意图

物理层的主要功能包括:1)ZigBee系统的启动和关闭;2)当前信道的能量检测;3)链路质量信息;4)信道评估与选择;5)传输和接收数据。 2.1.2媒体介质访问层(MAC)

MAC层控制无线信道访问时使用CSMA-CA冲突避免机制,是所有无线信道的维护接口,提供两个相邻设备之间可靠的链路。MAC层由MAC层管理实体(MLME)提供MAC层管理服务和MAC层数据服务实体(MCPS)提供MAC层数据服务两部分构成。MAC层数据服务是指MAC层协议数据单元(MPDU)通过物理层数据服务发送和接收,而MAC层数据服务接入点(MCPS-SAP)给网络层提供数据服务接口。MAC层管理实体以提供可调用MAC层管理功能接口为目的,MAC层管理实体服务接入点(MLME-SAP)为网络层提供管理服务接口。MAC层的结构接口示意图如图2.3所示。

中国矿业大学2014届本科生毕业设计 第5页 MAC层数据实体服务接入点(MCPS-SAP)MAC层管理实体服务接入点(MLME-SAP)MAC层数据实体(MCPS)MAC层管理实体(MLME)MAC层信息库(MAC PIB)PD-SAPPLME-SAP 图2.3 MAC层结构和接口图

MAC层主要功能包括:1)信标的产生与同步;2)信道接入;3)保证系统的安全性; 4)管理时隙(GTS)机制;5)提供可靠的通信链路。 2.1.3网络层(NWK)

网络层是ZigBee协议栈的核心部分。网络层由网络层数据服务实体(NLDE)和网络层管理实体(NLME)两部分共同组成,不仅为MAC层提供函数而且为应用层提供服务接口。网络层数据服务实体产生网络层协议数据单元(NPDU)为设备间的数据传输提供必要的服务,通过网络层数据实体服务接入点(NLDE-SAP)为应用层提供数据服务接口。网络层管理实体主要负责网络中的管理服务,通过网络层管理实体接入点(NLME-SAP)实现。网络层结构和接口图如图2.4所示。

网络层主要功能包括:1)网络的发现、形成和维护;2)路由器初始化;3)提供网络节点地址分配;4)允许设备直接或间接同网络连接;5)断开网络连接;6)复位配置;7)信息库管理。

网络层数据实体服务接入点(NLDE-SAP)网络层管理实体服务接入点(NLME-SAP)网络层数据实体(NLDE)网络层管理实体(NLME)MAC层信息库(MAC PIB)MCPS-SAPMLME-SAP 图2.4 网络层结构和接口图

2.1.4应用层(APL)

中国矿业大学2014届本科生毕业设计 第6页 ZigBee应用层框架由应用支持子层(APS)、应用程序框架(AF)、ZigBee设备对象(ZDO)和用户定义的应用对象4个部分组成。ZigBee应用层除了提供必要的函数以及服务接口外,另一个重要的功能是让用户在应用层里编辑自己的应用对象。

应用支持层(APS)具有管理绑定表、在绑定设备间传输数据的功能。它由主要负责为设备间的数据传输提供相应服务的应用支持子层数据服务实体(APSDE)和主要负责根据命令提供相应管理和服务的应用支持子层管理实体(APSME)共同组成。在应用层中,应用支持子层数据接入点(APSDE-SAP)和应用支持子层管理服务接入点(APSME-SAP)分别为上层的应用实体提供数据和管理服务。应用支持子层结构与接口图如图2.5所示。

应用程序框架(AF)其本质就是各个制造商所自定义的应用对象,并提供键值对(KVP)服务和报文(MSG)服务以满足应用对象的数据传输,用户自定义应用对象必须遵循在端点1-240上运行的规范(profile)原则。

设备在网络中的角色(例如是ZigBee协调器或是ZigBee终端设备或是ZigBee路由器)是由ZigBee设备对象(ZDO)定义的,同时ZigBee设备对象还负责对绑定请求的响应和初始化,在设备间建立可靠的联系。

应用支持子层数据实体服务接入点(APSDE-SAP)应用支持子层管理实体服务接入点(APSME-SAP)应用支持子层数据实体(APSDE)应用支持子层管理实体(APSME)MAC层信息库(MAC PIB)NLDE-SAPNLME-SAP 图2.5 应用支持子层结构与接口图

2.2 ZigBee基本概念

ZigBee协议栈主要包含6个基本概念:设备类型、网络拓扑结构、信标与非信标模式、ZigBee术语、绑定、ZigBee原语。 2.2.1设备类型

ZigBee系统中的设备可能包含协调器(Coordinator)、路由器(Router)和终端节点(End Device)3种逻辑类型中的两种或三种,一个完整的ZigBee网络由至少一个协调器、一个或多个路由器和一个或多个终端节点组成。

①协调器

ZigBee网络的拓扑形式可以多种多样,但是每个ZigBee网络中有且只有一个协调器节点。协调器负责选择网络的信道、启动并建立整个网络。协调器也可以协助网络中安全

中国矿业大学2014届本科生毕业设计 第7页 服务和应用层的绑定服务的建立。但是协调器的角色只涉及网络的启动和配置,之后整个网络的运行就不再依赖于协调器是否存在。

②路由器

在树形和网状拓扑结构中,需要有路由器节点的加入,它是网络远距离延伸的必要部分。路由器节点的功能是允许其他节点加入网络,协助各个节点之间的通信。

③终端设备

终端设备主要负责信息的接收和发送,不需要维持特定的网络结构,可以根据需要进入休眠或唤醒状态以降低功耗。终端设备一般由电池供电,对存储空间要求比较小。 2.2.2网络拓扑结构

ZigBee支持3种网络拓扑结构,包括:星型拓扑网络、树形拓扑网络和网状拓扑网络。如图2.6所示。其中,全功能设备(FFD,Router)可以支持任何一种网络结构,可以作为网络协商者和普通协商者使用,并且可以和任何一种设备进行相互通信。精简功能设备(RFD)只支持星型网络结构,不能成为任何一种协商者使用,但是可以和网络协商者相互通信。

星型拓扑网络协调器树型拓扑网络路由器终端设备网状拓扑网络

图2.6 ZigBee网络拓扑结构

①星型拓扑网络

星型拓扑网络是最简单的一种拓扑结构,由一个协调器和一个或多个终端设备组成,只存在协调器与终端设备的通信,而没有路由节点的参与,终端设备之间的相互通讯必须通过协调器转发。

②树形拓扑结构

树形拓扑网络结构可以理解为由一个协调器和一个或多个星型结构连接而成,直接通信只能在父子节点之间进行,而非父子节点之间的通信只能通过树状路由器间接完成。

③网状拓扑网络

网状拓扑网络具有灵活、减少消息延时和可靠的特点,网络中所有具有路由功能的节点直接互联,任意两个节点间可相互传输数据,网络路径通过路由器中的路由表按照算法选择。

中国矿业大学2014届本科生毕业设计 第8页 2.2.3信标与非信标模式

ZigBee网络可以分为信标(Beacon)和非信标(Non-beacon)两种工作模式。为最大限度的节约能源消耗,信标模式可以使所有网络设备同步工作和同步休眠;而在非信标模式下,协调器和路由器必须长时间处于工作状态,只允许终端设备周期性进入休眠模式。

在信标模式下,协调器向网络广播16个相同时间槽间隔的信标帧一般以15ms-4min之间的时间为间隔。时间槽被分为网络活动区和网络休眠区两个部分,消息只能在网络活动区内发送。

在非信标模式下,采用终端节点向父节点提取数据,父节点为子节点缓存数据的机制,使终端设备可以周期性进入休眠模式以达到低功耗。在ZigBee网络中,子节点大部分时间通常都处于休眠工作状态,但需要周期性醒来确认自己仍处于网络中,并可在15ms的延时后转入数据传输模式,提取数据。 2.2.4 ZigBee术语

节点设备端点输出群集属性输入群集属性属性属性端点输入群集属性设备端点输出群集属性属性射频发射器端点输出群集属性端点输出群集属性 图2.7 ZigBee术语结构图

①属性

反映物理数量或状态的数据值称为属性,如开关值(On/Off),温度值、百分比等。 ②群集

群集就是属性的集合,每一个群集都被系统分配一个独有的的群集ID 且每个群集至多可以有65536个属性。

③设备描述

设备描述包含一个或多个集群,指定集群是输入或输出,描述符有4种,分别是简单描述符、节点描述符、电源描述符、端点描述符。

④端点

端点是协议栈应用层的入口,是为实现一个设备描述而定义的一组群集。用户可以在每个设备上自定义240个应用对象(也就是端点1-240)。每个ZigBee设备必须使用端点

中国矿业大学2014届本科生毕业设计 第9页 0用于与ZDO接口,而被保留用于广播的端点是255,端点241-254则被保留下来为了将来做扩展时使用。

⑤节点

每个节点有且只有一个信道使用,包含一组ZigBee设备,也可以理解为是一个专门的ZigBee设备的容器。 2.2.5绑定

通过使用ClusterI使不同的节点上的独立端点之间能够建立一个逻辑上的连接的特殊操作被称为绑定。绑定操作的实现是协调器在接收到两个端点的绑定请求之后,通过建立绑定表使端点间建立一种逻辑链路。在两个端点建立绑定表后,端点间的通信是由一个端点将信息传递给协调器,再由协调器通过查找已有绑定表将收到的信息发送给所绑定的另一个端点,这样实现端点间的间接通信。 2.2.6 ZigBee原语

ZigBee协议栈各层之间是通过各自所关联的服务访问点来提供服务的,各层根据各自的功能独立运行,但ZigBee协议栈又是一个有机的整体,各层之间需要共同协作以便完成任务。因此,层与层之间的信息交互通过服务“原语”的操作实现,“原语”分为4种类型,分别是请求(Request)、指示(Indication)、响应(Response)和证实(conform)。原语的操作概念如图2.7所示。

①请求(Request):请求原语从N+1实体发送到N实体,请求发起一个服务,如请求建立连接、数据传送等。

②指示(Indication):指示原语从N实体发送到到N+1实体,指示一个对N+1实体有外部N层事件发生,这个事件可能由内部事件产生或与远程服务请求有关。 ③响应(Response):响应原语由N+1实体向N实体传递,用来响应上一个指示原语。 ④证实(conform):确认原语由N实体向N+1实体传递,对前面一个或多个服务请求相关的执行结果予以确认。

服务提供者(N-layer)服务用户(N1-User)请求服务用户(N2-User)指示响应确认

图2.7 原语操作概念图

中国矿业大学2014届本科生毕业设计 第10页

3.基于CC2530的温度监测系统

3.1系统设计思路及整体结构

本文的温度监测系统是利用ZigBee无线通讯技术为基础,采用CC2530芯片为核心设计的无线传感系统。在现实中所应用的温度监测系统通常需要一个或多个路由器节点和至少一个或多个终端设备,往往是一个非常庞大的ZigBee无线网络系统,具有非常复杂的网络结构,但是由于在实验环境下,节点数量、制作成本、技术能力等多方面因素,无法构成像现实中的大型无线网络,目前只能实现点对点的温度监测和数据传输来模拟现实中的温度监测ZigBee网络。

本文中所设计的温度监测系统采用点对点通信的模式,可以理解为简化的星型拓扑网络,由一个协调器和一个终端节点组成。协调器具有无线收发通信部分、处理器部分、与PC机通信的串口部分和电源供电部分。终端节点与协调器相比不具有串口通信部分而是增加了温度采集传感器部分。

当需要温度采集时,协调器向终端节点发送控制命令,终端节点通过温度传感器DS18B20进行温度的采集,之后终端节点将采集的温度数据通过无线发送给协调器,由协调器对温度数据进行处理后通过串口将温度数据传输给PC机,通过上位机软件对温度数据进行显示、分析、存储等处理。

由于ZigBee的特点是低功耗,因此本设计中为使节点满足低功耗要求,终端节点还能进入休眠模式,采用定时器唤醒模式每10秒唤醒一次,以最大限度的降低功耗。

系统总体方案图,如图3.1所示。

无线测温节点无线测温节点协调器节点串口ZigBee无线传输上位机无线测温节点 图3.1 系统总体方案图

3.2系统硬件设计

3.2.1 ZigBee开发套件

本设计所用ZigBee开发套件由节点(底板和核心板)2套、仿真器1个、10pin排线1条、USB线2条、2db天线2条和DS18B20温度传感器1个构成。此开发套件具有以下特点:

中国矿业大学2014届本科生毕业设计 第11页 ①设计小巧,布局合理。底板尺寸5*5cm,核心板尺寸2.5*2.5cm; ②采用底板加核心板的设计,便于更换模块或板载天线模块; ③板上接口资源丰富,传感器即插即用;

④板载USB转串口电路,方便笔记本以及没有串口的电脑用户; ⑤传输距离远;

⑥具备USB高速下载功能,支持IAR集成开发环境; ZigBee开发套件节点底板实物图,如图3.2所示。

图3.2 节点底板实物图

ZigBee开发套件底板电路示意图,如图3.3所示。

图3.3 节点底板电路示意图

中国矿业大学2014届本科生毕业设计 第12页 在本温度监测系统设计中,由底板和核心板所组成的两套节点分别作为协调器和终端节点。

①协调器节点

协调器节点主要由CC2530芯片、射频天线电路、供电模块、晶振电路以及串口通讯电路五部分组成。协调器节点的功能是将计算机发送的指令发送给终端节点,再接收终端节点传来的的数据信息,并将接收到的数据发送给计算机显示。协调器设计如图3.4所示。

RXD RF-PTXD RF-NCC2530电源模块晶振32MHz32.768kHzUART天线 图3.4 协调器节点

②终端节点

终端节点主要由CC2530芯片、射频天线电路、供电模块、晶振电路以及温度传感器DS18B20五部分组成。终端节点主要负责完成对温度数据的采集,并且将温度传感器采集的温度数据周期性的发送给协调器。终端节点设计如图3.5所示。

温度传感器DS18B20CC2530电源模块晶振32MHz32.768kHzRF-PRF-N天线 图3.5 终端节点设计

除了节点外还有仿真器,仿真器提供连接PC的USB接口,通过Download程序至协调器和终端节点。可以实现单步调试、断点调试、观测调试、数据流调试和观察寄存器。ZigBee开发套件仿真器实物图,如图3.6所示。

图3.6 仿真器实物图

3.2.2 CC2530概述

CC2530芯片是由TI公司设计开发的一款支持IEEE802.15.4标准/ZigBee/ZigBee RF4CE的新一代SOC芯片,是真正的片上系统解决方案。CC2530是理想的ZigBee专业应

中国矿业大学2014届本科生毕业设计 第13页 用,因为其拥有多达256KB的快闪记忆体。CC2530拥有一个高性能无线收发器、一个标准增强型8051微处理器、8KB的RAM、32/64/128/256KB闪存、4种供电模式以及包括12位数模转换器 、2个通用串口模块和21个通用GPIO等的强大外设支持。此外,CC2530还通过TI的标准兼容网络协议栈Z-Stack来简化开发。

①特性描述 CC2530具有强大的无线前端:采用2.4GHzIEEE802.15.4标准RF发射器,可编程输出功率为+4.5dbm,总体无线连接102dbm,6*6mm的QFN40封装。CC2530还具有低功耗的特点:接收模式24mA,发送模式29mA,4微秒唤醒0.2mA,睡眠计时器运行1mA,外部中断0.4mA,电源电压范围2-3.6V。CC2530的微控制器包括:高性能的8051MCU内核,32/64/128/256KB闪存,8KB内存。CC2530还具有强大的外设集:五通道DMA,21个通用I/O引脚,3个通用定时器,32kHz睡眠计时器和定时捕获,CSMA/CA硬件支持,8通道12为ADC,AES加密安全协处理器,WatchDog定时器,两个USART等。

②应用范围

CC2530广泛应用于RF4CE摇杆控制系统、楼宇自动化系统、照明系统、工业控制和监控、电子消费、医疗保健等领域。

③引脚描述

CC2530采用40引脚的QFN封装,其引脚如图3.7所示:

图3.7 CC2530引脚顶视图

中国矿业大学2014届本科生毕业设计 第14页

引脚描述

中国矿业大学2014届本科生毕业设计 第15页 CC2530外围主电路图如图3.8所示。

图3.8 CC2530外围主电路

3.2.3 DS18B20概述

DS18B20是最常用的温度传感器之一,具备体积小、成本低、抗干扰能力强、精度高等特点。DS18B20由4个主要部分组成:64位光刻ROM、温度传感器、配置寄存器和非挥发的温度报警触发器TH和TL。DS18B20有效工作电压3-5.5V之间,测温范围在-55℃- +125℃(测温误差1℃)之间,单线接口方式,无需任何外围元件。DS18B20使用范围广泛,包括:测温控制领域、狭小的工业设备测温和控制等。

3.3系统软件设计

本设计所使用的软件开发平台是CC2530适用的IAR-EB8051-V8.1,采用ZStack-CC2530-2.3.0-1.4.0协议栈。 3.3.1软件开发环境IAR简介

IAR的C/C++交叉编译器和调试器是目前世界上最容易利用的专业嵌入式应用开发工具。IAR由嵌入式C/C++优化编译器和调试器,实时操作系统,状态机建模工具,硬件仿真器组成,是一套完整的集成开发工具集合,包含嵌入式系统设计、开发和测试的每一个阶段。IAR支持30多种ARM微处理器结构,提供统一的用户界面,使用户在开发和调试的过程中仅仅使用统一的开发界面就能够满足多种工作需要。IAR集成编译器主要产品特征:高效 PROMable 代码、完全标准 C 语言兼容、内建对应芯片的程序速度和大小优化器、目标特性扩充、版本控制和扩展工具支持良好、便捷的中断处理和模拟、瓶颈性能分析、高效浮点支持、内存模式选择和工程中相对路径支持。利用IAR编译器能够大量节省硬件资源,极大限度地降低产品的研发成本,提高产品市场竞争力。 3.3.2 Z-Stack体系架构及工作流程

中国矿业大学2014届本科生毕业设计 第16页 Z-Stack协议栈是由TI公司在2007年4月推出的Zigbee无线通讯协议,是一种半开源式的协议栈,很多关键代码都是以库文件的形式给出的,历经多年发展,功能不断完善。Z-Stack协议栈体系架构示意图如图3.9所示。

Zmain.cMain()主函数OSAL.cOsal_init_system()初始化操作系统OSAL_SampleApp.cOsal_start_system()执行操作函数SampleApp.cSampleApp_ProcessEvent()用户应用事件处理函数OSAL.cosalInitTasks()初始化系统任务OSAL_SampleApp.cEvents=tasksEvent[idx]SampleApp.cSampleApp_Init()用户创建的任务 图3.9 Z-Stack协议栈体系架构示意图

①Z-Stack软件架构

Z-Stack 协议栈首先从main()函数开始执行,main()位于ZMain.c文件中。main()函数中全部内容包含有:关闭全部中断,初始化系统时钟,检查芯片电压是否正常,初始化I/O、LED、Timer等,初始化芯片各硬件模块,初始化Flash存储器,初始化MAC层,确定IEEE地址,初始化非易失变量,调用AF初始化程序,初始化操作系统,使能全部中断,初始化按键,显示设备信息,执行操作系统。但是main()函数最主要做两件事: 一是系统初始化, 二是开始执行操作系统, 如图3.10所示。

开始系统初始化执行操作系统 图3.10 main()函数主要流程

ZMain.c文件中main()函数主要内容:

int main( void ) { ……

中国矿业大学2014届本科生毕业设计 第17页 osal_init_system(); //初始化操作系统 ……

osal_start_system(); //执行操作系统 } // main()

②Z-Stack操作系统初始化

在main()函数中的重点之一就是osal_init_system()系统初始化函数。该函数在初始化任务系统中创建任务表中定义任务(osal_task.h)。osal_init_system()函数中包含需要初始化的内容有:内存分配系统初始化、消息队列初始化、定时器初始化、电源管理初始化、系统任务初始化,其中重点是初始化系统任务。在OSAL.c文件中osal_init_system()函数主要内容:

uint8 osal_init_system( void ) { ……

osalInitTasks(); //初始化系统任务 …… }

在osal_init_system()函数中重点是osalInitTasks()任务初始化函数,函数中每个任务都是调用初始化函数对协议栈每一层进行初始化。osalInitTasks()函数中主要进行了内存的分配、设置内存空间单元、按照任务优先级由高向低(高优先级对应taskID值小)进行任务初始化3件事,而对用户应用的初始化是关键。在OSAL_SampleApp.c文件中osalInitTasks()函数主要内容:

void osalInitTasks( void ) { ……

SampleApp_Init( taskID ); //用户应用任务初始化 }

③执行操作系统

在main()函数中的另一重点就是osal_start_system()执行操作系统函数。Z-Stack协议栈中的操作系统是基于优先级的轮询式操作系统。此函数将所有的任务事件和调用task_event_processor()事件的任务功能,如果没有事件(任务),这一功能使处理器进入睡眠状态。此函数没有返回值。函数中包括:扫描事件设置标志位,轮询定时器和串口,准备任务,在临界区中提取、处理、清除、保存事件,使系统休眠。在OSAL_SampleApp.c文件中osal_start_system()函数主要内容:

void osal_start_system( void ) {

……

events = tasksEvents[idx]; //提取需要处理的任务中的事件 ……

events = (tasksArr[idx])( idx, events ); //通过指针调用任务处理函数

中国矿业大学2014届本科生毕业设计 第18页 ……

osal_pwrmgr_powerconserve(); //使进程/系统休眠 }

程序中重点是events=tasksEvents[idx];进入tasksEvents[idx]数组,是osalInitTasks()函数里初始化的tasksEvents。taskID把任务联系起来一一对应,数组中事件的顺序必须与任务初始化函数中的顺序相同,以达到初始化和调用的目的。

④用户应用系统初始化函数SampleApp_Init()

对于通用应用程序系统初始化函数,就是初始化过程中应该包含任何特定于应用程序的初始化(即硬件初始化设置,表的初始化等)。在osalInitTasks()任务初始化函数中,包含用户应用系统初始化函数SampleApp_Init(),由此进入由用户创建的任务。在SampleApp_Init()函数中主要包含6个部分工作:分配任务ID,串口初始化,注册串口任务,温度传感器引脚初始化,设置发送数据的方式和目的的地址寻址模式,定义端点描述符。在SampleApp.c文件中,SampleApp_Init()函数主要内容如下:

void SampleApp_Init( uint8 task_id ) {

SampleApp_TaskID = task_id; //osal分配的任务ID随着用户添加任务的增多而改变 ……

MT_UartInit(); //串口初始化 MT_UartRegisterTaskID(task_id); //注册串口任务

P0SEL &= 0x7f; //DS18B20的I/O口初始化 p0.7 ……

//发送模式:点播发送

SampleApp_P2P_DstAddr.addrMode = (afAddrMode_t)Addr16Bit; //点播 SampleApp_P2P_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;//指定端点号 SampleApp_P2P_DstAddr.addr.shortAddr = 0x0000;//发给协调器

//定义本设备用来通信的APS层端点描述符

SampleApp_epDesc.endPoint = SAMPLEAPP_ENDPOINT;

SampleApp_epDesc.task_id = &SampleApp_TaskID; //SampleApp描述符的任务ID SampleApp_epDesc.simpleDesc //SampleApp简单描述符 = (SimpleDescriptionFormat_t *)&SampleApp_SimpleDesc; SampleApp_epDesc.latencyReq = noLatencyReqs; //延时策略 …… }

⑤用户应用任务的事件处理函数SampleApp_ProcessEvent()

通用应用程序任务事件处理器。这个函数被调用来处理任务的所有事件活动,包括定时器信息和其他用户定义的事件。SampleApp_ProcessEvent()函数主要负责接收系统消息

中国矿业大学2014届本科生毕业设计 第19页 并对消息进行处理,在网络状态发生改变时完成对协调器和终端设备的设置,周期性发送消息,返回未处理事件,处理周期性事件。在SampleApp.c文件中,SampleApp_ProcessEvent()函数主要内容如下:

uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events ) { ……

case ZDO_STATE_CHANGE://只要网络状态发生改变,就通过ZDO_STATE_CHANGE事件通知所有任务。同时完成对协调器、终端的设置

SampleApp_NwkState = (devStates_t)(MSGpkt->hdr.status); if ((SampleApp_NwkState == DEV_END_DEVICE) ) {

// 启动初始化后开始有规律的发送周期信息 osal_start_timerEx( SampleApp_TaskID,

SAMPLEAPP_SEND_PERIODIC_MSG_EVT, SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT ); } ……

if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT ) {

//处理周期性事件,每10s唤醒1次 SampleApp_Send_P2P_Message();

osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT, 10000 ); …… }

3.3.3网络通信过程

开发板A作为协调器,上电启动后自动建立网络并周期性向终端设备发送数据包;开发板B作为终端设备,上电启动后加入网络,并且也周期性向协调器发送数据包。 ①启动过程分析

无论是协调器还是终端设备,启动过程和网络初始化的步骤都是一样的,只是配置文件在编译时会根据设备的不同类型而有所区别。

启动过程如下:

A.操作系统初始化; B.系统任务初始化;

C.设备对象初始化和用户应用任务初始化;

D.ZDApp_init()设备对象初始化函数主要内容包括:保存任务ID,分配地址,初始化ZDO,为设备注册端点描述符;

中国矿业大学2014届本科生毕业设计 第20页 E.ZDOInitDevice()函数在网络启动中,会完成初始化设备网络状态,初始化RAM项目表,初始化控制逻辑,确定设备类型,初始化设备安全属性,形成网络这些工作; F.ZDApp_NetworkInit()函数用于启动连接网络;

G.ZDApp_event_loop()函数是主函数循环的ZigBee设备对象的任务,功能是网络初始化事件处理;

②协调器建网

在设备初始化结束后,由协调器建立无线网络。如果协调器新建网络成功,允许协调器设定为绑定。此时协调器检测是否有节点要求加入网络,如果有,协调器建立绑定表,建立绑定,同时发出请求,节点确认后,协调器开始接收数据,最后通过串口发送给上位机。协调器程序流程图如图3.11所示。

上电复位硬件、软件初始化否建立绑定否建网成功是允许绑定接收数据是将数据发到串口传输给PC机发现设备

图3.11 协调器流程图

③终端设备入网

设备初始化后,终端节点会根据ZigBee协议栈搜寻附近的网络,并请求加入网络。当请求得到协调器确认后,终端设备会将自己的地址发给协调器,并自动与协调器建立绑定。在接受到数据传送请求之后,终端设备就会将所测量的温度值周期性的传送给协调器。终端设备流程图如图3.12所示。

上电复位硬件、软件初始化否是是是加入网络传感器采集数据是发现网络发送成功?否否尝试重新建立绑定入网成功成功?

图3.12 终端设备流程图

3.3.4温度测量与数据传输

中国矿业大学2014届本科生毕业设计 第21页 ①DS18B20驱动程序

DS18B20驱动程序包括两个文件ds18b20.c和ds18b20.h。在文件ds18b20.c中主要有以下几部分工作:

A.设置温度传感器引脚:#define Ds18b20IO P0_7; B.设置时钟频率:

void Ds18b20Delay(unsigned int k) {

while (k--) {

asm(\ ……

(省略31次asm(\) } }

C.设置输入端口:P0DIR &= 0x7f; D.设置输出端口:P0DIR &= 0x7f; E.初始化DS18B20; F.温度读取函数:

//温度读取函数 带1位小数位 unsigned int floatReadDs18B20(void) {

unsigned char V1,V2; //定义高低8位 缓冲 unsigned int temp; //定义温度缓冲寄存器 float fValue; Ds18b20Initial();

Ds18b20Write(0xcc); // 跳过读序号列号的操作 Ds18b20Write(0x44); // 启动温度转换

Ds18b20Initial();

Ds18b20Write(0xcc); //跳过读序号列号的操作

Ds18b20Write(0xbe); //读取温度寄存器等(共可读9个寄存器)

V1 = Ds18b20Read(); //低位 V2 = Ds18b20Read(); //高位 temp=V2*0xFF+V1; fValue = temp*0.625; return (unsigned int)fValue;

前两个就是温度

中国矿业大学2014届本科生毕业设计 第22页 }

②初始化串口和温度传感器引脚

在文件SampleApp.c中的SampleApp_Init()处写入语句:

Void SampleApp_Init(uint8 task_id) { ……

MT_UartInit(); //串口初始化; MT_UartRegisterTaskID(task_id); //注册串口任务;

POSEL&=0x7f; //DS18B20的I/O口初始化p0.7 …… }

③读取温度数据

在文件SampleApp.c中有SampleApp_Send_P2P_Message()函数负责温度的读取和传输:

void SampleApp_Send_P2P_Message( void ) {

char str[4]; unsigned int temp;

temp = floatReadDs18B20(); //读取温度数据 str[0] = temp00/100+ 48; str[1] = temp0/10+48; str[2] = '.';

str[3] = temp + 48;

if ( AF_DataRequest( &SampleApp_P2P_DstAddr, &SampleApp_epDesc, SAMPLEAPP_P2P_CLUSTERID, 4, str,

&SampleApp_TransID, AF_DISCV_ROUTE,

AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ) }

④接收数据

在文件SampleApp.c中有SampleApp_MessageMSGCB ()函数负责对温度数据的接收,并且发送给上位机显示:

void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) {

uint16 flashTime;

中国矿业大学2014届本科生毕业设计 第23页

switch ( pkt->clusterId ) {

case SAMPLEAPP_P2P_CLUSTERID: HalUARTWrite(0,\

HalUARTWrite(0, pkt->cmd.Data, pkt->cmd.DataLength); //输出接收到的数据 HalUARTWrite(0,\ break;

…… } }

3.3.5节点休眠

由于在实际应用中终端节点是由电池供电,所以为保证低功耗,必须设计程序使节点能够休眠,本设计中采用定时器中断方式,一次休眠时间10秒。

在OSAL中是使用睡眠定时器来控制睡眠时间的,在系统初始化的时候要将电源控制结构体中的pwrmgr_device设备属性设置为PWRMGR_BATTERY(电源管理设备属性有有PWRMGR_ALWAYS_ON和PWRMGR_BATTERY两种,选择PWRMGR_ALWAYS_ON的话将不会进入睡眠模式,选择PWRMGR_BATTERY将允许HAL管理CPU进入SLEEP LITE或者SLEEP DEEP状态)。

初始化电源管理函数在OSAL.C里面的osal_init_system()调用,将电源管理模式调成可以进入睡眠模式:

void osal_pwrmgr_init( void ) {

pwrmgr_attribute.pwrmgr_device = PWRMGR_BATTERY; //设置睡眠模式 pwrmgr_attribute.pwrmgr_task_state = 0; //清零 }

osal_pwrmgr_powerconserve()这个函数在OSAL循环中如果没有任何事件需要执行的话将被调用,将设备进入睡眠模式,不可以在其他地方调用该函数。需要打开POWER_SAVING的宏定义:

void osal_pwrmgr_powerconserve( void ) {

uint16 next; halIntState_t intState

if ( pwrmgr_attribute.pwrmgr_device != PWRMGR_ALWAYS_ON ) // 首先检查是否支持低功 {

if ( pwrmgr_attribute.pwrmgr_task_state == 0 ) //是否所有任务支持低功耗 {

HAL_ENTER_CRITICAL_SECTION( intState ); //关中断

next = osal_next_timeout(); //查询软件定时器链表得到最近一次溢出时间

中国矿业大学2014届本科生毕业设计 第24页 HAL_EXIT_CRITICAL_SECTION( intState ); //开中断 OSAL_SET_CPU_INTO_SLEEP( next ); //将系统进入睡眠模式 } } }

在检查完所有的任务事件之后发现没有事件需要处理,这样在POWER_SAVING宏定义打开的情况下将在OSAL的主循环中void osal_start_system()调用osal_pwrmgr_powerconserve()这个函数,在这函数中将会根据选择系统进入休眠:

void osal_start_system( void ) { ……

#if defined( POWER_SAVING ) else {

osal_pwrmgr_powerconserve(); //设置系统睡眠 } #endif }

在休眠定时器中断时候将会退出休眠。如果是IO中断或者休眠定时器中断退出之后将回到进入休眠的地方继续向下执行,复位退出的话进入程序的初部分执行:

uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events ) {

……

if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT ) ……

osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT,10000 );

// 定时10s唤醒终端,并向串口写命令,然后进入休眠

…… }

3.3.6上位机软件设计

本上位机软件采用Microsoft Visual Basic6.0开发环境进行设计。VB6.0简单易学,功能强大,可以支撑上位机软件的开发和设计。

本设计中,采集到的数据通过串口读入,同时数据实施的显示在文本框中。上位机软件工作流程图如图3.13所示。

中国矿业大学2014届本科生毕业设计 第25页 开始否有无中断是读数显示

图3.13 上位机工作流程图

由于以上功能的需要,设计中共采用了3个Label控件、1个test控件、1个Combo控件、1个CmdOpen控件等。上位机软件界面如图3.14所示。

图3.14 上位机软件界面

由于波特率、校验位、数据位等都在上位机程序中进行设置,在开启软件后,只需要对串口号进行设置,然后点击开始测温便能显示出所测温度值。

上位机主要程序如下: ①Private Sub CmdOpen_Click()

If CmdOpen.Caption = \停止测温\ MSComm1.PortOpen = False

CmdOpen.Caption = \开始测温\ '按钮文字改变 Shape1.FillColor = &HFFFFC0 '灯颜色改变 Else

MSComm1.CommPort = Combo1.ListIndex + 1 MSComm1.PortOpen = True CmdOpen.Caption = \停止测温\ Shape1.FillColor = &HFF End If Exit Sub

②Private Sub Form_Load()

If MSComm1.PortOpen = True Then MSComm1.PortOpen = False End If

中国矿业大学2014届本科生毕业设计 第26页 Combo1.AddItem \ ??

Combo1.AddItem \ Combo1.ListIndex = 0

MSComm1.CommPort = Combo1.ListIndex + 1

MSComm1.Settings = \ '设置波特率、校验位、数据位 flag = False End Sub

③Private Sub MSComm1_OnComm()

Dim str As String

Select Case MSComm1.CommEvent Case 2

MSComm1.InputLen = 1 str = MSComm1.Input ?? End Select POINT:

End Sub

'事件发生 '读入缓冲区全部内容 '读入到缓冲区

中国矿业大学2014届本科生毕业设计 第27页

4.系统测试

在测试中采用点对点通信的模式,由1个协调器和1个终端设备(温度传感节点)组成,协调器通过串口与PC机连接,由上位机软件显示测量结果,终端节点主动向协调器周期性向协调器发送温度数据。测试地点为宿舍,以便可以改变环境温度,进行多组测量。

4.1系统测试步骤

①编译文件,编译成功后利用IAR输出文件SampleApp.hex;

②连接开发板A与PC,通过仿真器下载CoodinatorEB-Pro中的SampleApp.hex文件至开发板A。开发板A作为协调器,通过USB线跟PC连接;

③连接开发板B与PC,通过仿真器下载EndDeviceEB-Pro中的SampleApp.hex文件至开发板B。开发板B插入温度传感器DS18B20作为终端设备测量和发送数据给协调器,通过电池或插座供电;

④检查开发板A、B电源、串口线以及温度传感器连接是否正常;

⑤给两块开发板上电,打开串口调试助手,设置串口号和波特率115200并打开串口。终端联网成功后会向协调器发送数据,可在上位机软件中观察温度变化;

⑥关闭串口调试助手,打开上位机软件,选择串口号,点击“开始测温”,观察温度显示。

4.2系统测试结果

温度监测系统的搭建是在宿舍完成的,由于宿舍温度相对比较稳定,所以在测量温度时采用了,风扇降温、空调降温、室外阳光照射升温等措施以便温度测量。虽然宿舍的环境温度没有太大温差,但实验的成功说明这个系统是能够达到温度监测的目的的,它同样适用于其他环境。

上位机软件显示温度结果如图4.1所示。

图4.1 上位机显示结果

手握传感器温度发生变化,由于温度是连续变化的,使用串口调试助手观察比较方便,串口调试助手中显示如图4.2所示:

中国矿业大学2014届本科生毕业设计 第28页

图4.2 串口调试助手中温度的显示结果

在各种降温升温环境中,与一款市面上购买的电子温度计(“科舰”HTC-1)的测量数据比较,比较结果如表1所示:

表1 温度测量结果比较表 CC2530温度测量结果(度) 27.8 28.3 29.1 29.8 24.5 30.5 32.4 36.9 38.2 电子温度计测量结果(度) 27.8 28.3 29.1 29.7 24.7 30.4 32.3 36.7 37.9 测量相对误差(%) 0.000 0.000 0.000 0.337 0.810 0.329 0.310 0.545 0.792 4.3系统测试结果分析

在测试中,对程序进行过两次修改:第一次是对温度测量精度的修改,原本测量精度为1摄氏度,通过修改程序将其修改为精度0.1度;第二次是对时钟频率进行修改。

此温度监测系统测量数据与电子温度计显示温度基本一致,由于电子温度计本身也可能存在小范围(±1℃)误差,所以说基于CC2530的温度监测系统设计的目标已经完成,基本达到预期目标和要求。

中国矿业大学2014届本科生毕业设计 第29页 5.总结与展望

5.1工作总结

基于CC2530的温度监测系统采用ZigBee技术,具有近距离、低成本、低功耗、自组网、无线传输等特点。

通过“基于CC2530的温度监测系统设计”,本人熟悉了ZigBee无线网络通信工作原理,在软件和硬件的开发调试中获得了许多宝贵经验。本系统在设计完成的过程中进行的主要工作以及成果如下:

1.了解无线传感技术ZigBee特点;

2.学习和研究对系统的总体规划和设计;

3.深入了解ZigBee技术,研究ZigBee协议栈体系结构及每层工作原理,学习包括网络拓扑结构、ZigBee术语、设备类型等基本概念;

4.了解ZigBee开发流程,研究开发套件的硬件电路以及各模块功能,深入研究CC2530芯片手册;

5.掌握开发软件IAR的使用方法;

6.熟悉Z-Stack协议栈的基本应用和实现流程,完成组网分析和协调器和终端节点主程序的设计;

7.设计程序使终端节点能够进入休眠模式,并采用定时器唤醒,降低功耗; 8.对系统进行调试,找出程序中出现的各种问题并进行修改。

由于实验时间和成本条件有限,加之个人能力有限。本设计还有不足之处,有待改进及完善:

1.对于ZigBee无线网络的通信距离及通信可靠性没有测试; 2.对于系统的功耗没有测试;

3.由于设计材料有限,目前只能完成点对点的无线通信,无法完成多节点的要求; 4.上位机软件的设计功能相对简单,可以完善更多功能以方便使用。

5.2前景展望

目前,基于CC2530的温度传感系统应用前景是十分广阔的。ZigBee很容易建立无线传感网络,低成本、低功耗是我们研究ZigBee的目的和动力。

基于CC2530的温度监测系统对于煤矿采空区自然发现火源位置的探测和制定采空区防灭火措施都是非常有效的。正好可以弥补煤矿采空区火源点感知网络系统在煤矿安全生产中的迫切需要,对于实现煤矿安全高效生产和可持续发展具有重大的现实意义。

另外,由CC2530和DS18B20组成的温度传感节点小巧灵活,受周围环境影响较小,可以适用于多种非极限温度场合和狭小空间设备数字测温和控制领域,如:电缆沟测温、高炉水循环测温、锅炉测温、机房测温、农业大棚测温、弹药库测温等。

中国矿业大学2014届本科生毕业设计 第30页 无线传输的方式,避免了复杂的布线的繁琐,同时也降低了成本,节省人力财力。还有一大优点就是成员节点可以随时加入或退出网络,不需要人为管理,这也节省了人力财力。

基于CC2530的温度监测系统的众多优点使其在市场上十分具有竞争力,随着ZigBee技术的发展,基于CC2530的温度监测系统必将日趋成熟得到更好的发展。

中国矿业大学2014届本科生毕业设计 第31页 参考文献

[1] 刘慧,王鸣.基于CC2530的温度监测系统设计.工业控制计算机.2012,第25卷,第4期 [2] 曹越.基于ZigBee的温度监测系统开发[硕士学位论文].西安电子科技大学.2013-3-17 [3] 李贺然,滕志军.ZigBee在通信电缆温度监测中的应用.信息技术.2011,(9):111-115 [4] 蒋佳君.浅谈ZigBee技术. wenku.http://www.wodefanwen.com/.2007 [5] 新双恒.CC2530中文数据手册完整版.用户指南.2009-4

[6] 王锋.ZigBee视频教程应用开发指导.锋硕电子科技有限公司.2011-2-10 [7] 王锋.FS_ZigBee协议栈实验指导书.锋硕电子科技有限公司.2010-6-24 [8] 来源于网络.基于ZigBee的温度检测系统设计.wenku.http://www.wodefanwen.com/.2009

[9] 张晓娜,郭万有.基于ZigBee技术的无线温度传感网络节点的设计.西安电子科技大学.2011-3[17]

章伟聪,俞新武,李忠成.基于CC2530及ZigBee协议栈设计无线网络传感节点.计算机系统应用.2011,第07期

[10] 张胜.基于ZigBee无线传感网和模糊控制的温室番茄智能灌溉系统设计.浙江大学.2011 [11] 李正明,张兴伟,柳宏川.基于CC2530的温湿度监测系统的设计与实现.测控技术.2013,第05期 [12] 纪金水.基于IEEE 802.15.4标准技术的无线远程自动监测传感器网络的设计与实现.自动化与仪器仪表.2007,第2期

[13] Jianming Liao,Xueqin He,Guoming Lu. THE RESEARCH AND DESIGN OF ZIGBEE WIRELESS

NETWORKING BASED ON CC2530.

[14] Minghui Wu, Qing Xie, ”The Design of Wireless Medical Monitoring Network Based on ZigBee”, 2nd

International Conference on Network Computing and Information Security, Shanghai, PEOPLES R CHINA,pp.705-713,Dec.2012.

[15] Texas Instrument .Z-Stack Developer’s Guide.Document Number: SWRA176.

[16] Francesca Cuomo, Anna Abbagnale and Emanuele Cipollone,”Cross-layer network formation for

energy-efficient IEEE 802.15.4/ZigBee Wireless Sensor Networks”,Ad Hoc Networks,Vol 11, No. 2,pp.672-686,Mar.2013.

[17] Texas Instrument. CC2530 Datasheet.2009

[18] Xin Li, Design of ZigBee Network Node Based on CC2530, PLC&FA, pp.97-99, Mar.2011.

[19] Bingwu Ning,” Research and implementation of ZigBee network Networking”, Master’s Thesis, Dalian

University of Technology,Dec.2007.

本文来源:https://www.bwwdw.com/article/11k7.html

Top