由MSP430和CC1100构成的无线传感器网络
无线传感器 网络 是由大量微型传感器节点通过无线自组织方式构成的网络。它集成了传感器、微机电和无线通信三大技术,能够实时地感知、采集和处理网络覆盖范围内的对象信息,并发送给观察者;具有覆盖区域广、可远程监控、监测精度高、布网快速和成本低等优点,在军事、环保、医疗保健、空间探索、工业监控、精细农业等领域均有非常良好的应用前景。
1 无线传感器网络结构 如图1所示,无线传感器网络系统通常包括若干传感器终端节点、一个Sink节点和一套后台监控软件。其中,传感器终端节点具有本地数据采集传输和转发邻节点数据的双重功能,可以在后台管理软件和Sink节点的控制下采集数据,并将数据经过多跳路由传输到Sink节点;Sink汇聚节点是网络的中心,具有协调器和网关的作用,负责网络的配置、管理和数据的汇集,并负责与用户PC机后台管理软件的通信。
2 系统硬件设计 无线传感器网络终端节点的硬件一般包括处理单元、无线传输单元、传感采集单元和电源供应单元。其中,处理单元负责控制传感器节点的操作以及数据的存储和处理;传感采集单元负责监测区域内信息的采集;无线传输单元负责节点间的无线通信;电源供应单元负责为节点供电。Sink节点功能更多,除包含上述功能单元以外,还包含与后台监控通信的接口单元。本文用串口作为Sink节点与后台监控软件的通信接口。 本设计中处理单元采用了TI公司的16位低功耗单片机 MSP430 F1611,无线传输单元采用低功耗无线收发模块 CC1100 ,传感采集单元采用温湿度传感器DHT90,电源模块采用两节普通7号电池。此外,考虑到很多数据具有时间相关性,本设计还加入了实时时钟DS1337构成的时间控制单元。节点组成如图2所示,节点实物图如图3所示。
2.1 处理单元 MSP430F1611突出的特点是可以实现极低的功耗。它有5种可编程的工作模式,其中活动模式下工作电流仅需280μA,LPM4模式下仅需 0.1 μA。MSP30F1611内部具有44 KB的Flash存储器和10 KB的RAM,以及丰富的外设。本文中,MSP430F1611使用I2C接口连接RTC,SPI接口连接无线收发模块,UART接口连接串口通信单元。 2.2 无线收发单元 无线收发单元选用CC1100射频芯片。该芯片体积小,功耗低,数据速率支持1.2~500 kbps的可编程控制,可以工作在915 MHz、868 MHz、433MHz、315 MHz四个波段,在所有频段提供-30~10 dBm输出功率。本文中CC1100工作在433 MHz的频率上,采用FSK调制方式,数据速率为100 kbps,信道间隔为200kHz。 CC1100与单片机采用SPI接口连接,原理图如图4所示。SPI总线接口技术是一种高速、高效率的串行接口技术,主要用于扩展外设和进行数据交换。
下面是利用SPI与MSP430F1611通信的示例代码。 (1) 往CC1100指定寄存器写入一个数值
(2) 读单个寄存器值
图5和图6为利用CC1100进行数据收发的流程图。
2.3 数据采集单元 节点的数据采集单元可以根据实际需要和被监测物理信号特征选择合适的传感器,如光照、压力、振动、温度、湿度、土壤盐碱度等。 本文数据采集单元采用了温湿度传感器DHT90。DHT90集成了温度/湿度传感器、信号放大调理器、A/D转换器和总线接口,能够进行全校准数字输出,可以直接提供温度在-40℃~120℃范围内、分辨率为14位、湿度在0~100%RH范围内且分辨率为12位的数字输出。 2.4 时间控制单元 时间控制单元用于设置、记录数据采集的时间,以便后台用户能够依靠采集时间对数据进行处理。本文选用Maxim公司串行实时时钟芯片DS1337作为时间控制单元。DS1337可以工作在1.8~5.5 V,并且具有很低的功耗,在休眠模式下仅需要15 μA。 2.5电源供应单元 本文采用两节7号碱性南孚电池为整个节点供电。为了能够及时获取节点电池的电量状况,并根据电池的剩余电量状况和放电特性来调整节点的通信状态,本文利用 MSP430 F1611芯片内部集成的ADC12模块测量电源正极电平值,并通过将所测电平值与参考电平进行比较,得到转换数据NADC,最后电源的电压Vin可以由下式得出:
式中:VR+为参考电压正极,VR-为参考电压负极,Vin为ADC12转换得到的电压值,NADC为单片机转换寄存器值。
2.6 串口通信单元 网络 中只有Sink节点才包含串口通信单元,终端节点无需串口通信单元。Sink节点的处理单元MSP430F1611通过串口通信单元与后台监控主机通信。Sink节点通过串口通信模块可以将自身收集的全网信息数据传送给后台监控主机,研究人员根据监控软件对收集数据的智能处理结果向传感器网络发布数据和命令。 3 协议软件设计 3.1 拓扑结构 制定网络协议首先要确定的是网络的拓扑结构。本文所设计的 无线传感器 网络协议采用簇-树(cluster-tree)拓扑。簇-树拓扑是由网络协调器(coordinator)展开生成树状的拓扑结构,适合于节点静止或者移动较少的场合;不需要存储路由表,具有路由算法复杂度低、无初始延时等优点。 3.2 通信协议栈 无线通信协议的设计目的是使具体的通信机制与上层的应用分离,为传感器节点提供网络通信的功能。为了降低网络设计的复杂性,采用分层设计,参考 OSI模型,将整个协议分为4层:物理层,提供简单但健壮的信号调制和无线收发技术;MAC层,负责数据成帧、帧检测、媒体访问和差错控制;网络层,主要负责 路由生成和路由选择;应用层,包括一系列基于监测任务的应用层软件。系统通信协议构架如图7所示。
整个系统协议设计包括Sink节点协议设计和终端节点协议设计。由于篇幅有限,本文仅介绍终端节点的软件协议和系统主程序。 如图8所示,终端节点在初始化成功后进入信道扫描侦听状态,当侦听到有邻居节点活动时便向邻居节点请求时标帧;节点依据接收到的时标帧同步自己的时钟,节点时钟同步后进入接入状态,接人成功后节点进入业务状态。处于业务状态的节点,执行后台和Sink节点发布的命令,进行数据的传感采集与传输,以及对邻节点数据的中继转发。节点为了实现低功耗,必须在业务状态与休眠状态之间进行轮换。
4 系统节能问题 在整个网络系统的设计中,节约能量一直是考虑的重中之重。系统的节能,一靠硬件系统本身的低功耗,二靠软件协议的低功耗。在硬件方面,本文节点选择的都是低功耗的芯片,布板也充分考虑了低功耗要求;在软件方面,除了采用休眠机制以外,还采用了基于电池能量模型的路由协议,使得节点能够根据电池能量特性来工作,从而延长了电池的使用寿命。 结 语 本文主要介绍了一种基于MSP430F1611单片机和 CC1100 无线收发模块,能够实现精确采集环境温湿度信息的无线传感器网络硬件设计和软件设计方案。在实际组网测试中,笔者构建了19个终端节点和1个Sink节点的演示系统,节点每休眠两个小时醒来一次,节点醒来之后采集数据并发送给观察者。实验表明,采用这种方式构建的无线传感器网络系统数据采集及时准确,而且能以极低的功耗进行工作。
|