您好,欢迎来到99网。
搜索
您的当前位置:首页ZigBee技术的无线传感器网络的研究与设计本科生大学课程设计

ZigBee技术的无线传感器网络的研究与设计本科生大学课程设计

来源:99网


本科生毕业论文(设计)

题 目: 基于ZigBee技术的

无线传感器网络的研究与设计





目录

摘要:..................................................................IVABSTRACT..................................................................V第一章 绪论..............................................................11.1课题背景概述...................................................................................................................................11.2WSN简介..........................................................................................................................................21.2.1WSN体系结构.......................................................................................................................21.2.2WSN的协议栈结构...............................................................................................................41.2.3WSN特点及其关键问题.......................................................................................................61.2几种常用的无线通信技术...............................................................................................................7

1.3.1 蓝牙技术................................................................................................................................7
1.3.3 ZigBee 技术............................................................................................................................8
1.3.2 红外技术................................................................................................................................7
1.3.4 Wi-Fi 技术...............................................................................................................................8

1.3.8几种无线通信技术对比........................................................................................................91.4本文结构组织.................................................................................................................................101.5本章小结.........................................................................................................................................11第二章 ZigBee/IEEE802.15.4技术标准......................................122.1ZigBee/IEEE802.15.4技术概述......................................................................................................122.2ZigBee技术特点.............................................................................................................................122.3ZigBee技术的体系结构.................................................................................................................132.4ZigBee技术的网络配置.................................................................................................................152.4.1两种功能设备......................................................................................................................152.4.2三种节点类型......................................................................................................................152.4.3三种拓扑结构......................................................................................................................16

2.4.4 两种工作模式......................................................................................................................17
2.5 ZigBee 组网.....................................................................................................................................17
2.5.1 基本通信原语......................................................................................................................17

I/ 85

2.5.2ZigBee网络的组网..............................................................................................................182.5.2.1网络管理服务...........................................................................................................18
2.5.2.2数据传输服务...........................................................................................................20
2.6ZigBee路由....................................................................................................................................212.6.1路由协议...............................................................................................................................212.6.2路由过程..............................................................................................................................222.7本章小结..........................................................................................................................................23第三章 基于ZigBee的无线传感器网络的硬件设计............................243.1ZigBee的几种实现方案.................................................................................................................253.2CC2430芯片介绍............................................................................................................................263.2.1CC2430芯片概述.................................................................................................................263.2.2CC2430引脚功能介绍.........................................................................................................293.2.3CC2430的增强型8051内核...............................................................................................313.2.4CC2430的射频部分.............................................................................................................32

3.2.5 CC2430 的其它外围设备.....................................................................................................34 3.2.5.1 直接存取(DMA)控制器......................................................................................34 3.2.5.2 MAC 定时器..............................................................................................................35
3.3.1 控制电路..............................................................................................................................37

3.3.2状态显示电路......................................................................................................................383.4节点的接口电路.............................................................................................................................393.4.1 USART接口(串行通信接口).........................................................................................403.4.2 JTAG接口............................................................................................................................403.5节点实图.........................................................................................................................................413.6本章小结.........................................................................................................................................41第四章 基于ZigBee2006 协议栈的无线传感器网络的软件设计..................434.1 Z-Stack.............................................................................................................................................434.1.1 Z-Stack软件架构.................................................................................................................434.1.1.1系统初始化...............................................................................................................44
4.1.1.2操作系统的执行.......................................................................................................44
4.1.2 Z-Stack项目中的文件目录.................................................................................................49

4.2 Z-Stack开发软件............................................................................................................................51
4.2.1IAR EW8051集成开发环境................................................................................................51

II/ 85

4.2.2ZigBee2006协议栈..............................................................................................................524.2.3SmartRF Flash Programmer软件.........................................................................................544.2.4ZigBee协议分析仪软件PacketSniffer...............................................................................554.3Z-Stack开发的一些基本概念........................................................................................................554.4实验测试.........................................................................................................................................604.4.1开关灯控制实验..................................................................................................................604.4.1.1功能描述...................................................................................................................604.4.1.2实验程序...................................................................................................................614.4.1.3实验操作及其结果...................................................................................................654.4.2温度传输实验......................................................................................................................664.4.2.1功能描述...................................................................................................................664.4.2.2实验程序...................................................................................................................674.4.2.3实验操作及其结果...................................................................................................734.5本章小结.........................................................................................................................................76

第五章 总结与展望........................................................77 5.1 无线传感器网络的应用设想.........................................................................................................77 5.2 总结与展望.....................................................................................................................................78
附录.....................................................................80

致谢.....................................................................

基于ZigBee技术的无线传感器网络的研究与设计

作者:闫彦含指导老师:何自立
摘要:无线传感器网络是涉及多学科、知识高度集中、在当今国际上备受关注的前沿热点和研究领域。它综合了传感器、微处理器和无线通信三项重大技术,具有信息采集、处理、无线传输

能力,是新一代传感器网络的主要发展方向。而低功耗、低成本、应用简单方便的ZigBee技术的诞

生为无线传感器网络的发展和开拓起到了巨大的推动和促进作用。

本文主要从ZigBee技术着手,对无线传感器网络进行学习研究和设计。首先,本文对无线传感器网络的背景、发展状况和应用前景进行了简单介绍,然后从体系结构、节点结构、协议栈、特点

和关键问题等方面对无线传感器网络进行详细描述。接着本文又详细剖析了ZigBee/IEEE802.15.4技术。其次,本文对基于ZigBee的无线传感器网络的硬件部分进行了设计,其中包括主芯片CC2430

外围设备、射频模块、控制电路、显示电路和接口电路等。再次,本文对基于ZigBee的无线传感器
网络软件部分进行了设计,并通过实验展示了本文所设计的无线传感器网络的可行性和可靠性。最

III/ 85

后,本文进行总结和展望,并提出了几种基于ZigBee的无线传感器网络的应用。

关键 词无线传感器网络;ZigBeeCC2430Z-Stack
THERESEARCH AND DESIGN OF WIRELESS SENSOR NETWORKSBASED ON ZIGBEE
ABSTRACT:WirelessSensor Network (WSN) is a multi-disciplinary, knowledge-highlyconcentrated frontier hotspot and research field,which is focused bythe world in morden times.It has the ability of informationcollection, processing and transmission as it combines sensortechnology, microprocessor technology and wireless communicationtechnology ,and it is the main direction of development of the nextgeneration sensor network.The birth of ZigBee which is low-power,low-cost, simplely and conveniently applied plays a significant rolein promoting the development and exploiting of Wireless SensorNetwor.

Thisarticle, mainly beginning with ZigBee technology, hasstudied,researched and designed WSN. First, the paper introdued thebackground, the development condition and the application prospectand then described WSN in detail from architecture, node structure,protocol stack, features and key problems and so on.The paper alsoanalysed ZigBee/IEEE802.15.4. Second,the paper carried on hardwaredesign of WSN

based on ZigBee, including the main chip of CC2430, peripheral equipment, RF module, controlling circuit, displaying circuit and interface circuit and so on. Futher more, the paper carried on software design of WSN based on ZigBee, and demonstrated the feasibility and reliability of the system though experiments.
Keywords: WSN, ZigBee, CC2430, Z-Stack

AES

Advanced Encryption Standard

高级加密标准

API

Application Program Interface

应用编程接口

BPSK

Binary Phase Shift Keying

二相相移键控

CSMA/CA

Carrier Sense Multiple Access with Collision

带有冲突避免的载波

Avoidance

侦听多路访

DMA

Direct Memory Access

直接存储器访问

DSSS

Direct Sequence Spread Spectrum

直接序列扩频

FFD

Full Functional Device

全功能设备

FIFO

First Input First Output

先入先出队列
图形用户界面

GUI

Graphical User Interface

IV/ 85


IRDA

Infrared Data Association

红外数据组织

ISM

Industrial Scientific Medical

工业、科学、医学频段

JTAG

国际标准测试协议

LNA

Low-Noise Amplifier

低噪声放大器

LQI

Link Quality Indication

链路质量指标

MCU

Micro Control Unit

微控制单元

OQSPK

Offset - Quadrature Phase Shift Keying

偏移四相相移键控

PDA Personal Digital Assistant个人数字处理PA Power Amplifier 功率放大器
PAN

QoS

Quality of Service

服务质量

RFD

Reduced Function Device

精简功能设备

RFID

Radio Frequency Identification

射频识别

RSSI

Received Signal Strength Indication

接收信号强度指示

SAP

Service Access Point

服务访问点

SFR

Special Function Register

特殊功能寄存器



SoC

System on Chip

片上系统

V/ 85


SPI

Serial Peripheral Interface

串行外围设备接口

TCP

Transmission Control Protocol

传输控制协议

USART

UniversalSynchronous/Asynchronous

通用同步/异步串行接

Receiver/Transmitter

/发送器

Wi-Fi

WirelessFidelity

8021.11b

WSN

Wireless Sensor Networks

无线传感器网络

WLAN

Wireless Local Area Networks

无线局域网

WUSN

Wireless Underground Sensor Networks

无线地下传感器网络





VI/ 85

第一章 绪论

1.1课题背景概述
当今世界,科学技术迅猛发展,各项新思想、新技术、新产品层出不穷,各种不同学科、不同领域的知识和技术也在不停地交织相融,于是产生了多个极具研究价值并有着深远意义的科研课题。

无线传感器网络(WirelessSensorNetworks,简称WSN)是当前国际上备受关注、涉及多个学科、知识高度集中的前沿热点和研究领域。它综合了传感器、微处理器、网络通信和分布式信息处理等技术,能够通过各类集成化的微型传感器协同完成对各种环境信息的实时监测、感知、采集和处理,并以自组织多跳的无线通信方式将数据信息传送到用户终端,从而实现了科学世界与人类生活的完美贯通。

传感器网络发展至今,共经历了四代发展时期。第一代传感器网络出现在20世界70年代,采用点对点传输连接传感控制器构成传感器网络;第二代传感器网络,具有获得多种信息、信号的综合能力,采用串/并接口(如RS-232RS-485)与传感控制器相连,

构成有多种综合信息的传感器网络;第三代传感器网络出现在20 世纪90 年代后期和21
世纪初,采用现场总线连接传感控制器,构成局域网络,成为智能化传感器网络;第四
代传感器网络即是无线传感器网络,正在研究开发。
同年,
和可能地广泛应用。同时,国内外许多大学、科研机构和产业界对无线传感器网络都很

看好,纷纷从不同层次和角度对WSN展开了探索和研究。可以预见,无线传感器网络必将成为21世纪一项极为重要的技术,它的发展和推广也必将给人类社会带来重大影响和变革。

无线传感器网络有着十分广泛的应用前景,它不仅在工业、农业、环境、军事、医疗等传统领域有着巨大的应用价值,在未来许多新兴领域也有着不可想象的优越性,例如家用、保健、城市交通等。在将来,无线传感器网络甚至能够渗入到我们生活的角角落落,我们可以将手机、笔记本电脑、PDA(PersonalDigital Assistant,个人数码处理) ,便携装置随时组成网络,构成一个WLANWirelessLocal Area Network,无线局域网)充分享受“信息随身化、便利走天下”的理想境界。将WSN用于城市路灯控制,通过布设在道路两侧的无线传感器网络,来控制路灯的亮度、开关等。将WSN应用到空调系统,来控制空调的功率和开关,从而能达到节能省电的目的。将WSN应用到地震、泥石流或滑坡等灾害多发地,能够更好、更安全地协助环境监测,预报地质灾害。总之,

在不久的将来,无线传感器网络必将能够布满于我们的生活,给我们的生活带来无尽的
舒适与便捷。

1/ 85

尽管无线传感器网络有着美好的前景,但它的应用还远远没有推广开来。国外发达国家在这方面开始的比较早,投入也比较大,像美国波士顿大学创办了传感器网络协会(SensorNetwork Consortium),期望能促进传感器联网技术开的发展;美方将WSN应用到军事系统,耗资400-600亿美元建造的FCSFutureCombat System,未来战斗系统),以网络为中心,达到全球到达、迅速反应的低伤亡作战目标;美国国家科学基金赞助的BiomedicalSensors项目[1],美国NASANationalAeronautics and Space Administration, 美国国家航空暨太空总署)发起的SensorWebs项目[2]等等都是关于无线传感器网络的重要研究。国内关于WSN的研究起步较晚,部分公司在进行商业开发,如成都无线电子龙有限公司,西安达泰电子有限公司、西安华凡科技有限公司等在WSN方面有所开发和研究。部分大学,例如国防科技大学、清华大学、中国科学技术大学、哈尔滨工业大学、电子科技大学、天津大学、北京邮电大学等对无线传感器网络也进行着相关的研究工作。总之,无线传感器网络大多处于研究实验或者商业开发阶段,在生活应用和推广普及方面还远远不够,有待进一步发展。

正是基于无线传感器网络巨大的应用价值和美好前景以及应用较少的状况,本文也

开展了对WSN 的基础性研究学习,对节点设计和协议栈进行描述,并提出了将WSN应用于农业环境信息采集和控制系统。借助于WSN 技术,农业信息采集和控制体现出实时、精确、方便、易于管理、可扩展性强等优点。
等特点。

1.2.1WSN体系结构
1-1是典型的无线传感器网络的体系结构图。完整的WSN体系结构应包括传感器节点群、sink节点、互联网和用户终端等。大量体积小、成本低、具有数据采集、处理、融合和无线通信功能的节点通过飞机播撒、人工布置等方式被部署在监测区域,每个节点都可以感测监测区域内的环境信息,并以无线、自组织、多跳的方式在相互之间进行通信,并将数据信息传送到汇聚节点(sink节点),最终由汇聚节点通过Internet、卫星或者移动通信等方式将数据信息传送到用户终端。如果距离较远,为了提高通信可靠性,可在sink节点附近增设基站,通过基站与Internet进行连接。



2/ 85



?ù??

si nk????

??°?????

Int ernet ??????

?ò???????¨????

监测区域

???§????

1-1典型的无线传感器网络的体系结构

处理能力、存储能力和通信能力比较弱。从功能上看,传感器节点具有采集、处理、发传感器节点通常是一个微型的嵌入式系统,通过携带能量有限的电池供电,因此其

一些特定任务。

1.一般节点

传感器节点是无线传感器网络的基本功能单元,其结构主要包括传感器模块,处理

器模块,射频模块和电源模块等。图1-2是典型的节点结构图,其中的定位模块和移动

模块为可选择性的。

传感器节点通过自带传感器采集周围环境信息,经过简单的数据处理、融合,通过

射频模块将其发射出去。节点体积小,电源能量小,所以选择低功耗设计是很必要的。

2.汇聚(sink)节点

汇聚节点,也称为网关(sink)节点,它比一般节点具有更高的电能,更强的发射

能力,更高级的数据融合能力。它的作用是将传感器网络所采集到的有用信息通过无线

方式传送给基站,进而通过Internet、卫星或移动通信等方式传送到用户终端。



3/ 85



定位模块

??

处理器模块

移动模块

传感器模块

射频模块

传感器

ADC转换

处理器

??·??÷

存储器

??

??

1-2典型的节点结构

3.基站

由于节点能量有限,无法将采集到的大量数据传送到远方的控制计算机,所以需要

在传感器网络附近设置基站。如果把整个无线传感器网络比喻成一个交通网络,那么基站就好比加油站,它的主要作用是给信息传递补充能量,将汇聚节点的数据信息可靠地传输到用户终端。同时,它还具有一个本地数据库的副本来缓存最新的传感器数据。
精确、实时。同时,工作人员还可以通过终端计算机对远程信息进行观察、对比,以做

出合理的操作控制。

1.2.2WSN的协议栈结构

典型的WSN 协议栈结构图如图1-3 所示。该协议栈包括物理层(physical layer)、

数据链路层(data link layer)、网络层(network layer)、传输层(transport layer)和应用

层(application layer),分别与互联网协议栈[4]的五层协议相对应。同时,WSN 协议栈

还包括能量管理平台、移动管理平台和任务管理平台。这些管理平台使得传感器节点能

够按照能源高效的方式协同工作,在节点移动的传感器网络中转发数据,并支持多任务

和资源共享。

各层协议和平台的功能如下:



4/ 85



应用层

传输层

网络层

数据链路层

物理层

1-3无线传感器网络协议栈结构图

? 物理层:负责数据的调制发送与接收,本层的设计直接影响到电路的复杂度和传

输能耗等问题,设计原则应该使节点尽量低成本、低功耗和小体积。

? 数据链路层:负责数据流的多路复用、数据帧检测、媒体介入和差错控制等,保

证了无线传感器网络传输线路的可靠连接。

?

?

?
?
?

网络层:主要负责路由的生成和选择。无线传感器网络的网络层设计是以数据为中心,我们不会关注某个具体节点的观测数据,而是关心某个区域的观测数据。以数据为中心的特点要求WSN 能够脱离传统的网络寻址过程,快速有效地组织起并没有太大的现实意义;适合无线传感器网络的传输层协议更类似于UDP
应用层:根据应用要求的不同,包括一系列基于监测任务的应用软件。
能量管理平台:主要对节点的能量进行分配,以达到节约能量。
移动管理平台:记载节点的移动,维护汇聚节点的路由,使得节点能够动态跟踪

其邻居节点的位置。

? 任务管理平台:主要用来平衡和调度监测区域内的监测任务。

随着研究的进展,后来人们又提出了改进的WSN协议栈模型,其结构图如图1-4[5]

所示。



5/ 85



上层应用

QoS

时间同步

同位

/

传输控制

路由

/

数据链路

物理

1-4改进的WSN协议栈模型
相对原始模型(图3)来说,时间同步和定位既要依赖于数据传输通道进行协作定位和时间同步协商,同时又要为网络协议各层提供信息支持。服务质量Quality

of Service,简称QoS)管理在各协议层设计队列管理、优先级机制或者带宽预留等机制,
并对特定应用的数据给予特别处理。“拓扑控制”利用物理层、数据链路层或网络层完成
拓扑生成,反过来又为它们提供基础信息支持,优化MAC 协议和路由协议的协议过程,

无线传感器网络是新一代传感器网络,有着鲜明的特点:

1电源能量有限。节点一般采用自带电源供电,由于它体积小,所带电能有限,一旦耗完,节点就失去了工作能力。所以,在硬件设计方面应尽量选用低功耗的器件,在软件方面应采用优化的程序和通信协议,以保证电能的充足,延长节点的寿命。

2无中心、动态拓扑。WSN没有明确的中心,各个节点之间是对等的;任何节点都可以随时加入或退出网络,而不会影响其它节点的有效性,只是整个网络的拓扑结构会随之而动态变化。

3多跳、自组织。WSN中无需借助于其它辅助设备,完全由各个节点通过预设的协议和算法自行组织,在相互之间进行多跳转发数据,快速形成通信网络。同时,节点间通信采用短距离多跳方式比长距离少跳方式省电,对整个网络的性能更有利。

4节点数量多,分布范围广。为了满足探测的需要,需要在被探测区域投入大量

的节点,来监测环境信息。只有这样才能在监测范围内尽可能多、尽可能准确地获取有价值信息。因而,一般WSN 包含的节点数量非常之多,分布范围之广。
另外,WSN 的特点也决定了它在技术上面临着一些挑战,存在着几个关键问题:
能量管理问题。WSN 可靠工作的首要前提是有足够的电能,它决定了WSN 能否可

6/ 85

靠地工作。传感器传输信息比执行计算更消耗电能,因而构成合理的拓扑通信网络尤为重要。好的能量管理机制,能更好地延长传感器网络的生存周期。

网络拓扑控制。对于自组织的传感器网络而言,网络拓扑控制具有特别重要的意义。良好的网络拓扑结构,不仅能够提高路由协议和通信效率,而且能够节省能量,延长整个网络的生存周期。因此,网络拓扑控制也是关键问题之一。

带宽有限。WSN中无限通信带宽一般都很低,如果考虑冲突、噪声等外界干扰,有效带宽会更低。为了可靠地传输数据,足够的带宽设计是一个关键问题。

安全性差。WSN一般分布于环境恶劣的场所,由于采用无线信道、有限电源、分布式控制等技术,它更加容易受到入侵,保密性差。因此,WSN一般具有较差的鲁棒性,需要好的安全设计措施。

健壮性。传感器网络特别适合部署在恶劣环境中,因而要求传感器节点有很好的抗损坏能力,要求传感器网络有很好的自适应性、高强壮性和容错性。

1.2几种常用的无线通信技术
1.3.1蓝牙技术

1994 年,L.M. Ericsson 公司与IBMIntelNokia Toshiba 四家公司一起组成了一个SIGSpecial Interest Group,特别兴趣集团)联盟,开发了一个无线标准,将计算机和通信设备或者附加部件通过短距离、低功耗、低成本的无线电波连接起来,这个项
目被称为蓝牙(Bluetooth
电脑、PDA 等通信设备间进行数据传输,使用方便,并且全球通用。有关蓝牙技术的更

多信息参考文献[6]

1.3.2红外技术
1993年,多家厂商成立了红外数据协会(IrDAInfraredData Association),统一了红外技术标准。红外技术采用红外线的0.85mm波段,最大通信距离为10米,最大通信角度为30°,它的最大传输速率可达16Mbps

红外技术具有工作原理简单,功耗小,成本低,安全性好,保密性高,无电磁干扰,无须批准频带等优点。但是它不能穿透固体物质,传输距离有限,而且只能够实现点到点的直线传输,这些缺点了它的推广应用。

1.3.3 ZigBee 技术
2002年,ZigBee 联盟正式成立。2003年,IEEE正式发布了该项技术物理层和MAC层所采用的标准协议,即IEEE802.15.4 标准;2004 12月,ZigBee 联盟正式发布了该项技术标准。

ZigBee 是一种经济、高效、低数据速率(<250kbps)、工作在2.4GHz868/928MHz
的无线技术,用于个人区域网和对等网络。2.4GHz频段的ZigBee 分为16个信道,数

7/ 85


据传输速率为250 kbps,免费全球通用。868/928MHz 频段的ZigBee 分为10 个信道和1

个信道,传输速率分别为40kbps20kbps,分别为欧洲和美国所使用。

由于ZigBee价廉、短距离、低功率的无线通信特点,它一直占据着无线通讯市场。特别在无限传感器网络方面,ZigBee有着十分广泛的应用,本文后边将会对ZigBeeWSN中的应用具体阐述。

1.3.4Wi-Fi技术
是由Wi-FiWi-FiWirelessFidelity,无线相容性认证)的正式名称是IEEE802.11b
联盟所制订。它是无线局域网(WLANIEEE802.11标准的一种。802.11a定义了一个在5GHzISM频段上,数据传输速率可达54Mbps
802.11b定义了一个在2.4GHzISM频段上,数据传输速率高达11Mbps

目前,Wi-Fi技术尤其火热,手机Wi-Fi是一个热潮。大量的智能手机现身市场,通过其Wi-Fi技术吸引了众多买家。无线路由也开始使用Wi-Fi,其覆盖范围可达100米左右,远远超过了蓝牙技术。另外,Wi-Fi也开始进军无线传感器网络,并且有着很大优势,但是此应用才刚刚开始,仍需进一步发展。

1.3.5 RFID 技术

是一种非接触式的自动识别技术,它通过自动识别目标对象并获取相关数据,

RFID(Radio Frequency Identification),即,俗称。RFID 射频识别淘网
www.tadcs.com物标识等方面。

1.3.6HomeRF技术
1997年,美国家用射频委员会领导组成了HomeRFRadioFrequency)工作组。它推出的HomeRF标准集成了语音和数据传送技术,工作频段为10GHz,数据传输速率可达100Mbps,在WLAN的安全性方面主要考虑访问控制和加密技术。当进行数据通信时,采用IEEE802.11规范中的TCP/IP传输协议;当进行语音通信时,则采用数字增强型无绳通信标准。使用范围有很大局限性,大多用在家庭网络中。

1.3.7 UWB技术
UWB(Ultra-Wideband)超宽带技术,是一种无载波通信技术,利用纳秒至微微秒级的非正弦波窄脉冲传输数据。它在10米左右的范围内能实现数百Mbps至数Gbps 的数据传输速率,它工作在3.1- 10.6 GHz 频段。相对其它几种无线通信技术,UWB具有抗干扰性能强、传输速率高、带宽极宽、消耗电能小、发送功率小等优点,主要应用于室内通信、高速无线LAN、、无绳电话、安全检测、定位、雷达等领域。

1.3.8 几种无线通信技术对比
上文介绍了7种重要的短距离无线通信技术,为了更好的分析对比它们各自的优缺

8/ 85

点,表1-1列举了它们的主要参数:
由列表数据对比得出结论:对于无线传感器网络试验性研究来说,Wi-Fi优势明显,但是这项应用才刚起步,而且造价比较昂贵,一般性研究支付不起;UWB传输速率高,功耗低,但是也是价格昂贵;红外由于传输定向性强特点,不太适合;蓝牙也是比较昂 RFID技术已经比较成熟,但是与WSN结合还没有开展开,仍贵,并且传输距离太小
;需等待;HomeRF更适合于家庭网络;而对于ZigBee技术来说,最适合于WSN,成本不是很高,而且硬件产品、模型、协议等都比较简单,易于开发。本文将对基于ZigBee的无线传感器网络进行初步研究,下文将对ZigBee技术和WSN方案进行叙述。

1-1几种短距离无线通信技术的比较

传输范围

传输速

技术名称

工作频段

主要应用

()

率(Mbps

(mW)

蓝牙

2.4GHz

10

1

1 -100

个人网络

红外

0.85mm

10

16

几毫瓦

透明的点到点传输

ZigBee
928MHz 强型达几千米) 传感器网络
个人网络2.4GHz/868/ 10-100 (加
Wi-Fi
RFID 距离多样0.2 馆管理、快递管理、
860M/960MHz/ 供电
公路自动收费等
2.4G/5.8G

HomeRF

10GHz

50

1-2

1000

家庭网络

以下

UWB

3.1 - 10.6 GHz

小于10

数百Mbps

1 以下

家庭、检测、定位、

探距等

至数Gbps

1.4本文结构组织
第一章对无线传感器网络的背景、体系结构、协议栈、特点等方面进行了介绍,并比较了几种重要的无线通信技术。

第二章对ZigBee/IEEE802.15.4的特点、体系结构、网络配置、组网、路由等方面进行了介绍。

第三章对基于ZigBee 的无线传感器网络的硬件部分进行了设计。
第四章对基于ZigBee 的无线传感器网络的软件部分进行了设计,并通过两个实验,
来验证所设计系统的可靠性和可行性。

9/ 85

第五章提出了几种基于ZigBee的无线传感器网络的应用,并对全文进行总结和展望。

1.5本章小结
本章首先对无线传感器网络的起源、应用前景和发展状况进行了简单介绍。 接着从体系结构、协议栈结构、特点及其关键问题等方面对无线传感器网络进行了概述。

另外,本章还介绍了几种重要的短距离无线通信技术,并对它们做了对比分析。 最后,本章对全文的文章组织和结构进行了介绍,对全文起到了提纲挈领的作用,使文章的内容更加清晰、一目了然。

第二章 ZigBee/IEEE802.15.4技术标准

2.1ZigBee/IEEE802.15.4技术概述
ZigBee技术的名字源自蜂群(Bee)在发现花粉时,通过跳ZigZag形舞蹈来告知同伴,达到交换信息的目的,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。后

来人们就将这种低功耗、低成本、低复杂度、低速率的近距离无线网络通信技术成为
ZigBee 技术。
ZigBee 技术是一种具有统一标准的短距离无线通信技术,其物理层(PHY)和媒体接

的工业、科学、医学(ISMIndustrial Scientific and Medical)频段,该频段为免费、免
申请的无线电频段,数据传输速率为250kbps,采用偏移四相相移键控调制技术(OQPSK);

另外两个频段868915MHz分别适用于欧洲和美国,其相应的信道个数分别为1个信道和10个信道,传输速率分别为20kbps40kbps,分别采用直接序列扩频技术(DSSS)和二进制相移键控(BPSK)调制技术。

在组网性能上,ZigBee可以构造成星形网络或者点对点对等网络,在每一个ZigBee组成的无线网络中,连接地址码分为16位短地址或者位长地址,可容纳的最大设备个数分别为216个和2个,具有较大的网络容量。

ZigBee采用载波侦听多路访问/冲突避免(CSMA/CA)方式,有效避免了无线电载波之间的冲突。此外,为保证传输数据的可靠性,建立了完整的应答通信协议。

为保证ZigBee设备之间通信数据的安全保密性,ZigBee技术采用了三级安全性措

施,对所传输的数据信息进行加密处理。 2.2 ZigBee 技术特点


相对其它无线通信技术,ZigBee 技术有着鲜明的特点:


?

低功耗。这是ZigBee技术最为显著的一个特点,由于它采用了休眠-唤醒机制,

10/ 85


大大减少能量消耗,两节5 号电池可支持一个节点6-24 个小时。现在,TI 公司

和德国的Micropelt公司共同推出新能源的Zigbee节点,该节点采用Micropelt公司的热电发电机给TI公司的Zigbee提供电源。

? 低成本。ZigBee作为WSN的一种重要技术,成本低是它的一大优势,每个 ZigBee芯片的成本最低能达到十几元人民币,并且ZigBee免协议专利费,这 ZigBee技术的开发研究和发展奠定了很好的基础。

? 传输速率低。Zigbee工作在20250kbps的较低传输速率,分别提供250 kbps(2.4GHz)40kbps(915 MHz)20kbps(868MHz) 的原始数据吞吐率,满足 低速率传输数据的应用需求。

? 短距离。传输范围一般介于10100m 之间,在增大射频功率后,可达到13 km。这指的是相邻间的距离,如果通过路由和节点间通信的接力,传输距 离将可以更远。

? 短时延。Zigbee的响应速度较快,一般从睡眠转入工作状态只需15ms ,节点连 接进入网络只需30ms ,进一步节省了电能。相比较,蓝牙需要310sWiFi

?

需要3 s
高容量:。若千个子节点,一个主节点最多可以管理254 个子节点,同时主节点还可由上ZigBee 可采用星型、树型和Mesh 网络拓扑结构,由一个主节点管理

安全属性。

?

免执照。采用工业科学医疗( ISM) 频段,2. 4 GHz (全球) 915 MHz(美国)

868MHz(欧洲)

基于ZigBee这些特点(前面我们已经对几种无线通信技术做过比较),目前ZigBee技术最适合于无线传感器网络的应用。

2.3ZigBee技术的体系结构
ZigBee协议栈的体系结构如图2-1所示,物理层和MAC层采用IEEE802.15.4协议标准,网络层、加密层和应用层由ZigBee联盟制定。



11/ 85



??????


I E E E 802. 15. 4

Z i gB ee????


??????


???????·??D LL

??????????????M A C

?? ?í??P H Y

2-1ZigBee协议栈的体系结构

? 物理层:ZigBeePHY提供了两种类型的服务,即通过物理层管理实体接口对

PHY层数据和PHY层管理提供服务。图2-2ZigBee物理层的结构模型。PHY

层的具体功能是:激活和关闭射频收发器;对信道的能量进行检测;对收到的

数据包有链路质量指示;空闲信道评估;载波侦听多路访问/冲突避免(CSMA/CA)
协议;信道频率选择;数据的发送和接收等。

物理层物理层个体网
络基本信息

无线射频-服务接入点

2-2ZigBee物理层结构模型[8]

? MAC层。ZigBeeMAC层也提供了两种类型的服务:通过MAC层管理实体服

务接入点向MAC层数据和MAC层管理提供服务。MAC层的具体功能是:信

标管理;信道接入;时隙连接请求;使用载波侦听多路访问/冲突避免(CSMA/CA)

信道访问机制;为两个对等MAC实体提供可靠的连接。

? 网络层。ZigBee网络层的具体功能是:设备连接和断开网络时所采用的机制;

在帧信息传输过程中所采用的安全性机制;设备之间的路由发现和路由维护和

?

转交;对一跳(one-hop)邻居设备的发现和相关结点信息的存储。
应用层。ZigBee 应用层包括应用支持子层(Application Support Sub-Layer,APS
应用框架(Application Framework,AF)和ZigBee 设备对象(ZigBee Device
Object,ZDO)。APS 主要负责数据单元的处理和传输以及应用对象的绑定。ZDO

12/ 85

是一个公共服务接口,提供了一个公共的功能集,为用户自定义的应用对象提供一个调用APS和网络层的接口。AF为用户自定义的应用程序提供一个模板式的活动空间,通过键值对和报文两种服务方式。应用层包含在网络节点上运行的应用程序,赋予节点自己的功能,应用层的主要功能是将输入转化为数字数据,或者将数字数据转化为输出。

2.4ZigBee技术的网络配置
三种拓扑结构以及两种工作模式。Zigbee网络中包含两种功能设备,三种节点类型,
有了这些基本的知识和功能单元,我们就可以对ZigBee进行组网。

2.4.1两种功能设备
ZigBee网络含全功能设备FFD(FullFunction Device)和精简功能设备RFD(ReducedFunction Device)两种功能类型的设备。

? 全功能设备(FFD):可以担任网络协调者,形成网络,让其它的FFD或是精简功能 装置(RFD)连结,FFD具备控制器的功能,可提供信息双向传输。它附带由标准 指定的全部802.15.4功能和所有特征,更多的存储器、计算能力可使其在空闲时起

?

网络路由器作用,也能用作终端设备。
精简功能设备(RFD):在网络中通常用作终端设备。RFD 由于省掉了内存和其他电路,降低了ZigBee RFD 却只能与FFD 通讯附带有限的功能来控制成本和复杂性,

Router)和终端设备ZE(ZigBee EndDevice),其中协调器和路由器均为全功能设备(FFD)

而终端设备选用精简功能设备(RFD)

? 协调器ZC:一个ZigBee网络PAN(PersonalAreaNetwork)有且仅有一个协调 器,该设备负责启动网络,配置网络成员地址,维护网络,维护节点的绑定关 系表等,需要最多的存储空间、计算能力和电能。

? 路由器ZR:主要实现扩展网络及路由消息的功能,扩展网络,即作为网络中 的潜在父节点,允许更多的设备接入网络,路由节点只有在树状网络和网状网 络中存在。

? 终端设备ZE:不具备成为父节点或路由器的能力,一般作为网络的边缘设备, 负责与实际的监控对象相连,这种设备只与自己的父节点主动通讯,具体的信 息路由则全部交由其父节点及网络中具有路由功能的协调器和路由器完成。

2.4.3 三种拓扑结构
ZigBee 网络拓扑有星形,网形和簇形三种结构,如图2-3 所示,从左到右依次是

星形,网形和簇形。


13/ 85



?????è±?(RF D?òF F D?? ?·???÷?¨FF D ) ???÷?÷(FF D )

2-3ZigBee网络拓扑结构

? 星形网络。所有的设备都与中心网络协调设备通信,实际上在这种网络结构中

路由器是没有路由作用的。在这种网络结构中,网络协调设备一般由电力系统

供电,而其他设备采用电池供电。星型网络适合家庭自动化、个人机外设以及

?

个人健康护理等小范围的室内应用。
网形网络(Mesh)。在对方的无线辐射范围内,任何两个FFD 设备之间直接通信,在Mesh 网络中每一个FFD 设备都可以认为是网络路由器, 都可现对网络


备和终端设备的功能清晰,相对于Mesh 网络,构建簇形网络比较简单,所需
的资源相对较少,并且可以实现网络的路由转发功能,从而也扩大了网络的通

信范围。

2.4.4两种工作模式

ZigBee网络的工作模式可以分为信标(Beacon)和非信标(Non-beacon)两种模式。信

标模式实现了网络中所有设备的同步工作和同步休眠,以达到最大限度的功耗节省,而

非信标模式则只允许终端设备ZE进行周期性休眠,协调器ZC和所有路由器ZR设备必

须长期处于工作状态。

信标模式下,ZC负责以一定的间隔时间(一般在15ms-4mins之间)向网络广播信标

帧,两个信标帧发送间隔之间有16个相同的时槽,这些时槽分为网络休眠区和网络活

动区两个部分,消息只能在网络活动区的各时槽内发送。

非信标模式下,ZigBee 标准采用父节点为ZE 子节点缓存数据,ZE 主动向其父节点提取数据的机制,实现ZE 的周期性(周期可设置)休眠。网络中所有父节点需为自己
ZE 子节点缓存数据帧,所有ZE 子节点的大多数时间都处于休眠模式,周期性的醒

来与父节点握手以确认自己仍处于网络中,其从休眠模式转入数据传输模式一般只需要

14/ 85

15ms

2.5ZigBee组网
2.5.1基本通信原语
ZigBee协议是分层的通信协议,层与层之间是通过服务接入点SAP相连接的。每一层都可以通过本层和下一层的SAP调用下层所提供的服务,同时通过与上层的SAP通信,为上层提供相应服务。SAP是层与层之间的唯一接口,而具体的服务是以通信原语的形式供层与层之间调用。在调用下层服务时,只需要遵循统一的原语规范,并不需

要去了解如何处理原语。这样就做到了数据层与层之间的透明传输。层与层之间的通信原语分为以下四种,它们之间的关系图如图2-4所示:

原语提供者
本层

服务使用者

服务使用者

Request

Indication

Confirm

Response

Request:请求原语,用于上层向本层请求指定的服务。

原语遵循“SAP 名称-原语功能.原语类型”的规则,比如“PD-DATA.request”表示物理

层数据请求原语。

另外,ZigBee/IEEE802.15.4标准包含两种数据单元:协议数据单元(ProtocolData Unit,PDU)和服务数据单元(ServiceData Unit,SDU)。PDU是在不同节点的各层对等实体之间用来实现该层协议所交换的信息单元。SDU是为了完成上层用户的请求,本层所

传送的本层数据净荷。

2.5.2ZigBee网络的组网
ZigBee标准提供了两个必须的功能服务实体,它们分别为管理服务实体和数据服务实体。管理服务实体通过网络管理实体服务接入点(NLME-SAP)提供网络管理服务,并允许应用和堆栈相互作用。数据服务实体生成协议数据单元(PDU),并通过数据实体服务接入点(NLDE-SAP)提供数据传输服务。

2.5.2.1 网络管理服务
1.ZigBee 网络的建立

建立一个新网络的过程从NLME-Network-Formation.request原语的使用开始。只有
那些可以成为ZigBee协调器并且当前没有加入任何网络的设备才能建立新网络。如果

15/ 85

该程序已经在其他设备中开始运行,网络层管理实体(NLME)就必须结束该程序,并通知上一层属于非法请求。这一过程通过发送NLME-Network-Formation.confirm原语,并设置其状态参数为Invalid.Request来实现。

过程启动以后,网络层管理实体首先要求MAC层对任意指定的一系列信道,缺省条件所有有效的信道进行能量扫描,寻找可能存在的网络。信道扫描通过发送
MLME-SCAN.request原语到MAC层,将ScanType参数设置为能量扫描。MAC层将结果有MLME-SCAN.confirm原语传回网络层(NWK)。网络层管理实体根据能量检测来对

这些信道进行排序,并忽略一些能量值低于某一可接受水平的信道。然后,网络层管理实体发送MLME-SCAN.request原语进行主动扫描,需要将ScanType参数设置成主动扫描并把ChannelList设置成可接受信道,用以寻找其他的ZigBee设备。为了选取建立新网络的最佳信道,网络层管理实体需要寻找现有网络数量最少的第一个信道。如果没有

发现合适的信道,网络层管理实体就要结束该程序并通知上一层网络建立失败。如果发

现了合适的信道,网络层管理实体就要为新网络选择一个PANPersonalArea Network)标识符。

首先要检查可选的PANID 参数是否在指定的NLME-Network-Formation.request 原语中被指定。如果存在并且没有与现有的PANID冲突,这个值就成为新网络的PANID,否则设备会选择一个随机的PAN 标识符。一旦网络层管理实体做出选择,它就要通过

MLME-Start.request 原语给MAC 层以设定网络帧格式。按照

NLME-Network-Formation.request原语、信道扫描结果和选定的PAN标识符提供的信息设置MIME-Start.request原语的参数。PAN状态通过MLME-Start.confirm原语传回网络层。一旦接收到PAN启动的状态值,网络层管理实体通知上层网络实体初始化ZigBee协调器的要求,发送NLME-Network-Formation.confirm原语(状态参量设成MLME-Start.confirm原语从MAC层返回的值)

2.允许设备加入ZigBee网络
允许设备加入网络的过程由NLME-Perrnit-Joining.request原语开始。只有ZigBee协调器和ZigBee路由器才能允许设备加入网络。如果该程序己经在其他任意设备上被运行,网络层管理实体(NLME)就要终止该程序。

如果程序初始化时设置PennitDuration参数为0x00,网络层管理实体(NLME)就要通过发送MIME-Set.request原语设置MACmacAssociationPemit属性为FALSE。如果程序初始化时PemritDuration参数在0x01 Oxfe之间,网络层管理实体通过

MIME-Set.request 设置MACmacAssociationPermit属性为TRUE。然后启动一个时钟
计时,如果指定的持续时间到,则网络层管理实体再把MACmacAssociationPermit

16/ 85

属性设置成FALSE

如果程序初始化时设置PermitDuration属性为参数为ox0f,网络层管理实体就要设置MACtnacAssociationPernit属性为TRUE,直到另一个NLME-Permit-Joining.request原语发送时才改变状态。

3.设备加入网络进程
任意设备都能够发送关联加入网络请求,但是只有ZigBee协调器或路由器有可用的网络地址空间才可以接收处理设备加入请求。

子设备加入网络的过程要从发送NLME-Network-Discovery.request原语开始,设置Cbannels参数(需要扫描哪些信道)ScaiiDuration参数(扫描每个信道所需的时间)。一旦收到该原语,网络层就会发送MLME-Scan.request原语要求MAC层进行一次扫描。

扫描过程中每接收到一个有效数据非零的信息帧,扫描设备就从MAC层发送一个MLME-Beacon-Notify.indication原语给它的网络层管理实体。该原语包括信息设备的寻址信息,是否允许关联以及信标有效载荷。网络层管理实体需要检查信标有效载荷中的协议标识并确认其是否符合ZigBee协议标识符。如果MAC层发送MLME-Scan.confirm

NLMENWK 层就发送NLME-Network-Discovery.confirm,其中包括扫描到的网络的描述。网络描述包括ZigBee 版本、协议栈概要、PANID,以及该网络是否允许设备加入的信息。接收到NLME-Network-Discovery.confirm 原语后,上一层网络实体得到了当
设备是否作为路由器加入)。对于未加入网络的设备,NLME-Join.request 原语会引起设

备网络层查找其邻居设备表,选择合适的设备。合适的设备应具备要求的PANID允许关联。如果邻居设备表中没有合适的父设备,网络层管理实体就要返问NLME-Join.confirm

父设备的网络层管理实体首先要判断需要加入网络的设备是否己在网络中存在,具体是通过搜索邻居设备表判断是否存在相匹配的位扩展地址。如果存在匹配的地址, 如果未能找到匹配地网络层管理实体就要将其相对应的16位网络地址发送给MAC层。

址,网络层管理实体就要给新设备分配一个在该网络中唯一的16位网络地址(每个现在父节点都被分配了有限的地址空间,一旦该空间溢出,设备就会拒绝加入请求)

如果父设备用尽所分配的地址空间,NLME则终止程序并在随后的MLME-Associate.response原语中说明情况,状态参数设置为PAN饱和。如果加入请求成功,父设备的网络层管理实体即在邻居设备表中按照子节点的设备信息为该子节点开

辟一个新的条目,还要在随后发送给MAC层的MLME-Associate.response原语表明关联

成功。需要发送给子节点的响应传输状态通过MLME-Comet-Status.indication原语传回
网络层,再通过NLME-Join.indication通知上层网络实体子节点已加入网络。如果传输

17/ 85

失败,网络层管理实体(MLME)就要终止程序。

2.5.2.2数据传输服务
在数据传输机制上,主设备传输数据到从设备和由从设备传输数据到主设备的机制随网络类型的不同而不同。在无信标的星形网络中,当从设备想要发送数据帧时,它只需等待信道变为空闲。当检测到空闲信道时,它将数据帧发送到主设备,如果主设备想要将此数据发送到从设备,它会将数据帧保存在它的发送缓冲器中,直到目标从设备明确地来查询该数据为止。此方法确保从设备的接收器是被开启的,而且可从主设备接收数据。

在点对点对等网络中,每个节点必须一直保持它们的接收器为开启状态或者同意在一个时间段内开启它们的接收器,这将允许节点发送数据帧并确保数据帧会被其它节点接收。设备必须查询主设备以获取其数据,而不是保持接收器开启,从而允许从设备降低其功耗要求。根据应用要求,在绝大部分时间内从设备都处于休眠状态,仅定期唤醒此方法的一个缺点是主设备必须将所有数据帧保存在内部缓冲设备来发送或接收数据。

器中,直到目标从设备唤醒并查询数据。如果网络包含很多休眠时间很长的从设备,主

设备必须将数据帧保存很长时间。根据节点数量和交换数据帧的速率,这将大幅增加主设备对RAM 的需求。在这种情形下,主设备可以根据从设备的设备描述符有选择地将一个特定的数据帧保持一段长时间或短时间。
距离矢量路由协议(ZigBee Ad-hoc On-demand Distance Vector RoutingZAODV)。TR

通过一种树形拓扑的地址分配机制来寻找路径,具有低能耗但路径次优的特点。ZAODV与自组网中的经典AODV协议不完全一样,准确的说是一种简化版本的(AODVjunior)[9] 它是通过一种路由发现过程,向网络中泛洪路由发现请求来发现到目的地址的路径,具有代价大,路径最优的特点。

当路由器从它自身的应用程序或者别的设备那里收到一个单点发送的数据包后,网络层会遵循以下流程将它继续传递下去:如果目标节点是它的相邻节点或子节点,则数据包会被直接传送给目标设备。否则,路由器将要检索它的路由表中与所有要传送的数据包的目标地址相符合的记录。如果存在与目标地址相符合的有效路由记录,数据包将被发送到记录中的下一跳地址中去。如果没有发现任何相关的路由记录,则路由器开始路径寻找,将数据包暂时存储在缓冲区中,直到路径寻找结束为止。

ZigBee终端节点不执行任何路由功能。如果终端节点想要向其它设备传送数据包,它只需将数据向上发送给它的父节点,由它的父节点来执行路由。同样的,任何一个设

备要给终端节点发送数据,终端节点的父节点代表它作出回应。
Z-Stack中,在执行路由功能的过程中就实现了路由表记录的优化。通常,每一

18/ 85

个目标设备都需要一条路由表记录。通过父节点的路由表记录和其所有子节点的路由表记录结合,可以在保证不丧失任何功能的基础上优化路径。

2.6.2路由过程
ZigBee路由器(含协调器)将完成路径发现和选择、路径保持维护、路径期满处理等功能。

1.路径的发现和选择
任意一个路由设路径寻找是网络设备之间相互协作去寻找和建立路径的一个过程。

备都可以发起路径寻找,去寻找某个特定的目标设备。路径寻找机制是指寻找源地址和目标地址之间的所有可能路径,并且选择其中最好的路径。

路径选择尽可能选择成本最低的路径。每一个节点通常保持有它的所有邻节点的连接成本。通常,连接成本最典型的表示方法是一个关于接收信号强度的函数。沿着路径,求出所有连接的连接成本的总和,便可以得到整个路径的路径成本。路由算法将寻找拥有最小路径成本的路径。

路由器通过一系列的请求和回复数据包来寻找路径。源设备向它的所有邻节点广播

一个路由请求数据包(RREQ),来请求一个目标地址的路径。当一个节点接收到RREQ数据包时,它依次转发RREQ 数据包。在转发之前,要加上最新的连接成本,然后更新RREQ 数据包中的成本值。这样,RREQ 数据包携带着连接成本的总和通过所有的连接
源设备。 一旦一条路径被创建,数据包就可以发送了。当一个节点与它的下一级相邻节点失

去了连接,该节点会向所有等待接收它的RREQ数据包的节点发送一个RERR(错误)数据包,将它的路径设为无效。各个节点根据收到的数据包来更新它的路由表。

2.路径保持和维护
一个路径上的中间节点一直跟踪着数据传送过程,如果一个连接失败,那么上游节点将对所有使用这条连接的路径启动路径修复。当下一次数据包到达该节点时,节点将重新寻找路径。如果不能够启动路径寻找或者由于某种原因使路径寻找失败,节点会向数据包的源节点发送一个RERR,它将负责启动新的路径寻找。这两种那个方法都实现了路径的自动重建。

3.路径期满处理
路由表为已经建立连接路径的节点维护路径记录。如果在一定的时间周期内,没有数据通过这条路径发送,这条路径将被表示为期满。期满的路径一直保留到它所占用的空间要被使用为止。在配置f8Config.cfg文件中配置自动路径期满时间。设置

ROUTE_EXPIRY_TIME 为期满时间,单位为秒。如果设置为0,则表示关闭自动期满
功能。

19/ 85

2.7本章小结
本章共分为六部分,对ZigBee的相关知识和内容进行了介绍。

第一部分对ZigBee/IEEE802.15.4技术进行了概述。

第二部分对它的特点一一描述,并得出ZigBee技术最适合于无线传感器网络

第三部分从体系结构方面对ZigBee的各层的功能、作用和特点进行了介绍。

三种拓扑第四部分介绍对Zigbee的网络配置,包含两种功能设备,三种节点类型,
结构以及两种工作模式。

第五部分对ZigBee的组网和数据传输服务进行介绍。同时,在组网中也介绍了一些基本的通信原语。

第六部分从路由协议和路由过程对ZigBee的路由进行了介绍。

第三章 基于ZigBee的无线传感器网络的硬件设计

传感器节点是无线传感器网络的基本功能单元,其结构主要包括传感器模块,处理器模块,射频模块和电源模块等四部分。其中,传感器模块负责采集监测区域的信息并

完成数据转换,采集的信息可以包含温度、湿度、光强度、加速度和大气压力等;处理器模块负责控制整个节点的处理操作、射频模块负责与其他节点或汇聚节点进行无线通信,交换控制消息和收发采集数据功耗管理以及任务管理等;;
小节点的体积。方面:

1)低功耗
无线传感器网络对低功耗的需求一般都远远高于目前已有的蓝牙、WLAN等无线网络。传感器节点的硬件设计直接决定了节点的能耗水平,还决定了各种软件通过优化可能达到的最低能耗水平,通过合理地设计硬件系统,可以有效降低节点能耗。

2)微型化
无线传感器节点应该在体积上足够小,保证对目标系统本身的特性不会造成影响, 在某些场合会需要目标系统小到不容易被人所察觉的程或者造成的影响可以忽略不计。

度,以便完成一些特殊的任务。

3)低成本
在无线传感器网络的应用中,成本是一个必须要考虑的重要因素。只有低成本,节点才能大量地布置在目标区域,表现出传感器网络的各种优点。因此,传感器节点的硬件设计应根据具体应用的特点来合理选择器件,使得节点易于维护和管理,从而降低开

发和维护成本。 4)稳定性和安全性

20/ 85

传感器节点的稳定性和安全性需要结合软硬件设计来实现。硬件的稳定性要基于ZigBee2006的无线传感器网络设计与实现求节点的各个部件能够在给定的应用背景下正常工作,避免由于外界的干扰而产生过多的错误数据。其次,传感器节点的稳定性还

需要在软件上得到保证,软件模块要保证其逻辑上的正确性和完整性,并能够在硬件出

现问题时能够及时感知和采取积极的措施。另外,在某些应用场合可能希望保证节点的

运行代码不被第三方了解,这时应采用具有代码保护能力的微处理器和存储芯片。

3.1ZigBee的几种实现方案
基于ZigBeeWSN节点设计方案很多,但目前主要有三种:第一种是和RF分离的双芯片方案,ZigBee协议栈在MCU上运行;第二种是集成RFMCU的单芯片方案;第三种是ZigBee协处理器和MCU的双芯片方案,ZigBee协议栈在ZigBee协处理器上运行。在主要的Zigbee芯片提供商中,德州仪器(TI)Zigbee产品线覆盖了以上三种方案,飞思卡尔、EmberJennic可以提供单芯片方案,AtmelMicrochip等其它厂商大都提供MCURF收发器分离的双芯片方案。

虽然这三种方案具有各自的优势,比如:外置MCU+收发器方案灵活性高,单芯片
解决方案占用空间最小且开发容易,ZigBee 协处理器+MCU 方案灵活性高且能缩短产品
上市时间,但单芯片方案是主要厂商的主推方案,也是重要的发展趋势。由于低功耗是
ZigBee 系统的关键,所以减少工作电流消耗、具有超低耗电睡眠模式并缩短模式切换时
www.taodocom间对每一种方案而言都非常重要。
发射模式下的电流损耗分别低于27mA 25mA,特别适合那些要求电池寿命非常长的

应用。CC2430包含8KBRAM内存和外围模块,并有32128KB内置闪存等三种不同组件可供选择,方便设计人员在复杂性与成本之间做出最佳选择。在MCURF收发器分离的双芯片方案方面,TI采用的是CC2420RF收发器和超低功耗MCUMSP430[10]。该公司最新推出的高度集成2.4GHzRF前端CC2591集成了可将输出功率 可显提高+22dBm的功率放大器,
以及可将接收机灵敏度提高+6dB的低噪声放大器,著扩大无线系统的覆盖范围。TI的第三种Zigbee方案是无线网络处理器CC2480(RF收发器和ZigBee协议栈),可搭配任意MCU,比如MSP430TIZ-Stack软件ZigBee-2006 用户在设计和使协议栈可在ZigBee处理器上运行,而应用程序则在外部MCU上运行。

用过程中不需要牵涉到Jennic公司的JN-5139芯片是一个低功耗的无线微处理器,集成了32RISC 微处理器和完全兼容2.4GHzIEEE 802.15.4 的收收器、192kROM 以及一些数字及模拟外围电路,可降低对外部元件的需求。JN-5139模块基于JN-5139芯片,已经通过欧洲与美国规范FCC(FederalCommunications Commission, 美国联邦通讯委员

)ETSI(EuropeanTelecommunications StandardsInstitute,欧洲电信标准化协会)的认
证,可大大缩短在测试无线射频方面的时间。

21/ 85

Ember公司的ZigBee网络协处理器EM260集成了2.4GHzIEEE 802.15.4兼容的无线电收发器和运行在EmberZNetZigBee堆栈上的基于闪存的16位微处理器(XAP2b),并且该产品的SPI接口可以使开发者容易在自己的MCU中增加ZigBee网络功能。

Microchip的双芯片Zigbee方案采用MRF24J40IEEE 802.15.4无线收发器和PIC微控制器。MRF24J40器件集成了接收器、发送器、和,最大限度地减少了外接元件并降低功耗。除了芯片,Microchip还提供针对PIC微控制器优化的ZigBee协议栈。这个被称为MiWi的协议比ZigBee协议栈大约小70%,可被用于对成本敏感的应用中。

Atmel公司的双芯片解决方案将ATmega1281(ATmega2561)AVR微控制器与AT86RF230RF器件整合在一起,能提供两种PAN应用频段。AT86RF230是真正的SPI到天线的方案,除了天线、晶体振荡器和去耦电容外,所有的RF主要元件都集成在单一芯片内,包括模拟无线电收发器和数字解调器、时间和频率同步以及数据缓冲器。AT86RF230收发器的链路预算为104dB,工作模式下的电流消耗仅15mA,睡眠模式下的电流消耗低至20nA

选用理想的ZigBee实现方案可以降低开发难度,缩短开发周期,减少成本。选用

芯片时,应充分考虑芯片的集成度、封装、管脚数目、外围电路、发射功率和扩展性等因素。方案,它成本低,体积小,外围设备丰富且电路简单、扩展性强、而且能够胜任WSN 根据上述要求综合比较后,本文采用TI 公司推出的高度整合的SOC 芯片CC2430
节点的功能和作用。
CC2430 整合了工业界领先的2.4GHz IEEE 802.15.4/ZigBee RF 收发机CC2420 以及

工业标准的增强型8051MCU的卓越性能,还包括了8KBSRAM、大容量闪存以及许多其他的强大特性。根据芯片的内置内存的不同,CC2430有三个版本:CC2430-F32/F/F128,编号后缀分别代表具有32KBKB128KB的内存。本文选用的CC2430-F128版本。

CC2430芯片上系统(SOC)是高度集成的解决方案,仅需很少的外围电路,且选用的原件成本低,可支持快速、廉价的ZigBee节点的构建。CC2430保持了CC2420所包括的卓越射频性能,包括超低功耗、高灵敏度、出众的抗噪声及抗干扰能力。所集成的MCU为强大的8位、单周期8051微控制核心(其典型性能可达标准8051性能的8

倍)。另外,CC2430 还包括了许多强大的外设资源,比如DMA (Direct Memory Access,直接存储器访问)、定时/计数器、看门狗定时器(watchdog timer)、AES-128 协处理器,~14 ADCUSART (Universal Synchronous/Asynchronous Receiver/Transmitter,通用同步/异步串行接收/发送器)32KHz 晶振的睡眠模式定时器、上电复位电路(power on
reset)、掉电检测电路(brown out detection)以及21 个可编程I/O 引脚。CC2430 的功

能模块结构图如图3-1所示。

22/ 85

CC2430采用0.18μmCMOS工艺生产,7mm×7mmQLP封装,共有48个引脚。在接收机传输模式下的电流损耗分别为27mA25mACC2430的睡眠模式及其与工作模式间超短的激活转换时间,使得此RF-IC成为针对超长电池使用寿命应用的理想解决方案。CC2430可用于ZigBee协调器、路由器及终端设备。结合TI/Chipcon业界领先的ZigBee协议栈之后,CC2430被认为市面上最具竞争力的ZigBee解决方案。

CC2430的主要特性如下:

?
?
?
?

高性能和低功耗的8051 微控制器核;
集成符合IEEE 802.15.4 标准的2.4 GHz RF 无线电收发机;优良的无线接收灵敏度和强大的抗干扰能力。

在休眠模式下仅0.9uA 的电流损耗,外部的中断或RTC 都能唤醒系统;在待机

模式下低于0.6uA的电流损耗,外部的中断能唤醒系统;

?

128 KB 可编程闪存,2 4KB SRAM

?

硬件支持CSMA/CA 机制;

?

较宽的电压范围(2.0V-3.6 V);

?
?
?

数字化的RSSI/LQI 支持和强大的DMA 功能;
具有电池监测和温度感测功能;集成了14 位模/数转换的ADC

??
? 成本低,体积小,外围设备丰富且电路简单、扩展性强;

?

完全适合于ZigBee/IEEE 802.15.4 标准;

?

强大和灵活的开发工具。



23/ 85



RESET_N

复位

看门狗定时器

片上稳压器

VDD(2.0-3.6V)

DCOUPL

XOSC_Q2

32MHz晶体

多路时钟校准

掉电复位

数字

XOSC_Q1

P2_4

P2_3

32.768kHz晶体

睡眠定时器

模拟

P2_2

P2_1

调试接口

高速

32kHz

睡眠模式管理

混合

RC-OSC

RC-OSC

P2_0

PDATA

P1_7 P1_6 P1_5 P1_4 P1_3 P1_2 P1_1 P1_0

P0_7 P0_6 P0_5 P0_4 P0_3 P0_2 P0_1 P0_0

XRAM

8KB

8051CPU内核

IRAM

SRAM

SFR

存储器仲裁

32//12KB

NUIFIED

Flash

DMA
Flash控制
/ ADC 安全协处理器
无线寄存器
IRQ控制

USART0

自动

解调

调制

增益

USART1

控制

计数器116位)

计数器2

SFR Bus

射频

IEEE802.15.4 MAC计数器)

计数器38位)

接收

通道

计数器48位)

RF_P RF_N


3-1 CC2430 的功能模块结构

24 / 85


3.2.2CC2430引脚功能介绍
CC2430芯片采用7mm×7mmQLP封装,共有48个引脚,全部引脚可分为I/O端口引脚、电源线引脚、控制线引脚三类。CC2430芯片如图3-2所示。



3-2CC2430/31芯片引脚图
1.I/O端口线引脚功能
CC243O21可编程的I/0口引脚,POPl口是完全的8位口,P2口只有5个可使用的位。通过软件设定一组特殊功能寄存器SFR(speeialfunetionregister)
的位和字节,可使这些引脚作为通常的工/0口或作为连接ADC、计时器或USART部件的外围设备工/O口使用。

I/O口有下面的关键特性:

?

可设置为通常的工/0 口,也可设置为外围I/0 口使用;

?

在输入时有上拉和下拉能力;

?全部21 个数字工/O 口引脚都具有响应外部的中断能力。如果需要外部中断,可
I/O 口引脚产生中断,同时外部的中断事件也能被用来唤醒休眠模式。

16 脚(P1_2P1_7):具有4mA 输出驱动能力;


8,9脚(P0_0,P1_1):具有20mA驱动能力;

25/ 85

1118脚(P0_0P0_7):具有4mA输出驱动能力;4346,48脚(P2_0P2_4):具有4mA输出驱动能力。

2.电源线引脚功能
7脚(DVDD):为I/O提供2.03.6V工作电压;
20脚(AVD_SOC):为模拟电路连接2.03.6V的电压;
23脚(AVDD_RREG):为模拟电路连接2.03.6V的电压;
24脚(RREG_OUT):为25,27313540引脚端口提供1.8V的稳定电压;25脚(AVDD_IF1):为接收器波段滤波器、模拟测试模块和VGAVideoGraphics Array)的第一部分电路提供1.8V电压;
27脚(AVDD_CHP):为环状滤波器的第一部分电路和充电泵提供1.8V电压;28脚(VCO_GUARD):VCO屏蔽电路的报警连接端口;
29脚(AVDD_VCO):为VCOP比环滤波器后部分电路提供1.8V电压;30脚(AVDD_PRE:为预定标器、Div2LO缓冲器提供1.8V电压;
31脚(AVDD_RF1:LNA、前置偏置电路和PA提供1.8V电压;

33 脚(TXRX_SWITCH:PA 提供调整电压;
35 脚(AVDD_SW):为LNA/PA 交换电路提供1.8V 电压;36 脚(AVDD_RF2):为接收和发射混频器提供提供1.8V 电压;
40 脚(AVDD_DGUARD):为隔离数字噪声电路连接电压;

41脚(AVDD_DREG):向电压调节器核心提供2.03.6V电压;42脚(DCOUPL):提供1.8V的去耦电压,此电压不为外电路所使用;47脚(DVDD):为I/O端口提供2.03.6V电压。

3. 控制线引脚功能
10脚(RESET_N):复位引脚,低电平有效;
19脚(XOSC_Q2):32MHz的晶振引脚2
21脚(XOSC_Q1):32MHz的晶振引脚1,或外部时钟输入引脚;
22脚(RBIAS1):为参考电流提供精确的偏执电阻;
26脚(RBIAS2):提供精确电阻,43×1±%
32脚(RF_P):在RX期间向LNA 输入正向射频信号;在TX期间接收来自PA的输入正向信号;
34脚(RF_N):在RX期间向LNA 输入负向射频信号;在TX期间接收来自PA

的输入负向射频信号; 43脚(P2_3/XOSC_Q2):32.768kHzXOSC 2.3 端口;

26/ 85

44脚(P2_4/XOSC_Q1):32.768kHzXOSC2.4端口。

3.2.3CC2430的增强型8051内核
CC2430集成了增强工业标准8051内核MCU核心。该核心使用标准的8051指令集。每个机器周期的一个时钟周期与标准8051每个机器周期中的12个时钟周期相对应,因此其指令执行速度比标准8051快。

除了速度改进外,CC24308051内核还包含了下列增强架构: 第二数据指针;?
? 扩展了18个中断源。

CC2430核心的8051的目标代码与工业标准8051目标代码兼容。但是由于与标准8051使用不同的指令定时,因此以往编写的标准8051目标代码的定时循环程序需要修改;此外,扩充外部设备所使用的特殊功能寄存器(SFR)涉及的指令代码也有所不同。

1.复位
CC2430有四个复位源:

?

低电平复位RESET_N


?

上电复位;

?

掉电复位;

??
? CPU 的程序计数器设置为0x0000,程序从这里开始;

?

所有外部设备的寄存器初始化到它们的复位值;

?

看门狗禁止。

2.存储器
8051 CPU有四个不同的存储空间:
? 代码(CODE):16位只读存储空间,用于程序存储。

? 数据(DATA):8位可存取存储空间,可以直接或间接被单个的CPU指令访 问。该空间的低128字节可以直接或间接访问,而高128只能够间接访问。

外部数据(XDATA):16位可存取存储空间,通常需要45CPU指令周?
期来访问。

?

特殊功能寄存器(SFR):7 位可存取寄存器存储空间,可以被单个CPU 指令

访问。

3. CPU 寄存器和指令集


CC2430 CPU 寄存器与标准8051 CPU 寄存器相同,包括寄存器R0R7、程
序状态字PSW、累加器ACCB 寄存器和堆栈指针SP 等;CC2430 CPU 指令与标准

27/ 85

8051的指令集相同,这里不作详细介绍。

4.中断
CC243018个中断源,每个中断源有它自己的、位于一系列特殊功能寄存器中的中断请求标志。CC2430中断系统也有中断屏蔽、中断处理、中断优先级等功能。关于CC2430中断的详细介绍参见文献[11]

5.振荡器和时钟
CC2430内部有一个系统时钟。该时钟的振荡源既可以用16MHz高频RC振荡器, 时钟的控制可以由设置特殊功能寄存器的CLKCON字也可以采用32MHz晶体振荡器。

节来实现。系统时钟同时也可以提供给8051所有的外部设备使用。

振荡器可以选择高精度的晶体振荡器,也可以选择低成本的RC振荡器。运行RF收发器时,必须使用高精度的晶体振荡器。

3.2.4CC2430的射频部分
1.CC2430射频电路
CC2430的射频部分其实就是一个CC2420[12],有关射频原理和CC2420相同。32

kHz 时钟驱动睡眠定时器和看门狗定时器,并当计算睡眠时期的时间时,作为MAC 定时器的闸门。应用RF 收发器时,必须选择32 MHz 晶振,确保其稳定。因此在外围电路中设计了32 MHz 32 KHz 两个晶振电路,32 kHz 晶振设计成运行在32.768 KHz
所示:需要时间精度时,



28/ 85



3-3CC2430的基本射频电路图

2.CSMA/CA协处理器
CC2430里,CSMA/CA控制处理器在CPU与无线模块之间提供一个控制接口。CSMA/CA控制处理器(CSP)可向CPU产生中断请求,并通过MAC定时器的溢出事件来接口MAC定时器。CSMA/CA以控制处理器允许CPU向无线部分发出控制命令从而控制无线操作,它包括以下两种操作模式:直接命令操作模式和程序操作模式。

? 直接命令操作直接通过CSP把命令发送给无线模块。直接命令操作模式仅由CSP控制。

? 程序操作是指CSP执行一个由程序存储器或指令内存中指令序列组成的程序段来进行操作,这些指令是CC243O规定的指令集。这需要CPU首先把程序段下载到CSP

中,再由CPU 通知CSP开始执行这些程序段。 3.天线

29/ 85

CC2430射频模块天线的选择直接影响到它的RF能力大小。常见的天线有PCB天线(PCBantenna),贴片天线(chipantenna)和带连接器的鞭状天线(whipantenna)

3-1列举这三种天线的优缺点:
3-1天线对比

天线类型

优点

缺点

设计尺寸小且高效的天线

PCB 天线

价格低,高频时尺寸小

比较困难,低频时尺寸大,

性能一般

贴片天线

尺寸小

价格中等,性能中等

鞭状天线

性能好,应用普遍

价格略高,尺寸大

为了保证节点有足够的发射能力,我们最看重性能,所以这里我们选用鞭状天线。

但是如果简单的近距离发射,传感器网络中的精简功能节点也可选贴片天线,它的尺寸

3.2.5 CC2430 的其它外围设备 3.2.5.1 直接存取(DMA)控制器小,价格便宜。
息的保护以及恢复等操作,

速外设,中断方式就会感到吃力。为了提高数据的存取效率,CC243O专门在内存与外设之间开辟了一条专用数据通道。这条数据通道在DMA控制器硬件的控制下直接进行数据交换而不通过8051内核,不使用1/0指令。

DMA控制器可以把外设(ADC、射频收发器)的数据移到内存而不需要CC2430内核的干涉。这样传输数据速度的上限取决于存储器的速度。采用DMA方式发送时,由DMA控制器向8051内核发送DMA请求,内核响应DMA请求,这时数据的输入/输出完全由DMA控制器控制。

DMA控制器主要有以下特征:5个的DMA通道;3个可配置的通道优先级;1个可配置的传输事件;控制的源/目的地址;批传输数据模式;数据传输长度可变;可进行字、位操作等特点。

3.2.5.2 MAC 定时器
CC2430包括4 个定时器:一个一般的16位(Timerl)和两个8位(Timer34)定 时器,支持典型的定时/计数功能,例如,测量时间间隔,对外总事件计数,产生周期性中断请求,输入捕捉,比较输出和PWM功能;一个16 MAC定时器(Timer2
,用来为IEEE802.15.4CSMA/CA算法提供定时以及为IEEE802.15.4MAC层提供定时。

30/ 85

3.2.5.3模数转换器(ADC
CC243OADC支持14位的模/数转换,这与一般的单片机的8ADC不同,这个ADC包括一个参考电压发生器、8个可配置通道、电压发生器和通过DMA模式把转换结果写入内存控制器。

CC243OADC具有以下特征:ADC转换位数可选,从8位至14位;8个可配置输入通道;参考电压发生器可作为内外部单一参考电路、外部差分电路或
AVDD_SOC;产生中断;转换完成触发DMA;温度传感输入;电池电压检测。

当使用ADC时,P0口必须配置成ADC输入从而作为8ADC输入。把P0相应的引脚当做ADC输入使用时,寄存器ADCCFG相应的位设置为1。否则寄存器ADCCFG的各位初始值是O,不把P0当做ADC输入使用。

ADC可完成顺序模/数转换并把结果送至内存(使用DMA模式),而不需要CPU ADCCCONI的干涉。ADC寄存器包括ADCL(ADC数据低位)ADCH(ADC数据高位)
(ADC控制寄存器1)ADCCCONZ(ADC控制寄存器2)ADCCCON3(ADC控制寄存器3)

3.2.5.4 温度传感器
CC2430 内置有温度传感器,其参数如表3-2 所示。 3-2 CC2430 内置温度传感器参数

+40

0

C

时的输出电压

0.828

0.840

0.1

V

+80

0

C

时的输出电压

0.924

0.939

0.992

V

+120

0

C

时的输出电压

1.022

1.039

1.093

V

温度系数

2.35

2.45

2.46

mV/ C 0

温度绝对误差

-14

-8

+14

0

C

校正后温度误差

-2

+2

0

C

CC2430ADC中有一路专门的温度传感器输入,通过设置ADC获取温度传感器的采样电压,可以容易地计算出芯片温度。根据TI给出的输出电压与芯片温度的关系[13],可以得到CC2430芯片温度的计算公式:

T?出出出出出[ mV ?743 [ mV ])
2 . 45 [ mV / 0C ]
实际测试时,测试温度会与实际温度有误差,我将多次测量温度,算出温度偏差值,
以便给出一个合适的温度补偿值。具体实验数据将在第四章软件里介绍。
3.3 节点的控制和显示电路

31/ 85

为了方便实验调试和状态指示,节点模块上必须配置一定的按键和LED等设备。

在控制按键方面,本设计在节点上配置了8个实验按键,分为上键(SW1)、下键(SW3)、

左键(SW4)、右键(SW2)、中键(Center)、开关键、复位键(Reset)、S1键。在状态

显示方面,本设计设置了4LED1Nokia3310图形点阵液晶显示屏。

3.3.1控制电路

3-4为节点的按键控制电路图,上、下、左、右、中5个按键用于实验过程中的

操作按键。图3-5为复位键控制电路图,复位键在复位时使用。开关键为按钮式,按下

去是打开电源,弹上来时关闭电源。具体的应用操作见第四章实验举例。



3-4节点按键控制电路图



32/ 85



的对应部位相连接,这里只是说明局部控制电路。 1. LED

本设计配备的4LED的具体资料如表3-3所示。LED电路如图3-6所示。

3-3LED 资料

LED 编号

对应I/O

颜色

LED1

P1.0

红色

LED2

P1.2

绿色

LED3

P1.3

黄色

LED4

P2.0

蓝色



33/ 85

3-6LED电路图

2.液晶显示屏
Nokia3310图形84×48点阵液晶显示屏的电路图如图3-7所示,接口为SPI,工作电压为3.3V。该LCD的控制驱动芯片为PCD8544PCD8544是一块低功耗的CMOSLCD控制驱动器,设计为驱动4884列的图形显示。所有必须的显示功能集成在一块芯片上,包括LCD电压及偏执电压发生器,只需很少外部元件且功耗小。



3-7Nokia3310主要引脚

3.4节点的接口电路
为了方便与计算机通信和芯片的仿真、调试,本设计在节点电路里设计了两个接口电路:USARTUniversalSynchronous/AsynchronousReceiver/Transmitter,通用同步/异步串行接收/发送器)接口和JTAGJointTest Action Group,)接口。

USART接口用于同步/异步串行通信,JTAG接口芯片的仿真、调试(DEBUG)。

当前,USB接口得到广泛应用,为了使USART与计算机更方便地连接,本设计还设计了一个USB转串口(USB-Serial数据线,此数据线可以使USB信号与串口信号相互转换,从而使节点模块与计算机能够更加方便地连接。

3.4.1USART接口(串行通信接口)

USART 是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。本设计里采用Maxim 公司的MAX3232CSE 芯片来实现RS-232/TTL 电平转

换,从而实现与计算机串行通信。其电路图如图3-8 所示。


34/ 85

3-8 串行接口电路图
它的串口端接模块串口,USB 端接计算机USB 接口。使用时,需要首先在计算机上安为了让模块和计算机更方便地进行串行通信,本设计里加设了USB 转串口数据线,
www.taodocsomUSB-Serial 驱动。
在多数的高级器件都支持JTAG 协议,DSPFPGA 器件等。标准的是4 线:

MSTCKTDITDO,别为模式选择、时钟、数据输入和数据输出线。

JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。JTAG接口还常用于实现ISP(In-SystemProgrammable,在线编程)。本设计里的JTAG接口电路如图3-9所示。


3-9 JTAG 接口电路
另外,当模块通过DEBUG接口(JTAG)从计算机上在线调试、下载程序时,需

35/ 85

要借助于CC2430仿真器。
3.5节点实图


硬件设计归根于节点的硬件设计。 第一部分对实现ZigBee 的几种方案进行了分析和比较,并最终选择TI 公司推出的

单芯片CC2430SOC方案。

第二部分分别从特点和功能、引脚介绍、内置8051内核、射频部分、其它外围设备等几方面对CC2430芯片作了详细介绍。

第三部分对节点的控制电路和状态显示电路作了介绍。其中控制电路包括按键控制电路、开关电路和复位电路;状态显示电路包括4LED1Nokia3310点阵图像液晶显示屏。

第四部分对节点的接口电路进行介绍。主要介绍了USART接口和JTAG接口。第五部分将设计好的节点实物图展示出来。

第六部分对本章进行小结。

第四章 基于ZigBee2006 协议栈的无线传感器网络的软件设计
为了适应ZigBee 产品开发的需求,2007 年德州仪器(TI)宣布推出业界领先的ZigBee
协议栈(Z-Stack)的免费下载版本,用户可进入TI 官方网站下载。Z-Stack 达到ZigBee

试机构德国莱茵集团评定的ZigBee联盟参考平台(goldenunit)水平,目前已为全球众多

36/ 85

ZigBee开发商所广泛采用。Z-Stack符合ZigBee2006规范,支持多种平台,其中包括面向IEEE802.15.4/ZigBeeCC2430片上系统解决方案、基于CC2420收发器的新平台以及TIMSP430超低功耗MCU。除了全面符合ZigBee2006规范以外,Z-Stack还支持丰富的新特性,如无线下载,可通过ZigBee网状网络(meshnetwork)无线下载节点更新。Z-Stack还支持具备定位感知(locationawareness)特性的CC2431[14]。上述特性使用户能够设计出可根据节点当前位置改变行为的新型ZigBee应用。

本文以ZigBee2006协议栈为基础,对无线传感器网络的软件进行了学习和设计,并结合一系列软件开发环境,进行仿真、实验,最终达到测试本设计里基于ZigBee的无线传感器网络节点硬件设计的可行性。有关Z-Stack的开发可参见文献[15]

4.1Z-Stack
4.1.1Z-Stack软件架构
TI推出的Z-Stack是一个基于轮转查询式[16]的操作系统,它的main函数在ZMain中,总体上来说,它一共做两件工作,一个是系统初始化,即启动代码来初始化硬件系统另外一个是开始操作系统实体,主流程图如图4-1所示。



执行操作系统

4-1协议栈主流程图
4.1.1.1系统初始化
系统启动代码需要完成初始化完成硬件平台和软件架构所需要的各个模块,为操作

系统的运行做好准备工作,主要分为初始化系统时钟、检测芯片工作电压、初始化堆栈、初始化各个硬件模块、初始化FLASH存储、形成芯片MAC地址、初始化非易失变量、初始化MAC层协议(有关MAC层知识参见文献[17])、初始化应用层帧层协议、初始化操作系统等部分,其具体流程图和对应的函数如图4-27示。

4.1.1.2操作系统的执行
启动代码为操作系统的执行做好准备工作后,就开始执行操作系统入口程序,并由

此彻底将控制权移交给操作系统。

操作系统实体只有一行代码:osal_start_system()//NoReturn from here
这句代码不会返回,是一个死循环。这个函数就是轮转查询式操作系统的主体部分,

37/ 85

它就是不断地查询每个任务中是否有事件发生,如果有发生,就执行相应的函数,如果

有没发生,就查询下一个任务,这样循环地一直做下去。

操作系统执行函数的主体部分代码如程序4.1

操作系统专门分配了存放所有事件的tasksEvents[]这样一个数组,每一个单元对应存放着每一个任务的所有事件。在这个函数中,首先通过一个do-while循环来遍历tasksEvents[],找到第一个具有事件的任务(即具有待处理事件的优先级最高的任务,因为序列号越低,优先级越高),然后跳出循环,此时就得到了待处理的具有最高优先级的事件任务的序号idx,然后通过events=tasksEvents[idx]语句,将这个当前具有最高优先级的任务的事件取出,接着就调用(tasksArr[idx])(idx,events)函数来执行具体的处理函数了。tasksArr[]是一个函数指针数组,根据不同的idx就可以执行不同的函数。

一般而言,操作系统一共要处理6项任务(调试任务不考虑在内),分别为MAC层、网络层、板硬件抽象层、应用层、ZigBee设备应用层以及可完全由用户处理的应用层。Z-Stack已经编写了对从MAC层(macEventLoop)到ZigBee设备应用层(ZDApp_event_loop)这五层的事件的处理函数,一般情况下无需修改这些函数,只需

按照自己的需求编写应用层的任务及事件处理函数就可以了。下面举出两个例子程序,来说明tasksArr[]函数。这两个例子分别是项目GeneralApp 中的tasksArr 函数数组代码和项目SampleApp 中的tasksArr 函数数组代码。



38/ 85



开始

osal_int_disable(INTS_ALL):关闭所有终端

HAL_BOARD_INIT():初始化系统时钟

zmain_add_check():检测芯片电压是否正常

zmain_ram_init:初始化堆栈

InitBoard(OB_COLD):初始化LED,配置系统定时器

HalDriverInit:初始化芯片各个硬件模块


osal_ext_init():初始化FLASH存储

ZMacInit():初始化MAC

afInit():初始化应用框架层

osal_init_system():初始化操作系统

osal_int_enable(INTS_ALL):开全部中断

InitBoard(OB_READY):初始化按键

zmain_dev_info():在液晶上显示设备信息

osal_start_system():执行操作系统

4-2 系统初始化流程图

39 / 85


程序4.1(操作系统执行函数的主体部分代码):
for(;;)
{
do
{
if(tasksEvents[idx])
break;
}while(++ idx<tasksCnt); //得到了待处理的具有最高优先级的任务索引号idx if(idx<tasksCnt) //确认本次有任务需要处理
{
unit16events;
halIntState_tintState;
//进入或退出临界区,来提取需要处理的任务中的事件
HAL_ENTER_CRITICAL_SECTION(intState);

events=tasksEvents[idx];
tasksEvents[idx]=0; HAL_EXIT_CRITICAL_SECTION(intState);
tasksEvents[idx]|=events; //把后面未处理的事件加入到当前事件

}
//本次事件处理函数执行完,继续下一个循环
}
程序4.2(项目GeneralApp中的tasksArr函数数组代码):constpTaskEventHandlerFn tasksArr[]=
{
macEventLoop, //MAC层任务处理函数 nwk_event_loop, //网络层任务处理函数
Hal_ProcessEvent, //板硬件抽象层任务处理函数 #if defined(MT_TASK)

MT_ProcessEvent, # endif
APS_event_loop,

//调用任务处理函数


//应用层任务处理函数,用户不需要修改

ZDApp_event_loop, //ZigBee设备应用层任务处理函数,用户可以根据需要

40/ 85

更改

GenericApp_ProcessEvent//用户应用层任务处理函数,用户自己生成

}

程序4.3(项目SampleApp中的tasksArr函数数组代码):

constpTaskEventHandlerFn tasksArr[]=

{

macEventLoop,// MAC层任务处理函数

nwk_event_loop, //网络层任务处理函数

Hal_ProcessEvent, //板硬件抽象层任务处理函数

#if defined(MT_TASK)

MT_ProcessEvent, //调用任务处理函数

#endif

APS_event_loop,//应用层任务处理函数,用户不需要修改

ZDApp_event_loop, //ZigBee设备应用层任务处理函数,用户可以根据需要

}

更改
SampleApp_ProcessEvent //SerialApp 的用户任务处理函数


一般情况下,用户只需额外添加三个文件就可以完成一个项目,一个是主文件,
存放具体的任务事件处理函数(如GenericApp_ProcessEventSampleApp_ProcessEvent),
一个是这个主文件的头文件,另外一个是操作系统的接口文件(Osal 开头),是专门存
放任务处理函数数组tasksArr[]的文件。用户开发程序所需要新增编写的文件如图4-4

示。



41/ 85



开始

系统初始化

任务一:

处理本任务当前优

macEventLoop(MAC层处理函数)

先级最高的事件

有事件要处理吗?

任务二:

处理本任务当前优

Nwk_event_loop(网络层处

理函数)有事件要处理吗?

先级最高的事件

任务三:

Hal_ProcessEvent(板硬件抽处理本任务当前优

象层处理函数)有事件处理吗? 先级最高的事件


任务四:

处理本任务当前优

APS_event_loop(应用帧层处理函

先级最高的事件

数)有事件要处理吗?

任务五:

处理本任务当前优

ZDApp_event_loopZigBee设备

应用层处理函数)有事件要处理吗?

先级最高的事件

任务六:

处理本任务当前优

XXXApp_ProcessEvent(应用层

处理函数)有事件要处理吗?

先级最高的事件




4-3 Z-Stack 协议栈架构和操作系统实体

42 / 85




主文件

GeneralApp 项目

SampleApp 项目

GeneralApp.c

SampleApp.c

头文件 GeneralApp.h SampleApp.h

操作系统 Osal_GeneralApp Osal_SampleApp.c接口文件 .c

4-4用户开发程序所需要新增编写的文件

4.1.2 Z-Stack 项目中的文件目录 为了更好地理解Z-Stack,我们将对项目中的目录结构进行描述。以GeneralApp
例,其文件目录结构图如图4-5所示。

.HAL:硬件层目录。Common目录下的文件时公用文件,基本上与硬件无关,其中hal_assert.c是断言文件,用于调试;hal_drivers.c是驱动文件,抽象出与硬件无关的驱动函数,包含有与硬件相关的配置和驱动及操作函数。Include目录下主要包含各个硬件模块的头文件。Target目录下的文件时跟硬件平台相关的,可以看到它包含两个平台,分别是CC2430DB平台和CC2430EB平台,其中CC2430EB是白色的,表示当前的项目没有使用这个平台,而CC2430DB正在使用中。

.MACMAC层目录。其下面的HighLevelLowLevel两个目录表示MAC层分为了高层和低层两层,Include目录则包含了MAC层的参数配置文件及MACLIB库的函数接口文件。

.MT:监控调试目录。该目录下的文件主要用于调试,及实现通过串口调试各层,与

各层进行直接交互。



43/ 85



4-5GeneralApp文件目录结构

.NWK:网络层目录。它包含了网络层配置参数文件及网络层库的函数接口文件, APS层库的函数接口。

.OSAL:协议栈的操作系统。

⑦. ProfileAF 层目录。包含AF层处理函数接口文件。

⑧. Security:安全层目录。包含安全层处理函数的接口文件。
⑨.ServicesZigBee 802.15.4设备的地址处理函数目录。包括地址模式的定义及地

44/ 85

址处理函数。

.Tools:工程配置目录。包括空间划分及Z-Stack相关配置信息。

?.ZDO:指ZigBee设备对象。可认为是一种公共的功能集,方便用户用自定义的对象 调用APS子层的服务和NWK层的服务。

?.ZMacZMAC目录。其中zmac.cshiZ-Stack MAC导出层接口文件,zmac_cb.c ZMAC需要调用的网络层函数。

?.ZMainZmain目录。ZMain.c主要包含了整个项目的入口函数main(),在 OnBoard.c中包含对硬件开发平台各类外设进行控制的接口函数。

?.Output:输出文件目录。这个是软件EW8051IDE(后面会介绍)自动生成的。

4.2Z-Stack开发软件
节点硬件结合Z-Stack能够很好的运行,但是在编译、调试、分析、显示等方面仍然需要借助于一些软件来完成。本小节将对ZigBee常用的开发软件进行介绍。

4.2.1IAR EW8051集成开发环境
IAREmbedded Workbench是一套开发工具,用于对汇编、CC++编写的嵌入式

应用程序进行编译和调试。IAR Embedded Workbench 是一套高度精密且使用方便的嵌入式应用编程开发工具。文件管理器,文本编辑器,工程管理器和C-SPY 调试器等。通过其内置的针对不同芯该集成开发环境包含了IAR C/C++编译器, 汇编器,连接器,
FLASH/PROMable 代码。面如图4-6 所示。



45/ 85



4-6IAR Embedded Workbench主界面

4.2.2ZigBee2006协议栈
ZigBee2006协议栈是TI公司推出的免费协议栈开发软件,其安装目录如4-7所示。其主目录下包含DocumentsComponentsProjectsTools四个目录。

1.Documents
Documents文件夹包含了对整个协议栈进行说明的所有文档,用户可以把它当做参考手册使用。



46/ 85

4-7 ZigBee2006 协议栈安装目录
2. Components Components 文件夹是Z-Stack 协议栈的各个功能部件实现。其各个子目录的含义如

下:

公司并没有给出具体的源代码,而是以库文件的形式在/Projects/zstack/Libraries

文件夹给出;
③.mt文件夹包含了为系统添加在电脑上用Z-tools调试的功能所需要的源文件;④.osal文件夹包含了操作系统抽象层所需要的文件;
⑤.service文件夹保护了Z-Stack提供的两种服务:寻址服务和数据服务所需要的 文件;
⑥.stack文件夹是components文件夹最核心的部分,是ZigBee协议栈具体实现部 sapi(简单应用接口)sec分,在其下youfenwieaf(应用框架)
nwk(网络层) (安全)、sys(系统头文件)、zclZigBee簇库)、zdoZigBee设备对象)等7 个文件夹。nwk部分TI公司也没有公布源代码;
⑦.zmac文件夹包含了Z-StackMAC导出层文件。

3. Projects
Projects 文件夹包含了用于Z-Stack功能演示的各个项目例子,其下文件夹含义如下:①.Home Automation:本文件夹包含了家庭自动化中用开关遥控灯的例子;
②.Libraries:包含了没有源代码的、被TI封装了的各个库文件;

47/ 85

.Sample:包含了几个简单的项目,如GeneralAppLocation(定位) SampleAppSimpleApp
④.Tools:包含了各个系统的配置文件;
⑤.Utilities:包含了两个实用例子,一个是SerialApp(无线串口),另一个是 TransitApp(用来测试本平台无线收发数据的最大可靠吞吐量);
包含了Z-Stack的主函数入口文件,处理了系统初始化,并开始操作系⑥.Zmain 统的执行。

4.2.3SmartRF Flash Programmer软件
SmartRFFlash Programmer是用来对无线SOC单片机CC2430/31的闪存进行编程和对ZigBeeSOC芯片进行IEEEAddress(物理地址)进行修改的软件。其操作界面如图4-8所示。



4-8SmartRF Flash Programmer操作界面

4.2.4ZigBee协议分析仪软件PacketSniffer
在硬件平台和Z-Stack的基础上,如果再加上ZigBee协议分析仪软件PacketSniffer,就能构建一个功能强大的ZigBee无线数据包嗅探器,它通过对空气中的无线信

号进行监听、过滤和数据解码,并将其按照一定的数据包格式显示在GUIGraphical User Interface,又称图形用户接口)界面,也可以将这些数据以二进制文件格式存储。

其操作界面如图4-9 所示。


48/ 85


开发有很大帮助。

1.设备类型
ZigBee网络中有三种逻辑设备类型:协调器(coordinator,路由器(router),终端设备(end-devece)。关于它们的具体信息,前面内容已经介绍,请参见2.4.2 2.信道
2.4GHz的射频频段被分为16个的信道。每一个设备都有一个DEFAULT_CHANLIST的默认信道集。协调器扫描自己的默认信道并选择噪声最小的信

道作为自己所建网络的信道。终端节点和路由器也要扫描默认信道集并选择一个信道上

已经存在的网络加入。

3.PANID
PANID 是指网络编号,用于区分不同的ZigBee网络。设备的PANID值与ZDAPP_CONFIG_PAN_ID值的设置有关。如果协调器的ZDAPP_CONFIG_PAN_ID设置为0xFFFF,则协调器将产生一个随机的PANID,如果路由器和终端节点的

ZDAPP_CONFIG_PA-
N_ID 设置为0xFFFF,路由器和终端节点将会在自己的默认信道上随机选择一个网络加

49/ 85


入,网络协调器的PANID 即为自己的PANID。如果协调器的ZDAPP_CONFIG_PAN_ID

设置为非0xFFFF值,则协调器根据自身的网络长地址(IEEE地址)或ZDAPP_CONFIG_PAN_ID值随机产生PANID;不同的是,如果路由器和终端节点的ZDAPP_CONFIG_PAN_ID值设置为非0xFFFF值,则会以ZDAPP_CONFIG_PAN_ID值作为PANID。如果协调器的PANID的设置值为小于等于0x3FFF的有效值,协调器就会以这个特定的PANID值建立网络,但是,如果在默认的信道上已经有该PANID值的网路存在,则协调器会继续搜寻其他的PANID,直到找到网络部冲突为止。

4.描述符
ZigBee网络中的所有设备都有一些描述符,用来描述设备类型和应用方式。描述符

包含节点描述符、电源描述符和默认用户描述符等。通过改变这些描述符可以定义自己的设备。描述符的定义和创建配置项在文件ZDOConfig.hZDOConfi.c中完成。描述符信息可以被网路中的其他设备获取。

5.绑定
绑定时一种两个或者多个应用设备之间信息流的控制机制。在最新的Z-Stack版本

里,它被称为资源绑定,所有的设备都必须执行绑定机制。绑定允许应用程序发送一个数据包而不需要知道目标地址。APS 层从它的绑定表中确定目标地址,然后将数据继续向目标应用或者目标组发送。
种使用较多。来发送绑定信息。需要绑定的两个节点在一定的时间内发送绑定命令,当协调器在设定

的时间内收到这样的两条绑定信息时,它就会建立对应的绑定表。建立了绑定关系的两个节点之间就可以通过Endpoint来相互通信。

直接绑定(OTA):直接绑定需要用户编写相应的绑定程序,ZigBee协议栈中含有绑定API,用户可以通过适当地方法调用来实现绑定功能。这种方法通常是一个节点直接向协调器发送两条绑定信息,这两条信息中的目标地址和源地址相反。使用这种方法

可以通过第三方节点来配置网络,是任意两个节点之间建立绑定关系,使网络通信方式

更加灵活。而且第三方节点可以通过与上位机互联,在上位机可以建立一个界面,通过

串口向第三个节点传递配置信息,使配置更加方便。

直接绑定(通过串口):这种方法是使用上位机通过串口向协调器发送绑定信息。

6.配置文件
配置文件(Profile)是指应用程序框架。它是由ZigBee技术开发商提供,应用于特定的应用场合,它是用户进行ZigBee技术开发的基础。Profile规定不同设备对消息帧

的处理行为,是不同的设备之间可以通过发送命令、数据请求来实现互操作。 7.端点

50/ 85

端点(Endpoint)是一种网络通信中的数据通道,它是无线通信节点的一个通信部件,如果选择绑定方式实现节点间的通信,那么可以直接面对端点操作,而不需要绑定的两个节点的地址信息。每个ZigBee设备支持多大240个这样的端点。端点的值和IEEE长地址、16位短地址一样,是唯一确定的网络地址,通常结合绑定功能一起使用。它是ZigBee无线通信的一个重要参数。

8.
ZigBee技术有两种通信方式:间接通信和直接通信。

间接通信:指各个节点通过端点的绑定建立通信关系,这种通信方式不需要知道目标节点的地址信息,包括IEEE地址或网络短地址,Z-Stack底层将自动从栈的绑定表中查找目标设备的具体网络地址并将其发送出去。

直接通信:不需要绑定关系,它使用网络短地址作为参数调用适当地API来实现通信。直接通信的关键点是网络地址的获得。它可以采用通过目标节点的IEEE地址来查询短地址的方法。通常,ZigBee节点的IEEE地址是固定的,它被写在节点的EEPROM中,这个作为ZigBee节点的参数一般会被标示在节点上。所以,有了IEEE地址以后,

可以通过部分网络API 的调用,得到与之对应的网络短地址。
一个Profile 中,
而簇就是人们在建立Profile 时所需要的一个概念,
ClusterID 是唯一的。建立绑定表时需要弄清楚Cluster
它是一簇网络变量的集合,在同
Cluster 上。

9.寻址
①.地址类型
每个ZigBee设备由一个IEEE长地址,即MAC地址,跟网卡MAC一样,它是全球唯一的。实际网络中,为了方便,通常用16位的短地址来标识自身和识别对方,也称为网络地址。对于协调器来说,短地址为0000H,对于路由器和节点来说,短地址是由它们所在网络中的协调器分配的。

.网络地址分配

网络地址分配由网络中的协调器来完成,为了让网络中的每一个设备都有唯一的网

络地址(短地址),它要按照事先配置的参数,还要遵循一定的算法来分配。这些参数是MAX_DEPTH,MAX_ROUTERSMAX_CHILDREN

MAX_DEPTH 决定了网络的最大深度。协调器位于深度0,其子节点位于深度1,子节点的子节点位于深度2,以此类推。MAX_DEPTH参数了网络在物理上的长度。

MAX_CHILDREN 决定了一个路由器或者一个协调器节点可以连接的子节点的最
大个数。

51/ 85

MAX_ROUTERS决定了一个路由器或者一个协调器可以处理的具有路由功能的子节点的最大个数,它是MAX_CHILDREN的一个子集。

ZigBee2006协议栈已经规定了这些参数的值:MAX_DEPTH=5MAX_ROUTERS=6MAX_CHILDREN=20

③.Z-Stack寻址
ZigBee节点发送数据时,通常使用AF_DataRequest()函数,该函数需要一个afAddrType_t类型的目标地址作为参数。

typedefstruct
{
union
{
uint16 shortAddr;
}addr;
afAddrMode_t addrMode;

byte endpoint;
除了网络地址(短地址)和端点外,还要指定地址模式参数。地址模式可以设置为
}afAddrType_t;
{ 以下几个值:
afAddrNotPresent=AddrNotPresent,

afAddr16Bit

=Addr16Bit,

afAddrGroup

=AddrGroup,

afAddrBroadcast=AddrBroadcast
}afAddrMode_t;
这是因为在ZigBee协议中,数据包可以单点传送(unicast),多点传送(multicast)或者广播传送,所以必须有地址模式参数。一个单点传送数据包只发送给一个设备,多

点传送数据包则传送给一组设备,而广播数据包则要发送给整个网络的所有节点。 a) 单点传送

单点传送是标准寻址模式,它将数据包发送给一个已经知道网络地址的网络设备。将afAddrMode设置为Addr16Bit,并且在数据包中携带目标设备地址。

b) 间接传送

当应用程序不知道数据包的目标设备在哪里的时候,将模式设置为AddrNotPresent

Z-Stack底层将自动从栈的绑定表中查找目标设备的具体网络地址,这种特点称为源绑
定。如果在绑定表中找到多个设备,则向每个设备都发送一个数据包的拷贝。

52/ 85


c)

广播传送

当应用程序需要将数据包发送给网络的每一个设备时,将使用广播模式。此时设置为AddrBroadcast。目标shortAddr可以设置为下面广播地址的一种:
NWK_BROADCAST_SHORTADDR_DEVALL0xFFFF——数据包将被传送到网络上的所有设备,包括睡眠中的设备。对于睡眠中的设备,数据包将被保留在其父节点,直到它苏醒后主动到父节点查询,或者直到消息超时。

NWK_BROADCAST_SHORTADDR_DEVALL0xFFFD——数据包将被传送到网络上的所有在空闲时打开接收的设备,也就是说出了睡眠的所有设备。

NWK_BROADCAST_SHORTADDR_DEVALL0xFFFC——数据包发送给所有的路由器(包括协调器)。

d) 组寻址
当应用程序需要将数据包发送给网络上的一组设备时,使用该模式。地址模式设置为afAddrGroup并且shortAddr设置为组ID。在使用这个功能前,必须在网络中先定义组。

e) 重要设备地址
中定义。应用程序可能需要知道它自身的地址和父地址,可使用下面的函数在Z-Stack API

NLME_GetCoordExtAddr():返回本节点的父节点的 位扩展地址。

4.4实验测试
基于Z-Stack,本文所设计的传感器节点进行了如下实验测试:流水灯测试实验、串口测试实验、灯光闪烁实验、开关灯控制实验、温度传输实验、无限透明传输实验、分析仪实验等。但是基于篇幅有限,本文只列举两个实验:开关灯控制实验和温度传输实验。

4.4.1开关灯控制实验
4.4.1.1功能描述
本实验中用到两个节点模块,一个作为开关设备,一个作为控制设备。开关设备通过无线发送命令来切换控制设备的状态,并通过控制设备上的指示灯状态变化反应操作是否成功。

为实现上述实验目的,应用程序应具备以下几个功能:①. 所有设备自动形成ZigBee 网络;
②. 在控制设备和开关设备间建立绑定关系;


.通过控制设备发送命令控制开关设备的状态;

53/ 85

.能够重新分配控制设备和开关设备之间的绑定关系;

.具有可扩展性,可以在网络形成后添加新的开关或控制设备。

4.4.1.2实验程序
当实验开始时,Z-Stack首先进行初始化,然后调用绑定函数zb_AllowBind函数,进入绑定模式,该函数程序如程序代码4.3所示。

程序代码4.3(进入允许绑定模式):
voidzb_AllowBind(uint8 timeout) //timeout表示允许绑定的时间范围{
osal_stop_timerEx(sapi_TaskID,ZB_ALLOW_BIND_TIMER);
if(timer= = 0)
{
afSetMatch(sapi_epDesc.simpleDesc->EndPoint,FALSE);
}
else

{

afSetMatch(sapi_epDesc.simpleDesc->EndPoint,TRUE); // afSetMatch 为绑定函

{

timeout= ;
}
osal_start_timeEx(sapi_TaskID,ZB_ALLOW_BIND_TIMER, timeout* 1000);
}
}
return;
}
绑定函数afSetMatch实现过程的程序如程序代码4.4所示。

程序代码4.4(绑定函数afSetMatch的实现过程):
voidzb_BindDevice(uint8,uint16 commandId, uint8 * pDestination)
{

zAddrType_t destination; uint8 ret = ZB_ALREADY_IN_ROGRESS;

54/ 85

if(create)
{
if(sapi_bindInProgress= = 0XFFFF)
{
if(pDestination)
{
destination.addrMode=AddrBit; //确定绑定模式
osal_cpyExtAddr(destination.addr.extAddr, pDestination); ret= APSME_BindRequest(sapi_epDesc.endPoint, commandId, &destination,sapi_epDesc.endPoint); if( ret = = ZSuccess)
{
//寻找网络地址
ZDP_NwkAddrReq(pDestination,

}

ZDP_ADDR_REQTYPE_SINGLE,0,0);
osal_start_timerEx(ZDAppTaskID, ZDO_NWK_UPDATE_NV,250);

ret = ZB_INVALID_PARAMETER;

destination.addrMode = Addr16Bit;
destination.addr.shortAddr =NWK_BROARDCAST_SHORTADDR; if(ZDO_AnyClusterMatches(1,&commanded,
sapi_epDesc.simpleDesc->AppNumOutClusters,
sapi_epDesc.simpleDesc->pAppOutClusterList))
{
//尽量与一个处于允许绑定模式的设备进行匹配
ret=ZDP_MatchDescReq(&destination,
NWK_BROARDCAST_SHORTADDR,
sapi_epDesc.simpleDesc->AppProfId,
1,&command,0,(cId_t *)NULL,0);
}

elseif(ZDO_AnyClusterMatches(1,&commanded,sapi_epDesc.simpleDesc->AppNumInClusters,

55/ 85

sapi_epDesc.simpleDesc->pAppInClusterList)) {
ret=ZDP_MatchDescReq(&destination,
NWK_BROADCAST_SHORTADDR,
sapi_epDesc.simpleDesc->AppProfId,0,
(cId_t*)NULL,1,&commanded,0);
}
if(ret= =ZB_SUCCESS)
{
//设定一个定时器,确保绑定工作完成
osal_start_timeEx(sapi_TaskID,ZB_BIND_TIMER,
AIB_MaxBindingTime);
sapi_bindInProgress=commandId;
return;

}

}

}


{

//移除某个绑定
while(pBind=bindFind(sapi_epDesc.simpleDesc->EndPoint,command,0))
{
bindRemoveEntry(pBind);
}
osal_start_timerEx(ZDAppTaskID,ZDO_NWK_UPDATE_NV,250);
}
return;
}
实现绑定后,再回到工程的时间处理函数SAPI_ProcessEvent中,当设备发送了匹配消息并有设备对其响应时,会触发SYS_EVENTZ_MSG时间,并调用ZDO_CB_MSG的处理函数SAPI_ProcessZDOMsgs,其程序如程序代码4.5所示。

程序代码4.5(完成绑定) voidSAPI_ProcessZDOMsgs(zdoIncomingMsg_t * inMsg)

56/ 85

{
switch(inMsg -> clustered)
{
//地址响应信息
caseNWK_addr_rsp:
{
ZDO_NwkIEEEAddrResp_t* pNwkAddrRsp=ZDO_ParseAddrRsp(inMsg); SAPI_FindDeviceConfirm(ZB_IEEE_SEARCH,
(uint8*)&pNwkAddrRsp->nwkAddr,
pNwkAddrRsp->extAddr);
}
break;
caseMatch_Desc_rsp//匹配消息的响应信息
{

zAddrType_t dstAddr;
ZDO_ActiveEndpointRsp_t * pRsp=ZDO_ParseEPListRsp(inMsg); if(sapi_bindInProgress =0xFFFF)
if(APSME_BindRequest(sapi_epDesc.simpleDesc->EndPoint,

sapi_bindInProgress,&dstAddr,
pRsp->epList[0])= = ZSuccess)
{
osal_stop_timerEx(sapi_TaskID,ZB_BIND_TIMER);
osal_start_timerEx(ZDAppTaskID,ZDO_NWK_UPDATE_NV,250); sapi_bindInProgress=0xFFFF
//发送绑定确认消息给上层
zb_BindConfirm(sapi_bindInProgress,ZB_SUCESS);
}
}

}

}


break;


}

57/ 85

至此,整个绑定过程全部实现,两个节点模块之间就可以进行通信,实现实验目的。

4.4.1.3实验操作及其结果
本实验中,调用的是Z-Stack中的SimpleApp项目,共有两个节点模块,一个为控 ;一个为开关设备(simpleswitch),担任制设备(simplecontroller),担任协调器的角色
终端设备的角色。控制设备负责建立网络,开关设备加入网络并与控制设备建立绑定后,

可以通过开关设备发送命令切换控制设备的状态。

1.实验操作步骤
①.给两个节点烧写程序,控制设备选择SimpleControllerEB,开关设备选择 SimpleSwitchEB项;
②.打开控制设备(SimpleControllerEB)电源开关,LED1(红色)快速闪烁,表 明模块的IEEE地址现在是16F;按下中心按键,此时模块的LED2(黄色 灯)闪烁,表明此时模块已经被随意分配了一个有效IEEE地址(也就是16 IEEE地址不是全为F
③.紧接着按下up键,此时LED3会在几秒钟内亮起来,并且一直亮着,表明该模

块已经建立了zigbee 网络。
④. 等上一步中的LED3 亮起来后再按下up 键, 来绑定。 这样做的作用就是可以让别的模块
⑥. 再按下up 键,那么SimpleControllerEB 模块的LED1 会闪烁一下,再按下up

键,那么SimpleControllerEB模块的LED1会闪烁一下。

.到此为止,就可通过交替按下开关设备模块的SW2right)键来控制控制设备 模块LED1的交替亮灭。

2.实验结果
经过上述实验步骤后,交替按下开关设备(SimpleSwitchEB)模块的SW2键,可以控制控制设备(SimpleControllerEB)模块LED1灯的交替亮灭。

实验结果说明,此实验已经顺利完成了两个节点模块的绑定,并通过绑定关系达到

了开关灯控制的实验目的。此实验现象不方便用图文来表示,可以通过演示来证明。

4.4.2 温度传输实验
4.4.2.1功能描述
温度传输实验中,传感节点(sensornodes)将采集的温度值和电压值发送至采集节点(collectionnode),采集节点通过串口与计算机通信,将采集信息传送到计算机里。

在一个网络中,可以由多个传感节点,本实验里只用一个传感节点,一个采集节点。
为实现上述实验目的,应用程序应该具备以下功能:

58/ 85

.自动建立一个网络;
②.传感节点能够自动发现采集节点,而且一旦加入网络后,能够自动与一个采集 节点建立绑定;
③.传感节点能够周期性地向一个采集节点发送数据,并采用端到端确认的发送模 式;
④.如果传感节点没有收到采集节点的确认信息,它将解除与该节点的绑定,然后 重新发现采集节点并与其建立绑定。

4.4.2.2实验程序
温度的循环读取和显示程序如程序代码4.6

程序代码4.6(温度的循环读取和显示):
while(1)
{
temperature= getTemperature();
sprintf((char*)lcdBuffer, “%d %cC”,temperature,GRADIENT+32);

}

lcdUpdateLine(LINE2,(char *)lcdBuffer);
//等待一秒halWait(250);

其中getTemperature是程序的核心,它将完成ADC相关寄存器的设置以及芯片温度的计算等工作,它的具体程序如程序代码4.7.所示。

程序代码4.7getTemperature函数)
INT8getTemperature(void)
{
UINT16 value
//参考电压:1.25V,分辨率14bit,选择温度传感器通道
ADCIF = 0
ADCCON3 = (ADC_REF_1_25_V|ADC_14_BIT|ADC_TEMP_SENS); while( ADCIF);

}

ADC_GET_VALUE(value); //读取ADC 的高位ADCH、低位ADCL
return ADC14_TO_CELSIUS(value); // 计算

当传感节点读取温度以后,要和采集节点绑定,进行通信。绑定的程序这里不作介

59/ 85

绍,只对数据传输进行解说。
(1) 数据发送

当建立网络并加入到网络后,ZigBee设备才可以传输数据。传感节点与采集节点建立绑定时,传感节点会调用zb_BindConfirm函数,该函数的主要功能是:如果建立绑定

成功,则传感节点开始向采集节点发送传感数据;否则,重新搜索采集节点。zb_BindConfirm函数的程序如程序代码4.8

程序代码4.8zb_BindConfirm函数程序):
voidzb_BindConfirm(uint16 commandId, uint8 status)
{
if((status ==ZB_SUCCESS)&&(myAppState ==APP_START)) {
myAppState= APP_BOUND;
myApp_StartReporting(); //开始向采集节点发送传感数据 }

}

else {

//如果不能和一个采集节点建立绑定,重新搜索采集节点


传感节点向采集节点发送传感数据的函数是myApp_StartReporting(),它的程序如程序代码4.9所示。

程序代码4.9myApp_StartReporting函数程序):
voidmyApp_StartReporting(void)
{
myTempReportPeriod= 5000; //每隔5秒向采集节点发送一次温度信息。 osal_start_timerEx(sapi_TaskID,MY_REPORT_TEMP_EVT,myTempReportPeriod); myBatteryCheckPeriod= 25000;//每隔25秒向采集节点发送一次电压信息。

osal_start_timerEx(sapi_TaskID,MY_REPORT_BATT_EVT,
myBatteryCheckPeriod);

}

HaLedSet(HAL_LED_1,HAL_LED_MODE_ON);


MY_REPORT_TEMP_EVT MY_REPORT_BATT_EVT 事件处理过程,在
SimpleSensor.c zb_HandleOsalEvent 函数中实现,zb_HandleOsalEvent 的程序如程序代

60/ 85

4.10所示。

程序代码4.10zb_HandleOsalEvent函数程序):
voidzb_HandleOsalEvent( uint16 event)
{
uint8pData[2];
if(event & MY_START_EVT)
{
zb_StartRequest();
}
if(event & MY_REPORT_TEMP_EVT)
{
//读取并发送温度信息
pData[0]= TEMP_REPORT;
pData[1]= myApp_ReadTemperature();

zb_SendDataRequest(0xFFFE,SENSOR_REPORT_CMD_ID,2,pData,0,
osal_start_timerEx(sapi_TaskID,MY_REPORT_TEMP_EVT,
{

//读取并发送电压值
pData[0]= BATTERY_REPORT;
pData[1]= myApp_ReadBattery();
zb_SendDataRequest(0xFFFE,SENSOR_REPORT_CMD_ID,2,pData,0, AF_ACK_REQUEST,0);
osal_start_timerEx(sapi_TaskID,MY_REPORT_BATT_EVT,
myBatteryCheckPeriod);
}
if(event & MY_FIND_COLLECTOR_EVT)
{

}

//寻找并与一个采集节点建立绑定
zb_BindDevice(TRUE,SENSOR_REPORT_CMD_ID,(uint8 *) NULL);

}

61/ 85


从程序代码4.10 可以看出,无论是温度信息还是电压信息,都将调用zb_SendData-

Request函数,其程序如程序代码4.11所示。

程序代码4.11zb_SendDataRequest函数程序):
voidzb_SendDataRequest (uint16 destination, uint16 commandId, uint8 len, uint8* pData,uint8 handle,uint8 txOptions, uint8radius)
{
afStatus_tstatus;
afAddrType_tdstAddr;
txOptions| = AF_DISCV_ROUTE;
if(destination = = ZB_BINDING_ADDR) // 设定目的地址
{
dstAddr.addrMode= afAddrNotPresent; //绑定
}

else
{ dstAddr.addr.shortAddr = destination; // 使用短地址
txOptions &= AF_ACK_REQUEST;

}
}
dstArr.endPoint= sapi_epDesc.simpleDesc ->EndPoint;//设定端口
status= AF_DataRequest(&dstAddr,&sapi_epDesc,commanded,len,
pData,&handle,txOptions,radius);//发送消息 if(status=asStatus_SUCCESS)
{
SAPI_SendCback(SAPICB_DATA_CNF,status,handle);
}
}
至此,数据发送完毕。

(2) 数据接收

在采集节点中,当其接收到传感节点发送的信息后,将触发SYS_EVENT_MSG
件,并对AF_INCOMING_MSG_CMD信息做出处理。

62/ 85

caseAF_INCOMING_MSG_CMD:
pMSGpkt= (afIncomingMSGPacket *)pMsg;
SAPI_ReceiveDataIndication(pMSGpkt->srcAddr.addr.shortAddr,
pMSGpkt->clustered,
pMSGpkt->cmd.DataLength,
pMSGpkt->cmd.Data);
break;
即采集节点接收到传感节点发送的信息后,将调用SAPI_ReceiveDataIndication函数进行处理,此函数程序如程序代码4.12所示。

程序代码4.12SAPI_ReceiveDataIndication函数程序):
voidSAPI_ReceiveDataIndication( uint16 source, uint16 command, uint16len, uint8* pData)
{
#ifdefined(MT_SAPI_CB_FUNC)

}

…………
# endif // MT_SAPI_CB_FUNC {
默认情况下,zb_ReceiveDataIndication 函数将被调用,其程序如程序代码4.13 所示。

程序代码4.13zb_ReceiveDataIndication函数程序):
voidzb_ReceiveDataIndication( uint16 source, uint16 command, uint16 len, uint8* pData)
{
…………
if(command = = SENSOR_REPORT_CMD_ID)
{
sensorReading= pData[1]; // 从传感节点接收到数据
//如果设备允许,将数据写入串口
tmpLen= (uint8)osal_strlen( (char *) strDevice);

pBuf = osal_memcpy( buf, strDevice, tmplen); _1toa(source, pBuf, 16);
pBuf + =4;


pBuf+ + = ‘’;

63/ 85

if(pData[0] = = BATTERY_REPORT)
{
tmpLen= (uint8)osal_strlen( (char*)strBattery);
pBuf= osal_memcpy(pBuf, strBattery, tmpLen);
*pBuf+ + =(sensorReading/10) + ‘0’;//将高位转换成ASCII *pBuf+ + = ‘.’; //十进制(电压的计数单位是0.1V
*pBuf+ + =(sensorReading % 10) + ‘0’;//将低位转换成ASCII *pBuf+ + = ‘’;
*pBuf+ + = ‘V’;
}
……
#if defined( MT_TASK)
debug_str((uint8 *)buf);
#endif

}

}
函数最后调用debug_str 函数,即当设定某些预编译项(ZTOOL_P1 MT_TASK


本温度传输实验调用的是Z-Stack 里的SimpleApp 项目,本实验里包含两个节点模
块,一个作为采集节点(simple collector),担任协调器角色,一个作为传感节点(simple

sensor),担任终端设备角色。采集节点负责建立网络,传感节点加入网络并与采集节点建立绑定后,将温度值和电压值发送给采集节点。

1.实验操作步骤
①.给两个节点模块烧写程序。采集节点选择SimpleCollectorEB项,传感节点选择 SimpleSensorEB项。

.把采集节点(SimpleCollectorEB)的串口通过USB转串口线连接至计算机,打开串口调试助手,将它的串口设置为USB转串口所占用的串口,波特率[18]设置为38400

.打开采集节点的电源开关,LED1(红灯)快速闪烁,按下中间键,LED2(黄 灯)闪烁,表明给节点已经随即分配了一个IEEE地址(非全F)。

④. 再按下采集节点的SW1键(up 键),LED3(绿灯)闪烁几下,然后常亮。表

明已经建立ZigBee 网络。 ⑤.再按一下采集节点的SW1键,LED1(红灯)也常亮起来。

/ 85

.然后打开传感节点(SimpleSensorEB)的电源,LED1(红灯)闪烁,按下中键, LED2(黄灯)开始闪烁。

.再按下传感节点的SW1键,过一会儿LED3(绿灯)开始快色的闪烁。表明已 经加入ZigBee网络。

.再按一下传感节点的SW1键,过几秒,LED1(红灯)也开始闪烁。表明传感 节点已经开始向采集节点发送数据了。

.等几秒钟,计算机内打开的串口调试助手接收框内便可以显示接收的温度和电

压信息了。

.并用PacketSniffer 软件来观察数据包的发送情况。

2.实验结果
经过上述实验步骤,计算机内可以正常地显示所采集的温度和电压值,温度每4秒显示一次,电压每12秒显示一次,其外观如图4-10所示。PacketSniffer所捕捉到的数据包情况如图4-11所示。



4-10节点所采集的温度在计算机上的显示界面



65/ 85


4-11 PacketSniffer 所捕捉到的数据包
另外,由于CC2430内部温度传感器所采集的温度未经过校正,有时候会与实际温度有所偏差。本文通过测试多个温度点,计算出实际偏差,作为温度的补偿量(由于采集温度有时准确,有时不准确,所以本补偿量仅仅在采集温度与实际温度有明显偏差时才使用,并且大多时候都有偏差)。温度校正数据如表4-1所示。

通过表4-1所测试数据得出以下结论:节点所采集的温度与实际温度相比需补偿的

温度为-16.5

0

C

,即节点的采集温度减去16.5

0

C

就是所测温度的实际温度,误差在±2

0

C

以内。

4-1 温度校正计算(数值单位均为

0

C



节点测

实际温度

温度偏差

需补偿

量温度

温度



节点测

实际温度

温度偏差

需补偿

量温度

温度



35

19

16

16

36

20

16

16

37

21

16

16



47

30

17 17

17

48

31

49

32


66/ 85



38

26

12

12

39

23

16

16

40

25

15

15

41

24

17

17

42

25

17

17

43

28

15

15

44

29

15

15

45

29

16

16



50

33

17

17

51

34

17

17

52

35

17

17

53

36

17

17

54

37

17

17

55

38

17

17

56

39

17

17


4.5本章小结
本章主要结合Z-Stack对基于ZigBee的无线传感器网络的软件部分进行了设计,并进行了相关实验,以测试节点软硬件的结合的可行性和良好性。

第一部分对Z-Stack进行了介绍。主要包括Z-Stack的软件架构和目录组成等内容。 第二部分对ZigBee开发中经常使用的几个软件进行介绍,它们分别是IAREW8051集成开发环境、ZigBee2006协议栈、SmartRFFlash ProgrammerZigBee协议分析仪

道、PANID、描述符、绑定、配置文件、簇、寻址等。第三部分对ZigBee开发所必需的一些基本概念进行了介绍,主要包括设备类型、信
Packet Sniffer

第五章总结与展望

5.1无线传感器网络的应用设想
上文对基于ZigBee的无线传感器网络平台进行了设计,在此本文还想提出一些设想,将所设计无线传感器网络应用到实际中去。

本文设想的着眼点是农业灌溉,将无线传感器网络应用到农业灌溉中,能够达到很好的效果。相比与传统灌溉,基于无线传感器网络的灌溉系统有下列优点:
①.由于无线传感器网络采用无线通信方式,因而灌溉监测系统不必再挖坑埋设电 缆、电线等,这大大减少了建设阶段的施工量。

.无线传感器网络由分散的节点和基站组成,比传统灌溉监测系统移动方便、组 拆灵活、易于更新升级。

③. 采集的温湿度、盐度等土壤数据更加实时、精确,能够达到实时控制、按需供 水、节水灌溉的目的。
比如,可以将无线传感器网络应用到景观草坪或者果菜园,可以更好地维护农作物

67/ 85



生长,达到精确管理、丰产丰收。图5-1是本文所构想的将无线传感器网络应用到高尔夫球场灌溉系统的流程示意图。

?????ú

????

????????

????

??

??±?

????·ò?ò

?????¨ ??

????

?? ????

?????????ú

?????÷????

?????????÷????·??????ò

5-1基于无线传感器网络的高尔夫球场灌溉系统的流程示意图

关于应用的具体实现,本文暂不涉及,后续研究再进行探讨。





68/ 85

5.2总结与展望
5.2.1本文总结
本文从ZigBee和无线传感器网络出发,实现了一种基于ZigBee的无线传感器网络的组建方案,并设计了和开发了基于ZigBee的无线传感器网络的实验平台。本文主要工作如下:
1.对无线传感器网络和ZigBee技术进行了详细介绍和描述,为无线传感器网络平台

的搭建和开发奠定了基础。

2.在深刻理解CC2430芯片的基础上,对节点的硬件部分进行了设计。

3.深入研究TIZ-Stack协议栈,对Z-Stack中的路由选择,组网,数据的传输,节点的绑定,网络地址分配等各种功能进行了实现。并将它应用到多个实验中,以验证

系统的可行性和可靠性。

4.提出将基于ZigBee的无线传感器网络应用到高尔夫球场灌溉系统中,达到实时、精确、便利、节水灌溉的目的。

5.2.2展望

本文对基于ZigBee 的无线传感器网络平台进行了设计,但是由于知识和时间的有限,本文的设计和研究还很浅显,还存在许多不足和不理想之处,有待进一步改善和完善:
发出更好的ZigBee 产品。
3. 对无线传感器网络的路由协议理解需进一步加深,路由协议的好坏直接影响到整

个网络的高效性和健壮性。

4.应进一步开拓眼界,将设计好的无线传感器网络投入到应用中去,这样才达到了创新和研究的目的。

5.本文所提出的应用设想将会涉及到无线地下传感器网络(WUSN),WUSN 里有

很多重大问题需要解决。(关于WUSN 的相关信息请参考文献[19][20][21]



69/ 85

参考文献

[1]Biomedical Sensors[OL],http://newslab.cs.wayne.edu.

[2]JPL Sensor Webs[OL],http://sensorwebs.jpl.nasa.gov.

[3]郑少仁,AdHoc网络技术[M],人民邮电出版社,第一版。

[4]AndrewS. Tanenbaum,计算机网络[M],清华大学出版社,20048月第4版:31-37

[5]施承,基于ZigBee协议的无线传感器网络关键技术的研究和实现[J],东南大学硕士学位论文,2006年。

[6],,Bluetooth蓝牙技术[M]200112月第1版。

[7]TheZigbee Allianee[OL],http://www.zigbee.org.

[8]史作锋,ZigBee技术在无线传感器网络中的研究和应用[J],武汉科技大学硕士学位论文,2009年。[9]IanO,Luke Klein—BerndtAODVjr,AODVsimplified Mobile Computing and CommunicationsReview[J],2002,V01.6(3)100-10l

[10], , MSP430系列16位超低功耗单片机原理与实践,200807月第1版。[11]高守玮,吴灿阳等,ZigBee技术实践教程[M],北京航空航天大学出版社,20096月第1版:124-128

[12]CC2420 2.4 GHz IEEE 802.15.4/ZigBee-ready RF Transceiver.Texas Instruments[OL],www.ti.com.
1
[13]高守玮,吴灿阳等,ZigBee 技术实践教程[M],北京航空航天大学出版社,2009 6 月第1 版:
[14]CC2431 System-on-Chip for 2.4 GHz ZigBee/IEEE 802.15.4 with Locaion Engine
[OL],http://www.chipcon.com http://www.ti.com.
[17] Andrew S. Tanenbaum,计算机网络[M],清华大学出版社,2004 8 月第4 版:第4 章。

[18]波特率[OL],

[19]李莉,无线地下传感器网络关键技术的研究[J],北京邮电大学博士学位论文,2008年。

[20]Ian F. Akyildiz *, Erich P. StuntebeckWirelessunderground sensor networks: Research challengesAdHoc Networks 4 (2006) 669–686.

[21]VASQUEZJRODRIGUEZVREAGORDUndergroundWireless Communications Using Hish-Temperature SuperconductingReceivers[J]IEEETransactions on Applied Superconductivity2004.



70/ 85

附录:

ATrue System-on-Chip solution for2.4 GHz
IEEE802.15.4 / ZigBee
Applications
●2.4GHz IEEE 802.15.4 systems
●ZigBee?systems
●Home/buildingautomation
●IndustrialControl and Monitoring
TheCC2430 comes in three different versions:CC2430-F32//128, with32//128KB of flash memory respectively. The CC2430 is a trueSystem-on-Chip (SoC) solution specifically tailored for IEEE 802.15.4and ZigBee applications. It enables ZigBee nodes to be built withvery low total bill-ofmaterial costs. The CC2430 combines theexcellent performance of the leading CC2420 RF transceiver with anindustry-standard enhanced 8051 MCU, 32//128 KB flash memory, 8 KBRAM and many other powerful features. Combined with the industryleading ZigBee protocol stack (Z-Stack) from Figure 8 Wireless /Chipcon, the CC2430 provides the market’s most competitive ZigBee?solution.The CC2430 is

highly suited for systems where ultra low power consumption is required. This is ensured by various
●High performance and low power 8051 microcontroller core.
Key Features
operating modes. Short transition times between operating modes further ensure low power consumption.
●8 KB SRAM, 4 KB with data retention in all power modes

●Powerful DMA functionality
●Very few externalcomponents
●Only a single crystal needed for mesh networksystems
●Low current consumption (RX: 27mA, TX: 25mA,microcontroller running at 32 MHz)
●Only 0.9μA currentconsumption in power-down mode, where external interrupts or the RTCcan wake up the system
●Less than 0.6μA current consumptionin standby mode, where external interrupts can wake up thesystem
?Low power wireless sensor networks
●PCperipherals
●Set-top boxes and remote controls
●ConsumerElectronics
●Very fast transition times from low-powermodesto active mode enables ultra low average power consumption in lowduty-cyclesystems ●CSMA/CA hardware support.

●Wide supply voltage range (2.0V – 3.6V) ●Digital RSSI / LQIsupport

71/ 85

Batterymonitor and temperature sensor.

8-14bits ADC with up to eight inputs
●AESsecurity coprocessor
●Twopowerful USARTs with support for several serial protocols.

Watchdogtimer
●OneIEEE 802.15.4 MAC Timer, one general 16-bit timer and two 8-bittimers
●Hardwaredebug support
●21general I/O pins, two with 20mA sink/source capability
●Powerfuland flexible development tools available
●RoHScompliant 7x7mm QLP48 package
4Features (continued from front page)
4.1High-Performance and Low-Power
8051-CompatibleMicrocontroller
●Optimized8051 core, which typically gives 8x the performance of a standard8051
●Dualdata pointers
●In-circuitinteractive debugging is supported for the IAR Embedded Workbenchthrough a simple

two-wire serial interface
Memory and 2 x 4 KB Data Memory
●32//128 KB of non-volatile flash memory in-system programmable through a simple two-wire
4.2 Up to 128 KB Non-volatile Program
●4096 bytes of internal SRAM with data retention in all power modes. interface or by the 8051 core

Additional4096 bytes of internal SRAM with data retention in power modes 0and1.

4.3Hardware AES Encryption/Decryption
●AESsupported in hardware coprocessor
4.4Peripheral Features
●PowerfulDMA Controller
●PowerOn Reset/Brown-Out Detection
●Eightchannel, 8-14 bit ADC
●Programmablewatchdog timer
●Realtime clock with 32.768 kHz crystal oscillator
●Fourtimers: one general 16-bit timer, two general 8-bit timers, one MACtimer●Two programmable USARTs for master/slave SPI or UARToperation
●21configurable general-purpose digital I/O-pins

True random number generator
4.5 Low Power
●Four flexible power modes for reduced power consumption
●System can wake up on external interrupt or real-time counter event


Low-powerfully static CMOS design

72/ 85

●Systemclock source can be 16 MHz RC oscillator or 32 MHz crystaloscillator. The 32 MHz oscillator is used when radio is active.

●Optionalclock source for ultra-low power operation can be either low-power RCoscillator or an optional 32.768 kHz crystal oscillator.

4.6802.15.4 MAC hardware support
●Automaticpreamble generator
●Synchronizationword insertion/detection
●CRC-16computation and checking over the MAC payload
●ClearChannel Assessment
●Energydetection / digital RSSI
●LinkQuality Indication
●CSMA/CACoprocessor
4.7Integrated 2.4GHz DSSS Digital Radio
●2.4GHz IEEE 802.15.4 compliant RF transceiver (based on industry leadingCC2420 radio core).

Excellentreceiver sensitivity and robustness to interferers
●250kbps data rate, 2 MChip/s chip rate

●Complies with worldwide radio frequency regulations covered by ETSI EN 300 328 and EN 300 440
The 8051 CPU core is a single-cycle 8051-compatible core. It has three different memory access buses
9.1 CPU and Peripherals class 2 (Europe), FCC CFR47 Part 15 (US) and ARIB STD-T66(Japan).
12 for details on the CPU.
controller with the physical memories and all peripherals through the SFR bus. The memory arbitrator has

fourmemory access points, access at which can map to one of threephysical memories: an 8 KB SRAM, flash memory or RF and SFRregisters. The memory arbitrator is responsible for performingarbitration and sequencing between simultaneous memory accesses tothe same physical memory.

TheSFR bus is drawn conceptually in the block diagram as a common busthat connects all hardware peripherals to the memory arbitrator. TheSFR bus in the block diagram also provides access to the radioregisters in the radio register bank even though these areindeedmapped into XDATA memory space.

The8 KB SRAM maps to the DATA memory space and to part of the XDATAmemory spaces. 4 KB of the 8 KB SRAM is an ultralow-power SRAM thatretains its contents even when the digital part is powered off (powermodes 2 and 3). The rest of the SRAM loses its contents when thedigital part is poweredoff.

The 32//128 KB flash block provides incircuit programmablenon-volatile program memory for the device and maps into the CODE andXDATA memory spaces. Table 22 shows the available devices in theCC2430 family. The available devices differ only in flash memorysize. Writing to the flash block is performed through a flashcontroller that allows page-wise (2048 byte) erasure and byte-wisereprogramming. See section 13.14 for details on the flash controller.

A versatile five-channel DMA controller is available in the systemand accesses memory using a
unified memory space (XDATA) andthus has access to all physical memories.Each channel is configured

73/ 85

(trigger,priority, transfer mode, addressing mode, source and destinationpointers, and transfer count) with DMA descriptors anywhere inmemory. Many of the hardware peripherals rely on the DMAcontrollerfor efficient operation (AES core, flash write controller, USARTs,Timers, ADC interface) by performing data transfers between a singleSFR address and flash/SRAM. See section 13.2 for details.

Theinterruptcontroller servicesa total of 18 interrupt sources, divided into six interruptgroups,eachof which is associated with one of four interrupt priorities. Aninterrupt request is serviced even if the device is in a sleep mode(power modes 1-3) by bringing the CC2430 back to active mode (powermode 0).

Thedebuginterface implementsa proprietary two-wire serial interface that is used for incircuitdebugging. Through this debug interface it is possible to perform anerasure of the entire flash memory, control which oscillators areenabled, stop and start execution of the user program, executesupplied instructions on the 8051 core, set code breakpoints, andsingle step through instructions in the code. Using these techniquesit is possible to elegantly perform in-circuit debugging and externalflash programming. See section 12.9 for details.

TheI/O-controllerisresponsible for all general-purpose I/O pins. The CPU can configurewhether peripheral modules control certain pins or whether they areunder software control, and if so whether each pin is configured asan input or output and if a pullup or pull-down resistor in the padis connected. Each

peripheral that connects to the I/O-pins can choose between two different
RC oscillator periods. The sleep timer runs continuously in all operating modes except power mode 3. It
The sleep timer is an ultra-low power timer that counts 32.768 kHz crystal oscillator or 32.768 kHz
I/O pin locations to ensure flexibility in various applications. See section 13.1 for details.

enabledby software, the watchdog timer must be cleared periodically,otherwise it will reset the device when it times out.

(译文)

2.4 GHz IEEE 802.15.4 / ZigBee 的真正片上系统解决方案 应用
●2.4 GHz IEEE 802.15.4 系统
●ZigBee?系统
家庭/楼宇自动化
工业控制和监测
低功耗无线传感网络
●PC 外设
机顶盒和远程控制
消费型电子 产品描述
CC2430有三种不同的版本:CC2430-F32//128,分别对应32//128KB 的存。CC2430是一
个真正的片上系统(SoC)解决方案,专门针对IEEE802.15.4 ZigBee应用,它可以用很低的费用

74/ 85

构成ZigBee节点。CC2430结合了领先的CC2420RF收发器,业界标准的增强8051MCU32//128KB 的闪存,8KB RAM和其它许多强大的功能,再加上图8无线/Chipcon所示的业界领先ZigBee协议栈(Z-Stack协议栈)。CC2430提供了市场最有竞争力的ZigBee解决方案。CC2430特别适合于要求超低功耗的系统,这通过不同的操作模式保证,操作模式之间的短转换时间进一步保证了低

功耗。

主要功能
高性能和低功耗的8051微控制器内核
适应2.4GHz IEEE 802.15.4 RF收发器(业界领先的CC2420无线电内核)极高的接收灵敏度和抗干扰性能
●32128KB 的系统内可编程闪存
●8 KB SRAM4KB 具备在各种供电方式下的数据保持能力
强大的DMA功能
只需极少的外接元件
只需一个晶振,即可满足组网需要
电流消耗小(当微控制器内核运行在32MHz时,Rx27mATx25mA)● 掉电方式下,电流消耗只有0.9μA;外部中断或RTC能唤醒系统

挂起方式下,电流消耗小于0.6 μA,外部中断能唤醒系统
● PC 外设
机顶盒和远程控制低功耗无线传感网络
电源电压范围宽(2.03.6V)

支持数字化的接收信号强度指示器/链路质量指示(RSSI/LQI)
电池监视器和温度传感器
具有8 路输入814ADC
高级加密标准(AES)协处理器
●2 个支持多种串行通信协议的强大USART
看门狗
● 1 IEEE802.5.4 媒体存取控制(MAC)定时器,一个通用的16位和2 8位定时器● 支持硬件调试
●21 个通用I/O 引脚,其中2个具有20mA的电流吸收或电流供给能力
提供强大、灵活的开发工具
小尺寸QLP48 封装,7mm×7mm
4、功能
4.1高性能、低功耗的8051 微控制器
优化的8051 内核,这是一个标准8051性能的8 双数据指针
通过一个简单的两线串行接口,为IAR嵌入式工作台提供了内电路交互式调试的支持4.2高达128 KB 的非易失性编程存储器和2x4KB的数据存储器

75/ 85

32//128KB 的非易失性闪存,通过一个简单的两线接口或8051内核可进行系统内编程最坏情况闪存耐力:1000次写入/擦除循环。

闪存的可编程加密,用于软件安全
在所有供电模式下,内部SRAM可保留4096个字节的数据。

在供电模式01下,内部SRAM还可以保留另外4096个字节的数据。

4.3硬件AES加密/解密
●AES 支持在硬件处理器中实现4.4外设功能
强大的DMA控制器
电源复位/掉电检测
八个通道,8-14位的ADC
可编程的看门狗
带有32.768kHz 晶振的实时时钟
四个定时器:一个通用16位定时器,两个通用8位定时器,一个MAC定时器两个可编程USART,用于主/SPIUART操作
●21 个可配置的通用数字I/O引脚
真正的随机数发生器

4.5 低功耗
系统可以用外部中断或实时计数器事件唤醒
完全的低功耗静态CMOS 设计● 四个灵活的供电模式用于降低电源消耗
自动帧格式生成

同步字插入/检测
●MAC 负载的CRC-16 计算和检查
空闲通道评估
能量检测/数字化的RSSI
链路质量指示
●CSMA/CA 协处理器
4.7集成的2.4GHz DSSS 数字无线电
适应2.4 GHz IEEE 802.15.4 RF收发器(基于业界领先的CC2420无线电内核)极高的接收灵敏度和抗干扰性能
●250 kbps 数据率,2 MChip/s的码片速率
符合全球无线电频率规则,即ETSIEN300 328 EN 300 440 2 类(欧洲),FCC CFR47 15 部分(美国)和ARIBSTD-T66(日本)
9.1 CPU和外设
8051 CPU内核是一个单周期的8051兼容内核,它有三种不同的存取访问总线(SFRDATACODE/XDATA),一个调试接口和一个18位输入扩展中断单元。

存储器交错/仲裁位于系统的中心,它通过SFR总线把CPUDMA控制器和物理存储器、所有
外设连接起来。(交错式内存控制器处于系统的核心,因为它是用物理存储器外设通过SFR总线

76/ 85


连接CPU DMA 控制器的)存储器仲裁有四个存取访问点(交错式内存控制器有四个内存接入点),

访问可以映射到三个物理存储器之一:一个8KBSRAM,闪存或RFSFR寄存器。存储器仲裁负责在同时访问同一个物理存储器的行为之间执行仲裁和排序。

SFR总线概念性地画在框图上,作为一个普通的总线,连接所有硬件外设到存储器仲裁。框图中的SFR总线还提供访问无线寄存器块中的寄存器,即使它们实际上映射到XDATA的存储器空间。

8KB SRAM 映射到DATA存储空间和XDATA存储空间的一部分。8KB SRAM中有4KB是一个超低功耗的SRAM,即使数字部分关闭电源时(供电模式23),也保留它的内容。而数字部分关闭电源时,SRAM的剩余部分丢失它的内容。

32//128KB 闪存块为设备提供了内部非易失性可编程存储器,映射到CODEXDATA存储器空间。表22显示了CC2430系列中可用的设备,可用设备只在闪存大小方面有所不同。写入闪存块是通过一个闪存控制器执行的,它允许智能分页(2048个字节)擦除和智能字节重新编程。

系统中有一个五个通道的多功能DMA控制器,使用统一的存储空间(XDATA)访问存储器,因此它可以访问所有的物理存储器。每个通道都被配置(触发、优先级、传输模式、寻址模式、源和目标点和传输次数)为内存中任何地方的DMA描述符的值。许多硬件外设通过执行一个SFR地址和闪存/SRAM之间的数据传输,依赖DMA控制器进行有效的运行(AES内核,闪存写入控制

器,USARTs,定时器,ADC 接口)。
使设备处于睡眠模式(供电模式1-3),也提供中断请求,这通过使CC2430 返回活动模式(供电模
0)来执行。
中断控制器的服务共有18 个中断源,分为6 个中断组,每个与四个中断优先级之一相联系。即
I/O 控制器负责所有通用I/O 引脚。

件控制,以及如果是的话,每个引脚是否配置为输入或输出,以及是否连接衬垫的一个上拉或下拉电阻。连接I/O引脚的每个外设可以选择两个不同的I/O引脚,以保证不同应用程序的灵活性。

睡眠定时器是一个超低功耗的定时器,周期是32.768kHz 的晶振或32.768kHz RC 振荡器。除供电模式3外,睡眠定时器在所有的运行模式不断运行上。它可以配置在一些解决方案模式的其中之一,在定时器解决方案和超时时间之间取得适当的平衡。典型的用途是作为一个实时计数器,它的运行不考虑运行模式(除了供电模式3)或作为一个唤醒定时器,离开供电模式12

内置的看门狗定时器允许CC2430在固件挂起的情况下复位本身。当软件使能看门狗定时器时,它必须定期清除,(当软件使能时,看门狗定时器必须定期清除),否则当它超时的时候,它将复

位设备。

致谢

本论文已经接近尾声,在这里我要表示一下我的诚挚的谢意。

首先,我要感谢我的班主任,也是我的论文导师何自立老师!本篇毕业论文从立题

开始到完成都是在何老师的悉心指导和大力支持下进行的,何老师不仅在理论方法、实

验资料、器材等方面给了我极大地帮助和支持,而且在生活方面给予了朋友般的关心照
顾和精神鼓励。此外,何老师认真、勤奋的性格,敏锐的洞察力、思考力和广博的见识

77/ 85

也给了深刻的印象,大大的启发了我的灵感和动力。在此,我谨向我的班主任何自立老师表示诚挚的谢意和崇高的敬意!

感谢四年来水建学院的各位老师对我的辛勤培育和良苦用心,谢谢你们,尊敬的各位老师!

我要感谢我身边的同学和我的室友,四年的相处让我难以割舍,以后漫漫的人生路中,相信你们中的每一个以后都会很优秀、很幸福!

此外,我还要感谢我未来的研究生导师杨挺老师,他引导了我学习计算机网络的基本知识,并接触到了WSN,希望以后能够与杨老师好好相处!共同探讨研究!

最后,我要感谢我的父母,是他们给了无穷的爱和细微的关心照顾,我每走的一步,都是父母的功劳,我的生命和一切都属于我的父母,大爱无声,我从内心里深深地爱他们!同时,我还要感谢我的女朋友,是她陪我走过了这四年,给了无尽的动力和爱情的温馨,谢谢!





78/ 85

Copyright © 2019- 99spj.com 版权所有 湘ICP备2022005869号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务