第一章 绪论
1.1 选题背景
在我们生活和生产中温度是最基本的一个参数,在很多情况下,都必须要实时测量温度,这样才能保证生产的安全性。比如说当锅炉里的温度过高时,就有可能会出现事故,这时我们就必须要对它的温度进行实时检测,确保安全性。再比如说电缆沟也需要测温,电缆关系着网络的运行状态,故我们需要及时知道它内部的温度是多少,保证电缆正常工作。所以我们就经常需要对它进行检测、监控。随着科学技术发展速度非常快,传统的有线传感器网络由于布线不方便等很多问题,已经无法满足一些特定情况下的需求了。此时首先想到的就是通过无线通信技术来进行监控。无线通信技术又可以划分四种类型,分别WWAN、WMA、WLA,和WPAN。其中个人无线域网WPAN中就包含了ZigBee无线技术。ZigBee无线传感器网络解决了环境检测范围大、测量距离远、布线不方便等问题。给我们在传感器网络方面提供了全新的思路。
1.2 课题研究的目的
本次的设计题目是基于ZigBee技术的温度采集系统的设计,设计一种以ZigBee模块为基础的无线温度传感器监测系统。本次课题研究的目的是为了了解ZigBee网络的工作原理,采用ZigBee模块、DS18B20数字温度传感器和DHT11数字温湿度传感器,设计一个基于ZigBee技术的温湿度采集系统,实现对温湿度的实时采集和显示,并通过ZigBee协议传给上位机。设计相应的串口调试、显示电路、供电电路等硬件电路以及终端节点、路由器、协调器等部分的软件部分的设计。
1.3 课题研究的意义
和传统的传感器技术作比较,ZigBee技术具有很多的优点,比如说它的成本很低、功耗低、传输的延时很短、包含的信息容量大并且传输过程精度和安全性都很高。ZigBee技术因为使用便捷并且复杂度低,所以非常广泛的被使用。它在距离短、范围小的基于无线通信的控制领域很适用,并且它还弥补了传统传感器很多不足的地方。在软件方面,ZigBee协议能够非常方便的在硬件平台间进行移植。所以在生活和生产中的应用非常的广泛。
1
1.4 课题的主要任务
本次设计主要是针对传统的有线传感网络的缺陷,设计一个基于ZigBee技术的无线的能够实时检测温度的传感器,本次课题的主要任务如下:
(1) 深入了解ZigBee技术
了解ZigBee的特点、ZigBee协议、怎样工作等方面的内容。 (2) 实现温湿度采集
本设计通过数字传感器DS18B20和DHT11采集环境中的实时温度信息。 (3) 实时显示温湿度
为了让用户能够准确的了解实时温度,本设计设立了液晶显示电路,显示器我们用的是OLED12864显示屏,当温度和湿度信息被传感器采集到以后,就会快速在显示屏上显示此时的温湿度。
第二章 ZigBee简介
2.1 ZigBee概述
ZigBee这个词来源与蜜蜂的ZigZag形式的舞蹈,它是一种复杂度、成本、功耗、速率都非常低的近距离无线组网通信技术[1]。他的体系机构是由层作为每个模块而组成的,其中每一层都会调用函数、程序给它的上层,让上层能够进行正常的工作。
ZigBee协议是基于IEEE 802.15.4标准的,由ZigBee联盟和IEEE 802.15.4共同制定。IEEE802.15.4工作组制定ZigBee协议的物理层(PHY)和媒体访问控制层(MAC层)协议[2]。在2002年成立了ZigBee联盟,提供网络层和应用层定义了ZigBee协议的网络层(NWK)、应用层(APL)和安全服务规范。
物理层(PHY)定义了无线射频应该具备的特征,提供了三种不同的频段,它们分别是868MHz-868.6MHz、902MHz-928MHz和2400MHz-2483.5MHz。分别支持20kbps、40kbps和250kbps的传输速率,1、10及16个不同的信道[3]。当处于不同的频段时,信道的中心频率也会不同,具体如下:
?868.3MHz,k?0?Fc??906?2(k?1)MHz,k?1,2,?,10
?2405?5(k?1)MHz,k?11,12,?,26? 2
(k表示的是信道号码) PHY的主要工作有:
(1) 开关收发器、接收和发送分组数据; (2) 选择信道该用什么频率; (3) 检测信道的能量。
处于不同频段的ZigBee体系,在工作时它的码片速率和调制的方式也是不同的,如下表1所示。
表1 频段和数据率
媒体接入控制子层(MAC)负责控制无线信道的访问和近距离节点间的链接问题。它的主要工作就是产生和管理信标、信道接入和断开等。
协议网络层(NWK)给网络节点提供地址和管理组网等。它的主要工作就是加入和离开网络机制,ZigBee协调器的网络层的功能还有负责建立网络。
在ZgBee的网络节点中主要有协调器(Coordinator)、路由器(Router)和终端节点(End Device)这三种不同类型的节点[4]。它的拓扑形式也有三种:分别是星型结构、树型结构和网状结构。
星型结构顾名思义就是有一个中心,然后外围有很多结构和中心连接。在ZigBee中就是由多个终端节点和一个协调器进行连接而组成的。协调器的主要作用跟信号塔一样,就是组建起一个无线网络区域,然后终端节点都会加入这个网络,与协调器进行无线数据的传输。
树型结构是星型结构的延续,它的整体模型也和星型结构差不多,外围多个结构和一个中心相连,而这里的外围结构是已经组好的星型结构网络,然后这些星型网络再和一个协调器连接,构成树型结构的网络。这个结构能够覆盖的工作范围更大。
网状结构是终端节点之间相互连接并能够进行通信。它的优点就是减小了传输的延时
3
和网络更加可靠[5]。
本次设计采用的就是星型结构,因为构架这个网络比较方便,切根据设计要求,这个网络类型已经能够满足设计要求。星型结构图示如下所示。
图1 星型结构示意图
2.2 ZigBee协议栈
2.2.1 简介
什么是ZigBee协议栈?它和ZigBee写有有什么关系?简单来说,协议是通信标准,而协议栈就是具体实现这些标准,为用户和这些协议之间提供一个接口,让我们能够使用这个协议,从而来实现无线传输[6]。如下图,是ZigBee协议层的架构图。
图2 ZigBee协议层架构
4
由图可以看出,整个ZigBee协议体系是由物理层PHY、介质接入控制子层MAC、网络层NWK、应用支持层APS和应用层APL这5个层构成[7]。其中的MAC层和PHY层由IEEE 802.15.4一2003标准定义,而ZigBee联盟则在此基础上定义了APL层和NWK层[8]。ZigBee协议栈将这5个层定义的协议都整合到了一起,并且写成了函数的形式,通过APL用户就可以直接用了。它具体的分层架构和代码文件夹如下表。
表2 ZigBee协议栈分层信息表
2.2.2 如何使用协议栈
协议栈简单说就是调用它的代码、函数库[9]。现在一般用的协议栈,它的底层程序代码都已经写好了,我们只要根据功能模块要进行什么样的工作而进行相应的调用就可以了。比如说我现在想把数据从一个设备传输到另外一个设备,下面是实现一个简单的无线数据传输过程的一般步骤:
(1)建立组网:调用协议栈的组网函数和加入网络函数,实现网络的建立和终端的加入;
(2)发送端发送:此时要调用无线发送数据函数; (3)接收端接收:此时要调用无线接收数据函数。
5