无线传感器网络节点设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
)
无线传感器网络节点设计
摘要:无线传感器网络是目前研究的热点,传感器节点是无线传感器网络的必要组成部分,高性能高稳定性的传感器节点成为研究的难点,文中首先阐述了无线传感器网络节点的体系结构,然后从无线传感器网络节点功能要求设计的原则出发,着重分析所提出的系统硬件电路的构成以及硬件电路核心部件设计的关键问题,并给出了具体的设计方案。
关键词:无线传感器网络 CC1100 MSP430 射频
0 引言
无线传感器网络是由大量微型传感器节点通过无线自组织方式构成的网络。它集成了传感器、微机电和无线通信三大技术,能够实时地感知、采集和处理网络覆盖范围内的对象信息,并发送给观察者;具有覆盖区域广、可远程监控、监测精度高、布网快速和成本低等优点,在军事、环保、医疗保健、空间探索、工业监控、精细农业等领域均有非常良好的应用前景。
1 无线传感器网络结构
{
一般来说,一个无线传感器网络包括传感器节点以及传感器网络网关节点,如图1所示。其中,传感器节点具有本地数据采集传输和转发邻节点数据的双重功能,可以在后台管理软件和传感器网络网关节点的控制下采集数据,并将数据经过多跳路由传输到传感器网络网关节点;传感器网络网关汇聚节点是网络的中心,具有协调器和网关的作用,负责网络的配置、管理和数据的汇集,并负责与用户PC机后台管理软件的通信。无线传感器网络通常具有两种应用模式:主动轮询模式、被动模式。主动模式要求网关节点对各个传感器节点进行主动的轮询以获得消息,而被动模式则要求在某个传感器节点事件发生时,网关节点能作出及时的响应。各个传感器节点得到的数据还能进行组合,这也很大地提高了传感器网络的效率。当然这也要求传感器节点要具有一定的计算能力。
GPRS或
Internet
图1 无线传感器网络结构
2 系统硬件设计
无线传感器网络节点的硬件一般包括处理单元、无线传输单元、传感采集单元、电源供应单元和其他扩展单元,如图2所示。其中,处理单元负责控制传感器节点的操作以及数据
的存储和处理;传感采集单元负责监测区域内信息的采集;无线传输单元负责节点间的无线通信;电源供应单元负责为节点供电。传感器网络网关节点功能更多,除包含上述功能单元以外,还包含与后台监控通信的接口单元。本文主要介绍的是传感器节点和网关的硬件平台的实现。 处理单元无线传输
单元其他
电源供应
单元
传感采集
单元
图2 传感器节点硬件框图
处理单元
[
传感器节点的计算单元的功能已经在上节中介绍过,在我们的系统中采用了TI 公司的16位微控制器MSP430F1611。MSP430具有丰富的片上存储资源,在5MHz 的工作频率下,MSP430的功耗大约为,而且该微控制器还有多种省电模式可供选择。除了丰富的片上存储资源和多种省电模式以外,MSP430还具有多个AD 接口和I/O 数据线,很容易用软件编程,这些接口还可以用作与传感单元的接口。
无线传输单元
无线收发单元选用Chipcon 公司的CC1100射频芯片。该芯片体积小,功耗低,数据速率支持1. 2~500 kbps 的可编程控制,可以工作在915MHz 、868MHz 、433MHz 、315MHz 四个波段,在所有频段提供-30~10dBm 输出功率。本文中CC1100工作在433 MHz 的频率上,采用FSK 调制方式,数据速率为100kbps ,信道间隔为200kHz 。
传感采集单元
节点的数据采集单元可以根据实际需要和被监测物理信号特征选择合适的传感器,如光照、压力、振动、温度、湿度、土壤盐碱度等。
本系统中采用的微控制器MSP430F1611有多个IO 接口和AD 接口,传感采集单元可以通过控制器的AD 接口、I2C 接口、SPI 接口和UART 接口来扩展。
电源供应单元
本文采用两节7号碱性电池为整个节点供电。为了能够及时获取节点电池的电量状况,并根据电池的剩余电量状况和放电特性来调整节点的通信状态,本文利用MSP430F1611芯片内部集成的ADC 模块测量电源正极电平值,并通过将所测电平值与参考电平进行比较,得到转换数据N ADC ,最后电源的电压V in 可以由下式得出:
·
N ADC = (V in - V R - ) × 4095 / (V R+ - V R - )
式中:V R+为参考电压正极,V R -为参考电压负极,V in 为ADC 转换得到的电压值,N ADC 为单片机转换寄存器值。
时间控制单元
时间控制单元用于设置、记录数据采集的时间,以便后台用户能够依靠采集时间对数据进行处理。本文选用Maxim 公司的串行实时时钟芯片DS1337作为时间控制单元。DS1337可以
工作在~,并且具有很低的功耗,在休眠模式下仅需要15μA。
3 软件设计
传感器节点上的软件主要利用汇编和C语言开发,主要完成的功能是接收传感单元的数据,并将数据发送到传感器节点组的网关上,而无线传输是传感器节点中设计的难点。
MCU 通过SP I方式对CC1100内部寄存器设置实现功能设置和测试。CC1100内部寄存器地址范围为0X00~0X3F,其中0X00~0X2E为配置寄存器,可通过SmartRF Studio软件配置寄存器,得到最优寄存器设定和评测性能及功能。SPI接口上的每个操作都包含一个读写位,一个突发访问位和一个地址的头字节。CSn低电平有效,头字节转换之前,MCU等待,直到电压调制器达到稳定,即SO变低电平,除非CC1100处于睡眠状态或XOFF状态,SO在CSn变低后也变低。配置寄存器用来设定CC1100的工作状态,如通信带宽等。
CC1100的内部地址0X30~0X3F是状态寄存器和命令滤波寄存器,其中状态寄存器为只读,用来读取CC1100的工作状态,如RX溢出等;命令滤波寄存器为只写,用来控制CC1100工作,如启动RX/TX等。
>
向CC1100 某一个寄存器写数据和读多个寄存器的代码如下:
/ /write to a single registe
void halSpiWriteReg ( U8 addr, U8 value )
{
CC1100_SPI = P_CSn_0;
while ( P_SO ! = 0 ) ;
CC1100_SPI = P_SCLK_0;
addr& = 0x7F;
'
SP I_write ( addr ) ; / / SPI写函数
SP I_write ( value ) ;
CC1100_SPI = P_SI_0;
CC1100_SPI = P_CSn_1;
}
/ / read data from several registers
void halSp iReadBurstReg ( U8 addr, U8*buffer,
U8 count)
:
{
U8 j,value;
CC1100_SP I = P_CSn_0;
while ( P_SO ! = 0 ) ;
CC1100_SP I = P_SCLK_0;
addr | = READ_BURST;
SPI_write ( addr ) ;
for ( j = 0; j < count; j + + )
)
{
value = SPI_ read ( ) ;
buffer[j ] = value;