具体实施方式
重要的是,应当注意本发明公开的实施例仅仅是本文的创新性教导的许多有利用途的实例。通常,本申请的说明书中进行的陈述不一定限制了各个要求保护的发明中的任何发明。而且,一些陈述可以适用于某些创造性特征,但不适用于其他特征。通常,除非另有说明,单数元件可以是复数并且反之亦然而不失一般性。在附图中,贯穿若干视图,相似的附图标记表示相似的部件。
图2示出了用来描述本发明的各个实施例的身体区域网络(BAN)200的拓扑结构。BAN 200包括两个层次的设备:从设备210-1至210-S以及主设备220-1至220-M。典型地,从设备210-1至210-S是可植入的、可吞咽的或者一次性的,并且以具有低能预算和有限资源(例如处理能力、存储容量)表征。另一方面,主设备220-1至220-M是可佩戴的,可以频繁地再充电并且因而具有比从设备更高的能量预算和更多的资源。
主设备220-Z(其中Z为等于或大于1的整数)管理一个或多个从设备210-G(其中G为等于或大于1的整数)。为此目的,主设备220-Z传送用于同步、请求介质预留和宣告广播/组播的周期信标。基于周期信标交换的信息,主设备220-Z导出启用QoS支持的无冲突预留调度。此外,主设备220-Z检测位于其传送范围内的另一BAN的存在性以便支持多个共定位的BAN的和谐共存,每个BAN可以潜在地执行不同的应用。
在图2所示的拓扑结构中,所有主设备220-1至220-M使介质访问同步,并且使用分布式全局信标发送过程实施预留。在本发明的一个优选的实施例中,将对于介质的访问划分成固定且重复的持续时间轮,其中时间轮是被设计成包括预定义数量的超帧(superframe)的数据结构,每个超帧包括固定数量的时隙。
图3示出了时间轮300的示例性且非限制性的二维表示。X轴表示每超帧的时隙,并且Y轴表示每时间轮300的可用超帧。超帧是用来在主设备之间以及主设备和其对应从设备之间交换信息的数据结构。
主设备可以预留时隙,在所述时隙期间设备具有访问介质(medium)的独占权利。时间轮中的预定义时隙被预留用于全局信标时段(GBP)310。这样的时隙用于传送促进主设备的周期性同步所需的全局信标。主设备侦听全局信标时段310并且在其分配的时隙中发送全局信标以便同步和交换介质预留请求。全局信标也用来发现邻居和网络拓扑结构,提供QoS,并且调度消息的广播或组播(multicast)。
依照本发明的一个实施例,使用动态地构造且维持BAN中的主设备的逻辑树拓扑结构的调度方法传送全局信标。因此,将全局信标时段划分成两个时间段:上升时段(AP)和下降时段(DP)。
在AP期间,除了根设备之外的所有主设备在其对应时隙中以升序传送其全局信标,即孩子们在其父母之前传送其全局信标。在AP期间,父母侦听其孩子们的全局信标。在DP期间,全局信标传送的顺序反过来,即父母在其孩子们之前传送其全局信标。在该时段中,孩子们侦听其父母的全局信标。
在AP期间,全局信息从孩子们传递至祖先(父母)。在AP结束时,根设备知道其在DP期间分配给所有主设备的整个全局信息。因此,全局信标调度方法确保了属于相同BAN的所有主设备即使在它们彼此隐藏(不在直接通信范围内)的情况下也接收该全局信息。
在全局信标时段310结束时,所有主设备知道来自每一个其他主设备的预留请求。在本发明的一个实施例中,只有修改的预留请求传播到其他主设备。在没有修改的预留请求的情况下,保留最后轮的请求。
依照本发明的特定原理,有关预留请求的全局信息用来导出子帧传送的唯一、一致且非重叠调度。子帧代表分配给主设备的连续时隙块。根据该目的,每个主设备独立地调度子帧,但是达到无冲突预留的唯一且一致的调度。因此,所有主设备都知道其同等设备子帧在下一轮中的位置。
在本发明的一个实施例中,主设备执行的调度方法包括:只要足够的时隙可用,则顺序地调度所有请求(例如基于MAC地址或者在先到先服务的基础上)。当没有足够的时隙可用于容纳所有预留请求时,可以基于服务类别来优先化请求。为下一时间轮收集预留请求并且调度子帧在当前时间轮中执行。
作为非限制性实例,图4示出了通过顺序地调度预留请求而导出的时间轮400的二维组织。时间轮400包括4个超帧410,并且从主设备接收的预留请求如表1中所列出的。如图4所示,超帧410中的时隙420依照每个主设备请求的时隙数量而被连续地预留。
表1
预留请求的全局知识导致其中时隙被连续地分配的紧凑调度。未预留的时隙朝超帧的结尾分组在一起,并且可以用作例如对于介质的全局优先化竞争访问(GPCA)。这导致高效的信道利用。此外,连续时隙分配导致从休眠模式到活动模式的更少的过渡,这提高了能量效率。
依照本发明的另一实施例,一种高级调度方法可以用来基于潜在的应用和服务的优先级分配子帧。例如,医疗应用不应当由于娱乐应用的现有预留而被剥夺介质访问。预留请求的全局知识可以帮助设备施加有效的许可控制和优先化。
依照本发明的一个实施例,主设备可以将消息广播或组播到其他主设备(称为全局广播/组播)。为此目的,主设备将用于全局广播/组播的请求嵌入到其全局信标中。该调度方法确定预留用于所有主设备已知的全局广播/组播数据传输的时隙。预期的主设备侦听预留用于全局广播/组播的时隙。接收广播/组播消息的主设备确定这些消息是否需要转发到其从设备。
应当理解的是,这里描述的子帧调度方法实现动态且可伸缩的占空比分配,其可以依照BAN的延迟要求和通信量状况而适应性地调节。这些技术因而允许节省功率而不损害QoS。
本发明的特定实施例也包括一种用于允许在同等(peer)主设备之间以及在主设备和其对应从设备之间进行高效的数据传输的方法。该方法采用了基于竞争的优先化访问以用于有区别的QoS类别并且采用了基于预留的访问以用于设备之间的可靠通信。
如上面所提及的,主设备使用全局信标为其对应子帧预留时隙,并且子帧的时序全局地为所有主设备已知。
子帧内的时隙可以预留用于QoS启用的或周期性的通信量,而子帧内的未预留的时隙对于立即响应的通信量可以通过使用本地优先化竞争访问(LPCA)机制来访问。这进一步示于图5中,其中子帧500包括基于竞争的访问(LPCA)时段510和无竞争520(基于预留的)访问时段。
预留时间必须占用连续的时隙。无竞争时段520根据组合的预留时隙的总长度而增长或收缩。在预留的时隙内传送的每个设备确保其事务处理(DATA和确认)在预留时间到期之前完成。
在一个实施例中,当不再需要预留时隙时,对这些时隙解除分配。预留所有者或者主设备可以自行在任何时间,例如如果在预定义的持续时间内没有使用时隙,对时隙解除分配。分配了时隙的设备也可以在LPCA时段内操作。
每个预留的时隙可以标记为相对于来自拥有预留的设备的数据流而传送或接收。对于每个分配的预留,所有者设备存储预留的类型、其起始时隙、长度、时隙数量、方向、周期性以及关联的设备地址。
基于竞争的访问时段510用于立即响应的(on demand)访问,以及用于加入BAN的新设备。除了确认帧以及请求帧之后的任何数据帧之外,在基于竞争的访问时段510期间传送的所有帧都利用LPCA机制以访问介质。
图6A示出了依照本发明实施例实现的从主设备220-A到主设备220-B的基于竞争的数据传输。主设备220-A和220-B知道彼此的预留调度。在T1处,设备220-A唤醒并且侦听设备220-B的本地信标以便同步和定位基于竞争的(LPCA)时段610。本地信标是子帧的一部分并且典型地由主设备发送到其同等主设备或从设备。典型地,本地信标携带同步、时隙分配和边界信息,其帮助从设备与它们的主设备同步、找到分配的时隙并且推断LPCA时段的边界。设备220-A在设备220-B的子帧之一中的LPCA时段610期间争用介质以便将数据传送到设备220-B。取决于确认策略,设备220-B可以确认成功接收来自设备220-A的数据。
如果设备220-A具有在当前子帧期间其不能够传送到设备220-B的用于设备220-B的更多数据,那么设备220-A可以等待,直到设备220-B的下一子帧到达(如果数据不是时间敏感的),或者设备220-A可以请求设备220-B在指定的GPCA时段期间保持唤醒。如果设备220-A和220-B同意在GPCA时段期间保持唤醒,那么它们可以在该时段期间通信。这在以下一个或多个条件适用的情况下可以实现:要由设备220-A传输的数据是时间敏感的;设备220-A的缓冲器几乎是满的;分配给设备220-B的子帧间隔很宽;以及设备220-A在分配给设备220-B的子帧期间设法访问介质的同时经历严重的竞争和退避。
图6B示出了依照本发明实施例实现的从主设备220-A到主设备220-B的基于预留的数据传输。在T1处,设备220-A唤醒并且侦听设备220-B的本地信标以便同步和定位基于竞争的(LPCA)时段610。设备220-A在时间段610期间争用介质以便传送预留请求。预留请求标识时隙的数量、数据传输的方向以及所有权信息。设备220-B可以确认该请求。如果该请求在当前时间轮期间可以部分地或者完全地容纳在分配给设备220-B的子帧中,那么在这些子帧中分配时隙。否则,设备220-B为下一时间轮更新其预留请求并且在随后的时间轮中在其子帧期间获得用于设备220-A的时隙。设备220-B可以在一定时间轮中在希望的位置经由全局信标获得新的子帧以便容纳设备220-A的请求。
时隙分配信息嵌入到设备220-B传送的本地信标中。在时间T2处,设备220-A侦听设备220-B的本地信标以便定位分配给它的时隙。随后,设备220-A在由设备220B分配给220-A的时隙620期间传送到220-B。如果在预定义时间帧内的本地信标中没有找到时隙分配信息,那么设备220-A将向更高层通告失败。
图7A示出了依照本发明实施例实现的从主设备220-A到从设备210-X的基于竞争的数据传输。在T1处,从设备210-X侦听设备220-A的本地信标以便同步和定位基于竞争的(LPCA)时段710。本地信标进一步向从设备210-X指示悬挂消息(如果有的话)。当接收到本地信标时,从设备210-X在分配给主设备220-A的子帧的LPCA时段710期间向设备220-A传送接收悬挂消息的请求。取决于确认策略,主设备220-A可以确认发送自从设备210-X的请求。其后,主设备220-A向从设备210-X传递悬挂消息。设备220-A和210-X可以决定在指定的GPCA时段期间继续消息交换。当成功地完成数据传送时,从本地信标中的悬挂消息的列表中移除该消息。
图7B示出了依照本发明实施例实现的从主设备220-A到从设备210-X的基于预留的数据传输。主设备220-A在其本地信标中指示其为从设备210-X预留时隙的意图。主设备220-A也指示预留重复时段。在T1处,从设备210-X唤醒,侦听主设备220-A的本地信标,并且了解悬挂预留请求。从设备210-X在LPCA时段710期间确认预留。当接收到该确认时,主设备220-A分配用于从设备210-X的时隙。
在建立了预留之后,从设备210-X跟踪主设备220-A的本地信标以便同步和定位分配给它的时隙。设备220-A在预留用于从设备210-X的时隙720期间将数据传送到设备210-X。取决于确认策略,从设备210-X可以确认发送自设备220-A的消息。设备220-A和210-X可以决定在指定的LPCA或GPCA时段期间继续消息交换。
图8A示出了依照本发明实施例实现的从从设备210-X到主设备220-A的基于竞争的数据传输。在T1处,从设备210-X侦听主设备220-A发送的本地信标以便同步和定位基于竞争的(LPCA)时段810。其后,从设备210-X在LPCA时段810期间传送到主设备220-A。取决于确认策略,主设备220-A可以确认来自从设备210-X的消息。设备220-A和210-X可以决定在指定的GPCA时段期间继续消息交换。
图8B示出了依照本发明实施例实现的从从设备210-X到主设备220-A的基于预留的数据传输。在T1处,从设备210-X侦听主设备220-A的本地信标以便同步和定位基于竞争的(LPCA)时段810。在该时段期间,从设备210-X将预留请求传送到主设备220-A。设备220-A可以确认该请求。如果该请求可以在当前轮期间部分地或者完全地容纳在分配给设备220-A的子帧中,那么在这些子帧中分配时隙。否则,主设备220-A为下一轮更新其预留请求并且在随后的时间轮中在分配给主设备220-A的子帧期间获得用于从设备210-X的时隙820。应当指出的是,主设备220-A可以在一定时间轮中在希望的位置经由全局信标交换获得新的子帧以便容纳由从设备210-X发送的请求。
时隙分配信息嵌入到主设备220-A传送的本地信标中。在T2处,从设备210-X侦听主设备220-A的本地信标以便定位分配给它的时隙820。设备210-X可以在其预留的时隙820期间传送。此外,设备220-A和210-X可以决定在指定的LPCA或GPCA时段期间继续消息交换。如果在预定义时间帧内在本地信标中没有找到时隙分配信息,那么从设备210-X将向更高层指示失败。
图9A示出了依照本发明实施例实现的从从设备210-Y到从设备210-X的基于竞争的数据传输。
这些从设备可以休眠延长的持续时间:从设备并不知道何时其他从设备被调度成唤醒。因此,从设备210-Y不知道设备210-X在哪个子帧中唤醒。而且,当从设备210-X唤醒时,它仅侦听主设备220-A的本地信标以便检查是否存在任何用于它的悬挂(pending)消息。如果不存在悬挂消息,那么设备210-X立即返回到休眠状态。因此,即使设备210-X和210-Y是邻居,它们也不能直接彼此通信。
从设备之间的数据传输通过主设备执行。特别地,在T1处,设备210-Y侦听主设备220-A的本地信标以便同步和定位基于竞争的(LPCA)时段910。接着,设备210-Y在主设备220-A的子帧的LPCA时段910期间将消息传送到主设备220-A。其后,主设备220-A如上面所解释的将消息转发到从设备210-X。设备210-X和210-Y可以决定在指定的LPCA时段期间继续消息交换。
图9B示出了依照本发明实施例实现的从从设备210-Y到从设备210-X的基于预留的数据传输。在T1处,从设备210-Y如上面参照图8B所描述的经由主设备220-A将预留请求发送到从设备210-X。在T2处,从设备210-X侦听主设备220-A发送的本地信标,该本地信标至少包括有关要被预留用于从从设备210-Y到从设备210-X的数据传输的时隙的信息。在T3处,从设备210-X确认该请求,并且主设备220-A分配要被预留用于数据传输的时隙。如果该请求可以在当前轮期间部分地或者完全地容纳在分配给主设备220-A的子帧中,那么在这些子帧中分配时隙。否则,主设备220-A为下一轮更新其预留请求并且在随后的轮中的子帧期间预留用于从设备210-X和210-Y的时隙。时隙分配信息嵌入到由主设备220-A所发送的本地信标中。在T4处,从设备210-X和210-Y侦听主设备220-A的本地信标以便定位分配给设备210-X和210-Y的时隙。设备210-X和210-Y可以在预留的时隙920期间通信。设备210-X和210-Y也可以决定在指定的LPCA或GPCA时段期间继续消息交换。如果在预定义时间帧内在本地信标中没有找到时隙分配信息,那么设备210-X和210-Y向更高层报告失败。
依照本发明的另一个实施例,主设备可以将消息广播或组播(multicast)到其对应的从设备(本地广播/组播)。为此目的,主设备在其子帧内预留用于消息的本地广播/组播的时隙,并且在其本地信标中宣告该预留。从设备侦听本地信标并且了解调度的广播/组播以及相应的预留的时隙。预定的从设备侦听指定的时隙以便接收广播/组播传送。主设备可能必须存储用于休眠从设备的广播消息。从设备可以通过其对应主设备广播/组播消息。
前面的详细描述阐述了本发明可以采取的许多形式中的一些形式。应当预期的是,前面的详细描述被理解为本发明可以采取的选定形式的示例,而不理解为对本发明定义的限制。只有权利要求,包括其等同,用于限定本发明的范围。
最优选地,本发明的原理被实现为硬件、固件和软件的任意组合。而且,软件优选地实现为有形地包含在程序存储单元或计算机可读介质上的应用程序。该应用程序可以上传到包括任何适当架构的机器并且由该机器执行。优选地,该机器在具有诸如一个或多个中央处理单元(“CPU”)、存储器和输入/输出接口之类的硬件的计算机平台上实现。计算机平台也可以包含操作系统和微指令代码。本文描述的各种过程和功能可以是该微指令代码的一部分或者应用程序的一部分,或者其任意组合,其可以由CPU执行,不管这样的计算机或处理器是否明确地示出。此外,各种其他外设单元可以连接到所述计算机平台,例如附加数据存储单元和打印单元。