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

上传人:j****9 文档编号:46343590 上传时间:2018-06-25 格式:DOC 页数:10 大小:320.50KB
返回 下载 相关 举报
基于nrf905的无线传感器网络节点的设计与实现_第1页
第1页 / 共10页
基于nrf905的无线传感器网络节点的设计与实现_第2页
第2页 / 共10页
基于nrf905的无线传感器网络节点的设计与实现_第3页
第3页 / 共10页
基于nrf905的无线传感器网络节点的设计与实现_第4页
第4页 / 共10页
基于nrf905的无线传感器网络节点的设计与实现_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《基于nrf905的无线传感器网络节点的设计与实现》由会员分享,可在线阅读,更多相关《基于nrf905的无线传感器网络节点的设计与实现(10页珍藏版)》请在金锄头文库上搜索。

1、基于 nRF905的无线传感器网络节点的设计与实现以 STC12系列单片机和 nRF905射频收发器为核心,设计了一种无线传感器网络节点和基于这种节点的自组织通信协议。给出了节点的整体结构,详细阐述了软件设计流程。试验表明该节点实现了自组织和多跳数传,通信稳定可靠,网络吞吐率达到无线传感器网络的要求。无线传感器网络是计算机技术、传感器技术和网络通信技术相结合的产物。它由大量随机分布的、具有实时感知、无线通信和自组织能力的传感器节点组成。随着无线技术的高速发展,无线传感器网络越来越多地走进人们的视野中。与有线技术相比,无线技术具有成本低、体积小、省去复杂的布线等优点。但是由于现有的无线传感器节点

2、大都采用电池供电,放置地点随机变动,随时可能出现节点中断的情况,通信能力十分有限,需要经常性的人工维护。因此,无线传感器网络节点要具有自组织、中断自我修复的功能,需要设计合适的通信协议和路由算法,以提高系统通信的可靠性。为此,本文采用无线射频芯片 nRF905和 STC12系列单片机设计了一种无线传感器节点,并且在典型自组织网络的通信协议-动态源路由协议 DSR(Dynamic Source Routing)的基础上,针对路由维护算法做出改进,设计出一种易于实现且实用性高的通信协议,实现了自组织和多跳传输数据的无线通信系统。1 节点硬件设计节点分为协调器节点和普通节点,普通节点带有传感器,负责

3、采集需要的数据并组成网络,协调器节点负责整个网络的控制和数据的汇总、分析、处理等。图1为协调器和普通节点的结构图。1.1 MCUSTC12LE5410AD 单片机是单时钟/机器周期(1T)的兼容8051内核单片机,是高速、低功耗的新一代8051单片机,指令代码完全兼容传统8051,而速度快812倍,内部集成硬件高速 SPI(Serial Peripheral Interface)接口、2 KB EEPROM、A/D 转换模块和 MAX810专用复位电路。工作电压2.43.8 V,因此可用电池工作,并可长时间工作。器件在少于6 s 的时间内可以从低功耗模式迅速唤醒。STC12LE5410AD 的

4、超小封装、高度集成、精简外部电路可设计出更小的节点,超低的价格可以大规模铺设传感器节点。STC12LE5410AD 单片机的这些特征,非常适合应用在无线传感器网络中。1.2 射频收发器件 nRF905nRF905由挪威 Nordic 公司生产,是一个为433/868/915 MHz-ISM(工业、科学、医疗)频段设计的单片无线收发芯片,32脚 QFN 封装,工作电压为1.93.6 V,最大发射功率为10 dBm。该收发芯片由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,片内自动完成曼彻斯特编码/解码。nRF905有两种活动(TX/RX)模式和两种节电模式。活动模式之间转换时间小于

5、550 s,活动模式与节电模式之间的转换时间小于650 s。nRF905 通过 SPI 与微控制器通信,自动处理字头和循环冗余码校验(CRC)。当进行数 据发送时,只需将配置寄存器信息、所要发送的数据和接收地址送给 nRF905,它就会自动 完成数据打包(加字头和 CRC 校验码)和发送。接收数据时,nRF905 自动检测载波并进行 地址匹配,接收到正确数据后自动移去字头、地址和 CRC 校验码,再通过 SPI 将数据传送到微控制器。 1.3 硬件连接设置STC 单片机通过内部集成的硬件高速串行外设接口 SPI 与 nRF905连接,最快可达3 Mb/s,比软件模拟 SPI 方式快30倍左右,

6、大大减少了程序执行时间,提高了网络的吞吐率。同时在设计协调器节点与 PC 上位机软件通信程序时,利用 STC 单片机1T 时钟的优势,设置串口波特率使用的定时器12倍速方式,使串口波特率提高至115 200 b/s,提高了协调器节点的反应速度,减少了等待时间,提高了系统的吞吐率。2 节点软件设计本系统的软件设计分为协调器节点 Connector 软件和普通节点 Node 软件的设计,其中协调器节点作为整个网络系统的主节点,起着控制全网络的作用,通过 PC 机的上位机软件,可以对协调器进行接收和发送命令及数据,从而实现对整个系统网络的控制。而每个普通节点也预留通信接口,可以在需要的时候与其他设备

7、相连接。由于本系统实现自组织网络的需要,在物理层中为每个节点(包括协调器和普通节点)定义了相同的物理地址,实现全网的广播功能。在网络层为每个节点分配唯一的网络地址,通过软件判断接收数据的目的节点是否是本机。图2为节点自组织流程图。当网络中增加一个新节点,新节点上电初始化后,首先会向协调器发送路由请求 RREQ 请求加入网络,并打开定时器;协调器收到 RREQ 后,记录新节点信息,并通过反路由发送应答信号 ACK 至源节点;如果新节点在设定的时间内收到ACK 信号,表示加入网络成功,并且记录本节点至协调器的路由信息;如果在设定的时间内没有收到 ACK 信号,那么重新发送路由请求 RREQ 至协调

8、器,如此循环直至收到 ACK信号。如果重发次数达到设定的上线,仍没有收到 ACK 信号,则进行全网广播 RREQ,并打开定时器,等待返回 RREP 命令;在设定时间后进行重新广播 RREQ,直到到达重发上限。新节点收到 RREP 表示加入网络成功,同时保存 RREP 命令帧中的路由信息。2.1 路由协议现有无线网状网络的路由协议通常可分为:表驱动式路由协议和按需路由协议。前者 需要网络中的每个节点维护一张或多张路由表,以记录到其他节点的路由,增加了路由开 销。而按需路由协议动态源路由协议(DSR)使用了源路由,每一个数据分组的帧头中 包含整条路由的信息,中间节点不需要维持当前的路由信息,分组自

9、己带有路由信息,按 需路由的特性避免了周期性路由广播和邻居节点的检测。 DSR 协议包括两个过程:路由发现和路由维护。路由发现过程使用泛洪路由(Flooding Routing)。为了减少路由发现过程的开销,每一个节点都包括一个缓存器,存放最近学到的和用过的路由信息。路由维护过程是源节点用来检测网络拓扑是否发生变化的机制。若拓扑发生变化、源路由发生中断,源节点就会收到路由错误信息。其他节点收到路由错误信息后删除中断路由,并且重新发起广播寻找路由。本系统中的路由协议采用 DSR 协议,并对 DSR 协议进行一些改进。(1)每个节点中到达目的节点含有最多两个路由缓存。(2)查到中断节点后先检查本节

10、点中有无到中断节点下级节点的信息,若有,则直接使用此路由,若无,则立即广播发送 RRER。(3)所有节点收到 RRER 后,检查是否含有终端路由,有则删除中断路由。系统通信协议格式如表1所示。其中,FRAME_TYPE 表示命令帧类型,SOURCE_ADDR 表示源地址,FIRE_ADDR 表示目的地址,MID 表示路由节点地址,REMIAN 表示最大跳数下剩余跳数,MAX 表示最大跳数,DATA 表示要传输的数据,ODD 代表奇校验。2.2 程序设计2.2.1 广播在广播 RREQ 时,为了避免广播冲突,利用 nRF905的载波检测多路访问机制CSMA/CA,发送前先进入接收模式,*该信道是

11、否空闲。如果检测到 CD 信号为高,则表示该信道被占用,根据退避延时一段时间,再检测 CD 信号是否为高。而根据检测,数据包接收的时间大致为20 s,时隙为60 s,加上程序运行的时间,定义短帧空间 SIFS 和时隙分别为50 s 及100 s,分散帧空间 DIFS 为 SIFS 加2个时隙即250 s。CSMA/CA 程序流程如图3所示,定义 NB、CW 和 BE。后退次数(NB):NB 的初始值为0,当设备有数据要传送时,经过一段后退时间(2BE-1)100 s 后,检测 CD,若检测到信道忙,则会再一次产生倒退时间。此时 NB 值会加1,NB 值最大定义为4。当信道在经过4次的后退延迟时

12、间后仍为忙,则放弃此次的传送,以避免过大开销。尝试次数(CW):循环判断当前频道是否空闲,当判断到了一定次数后该频道依然空闲则跳出循环,开始传送数据,设初值为2。后退指数(BE):初值设为2。本设计中,CD 信号为高时必须通过切换至 standby 模式来使 CD 信号复位,以保证下次 CD 信号的检测。根据 nRF905 模块的时序可知,模块从 standby 模式切换至接收或发送模式的时间为 650 s,发送和接收模式之间的切换需要 550 s,切换时间远大于时隙及 DIFS 的值。因此, BE 设置为 2,最大为 4。 2.2.2 数据传输在进行数据传输时,源节点首先检查自己的缓存中是否

13、有到目的节点的路由信息,如果没有,则先进行路由发现,与广播模式相同。如果有至目的节点的路由信息,则根据路由信息,先发送数据请求命令 RTS。当目的节点接收到返回的允许发送命令 CTS 信号时,则表示已经建立了数据传输通道,由请求节点开始传输数据,传输完毕后,由目的节点发送 DATA_ACK 给源节点,表示数据发送完毕。其工作流程如图4所示。2.2.3 路由修复数据传输时,每个节点收到数据后,都要先回复应答 ACK 信号给其前一个节点,再转发至下一个中继节点,节点中设置超时定时器,约等待1 633 s ACK 信号,前一个节点没有收到 ACK,则重发数据,设置重发次数为3。假若重发3次都没有收到

14、 ACK 信号,则判断下一个节点为中断节点。查询缓存路由中是否有其他到达中断节点下游节点的信息,有则使用这个备用路由,无则广播发送 RERR 给所有包含中断节点路由的源节点,每个节点在收到该 RERR 后,就会从它的路由缓存中删除所有包含该中断节点的路由。路由修复示例如图5所示。节点0需要发送数据给节点5,节点0中含有到节点5的路由信息,0125;节点0开始发送 RTS,每个节点收到 RTS 后返回给前一个节点 ACK,表示路由无中断;假若节点1没有收到 ACK,重发3次后仍没有 ACK 返回,则判断节点2是中断节点;这时查询节点1中有无到达节点5的路由,发现1345,则按照此路由继续发送 R

15、TS;当节点1返回 DATA_ACK,表示数据传输完成,延迟10跳数(ms)后,广播发送RRER,收到 RRER 的每个节点查询本节点是否含有中断路由,有则从路由缓存中删除包含中断节点的路由。3 试验结果试验网络系统由10个普通节点和1个协调器节点组成,采用人工随机安放的方式把所有节点放置在约200 m 的空旷地带。首先,把协调器节点通过串口与主控 PC 机连接,打开上位机控制软件,并给协调器节点上电;随后在随机放置普通节点的同时一一打开节点的电源。通过上位机软件可以清楚地看到,每当有新节点加入网络(打开电源),上位机会实时显示出新加入节点的地址和路由信息,并且通过反向路由返回应答信号给新节点

16、,表示成功加入网络。当所有节点都加入网络后,可以通过上位机软件看到整个网络中各个节点的路由信息,并且可以对每个节点或多个节点进行远程控制。为了实时监测到每个节点的运行情况,每个节点程序都加入定时扫描程序,定时时间1 min,检测节点本身在1 min 内是否为空闲状态,如果是空闲状态,则向协调器节点发送节点信号,保证本链路无中断;协调器在一定时间周期内,检测接收到的每个节点信号,如果缺少某个节点的信息,则由协调器发送检测信号给这个节点,寻找中断节点并进行路由维护。也可以直接通过主控电脑的上位机软件手动发送检测信号给每个节点,从而检测每个节点的运行情况。nRF905的空中传输速率峰值为100 kb/s,有效传输速率为50 kb/s。通过上位机软件对整个网络进行连续数据传输试验,测试在本协议下的网络吞吐率。测试条件:200 m 空旷地带,分别测试一个节点至10节点网络中点对点,1跳、2跳、3跳情况下的吞吐率,数据包大小32 B。传输要求一个包到达目的节点后返回到应答表示传输完成,其吞吐率计算测得的网络吞吐率如图6所示。可以看出,网络中进行点对

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号