多点到多点的无线自组织数据传输协议 |
|||||||
申请号 | CN200580013714.5 | 申请日 | 2005-05-02 | 公开(公告)号 | CN101027914B | 公开(公告)日 | 2012-01-04 |
申请人 | 维迈实验室有限公司; | 发明人 | 张林; 鲍勃S·G·裘; 张浩翔; 俞哲; 杨磊; | ||||
摘要 | 本 发明 提出的无线通信系统可以依靠发明的协议建立起多点对多点、可扩展的自组织无线网络。发明的 硬件 平台可以使 电子 设备通过自组织网络互联。因此,每一个配置了本发明硬件平台的电子设备都可以成为无线自组织网络中的一个 节点 。这些节点依照本发明提出的协议自组织成为一个无线网络并进行相互之间的数据通信。 | ||||||
权利要求 | 1.一种将一组节点组织成一个无线自组织网络的方法,该方法包括: |
||||||
说明书全文 | 多点到多点的无线自组织数据传输协议[0001] 交叉引用和相关应用 [0003] 本项发明的技术适用于通讯系统,特别是无线通信系统。背景技术: [0004] 当前典型的无线通讯系统包括蓝牙和IEEE 802.11协议。蓝牙协议属于严格的层次化网络结构。与之相对比,IEEE 802.11协议是一个纯粹的扁平结构。虽然现有通讯协议提供有效的无线通讯,但是改进无线系统的质量和参数的要求不断被提出。发明内容: [0005] 根据本发明的一个特征,一个通讯系统利用程序创建了一个多点对多点的、可扩充和自组织的无线网络。网络的传输数据率和距离取决于使用的无线射频芯片组的特性。本发明技术及相关设备实现为各种电子设备通过无线自组织网络组网提供了技术支持。 [0006] 与传统无线网络的数据传输软件和固件协议以及现行无线通信技术相比,本发明拥有若干优势。例如,本发明对蓝牙技术中严格的层次化和IEEE 802.11中纯扁平结构进行了改进,它在单跳的无线网络环境中提供了无冲突的组网方式,而在多跳的无线网络环境中提供了较低的冲突概率。 [0008] 图1演示了建立微网系统(SS)的整体流程; [0011] 图4演示了星网的建立流程; [0012] 图5演示了存在于星网或字网中的多个微网系统的建立和操作过程; [0013] 图6演示了建立微网的第一个步骤的流程; [0014] 图7演示了在微网中选举调度节点的方法; [0015] 图8演示了建立微网的第二个步骤的流程; [0016] 图9演示了微网系统中对于带宽的轮询分配机制; [0018] 图9A演示了当协调节点不发送退出请求而退出微网的流程; [0019] 图10演示了星网的操作过程; [0020] 图11演示了多个微网在星网或宇网中工作的流程; [0021] 图12演示了本发明的设备实现框图; [0022] 图13演示了嵌入本发明的电子设备框图。 [0023] 具体实施例: [0024] 本发明可以嵌入到如图1中的个体节点100中。一个节点100包含硬件部分和软件或固件部分。根据不同场合下的具体实现不同,图2所示的硬件平台102可以包含天线104(例如:印刷电路板天线或者分立元件构成的天线)、射频芯片组106(例如:RFWaves 102和D100射频芯片组,或者Nordic nRF905无线芯片)、以及一个微处理单元芯片(MCU)108(例如:标准8051、TI MSP430或者ARM7)。硬件平台102的一个具体实现的电路原理图如图3所示。程序代码或者被作为软件写入MCU 108中、或者作为固件被烧入MCU 108中。在此基础上,硬件平台102具有了无线数据通信的能力。 [0025] 节点100或者通过外设接口被连接到一个电子设备上去,或者被直接嵌入到一个电子设备中,以使该电子设备具有与其他接入了节点100的电子设备进行发送、接受数据的能力。具体使用的范例将在下文中讨论。 [0026] 临近的节点100通过建立起一个自组织网络,或称为“微网”,来进行直接的数据传输。微网的在图4中以标号110标识,其中的数据传输以箭头标识。微网中的节点100也可以直接与其他微网110中的节点100进行数据传输,只要他们存在与彼此的无线通信范围内,或者说,存在与同一个“星网”内。星网在图5中以112进行标识,其中的数据传输以箭头标识。进一步,一个星网112中的节点100可以与其他星网112中的节点100进行数据通信,若他们的协调节点存在于相互联通的星网112中,或者说,存在于同一个“字网”中。宇网在图5中以113标识,将在下文中详细介绍。 [0027] 微网110通过两个步骤建立起来,在图6中以方法114标识。在第一步骤中,每一个节点100发送“探测包”,以探测给定无线通信范围内的其他节点100(标识为步骤116),广播其序列号,或称标签,以确认其身份(步骤118),并发送“选举报文”以选定一个新微网的协调节点(步骤120)。这些广播传输通过载波监听的方式进行传输并持续一段时间(少于一秒)。当两个或者更多的节点100定位到临近的其他节点,并且发出“选举报文”之后(图7中步骤122所示),这些节点100将自动选举具有最大序列号的节点100作为他们的协调节点。执行第一步骤的阶段在图1中以数字124进行标识。 [0028] 在图1中以数字126进行标识和在图8中以数字128进行标识的第二阶段中,被选举出来的协调节点发送给每一个节点100一个微网地址(步骤130)和一个本地地址(步骤132)。微网地址用于标识节点处于哪一个微网110当中,而本地地址用于标识本微网中节点在轮询过程中的位置,以便发送数据给本微网110中其他节点100。节点传输数据包时需要标明其微网地址和本地地址。节点100从协调节点收到其微网地址和本地地址之后,微网110就可以开始工作了。节点100可以在微网内自由的相互传递数据。如图1所示,协调节点可以通过配置数据包Ack1、Ack2、…、Ack N给每一个节点100配置微网地址和一个本地地址。 [0029] 如图9所示,当若干节点100建立起一个微网110之后,协调节点(以100C标注)依照轮询的方式向每一个节点100分配带宽。在每一轮轮询中,协调节点100C在它发往本微网110中每一个节点100的数据包中包括分配给该节点的带宽。而节点100将它下一轮所需要的带宽包含在它发出的数据包中。每一个节点100所得到的带宽依赖于它所申请的带宽相对于所有微网110中节点100申请的总带宽的比例。以上的申请流程保证了微网110可以有效且公平的运行。本带宽分配机制被成为“轮询分配机制”。在图9中,N等于微网110中节点100的总数,t表示时间。 [0030] 对于图9所示机制的一个范例说明:节点N只有当节点N-1完成了传输并且信道空闲一个“帧间时隙(BFT)”之后才可以传输。若此时节点N-1无数据需要进行传输,则它保持静默,当无线信道静默“帧间时隙”加上“超时时隙(TOP)”之后,节点N开始发送它的数据以继续该轮询流程。 [0031] 节点100的数据传输到达所有微网110中的节点。然而,每一个节点100仅处理专门发送给它的数据(在数据包中以本地地址标识出来)。节点100包含有一个包过滤器,以丢弃所有不是发送给它的数据包。 [0032] 当一个微网110被建立起来之后,节点100可以在任何时候加入或者退出该微网110。当节点100准备退出微网110时,该节点可以等待它自身的轮询时隙,并发送“退出请求报文”。协调节点100C收到该报文后,协调节点将利用下一个轮询周期的一部分时隙重新为本微网中剩余的节点分配本地地址,而“轮询分配机制”不会被打断。如果微网110中的某个节点100在某一固定数目的轮询周期内持续未发送数据,协调节点100C自动假设该节点已经离开本微网100,并在下一个轮询周期里面重新分配本地地址给所有的剩余节点 100。 [0033] 当某一个节点100准备加入一个业已存在的微网110时,它必须等待信道空闲时间到达“插入等待时间(IWT)”,IWT<BFT,之后才可以发送“接入请求报文”。当微网110的协调节点100C收到该报文后,协调节点将利用下一个轮询周期的一部分时隙重新为本微网中所有节点分配本地地址,新来的节点将会加入扩大后的微网110。任何节点100加入业已存在的微网110不会改变现有协调节点100C的角色,即便新到的节点比现有协调节点有更大的序号。此外,协调节点100C可以自动选择接受或者拒绝节点100的接入申请,并且分别响应每一个新节点 [0034] 如图9A所示的方法134用于处理协调节点100C准备退出微网110的情形。为了退出一个微网110,协调节点100C需要给本微网110中的所有节点100发送“退出请求报文”(步骤136)。当节点100收到协调节点的退出请求报文,它们首先完成当前一轮的轮询(步骤138),然后在剩余节点100中重新选举序号最大的节点作为该微网中的新的协调节点(步骤140),该重新选举过程需要的时间少于一秒。如图9B所示,若协调节点100C未发出“退出请求报文”就退出微网110(步骤142)(例如,由于未知原因所导致的突发错误),在等待了BFT+TOP时间之后(步骤144),微网110中的第一个(first)本地地址的节点(图9中以节点-1表示)自动担当起协调节点的作用,并且在本论轮询中分配等量的带宽给剩余所有的节点(步骤148)(下一轮建议只有系统广播)。“轮询分配”机制按照上文所述继续进行。 [0035] 在微网110中仅剩余两个节点100的情况下,若其中一个节点100准备退出该微网,它发送“退出请求报文”给另一个节点,该微网110随即解体。该二节点100都可以建立新的微网110或者加入任何其他已经存在的微网110。 [0036] 若两个节点100彼此存在于对方的通信范围内,或称存在于同一个“星网”中,则即便它们分属于两个不同的微网110,该两节点100亦可直接通信,在图5中以112标识。当节点100来自两个或两个以上不同的微网110,并且彼此存在于通信范围内的时候,一个扩展的自组织网络,或称“星网”,就可以被建立起来。在星网112中,节点100通过不同的微网地址和本地地址被唯一的标识。 [0037] 若一个微网110中的节点100准备直接与另外一个微网110中的节点100通信,它必须首先监听到后者的数据传输。所有在给定范围内并处于同一频率且使用同一调制方式的无线节点100可以听到彼此之间的通信,但是节点100仅处理专门发送给它的数据包。若节点100未收到其他微网110中节点100的数据传输,则它无法与后者直接通信。节点 100在收到其他节点地址后,第一个节点100用分配给它的带宽发送数据包给第二的节点。 [0038] 如图5所示,当微网A业已存在时,微网B在同一区域、同一信道上生成,这样组成了一个星网112。最初,微网A中的节点A2无法直接与微网B中的节点B1通信,因为对于节点A2来说,节点B1的信息未知。因为节点B1不存在或者位于节点A1的通讯范围外。一旦微网B共享了微网A的频率,并处于同一无线通信范围内,节点A2就可以接受到节点B1的所有数据传输,因而就获得了该节点的微网地址和本地地址。节点A2因而可以利用这些信息向节点B1传输数据。同理,节点B1反之亦可。 [0039] 当来自与两个以上的微网110的节点100构成一个星网112时,若干微网110以竞争的方式共享一个公用无线信道。微网的轮询周期插入其他微网的BFT时隙中去。如图10所示,一个星网112中的微网110可以设定其自身的BFT。BFT值约小,该微网所获得的共享信道的比例就越高,因为对于具有较小BFT的微网,其轮询过程被其他微网打断的概率比较低。图10演示了在一个星网112中,若干微网110如何共享一个信道,途中N表示每个微网110中节点的个数,t表示时间。 [0040] 当一个节点100到达一个新的星网112中时,它可以选择加入任何一个微网110。节点100必须首先监听所有的微网110至少一个轮询周期,在收到了每一个微网的110的地址之后,新到来的节点100可以向准备加入的微网发送“接入请求报文”。 [0041] 当两个以上的节点100准备在一个已经存在的星网112中建立起一个新的微网110的时候,节点100需要广播“选举报文”,而不是“申请接入报文”。所有广播“选举报文”的节点100组建成一个新的微网110。 [0042] 在某些实施例中,星网中112的节点100可以与其他星网中的同信道节点100传输数据,它们的协调节点100处于相邻的星网或同一个宇网中。宇网在图5中以标号113表示。相邻星网中的协调节点使用同一频率建立一“虚拟骨干网(VBN)”,也就是总自组织网或宇网被建立。虚拟骨干网使得节点100之间的多跳传输成为可能。协调节点100C通过自组织的机制建立起VBN,调度该微网110内部的节点100充当数据中继节点,以传输不同星网112之间的数据。在这类实施例中,协调节点100C也可以充当数据中继节点。 [0043] 在这些实例中,一旦一个微网110被建立起来,该微网的协调节点100C通过广播包的方式发送关于本微网110的信息,同时,协调节点可以获取本星网112中其他微网110的分布。通过这种方式,协调节点获取本星网112中所有其他微网110的分布,最终获得宇网113内全部的星网112的分布图信息。这种方式类似于互联网中OSPF路由协议的工作方式。通过分布图,协调节点100C建立起来一个虚拟骨干网VBN,用以在多个星网112中进行多跳的数据传输。 [0044] 宇网113的虚拟骨干网为处于不同星网112的节点提供了多跳数据传输所需的路由信息。当一个星网112中的某一个节点100(准备给另一个星网112中的另一个节点100传输数据的时候,它首先发出“搜索申请报文(SR)”给它所在微网的协调节点(在图5中分别以A0,B0和C0表示)。协调节点100C转发此报文给它所在的星网112中的所有协调节点110C,如果这些协调节点100C无法在本微网中定位节点100,则它们继续转发此“搜索申请报文”给它们星网112中的其他协调节点100C。最终,本报文可以到达字网113中的全部星网112中。 [0045] 如果节点100被发现,该节点的协调节点100C通过协调节点链发送回一个答复报文给信源节点,所有协调节点100C建立起来一个有效的节点链路或中继站,该链路用于在信源和信宿节点之间进行多跳数据传输。协调节点100C在本微网110内均匀的分配中继任务给每一个节点100,或者保证本微网中各个节点100被公平的分配给了中继任务。如果信宿节点100在某一个规定时间内没有被找到,则信源的协调节点100C发送一个“未找到答复报文”给信源节点100。 [0046] 在如图5的范例中,微网A和微网B在同一个星网112中,微网B和微网C在同一个星网112中。节点A2和C1不在彼此的无线通信范围内,因此无法直接与对方通信。节点A2发送一个“搜索申请报文”给其协调节点A0,搜索C1。A0转发本报文给协调节点B0,后者将此报文转发给C0。协调节点C0通过B0答复A0,告知A0节点C1在它的微网内,于是,C0、B0和A0建立起一条多跳传输的链路,B1节点指定为中继节点,以转发A2与C1之间的通信。协调节点B0选择节点B1作为中继节点,此选择基于均匀分配原则或者公平分配的原则。 [0047] 在图5范例的某些实例中,同一无线通信范围内的多个微网可以工作在不同的无线频率上,而某一无线频率可以在相距甚远的两个微网中被复用。一组节点100可以搜索所有可用的无线频率,在一个未被占用的频点上组织一个新的微网110。此微网110中的节点100可以通过桥节点100B与同一个星网112中(或者同一宇网113)其他微网中的节点通信(如图11所示)。 [0048] 桥节点100B可以同时工作在两个频率上,一个频率是它自身所在的微网110的频率,另一个是无线通信距离内(或同一星网)另一个微网110的频率,如图11中点划线所示。桥节点可以通过扫描所有可用频率,以发现并建立与其他微网110的连接。在这些实例中,协调节点100C可以与桥节点100B一起构建一个虚拟骨干网,连接不同星网112,构成宇网113。协调节点100C调度和协助不同微网内部的数据传输而桥节点中继所有跨微网的数据传输。在图11中,若微网110在无线通信范围内时,它们处于同一星网112;若微网B分别与微网A和微网C处于同一星网,则它们处于同一字网。在一个微网110中,可能存在着多个桥节点100B,工作在不同的频率上,而微网110的协调节点100C也可以充当桥节点(如图11中的微网C所示)。通过在通信范围内大大降低微网110之间的无线通讯冲突,因此本发明的这些实例可以提高系统的效率、降低能耗。 [0049] 在图12中,为了将节点100嵌入到电子设备136中,节点需要包含一个平台接口138,以便连接到设备接口140上,而后者与设备136的电子元件142连接。在某些实例中,平台接口138可以与节点的硬件102实现合为一体,也可以通过独立的硬件设备或电路实现。因此,如图13所示,一组包含了节点的电子设备136可以组成一个无线网络144,具体的例子参见下文。 [0050] 在其他的实例中,硬件平台102可以嵌入到设备136中,在这些实例中,硬件平台102可以直接与设备的电子元件142实现接口,因而不需要硬件接口138和140。 [0051] 名词解释 [0052] 为了清晰的说明本发明的原理,本部分中将解释若干名词,例如:节点、微网、星网、宇网等。 [0053] 节点100可以由硬件和软件或固件组成,用以与其他节点100之间进行数据的发送和接收。节点100可以通过接口插入等方式连接到电子设备140上,也可以直接嵌入到其中,以使电子设备140可以与其他的电子设备通信。所有的节点100都拥有一个全球唯一的标号,它是一个64位的二进制数字,在设备生产的时候被烧入闪存中,这个标识用于区分不同的节点100。当一个微网110建立起来之后,每一个节点100都被赋予一个微网地址和一个本地地址。这两个地址在微网110、星网112和宇网113中唯一的标识每一个节点。 [0054] 虽然所有的节点100拥有同样的能力,但是他们可能在微网110中充当不同的角色。拥有最大标号的节点在微网中被选为协调节点100C。协调节点100C给微网110中的每一个节点100分配一个8位的本地地址。在微网110建立起来之后,协调节点100C使用这个地址、依据轮询的规则,将带宽资源分配给本微网中的每一个节点100。这种分配保证了微网100中的每一个节点100以无冲突的方式共享无线信道资源。协调节点100C还通过建立虚拟骨干网的方式保证宇网113(即连续的星网112)内所有节点100之间的通信。在某些实例中,协调节点100C通过工作在不同频率上的桥节点100B进行数据通信。 [0055] 当在无线通信距离内的两个节点100相互连接,并选举出一个协调节点100C之后,一个自组织的网络(或称微网112)就建立起来。协调节点100C随后分配本地地址给每一个节点100,以便传输可以通过无冲突的轮询方式进行。本地地址可以依据标号、节点到协调节点100C的距离或者其他因素进行分配,采用哪种方式取决于网络的要求。节点通过自组织的方式建立起自组织网络112,一旦一个自组织网络被建立起来,其中的节点100就可以自由的相互传输数据。节点100可以在任何时候加入或退出一个自组织网络112。然而,在某些具体实例中,节点100在同一时刻只能存在于一个自组织网络中。 [0056] 当两个以上微网112中的节点100彼此于同一通信范围之内的时候,一个扩展的自组织网络(或称星网112)就被建立起来。这些节点100可以彼此之间直接通信(如果他们拥有同样的通信距离并且工作于同一频率上),节点100可以加入或离开星网112,节点100可以是多个星网112的组成部分。节点100可以选择加入星网112中的某一个特定的微网110,也可以选择在星网112中建立一个新的微网110。 [0057] 当连续的星网中的协调节点110C组成一个虚拟骨干网(VBN)之后,一个整体的自组织网络(或称字网113)就被建立起来。虚拟骨干网用于组织节点100之间的多跳数据传输。协调节点100C以自组织的方式建立虚拟骨干网,可以依靠本微网110中的节点100来桥接工作在不同频率上的多个微网,以转发不同星网之间112的数据传输。 [0058] 商业应用举例 [0059] 本发明的方法和设备有多种应用(如图12所示),例如,在PC数据通信应用中,节点100以及相关的应用可以用于文件处理和共享、联机游戏、电子邮件处理和MSN、ICQ以及其他与通信相关的应用中。 [0060] 在PC外设的数据传输和通信的应用中,节点100及相关技术可以被应用在PC与打印机、鼠标、扫描仪、数字相机、耳机、mp3播放器、PDA和音响等设备的互联中。在视频与音频通信设备中,节点100及相关技术可以被用于手机和无绳电话中。在家用智能家具的应用中,节点100及相关技术可以被用于互联立体声音响、电视、冰箱、空调与暖气设备、投影仪等设备的互联。节点100及相关技术还可以用于动物群体监控、玩具遥控等应用中。 [0061] 在保安系统的数据传输中,节点100及相关技术可以应用于传感器的通信与调度。在汽车数据传输中,节点100及相关技术可以用于碰撞传感器和车辆无线标签的数据互联中去(车对车或者车对路的通信)。在远程抄表应用中,节点100及相关技术可以应用到水表、煤气表、电表、停车表的互联中。节点100及相关技术还可以应用到对于传感器定位数据的传输中,以便对给定区域中物体的位置和移动进行监控。 [0062] 如前文所述的本发明内容和范例代码提供了若干在此基础上的改进和变化的基础,这些改进也包含在发明的范畴之中。因此,本发明并不仅限定于前文所述的内容。 |