电子文章 | 电子资料下载 | 家电维修 | 维修资料下载 | 加入收藏 | 全站地图
您现在所在位置:电子爱好者电子文章传感技术基于nRF905的无线传感器网络节点的设计与实现

基于nRF905的无线传感器网络节点的设计与实现

11-20 00:37:23 | http://www.5idzw.com | 传感技术 | 人气:983
标签:传感技术知识,传感器与检测技术,http://www.5idzw.com 基于nRF905的无线传感器网络节点的设计与实现,http://www.5idzw.com

     摘  要: 以STC12系列单片机和nRF905射频收发器为核心,设计了一种无线传感器网络节点和基于这种节点的自组织通信协议。给出了节点的整体结构,详细阐述了软件设计流程。试验表明该节点实现了自组织和多跳数传,通信稳定可靠,网络吞吐率达到无线传感器网络的要求。

  无线传感器网络是计算机技术、传感器技术和网络通信技术相结合的产物。它由大量随机分布的、具有实时感知、无线通信和自组织能力的传感器节点组成。随着无线技术的高速发展,无线传感器网络越来越多地走进人们的视野中。与有线技术相比,无线技术具有成本低、体积小、省去复杂的布线等优点。但是由于现有的无线传感器节点大都采用电池供电,放置地点随机变动,随时可能出现节点中断的情况,通信能力十分有限,需要经常性的人工维护。因此,无线传感器网络节点要具有自组织、中断自我修复的功能,需要设计合适的通信协议和路由算法,以提高系统通信的可靠性。为此,本文采用无线射频芯片nRF905和STC12系列单片机设计了一种无线传感器节点,并且在典型自组织网络的通信协议-动态源路由协议DSR(Dynamic Source Routing)的基础上,针对路由维护算法做出改进,设计出一种易于实现且实用性高的通信协议,实现了自组织和多跳传输数据的无线通信系统。

  1 节点硬件设计

  节点分为协调器节点和普通节点,普通节点带有传感器,负责采集需要的数据并组成网络,协调器节点负责整个网络的控制和数据的汇总、分析、处理等。图1为协调器和普通节点的结构图。


  1.1 MCU

  STC12LE5410AD单片机是单时钟/机器周期(1T)的兼容8051内核单片机,是高速、低功耗的新一代8051单片机,指令代码完全兼容传统8051,而速度快8~12倍,内部集成硬件高速SPI(Serial Peripheral Interface)接口、2 KB EEPROM、A/D转换模块和MAX810专用复位电路。工作电压2.4~3.8 V,因此可用电池工作,并可长时间工作。器件在少于6 μs的时间内可以从低功耗模式迅速唤醒。STC12LE5410AD的超小封装、高度集成、精简外部电路可设计出更小的节点,超低的价格可以大规模铺设传感器节点。STC12LE5410AD单片机的这些特征,非常适合应用在无线传感器网络中。

  1.2 射频收发器件nRF905

  nRF905由挪威Nordic公司生产,是一个为433/868/915 MHz-ISM(工业、科学、医疗)频段设计的单片无线收发芯片,32脚QFN封装,工作电压为1.9~3.6 V,最大发射功率为10 dBm。该收发芯片由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,片内自动完成曼彻斯特编码/解码。nRF905有两种活动(TX/RX)模式和两种节电模式。活动模式之间转换时间小于550 μs,活动模式与节电模式之间的转换时间小于650 μs。

  nRF905通过SPI与微控制器通信,自动处理字头和循环冗余码校验(CRC)。当进行数据发送时,只需将配置寄存器信息、所要发送的数据和接收地址送给nRF905,它就会自动完成数据打包(加字头和CRC校验码)和发送。接收数据时,nRF905自动检测载波并进行地址匹配,接收到正确数据后自动移去字头、地址和CRC校验码,再通过SPI将数据传送到微控制器。

  1.3 硬件连接设置

  STC单片机通过内部集成的硬件高速串行外设接口SPI与nRF905连接,最快可达3 Mb/s,比软件模拟SPI方式快30倍左右,大大减少了程序执行时间,提高了网络的吞吐率。同时在设计协调器节点与PC上位机软件通信程序时,利用STC单片机1T时钟的优势,设置串口波特率使用的定时器12倍速方式,使串口波特率提高至115 200 b/s,提高了协调器节点的反应速度,减少了等待时间,提高了系统的吞吐率。

  2 节点软件设计

  本系统的软件设计分为协调器节点Connector软件和普通节点Node软件的设计,其中协调器节点作为整个网络系统的主节点,起着控制全网络的作用,通过PC机的上位机软件,可以对协调器进行接收和发送命令及数据,从而实现对整个系统网络的控制。而每个普通节点也预留通信接口,可以在需要的时候与其他设备相连接。

  由于本系统实现自组织网络的需要,在物理层中为每个节点(包括协调器和普通节点)定义了相同的物理地址,实现全网的广播功能。在网络层为每个节点分配唯一的网络地址,通过软件判断接收数据的目的节点是否是本机。


  图2为节点自组织流程图。当网络中增加一个新节点,新节点上电初始化后,首先会向协调器发送路由请求RREQ请求加入网络,并打开定时器;协调器收到RREQ后,记录新节点信息,并通过反路由发送应答信号ACK至源节点;如果新节点在设定的时间内收到ACK信号,表示加入网络成功,并且记录本节点至协调器的路由信息;如果在设定的时间内没有收到ACK信号,那么重新发送路由请求RREQ至协调器,如此循环直至收到ACK信号。如果重发次数达到设定的上线,仍没有收到ACK信号,则进行全网广播RREQ,并打开定时器,等待返回RREP命令;在设定时间后进行重新广播RREQ,直到到达重发上限。新节点收到RREP表示加入网络成功,同时保存RREP命令帧中的路由信息。

  2.1 路由协议

  现有无线网状网络的路由协议通常可分为:表驱动式路由协议和按需路由协议。前者需要网络中的每个节点维护一张或多张路由表,以记录到其他节点的路由,增加了路由开销。而按需路由协议——动态源路由协议(DSR)使用了源路由,每一个数据分组的帧头中包含整条路由的信息,中间节点不需要维持当前的路由信息,分组自己带有路由信息,按需路由的特性避免了周期性路由广播和邻居节点的检测。

  DSR协议包括两个过程:路由发现和路由维护。路由发现过程使用泛洪路由(Flooding Routing)。为了减少路由发现过程的开销,每一个节点都包括一个缓存器,存放最近学到的和用过的路由信息。路由维护过程是源节点用来检测网络拓扑是否发生变化的机制。若拓扑发生变化、源路由发生中断,源节点就会收到路由错误信息。其他节点收到路由错误信息后删除中断路由,并且重新发起广播寻找路由。

  本系统中的路由协议采用DSR协议,并对DSR协议进行一些改进。

  (1)每个节点中到达目的节点含有最多两个路由缓存。

  (2)查到中断节点后先检查本节点中有无到中断节点下级节点的信息,若有,则直接使用此路由,若无,则立即广播发送RRER。

  (3)所有节点收到RRER后,检查是否含有终端路由,有则删除中断路由。

  系统通信协议格式如表1所示。其中,FRAME_TYPE表示命令帧类型,SOURCE_ADDR表示源地址,FIRE_ADDR表示目的地址,MID表示路由节点地址,REMIAN表示最大跳数下剩余跳数,MAX表示最大跳数,DATA表示要传输的数据,ODD代表奇校验。


  2.2 程序设计

  2.2.1 广播

  在广播RREQ时,为了避免广播冲突,利用nRF905的载波检测多路访问机制CSMA/CA,发送前先进入接收模式,*该信道是否空闲。如果检测到CD信号为高,则表示该信道被占用,根据退避延时一段时间,再检测CD信号是否为高。

  而根据检测,数据包接收的时间大致为20 μs,时隙为60 μs,加上程序运行的时间,定义短帧空间SIFS和时隙分别为50 μs及100 μs,分散帧空间DIFS为SIFS加2个时隙即250 μs。CSMA/CA程序流程如图3所示,定义NB、CW和BE。

[1] [2]  下一页

,基于nRF905的无线传感器网络节点的设计与实现
关于《基于nRF905的无线传感器网络节点的设计与实现》的更多文章