一种基于Zigbee网络的短数据报文发送方法及装置与流程

文档序号:12699371阅读:363来源:国知局
一种基于Zigbee网络的短数据报文发送方法及装置与流程

本发明涉及网络领域,尤其涉及一种基于Zigbee网络的短数据报文发送方法及装置。



背景技术:

ZigBee是一种由Zigbee联盟制定的面向低速率无线传感器的网络标准,其物理层和数据链路层使用IEEE802.15.4标准,而网络层和应用层则由Zigbee联盟定义。与其无线通信网络技术相比,Zigbee具有低功耗、低复杂度、自组织等特点。具有路由功能的节点可以采用两种数据路由方式:

(1)AODV:Ad-Hoc On-Demand Distance Vector(按需距离矢量路由)

(2)Cluster-Tree algorithm(树型网络结构路由)

其中AODV路由协议是一种按需路由协议,利用扩展环搜索的办法来限制搜索发现过的目的节点的范围,支持组播,可以实现在ZigBee节点间动态的,自发的路由,使节点很快的获得通向所需目的地的路由。Cluster-Tree算法包括地址的分配(configuration of addresses)与寻址路由两部分(addresses routing)。包括子节点的16位网络短地址的分配,以及根据目的节点的网络地址来计算下一跳的算法。

Cluster-Tree算法的特点在于使不具有路由功能的节点间通过与各自的父节点间的通信仍然可以发送数据分组和控制分组,但它的缺点是效率不高。为了提高效率,ZigBee中允许具有路由功能的节点使用AODVjr算法去发现路由,让具有路由功能的节点可以不按照父子关系而直接发送信息到其通信范围内的其他节点。

对于一个具有路由能力的节点,当接收到一个从网络层的更高层发出的发送数据帧的请求,且路由表中没有和目的节点对应的条目时,它就会发起路由发现过程。源节点首先创建一个路由请求分组(RREQ),并使用多播的方式向周围节点进行广播。在寻路建立相应的路由信息之后,再发送相应的数据报文给目的节点。这里源节点有要发送两次报文,一次是路由请求报文,一次是数据报文,这样的短数据报文如果单独传送,需要加上头部信息,因信息内容短,有效载荷比较低,通信资源的浪费导致通信效率比较低。



技术实现要素:

为解决上述技术问题,本发明提供一种基于Zigbee网络的短数据报文发送方法,能够在zigbee设备寻找路由的时候,直接将要发送的短数据报文携带在路由请求报文中,以达到减少发送次数,提高响应时间的目的。

本发明提供的技术方案如下:

本发明公开了一种基于Zigbee网络的短数据报文发送方法,包括步骤:S100、从源节点向周围邻近的节点广播路由请求报文;S200、当任意一个节点接收到所述路由请求报文时,判断当前节点是否为目标节点;若是,执行下一步;S300、若当前节点为目标节点,则进一步判断所述路由请求报文是否携带短数据报文;S400、当判断所述路由请求报文携带有所述短数据报文时,解析所述路由请求报文,获取所述短数据报文。

本发明是在Zigbee设备寻找路由的时候,直接将要发送的短数据报文携带在路由请求报文中,以达到减少发送次数,提高响应时间的目的。

进一步优选的,所述步骤S100之前还包括步骤:S000、对路由请求报文进行修改,将所述路由请求报文的头部的帧控制域增加标志位;所述标志位用于标记所述路由请求报文中是否携带有短数据报文。

本发明通过对原先的路由请求报文进行修改,使其能够捎带短数据报文,当寻路成功后,则短数据报文到达目标节点,从而提高数据发送的响应时间。

进一步优选的,所述步骤S300“判断所述路由请求报文是否携带短数据报文”进一步包括步骤:S310、解析所述路由请求报文,获得所述路由请求报文的头部的帧控制域中的标志位;S320、判断所述标志位的值是否为预设值,若是,则所述路由请求报文携带有短数据报文。

本发明通过对路由请求报文头部的帧控制域进行修改,增加用于标记是否携带有短数据报文的标志位,在现有报文格式的基础上改动较小,便于目标节点判断、分离和解析其中的短数据报文。

进一步优选的,所述步骤S200还包括步骤:S500、若当前节点不是目标节点,则向周围邻近的节点广播所述路由请求报文。

进一步优选的,所述步骤S400还包括步骤:S600、当判断所述路由请求报文不携带所述短数据报文时,从当前节点向发起节点反馈路由回应报文。

本发明还公开一种基于Zigbee网络的短数据报文发送装置,包括:报文广播模块,用于从源节点向周围邻近的节点广播路由请求报文;第一判断模块,用于当任意一个节点接收到所述路由请求报文时,判断当前的节点是否为目标节点;第二判断模块,用于当判断当前的节点为目标节点,进一步判断所述路由请求报文是否携带短数据报文;处理模块,用于当判断所述路由请求报文携带有所述短数据报文时,解析所述路由请求报文,获取所述短数据报文。

进一步优选的,还包括:报文修改模块,用于对路由请求报文进行修改,将所述路由请求报文的头部的帧控制域增加标志位;所述标志位用于标记所述路由请求报文中是否携带有短数据报文。

进一步优选的,所述第二判断模块进一步包括:解析子模块,用于解析所述路由请求报文,获得所述路由请求报文的头部的帧控制域中的标志位;标志位判断子模块,用于判断所述标志位的值是否为预设值,当所述标志位的值为预设值时,则所述路由请求报文携带有短数据报文。

进一步优选的,所述报文广播模块还用于若当前的节点不是目标节点时,通过当前的节点向周围邻近的节点广播所述路由请求报文。

进一步优选的,还包括:报文反馈模块,用于当判断所述路由请求报文不携带所述短数据报文时,从当前节点向发起节点反馈路由回应报文。

与现有技术相比,本发明在原先的Zigbee路由请求报文中的头部和载荷之间,加入稍带的将要发送给目标节点的短数据报文,短数据报文和路由请求报文使用相同的报文头,并以多播的方式向周围邻近的节点广播,当寻路成功后,这个路由请求报文已经发送到了目标节点,目的节点直接从中取出短数据报文来解析处理,从而减少报文发送次数,提高数据发送的响应时间。

附图说明

下面将以明确易懂的方式,结合附图说明优选实施方式,对本发明予以进一步说明。

图1为本发明一种基于Zigbee网络的短数据报文发送方法的主要步骤示意图;

图2为本发明一种基于Zigbee网络的短数据报文发送方法的一个实施例的步骤示意图;

图3为本发明一种基于Zigbee网络的短数据报文发送方法的流程图;

图4为本发明一种基于Zigbee网络的短数据报文发送装置的主要组成示意图;

图5为本发明一种基于Zigbee网络的短数据报文发送装置的完整组成示意图。

附图标号说明:

100、报文广播模块,200、第一判断模块,300、第二判断模块,301、解析子模块,302、标志位判断子模块,400、处理模块,500、报文修改模块,600、报文反馈模块。

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。

图1为本发明一种基于Zigbee网络的短数据报文发送方法的主要步骤示意图,如图1所示,一种基于Zigbee网络的短数据报文发送方法,包括步骤:S100、从源节点向周围邻近的节点广播路由请求报文;S200、当任意一个节点接收到所述路由请求报文时,判断当前节点是否为目标节点;若是,执行下一步;S300、若当前节点为目标节点,则进一步判断所述路由请求报文是否携带短数据报文;S400、当判断所述路由请求报文携带有所述短数据报文时,解析所述路由请求报文,获取所述短数据报文。

具体的,对于一个具有路由能力的节点,当接收到一个从网络层的更高层发出的发送数据帧的请求,且路由表中没有和目的节点对应的条目时,它就会发起路由发现过程。源节点首先创建一个路由请求分组(RREQ)即路由请求报文,并使用多播(Multi.Broadcast)的方式向周围节点进行广播。在寻路建立相应的路由信息之后,再发送相应的数据报文给目的节点。这里源节点有要发送两次报文,一次是路由请求报文,一次是数据报文。如果需要发送的数据报文是短数据报文,其信息内容较短,按照传统的方式加上头部信息之后单独传送,则有效载荷比较低,为传送一个短数据报文需要发送两次,造成了通信资源的浪费,从而导致通信效率比较低。

而本发明是在传送短数据报文时,先在Zigbee设备寻找路由的时候,直接将要发送的短数据报文携带在路由请求报文中,当路径寻找成功时,短数据报文直接到达目标节点,从而减少发送次数,提高数据传送的响应时间。

图2为本发明一种基于Zigbee网络的短数据报文发送方法的一个实施例的步骤示意图。如图2所示,优选的,所述步骤S100之前还包括步骤:S000、对路由请求报文进行修改,将所述路由请求报文的头部的帧控制域增加标志位;所述标志位用于标记所述路由请求报文中是否携带有短数据报文。

具体的,在原先的zigbee路由发现报文中的头部和载荷之间,加入稍带的将要发送给目的地址的短报文,如表1所示,Piggyback short message即为短数据报文存放位置。

表1

本发明通过对原先的路由请求报文进行修改,使其能够捎带短数据报文,当寻路成功后,则短数据报文到达目标节点,从而提高数据发送的响应时间。

优选的,如图2所示,所述步骤S300“判断所述路由请求报文是否携带短数据报文”进一步包括步骤:S310、解析所述路由请求报文,获得所述路由请求报文的头部的帧控制域中的标志位;S320、判断所述标志位的值是否为预设值,若是,则所述路由请求报文携带有短数据报文。

表2

具体的,原有的路由请求报文的帧控制域如表2所示,本发明对其进行修改,修改报文头部的Frame Control Field域,得到修改后的路由请求报文,如表3所示。

表3

如表3所示,在帧控制域增加一个Piggyback Flag,当值为1时,路由请求报文中后面携带有路由请求报文对应的短数据报文,当值为0时,路由请求报文中不携带短数据报文。

本发明通过对路由请求报文头部的帧控制域进行修改,增加用于标记是否携带有短数据报文的标志位,在现有报文格式的基础上改动较小,便于目标节点判断、分离和解析其中的短数据报文。

优选的,所述步骤S200还包括步骤:S500、若当前节点不是目标节点,则向周围邻近的节点广播所述路由请求报文。

优选的,所述步骤S400还包括步骤:S600、当判断所述路由请求报文不携带所述短数据报文时,从当前节点向发起节点反馈路由回应报文。

具体的,若当前路由请求报文不携带短数据报文,则按照现有技术中向发起节点反馈路由回应报文,用于源节点与目标节点建立路径。

图3为本发明一种基于Zigbee网络的短数据报文发送方法的流程图。如图3所示,本发明的具体工作流程如下:

30、开始。

31、从源节点向周围邻近的节点广播路由请求报文。

32、任意一个节点接收到路由请求报文时,判断当前节点是否为目标节点;若是,执行步骤33;否则,执行步骤35。

33、进一步判断所述路由请求报文是否携带短数据报文;若是,执行步骤34;否则,执行步骤36。

34、解析所述路由请求报文,获取所述短数据报文。

35、向周围邻近的节点广播所述路由请求报文。

36、从当前节点向发起节点反馈路由回应报文。

图4为本发明一种基于Zigbee网络的短数据报文发送装置的主要组成示意图。如图4所示,一种基于Zigbee网络的短数据报文发送装置,包括:报文广播模块100,用于从源节点向周围邻近的节点广播路由请求报文;第一判断模块200,用于当任意一个节点接收到所述路由请求报文时,判断当前的节点是否为目标节点;第二判断模块300,用于当判断当前的节点为目标节点,进一步判断所述路由请求报文是否携带短数据报文;处理模块400,用于当判断所述路由请求报文携带有所述短数据报文时,解析所述路由请求报文,获取所述短数据报文。

本发明是在传送短数据报文时,先在Zigbee设备寻找路由的时候,直接将要发送的短数据报文携带在路由请求报文中,当路径寻找成功时,短数据报文直接到达目标节点,从而减少发送次数,提高数据传送的响应时间。

图5为本发明一种基于Zigbee网络的短数据报文发送装置的完整组成示意图。优选的,如图5所示,还包括:报文修改模块500,用于对路由请求报文进行修改,将所述路由请求报文的头部的帧控制域增加标志位;所述标志位用于标记所述路由请求报文中是否携带有短数据报文。

优选的,如图5所示,所述第二判断模块300进一步包括:解析子模块301,用于解析所述路由请求报文,获得所述路由请求报文的头部的帧控制域中的标志位;标志位判断子模块302,用于判断所述标志位的值是否为预设值,当所述标志位的值为预设值时,则所述路由请求报文携带有短数据报文。

优选的,所述报文广播模块100还用于若当前的节点不是目标节点时,通过当前的节点向周围邻近的节点广播所述路由请求报文。

优选的,如图5所示,还包括:报文反馈模块600,用于当判断所述路由请求报文不携带所述短数据报文时,从当前节点向发起节点反馈路由回应报文。

需要说明的是,本装置中各模块之间的信息交互、执行过程等内容与上述方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

本发明在原先的Zigbee路由请求报文中的头部和载荷之间,加入稍带的将要发送给目标节点的短数据报文,短数据报文和路由请求报文使用相同的报文头,并以多播的方式向周围邻近的节点广播,当寻路成功后,这个路由请求报文已经发送到了目标节点,目的节点直接从中取出短数据报文来解析处理,从而减少报文发送次数,提高数据发送的响应时间。

应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1