无线传感器网络主讲:许毅武汉理工大学计算机学院第2章WSN开发环境学习目标•掌握WSN系统结构图。•掌握WSN节点设计内容。•了解WSN节点设计要求。•了解WSN节点设计模块设计内容。•了解WSN节点开发案例。•了解WSN中常见节点内容。•了解WSNTinyOS操作系统。•了解nesC语言。•了解LED灯闪烁实验。•掌握WSN实验平台的总体结构图。•掌握WSN实验平台中仿真器原理。•掌握WSN实验平台中传感器节点内容。•掌握WSN实验平台中路由节点内容。•了解CC2530芯片的特点。•了解CC2530片上内核。•了解CC2530主要特征外设。•了解CC2530无线收发器。•掌握CC2530开发环境IAR。2.1概述无线ZigBee传感器网络主要由计算机、网关和网络节点等组成。用户可以很方便地实现传感器网络无线化、网络化、规模化的演示、观测和进行第二次开发。(1)计算机部分、主要完成接收网关数据和发送指令,实现可视化,形象化人机界面,方便用户操作和观察。(2)网关部分、主要完成通过计算机进行的指令发送或接收路由节点或者传感器节点数据,并将接收到的数据发送给计算机。(3)路由节点部分、主要在网关不能和所有的传感器节点通信时,路由节点作为一种中介使网关和传感器节点通信,实现路由通信功能。(4)网络节点、主要完成对设备的控制和数据的采集,如灯的控制温度、光照度数据等。2.2WSN平台硬件设计2.2.1系统结构图图2-1传感器网络系统结构简单的工作流程描述如下图2-2所示2.2.1系统结构图(继)图2-2工程流程2.2.2节点设计内容与要求1.节点的设计要求根据应用环境的不同,传感器网络对节点的精度、传输距离、使用频段数据收发效率和功耗等提出了不同的要求,要求搭建相应的硬件系统和软件系统,使节点能够持续、可靠和有效地工作,其传感器节点的设计主要要求如下:(1)微型化。无线传感器节点在体积上应足够小,以保证对目标系统本身的特性不造成显著影响。(2)低功耗。无线传感器网络由大量密集分布的节点组成,只有低成本才有可能大量地布置在目标区域中。(3)低成本。无线传感器网络由大量密集分布的节点组成,只有低成本才有可能大量地布置在目标区域中。(4)稳定性和安全性。节点的各个部件应该能够在给定的外部变化范围内正常工作。(5)扩展性和灵活性。无线传感器网络节点需要定义统一完整的外部接口,以便必要时在现有节点上直接添加新的硬件功能模块,不需要开发新的节点。2.节点硬件设计内容传感器节点的硬件平台结构如图2-3所示。传感器节点一般由数据处理器模块、存储模块、无线通信模块、传感模块和电源模块等五个部分组成。数据处理模块是结点的核心模块,用于完成数据处理、数据存储、执行通信协议和结点调度管理等工作;存储模块主要完成存储处理器转送的数据;无线通信模块主要完成信道上发送和接收信息;传感器模块主要采集监控或观测区域内的物理信息;电源模块主要为各个功能模块提供能量。2.2.2节点设计内容与要求(继)图2-3传感器节点结构组成2.2.3节点的模块化设计1.处理器模块处理器模块是无线传感器网络节点的核心部件,微处理器选型应满足如下四方面要求:(1)体积尽量小(2)集成度尽可能高(3)功耗低且支持休眠模式(4)运行速度快从处理器的角度来看,传感器网络结点基本可以分为三类:第一类采用以ARM处理器为代表的高端处理器;第二类是以采用低端微控制器为代表的结点;第三类是数字信号处理器。2.2.3节点的模块化设计(继)2.存储模块存储器主要包括随机存储器(RAM)和只读存储器(ROM)。RAM可以分为SRAM、DRAM、SDRAM、DDRAM等几类;ROM又可分为NORFlash、EPROM、EEPROM、PROM等几类。RAM存储速度较快,但断电后会丢失数据,一般用于保存即时信息,如传感器的即时读人信息、其他节点发送的分组数据等。程序代码一般存储于只读存储器、电可擦除可编程只读存储器(EEPROM)或闪存。存储器的选择应根据具体情况决定,通常根据成本和功耗来衡量,由于RAM成本和功耗较大,在设计传感器节点时应尽量减少RAM的大小。3.无线通信模块无线通信模块由无线射频电路和天线组成,目前采用的传输介质主要包括无线电、红外、激光和超声波等,它是传感器结点中最主要的耗能模块,是传感器结点的设计重点。2.2.3节点的模块化设计(继)表2-3传感器网络的常用无线通信技术无线技术频率距离功耗传输速率Bluetooth2.4GHz10低10000802.11b2.4GHz100高11000RFID50kHz5~200ZigBee2.4GHz10低250IrDAInfrared1低16000UWB3.110低100000RF30010X低10XX表示数字1~92.2.3节点的模块化设计(继)3.无线通信模块(继)传感器网络结点常用的无线通信芯片的主要参数如表2-4所列。表2-4常用射频芯片的主要参数芯片频段速率电流灵敏度功率调制方式TR10009161153-1061.5OOK/FSKCC100030076.85.3-11020FSKCC1020402153.619.9-11820GFSKCC2420240025019.7-94-3Occ25302400nRF90543310012.5-10010GFSKnRF24012400100015-8520GFSK9Xstream90220140-11016FHSS2.2.3节点的模块化设计(继)在无线射频电路设计中,主要考虑以下三个问题:(1)天线设计主要从有以下三个指标来衡量天线的性能。①天线增益;②天线效率;③天线电压驻波比天线的种类主要有如下三种:①内置天线由于便于携带②将简单的导线天线或金属条带天线作为元件,③外置天线通常没有内置天线那样的尺寸限制(2)阻抗肌配(3)电磁兼容2.2.3节点的模块化设计(继)4.传感器模块根据实际需求可以选择具体的传感器节点实现数据采集功能。在传感器网络中,传感器的选择除了要考虑基本的灵敏度、线性范围稳定性及精确度等静态特性,还要综合功耗、可靠性、尺寸和成本等因素。5.电源模块电源模块作为无线传感器网络的基础模块,直接关系到传感器节点的寿命、成本和体积,因此,在设计电源时主要应考虑以下三个方面的问题。(1)能量供应(2)能量获取(3)直流-直流转换直流-直流转换器有三种类型:①线性稳压开关,产生较输入电压低的电压。②开关稳压器,能升高电压、降低电压或翻转输入电压。③充电泵,可以升压、降压或翻转输入电压,但驱动能力有限。2.2.4传感器节点开发实例传感器节点的设计需要经过很多步骤,其流程图如图2-4所示图2-4传感器节点设计流程图1.功能分析和芯片选型在此选择使用Atmel公司的AVR系列单片机ATMEGAl28和Chipcon公司的CC2420无线收发器。选择了芯片之后需要对系统的总体结构进行设计,了解各个部分之间的通信方式,目前设计的节点的结构如图2-5所示。图2-5自行设计的节点结构2.原理图及印制板设计原理图设计需要执行以下步骤:①确定设计图纸大小。②设置设计环境。③布放元器件。④原理图布线、布线优化。⑤输出报表。⑥打印或保存文件处理器的时钟部分、处理器与无线模块的接口部分和无线收发器三部分的原理图设计。1)处理器时钟电路设计2)处理器无线模块接口设计3)无线收发器模块设计2.2.4传感器节点开发实例(继)3.电路板调试电路板调试的流程图如图2-8所示。图2-8电路板调试沉程图2.2.5常见传感器节点1.Mica系列节点表给出Mica系列节点的技术及性能指标。表通信芯片的性能指标2.2.5常见传感器节点(继)2.Telos系列节点Telos系列节点是美国加州大学伯克利分校研究的成果,是针对Mica系列节点功耗较大而设计的低功耗产品。作为一个低功耗、可编程、无线传输的传感器网络硬件平台,Telos节点具有两个基本模块,一是处理器和无线通信平台,二是传感器平台,两者之间通过标准接口连接。处理器和无线通信平台采用待机时功耗较低的MSP430处理器和CC2420无线收发芯片4.SunSPOT节点Sun公司推出了一种新型的无线传感器网络设备SunSPOT(smallprogrammableobjecttechnology)。它采用32位的高性能ARM920T处理器及支持ZigBee的CC2420无线通信芯片,并开发出SquawkJava虚拟机,可以使用Java语言搭建无线传感器网络。处理器采用一款32位低功耗ARM920T微处理器,相对于其他通用的微处理器,它具有更加丰富的资源和极低的功耗2.2.5常见传感器节点(继)5.Gain系列节点Gain系列节点是中国科学院计算所开发的节点,是国内第一款自主开发的无线传感器网络节点,其外形图如图2-9所示。Gain系列第一版节点的处理器采用中国科学院计算机所自行开发的处理器,该处理器采用哈佛总线结构,Gain系列第一版节点的处理器采用中国科学院计算机所自行开发的处理器,该处理器采用哈佛总线结构,兼容AVR指令集。2.3WSN的操作系统2.3.1概述TinyOS是一个开源的嵌入式操作系统,它是由加州大学的伯利克分校开发,主要应用于无线传感器网络方面。它是一种基于组件(Component-Based)的架构方式,能够快速实现各种应用。TinyOS程序采用的是模块化设计,程序核心往往都很小。一般来说,核心代码和数据大概在400B左右,能够突破传感器存储资源少的限制,使得TinyOS可以有效地运行在无线传感器网络结点上,并负责执行相应的管理工作。TinyOS的主要特点如下:①采用基于组件的体系结构②采用事件驱动机制,③采用轻量级线程技术和基于先进先出(FirstInFirstOut,FIFO)的任务队列调度方法。④采用基于事件驱动模式的主动消息通信方式,2.3.2nesC语言1.nesC简介nesC是对C的扩展,它基于体现TinyOS的结构化概念和执行模型而设计。其基本特点如下:(1)结构和内容的分离,程序有组件(component)构成(2)根据接口(interface)的设置说明组件功能。(3)接口有双向性:(4)组件通过接口彼此静态地相连。(5)nesC基于由编译器生成完整程序代码的需求设计。(6)nesC的协作模型基于一旦开始直至完成作业,并且中断源可以彼此打断作业.2.3.2nesC语言(继)2.使用环境编辑nesC主要用在Tinyos中,TinyOS也是由nesC编写完成的。TinyOS操作系统就是为用户提供一个良好的用户接口。3.主要特性描述由于传感器网络的自身特点,面向其的开发语言也有其相应的特点。主动消息是并行计算机中的概念。2.3.3TinyOS组件模型TinyOS包含了经过特殊设计的组件模型,其目标是高效率的模块化和易于构造组件型应用软件。TinyOS的组件有四个相互关联的部分:一组命令处理程序句柄,一组事件处理程序句柄,一个经过封装的私有数据帧(dataframe),一组简单的任务。图2-9支持多跳无线通信的传感器应用程序的组件结构2.3.4TinyOS通信模型TinyOS中的消息通信遵循主动消息通信模型,它是一个简单的、可扩展的、面向消息通信(messaged-basedcommunication)的高性能通信模式,早期一般应用于并行和分布式计算机系统中。1.主动消息的设计实现2.主动消息的缓存管理机制3.主动消息的显式确认消息机制2.3.5TinyOS事件驱动机制事件驱动分为硬件事件驱动和软件事件驱动。硬件事件驱动也就是一个硬件发出中断,然后进入中断处理函数。而软件驱动则是通过signal关键字触发一个事件。2.3.6调度策略TinyOS采用比一般线程更为简单的轻量级线程技术和两层调度方式:高优先级的硬件事件句柄(HardwareEventHandlers)以及使用FIFO调度的低优先级的轻量级线程(task,即TinyOS中的任务),如图2-15所示。2.3.7能量管理机制TinyOS采用相互关联的三个部分进行能量管理。第一,每个设