用于无线网络的父节点装置、终端装置及其数据传输方法与流程

文档序号:13984875阅读:166来源:国知局
用于无线网络的父节点装置、终端装置及其数据传输方法与流程

本发明涉及无线数据传输领域。更具体地,本发明涉及一种用于无线网络的父节点装置、终端装置及其数据传输方法。



背景技术:

目前存在多种短距离无线通信技术。短距离无线通信技术的特点是近距离、低功耗、低速率、低成本。可将该技术嵌入各种移动装置或终端装置,以满足例如无线传感器网络的对于低成本、低功耗的需求。

在诸如zigbee网络的无线通信网络中存在这种情况,在终端装置进入休眠状态时,终端装置的休眠状态可能持续几十分钟。在终端装置休眠期间,父节点装置的缓存中的数据无法被发送到终端装置,而缓存是有限的,随着缓存中的数据增多,缓存中的数据将溢出,导致数据丢失。



技术实现要素:

本发明的示例性实施例在于提供一种用于无线网络的父节点装置、终端装置及其数据传输方法,以进行例如非信标(non-beacon)zigbee网络的间接数据传输。

根据本发明的示例性实施例,提供一种用于无线网络的间接数据发送方法,包括:在从终端装置接收轮询数据请求后,根据所述轮询数据请求的接收时刻计算终端装置的下一个轮询数据请求的预计到达时间;当网络层模块中有待发送数据时,在所述预计到达时间的预定时长前的时间点将待发送数据发送到mac层模块的缓存;在接收到所述下一个轮询数据请求时,将指示mac层模块的缓存中有待发送数据的应答包和所述待发送数据发送给终端装置。通过所述方法可在接收到下一个轮询数据请求前将待发送数据发送到mac层模块的缓存,以便在接收到所述下一个轮询数据请求时可自动、快速、及时地进行响应以将待发送数据发送给终端装置,由此可避免将过多数据存放于mac层模块的缓存,可提高父节点装置的响应速度。

可选地,所述计算终端装置的下一个轮询数据请求的预计到达时间的步骤包括:计算接收终端装置的连续两个轮询数据请求的时间间隔;根据所述时间间隔和上一个轮询数据请求的到达时间,获取所述预计到达时间。通过所述步骤,可快速、准确地计算出预计到达时间。

可选地,所述在所述预计到达时间的预定时长前的时间点将待发送数据发送到mac层模块的缓存的步骤包括:创建数据发送列表,其中,所述数据发送列表包括待发送数据以及与待发送数据对应的预设发送时间;将所述预设发送时间更新为所述时间点;当所述时间点到达时,将对应的待发送数据发送到mac层模块的缓存。通过所述步骤,可统一管理待发送数据的传输,及时调整待发送数据的发送时间,提高父节点装置的处理速度。

可选地,所述无线网络是非信标zigbee网络,所述父节点装置是zigbee协调器或zigbee路由器。由此可见,所述方法的适用范围广泛,兼容性强。

根据本发明的示例性实施例,提供一种用于无线网络的父节点装置,包括:网络层模块被配置为在从终端装置接收轮询数据请求后,根据所述轮询数据请求的接收时刻计算终端装置的下一个轮询数据请求的预计到达时间,并且当网络层模块中有待发送数据时,在所述预计到达时间的预定时长前的时间点将待发送数据发送到mac层模块的缓存;mac层模块,被配置为在接收到所述下一个轮询数据请求时,将指示mac层模块的缓存中有待发送数据的应答包和所述待发送数据发送给终端装置。

可选地,所述网络层模块包括:时间间隔计算模块,被配置为计算接收终端装置的连续两个轮询数据请求的时间间隔;预计到达时间获取模块,被配置为根据所述时间间隔和上一个轮询数据请求的到达时间,获取所述预计到达时间。

可选地,所述网络层模块包括:发送列表管理模块,被配置为创建数据发送列表,其中,所述数据发送列表包括待发送数据以及与待发送数据对应的预设发送时间;并且将所述预设发送时间更新为所述时间点;定时发送模块,被配置为当所述时间点到达时,将对应的待发送数据发送到mac层模块的缓存。

可选地,所述无线网络是非信标zigbee网络,所述父节点装置是zigbee协调器或zigbee路由器。

根据本发明的示例性实施例,提供一种用于无线网络的间接数据接收方法,包括:当从父节点装置接收指示有待发送数据的应答包和待发送数据时,根据预设条件修改发送轮询数据请求的时间间隔;以修改后的时间间隔向父节点装置发送至少三个轮询数据请求。通过所述方法,可及时调整发送轮询数据请求的时间间隔,以便以对应的速度从父节点装置接收待发送数据,从而可提高父节点装置和终端装置之间的数据传输性能。

可选地,在以修改后的时间间隔向父节点装置发送至少三个轮询数据请求之后,所述方法还包括:当从父节点装置接收指示无待发送数据的应答包时,将修改后的时间间隔恢复为修改前的时间间隔,并且使终端装置进入休眠状态。通过所述步骤,可恢复发送轮询数据请求的速率,减轻父节点装置的负担,并且可进入休眠状态以减少能耗。

根据本发明的示例性实施例,提供一种用于无线网络的终端装置,包括:速率调整模块,被配置为当从父节点装置接收指示有待发送数据的应答包和待发送数据时,根据预设条件修改发送轮询数据请求的时间间隔;请求发送模块,被配置为以修改后的时间间隔向父节点装置发送至少三个轮询数据请求。

可选地,速率调整模块还被配置为当从父节点装置接收指示无待发送数据的应答包时,将修改后的时间间隔恢复为修改前的时间间隔,所述终端装置还包括休眠模块,被配置为在将修改后的时间间隔恢复为修改前的时间间隔时,使终端装置进入休眠状态。

根据本发明的示例性实施例,提供一种计算机可读存储介质,存储有计算机程序,其中,所述计算机程序被配置为使计算机的处理器执行上述方法。

根据本发明示例性实施例的方法和装置,通常将大量待发送数据存放于支持大量资源(例如,数据)存储和具有低优先级(例如,与调度有关的优先级)的网络层模块;而且在计算出的终端装置的下一个轮询数据请求的预计到达时间之前将数据存放到低资源(例如,缓存小)和具有高优先级的mac层模块,在父节点装置接收到轮询数据请求时,可自动、快速地响应轮询数据请求,将用于指示有待发送给终端装置的待发送数据的应答包以及所述待发送数据发送给终端装置,由此可及时地把mac层模块的缓存中的数据发送给终端装置。在这种情况下,可在终端装置进入休眠状态前将数据发送给终端装置,避免终端装置进入休眠状态后父节点装置的缓存存储大量要发送给终端装置的数据的情况的发生,尤其适用于缓存资源不足(例如,mac层模块的缓存小)或者采用分离式mac层模块的情况,可提高间接数据传输效率。在父节点装置的mac层模块的缓存存储数据时间短,或者所述缓存小的情况下,由于可避免当这样的缓存存储过多的数据时发生数据丢失等情况,因此可降低数据丢失率,从而可提高父节点装置的间接数据传输性能。

将在接下来的描述中部分阐述本发明总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本发明总体构思的实施而得知。

附图说明

通过下面结合示例性地示出实施例的附图进行的描述,本发明示例性实施例的上述和其他目的和特点将会变得更加清楚,其中:

图1示出根据本发明示例性实施例的父节点装置的框图;

图2示出根据本发明示例性实施例的用于无线网络的间接数据发送方法的流程图;

图3示出根据本发明示例性实施例的用于无线网络的终端装置的框图;

图4示出根据本发明示例性实施例的用于无线网络的间接数据接收方法的流程图;

图5示出根据本发明示例性实施例的终端装置从唤醒状态切换到休眠状态的流程图;

图6示出根据本发明示例性实施例的父节点装置进行间接数据发送的流程图。

具体实施方式

现将详细参照本发明的实施例,所述实施例的示例在附图中示出,其中,相同的标号始终指的是相同的部件。以下将通过参照附图来说明所述实施例,以便解释本发明。

在以下说明中,以zigbee网络作为示例来对本发明的实施例进行说明,但是应理解,本发明的实施例的技术方案不限于zigbee网络,还可应用于具有与zigbee网络具有相同或相似机制的近距离无线通信网络等。

zigbee协议规范r21版本针对终端装置(enddevice)引入保持连接(keepalive)的机制。在此基础上,当诸如协调器(coordinator)或者路由器(router)的父节点装置支持mac层模块的轮询(poll)机制时,终端装置可定期向父节点装置发送轮询数据请求以便表示与父节点装置正常连接。父节点装置可针对每个轮询数据请求回应一个应答包。当父节点装置在超时时间内没有收到终端装置的轮询数据请求时,父节点装置会认为终端装置已经离网,或者当终端装置没有按时收到父节点装置的应答包,则可认为与父节点装置断开,终端装置需要重新选择入网。

另外,支持休眠模式(sleepmode)的终端装置可通过轮询数据请求从父节点装置获取数据。当父节点装置收到轮询数据请求时,如果发现缓存(例如,mac层模块的缓存)中有数据,则会通过将轮询应答(pollack)中的pendingbit设置为1以将存在要发送的数据(例如,以应答包的形式)通知给终端装置,并且将所述要发送的数据发送到终端装置。

对于支持休眠模式的终端装置,终端装置入网后,可通过超时(timeout)请求与父节点装置协商用于确定是否正常连接的超时时间,例如,在超时时间内,父节点装置接收到终端装置的轮询数据请求时,表示连接正常。超时时间可包括以下的15个值:10秒、2分钟、4分钟、8分钟、16分钟、32分钟、64分钟、128分钟、256分钟、512分钟、1024分钟、2048分钟、4096分钟、8192分钟、以及16384分钟。

另外,对于父节点装置来说,网络层模块向mac层模块(例如,mac层模块的缓存)发送数据的时间可能不固定。对于终端装置,在超时时间内,终端装置存在两种状态:休眠状态(终端装置关闭射频(radiofrequency,rf)接收功能以节省电能)和唤醒状态。根据本发明实施例的用于zigbee网络的数据传输方法能够限定网络层模块向mac层模块的缓存发送数据的时间,使终端装置以合适的方式在休眠状态和唤醒状态之间切换,以提高数据传输效率。

图1示出根据本发明示例性实施例的父节点装置的框图。

参照图1,父节点装置100包括网络层模块101和mac层模块102,还可在网络层模块101和mac层模块102之间设置控制模块(未示出)用于对网络层模块101和mac层模块102之间的数据通信进行控制。网络层模块101被配置为从终端装置接收轮询数据请求,根据所述轮询数据请求的接收时刻计算终端装置的下一个轮询数据请求的预计到达时间,并且在所述预计到达时间的预定时长(如100ms)前的时间点将待发送数据发送到mac层模块102的缓存。

作为示例,网络层模块101包括:时间间隔计算模块(未示出),被配置为计算接收终端装置的连续两个轮询数据请求的时间间隔;预计到达时间获取模块(未示出),被配置为根据所述时间间隔和上一个轮询数据请求的到达时间,获取所述预计到达时间。

作为示例,网络层模块101还包括:时间设置模块(未示出),其中,当首次接收到终端装置的轮询数据请求时,时间设置模块将当前时间设置为第一时间;当非首次接收到终端装置的轮询数据请求时,时间设置模块将当前时间减去第一时间以得到所述时间间隔,将当前时间加上所述时间间隔以得到所述预计到达时间,将当前时间设置为第一时间,并且将所述预计到达时间设置为第二时间。例如,可通过为邻居表设置两个属性last_poll和next_poll来分别记录所述第一时间和第二时间。

作为示例,网络层模块101还包括:发送列表管理模块(未示出)和定时发送模块(未示出)。发送列表管理模块被配置为:创建数据发送列表(或数据发送队列),其中,数据发送列表可保存需要在预设发送时间从网络层模块101发送给mac层模块102的缓存的数据包(例如,上文提及的待发送数据),例如,数据发送列表包括待发送数据以及与待发送数据对应的预设发送时间(相邻两个预设发送时间之间的默认的间隔为上文提及的超时时间的三分之一,这是协议规范建议的最长时间间隔);将所述预设发送时间更新为上文提及的预计到达时间的预定时长前的时间点。定时发送模块被配置为当所述时间点到达时,将与所述时间点对应的待发送数据发送到mac层模块102的缓存。例如,定时发送模块以例如50毫秒的时间间隔定期检查数据发送列表,当所述时间点到达时,将与所述时间点对应的待发送数据发送到mac层模块102的缓存。此时,发送列表管理模块还可对已经发送到所述缓存的待发送数据进行标记(例如标记为已发送),以避免重复发送。

mac层模块102被配置为在网络层模块101接收到所述下一个轮询数据请求时将指示mac层模块102的缓存中有待发送数据的应答包发送给终端装置,并且将所述待发送数据发送给终端装置。例如,以应答包的形式发送待发送数据。

作为示例,mac层模块102在将待发送数据发送给终端装置之后,向网络层模块101发送成功确认消息。在网络层模块101接收到成功确认消息时,发送列表管理模块将对应的待发送数据从数据发送列表中移除。此外,如果当预设时间(例如,所述预计到达时间)到达时未收到终端装置的轮询数据请求,则可认为数据发送失败。在数据发送失败时,可将数据发送列表中标记为已发送的数据的标记清除。还可对数据发送失败的次数进行统计,在数据发送失败的次数达到预设次数时,可将对应数据从数据发送列表中移除。

作为示例,应答包可包括轮询应答(pollack),可通过轮询应答的标志位(例如,pendingbit)来表示mac层模块的缓存中是否包括向终端装置发送的待发送数据。例如,pendingbit为1时表示存在待发送数据,pendingbit为0时表示不存在待发送数据。

作为示例,所述无线网络是非信标zigbee网络,所述父节点装置是zigbee协调器或zigbee路由器。所述无线网络遵从ieee802.15.4标准。

图2示出根据本发明示例性实施例的用于无线网络的间接数据发送方法的流程图。

参照图2,在步骤s201,从终端装置接收轮询数据请求。例如,至少接收三个轮询数据请求,前两个轮询数据请求可用于计算接收到轮询数据请求的时间间隔,可在接收到第三个轮询数据请求时发送应答包。

在步骤s202,根据所述轮询数据请求的接收时刻计算终端装置的下一个轮询数据请求的预计到达时间。

作为示例,可通过如下操作计算预计到达时间:计算接收终端装置的连续两个轮询数据请求的时间间隔,根据所述时间间隔和上一个轮询数据请求的到达时间,获取所述预计到达时间。

作为示例,还可通过如下操作计算预计到达时间:当首次接收到终端装置的轮询数据请求时,将当前时间设置为第一时间;当非首次接收到终端装置的轮询数据请求时,将当前时间减去第一时间以得到所述时间间隔,将当前时间加上所述时间间隔以得到所述预计到达时间;将当前时间设置为第一时间,并且将所述预计到达时间设置为第二时间。例如,可通过为邻居表设置两个属性last_poll和next_poll来分别记录所述第一时间和第二时间。

在步骤s203,当网络层模块中有待发送数据时,在所述预计到达时间的预定时长前的时间点将待发送数据发送到mac层模块的缓存。例如,在所述预计到达时间的100ms前的时间点将待发送数据发送给mac层模块的缓存。

作为示例,步骤s203可具体包括:创建数据发送列表(或数据发送队列),其中,所述数据发送列表包括待发送数据以及与待发送数据对应的预设发送时间(相邻两个预设发送时间之间的默认的间隔为上文提及的超时时间的三分之一,这是协议规范建议的最长时间间隔);将所述预设发送时间更新为上文提及的预计到达时间的预定时长前的时间点;当所述时间点到达时,将与所述时间点对应的待发送数据发送到mac层模块的缓存。例如,以例如50毫秒的时间间隔定期检查数据发送列表,当所述时间点到达时,将与所述时间点对应的待发送数据发送到mac层模块的缓存。此时,还可对已经发送到所述缓存的待发送数据进行标记(例如标记为已发送),以避免重复发送。

在步骤s204,在接收到所述下一个轮询数据请求时,将指示mac层模块的缓存中有待发送数据的应答包发送给终端装置,并且将所述待发送数据发送给终端装置。例如,以应答包的形式发送待发送数据。也就是说,当有待发送数据时,可先后向终端装置发送两个应答包,即:指示有待发送数据的应答包和包括待发送数据的应答包。

作为示例,在将待发送数据发送给终端装置时,将对应的待发送数据从数据发送列表中移除。此外,当预设时间(例如,所述预计到达时间)到达时未收到终端装置的轮询数据请求,则可认为数据发送失败。在数据发送失败时,可将数据发送列表中标记为已发送的数据的标记清除。可对数据发送失败的次数进行统计,在数据发送失败次数达到预设次数时,可将对应数据从数据发送列表中移除。

作为示例,应答包可包括轮询应答,可通过轮询应答的标志位(例如,pendingbit)来表示是否存在向终端装置发送的待发送数据。例如,pendingbit为1时表示存在要发送的数据,pendingbit为0时表示不存在要发送的数据。

图3示出根据本发明示例性实施例的用于无线网络的终端装置的框图。

参照图3,终端装置300包括:速率调整模块301和请求发送模块302。

速率调整模块301被配置为当从父节点装置接收指示有待发送数据的应答包和待发送数据时,根据预设条件修改发送轮询数据请求的时间间隔。请求发送模块302被配置为以修改后的时间间隔向父节点装置发送至少三个轮询数据请求。预设条件可根据用户需要来设置,可以是时间段,例如,白天缩短时间间隔,晚上增加时间间隔。当缩短时间间隔时,可更加及时、快速地获取待发送给终端装置的数据。

作为示例,速率调整模块301还被配置为当从父节点装置接收指示无待发送数据的应答包时,将修改后的时间间隔恢复为修改前的时间间隔。所述终端装置还包括休眠模块(未示出),被配置为在将修改后的时间间隔恢复为修改前的时间间隔时,使终端装置进入休眠状态

图4示出根据本发明示例性实施例的用于无线网络的间接数据接收方法的流程图。

参照图4,在步骤401,以预定的时间间隔向父节点装置发送轮询数据请求。在步骤402,从父节点装置接收指示有待发送数据的应答包和待发送数据。在步骤403,根据预设条件修改发送轮询数据请求的时间间隔。在步骤404,以修改后的时间间隔向父节点装置发送至少三个轮询数据请求。当根据预设条件修改发送轮询数据请求的时间间隔之后,例如,缩短时间间隔之后,终端装置可在更短的时间内从父节点装置获取数据。在父节点装置的缓存中没有数据时,即应答包指示没有待发送数据时,终端装置可将修改过的时间间隔恢复为修改前的时间间隔,并且可进入休眠状态。

作为示例,预设条件可根据用户需要来设置,可以是时间段,例如,白天缩短时间间隔,晚上增加时间间隔。

图5示出根据本发明示例性实施例的终端装置从唤醒状态切换到休眠状态的流程图。

参照图5,在步骤s501,终端装置处于唤醒状态。在步骤s502,确定是否修改发送轮询数据请求的时间间隔。例如,在唤醒终端装置之后(例如,通过轮询数据请求)快速查询父节点装置是否有待发送数据,当如前文所述的将轮询应答中的pendingbit为1(即存在待发送数据),并且满足预设条件时,可修改所述时间间隔。当修改了时间间隔时,在步骤s503至步骤s505,先后发送三个轮询数据请求,前两个轮询数据请求用于使父节点装置确定新的时间间隔,父节点装置可在接收到第三个轮询数据请求时,发送待发送数据。在步骤s506,确定是否从父节点装置接收到待发送数据,如果接收到待发送数据,则返回步骤s502,如果未接收到待发送数据,则在步骤s507,使终端装置进入休眠状态。在步骤s502,根据业务逻辑需要修改发送轮询数据请求的时间间隔(例如,使时间间隔变大或者变小)。优选地,为了及时的获取数据,可将所述时间间隔变小。

此外,可为终端装置设置唤醒时间,终端装置可包括唤醒模块。唤醒模块被配置为在唤醒时间到达时唤醒终端装置。

以上示例性实施例描述了用于无线网络的间接数据发送方法、间接数据接收方法、父节点装置以及终端装置,这仅仅是示例。

一般来说,终端装置的休眠时间间隔(例如,先后两次进入休眠状态的时间点之间的时间差的绝对值)和正常发送轮询数据请求的发送间隔(例如,先后发送两个轮询数据请求的时间点之间的时间差的绝对值)是相同的(记为t1),而且这个t1可能会很长。

在这种情况下,由于父节点装置对于一个轮询数据请求仅发送一个待发送数据,因此如果父节点装置需要将三个待发送数据发送给终端装置,则终端装置至少需要发送三个轮询数据请求。这样,三个待发送数据全部被发送给终端装置所需要的总时间为3×t1。

根据上述实施例,在发送了第一个轮询数据请求之后,终端装置获知父节点装置有待发送数据并且接收到第一个待发送数据。此时,经过的总时间是t1。

然后,终端装置以时间间隔t2发送三次轮询数据请求。前两个轮询数据请求用于使父节点装置确定新的时间间隔,并且提前将待发送数据发送到mac层模块的缓存。在接收到第三个轮询数据请求时,将第二个待发送数据发送给终端装置。此时,经过的总时间为t1+3×t2。

接下来,终端装置发送第四个轮询数据请求,并接收第三个待发送数据。此时,经过的总时间为t1+4×t2。

如上所述,在未修改时间间隔的情况下,接收三个待发送数据所需要的时间为3×t1,在修改时间间隔的情况下,接收三个待发送数据所需要的时间为t1+4×t2。当t1远大于t2的情况下,可显著提高数据获取速度。

此后,终端装置发送第五个轮询数据请求,并通过应答包获知不存在要发送给终端装置的待发送数据,此时,终端装置可进入休眠状态。

图6示出根据本发明示例性实施例的父节点装置进行间接数据发送的流程图。

如图6所示,在步骤s602和s603,等待接收轮询数据请求,并且判断是否存在轮询数据请求。当存在轮询数据请求时,在步骤s604判断是否首次接收到轮询数据请求,当首次接收到轮询数据请求时,在步骤s611,将邻居表的属性last_poll更新为当前时间,然后返回步骤s602以等待轮询数据请求;当非首次接收到轮询数据请求时,进行步骤s605至步骤s607,将当前时间减去last_poll以得到时间间隔,将当前时间加上时间间隔得到预计到达时间,将last_poll更新为当前时间,将邻居表的属性next_poll更新为预计到达时间。然后,在步骤s608和s609,查询数据发送列表(或称为间接数据发送列表),以确定是否存在要发送给终端装置的间接数据(即,需要发送到mac层模块的缓存以便发送给终端装置的数据);如果是,则将数据发送列表中对应数据的预设发送时间更新为预计到达时间的预定时长前的时间点;如果否,则返回步骤s602以等待轮询数据请求。

如上述实施例所述,终端装置可修改发送轮询数据请求的时间间隔以提高间接数据传输速度。父节点装置可预先将数据发送到缓存,以便及时将数据发送给终端装置,从而减轻缓存的负担,父节点装置还可使用分离式mac层模块,从而提高了兼容性。

在本发明的实施例中,父节点装置可将待发送数据提前发送给mac层模块的缓存,以便在接收到终端装置的轮询数据请求后及时将待发送数据发送给终端装置,在接收到所述轮询数据请求前将待发送数据发送给mac层模块的缓存,可使终端装置不进入休眠状态,以便接收待发送数据,从而能够及时有效地将待发送数据发送给终端装置,提高了数据发送效率。终端装置在接收到指示有待发送数据的应答包后可提高发送轮询数据请求的频率,以便快速通过响应包接收待发送数据,从而提高了数据接收效率。

此外,应该理解,根据本发明示例性实施例的父节点装置和终端装置中的各个模块或单元可被实现硬件组件和/或软件组件。本领域技术人员根据限定的各个模块或单元所执行的处理,可以例如使用现场可编程门阵列(fpga)或专用集成电路(asic)来实现各个模块或单元。

此外,根据本发明示例性实施例的用于无线网络的间接数据发送方法和间接数据接收方法可以被实现为计算机可读记录介质中的计算机代码。本领域技术人员可以根据对上述方法的描述来实现所述计算机代码。当所述计算机代码在计算机中被执行时实现本发明的上述方法。

虽然已表示和描述了本发明的一些示例性实施例,但本领域技术人员应该理解,在不脱离由权利要求及其等同物限定其范围的本发明的原理和精神的情况下,可以对这些实施例进行修改。

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