基于CC2530温湿度采集系统课程设计报告.docx

上传人:b****4 文档编号:12227744 上传时间:2023-04-17 格式:DOCX 页数:25 大小:34.76KB
下载 相关 举报
基于CC2530温湿度采集系统课程设计报告.docx_第1页
第1页 / 共25页
基于CC2530温湿度采集系统课程设计报告.docx_第2页
第2页 / 共25页
基于CC2530温湿度采集系统课程设计报告.docx_第3页
第3页 / 共25页
基于CC2530温湿度采集系统课程设计报告.docx_第4页
第4页 / 共25页
基于CC2530温湿度采集系统课程设计报告.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

基于CC2530温湿度采集系统课程设计报告.docx

《基于CC2530温湿度采集系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《基于CC2530温湿度采集系统课程设计报告.docx(25页珍藏版)》请在冰豆网上搜索。

基于CC2530温湿度采集系统课程设计报告.docx

基于CC2530温湿度采集系统课程设计报告

*****************

实践教学

*******************

兰州理工大学

计算机与通信学院

 

嵌入式系统开发技术课程设计

 

目录

目录1

摘要2

前言3

一基本原理4

1.1温湿度数据采集原理4

1.1.1SHT10引脚特性4

二系统分析6

2.1具体步骤描述6

2.2程序流程图7

三详细设计8

3.1实现温湿度数据采集的硬件部分8

3.1.1无线传感基本结构及实现原理8

3.1.2使用的实验箱以及软件支持9

3.1.3实现温湿度采集系统节点模块设计9

3.2实现温湿度数据采集的软件部分10

3.2.1ZIGBEE技术概述10

3.2.2ZIGBEE协议栈11

3.2.3ZIGBEE协议栈网络层12

3.2.4AODV路由协议13

3.3总体软件结构图13

3.4核心程序代码14

3.4.1AODV协议源代码分析15

总结18

参考文献19

致谢20

摘要

嵌入式系统是以应用为中心,以计算机为基础,软硬件可定制,适用于不同应用场合对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

嵌入式系统已广泛应用于各种领域,如通信领域、工业控制、交通领域、医疗卫生、消费娱乐等。

正如温湿度采集系统的设计,其包括了数据的采集过程、传输过程以及数据的处理过程是嵌入式系统在国家森林火灾的防范、大型粮库的温湿度控制以及家庭温湿度控制等方面的典型应用。

由于传统的有线方式在数据的检测、采集、以及传输过程中需要大量的节点且这些节点不集中,因此需要大量布线。

为了避免该问题本设计主要从无线传感方向进行改进,本设计对温湿度的读取是利用CC2530的I/O(P1.0和P1.1)模拟一个类IIC的过程,对光照的采集则使用内部的AINO通道。

该系统使用CC2530读取温湿度传感器SHT10的温度和湿度数据,并通过CC2530内部的ADC得到光照传感器的数据。

最后将采样得到的数据转换然后在LCD上显示。

 

关键字:

温湿度的采集CC2530温湿度传感器SHT10

前言

本设计是一种基于CC2530和数字温湿度传感器的温湿度采集系统。

即该系统是采用Zigbee无线通信技术结合传感器,并通过运用Zigbee协议架构组建无线传感网络,来实现主从节点的数据采集和传输的。

同时,需要在网络层通过AODV路由协议来进行节点间的连接以及数据的收发。

总之,基于无线传感技术的无线网络传感器是一种将传感器、控制器、计算能力、通信能力完美的结合于一身的嵌入式设备。

它们跟外界的物理环境交互,实时的采集信息,并且将收集到的信息通过无线传感器网络传送给远程用户。

无线网络传感器一般是由一个低功耗的微控制器(MCU)和若干个存储器、无线电/光通信装置、传感器等组件所集成的,通过传感器、动臂机构、以及通信装置和它们所处的外界物理环境进行交互。

由此而引入的无线传感网络更是一种开创了新的应用领域的新兴概念和技术,广泛被应用于医疗领域、大规模环境监测、智能建筑、战场监视、智能家装、工业自动化和大区域内的目标追踪等领域。

如,在医院Zigbee网络可以帮助医生及时并准确的收集急诊病人的信息及相关度检查结果,从而快速准确的作出诊断;同时,对一些特殊的病人,可让其携带Zigbee终端而对其进行24小时的体温、脉搏控制。

生命诚可贵,时间价更高!

又如,在工业控制领域内,就可以很好的通过无线传感网络实现厂房内不同区域的温湿度的检测及控制,以及相关机器运转状况是否正常的有关信息,统计库存量,等等。

总的来说,我们的工作及生活在无形的改变着,变得更精致更高效更美丽。

而这无形中进行着的神奇改变的关键莫过于高端的技术——嵌入式系统开发技术及无线技术。

一基本原理

1.1温湿度数据采集原理

温湿度探头直接使用IIC接口进行控制,本实验将使用CC2530读取温湿度传感器SHT10的温度和湿度数据,并将采样到的数据转换然后再LCD显示。

其中对温湿度的读取是利用CC2530的I/O(P1.0和P1.1)模拟一个类IIC得过程。

其中该系统所使用的SHT10是一款高度集成的温湿度传感器芯片,提供全标定的数字输出。

它采用专利的CMOSens技术,确保产品具有极高的可靠性与卓越的长期稳定性。

传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上,与14位的A/D转换器以及串行接口电路实现无缝连接。

1.1.1SHT10引脚特性

1.VDD,GNDSHT10的供电电压为2.4~5.5V。

传感器上电后,要等待11ms以越过“休眠”状态。

在此期间无需发送任何指令。

电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。

2.SCK用于微处理器与SHT10之间的通讯同步。

由于接口包含了完全静态逻辑,因而不存在最小SCK频率。

3.DATA三态门用于数据的读取。

DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。

数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。

为避免信号冲突,微处理器应驱动DATA在低电平。

需要一个外部的上拉电阻(例如:

10kΩ)将信号提拉至高电平。

上拉电阻通常已包含在微处理器的I/O电路中。

(1)向SHT10发送命令:

用一组“启动传输”时序,来表示数据传输的初始化。

它包括:

当SCK时钟高电平时DATA翻转为低电平,紧接着SCK变为低电平,随后是在SCK时钟高电平时DATA翻转为高电平。

后续命令包含三个地址位(目前只支持“000”,和五个命令位。

SHT10会以下述方)式表示已正确地接收到指令:

在第8个SCK时钟的下降沿之后,将DATA拉为低电平(ACK位)。

在第9个SCK时钟的下降沿之后,释放DATA(恢复高电平)。

(2)测量时序(RH和T):

发布一组测量命令(‘00000101’表示相对湿度RH,‘00000011’表示温度T)后,控制器要等待测量结束。

这个过程需要大约11/55/210ms,分别对应8/12/14bit测量。

确切的时间随内部晶振速度,最多有±15%变化。

SHTxx通过下拉DATA至低电平并进入空闲模式,表示测量的结束。

控制器在再次触发SCK时钟前,必须等待这个“数据备妥”信号来读出数据。

检测数据可以先被存储,这样控制器可以继续执行其它任务在需要时再读出数据。

接着传输2个字节的测量数据和1个字节的CRC奇偶校验。

需要通过下拉DATA为低电平,uC以确认每个字节。

所有的数据从MSB开始,右值有效(例如:

对于12bit数据,从第5个SCK时钟起算作MSB;而对于8bit数据,首字节则无意义)。

用CRC数据的确认位,表明通讯结束。

如果不使用CRC-8校验,控制器可以在测量值LSB后,通过保持确认位ack高电平,来中止通讯。

在测量和通讯结束后,SHTxx自动转入休眠模式。

(3)通讯复位时序:

如果与SHTxx通讯中断,下列信号时序可以复位串口:

当DATA保持高电平时,触发SCK时钟9次或更多。

在下一次指令前,发送一个“传输启动”时序。

这些时序只复位串口,状态寄存器内容仍然保留。

二系统分析

嵌入式温湿度采集系统是一种基于CC2530和数字温湿度传感器SHT10的温湿度采集系统。

该系统采用Zigbee无线通信技术结合传感器,通过运用Zigbee协议架构组建无线传感网络,实现主从节点的数据采集和传输,以及一点对多点,两点之间的通信。

并且也是基于Zigbee协议栈的中心节点和终端节点的协议传输,主要是从Zigbee协议栈网络层里AODV路由协议着手,在网络层通过AODV路由协议进行节点间的连接以及数据的收发。

2.1具体步骤描述

1、给智能主板供电(USB外接电源或2节干电池);

2、将一个无线节点模块插入到带LCD的智能主板的相应位置;

3、将温湿度及光电传感器模块插入到智能主板的传感及控制扩展口位置;

4、将CC2530仿真器的一端通过USB线(A型转B型)连接到PC机,另一端通过10Pin下载线连接到智能主板的CC2530JTAG口(J203);

5、将智能主板上电源开关拨至开位置。

按下仿真器上的按钮,仿真器上的指示灯为绿色时,表示连接成功;

6、使用IAR7.51打开“…\OURS_CC2530LIB\lib10(HumiTempLight)\IAR_files”下的HumiTempLight.eww文件,下载运行程序;

7、观察LCD上温度、湿度和光照强度的变化;

8、用一个物体挡住光照传感器的光线,观察LCD上光照强度数据的变化;

9、向温湿度传感器吹一口气体,观察LCD上温湿度数据的变

2.2程序流程图

显示温湿度数据

图1-1系统程序流程图

三详细设计

本设计是基于CC2530的温湿度数据采集系统设计。

因此,其重点是温湿度数据采集设计的实现,主要可分为二大部分,一是实现无线传感的硬件模块;二是实现无线传感的软件支持,也就是基于Zigbee协议架构的编程。

实现温湿度数据采集的硬件部分主要包括:

无线传感基本结构、无线传感实现原理、本设计所使用的实验箱以及软件支持、常见的无线传感模块以及实现基于CC2530的温湿度采集系统节点模块设计。

实现温湿度数据采集的软件部分主要包括:

Zigbee协议栈整体架构、Zigbee协议栈网络层、AODV路由协议。

3.1实现温湿度数据采集的硬件部分

嵌入式温湿度采集系统设计的硬件部分可以大体有无线传感基本结构、无线传感实现原理、本设计所使用的实验箱以及软件支持、常见的无线传感模块以及实现基于CC2530的温湿度采集系统节点模块设计等组成。

其具体内容如下:

3.1.1无线传感基本结构及实现原理

无线传感器网络在设计目标方面是以数据为中心的,在无线传感器网络中,因为节点通常运行在人无法接近的恶劣甚至危险的远程环境中,所以除了少数节点需要移动以外,大部分节点都是静止不动的。

在被监测区域内,节点任意散落,节点除了需要完成感测特定的对象以外,还需要进行简单的计算,维持互相之间的网络连接等功能。

并且由于能源的无法替代以及低功耗的多跳通信模式节,设计无线传感节点时,有效的延长网络的生命周期以及节点的低功耗成为无线传感器网络研究的核心问题,其无线传感节点模型如下图1-2所示。

无线传感网络的建立是基于传感器加无线传输模块的,传感器采集的数据,简单处理后经过无线传输模块传到服务器或应用终端。

目标、观测节点、传感节点和感知视场是无线传感器网络所包括的4个基本实体对象。

大量传感节点随机部署,单个节点经过初始的通信和协商,通过自组织方式自行配置,形成一个传输信息的单跳链接或一系列无线网络节点组成的网络,协同形成对目标的感知视场。

传感节点检测的目标信号经过传感器本地简单处理后通过单播或广播以多跳的方式通过邻近传感节点传输到观测节点。

用户和远程任务管理单元则能够通过卫星通信网络或Internet等外部网络,与观测节点进行数据信息的交互。

观测节点向网络发布查询请求和控制指令,接收传感节点返回的目标信息。

存储器

图1-2无线传感节点模型

3.1.2使用的实验箱以及软件支持

物联网创新实验系统IOV-T-2530采用系列传感器模块和无线节点模块组成无线传感网,扩展嵌入式网关实现广域访问,可实现多种物联网构架,完成物联网相关的各种传感器的信息采集、无线信号收发、Zigbee网络通讯、组件控制全过程。

该工具箱提供了无线传感网通信模块、基本的传感器及控制器模块、嵌入式网关、计算机服务器参考软件等。

3.1.3实现温湿度采集系统节点模块设计

实验系统包含4个无线传感网通信节点和一个无线网络协调器。

其中具体情况如下:

无线节点模块:

主要有射频单片机构成,MCU是TI的CC2530,2.4G载频,棒状天线。

传感器及控制模块:

系列传感器模块,包括温湿度传感模块、继电器模块和RS232模块等,也可以通过总线扩展用户自己的传感器及控制器部件。

电源板或智能主板:

即实现无线节点模块与传感及控制模块的连接,又实现系统供电,目前主要有两节电池供电,保留外接电源接口,可以直接有直流电供电。

3.2实现温湿度数据采集的软件部分

实现温湿度数据采集的软件部分主要有Zigbee技术概述、Zigbee协议栈整体架构、Zigbee协议栈网络层、AODV路由协议等几部分组成。

而Zigbee协议栈网络层主要包括:

网络层概述、网络层所实现功能、网络层中常用路由协议。

AODV路由协议主要包括:

协议概述、协议的基本原理、AODV路由协议消息控制帧。

一下将是温湿度数据采集的软件部分各部分的具体介绍:

3.2.1ZIGBEE技术概述

Zigbee技术的使用与发展很大程度上弥补了无线通信市场上低功耗、低成本、低速率的空缺。

同时随着Zigbee技术的深入发展和应用,越来越多的注意力和研究力量将会转到应用的设计、实现互联互通测试和市场的推广等方面。

Zigbee技术的关键点是发展一种易布建、低成本、低功耗的无线网络。

Zigbee技术的应用前景非常好。

Zigbee在未来的几年里将在工业无线定位、工业控制、消费电子、汽车自动化、家庭网络、楼宇自动化、医用设备控制等多个控制领域具有广泛的应用,特别是工业控制和家庭自动化,将会成为今后Zigbee芯片的主要应用领域。

通常符合以下条件之一的应用,都可以考虑采用Zigbee技术:

(1)网点多:

需要数据采集或监控的网点多。

(2)低传输量:

要求传输的数据量不大且要求数据成本低。

(3)可靠性高:

要求数据传输可靠性、全性高。

(4)体积小:

设备体积很小,体积较大的充电电池或者电源模块不便放置。

(5)电池供电。

(6)覆盖量大:

所需检测点监测点多,地形复杂,需要较大的网络覆盖面积。

(7)现有移动网络的覆盖盲区。

(8)遥测、遥控系统:

使用现存移动网络进行的低数据量传输。

(9)局部区域移动目标的定位系统:

使用GPS效果差、成本高的。

Zigbee无线传感网络是基于IEEE802.15.4技术标准和Zigbee网络协议而设计的无线数据传输网络,该网络主要应用在压力过程控制数据采集、流量过程控制数据采集、温度湿度监控、楼宇自动化、工业控制、数据中心、社区安防、设备监控、环境数据监控、制冷监控、仓库货物监控等方面。

适用于蔬菜大棚温度、湿度和土壤酸碱度监控,钢铁冶炼温度控制,煤气抄表等各个领域。

这种网络主要用于无线系统中短距离的连接,提供传感器网络接入,能够满足各种传感器的数据输出和输入控制的命令和信息的需求,实现系统网络化、无线化。

Zigbee技术是一种应用于各种电子设备之间的无线通信技术,这种通信组网是基于中短距离范围内、低传输速率下的。

根据Zigbee技术的本质,它具有下列特性:

低功耗、高度扩展性、可靠性高等。

3.2.2ZIGBEE协议栈

Zigbee协议栈由一组子层组成,每一层为其上层提供一定的特定服务:

一个数据实体提供数据传输服务,一个管理实体提供管理、维护等服务。

每个服务实体通过一个服务接入点(SAP)为其上层提供服务接口,并且每个服务接入点(SAP)提供了一系列的基本服务指令来实现相应的功能。

Zigbee协议栈中包括应以下各个子层:

(1)APP(ApplicationProgramming):

应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容,在协议栈里面一般是以操作系统的任务实现的。

(2)HAL(Hardware(H/W)AbstractionLayer):

硬件层目录,包含有与硬件相关的配置和驱动及操作函数。

ZigBee硬件层通过射频固件和射频硬件提供了一个从MAC层以硬件层无线信道的接口。

在硬件层中,包含一个硬件层管理实体(PLME),该实体通过调用硬件层的管理功能函数,为硬件层管理服务提供其接口,同时,还负责维护由硬件层所管理的目标数据库,该数据库包含有硬件层个域网络的基本信息。

(3)MAC:

介质接入控制子层,包含了MAC层的参数配置文件及其MAC的LIB库的函数接口文件。

实现的功能有:

1、能产生网络信标。

2、支持PAN的连接和断开连接。

3、同信标保持同步。

4、在对等的MAC实体之间提供一个可靠的通信链路。

5、处理和维护GTS机制。

6、信道接入采用CSMA-CA接入机制。

7、支持设备的安全性。

介质访问控制层(MAC)帧被称为MAC协议数据单元(MPDU),其长度不超过127个字节。

它具有四种不同的帧形式,即信标帧、数据帧、确认帧和命令帧。

(4)MT(MonitorTest):

实现通过串口可控各层,与各层进行直接交互。

(5)NWK(ZigBeeNetworkLayer):

网络层目录,含网络层配置参数文件及网络层库的函数接口文件,APS层库的函数接口。

(6)OSAL(OperatingSystem(OS)AbstractionLayer):

协议栈的操作系统。

(7)Profile:

AF(Applicationwork)层目录,包含AF层处理函数文件。

(8)Security:

安全层目录,安全层处理函数,比如加密函数等。

(9)Services:

地址处理函数目录,包括着地址模式的定义及地址处理函数。

(10)0Tools:

工程配置目录,包括空间划分及ZStack相关配置信息。

(11)ZDO(ZigBeeDeviceObjects):

ZDO目录。

(12)ZMac:

MAC层目录,包括MAC层参数配置及MAC层LIB库函数回调处理函数。

(13)ZMain:

主函数目录,包括入口函数及硬件配置文件。

(14)Output:

输出文件目录,这个EW8051IDE自动生成的。

3.2.3ZIGBEE协议栈网络层

ZigBee网络层必须提供一定的功能,其主要是提供一些必要的函数,以保证IEEE802.15.4-2003ZigBee协议栈的MAC层能够正确操作,正常工作,并且为应用层提供一个合适的服务接口。

为了和应用层通信,必须向其提供接口,网络层的概念包括了两个必要的功能服务实体。

它们分别为数据服务实体(NLDE)和管理服务实体(NLME)。

网络层数据实体(NLDE)通过网络层相关的数据库服务接入点(NLDE-SAP)提供数据传输服务,网络层管理实体(NLME)通过网络层相关的管理库服务接入点(NLME-SAP)提供网络管理服务,网络层管理实体利用网络层数据实体来获得一些网络管理任务,并完成一些网络的管理工作。

并且,网络层管理实体还维护一个管理对象的数据库,叫做网络信息库(NIB),网络层管理实体完成对网络信息库(NIB)的维护和管理。

3.2.4AODV路由协议

AODV自组织按需请求型距离向量路由协议(AdHocOnDemandDistanceVector,简称AODV),AODV采用的是逐跳转发分组方式,在每个节点之间保存了路由请求和路由回答的结果,因此路由的头部不需要携带完整的路由信息,从而提高了协议的效率。

算法旨在多个移动节点中建立和维护一个自启动的,动态的,多跳路由的专属网络。

它是一种按需的改进的距离向量路由协议,具有按需路由协议的特点即在AODV路由协议中,网络中的每个节点在需要进行通信时才发送路由分组,而不会周期性地交互路由信息以得到所有其它主机的路由;同时具有距离向量路由协议的一些特点,即各节点路由表只维护本节点到其他节点的路由,而无需掌握全网拓扑结构。

网络中连接的断开和异动都会影响网络的拓扑结构,AODV使得移动节点能适时对这种变化做出响应。

AODV的操作是无自环的,并且由于解决了Bellman-Ford“无穷计数”的问题,使得该算法在网络拓扑变化时能够快速收敛。

当一个连接断开时,AODV会告知所有受到影响的节点,这些节点会让用到这个连接的路由失效。

AODV的一个显著特点是它在每个路由表项上使用了目的序列号。

目的序列号由目的节点创建,并且被包含在路由信息中,然后这些路由信息将被回发到所有向它发起请求的节点。

目的序列号的使用确保了无回环,并且易于编程。

如果到一个目的有两条路由可供选择,那么收到请求的节点将会选择序列号最大的那一条。

此外,AODV另一个显著的特点是它加入了组播路由协议扩展,并支持QOS。

它的缺点是:

不支持单向信道,原因是AODV协议基于双向信道的假设工作,路由回答分组直接沿着路由请求的反方向回到源节点。

3.3总体软件结构图

该温湿度数据采集系统是由温湿度探头直接以IIC接口进行控制,并用CC2530读取温湿度传感器SHT10的温度和湿度数据,并将采样到的数据转换然后再LCD显示。

其中对温湿度的读取是利用CC2530的I/O(P1.0和P1.1)模拟一个类IIC得过程,而使用的SHT10是一款高度集成的温湿度传感器芯片。

因此,可以将该过程划分为三个子模块:

温度数据采集模块、数据处理模块、湿度数据采集模块,其总体软件结构图如图1-3所示。

湿度处理模块

图1-3总体软件结构图

3.4核心程序代码

voidmain()

{

inttempera;

inthumidity;

chars[16];

UINT8adc0_value[2];

floatnum=0;

SET_MAIN_CLOCK_SOURCE(CRYSTAL);//设置系统时钟源为32MHz晶体振荡器

GUI_Init();//GUI初始化

GUI_SetColor(1,0);//显示色为亮点,背景色为暗点

GUI_PutString5_7(25,6,"OURS-CC2530");//显示OURS-CC2530

GUI_PutString5_7(10,22,"Temp:

");

GUI_PutString5_7(10,35,"Humi:

");

GUI_PutString5_7(10,48,"Light:

");

LCM_Refresh();

while

(1)

{

th_read(&tempera,&humidity);//读取温度和湿度

sprintf(s,(char*)"%d%dC",((INT16)((int)tempera/10)),

((INT16)((int)tempera%10)));//将温度结果转换为字符串

GUI_PutString5_7(48,22,(char*)s);//显示结果

LCM_Refresh();

sprintf(s,(char*)"%d%d%%",((INT16)((int)humidity/10)),

((INT16)((int)humidity%10)));//将湿度结果转换为字符串

GUI_PutString5_7(48,35,(char*)s);//显示结果

LCM_Refresh();

3.4.1AODV协议源代码分析

1、VoidAODV:

:

recv(Packet*p,Handler*)

 //判断是否是aodv包,是则调用函数recvAODV(p)

if(ch->ptype()==PT_AODV){ recvAODV(p);

//本节点产生的数据包,添加IP头

if((ih->saddr()==index)&&(ch->num_forwards()==0)) AddtheIPHeader

//收到本节点发送的包,说明有

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

当前位置:首页 > 高等教育 > 教育学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1