关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于nRF905的无线传感器网络节点的设计与实现

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

作者: 时间:2010-09-27 来源:网络 收藏

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。


后退次数(NB):NB的初始值为0,当设备有数据要传送时,经过一段后退时间(2BE-1)×100 μs后,检测CD,若检测到信道忙,则会再一次产生倒退时间。此时NB值会加1,NB值最大定义为4。当信道在经过4次的后退延迟时间后仍为忙,则放弃此次的传送,以避免过大开销。
尝试次数(CW):循环判断当前频道是否空闲,当判断到了一定次数后该频道依然空闲则跳出循环,开始传送数据,设初值为2。
后退指数(BE):初值设为2。
本设计中,CD信号为高时必须通过切换至standby模式来使CD信号复位,以保证下次CD信号的检测。
根据nRF905模块的时序可知,模块从standby模式切换至接收或发送模式的时间为650 μs,发送和接收模式之间的切换需要550 μs,切换时间远大于时隙及DIFS的值。因此,BE设置为2,最大为4。
2.2.2 数据传输
在进行数据传输时,源节点首先检查自己的缓存中是否有到目的节点的路由信息,如果没有,则先进行路由发现,与广播模式相同。如果有至目的节点的路由信息,则根据路由信息,先发送数据请求命令RTS。当目的节点接收到返回的允许发送命令CTS信号时,则表示已经建立了数据传输通道,由请求节点开始传输数据,传输完毕后,由目的节点发送DATA_ACK给源节点,表示数据发送完毕。其工作流程如图4所示。



关键词: 编解码器

评论


相关推荐

技术专区

关闭