基于cc2530的无线传感网络系统研究1.docx
《基于cc2530的无线传感网络系统研究1.docx》由会员分享,可在线阅读,更多相关《基于cc2530的无线传感网络系统研究1.docx(34页珍藏版)》请在冰豆网上搜索。
基于cc2530的无线传感网络系统研究1
毕业论文(设计)
设计论文题目:
基于CC2530的无线传感
网络系统研究
学生姓名:
学生学号:
专业班级:
学院名称:
指导老师:
毕业论文(设计)原创性声明
本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。
据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。
对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。
作者签名:
日期:
毕业论文(设计)授权使用说明
本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。
有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。
学校可以公布论文(设计)的全部或部分内容。
保密的论文(设计)在解密后适用本规定。
作者签名:
指导教师签名:
日期:
日期:
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
3)其它
基于CC2530的无线传感网络系统研究
摘要
如今,随着物联网的产业的迅猛发展,无线传感网络越来越受国际国内的关注,并且无线传感器网络的发展将有助于全面提升物联网在社会生产生活中的信息互通、感知能力和智能决策能力,他被认为是未来高科技重要产业之一。
而ZigBee技术是一种近距离、低功耗、低复杂度、低成本的双向无线通信技术,主要用于距离短、低功耗且传输速率不高的各种电子设备之间的数据传输。
本文主要对ZigBee无线传输技术的发展和研究现状以及它的无线传输原理进行研究分析,重点对ZigBee组网和如何进行数据的传输进行剖析,给出基于ZigBee的温度无线传感网络设计方案,方案中使用CC2530芯片和温度传感器DS18B20。
关键词:
无线传感网路,ZigBee,DS18B20,CC2530
WirelessSensorNetworkSystemBasedOnCC2530Research
Abstract
Nowadays,withtherapiddevelopmentofInternetindustry,moreandmoregettheattentionoftheinternationalanddomestic,wirelesssensornetworkandthedevelopmentofwirelesssensornetwork(WSN)willhelptoimprovetheInternetofthingsinthesocialproductionandlivingintheinformationcommunication,awareness,andintelligentdecision-makingability,heisconsideredtobeoneofimportanthigh-techindustryinthefuture.AndZigBeetechnologyisakindofcloserange,lowcost,lowpowerconsumptionandlowcomplexityoftwo-waywirelesscommunicationtechnology,itismainlyusedforshortdistanceandlowpowerconsumptionandtransmissionrateisnothighdatatransmissionbetweenvariouskindsofelectronicequipment.
ThisarticlemainlydiscussestheZigBeewirelesstransmissiontechnologyanditsdevelopmentandresearchstatusofwirelesstransmissionprincipleresearchandanalysis,focusingonZigBeenetworkandanalyzeshowtocarryoutdatatransmission,isgivenbasedonthetemperatureoftheZigBeewirelesssensornetworkdesign,schemeusingCC2530chipsandtemperaturesensorDS18B20.
Keywords:
wirelesssensornetwork,ZigBee,DS18B20,CC2530
1绪论
1.1无线传感器网络与ZigBee
1.1.1无线传感器网络概述
无线传感网路是集信息采集、信息传输、信息处理于一体的综合智能信息系统,具有广阔的应用前景,是目前非常活跃的一个领域。
无线传感网络是一种集大量移动或静止的微传感器以自组织和多跳的方式构成无线网络。
无线传感器网络比传统网络相比有很多优点,它综合了传感技术、无线通信和网络技术、嵌入式技术、微机电技术以及分布式信息处理技术等,具体有以下几个特点:
第一,大规模网路。
为了获取精准信息,在监测区通常会分部大量的传感器节点,数量可以达到成千上万。
通过不同空间视角获得信息具有更大的可靠性,降低单个节点的精度要求;大量的节点存在使系统很强的容错性能;大量节点也可以扩大监测范围,减少盲区。
第二,无线传感器网络节点工作在低功耗的状态。
在无线传感器网络中,由于节点体积较小,使每个节点可以利用的能源是十分有限的,而且容易受工作环境等因素的影响,不易更换电源且成本很高,当电源耗尽,节点的功能就会失效。
因为如果大部分节点能源耗尽而退出工作状态,那么整个网络也就处于瘫痪状态了。
所以只有减小节点功耗,才能延长网络的寿命。
第三,具有自组织性。
在无线传感网络中,所有节点的地位都是平等的,没有预先指定中心,各个节点都是通过分布式算法来相互协调,基本不需要人工干预。
通常情况下,各个节点可以相互协进行配置和管理,建立它们之间的连接,完成网络的初始化、启动监测任务、网络的故障自我修复等一系列工作。
要实现上述功能,网络必须具备自组织的能力,即各个传感节点能够感知相邻节点工作状态的变化,来弥补一些失效传感器节,从而使网络拓扑结构随之的动态变化,维护网络结构的正常运行。
第四,多跳路由。
网络中节点通信距离十分有限,一般在几十米到几百米之间,这样节点就只能与之相邻节点通信。
如若想与射频覆盖范围之外的节点通信,就需要中间节点进行路由。
传统网络的多跳路由是通过网关和路由器来实现,而无线传感器网络的多跳级路由是由普通节点完成的。
这样每个节点既是信息发起者也是信息的转发者。
第五,以数据为中心的网路。
无线传感器网络是一个任务型的网络,每个节点都是采用编号标识,而节点的编号是否需要全网唯一,则取决于网络通信协议的设计。
由于传感器节点是随机分布的,节点编号和节点没有必然的联系。
用户使用传感器网络查询事件时,只关心事件是否发给网路,而不是确定某个节点的编号。
网络在获取指定事件的信息后直接汇报给用户。
1.1.2ZigBee的由来和发展
1.1.2.1ZigBee名字的由来
ZiBee的名字起源于蜜蜂之间信息传递的方式,蜜蜂同过一种特定的肢体语言来告知同伴发现了事物,这种肢体语言是Zigzag(之字形,Z字形)以此意义以ZigBee作为一种新的通信技术命名,而ZigBee也通常被称为HomeRFLite或RF-EasyLink亦或是FireFly无线电技术。
ZigBee模块与移动网络基站相似,通信距离从几十米到几百米,并支持无限扩展。
理论上,ZigBee可以由65536个无线模块组成无线网络平台,在整个网络覆盖范围内,所有节点都可以相互通信。
1.1.2.2ZigBee技术的发展
2003年12月,Chipcon公司推出第一款符合2.4GHzIEEE802.15.4标准的射频收发器CC2420,而后又有很多公司推出与CC2420匹配的处理器,其中就有ATMEL公司的Atmega128。
2004年12月,Chipcon公司推出第一个IEEE802.15.4ZigBee片上系统解决方案—CC2430无线单片机,CC2430内部集成一款增强型8051内核以及CC2420。
2005年12月,Chipcon公司推出内嵌定位引擎的芯片CC2431。
2006年2月,TI公司收购了Chipcon公司,又相继推出了一系列的ZigBee芯片,CC2530就是其中之一。
2007年1月,TI公司推出一款基于ZigBee的协议栈—Zstack。
Zstack协议栈符合ZigBee2006规范,支持多种平台,这里面就包括IEEE802.15.4/ZigBee的CC2430片上系统解决方案、基于CC2420的新平台以及TI的MPS430,还支持CC2431。
1.1.3无线传感器网路与ZigBee的关系
无线传感器网络与ZigBee技术之间的关系可以从两方面进行分析:
第一,协议标准:
第二,应用。
从协议标准来说,大多数无线传感器网络的物理层和MAC层都是采用IEEE802.15.4协议标准。
IEEE802.15.4描述了低速率无线个人局域网的物理层和MAC层协议,属于IEEE802.15.4工作组,而ZigBee技术是基于IEEE802.15.4标准的无线技术。
从应用上来说,ZigBee适合低速率、低数据量、低成本的设备。
它们只需要很少的能量,就可以把数据从一个传感器传到另一个传感器,而且可以实现它们之间的组网,实现无线传感器网络分布式、低功耗、自组织的特点。
1.1.3无线传感器网络应用现状
最近几年,由于物联网的发展,无线传感器网络大规模的应用在各个领域中:
1)环境监测
由于人们对与环境的保护越来越关注,环境科学涉及领域愈来愈广,对于环境的监测需求相应增加。
无线传感器网络为环境监测时采集数据提供了方便,并且还可以不影响环境。
无线传感器网络可以运用一定数量的节点来对周围环境的监测。
如森林环境监测、土壤的酸碱度、空气的温湿度、动物的活动等
2)医疗护理
无线传感器网络也可以应用在医疗研究、护理领域,包括对人体各项生理指标的监测,医药的管理等。
罗彻斯特大学的科学家就是利用无线传感器创建了一个智能医疗的房间来监测病人的重要特征(血压、脉搏和呼吸)、睡觉姿势以及一天的活动。
3)军事领域
由于无线传感器网络节点造价低廉,可以密集随机的分布在各种恶劣的战场环境中且,隐蔽性强,可以对敌方进行实时监控,其中包括敌情侦察、兵力、装备和物资监控,为火控和自制导系统提供精准制导等多方面用途。
4)智能家居
现有的智能家居多以有线网络为主,布线繁琐,且网络处理能力差。
而无线传感器网络运用在智能家居可以解决这一问题,通过在家电和家具中嵌入传感器节点,通过无线网络和Internet连接在一起,可以提高人们的生活质量,是生活更加舒适、方便。
并且可以为家庭提供安防系统,通过传感器对室内的温湿度,有无煤气,有无小偷进行数据采集处理。
目前无线传感器网络还存在着如下问题:
1)网络内节点的通信问题。
传感器节点在正常通信过程中,信号可能被一些如墙壁、树木等障碍物阻挡而受到影响,现在主要用的是改善天线的质量来提高传输质量,如何提高传感器节点的穿透性是未来需要解决的问题。
2)网络中传感器节点的寿命问题。
一般现在使用高能电池、降低传感节点的功耗两种方式来解决这个问题。
虽然现在有电池无线充电技术和无线能量搜集技术,但这两项技术才在处于研究阶段,需要一段时间才能真正成熟。
1.1.4无线传感器网路未来
尽管无线传感器网络比目前处于初步发展阶段,但已经迅速占领市场,有很强的应用价值。
除了在现在的工业、农业、环境、医疗、军事的运用,还会在更多新兴领域中运用发展,如智能家居、交通、空间探索等,最后是的万物联网,也就是我们今天所说的物联网。
1.2基于ZigBee的无线传感器网络
由于ZigBee具有低成本、低功耗、网络容量大、数据传输速率低、范围小、工作频段灵活的特点使ZigBee成为现在炙手可热的技术。
它比蓝牙更简单、速率更慢、距离更远、费用和功率更低。
1)数据传输速率低:
只有250Kbps,专注低传输应用。
2)功耗低:
在低耗电的待机模式下,两节普通的5号电池可以维持一年以上,这也是为什么会更受欢迎。
3)低成本:
由于ZigBee的传输速率低,协议简单,使其成本大大降低,加之现在大力对其推广,是其价格变得越来越低。
4)网络容量大:
每个节点可以最多连接255个端点,而一个ZigBee网络最多可以容纳65536个节点,还可以对IEEE地址进行扩展。
5)有效范围小:
可以覆盖一百米之内,足以满足一个家庭和办公的需求。
6)工作频段灵活:
使用世界通用的2.4GHz,在欧洲使用868MHz,在美国使用915MHz,都是免费的。
2ZigBee技术原理
2.1ZigBee网络结构
2.1.1网络体系
ZigBee网络分为4层,从上而下分别为物理层、MAC层、网络层、和应用层。
其中物理层和MAC层由IEEE802.15.4标准定义,网络层和应用层由ZigBee联盟定义,应用层又分别包括ZDO(ZigBee设备对象)、APS(应用支持子层)、AF(ZigBee应用框架)和ZigBee设备模块和制造商定义的应用对象等组成。
2.1.2ZigBee的协议构架
协议栈每层负责处理自己该层所规定的任务,并向上层提供服务,层与层之间通过服务接口进行通信。
大多数层都数据服务接口和管理服务接口。
图2.1.1Zigbee协议体系构架
1)物理层:
主要负责工作频率、信道的分配以及为媒体介质访问层提供数据、管理服务。
2)MAC层:
通过CSMA/CA机制来避免冲突;在连个同等MAC实体间提供可靠链路;可以通过协调器产生信标,设备通过信标帧来同步;支持设备加入和解除网络。
3)网络层:
确保IEEE802.15.4MAC层正常工作,负责网络的建立,允许加入设备和离开网络,提供路由和路由发现,并且为应用层提供数据管理接口服务。
4)应用层:
主要包括三部分:
APS、ZDO、AF。
应用支持子层(APS)提供数据管理服务接口,而管理接口提供设备绑定和发现服务,并传递设备之间的消息;ZigBee设备对象就是协调器、路由器或终端,用于发起和响应绑定请求,并完成设备安全机制,发现网路设备,提供相应的服务。
应用框架为应用对象提供活动空间,为应用对象提供键值匹配和报文服务。
2.1.3网络拓扑结构
ZigBee网络有三种拓扑结构,分别是星型、树型和网状型。
星型网络是由一个协调器和多个终端组成,都只能与协调器通信。
树型网络是由协调器建立网络,加入多个路由器和多个终端,路由器只能与终端和协调器通信,终端只能通过路由器与协调器通信。
网状型网络中,每个设备都可以相互通信,一般用户通过软件定义一个主协调器。
图2.1.2Zigbee网络拓扑结构
从物理层面分,设备类型有全功能设备(FullFunctionDevice,FFD)和精简功能设备(ReducedFunctionDevice,RFD)。
在网络中,全功能设备可以作为可以作为协调器,路由器或终端设备。
一个全功能设备可以同时和多个全功能设备通信或精简功能设备;精简功能设备只能作为终端,并且只能与一个全功能进行通信。
图2.1.3星型和簇树型网络拓扑结构
2.2Zstack协议栈
2.2.1软件介绍
Zstack协议栈TI公司为ZigBee开发的一个平台,是一个基于轮转查询式的操作系统,它的main函数在ZMain中,总的来说,它一共做两件工作,一个是系统初始化,即启动代码来初始化硬件系统另外一个是开始操作系统实体,它符合ZigBee2006规范,并且是一个半开源的协议栈,其中MAC层和ZMAC层部分开源,具有强大的功能。
Zstack协议栈具有和ZigBee相同的协议构架,基本都是由物理层、MAC层、网络层和应用层构成。
不过,Zstack协议栈更详细,部分层的功能和名称如下:
1)APP:
应用层目录,用户可以根据自己的要求,在这个目录中添加自己的任务,这个目录里面包括了应用层的大部分内容,而我们要实现一项功能通常通过操作任务来实现。
2)HAL:
硬件驱动层,里面包含硬件的驱动、操作函数和与之相应的配置。
3)OSAL:
协议栈操作系统
4)Profile:
AF层目录,包含一些AF层的处理函数。
5)Security&Services:
安全服务层目录,这个文件包含安全和服务层的处理函数。
6)Tools:
工程配置目录,包含Zstack相关配置信息和空间上的划分。
7)ZDO:
ZDO设备对象目录。
8)ZMac:
MAC层目录,里面包含MAC层中所用的参数和LIB库函数的回调处理函数。
9)Zmain:
主函数目录,包含一些硬件配置文件和入口函数。
10)Output:
输出文件目录,通过IAR自动生成。
2.2.2系统构架
2.2.2.1系统初始化
如果要启动系统,我们需要完成硬件平台和软件架构所需要各个模块的初始化,为操作系统的运行做好准备工作,主要分为系统时钟初始化、检测芯片工作电压的初始化、堆栈的初始化、各个硬件模块的初始化、FLASH存储的初始化、形成芯片MAC地址、非易失变量的初始化、MAC层协议初始化、初始化应用层帧层协议、初始化操作系统等,其具体流程图和对应的函数如图2.2.2.1。
2.2.2.2操作系统的执行
通过启动代码,我们为操作系统运行做好准备,然后就开始从操作系统入口程序进行执行,操作系统实体只有一行代码:
osal_start_system():
//NoReturnfromhere。
这个函数是个死循环,没有返回值,是轮询操作系统的主体。
系统通过不断地查询每个任务中是否有事件发生,如果有发生,就执行相应的函数,如果有没发生,就查询下一个任务,这样循环地往复。
操作系统执行的主体部分代码如下:
voidosal_start_system(void)
{
#if!
defined(ZBIT)&&!
defined(UBIT)
for(;;)//ForeverLoop
#endif
{
uint8idx=0;
osalTimeUpdate();
Hal_ProcessPoll();//ThisreplacesMT_SerialPoll()andosal_check_timer().
do{
if(tasksEvents[idx])//Taskishighestprioritythatisready.
{
break;
}
}while(++idxif(idx{
uint16events;
halIntState_tintState;
HAL_ENTER_CRITICAL_SECTION(intState);
events=tasksEvents[idx];
tasksEvents[idx]=0;//CleartheEventsforthistask.
HAL_EXIT_CRITICAL_SECTION(intState);
events=(tasksArr[idx])(idx,events);
HAL_ENTER_CRITICAL_SECTION(intState);
tasksEvents[idx]|=events;//Addbackunprocessedeventstothecurrenttask.
HAL_EXIT_CRITICAL_SECTION(intState);
}
操作系统专门为所有事件创建了一个数组tasksEvents[],每一个项目对应存放着每一个任务的所有事件。
在这个函数中,先通过一个循环来遍历数组tasksEvents[],找到第一个具有事件的任务(即具有待处理事件的优先级最高的任务,因为序列号越低,优先级越高),然后跳出循环,此时就得到了需要处理事件任务的序号idx,然后执行events=tasksEvents[idx]语句,把具有高优先级的高优先级的任务的事件取出,接着调用函数(tasksArr[idx])(idx,events)来执行具体的处理函数。
tasksArr[]是一个函数指针数组,根据不同的时间任务序号(idx)来执行不同的函数。
图2.2.2.1系统初始化流程图
SampleApp中函数数组tasksArr[]代码如下:
constpTaskEventHandlerFntasksArr[]=
{
macEventLoop,//MAC层任务处理函数
nwk_event_loop,//网络层任务处理函数
Hal_ProcessEvent,//板硬件抽象层任务处理函数
#ifdefined(MT_TASK)
MT_ProcessEvent,//调用任务处理函数
#endif
APS_event_loop,//应用层任务处理函数,用户不需要修改
ZDApp_event_loop,//ZigBee设备应用层任务处理函数,用户可以根据需要更改
SampleApp_ProcessEvent//SerialApp的用户任务处理函数
}
用户一般只需要修改协议栈的三个文件就可以完成一个项目,一个存放具体任务事件处理函数(SampleApp_ProcessEvent)的主文件,一个就是主文件的头文件,最后一个是操作系统的接口文件(Osal开头),是用来存放任务处理函数数组tasksArr[]的文件。
2.2.3Z-Stack开发的一些基本概念
1)设备类型:
在ZigBee网络中有三种逻辑设备类型:
协调器(coordinator),路由器(router),终端设备(end-devece)。
2)