基于无线传感网的温度监控系统的设计与实现_第1页
基于无线传感网的温度监控系统的设计与实现_第2页
基于无线传感网的温度监控系统的设计与实现_第3页
基于无线传感网的温度监控系统的设计与实现_第4页
基于无线传感网的温度监控系统的设计与实现_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于无线传感网的温度监控系统的设计与实现摘 要无线传感网是由众多部署在复杂环境中的节点组成的,利用节点收集数据,分析后做出决策,ZigBee 技术作为一种新兴的近距离、低功耗的无线传感网技术,获得了广泛支持,成为当前研究的热点和重点之一. 本文介绍了在对无线传感网以及 ZigBee 协议栈学习的基础上,设计节点采集温度等数据的程序,以及开发上位机的监控软件,通过实验平台进行组网,将节点上采集的数据发送给协调器,再通过以太网将数据发送给上位机软件,利用监控软件监控数据的变化,实现对温度等数据的监控功能。 该系统的目标是实时监控环境温度变化,并在温度异常时发出警报。利用无线传感网,本系统可部署在各

2、种需要温度监控的环境中。关键词:无线传感网 ZIGBEECC2430 Z-STACK 信息采集Design and realization of temperature monitoring system based on wireless sensor networkABSTRACT Wireless sensor network is composed of numerous of nodes deployed in a complex environment, using node gather data and analysising to make a decision , ZigB

3、ee technology as a new near distance and low power wireless sensor network technology, receives broad support,and has become one of research hot spot and focus on the current. In this paper,based on Studying on wireless sensor network, and ZigBee protocol stack, i designed the program of node temper

4、ature data acquisition as well as the development of PC monitoring software, through the experiment platform for network, the data collected on nodes is sent to the coordinator, then the coordinator sent the data to PC via Ethernet software.we can use monitoring software to monitor the change of the

5、 data,and then realize the temperature data of monitoring and other functions. The goal of the system is real-time monitoring the environment temperature changes, and sound an alarm when the temperature is abnormal . Using wireless sensor network, this system can be deployed in a variety of environm

6、ent needing temperature monitoring.Key words: Zigbee, wireless sensor network, Temperature Acquisition ,Z-Stack目 录第一章 绪论.11.1 论文研究的背景和意义 .11.2 研究现状及发展趋势 .11.3 本文主要结构 .2第二章 ZIGBEE 协议栈.52.1 ZIGBEE协议栈简介 .52.2 设备类型 .62.2.1 协调器.72.2.2 路由器.72.2.3 终端设备.72.2.4 设备的协议栈配置.72.3 寻址 .72.3.1 寻址类型.82.3.2 网络地址分配.82.

7、3.3Zstack 寻址.92.4 本章总结 .10第三章 开发平台与环境分析.113.1 开发平台介绍 .113.1.1 实验平台简介.113.1.2 仿真器.123.1.3 网关主板.133.1.4 有源感知节点.133.1.5 Zigbee 模块.143.2 软件开发环境 .15第四章 系统设计与实现.214.1 系统整体设计 .214.2 模块的软件设计 .224.2.1 模块软件整体设计.224.2.2 添加任务过程分析 .234.2.3 具体功能实现 .244.2.4 上位机监控软件开发.274.3 本章小结 .29第五章 系统运行与演示.305.1 系统连接与配置 .305.2

8、编译和下载项目文件 .315.3 运行监控系统 .32结束语.34参考文献.35附录.36致谢.57天津理工大学 2013 届本科毕业设计说明书00第一章 绪论1.1 论文研究的背景和意义伴随着着无线网络通信、大规模集成电路、传感器等技术的快速发展和逐渐成熟,无线传感器网络(Wireless Sensor Network,WSN)应运而生。无线传感网络是由部署在一定区域内的数量巨大的传感器节点,通过自组织形成多跳网络,进行协作的感知、采集区域内的信息,经过处理并最终发送给观察者。无线传感网中的节点具有体积小,数量多,能耗低,集成无线通信以及数据采集和处理功能,它们通过无线信道通信,自组织的构成

9、网络。传感器中包括了多种传感器,可以测量周围环境的温度,湿度,光强,RSSI 值等众多对人类有价值的信息和现象。在采集数据后,还可以通过网关连接到网络基础设施中,比如将数据发送给较近的基站,达到讲采集的数据和信息传送给远程的终端的目的。所以,传感器节点在无线传感网中起着基础作用,其设计的好坏将影响整个系统和网络的质量 CC2430 是一种低功耗,高效率的片上系统,可以很好的解决无线传感网络中能量消耗较大的问题。CC2430 芯片是由 Chipon 公司开发的全球首款集成了 ZigBee 协议的片上系统解决方案,外置元件需要较少,成本低廉,可以很廉价、快速的构建 Zigbee 节点。CC2430

10、 芯片延用了以往 CC2420 芯片的架构,在单个芯片上整合了 ZigBee 射频(RF)前端、内存和微控制器。它使用 1 个 8 位 MCU(8051) ,具有 128 KB 可编程闪存和 8 KB 的 RAM,还包含数字模拟转换器、定时器、AES128 协同处理器、看门狗定时器、32 kHz 晶振的休眠模式定时器、上电复位电路以及 21 个可编程 I/O 引脚。CC2430 芯片采用 0.18mCMOS 工艺生产,在接收和发射模式下电流损耗分别低于 27mA 或 25 mA。CC2430 的休眠模式和转换到主动模式的超短时间的特性,特别适合那些要求电池寿命非常长的应用。1.2 研究现状及发

11、展趋势 无线传感器网络将逻辑中的信息世界与客观的物理世界连接、融合在一起,极大改变了人类与自然界的交互方式。人们通过传感器网络可以直接感知客观的世界,从而极大地扩展现有网络的功能和人类认识世界的能力以及范围。美国商业周刊和 MI 技术评论曾经在预测未来技术发展的报告中,分别将无线传感器网络列为改变世界的 10 大技术之一以及 21 世纪最有影响的 21 项技术。同时,无线传感器网络、塑料电子学和仿生人体器官也被称为全球未来天津理工大学 2013 届本科毕业设计说明书11三大高科技产业。最近几年,随着成本的降低,无线传感器网络已经在如下几个领域中有了大规模应用:1)环境监测由于环境污染问题越来越

12、突出,人们对与环境的保护愈发关注,于是对于环境的监测需求相应增加。无线传感器网络为在环境监测中采集数据提供很大便利,同时还可以减少对环境的破坏。无线传感器网络可以环境变化对农作物的影响,跟踪候鸟和昆虫的迁移,监测大气、海洋和土壤的成分等。2)医疗护理无线传感器网络也可以应用在医疗和护理领域。英特尔公司推出的基于无线传感器网络的家庭护理技术即为其中之一,该系统利用在鞋、家具以家用电器等家用设备中嵌入传感器,对老龄人士、阿尔茨海默氏病患者以及残障人士的家庭生活有很大帮助。3)军事领域由于无线传感器网络节点造价低廉,可以密集随机的分布在各种恶劣的战场环境中,包括侦察敌情、监控兵力、装备和物资,判断生

13、物化学攻击等多方面用途。目前无线传感器网络还存在着如下问题:1)网络内节点的通信问题。传感器节点在正常通信过程中,信号可能被一些障碍物阻挡而受到影响,怎样提高传感器节点的穿透性是亟待解决的问题。2)延长传感器网络的使用寿命。现在一般使用高能电池、降低传感节点的功耗两种方式来解决这个问题。此外还有传感器网络的自我能量收集技术和电池无线充电技术,但这两项技术尚在研究中,还不成熟。无线传感器网络有着十分广泛的应用前景以及较好的发展趋势,除了在工业、农业、军事、环境、医疗等领域有具有巨大的运用价值,在未来还将在许多新兴领域体现其优越性,如家用、保健、交通等领域。将来微型传感器可以将家用电器等其他日常用

14、品同互联网相连,对这些设备进行远距离控制,这样有利于家庭的安全调控、节电。1.3 本文主要结构 第一章绪论首先简要介绍了无线传感网,接着介绍了无线传感网的研究背景、现状和发展趋势,最后对本题的提出和本文的工作内容做了说明。第二章首先介绍了 Zigbee 技术的体系结构。对 Z-Stack 协议栈的功能及其实现进行了概述,包括地址分配、寻址、节点绑定、路由选择机制,配置 PANID 等功能,以及选择网络加天津理工大学 2013 届本科毕业设计说明书22入等几个方面。第三章对系统整体方案进行了论述,包括硬件介绍和软件设计。硬件主要介绍数据汇聚模块,温度传感器模块;软件设计包括上位机界面设计、数据汇

15、聚模块、温度传感器模块的软件设计。第三章对整个系统的开发平台进了论述,硬件方面主要包括无线龙的无线传感网实验箱,包括主板,协调器,节点,以及相应的硬件模块介绍,在软件方面有嵌入式开发平台 IAR,上位机的监控软件,zigbee 协议栈等。天津理工大学 2013 届本科毕业设计说明书33第二章 ZigBee 协议栈协议栈2.1 zigbee 协议栈简介 Zigbee 协议栈由一系列子层组成,每层为其上层提供特定的服务:数据实体提供数据传输的服务,管理实体则提供其他的全部服务。服务接入点(SAP)为每一层的服务实体为其上一层提供服务的结构,SAP 中也提供了完成服务所需要的服务指令。Zigbee

16、协议栈的结构自上而下包括 zigbee 应用层,IEEE802.15.3MAC 层和IIEEE802.15.4 PHY 层。IEEE802.15.4 定义了最下面的两层:物理层和介质接入控制层。而Zigbee 联盟则提供了应用层和网络层的框架设计,应用层的框架包括了 zigbee 设备对象(ZDO)、应用支持子(APS)以及由制造商制定的应用对象。图 2-1 zigbee 协议栈天津理工大学 2013 届本科毕业设计说明书44 对比于其他无线通信标准,zigbee协议有着明显的优势和特定,需要的套件紧凑且简单,具体实现要求较低,zigbee协议套件的大概最低需求为:8 位处理器,比如80C51

17、;32kb的 ROM,最小软件只需4KB的 ROM,例如 CC2530 芯片,具有 8051 单片机增强型内核,内存为 32 位 128kb。网络主节点,即协调器节点需要更多的 sdram,用来容纳网络中所有节点的设备信息,设备关联表以及与安全有关的密匙存储等等。 Zigbee联盟希望可以建立一种可连接每个电子设备的无线网。并预言zigbee将成为全球最高端的无线技术之一, ,同时IPV6与IEEE802.15.4 结合是传感器网络的发展趋势,因为IPV6采用 128 位地址,可以几乎不受限制的提供地址。 在 IAR 中打开 zigbee 协议栈,其结构如图:图 2.1 zigbee协议栈Ap

18、p :应用层目录,用户在这里创建不同的工程,本目录包含了协议栈的应用层内容和创建项目的内容,一般是以操作系统的任务的形式实现的。HAL:硬件抽象层,包含了与硬件相关的配置信息、驱动及操作函数。MAC:MAC层目录,包含了 mac 层的参数配置文件及其 LIB 库的函数接口文件。MT:实现了通过串口对各层控制,以及与各层进行直接交付。NWK:网络层目录,包含网络层配置参数相关文件和 aps 层库的函数接口以及网络层库函数接口文件及 OSAL:协议栈的操作系统。天津理工大学 2013 届本科毕业设计说明书55PROFILE:AF层的目录。Security:安全层目录,包含安全层的处理函数,如加密函

19、数等。Tools:工程配置目录,包含空间划分、z-stack相关配置的信息。Zdo:zdo目录。Zmac:mac目录,包括mac层参数的配置以及mac层lib库函数回调处理函数。Zmain:主函数的目录,包含入口函数 main 以及硬件配置的文件。Output:输出文件目录,这是由开发环境IAR ew_8051自动生成的。 由此可以看出,整个 zigbee 协议栈已经体现了 zigbee 的全部功能,建立一个 zigbee 项目的方法主要就是对应用层的添加和修改。2.2 设备类型在ZigBee网络中,一共有三种不同的逻辑设备类型:Coordinator(协调器节点),Router(路由器节点)

20、和End-Device(终端设备节点)。ZigBee网络是由一个Coordinator 节点、多个Router 节点、多个 End_Device 节点组成,zigbee网络拓扑结构如下: 图 2.2 zigbee 网络拓扑结构天津理工大学 2013 届本科毕业设计说明书662.2.1 协调器 协调器节点负责整个网络的启动,同时也是网络中的第一个设备。它选择一个可用信道和网络 ID,即 PANID(Personal Area Network ID),随后启动整个网络。协调器也可以协助建立协议栈中的应用层和安全层的绑定. 需要注意的是,协调器的功能主要涉及网络的启动和配置,当完成这些任务后,协调器

21、的功能就类似一个路由器,而接下来整个网络的操作,由于 ZigBee 网络本身的特性,并不依赖协调器的存在。2.2.2 路由器路由器的主要功能是:允许其他设备加入网络,负责多跳路由和协助它的子设备终端之间的通讯,这些子设备通常是由电池供电。通常情况,路由器希望一直处于活动状态,因此它一般必须使用主电源供电。但是当使用树群这种网络模式时,路由允许间隔一定的周期操作一次,即可以使用电池给其供电。2.2.3 终端设备 终端设备不负责维持网络结构,一般是一个电池供电的设备,它可以处于睡眠模式或者唤醒模式。通常,终端设备对存储空间(特别是RAM需要)较小。注意:不同的设备类型在 IAR 中编译时要选择不用

22、的编译选项,不同的设备类型的项目文件是相互独立的。2.2.4 设备的栈配置ZigBee 栈参数的集合需要被配置为一定的值,和这些值在一起被称之为栈配置。ZigBee联盟已经定义了这些由栈配置组成的栈参数。网络中的所有设备一定要遵循同样的栈配置。为了促进互用性这个目标,ZigBee 联盟为 ZigBee2006 规范定义了栈配置。所有遵循此栈配置的设备可以用在其他开发商开发的遵循同样栈配置的网络中。2.3 寻址2.3.1 地址类型ZigBee 设备有两种类型的地址。一种是 16 位网络地址,另一种是 64 位IEEE地址,即MAC地址。天津理工大学 2013 届本科毕业设计说明书7716 位网络

23、地址是设备加入网络后分配的。它在网络中是唯一的,用来在网络中鉴别设备和发送数据。64 位地址是由IEEE来维护和分配全球唯一的地址,它通常由制造商或者被安装时设置,设备将在它的生命周期中一直拥有它。2.3.2 网络地址分配ZigBee 使用的是分布式寻址方案来为设备分配网络地址。此方案能保证在整个网络中所有分配的地址是唯一的。这是必须的,只有这样才能保证一个特定的数据包能够发给它指定的设备,而不出现混乱。同时,这个寻址算法的分布特性保证设备只能与他的父设备通讯来接受一个网络地址,并不需要整个网络范围内通讯的地址分配,这有助于提高网络的可测量性。 在每个路由加入网络之前,寻址方案需要知道和配置一

24、些参数。这些参数分别是MAX_DEPTH,MAX_ROUTERS和MAX_CHILDREN。这些参数也是栈配置的一部分。 ZigBee2006协议栈已经规定了这些参数的值:MAX_DEPTH =5,MAX_ROUTERS = 6和MAX_CHILDREN = 20。 MAX_DEPTH决定网络的最大深度。协调器(Coordinator)的深度规定为 0,其儿子位于深度 1,它的儿子的儿子位于深度 2,以此类推。MAX_DEPTH 参数限制了网络在物理上的长度。 MAX_ROUTER决定一个路由(Router)或者一个协调器(Coordinator)节点可以处理的具有路由功能的儿子节点的最大个数

25、。MAX_CHILDREN决定一个路由(Router)或者一个协调器节点可以处理的儿子节点的最大个数。 2.3.3 Z-Stack 寻址 在 zigbee 网络中向设备发送数据时,应用程序通常使用 AF_DataRequest()函数,此函数将数据包发送给一个 afAddrType 类型的目标设备。其数据结构定义如下:typedef structunion天津理工大学 2013 届本科毕业设计说明书88uint16 shortAddr; addr;afAddrMode_t addrMode;byte endPoint; afAddrType_t;目的地址模式可以设置为以下几个值:typedef

26、 enumafAddrNotPresent = AddrNotPresent,afAddr16Bit = Addr16Bit,afAddrGroup = AddrGroup,afAddrBroadcast = AddrBroadcast afAddrMode_t;在Zigbee中,数据包可以有单点传送(unicast)、多点传送(multicast)或者广播传送三种方式,所以必须有地址模式参数来标明哪种方式。单点传送中数据包只发送给一个设备,多点传送中数据包则要传送给一组设备,广播中数据包则要发送给整个网络的所有节点。2.3.4 重要设备地址 应用程序如果需要知道它的父亲地址和它的设备地址。

27、使用下面的函数获取该设备的父设备的地址(在 ZStack API 中定义):NLME_GetCoordShortAddr()返回本设备的父设备的 16 位网络地址NLME_GetCoordExtAddr()返回本设备的父设备的 64 位扩展地址使用下面的函数获取设备地址:NLME_GetShortAddr()返回本设备的 16 位网络地址NLME_GetExtAddr()返回本设备的 64 位扩展地址天津理工大学 2013 届本科毕业设计说明书992.4 本章小结本章节主要介绍了 zigbee 协议栈,其实 TI 公司的 Zigbee 协议总体而言并不复杂,只需开发者用心的专注于应用层与驱动测

28、层的开发,并且协议栈有很多现成的模板可以用。本章重点讲述的 zigbee 协议中设计的一些重要属于,如设备类型,寻址等,详细了解这些内容对开发者更深入的了解 zigbee 协议标准有很大的意义。其实作为 zigbee 无线通信网络的一名开发者,仅仅需了解 zigbee 中一些关键的问题,不需要了解太多协议的具体实现细节,就可以完成开发工作。 天津理工大学 2013 届本科毕业设计说明书1010 第三章 开发平台与环境分析3.1 开发平台整体介绍 3.1.1 实验设备简介: 本选题采用无线龙公司的理想系列ZigBee 无线传感器网络平台DREAMRF-CC2430 ,该平台支持国际802.15.

29、4 标准和ZigBee2006 标准。 DREAMRF-CC2430 配套提供ZigBee 模块提供了93dB 的链路质量,优秀的接收器灵敏度和健壮的抗干扰性,多种供电模式,以及一套广泛的外设集包括2个UART、14 位ADC 和21 个通用GPIO,4 个定时器,AES 加密处理器,DMA 控制器等等。DREAMRF-CC2430 功能特点:1、具有 USB 高速下载、支持IAR 集成开发环境;2、具有在线下载、调试、仿真功能;3、提供ZigBee2006 协议栈;4、基础例子程序以源代码方式提供;5、灵活配置。根据需求可选配多种无线模块及扩展传感器板;6、开发方便、快捷、简单;7、C51

30、编程。熟悉、顺手、入手快;8、具有液晶显示。直观、明了;9、采用最新ARM9 微控制器为核心,配置大型彩色TFT 液晶显示屏和高级触摸屏,支持UCOS-II 实时操作系统和GUI 图形软件,文件系统等,将ARM 32 位微控制器和多种无线网络模块有机结合,为使用32 位ARM 微控制器开发各种无线网络,提供了方便途径。10、板上模块接口包括最新的温度、湿度,光线,压力,3 轴加速度等传感器,LED, 键盘,串口,直流、步进电机等;也可以通过模块置换增加更多类型传感器模块;大量软件代码,实现了和这些传感器的控制接口,是ARM 微控制器可以和各种无线有线网络进行实时连接,实时数据采集和分析,自动控

31、制管理。DREAMRF-CC2430 系统结构:理想系列 ZigBee 无线传感器网络平台DREAMRF-CC2430 由1 .PC 机部分、2.网关部分、3.路由节点部分、4.传感器节点部分四部分组成,用户可以很方便的实现传感器网络无线化,网络化,规模化的演示,教学,观测和再次开发。整体开发概念示意图如图1 所示。1 PC 机:完成接收网关数据和发送指令,实现可视化,形象化人机界面,方便用户操作,观察;天津理工大学 2013 届本科毕业设计说明书11112 网关:完成通过计算机发送的指令发送或接收路由节点或者传感器节点数据,并将接收到的数据发送给计算机;3 路由节点: 在网关不能和所有的传感

32、器节点通信时,路由节点作为一种中介使网关和传感器节点通信,实现路由通信功能;4 传感器节点:完成对设备的控制和数据的采集,包括灯的控制温度、光照度、加速度数据等等。ZigBee 无线传感器网络根据不同的情况可以由一个网关,一个或多个路由器,一个或多个传感器节点组成。系统大小只受PC 软件观测数量,路由深度,网络最大负载量限制。ZigBee2006 无线传感器网络在没有进行网络拓补修改之前支持5 级路由,31101 个网络节点。传感器网络系统结构图如图所示。 图 3_1 传感器网络系统结构3.1.2 仿真器C51RF 无线ZigBee 开发技术核心-C51RF-3 仿真器C51RF-3 仿真器具

33、有在线下载、调试、仿真等功能,具有一个USB接口,一个复位按键以及一根仿真线。 C51RF-3 仿真器通过USB 接口与计算机进行通信,要在CC2430的ZigBee 模块的开发上实现下载、调试(DEBUG)、仿真等的通信都由此接口来实现。仿真器上的复位键用来实现C51RF-3 仿真器的复位,仿真线是一根10芯的下载、调试(DEBUG)、仿真线,通过它与CC2430 的ZigBee模块进行连接。天津理工大学 2013 届本科毕业设计说明书12123.1.3 网关主板 理想系列ZigBee 无线传感器网络平台DREAMRF-CC2430 网关主板包括32 位ARM 高性能微控制器。网关硬件包括彩

34、色OLED 触摸图形显示器,触摸按键,支持UCOS-II 操作系统,GUI 图形软件。集成了802.15.4/ZigBee 网络路由器、网络节点和软件协议栈等完整软件硬件。还包括UHF EPC Gen2 大功率RFID 读卡器及HF 的RFID 读卡器接口。提供光敏、温度、压力(选配) 、蜂鸣器、湿度等感知传感器。图 3_2 网关主板3.1.4 有源感知节点 理想系列 ZigBee 无线传感器网络平台 DREAMRF-CC2430 提供有源网络感知节点,节点提供三种传感器(光敏、温度、加速度)来进行数据采集,并提供 ZigBee 无线模块进行数据传输,提供 2 种电源供电方式进行能源供应。此外

35、有源感知网络节点提供仿真器接口进行程序下载。天津理工大学 2013 届本科毕业设计说明书1313图 3_3 有源感知节点3.1.5 zigbee 模块有源网络感知节点配套 ZigBee 无线模块采用无线龙标准双排 20 针功能引脚 ZigBee图 3_4 zigbee 模块无线模块采用的是 TI 的 ZigBee 片上系统 CC2430 作为微控制器。天津理工大学 2013 届本科毕业设计说明书1414CC2430 是一颗真正的系统芯片(SoC)CMOS 解决方案。这种解决方案能够提高性能并满足以 ZigBee 为基础的 2.4GHz ISM 波段应用对低成本,低功耗的要求。它使用 1 个 8

36、 位MCU(8051) ,具有 32/64/128 KB 可编程闪存和 8KB 的 RAM,还包含模拟数字转换器(ADC)、几个定时器(Timer) 、AES128 协同处理器、看门狗定时器(Watchdog Timer) 、32 kHz 晶振的休眠模式定时器、上电复位电路(Power On Reset)、掉电检测电路(Brown Out Detection)以及 21 个可编程 I/O 引脚。3.2 软件开发环境本题目的开发环境是 IARIAR Embedded Workbench(简称EW)的C/C+交叉编译器和调试器是今天世界最完整的和最容易使用专业嵌入式应用开发工具。EW 对不同的微处

37、理器提供一样直观用户界面。EW 今天已经支持35 种以上的8 位/16 位32 位ARM 的微处理器结构。图 3_5 IAR 界面环境配置为了开发cc2430程序,需要对IAR进行一系列的配置。设置工程选项参数选择 Project 菜单下的 Options 配置与 CC2430 相关的选项。Target 标签天津理工大学 2013 届本科毕业设计说明书1515图3_6 IAR参数配置配置Target,选择Code model 和Data model,以及其它参数。Data Pointer 标签图3_7 IAR参数配置选择数据指针数1 个,16 位。Stack/Heap 标签天津理工大学 201

38、3 届本科毕业设计说明书1616 图3_8 IAR参数配置改变XDATA 栈大小到0 x1FF。单击 Options 中右边框架内的Linker 选项,配置相关的选项。Output 标签选中 Override default 可以在下面的文本框中更改输出文件名。如果要用 C-SPY 进行调试,选中 format 下面的 Debug information for C-SPY, 图3_9 IAR参数配置天津理工大学 2013 届本科毕业设计说明书1717Config 标签单击 Linker command file 栏文本框右边的按钮,选择正确的连接命令文件图3_10 IAR参数配置Code M

39、odel 关系表:Code Model FileNear lnk51ew_cc2430.xclBanked lnk51ew_cc2430b.xclDebugger单击Options 中右边框架内的Debugger 选项,配置相关的选项。在Setup 标签在 Device Description file 选择CC2430.ddf 文件,其位置在程序安装文件夹下如C:Program FilesIAR SystemsEmbedded Workbench 4.05 Evaluation version8051Configderivativeschipcon 。天津理工大学 2013 届本科毕业设计说

40、明书1818。图3_11 IAR参数配置最后按下“ok”保存设置。成功编译工程,并且没有错误信息提示后,按照下图连接硬件系统图3_12 系统连接示意图编译、连接、下载选择 ProjectMake 或按F7 键编译和连接工程,之后projectdebuge 就可以进入调试界面,同时程序将被下载到节点中。天津理工大学 2013 届本科毕业设计说明书1919图 3_13 debug 界面天津理工大学 2013 届本科毕业设计说明书2020第四章 系统设计与实现 4.1 系统总体设计基于无线传感网的监控系统主要分为两部分:zigbee 模块程序开发,上位机监控软件开发。Zigbee 模块的开发是建立在

41、 ZigBee 协议栈的基础上,添加自己的项目,实现 cc2430 节点的启动,传感器收集数据,发送数据,接受命令等功能。数据汇聚模块(主板)负责组建Zigbee 网络,完成传感器模块与上位机(PC)数据的透明传输;数据汇聚模块(主板)通过RS-232 串口与上位机相连。上位机有监控界面可以测环境温度,光强,RSSI 值,多个传感器节点置于不同的监测区域,每个传感器节点把数据传给汇聚节点,在汇聚节点完成数据融合,然后汇聚节点把数据通过串口传给上位机做进一步处理并显示给用户。上位机监控界面需要显示所有温度,光强,RSSI 值数据的大小及变化趋势。 图 4_1 系统整体框图天津理工大学 2013

42、届本科毕业设计说明书21214.2 模块的软件设计4.2.1 模块软件整体设计 Zigbee 网络节点软件系统是建立在 TI 的协议栈 ZStack1.4.31.2.1。通过更改协议栈的配置,可以把协议栈配置为协调器(Coordinator) 、终端(Enddevice) 。此协议栈支持CC2430 芯片,有较高的可靠性。 在各功能节点的协议栈程序设计时,该协议栈采用统一的编写方式,用宏定义语句:def、ifdef、else 等语句区别各功能节点在各协议层中的操作,这样的编写方式将协议栈看成一个整体,提高了协议栈的移植性。根据 ZigBee2006 标准的规范,ZStack1.4.31.2.1

43、 协议栈文件结构如下:App:应用层,包含有具体应用需要的功能函数,可供用户自行修改设计。HAL:硬件抽象层,包含具体芯片的功能函数以及硬件构架的接口参数。MAC:硬件物理层,包含针对具体芯片的物理层封装(主要为 TIMAC-CC2430.lib 中的头文件) ,ZMac 为在其上的 ZigBee 的 MAC 层封装。MT:调试跟踪与监控测试,通过定义 MT_TASK 使能该功能,使设备能与 PC 端的 Z-TOOL 应用程序通信。NWK:网络层,包含有网络层函数封装(主要为协调器与路由器需要的库函数Router.lib 的头文件,或者终端设备所需库文件 EndDevice.lib 中的头文件

44、) 。OSAL:操作系统抽象层,嵌入简易操作系统的函数封装,每个应用都以操作系统的一个任务形式执行。Profile:通用操作框架,包含有设备描述帮助函数,主要对相关设备的通用功能进行封装。Security:安全层,包含 Security.lib 库函数的头文件。Tools:包含应用的配置文件。ZDO:ZigBee 设备对象的相关操作封装。ZMac:ZigBee MAC 层的封装。ZMain:包含 main 函数定义、起始代码以及硬件功能配置函数 OnBoard.h 等。整个协议栈采用中断事件调用机制,任务添加函数 osalTaskAdd()将各层初始化函数指针、各层事件处理函数指针以及各层任务

45、优先级添加到任务表,然后通过中断添加响应事件天津理工大学 2013 届本科毕业设计说明书2222(events) 。整个函数构成消息处理机制,每个层次互不干扰互不影响。本设计中,终端节点负责采集当前的温度数据在现场实时的显示,并最终发送给协调器,在向协调器发送数据的同时还要实时的接收协调器发送过来的温度报警数据,并能够超限报警。路由器只负责在终端节点和协调器之间的距离超过接收不到的情况下转发协调器与终端节点所发送的数据,起到一个中继器的作用。协调器在接收到终端节点发送过来的温度数据后进行相应的处理,然后通过 RS232 发送到上位机显示,对上位机发送来的报警温度进行处理,然后分节点的发送给相应

46、的节点报警。下图为整个系统的流程图图 4_2 系统整体流程4.2.2 添加任务过程分析 在 Zstack(TI 的 Zigbee 协议栈)中,对于每个用户自己新建立的任务通常需要两个相关的处理函数,包括: (1).用于初始化的函数,如:SampleApp_Init(), 这个函数是在 osalInitTasks()这个 osal 中去调用的,其目的就是把一些用户自己写的任务中的一些变量,网络模式,网络终端类型等进行初始化;天津理工大学 2013 届本科毕业设计说明书2323在 osalInitTasks()中实现了多个任务初始化的设置,其中 macTaskInit( taskID+ )到ZDA

47、pp_Init( taskID+ )的几行代码表示对于几个系统运行初始化任务的调用,而用户自己实现的 SampleApp_Init()在最后,这里 taskID 随着任务的增加也随之递增.所以用户自己实现的任务的初始化操作应该在 osalInitTasks()中增加.void osalInitTasks( void )uint8 taskID = 0;/这里很重要, 调用 osal_mem_alloc()为当前 OSAL 中的各任务分配存储空间(实际上是一个任/务数组),并用 tasksEvents 指向该任务数组(任务队列).tasksEvents = (uint16 *)osal_mem_

48、alloc( sizeof( uint16 ) * tasksCnt);osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt); /将 taskSEvents 所指向的空间清零macTaskInit( taskID+ );nwk_init( taskID+ );Hal_Init( taskID+ );#if defined( MT_TASK )MT_TaskInit( taskID+ );#endifAPS_Init( taskID+ );ZDApp_Init( taskID+ );SampleApp_Init( taskID );

49、 /用户自己需要添加的任务 (2).用于引起该任务状态变化的事件发生后所需要执行的事件处理函数,如:SampleApp_ProcessEvent(),这个函数是首先在 const pTaskEventHandlerFn tasksArr 中进行设置(绑定),然后在 osalInitTasks()中如果发生事件进行调用绑定的事件处理函数.4.2.3 具体功能实现(1)Master 节点设计 Master 节点的主要处理函数在uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )函数中实现,此函数主要负责处任务的所有 events

50、,包括计时器,数据传送,以及用户自定义的时间。在本设计中,master 节点还要负责网络的建立,网络节点的加入以及网络号的分配等等。master 节点的流程图如下:天津理工大学 2013 届本科毕业设计说明书2424 图 4_3 master 节点流程图sampleApp_ProcessEvent函数代码如下:case SPI_INCOMING_ZTOOL_PORT:/ /P1_1=!P1_1; HalUARTRead( SPI_MGR_DEFAULT_PORT, UartRxBuf.RxBuf, 32 ); memcpy(LastRecLaddr,UartRxBuf.RXDATA.Laddr

51、,8); HalLedBlink(HAL_LED_1,2,50,1000); ReadFlag = 0;if(& = UartRxBuf.RxBuf0) if(1)/(CheckUartData(&UartRxBuf.RxBuf1,29) = UartRxBuf.RxBuf30)/如果校验通过 switch(UartRxBuf.RXDATA.HeadCom0)/串口命令头case R:天津理工大学 2013 届本科毕业设计说明书2525if(UartRxBuf.RXDATA.HeadCom1 = N) & (UartRxBuf.RXDATA.HeadCom2 = D)/

52、网络发现ReadFlag = 1;/读自己elseReadFlag = 0;/读网络break;case S:case T:case C:ReadFlag = 0;break;if(ReadFlag)UartOutNetDis();/串口输出网络结构elsememcpy(&RfTx.TxBuf0,&UartRxBuf.RxBuf1,29);/装入数据SrcSaddr = 0;flag = 0;for(j=0; jJoinNode.RouterCount; j+)/叛断有无重复加入的节点findflag = 1;for(i=0; i8; i+)if(RfTx.TXDATA.Lad

53、dri != JoinNode.RouterAddrji)天津理工大学 2013 届本科毕业设计说明书2626findflag = 0;break;/不是if(findflag = 0)continue;SrcSaddr = JoinNode.RouterAddrj8;SrcSaddr = 8;SrcSaddr += JoinNode.RouterAddrj9; /查找到网络地址flag = 1;break; if(flag = 0) for(j=0; jJoinNode.RfdCount; j+)/叛断有无重复加入的节点 findflag = 1;for(i=0; i8; i+)if(RfT

54、x.TXDATA.Laddri != JoinNode.RfdAddrji)findflag = 0;break;/不是if(findflag = 0)continue;SrcSaddr = JoinNode.RfdAddrj8;SrcSaddr hdr.event 的内容,决定要进行什么处理。case AF_INCOMING_MSG_CMD:接受到 master 节点的命令,需要对接受的命令进行处理,之后调用 SampleApp_MessageMSGCB( MSGpkt )函数进行处理,主要包括的是读取传感器,包括温度、光感、RSSI 值,将数据发送给 master 节点。switch(Rf

55、Rece.RXDATA.HeadCom0)case R:/读f(RfRece.RXDATA.HeadCom1 = A) & (RfRece.RXDATA.HeadCom2 = S)/读传感器if(RfRece.RXDATA.DataBuf0 = G) & (RfRece.RXDATA.DataBuf1 = M)/读光敏memset(RfTx.TxBuf,x,32);RfTx.TXDATA.HeadCom0 = R;RfTx.TXDATA.HeadCom1 = A;RfTx.TXDATA.HeadCom2 = S; memcpy(RfTx.TXDATA.Laddr,ieeeAdd

56、r,8);/RfTx.TXDATA.Saddr = NLME_GetShortAddr();RfTx.TXDATA.DataBuf0 = G;RfTx.TXDATA.DataBuf1 = M; #ifdef POWER_SAVING Sensor_Delay(3000); #endiftemp = ReadSensorAdc(0);RfTx.TXDATA.DataBuf2 = temp/100 + 0 x30;temp = temp%100;RfTx.TXDATA.DataBuf3 = temp/10 + 0 x30;RfTx.TXDATA.DataBuf4 = temp%10 + 0 x30

57、;RfHaveTxDara = 1;天津理工大学 2013 届本科毕业设计说明书2828else if(RfRece.RXDATA.DataBuf0 = W) & (RfRece.RXDATA.DataBuf1 = D)/读温度 memset(RfTx.TxBuf,x,32); SPIReadTC77Data(); /注:第一次转换温度数据,会出现不准确现像 Sensor_Delay(50); SPIReadTC77Data(); Sensor_Delay(50); temp1 = SPIReadTC77Data(); temp = temp1 / 100;Slave 节点的程序流程图

58、如下: 图 4_4 slave 节点流程图天津理工大学 2013 届本科毕业设计说明书2929Slave 节点的部分主要代码:SampleApp_ProcessEvent( uint8 task_id, uint16 events ) unsigned char *ieeeAddr; uint16 SrcSaddr;afIncomingMSGPacket_t *MSGpkt;if ( events & SYS_EVENT_MSG )MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID ); /检索收到任

59、务信息 while ( MSGpkt )switch ( MSGpkt-hdr.event )case AF_INCOMING_MSG_CMD:SampleApp_MessageMSGCB( MSGpkt );break; /改变网络状态 case ZDO_STATE_CHANGE:SampleApp_NwkState = (devStates_t)(MSGpkt-hdr.status); /网络状态=协调器,路由,设备if(SampleApp_NwkState = DEV_END_DEVICE) #ifdefWXL_RFD SampleApp_RDPSensorDevice(); /初使化设

60、备memset(RfTx.TxBuf,x,32);RfTx.TXDATA.Head = &RfTx.TXDATA.HeadCom0 = J;RfTx.TXDATA.HeadCom1 = O;天津理工大学 2013 届本科毕业设计说明书3030RfTx.TXDATA.HeadCom2 = N;ieeeAddr = NLME_GetExtAddr();memcpy(RfTx.TXDATA.Laddr,ieeeAddr,8); SrcSaddr = NLME_GetShortAddr();RfTx.TXDATA.Saddr0 = SrcSaddr; RfTx.TXDATA.Saddr1 = SrcSaddr8;RfTx.TXDATA.DataBuf0 = R;RfTx.TX

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论