当前位置:首页 > ZigBee中继传输技术研究及硬件实现(改)
兰州交通大学毕业设计(论文)
“Routing Capacity\。
路由请求命令帧:允许设备向其他在信号范围内的设备发送请求,以寻找一个指定的目的设备,并建立网络状态以使今后的消息能够更简洁有效的传输给该目标设备。其净荷包括的参数顺序如下:命令帧标识符、命令选项、路由请求标识符、目标地址、路径损耗。
路由响应命令帧:目标设备用其响应路由请求命令帧。
3.4.5基本路由算法
在ZigBee路由中,可以将节点分为两类:RN+和RN-。其中RN+是指具有足够的存储空间和能力执行AODVjr路由协议的节点,RN-是指其存储空间受限,不具有执行AODVjr路由协议的能力的节点,刚一收到一个分组后只能用Cluster—Tree算法处理。Cluster-Tree算法中,节点收到分组后可以立即将分组传输给下一跳节点,不存在路由发现过程,这样节点就不需要维护路由表,从而减少了路由协议的控制开销和节点能量消耗,并且降低了对节点存储能力的要求,降低了节点的成本:但由于Cluster-Tree建立的路由不一定是最优的,会造成分组传输时延较高,而且较小深度的节点,即靠近ZigBee协调点的节点,往往业务量较大,相对较大深度的节点业务量又比较小,这样就容易造成网络中通信流量分配不均衡。因而,ZigBee中允许RN+节点使用AODVjr去发现一条最优路径RN+节点收到分组后,可以发起AODVjr中的路由发现过程,找到一条通往目的节点的最优路径。
3.5 ZigBee路由算法的设计
通过上面的研究,在Cluster-Tree算法中,节点之间数据的发送只能按照父子关系进行,印当一个节点收到数据后发现该分组不是给自己的,则只能转发给它的父节点或者子节点,显然这并不一定是最优的路径,因此路由效率较低。另一方面,由于Cluster-Tree算法不需要维护路由表信息,并且无初始延迟,因此控制开销很低。而AODVjr算法具有路径寻优功能,能够获得最佳的路径,但需要路由表信息,并且有初始延迟,因此控制开销相对Cluster-Tree算法来说比较高。为了更进一步提高路由效率,达到低功耗、可靠性高的设计目标,本文采用Cluster-Tree算法和AODVjr算法相结合的ZBR(ZigBee Routing)算法,此算法思
29
兰州交通大学毕业设计(论文)
想汇聚了两种算法的优点,是两种算法的折衷:既具有AODVjr算法的路由寻优的能力,又具有Cluster-Tree算法的无初始延迟的优点。
3.5.1 ZBR算法的设计
ZBR算法设计思想如下:让具有路由功能的节点使用AODVjr算法去发现路由,这样这些节点就可以不按照父子关系而直接发送信息到其通信范围内的其他具有路由功能的节点,而不具有路由功能的节点仍然按照Cluster-Tree路由算法的思想去发送数据分组和控制分组。在ZBR算法中,把网络中的节点分成三种类型:RN+、RN-和RFD。其中RN+是指具有足够的存储空间和能力去执行AODVjr路由算法的节点,RN-是指其存储空间受限,不具有执行AODVjr算法路由算法的能力,只能用Cluster-Tree算法处理。另外Coordinator的路由算法跟RN+相同,而且Coordinator、RN+和RN-都是FFD,能给其他节点充当路由节点;终端节点(RFD)只能充当Cluster-Tree算法的叶子节点(Leaf Node),只能把数据交给父节点处理。在ZBR算法中,当RN+节点需要发送分组到网络中的某个节点而又没有通往目的节点的路由时,它会按照AODVjr算法发起路由发现过程,所不同的是在AODVjr算法中,节点都是RN+节点,每个节点处理RREQ的过程都一样;而在ZBR算法中,由于中间节点的类型不同,接收到RREQ时处理的过程也不一样,大致过程如下:
1.源节点首先向周围节点广播一个RREQ分组,如果收到RREQ的节点是一个RN-节点,它就按照Cluster-Tree算法转发此分组;如果收到RREQ的节点是一个RN+,则按照AODVjr算法广播RREQ过程继续广播RREQ,并创建反向路径,当RN+节点多次收到RREQ时,同样只响应第一个收到的RREQ,并且假如中间节点有到目的节点的路由,同样也不回复RREP。
2.当RREQ到达目的节点或者目的节点的父节点,此节点就向RREQ的源节点回复一个RREP分组(RN-节点也可以回复RREP分组,但无法记录路由信息),RREP应沿着已建立的反向路径向源节点传输,收到RREP的节点建立到目的节点的正向路径并更新相应的路由信息,然后就可以进行通信。
ZBR算法把节点分为RN+、RN-和RFD,在传输数据时,如果待发送数据的目标节点是自己的邻居节点,直接通信即可;反之,如果不是自己的邻居节点时,三种类型的节点处理数据包各不相同.
30
兰州交通大学毕业设计(论文)
RN-节点只能使用Cluster-Tree算法去处理收到的数据包,没有路由发现过程,而且也不需要维护路由表,从而减少了控制开销和节点能量消耗,并且降低了对节点存储能力的要求。但Cluster-Tree算法路径不一定是最优的,会造成分组传输时延较高,通信流量分配不均匀等现象,也就是深度小的节点通常要比深度大的节点处理的流量更多,这样就容易造成深度小的节点能量耗尽的更快,其结果就很可能导致节点死亡或者网络分割现象。因此不能利用RN·节点去寻找晟优路径,只能利用RN+节点去寻找。RN+节点不仅可以启动AODVjr算法,主动查找到目标节点的虽佳路由,而且可以扮演路由代理的角色,帮助其他节点查找路出。当RN+节点收到分组后,根据AODVjr路由算法路由发现过程,找到一条通往目的节点的最优路径。节点可以根据802 15A的MAC提供的LQI值,LQI的值越高表示链路质量越好。选择路由时考虑LQI指标的方法很多,综合考虑路由的各项性能指标,本文采用以下规则选择路径:选择一条通往目的节点的最短路径,当存在两条相同跳数的最短路径时,节点选择LQI值较高的那条路径。路由发现过程结束后,节点沿着刚刚建立的路由发送分组。采用AODVjr路由算法,使得网络的分组递交率得到提高.而且降低了分组传输时延。由于RFD节点不具备数据处理能力,因此只能把数据交给父节点处理。另外,RFD与RFD之间的通信必须通过FFD节点,当RFD接收到数据信息时,判断是否是属于自己的信息包,是的话就交给父节点处理,否则直接丢弃.
3.5.2路由维护
在数据传输中如果发生链路中断,将由中断链路的上游节点激活路由维护过程,节点在进行路由修复时,会将到达目的节点数据分组暂存或者丢弃。如果检测到链路失效的是RN+节点,首先缓存来自源节点的数据,然后广播一个RREQ,并将源节点地址设置为RN+节点自身地址,目的节点地址设置为传输失败的目的地址。收到RREQ的节点按照AODVjr算法路由发现过程转发此分组;如果收到RREQ的节点是目的节点或者是其子节点,它将回复一个RREP,发起路由发现过程的源节点收到RREP时路由修复成功,这时就将缓存的数据传给目的节点。如果在一定时间内没有收到RREP,此节点将向源节点发送RERR,由源节点重新发起路由发现过程。如果检测到链路失效的是RN-节点,由于RN-节点缺乏路由能力,那么将直接向源节点发送RERR,RRER的格式也仅包含一个不可
31
兰州交通大学毕业设计(论文)
达的目的节点,由源节点重建路由。如果RFD发现它与父节点之间的通信中断,将首先按照孤点方式尝试重新加入网络并恢复与原来父节点之间的通信。如果成功,则RFD节点重新和父节点建立连接;如果失败,节点将发起关联方式尝试通过新的父节点重新加入网络并利用新的网络地址进行通信(如图2.7)。如果节点找不到具有接受它的能力的父节点,它则不能重新加入网络。在这种情况下,需要人为干涉才能使此节点重新加入网络。
当一个协调器节点或路由节点收到数据帧时,假如此时不能建立网状路径的话,那么就直接用树状路径代替。利用Cskip地址分配机制,可以根据目的节点的网络地址来确定该数据帧经过哪些分支路径。
ZigBee网络实现数据传输主要依赖具体路由算法,路径的选择又主要依赖各 个链路的路由成本。本章重点对ZigBee的路由算法进行研究与设计,在研究网 络层的地址分配机制的基础上,深入研究了Cluster-Tree路由算法和AODV算法,之后提出改进的AODVjr算法,在此基础上对ZigBee路由算法-ZBR算法进行设计
32
共分享92篇相关文档