宁夏大学新华学院 本科毕业设计
(2015届)
题目 基于ZigBee的温湿度传感器设计
系 别 信息与计算机科学系 专 业 电气工程及其自动化
宁夏大学新华学院本科学位论文
摘 要
无线传感器网络(Wireless Sensor Network,WSN)是由大量无处不在的,具有通信与计算能力的微小传感器节点密集布设在无人值守的监控区域而构成的能够根据环境自主完成指定任务的“智能”自治测控网络系统。大量传感器节点通过相互之间的分工协作,可实时感知、监测和采集分布区域内的监测对象或周围环境的信息。无线传感器网络有着与传统网络明显不同的技术要求,前者以数据为中心,后者以传输数据为目的。随着传感器网络技术的逐步发展,它的应用也越来越广泛,无线传感器网络也被要求有更小功耗,更低成本,以及更方便使用的性能,在这种情况下,ZigBee技术应运而生。
ZigBee技术是一种短距离无线双向通信技术,该技术拥有协议简单、功耗低、组网能力强、网络容量大、时延短、安全、可靠及成本低等优点,具有路径选择、自动连结网络及自我恢复等功能。预计将在消费类电子设备、家庭智能化、工控、医用设备控制、农业自动化等领域获得广泛应用。
本文首先介绍了无线传感器网络的基础知识和研究现状;然后深入分析了ZigBee协议,给出了各层的功能;之后,设计了ZigBee节点模块和温湿度传感模块,并在此硬件基础上设计了具有基本功能的ZigBee协议栈,同时提出了一种基于ZigBee的组网算法,通过扫描信道、建立网络和建立节点间的关联三个步骤构建了一个简单的网络层,实现了无线传感器组网功能;在此基础上本文设计一个小型的温度湿度监控网络系统;最后,对论文进行总结,提出今后的研究工作方向。
关键字:ZigBee;温湿度传感器;无线通信;无线温湿度传感器系统
I
宁夏大学新华学院本科学位论文
Abstract
Wireless sensor networks (Wireless Sensor Network, WSN) is composed of a large number of ubiquitous,tiny sensor nodes have the ability to communicate with the intensive computing laid in the monitored area unattended constituted able to complete the assigned tasks independently according to the environment \"smart\" autonomy and control network system. A large number of sensor nodes through the division of labor between them, real-time sensing, monitoring and gathering information on the distribution area of the object or the surrounding environment. Wireless sensor networks and traditional networks have distinct technical requirements , the former data-centric , the latter for the purpose of transferring data . With the gradual development of sensor network technology, its applications are increasingly widespread , wireless sensor networks are also required to have a smaller power consumption, cost, and performance is more convenient to use, in this case , ZigBee technology to be shipped born.
ZigBee technology is a short -range wireless two-way communication technology that has the protocol is simple , low power consumption, strong networking capabilities, network capacity, time is short , safe, reliable and low cost, with a path selection, automatic link networks and self-recovery capabilities. It is expected to be widely used in consumer electronic devices, intelligent home , industrial , medical equipment control , automation , and other fields of agriculture.
This paper introduces the basic knowledge and research of wireless sensor networks ; and in-depth analysis of the ZigBee protocol , given the function of each layer ; then designed ZigBee node module temperature and humidity sensor module , and is designed on the basis of this hardware the ZigBee protocol stack has the basic functions , while networking algorithm is proposed based on ZigBee , by scanning channel , networking and the establishment of three steps associated nodes to build a simple network layer , to achieve a wireless sensor network function ; on this basis, we design a small temperature and humidity monitoring network system ; Finally, the paper summarizes the proposed future research directions.
Key words:ZigBee;Wireless Temperature And Humidity Seneor System;Wireless Communica- -tion
II
宁夏大学新华学院本科学位论文
目 录
第1章 绪论 .............................................................................................. 5
1.1 引言 ................................................................................................ 5
.................................................................. 1.2 无线传感器网络的研究现状 6
.................................................................................. 1.2.1 国外现状 6
.................................................................................. 1.2.2 国内现状 6 ........................................................................ 1.3 无线传感器网络的特点 6 .......................................................................................... 1.4 研究内容 8 .......................................................................................... 1.5 论文结构 9 .......................................................................................... 1.6 本章小结 9 .................................................................... 第2章 ZigBee协议标准介绍 10
................................................................................ 2.1 ZigBee技术概述 10
....................................................................... 2.1.1 ZigBee主要特性 10
................................................................. 2.1.2 ZigBee网络拓扑结构 10
................................................................. 2.1.3 ZigBee网络工作模式 11 ................................................................................ 2.2 ZigBee协议架构 12
2.2.1 物理层(PHY) ......................................................................... 13
............................................................. 2.2.2 媒体访问控制层(MAC) 14 2.2.3 网络层(NWK) ......................................................................... 16 .......................................................................... 2.2.4 ZigBee应用层 18
......................................................................................... 2.3 本章小结 19 ........................................... 第3章 ZigBee温湿度传感器硬件平台的设计 20
......................................................................................... 3.1 硬件设计 20
....................................................................... 3.1.1 CC2530芯片介绍 20 ........................................................................... 3.1.2 射频模块电路 23
......................................................................................... 3.2 主控电路 25
........................................................................... 3.2.1 串口通信电路 25
................................................................................. 3.2.2 电源模块 28 ................................................................................. 3.2.3 存储模块 29 ......................................................................................... 3.4 本章小结 31 ............................................ 第4章 无线传感器网络通信系统的软件设计 32
................................................................................... 4.1 系统总体构成 32
III
宁夏大学新华学院本科学位论文
.......................................................................... 4.2 进行开发的软件介绍 32
...................................................................................... 4.3 程序流程图 32 ...................................................................................... 4.4 系统的实现 34
.......................................... 4.4.1 通过初始化、信道扫描等措施建立网络 34 ............................................................... 4.4.2 传感器各节点加入网络 34
......................................................................................... 4.5 本章小结 35 ................................................................................... 第5章 总结与展望 36
................................................................................................... 参考文献 37 .......................................................................................................... 致谢 38 .......................................................................................................... 附录 39
IV
宁夏大学新华学院本科学位论文
第1章 绪论
1.1 引言
信息的生成、获取、存储、传输、处理及其应用是现代信息科学的六大组成部分,其中信息的获取是信息技术产业链上重要的环节之一,没有它就没有信息的传输、处理和应用,信息化也成为了无水之源、无本之木。随着现代微电子技术、微电机系统MEMS(Micro-Electro-Mechanism System),片上系统SOC(System-On-Chip)、纳米材料、无线通信技术、信号处理技术、计算机网络技术等的进步以及互联网的迅速发展,传统的传感器信息获取技术从独立的单一化模式向集成化、微型化,进而向智能化、网络化方向发展,成为信息获取最重要和最基本的技术之一。无线传感器网络是由大量无处不在的,具有通信与计算能力的微小传感器节点密集布设在无人值守的监控区域而构成的能够根据环境自主完成指定任务的“智能”自治测控网络系统。无线传感器网络是一种特殊的Ad-Hoc网络,与传统的网络相比,它是一种以数据为中心的自组织无线网络。网络中的节点密集,数量巨大且部署在十分广泛的区域;网络拓扑结构动态变化,网络具有自组织和自调整的特点。网络节点具有成本低体积小、能量极其有限、计算能力、存储能力和通信能力有限的特点,其中节点的能耗是设计节点时考虑的最关键因素。长期以来,低价、低传输率、短距离、低功率的无线通讯市场一直存在着。自从Bluetooth(蓝牙)出现以后,曾让工业控制、家用自动控制、玩具制造商等业者雀跃不已,但是Bluetooth的售价一直居高不下,严重影响了这些厂商的使用意愿。如今,这些业者都参加了IEEE802.15.4小组,负责制定ZigBee的物理层和媒体访问控制层。IEEE802.15.4规范是一种经济、高效、低数据速率(<250kbPs)、工作在2.4GHz和868/928MHz的无线技术,用于个人区域网和对等网状网络。它是ZigBee应用层和网络层协议的基础。ZigBee是一种新兴的近距离、低复杂度、低功耗、低数据速率、低成本的无线网络技术,它是一种介于无线标记技术和蓝牙之间的技术提案,主要用于近距离无线连接。它依据IEEE802.15.4标准,在数千个微小的传感器之间相互协调实现通信。这些传感器只需要很少的能量,以接力的方式通过无线电波将数据从一个传感器传到另一个传感器,所以它们的通信效率非常高【1】。
ZigBee联盟成立于2001年8月。2002年下半年,英国Invensys公司、日本三菱电气公司、美国摩托罗拉公司以及荷兰飞利浦半导体公司四大巨头共同宣布,它们将加盟“ZigBee联盟”,以研发名为“ZigBee”的下一代无线通信标准,这一事件成为该项技术发展过程中的里程碑。
到目前为止,除了Invensys、三菱电子、摩托罗拉和飞利浦等国际知名的大公司外,该联盟大约已有 150 家成员企业,并在迅速发展壮大。其中涵盖了半导体生产商、IP服务提供商、消费类电子厂商及OEM商等,例如Honeywell、Eaton和Invensys Metering
V
宁夏大学新华学院本科学位论文
Systems等工业控制和家用自动化公司,甚至还有像Mattel之类的玩具公司。所有这些公司都参加了负责开发ZigBee物理和媒体控制层技术标准的IEEE802.15.4工作组。根据ZigBee联盟目前的设想,根据该标准和技术生产的相关产品主要适用于:智能家居(照明控制、各类窗帘控制、家庭安防、暖气控制、内置家居控制的机顶盒、万能遥控器)、环境检测与控制、自动读表系统、烟雾传感器、医疗监控系统、大型空调系统、工业和楼宇自动化、安全监控、工业控制、传感器控制、停车计费数据传输等诸多领域。
1.2 无线传感器网络的研究现状
1.2.1 国外现状
无线传感器网络是新一代的传感器网络,具有非常广泛的应用前景,其发展和应用,将会给人们的生活和生产的各个领域带来深远的影响。各国都非常重视无线传感器网络的发展,美国和欧洲相继启动了许多关于无线传感器网络的研究计划。特别是美国通过国家自然基金委、国防部等多个渠道投入巨资支持传感器网络技术的研究,同时IEEE也正在努力推进无线传感器网络的应用和发展,美国波士顿大学(Boston Unversity)最近创办了传感器网络协会(Sensor Network Consortium),期望能促进学院和行业公司之间互相促进传感器联网技术开发。除了波士顿大学,该协会还包括BP、霍尼韦尔、Inetco Systems Invensys、L-3Communications、Millennial Net,Radianse、Sensicast Systems及Textron Systems。美国的《技术评论》杂志在论述未来新兴十大技术时,更是将无线传感器网络列为第一项未来新兴技术。可以预计,无线传感器网络的广泛应用是一种必然趋势,它的出现将会给人类社会带来极大的变革。
1.2.2 国内现状
我国现代意义的无线传感器网络及其应用研究几乎与发达国家同步启动,首次正式出现于1999年中国科学院《知识创新工程试点领域方向研究》的“信息与自动化领域研究报告”中,作为该领域提出的五个重大项目之一【2】。随着知识创新工程试点工作的深入,2001年中科院依托上海微系统所成立微系统研究与发展中心,旨在引领中国科学院内部的相关工作,并通过该中心在无线传感网络的方向上陆续部署了若干重大研究项目和方向性项目,参加单位包括上海微系统所、声学所、微电子所、半导体所、电子所、软件所以及中科大等10多个研究所和院校,初步建立传感网络系统的研究平台,在无线智能传感器网络通信技术、微型传感器、传感器节点、簇点和应用系统方面取得了很大的进展,2004年3月相关成果在北京进行了大规模外场演示,部分成果已在实际工程系统中使用。国内的许多高校也掀起了无线传感器网络研究热潮。无线传感器网络在民用方面,涉及城市公共安全、公共卫生、安全生产、智能交通、智能家居、环境监控等领域。国内从事无线传感器网络应用的大企业目前为数不多,小企业呈现蓬勃发展的势头。
1.3 无线传感器网络的特点
6
宁夏大学新华学院本科学位论文
无线传感器网络是由许许多多功能相同或不相同的无线传感器节点组成,每一个传感器节点由数据采集模块(传感器、A/D转换器)、数据处理和控制模块(微处理器、存储器)、通信模块(无线收发器)和供电模块(电池、DC/AC能量转换器)等组成;同时,无线传感器网络广泛应用于军事、环境检测和预报、健康护理、智能家居、建筑物状态监控、复杂机械监控、城市交通、空间探索、大型车间管理,以及机场、大型工业园区的安全检测等领域。无线传感器网络的组成及使用决定了它应该具备以下多项特点:
(1)低功耗
无线传感器网络长期在无人值守的状态下工作,要求网络中节点的平均能耗比现有无线网络(如Bluetooth)中节点的能耗更低。在一些工业监控应用中,装备纽扣电池的传感器需要在无人值守的情况下工作几个月甚至几年。而在森林火灾监测等大范围的环境监测应用中,为大量的传感器节点频繁地更换电池是不现实的。这些典型的应用要求在无线传感器网络运行的过程中,每个节点都要最小化自身的能量消耗,获得最长的工作时间。
(2)低成本
无线传感器网络由成千上万的节点构成,单个节点的价格将极大地影响系统的成本。为了达到降低成本的目的,需要设计对计算和存储能力要求较低的简单的网络系统和通信协议。此外,降低系统成本的另一个重要因素是减少系统管理与维护的开销。无线传感器网络中节点规模很大,人工的管理与维护开销很大,因此需要无线传感器网络系统具有自配置、自修复的能力。自配置是指在没有人工干预的条件下,网络中的节点能够检测到其它节点的存在并共同组成一个具有一定功能和结构的网络系统。自修复是指在没有人为干预的条件下,系统能够检测到网络节点或通信链路的损坏并能够从错误状态中恢复。
(3)通用性
无线行李标牌、集装箱定位系统等无线传感器网络的许多应用需要系统能够在世界范围内正常工作。此外,为了扩大生产规模、开拓市场,一个能在全球范围内正常运转的系统也是必要的。尽管在理论上,我们可以通过为每个节点安装全球定位系统(GPS)接收器并根据地理位置信息来调整节点行为的方法解决这一问题,但接收器的成本很高,难以大量使用。因此,需要采用一种被各国政府允许的通用设计。
(4)网络拓扑
传统的星形结构包含一个主结点,一个或多个从节点。在通信时,主结点与从节点可以直接通信,从节点间的通信需要依靠主节点转发。星型结构适合在一些小规模网络中使用。在无线传感器网络系统中,节点规模很大,节点间以一种对等、多跳的方式通信,系统的动态性很强。需要设计一种适合无线传感器网络通信特点、低开销、便于维护的网络拓扑结构。
(5)安全
在一些应用中,网络的安全是必需的。无线传感器网络系统具有严格的资源限制,需要设计低开销的通信协议,但同时也会带来严重的安全问题。一方面,入侵者可以比较容
7
宁夏大学新华学院本科学位论文
易的进行服务拒绝攻击(Denial Of Service,DOS);另一方面,无线传感器网络系统的资源严格受限以及节点间自组织协调工作的特点使其难以实现严密的安全防护。由于低成本的限制,一些无线传感器网络系统只能采用单频率通信机制【3】。 入侵者通过频率扫描的手段可以很容易的捕获无线传感器网络的工作频率,通过在网络中植入伪装节点,采用各种手段发动攻击。为了保证任务的机密布置和任务执行结果的安全传递和融合,无线传感器网络需要实现一些最基本的安全机制:机密性、点到点的消息认证、数据完整性和新鲜性、认证广播和安全管理。
(6)实时性
实时性是需要协同工作的无线传感器网络系统的一个关键机制。如测量移动车辆速度需要计算不同传感器检测事件时间差,通过波束阵列确定声源位置节点间的时间同步。目前已提出了多个时间同步机制,其中RBS,TINY/MINI-SYNC和TPSN被认为是三个基本的同步机制。我们在考虑无线传感器网络的时间同步问题时,拟采用TPSN机制。TPSN采用层次结构实现整个网络节点的时间同步:所有节点按照层次结构进行逻辑分级,通过基于发送者-接收者的节点对方式,每个节点能够与上一级的某个节点进行同步,从而实现所有节点都与根节点的时间同步。
(7)智能性
无线传感器网络系统通过自组织的方式来完成用户指定的任务。系统需要感知环境变化,通过节点间的协同工作来产生需要的输出。由于在工作的过程中无需人为干预,因此,网络节点这种根据感知的信息协同工作的方式体现了系统的智能性。无线传感器网络系统的超大规模、资源严格受限和与物理世界密切相关等特点使其需要一种新的工作模式。在无线传感器网络系统中,单个节点并不重要,我们关心的是群体行为。用户需要知道当前地下室的平均温度而不是地下室某点的温度,并且不关心是哪个节点传回的信息,或者他需要知道当前地下室的温度是否超过了预警值。这些例子都说明无线传感器网络系统是以数据为中心的。由于与物理世界密切相关,其高出错频率、易受干扰和不确定的特点使传统的分布式系统解决方案无法适用,需要为其设计新的工作模式【4】。
1.4 研究内容
本文的设计目标是通过一个协调器和若干个路由器和终端节点,搭建一个蔟型的ZigBee网络,其中采用的ZigBee协议软件基于ZigBeeV1.0与IEEE802.15.4标准自行开发,达到测量环境温湿度的要求。本文的主要工作如下:
(1)分析IEEE802.15.4和ZigBee协议,理解ZigBee技术的特性和通信原理,详细分析ZigBee协议栈构架,并能设计编写具有基本组网,数据传输等功能的协议栈。
(2)根据节点的物理特性,选择合适的微处理器和无线传输芯片,组建无线传感器网络节点,包括电路连接,相应外围电路设计,射频电路设计,温湿度传感器节点的设计等。
(3)测温湿度软件、仿真过程的叙述及整个网络的测试,能完成预期设定的功能并
8
宁夏大学新华学院本科学位论文
能达到预定的性能指标。
1.5 论文结构
本文主要研究了无线传感网络的特点、结构,分析了ZigBee协议的架构,各层规范及数据格式,在此基础上使用CC2530微控制器以及温湿度传感器等外围模块搭建节点,设计与实现了在此硬件基础之上的ZigBee协议栈,并进行了相关的测试,各章安排如下:
第一章(即本章)介绍了无线传感器网络的概念、特点、国内外发展概况。 第二章介绍了ZigBee协议的基本构架,分析了物理层、数据链路层、网络层及应用层的功能、规范、数据格式等。
第三章设计了网络系统的硬件平台,重点进行节点的硬件设计,包括器件的选择、节点的结构设计以及硬件电路设计。
第四章无线传感器网络通信系统的软件设计,实现了无线传感器网络系统的基本组网和数据采集以,包括程序的基本流程,所用函数的编写。
第五章对本文进行了总结。
1.6 本章小结
本章主要介绍了无线传感器网络的概念、特点、国内外发展概况、同时对本文将要采用的ZigBee技术做了简要介绍,然后对本文所做的研究工作和论文结构进行了介绍。
9
宁夏大学新华学院本科学位论文
第2章 ZigBee协议标准介绍
ZigBee技术是最近发展起来的一种近距离无线通信技术,以2.4Ghz为主要频段,采用扩频技术,具有低功耗、成本低、易应用等显著特点,ZigBee被业界认为是最有可能应用在智能家居、工业应用、智能交通、智能建筑、医院监护等领域的无线技术。
2.1 ZigBee技术概述
2.1.1 ZigBee主要特性
ZigBee显著的特点就是低速率、低功耗、低成本、自配置和灵活的网络拓扑结构。 (1)低功耗:在低耗电待机模式下,2节5号干电池可支持1个节点工作6~24个月、甚至更长。这是ZigBee的突出优势,相比较,蓝牙能工作数周、WiFi可工作数小时。
(2)低成本:通过大幅简化协议(不到蓝牙的1/10),降低了对通信控制器的要求,按预测分析,以8051的8位微控制器测算,全功能的主节点需要32KB代码,子功能节点少至4KB代码,而且ZigBee免协议专利费,每块芯片的价格大约为2美元。
(3)低速率:ZigBee工作在20~250kbps的较低速率,分别提供250kbps(2.4GHz)、40kbps(915MHz)和20kbps(868MHz)的原始数据吞吐率,满足低速率传输数据的应用需求。
(4)近距离:传输范围一般介于10~100m之间,在增加RF发射功率后,亦可增加到1~3km,这指的是相邻节点间的距离。如果通过路由和节点间通信的接力,传输距离将可以更远。
(5)短时延:ZigBee的响应速度较快,一般从睡眠转入工作状态只需15ms,节点连接进入网络只需30ms,进一步节省了电能。相比较,蓝牙需要3~10s、Wi-Fi需要3s。
(6)高容量:ZigBee可采用星状、片状和网状网络结构,由一个主节点管理若干子节点,最多一个主节点可管理254个子节点;同时主节点还可由上一层网络节点管理,最多可组成65000个节点的大网。
(7)高安全:ZigBee提供了三级安全模式,包括无安全设定、使用接入控制清单(ACL)防止非法获取数据以及采用高级加密标准(AES128)的对称密码,以灵活确定其安全属性。
(8)免执照频段:采用直接序列扩频在工业科学医疗(ISM)频段2.4GHz(全球)、915MHz(美国)和868MHz(欧洲)。
2.1.2 ZigBee网络拓扑结构
ZigBee协议主要采用了二种组网方式:星状网和网状网,网络拓扑结构如图2-1所示:
10
宁夏大学新华学院本科学位论文
图2-1 ZigBee二种拓扑结构
在星状网中,以PAN协调器为中心,所有设备只能与中心设备PAN协调器进行通信,终端设备之间的通信通过PAN协调器的转发来完成,因此在星型网络的形成过程中,第一步就是建立PAN协调器。任何一个FFD设备都有成为PAN协调器的可能,一个网络如何确定自己的PAN协调器由上层协议决定。在这种网络中,PAN协调器一般使用持续电力系统供电,而其他设备采用电池供电。星型网络适合家庭自动化、个人计算机的外设以及个人健康护理等小范围的室内应用。
在网状网中,无线传感器网络的网络拓扑结构中,最复杂的拓扑结构也是最终实现的目标是网状网络(MeshNetwork)。在这种结构中,节点与节点之间的结构是“Point.to.Point—to.Pint”结构。这种结构无线网络连成一张网,网络非常健壮,伸缩性好,在个别链路和终端节点发生失效时,不会引起网络分立。可以同时通过多条路由通道传输数据,传输可靠性非常高。
在上述的网络拓扑结构中,网络的形成和维护都是通过设备之间的通信而自动实现,不需要人工来干预。
2.1.3 ZigBee网络工作模式
ZigBee网络的工作模式可以分为信标(Beacon)和非信标(Non-Beacon)两种模式,信标模式实现了网络中所有设备的同步工作和同步休眠,以达到最大限度的功耗节省,而非信标模式则只允许终端设备进行周期性休眠,协调器和所有路由设备必须长期处于工作状态。
信标模式下,协调器负责以一定的间隔时间(一般在15ms~4mins之间)向网络广播信标帧,两个信标帧发送间隔之间有16个相同的时槽,这些时槽分为网络休眠区和网络活动区两个部分,消息只能在网络活动区的各时槽内发送。非信标模式下,ZigBee标准采用父节点为终端设备子节点缓存数据,终端设备主动向其父节点提取数据的机制,实现终
11
宁夏大学新华学院本科学位论文
端设备的周期性(周期可设置)休眠。网络中所有父节点需为自己的终端设备子节点缓存数据帧,所有终端设备子节点的大多数时间都处于休眠模式,周期性的醒来与父节点握手以确认自己仍处于网络中,其从休眠模式转入数据传输模式一般只需要15ms【5】。
2.2 ZigBee协议架构
ZigBee的协议架构是建立在IEEE802.15.4标准基础之上的,IEEE802.15.4标准规定了ZigBee的物理层(PHY)和介质访问控制层(MAC);ZigBee联盟则定义了ZigBee协议的网络层(NWK)、应用层(APL)和安全服务规范,ZigBee协议栈的结构如图2-2所示:
应用对象应用层(APL)ZDO管理应用支持子层(APS)(网络层NWK)安全服务提供层(SSP)介质访问控制层(MAG)物理层(PHY)2450MHzPHY层_868/915MHz
图2-2 ZigBee协议栈的体系结构模型图
ZigBee协议栈的每层为其上一层提供一套服务功能:数据实体提供数据传输服务,管理实体提供其他的服务。每个服务实体和上层之间的接口称作“服务访问点(SAP)”,通过SAP交换一组服务原语为上层提供相关的服务功能。
物理层提供两类服务:物理层数据服务和物理层管理服务。PHY层功包括无线收发信机的开启和关闭、能量检测(ED)、链路质量指示(LQI)、信道评估(CCA)和通过物理媒体收发数据包。
媒体访问控制层(MAC)层提供MAC层数据服务和MAC层管理服务,其主要功能包括采用CSMA/CA进行信道访问控制、信标帧发送、同步服务和提供MAC层可靠传输机制。
网络层提供设备加入/退出网络的机制、帧安全机制、路由发现以及维护机制。ZigBee协调器的网络层还负责新网络并为新关联的设备分配地址。
ZigBee应用层包括应用支持子层(APS)、ZigBee设备对象(ZDO)和制造商定义的应用对象。APS子层负责维护绑定列表,根据设备的服务和需求对设备进行匹配,并在绑定的设备之间传送消息。ZDO负责发现网络中的设备并明确其提供的应用服务。
12
宁夏大学新华学院本科学位论文
IEEE802.15.4标准是针对低速率无线个人区域网络(LR-WPAN)通讯制定的标准,定义了LR-WPAN的PHY层和MAC层。在此基础上ZigBee联盟定义的ZigBee标准包括NWK层,APL层及SSP层的标准。本小节主要分析PHY层,MAC层,NWK层和APL层的标准。
2.2.1 物理层(PHY)
IEEE802.15.4物理层主要完成以下几项任务:开启和关闭无线收发信机、能量检测(ED)、链路质量指示(LQI)、信道评估(CCA)和通过物理媒体收发数据包。
IEEE802.15.4物理层定义了868Mhz、915Mhz和2.4Ghz三个频段。表2-1所示即为这三个频段上分别所采用的调制和扩频技术参数。
表2-1 IEEE802.15.4的扩频和调制参数
物理层 工作频率(Mhz) 频 道 数 码片率扩频参数 传输参数 (kchip/s) 868Mhz物理层 915Mhz物理层 868-868.6 调制方式 传输率(kb/s) 数据符号 1 300 三相的相位健控调制(BPSK) 二相的相移控件调制(BPSK) 偏移四相相移20 二进制 902-928 10 600 40 二进制 2.4G物理层 2400-2483.5 16 2000 控件调制(BPSK) 250 16 状 态组 IEEE802.15.4物理层在三个频段上共划分了27个信道,信道编号为0~26。2450Mhz频段上划分了16个信道,915Mhz频段有10个信道,868Mhz频段有1个信道,27个信道的中心频率和对应的信道编号定义如式(2.1)所示。
868.3Mhz,k0 Fc9062k1Mhz,k1,2,,10 (2.1)
24055k11Mhz,k11,12,,26式中k指的是信道号,Fc的单位为MHz。
物理层通过射频固件和硬件提供MAC层与物理无线信道之间的接口。从概念上说,物理层还应该包括物理层管理实体(PLME),以提供调用物理层管理功能的管理服务接口;同时PLME还负责维护物理层PAN信息库(PHY PIB)。物理层参考模型如图2-3所示。
13
宁夏大学新华学院本科学位论文
PD-SAPPLME-SAPPHY layerPHYPIBPLMERF-SAP
图2-3 物理层参考模型
其中,物理层数据服务访问节点PD-SAP支持在两个对等的MAC实体之间传输MAC协议数据单元(MPDU),物理层管理实体服务访问点PLME-SAP允许在MLME和PLME之间传送管理命令。
物理层协议数据单元(PPDU)由三部分组成:同步头(SHR)允许接收设备同步并锁定数据流;物理层帧头(PHR)包含的是帧长信息;有效载荷部分为PSDU,其格式如表2-2所示:
表2-2 PPDU格式
字节数:4 1 1 可变长度 引导序列 帧开始符 帧长(7位) 预留(1位) 物理层服务数据单元(PSDU) 同步头(SHR) 物理层帧头(PHR) 物理层有效载荷 引导序列:收发信机用来获得码片和符号同步,它是32位长度的全0序列。 帧开始符(SFD):表示引导序列的结束和数据帧的开始。 帧长字段:它用7位表示物理层有效载荷PSDU的长度。
PSDU 字段:可变长度的字段,它是物理层要发送的数据包(MPDU)。
2.2.2 媒体访问控制层(MAC)
MAC层位于NWK层和PHY层之间,主要负责以下几项任务:协调器产生网络信标、信标同步、支持PAN关联和解关联、CSMA-CA信道访问机制、处理和维护保证时隙(GTS)机制、在两个对等MAC实体间提供可靠链路。
MAC层提供了特定服务汇聚子层(SSCS)和物理层之间的接口。从概念上说,MAC层还包括MAC层管理实体(MLME),以提供调用MAC层管理功能的管理服务接口;同时,MLME还负责维护MAC PAN信息库(MAC PIB)。MAC层通过MAC公共部分子层(MCPS)的数据SAP
14
宁夏大学新华学院本科学位论文
(MCPS-SAP)提供MAC数据服务;通过MLME-SAP提供MAC管理服务。这两种服务通过物理层PD-SAP和PLME-SAP提供了SSCS和PHY之间的接口。除了这些外部接口外,MCPS和MLME之间还隐含了一个内部接口,用于MLME调用MAC数据服务,MAC层参考模型如图2-4所示:
MCPS-SAPMLME-SAPPHY CommonPart SublayerMACPIBMLMEPD-SAPPLME-SAP
图2-4 MAC层参考模型
MAC层数据服务中MCPS-SAP支持两个对等的SSCS实体之间SSCS协议数据单元(SPUD)的传输。MAC层管理服务中MLME-SAP支持在MAC层和其上层之间传递管理命令。
MAC帧,即MAC协议数据单元(MPDU),是由一系列字段按照特定的顺序排列而成的。MAC帧通常包括三部分:MAC头、MAC有效载荷和MAC尾。
MAC头部分由帧控制字段、帧序号字段和地址信息域组成;MAC有效载荷部分的长度与帧类型相关,确认帧的有效载荷部分长度为 0;MAC尾是帧校验序列(FCS),MAC帧格式如表2-3所示:
表2-3 MAC帧格式
字节数:2 1 帧 帧控制 序 号 0/2 目的 PA N标识码 0/2/8 目的 地址 0/2 源 PAN 标识码 0/2/8 源地 帧有效载 址 荷 地址信息 MAC 有 MAC 头(MHR) 效载荷 R) MAC 尾(MF FCS 可变长度 2 帧控制:占2个字节,包含了帧的类型、寻址、安全等信息。
帧序号:占 1 个字节,表示发送帧的序号,协调器使用某种算法选择一个随机值并存储下来,在帧发送的时候将存储的随机值复制到帧序号,随着每一帧的发送,依次加 1。
目的PAN表示符:占2个字节,表示接收方所在PAN的标识符。
目的地址:表示帧发送目的节点的地址,根据地质模式,占2个字节(16位段地址)
15
宁夏大学新华学院本科学位论文
或8个字节(64位长地址)。
源PAN标识符:占2个字节,为发送方所在PAN的标识符。
源地址:表示帧发送源节点的地址,根据地址模式,占2个字节(16位段地址)或8个字节(64位长地址)。
帧负荷:MAC帧传送的数据。
帧检验序列(FCS):FCS是对MAC帧头和有效载荷计算得到的16位ITUT CRC序列。 IEEE802.15.4中的MAC帧包括四种类型:信标帧、数据帧、确认帧和命令帧。 信标帧用于节点请求加入网络时,PAN协调器对本PAN的信息发布,供节点选择是否加入本网络。此外,信标帧在需要进行同步的PAN中又具有传送时隙分配信息及同步信息的功能。
数据帧用于向对等的MAC层实体传送上层递交来的数据信息。
确认帧仅当上次接收到的数据帧或命令帧需要进行接收确认时才发送。
命令帧用于发送各种MAC层相关命令,包括关联请求、数据发送请求、协调者重分配请求、信标请求等。
2.2.3 网络层(NWK)
网络层在MAC层与应用层之间提供合适的接口,通过激发MAC层的动作执行寻址和路由功能。主要任务包括:发起一个网络并且分配网络地址(PAN协调器);向网络中添加设备或者从网络中移除设备;将消息路由到目的节点;对发送的数据进行加密;在网状网络中执行路由寻址并且储存路由表。
网络层提供保证IEEE802.15.4MAC层正确工作的能力并为应用层提供合适的服务接口。网络层也包括两个服务实体-网络层数据实体和网络层管理实体,网络层数据实体(NLDE)通过NLDE-SAP为应用层提供数据服务;网络层管理实体(NLME)通过NLME-SAP为应用层提供管理服务。NLME要借助NLDE完成部分管理任务,另外它还要维护一个有关管理对象的数据库-网络层信息库(NIB),网络层参考模型如图2-5所示:
16
宁夏大学新华学院本科学位论文
Next Higher Layer EntityNLDE-SAPNLME-SAPNLDENWKPIBNLMEMCPS-SAPMLME-SAPMac Sub-Layer Entity
图2-5 网络层参考模型
NLDE 提供的数据服务允许在同一网络中的两个或多个设备之间传输应用协议数据单元(APDU)。具体来说,NLDE提供的服务:一是在应用支持子层PDU基础上添加适当的协议头产生网络协议数据单元(NPDU);二是根据拓扑路由,把NPDU发送到通信链路的目的地址设备或通信链路的下一跳。
NLME提供的管理服务允许应用与协议栈之间交互。具体来说,NLME提供的服务包括配置新设备、创建新网络、设备请求加入/离开网络和ZigBee协调器或路由器请求设备离开网络、寻址、紧邻发现、路由发现、接收控制等。
NWK帧由两个基本部分组成:NWK头和NWK有效负载。NWK头部分包括帧控制、地址和序号信息;NWK有效负载部分包含的信息因帧类型的不同而不同,它是可变长度的,NWK帧的一般格式如表2-4所示:
表2-4 网络层帧格式
字节:2 帧控制 2 目的 地址 2 源地 址 1 广播半径的一般格式如图并为 应用层提供合适的服务和管理 路由信息 网络层头部 1 广播序 列号 网络层负荷 可变长度 帧负荷 帧控制:标识了帧的类型、所用的协议类型以及是否采取了安全措施。
目的地址/源地址:此帧接收节点和发送节点的16位网络地址,其中16位网络地址在网络连接建立时已经分配好。
17
宁夏大学新华学院本科学位论文
广播半径:表示节点发信机发射信号可以被接收到的范围。 广播序列号:表示广播帧的序号,随着帧的广播序号递增。 帧负荷:网络层帧所承载的有用信息【6】。
2.2.4 ZigBee应用层
ZigBee应用层包括应用支持子层(Application Support Sublayer,APS)、应用框架,ZigBee设备对象(ZigBee Device Objects,ZDO)和 ZDO管理平台APS子层的任务是维护绑定表和在绑定设备之间传递信息。ZDO负责定义设备在网络中的角色(如ZigBee协调器或终端设备)、发现设备并决定设备所能提供的应用服务、初始化并响应绑定请求和在网络设备之间建立安全关系。
APS子层概述:
ZigBee设备对象应用支持子层APS在网络层和应用层之间,通过一组ZigBee设备对象ZDO和厂商定义的应用对象都可以使用的服务,提供了网络层和应用层之间的接口。应用支持子层包含两个实体:APS数据实体(APSDE)和APS管理实体(APSME)。APSDE 通过APS数据实体服务接入点(APSDE-SAP)在同一网络的两个或多个设备之间提供数据传输服务;APSME通过APS管理实体服务接入点(APSME-SAP)提供服务机制,以发现和绑定设备,并维护一个管理对象的数据库APS信息库(AIB)。APS子层参考模型如图2-6所示:
Next Higher Layer EntityAPSDE-SAPAPSME-SAPAPSDEAPSIBAPSMENLDE-SAPNLME-SAPNWK-Layer Entity
图2-6 APS子层的参考模型
ZigBee应用层框架是应用设备和ZigBee设备连接的环境。在应用层框架中,应用对象(Application Object)发送和接收数据通过APSDE-SAP实现,而对应用对象的控制和管理则通过ZDO公用接口来实现。APSDE-SAP提供的数据服务包括请求、确认、响应以及数据传输的指示信息。用户可以定义多达240个不同的应用对象,每个应用对象由端口1
18
宁夏大学新华学院本科学位论文
到端口240来标识,端口241~254保留做将来使用,此外,还有两个附加的端口:端口0用于DO的数据接口,端口255用于所有应用对象的广播数据的数据接口。使用APSDE-SAP提供的服务,应用层框架提供了应用对象的两种数据服务类型:键值对(Key Value Pair,KVP)服务和通用信息(Message Service Type,MSG)服务。两者传输机制一样,不同的是:KVP较为严格,是专门为传输一组特征量而设计的;MSG结构上则比较自由,不采用应用支持子层数据帧的内容,留给用户自己定义。
ZigBee设备对象(ZDO):
ZigBee设备对象(ZDO),描述了一个基本的功能函数类,在应用对象、配置文件(Profile)和应用支持子层之间提供了一个接口。ZDO位于应用框架和应用支持子层之间。它满足了ZigBee协议栈所有应用操作的一般要求,ZDO还有以下作用:初始化应用支持子层、网络层、安全服务文档(Security Services Specification,SSS)。从终端应用中集合配置信息来确定和执行发现、安全管理、网络管理、以及绑定管理。ZDO描述了应用框架层的应用对象的公用接口以及控制设备和应用对象的网络功能,提供了与协议栈中低一层相连的接口,数据信息通过APSDE-SAP相连,控制信息通过APSME-SAP相连。在ZigBee协议栈的应用框架中,ZDO公用接口提供设备发现、绑定以及安全等功能的地址管理。
ZigBee设备对象管理平台:
ZigBee设备对象管理平台管理网络层和应用支持子层,在ZigBee设备对象执行内部工作时允许其与网络层和应用支持子层通信。此外,管理平台也负责ZigBee设备对象处理应用请求接入网络及使用ZigBee设备文件信息的安全功能【7】。
2.3 本章小结
本章首先介绍IEEE802.15.4协议与ZigBee的关系,然后给出ZigBee协议的架构,最后根据ZigBee协议的分层结构,分别介绍了物理层、数据链路层、网络层和应用层的功能、详细结构及数据格式等内容。
通过以上内容的研究,使我们对ZigBee无线个域网特点及工作机制有了比较深刻的了解,为后面的研究打下基础。
19
宁夏大学新华学院本科学位论文
第3章 ZigBee温湿度传感器硬件平台的设计
本章在前面两章的基础上,设计了基于ZigBee无线传感器网络系统的硬件平台,重点是网络节点的硬件结构设计和电路设计。
3.1 硬件设计
节点是无线传感器网络的基本单元,是实现无线传感器网络功能的基本平台。在设计中,节点分为两种类型:中心节点与一般节点。
中心节点:无线传输模块+微处理器+串口+电源。中心节点的功能为:接收周围一般节点发来的数据;将数据传给PC;根据PC发来的控制指令,对一般节点进行控制(可选)。
一般节点:无线传输模块+微处理器+传感器十电源。一般节点的功能为:数据采集(由传感器完成);获取与周围节点之间的距离;将信息发送给周围节点;转发周围节点的数据。
在这里,本课题所设计的硬件平台参考了业界的几种ZigBee节点的设计在方案中,主要设计了个以下模块:处理器,无线收发,电源管理,UART串口电路,传感器电路,总体的硬件系统框图如图3-1所示:
电源模块无线收发PCUARTCC2530微控制器STH11 图3-1 硬件系统框图
3.1.1 CC2530芯片介绍
自IEEE802.15.4标准发布后,市场上逐步生产出支持IEEE802.15.4的芯片。比如有Freescale的MCl3192、TI公司的CC2530、Ember的EM2420。综合低功耗、低成本等因素,本论文选用CC2530单片机能够满足系统需求,能充分降低成本和缩短开发周期。
CC2530结合了德州仪器的业界领先的黄金单元ZigBee协议栈(Z-StackTM),提供了一个强大和完整的ZigBee解决方案。而且CC2530F256包括了一流的RF收发器,工业标准增强性8051MCU,具有128KB可编程的闪存,8KBRAM以及许多其它功能强大的特性,该芯片具有完全集成的压控振荡器,只需要天线、16MHz晶体等非常少的外围电路就能在2.4GHz频段上工作,完全可以满足IEEE802.15.4标准和ZigBee技术标准的无线网络技术设计开发。
20
宁夏大学新华学院本科学位论文
CC2530相对其他单片机以较低的总成本,能够建立非常强大的网络节点,并涵盖了先进的射频器的优良性能、8KB随机存储器、系统内可编程闪存以及8051CPU等强大的功能。CC2530分别具有32KB、64KB、128KB、256KB四种不同的闪存。CC2530根据需要切换不同的运行模式,具备低能耗、较强的抗干扰性、较好的接收信号能力的优点,非常适合WSN的需要。另外,CC2530芯片还集成了温度传感器。
芯片CC2530有40根引脚,如图3-2所示:
图3-2 CC2530引脚图
其中主要引脚的功用分别是:
AVDDl\2\3\4\5\6:接入2~3.6V的模拟电源;DVDDl/2:2V~3.6V数字电源连接;RF_N:RX期间负RF输入信号到LNA;RF_P是RX期间正RF输入信号到LNA;RESET_N:复位,活动到低电平;P1_0:端口1.0~20mA驱动能力;Pl_1:端口1.1~20mA驱动能力;P2_3:端口2.3/32.768kHz XOSC;端口2.4/32.768kHz XOSC;XOSC_Ql/Q2:32MHz晶振引脚1/2。
CC2530模块主要可以分为几大块:CPU及内存、时钟及电源管理、外设。 (1)CPU和内存
CC2530芯片系列中使用的805lCPU内核是一个单周期的8051兼容内核。它有三种不同的内存访问总线(SFR,DATA和CODE/XDATA),单周期访问SFR,DATA和主SRAM。它还包括一个调试接口和一个18输入扩展中断单元。
中断控制器总共提供了18个中断源,分为六个中断组,每个与四个中断优先级之一
21
宁夏大学新华学院本科学位论文
相关。当设备从活动模式回到空闲模式,任一中断服务请求就被激发。一些中断还可以从睡眠模式(供电模式1-3)唤醒设备。
内存仲裁器位于系统中心,因为它通过SFR总线把CPU和DMA控制器和物理存储器以及所有外设连接起来。内存仲裁器有四个内存访问点,每次访问可以映射到三个物理存储器之一:一个8KB SRAM、闪存存储器和XREG/SFR寄存器。它负责执行仲裁,并确定同时访问同一个物理存储器之间的顺序。
8KB SRAM映射至IJDATA存储空间和部分XDATA存储空间。8KB SRAM是一个超低功耗的SRAM,即使数字部分掉电(供电模式2和3)也能保留其内容。这是对于低功耗应用来说很重要的一个功能。
32/64/128/256KB闪存块为设备提供了内电路可编程的非易失性程序存储器,映射到XDATA存储空间。除了保存程序代码和常量以外,非易失性存储器允许应用程序保存必须保留的数据,这样设备重启之后可以使用这些数据。使用这个功能,例如可以利用已经保存的网络具体数据,就不需要经过完全启动、网络寻找和加入过程。
(2)时钟和电源管理
数字内核和外设由一个1.8V低差稳压器供电。它提供了电源管理功能,可以实现使用同供电模式的长电池寿命的低功耗运行。
(3)外设
CC2530包括许多不同的外设,允许应用程序设计者开发先进的应用。
调试接口执行一个专有的两线串行接口,用于内电路调试。通过这个调试接口,可以执行整个闪存存储器的擦除、控制使能哪个振荡器、停止和开始执行用户程序、执行8051内核提供的指令、设置代码断点,以及内核中全部指令的单步调试。使用这些技术,可以很好地执行内电路的调试和外部闪存的编程。
设备含有闪存存储器以存储程序代码。闪存存储器可通过用户软件和调试接口编程。闪存控制器处理写入和擦除嵌入式闪存存储器。闪存控制器允许页面擦除和4字节编程。
I/O控制器负责所有通用I/O引脚。CPU可以配置外设模块是否控制某个引脚或它们是否受软件控制,如果是的话,每个引脚配置为一个输入还是输出,是否连接衬垫里的一个上拉或下拉电阻。CPU中断可以分别在每个引脚上使能。每个连接I/O引脚的外设可以在两个不同的I/O引脚位置之间选择,以确保在不同应用程序中的灵活性。
定时器1是一个16位定时器,具有定时器/PWM功能。它有一个可编程的分频器,一个16位周期值,和五个各自可编程的计数器/捕获通道,每个都有一个16位比较值。每个计数器/捕获通道可以用作一个PWM输出或捕获输入信号边沿的时序。它还可以配置在IR产生模式,计算定时器3周期,输出是AND,定时器3的输出是用最小的CPU互动产生调制的消费型IR信号。
MAC定时器(定时器2)是专门为支持IEEE802.15.4MAC或软件中其他时槽的协议设计。定时器有一个可配置的定时器周期和一个8位溢出计数器,可以用于保持跟踪已经经过的
22
宁夏大学新华学院本科学位论文
周期数。一个16位捕获寄存器也用于记录发送一个帧开始界定符的精确时间,或传输结束的精确时间,还有一个16位输出比较寄存器可以在具体时间产生不同的选通命令(开始RX,开始TX,等等)到无线模块。
睡眠定时器是一个超低功耗的定时器,计算32kHz晶振或32kHz RC振荡器的周期。睡眠定时器在除了供电模式3的所有工作模式下不断运行。这一定时器的典型应用是作为实时计数器,或作为一个唤醒定时器跳出供电模式l或2。
ADC支持7到12位的分辨率,分别在30kHz或4kHz的带宽。DC和音频转换可以使用高达八个输入通道(端口0)。输入可以选择作为单端或差分。参考电压可以是内部电压、AVDD或是一个单端或差分外部信号。ADC还有一个温度传感输入通道。ADC可以自动执行定期抽样或转换通道序列的程序。
随机数发生器使用一个16位LFSR来产生伪随机数,这可以被CPU读取或由选通命令处理器直接使用。例如随机数可以用作产生随机密钥,用于安全。
AES加密解密内核允许用户使用带有128位密钥的AES算法加密和解密数据。这一内核能够支持IEEE802.15.4MAC安全、ZigBee网络层和应用层要求的AES操作。
一个内置的看门狗允许CC2530在固件挂起的情况下复位自身。当看门狗定时器由软件使能,它必须定期清除;否则,当它超时就复位它就复位设备。或者它可以配置用作一个通用32kHz定时器【8】。
CC2530内置温度传感器为模拟温度传感器,测量内置温度传感器温度计算方法。如表3-1所示:
表3-1 CC2530温度传感器的运算方法
最小 典型 参数 测试条件 最大 在25℃输出 温度系数 电压系数 未校准的初始精度 使用1点校准的精度(整个温度范围) 使能对的电流消耗0.5 (不包括ADC电流) 使用集成ADC测量,(使用内部带隙基准电压参考和最大分辨率) mA 1480 4.5 1 ±10 ±5 ℃ 12位ADC /10℃ /0.1V ℃ 单位 3.1.2 射频模块电路
23
宁夏大学新华学院本科学位论文
通过把CC2530射频芯片、电感、电阻、晶振、电容和天线集成在一起组成射频模块电路,如图3-3所示:
图3-3 CC2530射频模块电路图
射频模块在发送信号时,通过设定频率、模式等参数给CC2530芯片,CC2530芯片自身带有A/D转换功能,把用户输入的数字信号转换成模拟信号最终通过天线发出【9】,而射频模块在接收信号时,天线会按照事先设定好的频率接收节点反馈的模拟信号,通过芯片模数转换后传递给用户。汇聚节点的射频模块基本默认在接收状态,可以随时接收节点信号。当用户向节点发送指令的时候会切换成发射状态。相反,传感器节点的射频模块默认在发射状态,只有需要接收指令的时候才切换成接收状态【10】。
(1)射频模块CC2530与主控电路的连接。射频模块通过CC2530的P1_O~7、PO_0~7、P2_0~2以及RESET_N、VDD、GND等22个引脚和主控电路连接起来,能够使射频模块获得3V电源,并且能够实现射频模块的收发信号传送到主控电路上。如图3-4所示:
24
宁夏大学新华学院本科学位论文
图3-4 与主控电路连接的CC2530引脚示意图
(2)无线传感器网络各节点问实现互联,需要通过天线收发信号。天线(antenna)是一种变换器,它把传输线上传播的导行波,变换成在无界媒介(通常是自由空间)中传播的电磁波,或者进行相反的变换。无线电通信、广播、电视、雷达、导航、电子对抗、遥感、射电天文等工程系统,凡是利用电磁波来传递信息的,都依靠天线来进行工作【11】。
(3)晶振电路。晶振电路的目的是给单片机正常工作提供稳定的时钟信号。射频模块有32MHz和32.768kHz晶振。32MHz晶振电路包括一个32MHz振荡器X1和两个27pF负载电容(C17和C18)。32.768kHz晶振电路包括一个32.768kHz晶振X2和两个15pF负载电容(C19和C20),用于要求非常低的睡眠电流消耗和精确唤醒时问的应用。
3.2 主控电路
3.2.1 串口通信电路
串行通信接口主要实现与外部设备之间的数据传输,是嵌入式开发不可或缺的。串口通信模块主要包括MAX3221芯片、电容。串口电路如图3-5所示:
25
宁夏大学新华学院本科学位论文
图3-5 RS232串口接口电路图
从图中可以看出,采用的是最常用的串口RS-232接口。它可以实现PC和芯片之间的通信,由于用户能够通过PC实时地观测数据,非常方便用户进行调试和分析【12】。
RS-232接口有9根针脚,如图3-6所示,其完整接法是2和3交叉、4和6交叉、7和8交叉、5直连。它能够传送基本的数据,也能够用于控制调制解调器。本文用到的引脚是:RXD、TXD、GND、RTS、CTS。
图3-6 RS232接口
26
宁夏大学新华学院本科学位论文
表3-2 RS232针脚定义
针脚 信号 定义 作用 1 DCD 载波检测 此引脚主要用于Modem通知计算机其处于在线状态,即Modem检测到拨号音,处于在线状态。 2 RXD 接收数据 此引脚主要用于接收外部设备送来的数据 3 TXD 发送数据 此引脚主要将计算机的数据发送给外部设备 4 DTR 数据终端准备好 当此引脚高电平时,通知Modem可以进行数据传输,计算机已经准备好 5 GND 信号地 此引脚用于接地 6 DSR 数据准备好 此引脚高电平时,通知计算机Modem已经准备好,可以进行数据通讯了 7 RTS 请求发送 此脚由计算机来控制,用以通知Modem马上传送数据至计算机;否则,Modem将收到的数据暂时放入缓冲区中 8 CTS 清除发送 此脚由Modem控制,用以通知计算机将欲传的数据送至Modem 9 RI 振铃提示 Modem通知计算机有呼叫进来,是否接听呼叫由计算机决定 此外,我们还可以采用RS485总线来设计串口通信,其接法如下:1接4;2接3;3接2;4接1;5接5;6接9;7接8;8接7,其通信模块主要包括。串口电路如图3-7所示:
27
宁夏大学新华学院本科学位论文
图3-7 RS485串口部分电路图
RS485针脚定义如下所示:
1脚为DATA+,2脚为DATA+,5脚为GND。
RS-485通信建议一定要接地线,因为RS-485通信要求通信双方的地电位差小于1V。即:半双工通信接3根线(+A、-B、地),全双工通信接5根线(+发、-发 、+收、-收、地)。为了安全起见,建议通信机器的外壳接大地【13】。
3.2.2 电源模块
电源模块由LMl117低压差线性调压器、二极管和电阻电容组成,如3-8图所示:
28
宁夏大学新华学院本科学位论文
图3-8 电源模块原理图
LMl117是一个低压差电压调节器,可输出800mA电流。由于单片机和射频模块需要的电压都是3.3V,而电源供电是5V,因此需要LMlll7进行电压转换,把电压从5V转换成模块需要的3.3V。
3.2.3 存储模块
存储模块主要是FLASH存储器。
FLASH存储器用于存储系统运行所需的程序和重要数据,即使掉电程序和数据都不会丢失。当系统启动时,CPU首先从FLASH读取启动代码。设计中采用的FLASH为SST39VF320,其存储容量为32Mbit,工作电压为2.7V~3.6V,16位数据宽度。它所需引脚为A[24:0]、D[15:0]、NRST0、NRD、NWE0、SYSNRST,电路图如3-9所示:
29
宁夏大学新华学院本科学位论文
图3-9 FLASH连接图
3.3 PCB版原理图
节点主要通过其上的CC2530射频芯片、电感、电阻、晶振、电容和天线集成在一起实现信号的收发模块,如图3-3所示。输入电压是5V的直流电,而CC2530单片机的工作电压是3.3V,因此这里采用LM1117芯片来进行电压转换,如图3-9所示。ZigBee节点当完成配置后可以脱离计算机独立进行工作, 但是要进行配置、绑定等操作时需要连接计算机才能完成。所以,在硬件设计上需要一个RS232转换器连接到计算机的串口,如图3-5所示。同时在节点上还集成一个温度传感器是STH11【14】,连接到CC2530的管脚,如图3-10所示:
30
宁夏大学新华学院本科学位论文
图3-10 STH11连接图
3.4 本章小结
本章从系统需求角度、开发难度和成本角度考虑,选择了TI的处理器CC2530做为主要的控制芯片,以及瑞士Scnsirion公司的数字式温湿度传感器SHT11,设计了具有ZigBee功能的温湿度数据采集硬件节点。本章中先给出了系统硬件功能,对硬件系统中的各个硬件电路模块的设计进行了介绍和分析。在此课题的设计中只考虑了MCU、电源、复位、数据采集等主要和基本的模块,此硬件系统能够满足实现ZigBee无线通信的基本硬件要求。通过本章内容的研究,使我们对ZigBee节点的一般硬件构架有了一个详细的了解。
31
宁夏大学新华学院本科学位论文
第4章 无线传感器网络通信系统的软件设计
4.1 系统总体构成
通过发送指令让汇聚节点建立起无线网络,传感器节点随后加入到网络中,最终各个传感器节点和汇聚节点之间实现无线传输。
CC2530芯片内有温度传感器,本课题研究监测环境的温度的应用。传感器节点把采集到温度信息处理后通过射频模块发送到汇聚节点,随后,汇聚节点通过串口连接计算机,把信息直接传递给用户。
4.2 进行开发的软件介绍
本文CC2530芯片程序是采用IAR Embedded Workbench软件进行开发的。IAR Embedded Workbench(简称EW)的C/C++交叉编译器和调试器是目前世界上最完整、最容易使用的专业嵌入式应用丌发工具【15】。EW对不同的微处理器提供一样直观用户界面。EW包括:嵌入式C/C++优化编译器、汇编器、连接定位器、库管理员、编辑器、项目管理器及C-SPY调试器。使用IAR的编译器最优化、最紧凑的代码,节省硬件资源,最大限度的降低产品成本,提高产品竞争力。该软件能够很方便的完成编程、调试等工作任务。其工作界面如图4-1所示:
图4-1 IAR Embedded Workbench软件工作界面
该软件能够编译C/C++和汇编语言应用程序,还能够进行嵌入式系统调试开发软件IAR包含管理器、编译器、调试器等功能,符合本文开发的需求。另外,可以通过Smart RF Flash Programmer软件,把相关指令程序下载至CC2530芯片中,实现程序的功能。
4.3 程序流程图
无线传感器网络中包括汇聚节点和传感器节点。汇聚节点负责建立网络(建网后充当路由角色),传感器节点只能收发数据。在建立好网络之后,子节点,母节点不再存在,
32
宁夏大学新华学院本科学位论文
汇聚节点的建网功能完成,该节点作为网关和PC机进行通信。汇聚节点加电后组建网络,其他各节点自动发现并加入网络。
开始建立网络允许绑定否该任务事件是否发生是判断事件否接收数据事件接受温度数据进行温度转换结束
图4-2 汇聚节点程序流程图
33
宁夏大学新华学院本科学位论文
开始加入网络绑定到网关否该任务是否发生温度采集事件解除原绑定重新绑定采集温度数据接收事件发送数据数据发送是否成功结束
图4-3 传感器节点程序流程图
4.4 系统的实现
4.4.1 通过初始化、信道扫描等措施建立网络
需要建立的网络包含1个汇聚节点和2个传感器节点。第一步需要汇聚节点完成对串口、网络操作系统等功能程序的初始化;第二步是在2.4GHz的IEEE802.15.4频段上,通过信道扫描,在其中16条信道扫描出一条空闲的信道就能建立新的网络;最后在扫描出空闲信道后通过调用函数建立网络【16】。
通过操作CLKCONCMD,SLEEPCMD,PERCFG,UOCSR,UOGCR,UOBAUD,CLKCONSTA,IENO,UODUB,ADCCONl,ADCCON3,ADCH,ADCL等寄存器来实现应用。
4.4.2 传感器各节点加入网络
34
宁夏大学新华学院本科学位论文
当协调器建立网络完成后就可以开启终端传感器节点以加入网络完成组网。汇聚节点建立网络完成后,传感器节点便可以开启加入到建立好的网络。先完成节点的操作系统及串口的初始化,然后便可以通过发起加入网络请求,通过相应的函数加入网络,最后还需要把传感器节点和汇聚节点进行绑定。
需要具体操作,首先要初始化传感器各节点的操作系统、LCD、UART串口,需要通过调用Osal_init_system()、InitLcd()、HalUARTInit()等各项函数进行初始化。其次发现有网络存在时,网络层会给予传感器节点ZDO层发现网络反馈信息。通过网络层发起加入网络的申请,需要调用函数NLME_NetworkFormationRequest()才能加入网络。最后还得需要建立传感器节点和汇聚节点的绑定,通过导航键的操作执行允许绑定,汇聚节点的允许绑定操作完成后,传感器节点可以调用ZDP_EndDeviCeBindReq()函数绑定请求函数,完成绑定。最终传感器各节点加入无线传感器网络中,操作者可以利用电脑直接跟传感器网络各节点信息交流。
4.5 本章小结
本章节介绍了无线传感器网络的软件设计,其主要包括:系统的总体构成;进行开发的软件介绍;程序流程图以及系统的地实现。以RAI为软件基础,建立了系统文件。软件针对各功能模块编写了相应的驱动程序和应用程序。系统很好的满足了信息的采集、传输、保存和传输的实际需求。
35
宁夏大学新华学院本科学位论文
第5章 总结与展望
本本主要研究的是在短距离无线数据采集方面的无线多点温度采集系统的具体应用。本系统以CC2530作为主控芯片,以TI公司的Z-Stack协议栈为基础,并利用RS232串口标准,实现多点温度数据的采集,短距离无线传输和在上位机的观测。
本文主要论述了如下几个问题:
1、详细分析了无线传感器网络基本原理和其主要技术特点。重点分析了无线传感器网络ZigBee通信协议的技术特点,网络结构,路由机制等;阐述了嵌入式技术发展趋势和在无线传感网络中的应用。
2、对IEEE802.15.4和Zigbee协议进行了分析。IEEE802.15.4协议主要包括物理层,MAC层,Zigbee协议包括网络层和应用层。深刻理解IEEE802.15.4和Zigbee协议是构建多点无线温度采集系统的基础。
3、利用CC2530芯片搭建了无线传感监控节点硬件平台,设计了监控节点的应用程序,使用传感器对温度和湿度环境数据进行采集.实现了无线数据传输。
4、进行了系统的软件设计,建立了文件系统,为各功能模块编写了相应驱动程序和应用程序。最后进行了系统的组网和数据采集等相关性能的测试。
此外,在本文研究的基础上,还可以进一步开展以下相关研究。 l、利用复杂的网络模型,增大传输距离和网络通信容量。 2、优化网络拓扑结构,降低整个无线传感网络的功耗。
3、开发基于PC机的人机友好界面,进一步丰富监控的范围和功能。
总之,通过对无线传感网络的深入研究,并致力于研究开发实际可行的监控硬件软件设备,完善监控的功能,将使得无线传感网络应用于环境监控领域并对人们的生产生活产生深远的影响。
36
宁夏大学新华学院本科学位论文
参考文献
[1] 王刚. 温度无线采集的系统设计[J]. 科技信息(科学教研), 2008, 16(11): 17-23.
[2] 张文博. 基于ZigBee网络的安全监控系统关键技术研究与实现[D]. 郑州: 解放军信息工程大学,
2010: 21-27.
[3] 沈建明. 基于ZigBee的温室大棚的温湿度检测系统[D]. 西安:西安工业大学, 2013: 9-15. [4] 郭豫荣. 温湿度传感器的原理及应用[J]. 电子元器件应用. 2012, 13(Z1): 10-12.
[5] 高亮, 周德扬, 杨刚. 24GE比无线数据传输系统[N]. 北京: 北京广播学院学报, 2005-12-3: [6] 曾衍仁. 基于ZigBee的远程测控网络[D]. 广东: 广东工业大学, 2011: 45-49. [7] 《ZigBee协议栈中文说明》.
[8] 《ZigBee技术实用手册》. 西安达泰电子
[9] 李智群. 射频集成电路与系统[J], 科学出版社, 2008, 23(18): 7-9.
[10] (美)ChristopherBowick, (美)JohnBlyer, (美)CherylAjluni. 射频电路设计[J]. 电子工业出
版社, 2008, 15(6): 17-21.
[11] 伍文平, 唐一禄, 段江春. 基于单片机的无线温度监测网络设计[J]. 电子技术. 2008(02):
10-13.
[12] 晏立. 基于ZigBee的温湿度传感网络研究[D]. 上海: 上海交通大学. 2008: 17-24. [13] 任志建, 莫伟健, 万智萍, 基于CC2530的ZigBee7002/PRO的无线温湿度系统设计[D]. 广州:
中山大学, 2012: 23-27.
[14] 孙韬. 基于ZigBee的温度/湿度无线传感器网络监控系统的设计与实现[D]. 湖南:国防科技大
学. 2010: 31-47.
[15] 《IAR使用指南》. 周立功单片机有限公司.
[16] 周枫. 基于ZigBee协议的无线温度传感器网络的设计和实现[D]. 南京: 南京理工大学, 2007:
15-20.
37
宁夏大学新华学院本科学位论文
致谢
本人在大四的学位论文撰写过程中,始终得到了导师刘大铭教授的悉心指导,从相关课程的学习,相关资料的查询,到论文的撰写和论文成稿,都倾注了刘老师的心血。感谢刘老师在毕业论文撰写过程中对我的信任和指导,让我得到了很好的培养和锻炼。刘老师渊博的学识、谦和的为人,都给我留下了深刻的印象。刘老师对我的鼓励和帮助,将使我终生受益。
再次感谢刘大铭老师所给予的帮助和提供的便利! 感谢帮助、关心我的所有老师、同学们!
38
宁夏大学新华学院本科学位论文
附录
温湿度传感器程序:
/***************************************************************************/ Project: SHT11 demo program (V2.0) Filename: SHT11.c Prozessor: 80C51 family Compiler: Keil Version 6.14 Autor: MST
Copyrigth: (c) Sensirion AG
****************************************************************************/ #include #include \"../uart/hal_uart.h\" #include \"sht11.h\" const float C1=-4.0; // for 12 Bit const float C2= 0.0405; // for 12 Bit const float C3=-0.0000028; // for 12 Bit const float T1=0.01; // for 14 Bit @ 5V const float T2=0.00008; // for 14 Bit @ 5V void _nop_(void) { int i; for(i=0;i<100;i++); } // writes a byte on the Sensibus and checks the acknowledge char s_write_byte(unsigned char value) { unsigned char i,error=0; for (i=0x80;i>0;i/=2) //shift bit for masking { if (i & value) set_DATA_1(); //masking value with i , write to SENSI-BUS else set_DATA_0(); 39 宁夏大学新华学院本科学位论文 set_CLK_1(); //clk for SENSI-BUS _nop_();_nop_();_nop_(); //pulswith approx. 5 us set_CLK_0(); } set_DATA_1(); //release DATA-line Sensor_DATA_IN();//改为输入模式 set_CLK_1(); //clk #9 for ack error=IS_DATA_1(); //check ack (DATA will be pulled down by SHT11) Sensor_DATA_OUT();//改为输出模式,还原 set_CLK_0(); return error; //error=1 in case of no acknowledge } // reads a byte form the Sensibus and gives an acknowledge in case of \"ack=1\" char s_read_byte(unsigned char ack) { unsigned char i,val=0; set_DATA_1(); //release DATA-line Sensor_DATA_IN();//改为输入模式 for (i=0x80;i>0;i/=2) //shift bit for masking { } Sensor_DATA_OUT();//还原 if(ack) set_DATA_0(); set_DATA_1(); else set_CLK_1(); //clk for SENSI-BUS if (IS_DATA_1()) val=(val | i); //read bit set_CLK_0(); // DATA=!ack; //in case of \"ack==1\" pull down DATA-Line set_CLK_1(); //clk #9 for ack _nop_();_nop_();_nop_(); //pulswith approx. 5 us set_CLK_0(); set_DATA_1(); //release DATA-line return val; 40 宁夏大学新华学院本科学位论文 } void s_transstart(void) // generates a transmission start // DATA: |_______| // SCK : ___| |___| |______ { } void s_connectionreset(void) // communication reset: DATA-line=1 and at least 9 SCK cycles followed by transstart // DATA: |_______| // SCK : __| |__| |__| |__| |__| |__| |__| |__| |__| |______| |___| |______ { unsigned char i; set_DATA_1(); set_CLK_0(); //Initial state for(i=0;i<9;i++) //9 SCK cycles { set_CLK_1(); _nop_(); set_CLK_0(); _nop_(); 41 set_DATA_1(); set_CLK_0(); //Initial state _nop_(); set_CLK_1(); _nop_(); set_DATA_0(); _nop_(); set_CLK_0(); _nop_();_nop_();_nop_(); set_CLK_1(); _nop_(); set_DATA_1(); _nop_(); set_CLK_0(); 宁夏大学新华学院本科学位论文 } } s_transstart(); //transmission start char s_softreset(void) // resets the sensor by a softreset { unsigned char error=0; s_connectionreset(); //reset communication error+=s_write_byte(RESET); //send RESET-command to sensor return error; //error=1 in case of no response form the sensor } char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode) // makes a measurement (humidity/temperature) with checksum { unsigned error=0; unsigned int i; s_transstart(); //transmission start switch(mode){ //send command to sensor case TEMP : error+=s_write_byte(MEASURE_TEMP); break; case HUMI : error+=s_write_byte(MEASURE_HUMI); break; default : break; } Sensor_DATA_IN();//改为输入模式 for (i=0;i<65535;i++) if(!IS_DATA_1()) {break;} //wait until sensor has finished the measurement for (i=0;i<65535;i++) if(!IS_DATA_1()) {break;} for (i=0;i<65535;i++) if(!IS_DATA_1()) {break;} for (i=0;i<65535;i++) if(!IS_DATA_1()) {break;} if(IS_DATA_1()) error+=1; // or timeout (~2 sec.) is reached if(error >0){ P1_1 =0; prints(\"s_measure error\"); } Sensor_DATA_OUT();//恢复 42 宁夏大学新华学院本科学位论文 *(p_value+1) =s_read_byte(ACK); //read the first byte (MSB) *(p_value)=s_read_byte(ACK); //read the second byte (LSB) *p_checksum =s_read_byte(noACK); //read checksum return error; } /**************************************************************** *函数功能 :延时 *返 回 值 :无 *说 明 : *入口参数 :定性延时 ****************************************************************/ void Sht11Delay(uint n) { } /***************************************** //Sht11初始化 *****************************************/ void Sht11Init(void) { P0SEL &= ~(0x03<<0); // set general io mode for p0 P0DIR |= 0X03; // 设置P0_0,P0_1为输出 P0INP &= ~0X02; //设置P0_0(CLK)为三态口 //P2INP &= ~(0x01<<5); Sensor_DATA_OUT(); set_DATA_0(); Sensor_CLK_OUT(); set_CLK_0(); s_connectionreset(); Sht11Delay(20); }; 43 uint i,t; for(t = 0;t 宁夏大学新华学院本科学位论文 // calculates temperature [.C] and humidity [%RH] // input : humi [Ticks] (12 bit) // temp [Ticks] (14 bit) // output: humi [%RH] // temp [.C] //---------------------------------------------------------------------------------------- void calc_sth11(float *p_humidity ,float *p_temperature) { float rh=*p_humidity; // rh: Humidity [Ticks] 12 Bit float t=*p_temperature; // t: Temperature [Ticks] 14 Bit float rh_lin; // rh_lin: Humidity linear float rh_true; // rh_true: Temperature compensated humidity float t_C; // t_C : Temperature [.C] t_C=t*0.01 - 40; //calc. Temperature from ticks to [.C] rh_lin=C3*rh*rh + C2*rh + C1; //calc. Humidity from ticks to [%RH] rh_true=(t_C-25)*(T1+T2*rh)+rh_lin; //calc. Temperature compensated humidity [%RH] if(rh_true>100)rh_true=100; //cut if the value is outside of if(rh_true<0.1)rh_true=0.1; //the physical possible range *p_temperature=t_C; //return temperature [.C] *p_humidity=rh_true; //return humidity[%RH] } // calculates dew point // input: humidity [%RH], temperature [.C] // output: dew point [.C] float calc_dewpoint(float h,float t) { float logEx,dew_point ; logEx=0.66077+7.5*t/(237.3+t)+(log10(h)-2) ; dew_point = (logEx - 0.66077)*237.3/(0.66077+7.5-logEx) ; return dew_point; } /**************************************************************** 44 宁夏大学新华学院本科学位论文 *函数功能 :get the value of both humidity and temperature *入口参数 :humi, return the value of humidity :temp, return the value of temperature *返 回 值 :0:success, >0:error *说 明 : ****************************************************************/ char GetHumiAndTemp(float *humi, float *temp) { unsigned char error=0, checksum; value humi_val,temp_val; volatile float dew_point; error+=s_measure((unsigned //measure humidity error+=s_measure((unsigned //measure temperature if(error!=0){ s_connectionreset();prints(\"error\"); Sht11Delay(50000); } else { humi_val.f=(float)humi_val.i; temp_val.f=(float)temp_val.i; calc_sth11(&humi_val.f,&temp_val.f); //calculate humidity, temperature dew_point=calc_dewpoint(humi_val.f,temp_val.f); //calculate dew point *humi = humi_val.f; *temp = temp_val.f; } return error; } 45 char*) char*) &humi_val.i,&checksum,HUMI); &temp_val.i,&checksum,TEMP); 宁夏大学新华学院本科学位论文 1. 2. 3. 8 4. 5. 6. 7. 8. 51 9. 10. 32 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 9660. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 51 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 8 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 46 因篇幅问题不能全部显示,请点此查看更多更全内容