1.一种用于网格网络的数据转发方法,所述网格网络包括多个节点,所述多个节点中的至少一个节点作为中继节点,用于将源节点产生的数据包转发至目标节点,所述数据包的类型包括命令数据包和状态数据包,所述方法包括:
获得所述多个节点的网络相对位置;
根据转发计数与最大值的比较结果判断是否转发所述命令数据包,在转发所述命令数据包时进行递增计数;以及
根据转发计数与所述中继节点的网络相对位置的比较结果判断是否转发所述状态数据包,在转发所述状态数据包时进行递减计数,
其中,所述多个节点包括网络控制器,所述多个节点的网络相对位置表示所述多个节点与所述网络控制器之间的最短路径的节点数量。
2.根据权利要求1所述的方法,其中,在网络初始化期间,所述网络控制器产生命令数据包,将所述命令数据包经由所述最短路径到达所述多个节点的转发次数作为所述多个节点的网络相对位置。
3.根据权利要求1所述的方法,其中,所述多个节点在网络初始化期间存储网络相对位置。
4.根据权利要求2所述的方法,其中,所述多个节点在转发命令数据包时更新网络相对位置。
5.根据权利要求1所述的方法,其中,将所述源节点的网络相对位置作为所述转发计数的初始值。
6.根据权利要求5所述的方法,其中,所述源节点产生状态数据包,并且在产生状态数据包时设置所述转发计数的初始值。
7.根据权利要求1所述的方法,其中,如果所述转发计数小于等于所述最大值,则转发所述命令数据包,如果所述转发计数大于等于所述最大值,则中止转发所述命令数据包。
8.根据权利要求1所述的方法,其中,如果所述转发计数大于等于所述中继节点的网络相对位置,则转发所述状态数据包,如果所述转发计数小于所述中继节点的网络相对位置,则中止转发所述状态数据包。
9.根据权利要求1所述的方法,还包括在转发所述数据包之前,进行随机延时。
10.一种用于网格网络的节点设备,所述节点设备在所述网格网络中作为中继节点,用于将源节点产生的数据包转发至目标节点,所述数据包的类型包括命令数据包和状态数据包,所述节点设备包括:
节点控制器,用于从所述数据包的内容获得数据包类型和转发计数;
最大值寄存器,用于存储转发计数的最大值;
相对位置标识寄存器,用于存储节点设备的网络相对位置;
射频收发器,用于实现所述数据包的接收和发送;以及
收发时序控制器,用于为所述射频收发器提供时钟和控制信号,从而实现对所述射频收发器的状态控制,
其中,所述节点控制器根据转发计数与最大值的比较结果判断是否转发所述命令数据包,在转发所述命令数据包时进行递增计数,根据转发计数与所述中继节点的网络相对位置的比较结果判断是否转发所述状态数据包,在转发所述状态数据包时进行递减计数,其中,所述节点设备的网络相对位置表示所述节点设备与网络控制器之间的最短路径的节点数量。
11.根据权利要求10所述的节点设备,还包括随机延时控制器,用于为所述收发时序控制器提供延时信号。
12.根据权利要求10所述的节点设备,其中,所述节点控制器在网络初始化期间,根据接收到的命令数据包获得所述转发计数的最大值和网络相对位置,并且分别存储在所述最大值寄存器和所述相对位置标识寄存器中。
13.根据权利要求12所述的节点设备,其中,所述节点设备在转发命令数据包时更新网络相对位置。
14.根据权利要求10所述的节点设备,其中,所述节点控制器在网络正常工作期间,在接收到数据包之后,根据所述数据包的转发计数和自身的网络相对位置产生用于指示是否转发的控制命令,将该控制命令提供给所述射频转发器,从而控制所述节点设备的转发功能。
15.根据权利要求14所述的节点设备,其中,在接收到所述命令数据包时,如果所述转发计数大于等于所述最大值,则所述节点控制器中止转发所述命令数据包。
16.根据权利要求14所述的节点设备,其中,在接收到所述状态数据包时,如果所述转发计数小于等于所述节点设备网络相对位置,则所述节点控制器中止转发所述状态数据包。
17.根据权利要求10所述的节点设备,其中,所述射频收发器为遵循蓝牙协议、WIFI协议、ZigBee中至少一种协议的无线收发器。
18.根据权利要求10所述的节点设备,其中,所述节点设备为选自电视、冰箱、热水器、LED灯、摄像头、监控器、插座和定时器中的一种,并且支持网络连接功能。
用于网格网络的数据转发方法及节点设备\n技术领域\n[0001] 本发明涉及网络数据通信技术,更具体地,涉及用于网格网络的数据转发方法及节点设备。\n背景技术\n[0002] 随着物联技术的发展,越来越多的智能设备接入网络。网格网络(mesh network)具有可动态扩展、高连接性、高可靠性和高稳定性的优点,因而越来越受到关注。作为终端的智能设备可以先接入网格网络,然后进一步接入相同或不同类型的其他网络,从而实现智能设备的远程管理、定时控制和参数调节等功能。\n[0003] 网格网络是包括网络控制器和多个节点的网络架构。网络控制器可以有一个或者几个,网络节点有多个。网络控制器用于节点之间的通信调度和节点与外部网络之间的通信路由。节点可以经由网络控制器访问外部网络。在同一时刻,一般只有一个网络控制器对网络进行控制。现有技术通过广播来实现网格网络,实现的协议不尽相同。例如,可以基于蓝牙协议4.0实现网格网络。\n[0004] 在网格网络中,利用相邻的节点转发数据,以代替长距离的直接连接,这种通信方式也称为“多跳(multi-hop)”通信。节点通过转发收到的数据包来实现数据的传递,这种方式可以通过以节点作为中继的方式实现信息的传递。在整个网络中,节点的数据转发都是基于随机延时实现的。然而,频繁的数据转发使得整个网络的功耗可能变得很大。如果不加约束的对数据包进行转发,则甚至会由于数据包碰撞而导致网络的崩溃。\n[0005] 因此,期望进一步改进网格网络的数据通信控制方法以降低网络设备功耗和减少数据包碰撞。\n发明内容\n[0006] 鉴于上述问题,本发明的目的在于提供一种可以限制数据包转发次数的数据转发方法及节点设备,从而可以实现节能和提高网络通信效率。\n[0007] 根据本发明的一方面,提供一种用于网格网络的数据转发方法,所述网格网络包括多个节点,所述多个节点中的至少一个节点作为中继节点,用于将源节点产生的数据包转发至目标节点,所述方法包括:根据所述数据包的类型和转发计数,判断是否转发所述数据包,其中,在转发所述数据包时,根据所述数据包的类型进行不同的计数以获得所述转发计数。\n[0008] 优选地,所述数据包的类型包括命令数据包和状态数据包,以及在转发所述命令数据包时进行递增计数,在转发所述状态数据包时进行递减计数。\n[0009] 优选地,所述方法还包括获得所述多个节点的网络相对位置。\n[0010] 优选地所述多个节点包括控制器,所述多个节点的网络相对位置表示所述多个节点与所述控制器之间的最短路径的节点数量。\n[0011] 优选地,在网络初始化期间,所述控制器产生命令数据包,将所述命令数据包经由所述最短路径到达所述多个节点的转发次数作为所述多个节点的网络相对位置。\n[0012] 优选地,所述多个节点在网络初始化期间存储网络相对位置。\n[0013] 优选地,所述多个节点在转发命令数据包时更新网络相对位置。\n[0014] 优选地,将所述源节点的网络相对位置作为所述转发计数的初始值。\n[0015] 优选地,所述源节点产生状态数据包,并且在产生状态数据包时设置所述转发计数的初始值。\n[0016] 优选地,判断步骤包括将所述转发计数与参考值相比较。\n[0017] 优选地,所述数据包为命令数据包,所述参考值为预设的最大值。\n[0018] 优选地,如果所述转发计数小于等于所述最大值,则转发所述命令数据包,如果所述转发计数大于等于所述最大值,则中止转发所述命令数据包。\n[0019] 优选地,所述数据包为状态数据包,所述参考值为所述中继节点的网络相对位置。\n[0020] 优选地,如果所述转发计数大于等于所述中继节点的网络相对位置,则转发所述命令数据包,如果所述转发计数小于所述中继节点的网络相对位置,则中止转发所述命令数据包。\n[0021] 优选地,所述方法还包括在转发所述数据包之前,进行随机延时。\n[0022] 根据本发明的另一方面,提供一种用于网格网络的节点设备,所述节点设备在所述网格网络中作为中继节点,用于将源节点产生的数据包转发至目标节点,所述节点设备包括:节点控制器,用于从所述数据包的内容获得数据包类型和转发计数;最大值寄存器,用于存储转发计数的最大值;相对位置标识寄存器,用于节点设备网络相对位置;射频收发器,用于实现所述数据包的接收和发送;以及收发时序控制器,用于为所述射频收发器提供时钟和控制信号,从而实现对所述射频收发器的状态控制,其中,所述节点控制器根据所述数据包的类型和转发计数,判断是否转发所述数据包,在转发所述数据包时,根据所述数据包的类型进行不同的计数以获得所述转发计数。\n[0023] 优选地,所述节点设备还包括随机延时控制器,用于为所述收发时序控制器提供延时信号。\n[0024] 优选地,所述节点控制器在网络初始化期间,根据接收到的命令数据包获得所述转发计数的最大值和网络相对位置,并且分别存储在所述最大值寄存器和所述相对位置标识寄存器中。\n[0025] 优选地,所述多个节点设备在转发命令数据包时更新网络相对位置。\n[0026] 优选地,所述节点控制器在网络正常工作期间,在接收到数据包之后,根据所述数据包的转发计数和自身的网络相对位置产生用于指示是否转发的控制命令,将该控制命令提供给所述射频转发器,从而控制所述节点设备的转发功能。\n[0027] 优选地,所述数据包的类型包括命令数据包和状态数据包,所述节点控制器在转发所述命令数据包时进行递增计数,在转发所述状态数据包时进行递减计数。\n[0028] 优选地,在接收到所述命令数据包时,如果所述转发计数大于等于所述最大值,则所述节点控制器中止转发所述命令数据包。\n[0029] 优选地,在接收到所述状态数据包时,如果所述转发计数小于等于所述节点设备网络相对位置,则所述节点控制器中止转发所述状态数据包。\n[0030] 优选地,所述射频收发器为遵循蓝牙协议、WIFI协议、ZigBee中至少一种协议的无线收发器。\n[0031] 优选地,所述节点设备为选自电视、冰箱、热水器、LED灯、摄像头、监控器、插座和定时器中的一种,并且支持网络连接功能。\n[0032] 根据本发明实施例的数据转发方法,针对命令数据包和状态数据包,采用不同的处理方式处理数据包的内容。根据数据包的类型和转发计数判断是否转发数据包。由于根据数据包的类型进行不同的计数,因此可以减少无效的数据传送,从而有效地减少网络对数据包的转发次数,从而实现节能和提高网络通信效率。\n[0033] 在优选的实施例中,将产生数据包的源节点的网络相对位置作为转发计数的初始值,并且在转发命令数据包时进行递增计数,在转发所述状态数据包时进行递减计数。在判断是否转发数据包时,针对命令数据包,采用预设的转发计数最大值为参考值,针对状态数据包,采用该节点自身的网络相对位置为参考值,根据数据包的转发计数和参考值的比较结果判断是否进行转发。该方法可以进一步限制数据包中继的数据传送方向,从而在减少数据包的转发次数的同时,保证数据包的有效转发,从而进一步提高网络通信效率。\n[0034] 在优选的实施例中,节点设备在转发命令数据时更新该节点设备的相对位置标识。由于节点设备可以动态更新节点设备的网络相对位置,因此可以适应于动态变化的网络网络结构。即使在网格网络工作期间,节点设备插入或去除,节点设备也仍然可以有效地适应新的网络结构,正确执行上述数据包的转发。\n附图说明\n[0035] 通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:\n[0036] 图1示出第一类型的网格网络的拓扑结构;\n[0037] 图2示出第二类型的网格网络的拓扑结构;\n[0038] 图3示出根据本发明实施例的数据包的数据结构;\n[0039] 图4示出根据本发明实施例的节点设备的示意性框图;\n[0040] 图5示出根据本发明实施例的控制器控制方法的流程图;\n[0041] 图6示出根据本发明实施例的节点数据转发方法的流程图。\n具体实施方式\n[0042] 以下将参照附图更详细地描述本发明。在各个附图中,相同的元件采用类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。此外,可能未示出某些公知的部分。\n[0043] 在下文中描述了本发明的许多特定的细节,例如数据结构、网络协议、网络拓扑结构、网络设备硬件结构等,以便更清楚地理解本发明。但正如本领域的技术人员能够理解的那样,可以不按照这些特定的细节来实现本发明。\n[0044] 在本申请中使用的术语“源节点”和“目标节点”分别表示产生数据包和预期接收数据包的设备,“源节点”和“目标节点”可以是网络控制器和节点设备中的任一种,“中继节点”则表示转发数据包的节点设备。\n[0045] 本发明可以各种形式呈现,以下将描述其中一些示例。\n[0046] 图1示出第一类型的网格网络的拓扑结构。该网格网络包括网络控制器NC和多个节点N1至N15。网络控制器NC例如为手机、电脑等智能终端,也可以是专用的网络控制器,节点设备例如为智能设备,例如具备网络连接功能的电视、冰箱、热水器、LED灯、摄像头、监控器、插座、定时器等。\n[0047] 第一类型的网格网络为单路径网络,其中,以网络控制器NC为中心提供多条信号路径,在每条信号路径上包括串联的多个节点,且不同信号路径上的多个节点彼此不连接。\n[0048] 如图1所示,以网络控制器NC为中心,节点N1、N6和N11依次连接在第一信号路径上,节点N2、N7和N12依次连接在第二信号路径上,节点N3、N8和N13依次连接在第三信号路径上,节点N4、N9和N14依次连接在第四信号路径上,节点N5、N10和N15依次连接在第五信号路径上。第一至第五信号路径共同连接至网络控制器,彼此之间未连接。每条路径上的节点在转发数据时,只能转发至同一信号路径上的相邻节点。也即,每个节点只能经由唯一的信号路径转发数据包至相邻的节点或网络控制器。例如,节点N9在转发数据时,只能转发至第四信号路径上的相邻节点N4和N14。\n[0049] 网络控制器NC与外部网络之间采用WIFI协议、移动通信协议或蓝牙协议4.0互联,网络控制器NC与多个节点之间、以及多个节点彼此之间可以采用蓝牙协议4.0、ZigBee协议、WIFI协议互联。网络控制器NC不仅控制网格网络内部的数据通信,而且为网格网络与外部网络之间的通信提供路由功能,使得网格网络中的多个节点可以经由网络控制器访问外部网络。\n[0050] 在网格网络中,节点转发的数据包主要有两种类型:命令数据包和状态数据包。网络控制器NC产生命令数据包,用于向节点发送控制指令和配置数据,以实现对节点的控制。\n另一方面,网络控制器NC和节点均可以产生状态数据包,其中,用于报告网络控制器NC和节点自身的状态。网格网络中的节点据接收到的指令和配置数据改变自身的状态,或者转发接收到的数据包。\n[0051] 在第一类型的网格网络中,根据现有的数据转发方法,不论数据包是何种类型,数据包的转发方式均是类似的。在第一种情形下,网络控制器NC产生命令数据包,并且将其发送到所有的节点或者特定的节点,节点N1至N15中的每个节点在收到命令数据包后会根据协议要求来判断是否做数据转发。在第二种情形下,网络控制器NC产生状态数据包,并且将其发送到所有的节点或者特定的节点,节点N1至N15中的每个节点在收到状态数据包后会根据协议要求来判断是否做数据转发。在第三种情形下,节点N1至N15中的一个节点产生状态数据包,并且将其转发同一信号路径上的相邻节点。\n[0052] 在上述的数据转发方法中,位于同一信号路径的多个节点通过转发数据包,将数据包发送至相邻的节点。相邻的节点转发该数据包,从而中继数据包的传送,直到网络控制器NC收到数据包为止。以第四信号路径上的节点N4为源节点示例说明。节点N4产生状态数据包,并且沿着第四信号路径传送。节点N4与网络控制器NC和节点N9相邻。在节点N4产生的状态数据包到达网络控制器NC之后,网络控制器NC不再转发该数据包。在节点N4产生的状态数据包到达节点N9之后,节点N9既可能向后转发,也可能向前转发。在向后转发时,节点N9向第四信号路径中的下一个节点N14转发数据包。在向前转发时,节点N9向第四信号路径中的上一个节点N4返回数据包。无论向前还是向后转发,每次转发之后,转发计数均递增。\n[0053] 该网格网络的数据转发方法,由于转发计数始终递增,因此可以利用最大值限制转发次数。该最大值是预设值,对应不同的网络规模大小。通过比较转发计数和该最大值,防止数据包被无限次的无效转发。然而,最大值限制仍然产生过多的转发次数。例如,如图1所示,对于状态数据包而言,节点N4产生的数据包向后传送是不需要的。\n[0054] 图2示出第二类型的网格网络的拓扑结构。该网格网络包括网络控制器NC和多个节点N1至N15。\n[0055] 第二类型的网格网络为多路径网络,其中,以网络控制器NC为中心提供多条信号路径,在每条信号路径上包括串联的多个节点,且不同信号路径上的多个节点可以彼此连接。\n[0056] 如图2所示,以网络控制器NC为中心,节点N1、N6和N11依次连接在第一信号路径上,节点N2、N7和N12依次连接在第二信号路径上,节点N3、N8和N13依次连接在第三信号路径上,节点N4、N9和N14依次连接在第四信号路径上,节点N5、N10和N15依次连接在第五信号路径上。第一至第五信号路径共同连接至网络控制器,不同信号路径的信号节点还可以彼此连接。例如第一信号路径上的节点N1与第五信号路径上的节点N10彼此连接,第二信号路径上的节点N7和第三信号路径上的节点N3彼此连接。每条路径上的节点在转发数据时,不仅可能转发至同一信号路径上的相邻节点,而且可能转发至相邻信号路径上的相邻节点。\n也即,每个节点可能经由多条不同的信号路径转发数据包至相邻的节点或网络控制器。\n[0057] 在第二类型的网格网络中,根据现有的数据转发方法,不论数据包是何种类型,数据包的转发方式均是类似的。在第一种情形下,网络控制器NC产生命令数据包,并且将其发送到所有的节点或者特定的节点,节点N1至N15中的每个节点在收到状态数据包后会根据协议要求来判断是否做数据转发。在第二种情形下,网络控制器NC产生状态数据包,并且将其发送到所有的节点或者特定的节点,节点N1至N15中的每个节点在收到状态数据包后会根据协议要求来判断是否做数据转发。在第三种情形下,节点N1至N15中的一个节点产生状态数据包,并且将其转发同一信号路径上的相邻节点。\n[0058] 在上述的数据转发方法中,网格网络中的多个节点通过转发数据包,将数据包发送至同一信号路径或不同路径上的相邻节点,从而中继数据包的传送,使得目标节点收到数据包。以网络控制器NC作为源节点示例说明。网络控制器NC产生命令数据包,并且沿着第一信号路径传送。节点N1与网络控制器NC相邻。在网络控制器NC产生的命令数据包到达节点N1之后,节点N1既可能向后转发,也可能向前转发。在向后转发时,节点N1向第一信号路径中的相邻节点N6转发数据包,或者向第五信号路径的相邻节点N10转发数据包。在向前转发时,节点N1向网络控制器NC返回数据包。无论向前还是向后转发,每次转发之后,转发计数均递增。\n[0059] 该网格网络的数据转发方法,由于转发计数始终递增,因此可以利用最大值限制转发次数。该最大值是预设值,对应不同的网络规模大小。通过比较转发计数和该最大值,防止数据包被无限次的无效转发。然而,最大值限制仍然产生过多的转发次数。\n[0060] 图3示出根据本发明实施例的数据包的数据结构。数据包不仅包括地址信息、内容信息和校验信息,还包括转发计数。在该数据包中,地址信息可以包括源节点和目标节点的地址,命令数据包和状态数据包的内容信息分别是命令信息和状态信息。校验信息用于对内容信息的正确性和完整性进行检查,例如可以是基于内容信息生成的奇偶校验信息。\n[0061] 与现有技术不同,根据本发明实施例的数据转发方法根据数据包的类型和源节点在网络中的相对位置进行转发计数,以及根据转发计数和中继节点在网络中的相对位置判断是否进行转发。\n[0062] 图4示出根据本发明实施例的节点设备的示意性框图。节点设备包括节点控制器\n101、最大值寄存器102a、相对位置标识寄存器102b、射频收发器103、收发时序控制器104、随机延时控制器105。该节点设备可以作为图1和2所示的网格网络的节点。\n[0063] 节点控制器101从数据包的内容获得数据包类型和转发计数。例如,可以根据数包的内容信息判断数据包类型。\n[0064] 最大值寄存器102a和相对位置标识寄存器102b分别存储转发计数的最大值和节点设备网络相对位置。节点控制器101从最大值寄存器102a和相对位置标识寄存器102b获得转发计数的最大值和节点设备网络相对位置。\n[0065] 射频收发器103实现数据包的收发,例如可以是2.4GHz、5.8GHz、Sub1GHz等频段的无线收发器,包括遵循蓝牙协议、WIFI协议、ZigBee协议的无线收发器。由于节点设备100越来越多地支持跳频模式,因此,射频收发器103可能工作在不同的工作频率。例如,基于蓝牙广播模式实现的网格网络,节点设备100有3个广播信道可以选择,射频收发器103可以工作于相应的工作频率。\n[0066] 收发时序控制器104用于为射频收发器103提供时钟和控制信号,从而实现对射频收发器103的状态控制,根据协议要求实现对射频接收/发送状态的开关和跳转。\n[0067] 优选地,所述节点设备包括随机延时控制器105,用于为收发时序控制器104提供延时信号。在基于数据转发的网格网络中,接收到数据包后,为了防止转发的数据包发生碰撞,都需要经过一段随机的延时后再转发数据包。随机延时控制器105与收发时序控制器\n104一起实现延时转发功能。\n[0068] 在网络初始化期间,节点控制器101根据接收到的命令数据包获得转发计数的最大值和网络相对位置,并且分别存储在最大值寄存器和相对位置标识寄存器中。\n[0069] 在网络正常工作期间,节点控制器101在射频收发器103接收数据包之后,根据数据包的转发计数和节点设备自身在网络中的相对位置产生用于指示是否转发的控制命令,该控制命令提供给射频转发器103,从而控制节点设备的转发功能。\n[0070] 此外,在转发数据包的情形下,节点控制器101修改数据包中的转发计数,使得转发后的数据包括新的转发计数值。\n[0071] 图5示出根据本发明实施例的控制器控制方法的流程图。网络控制器的主要功能是发送命令数据包或自身的状态数据包,并接收来自节点的状态数据包。该方法可以用于图1和2所示的网格网络,由网络控制器执行该控制方法的各个步骤。\n[0072] 在步骤S101中,网络控制器根据协议要求自动处于空闲/睡眠状态,既不发送也不接收数据包,以保证网络控制器低功耗。\n[0073] 在步骤S102中,网络控制器执行网格网络初始化。\n[0074] 在网格网络初始化中,网络控制器发送命令数据包。网络控制器在节点设备的所有广播信道上进行广播,使得所有的节点设备都可以接收到命令数据包。\n[0075] 该命令数据包的命令信息可以包括:通信信道配置信息和转发计数的最大值配置信息。如上所述,在网格网络初始化期间,节点设备接收命令数据包。进一步地,节点设备根据通信信道配置信息设备无线收发器的工作频率,并且将最大值配置信息存储在转发计数最大值寄存器中。\n[0076] 网络控制器可以要求所有节点设备工作于同一个信道上,也可以提供多个信道让节点设备自由选择。最大值配置信息用于在节点设备上设置转发计数的最大值。该最大值是预设值,对应不同的网络规模大小。通过比较转发计数和该最大值,防止数据包被无限次的无效转发。\n[0077] 如上所述,命令数据包包括转发计数。节点设备在每次转发接收到的数据包时需要把转发计数加1。节点设备可以根据第一次收到命令数据包的转发计数标识来标志自身的网络相对位置,也可以通过将多次收到的命令数据包的转发计数来取平均来获取自身的网络相对位置。节点设备的网络相对位置表示该节点设备与网络控制器之间的最短路径的节点数量。\n[0078] 在步骤S103,网络控制器判断是否进入接收状态或发送状态。\n[0079] 如果进入发送状态,则在步骤S104中,网络控制器发送命令或状态数据包。\n[0080] 在步骤S105中,网络控制器判断是否进入接收状态。如果未进入接收状态,则网络控制器返回空闲/睡眠状态。\n[0081] 如果在步骤S103和步骤S105中判断进入接收状态,则在步骤S106中,网络控制器接收状态数据包。\n[0082] 在步骤S107中,网络控制器判断接收到的状态数据包是否有效。\n[0083] 如果接收到的状态数据包有效,则在步骤S108中,网络控制器对状态数据包进行处理,记录状态数据包的信息内容。否则返回步骤S106,重新接收状态数据包。\n[0084] 图6示出根据本发明实施例的节点数据转发方法的流程图。节点设备的主要功能是接收网络控制器发送的命令数据包,发送自身的状态数据包,以及转发接收到的状态数据包。该方法可以用于图1和2所示的网格网络,由节点执行该方法的各个步骤。\n[0085] 在步骤S201中,节点设备根据协议要求自动处于空闲/睡眠状态,既不发送也不接收数据包,以保证节点设备低功耗。\n[0086] 在步骤S202,节点设备判断是否进入接收状态或发送状态。\n[0087] 如果进入发送状态,则在步骤S203中,节点设备产生和发送自身的状态数据包。在该步骤中,节点设备从相对位置标识寄存器中读取网络相对位置,将该节点设备的网络相对位置作为转发计数的初始值写入状态数据包中。\n[0088] 如果在步骤S202中判断进入接收状态,则在步骤S204中,节点设备接收数据包。该接收到的数据包即可能是网络控制器产生的命令数据包,也可能是网络控制器或另一节点设备产生的状态数据包。\n[0089] 在步骤S205中,节点设备判断接收到的数据包是否有效。\n[0090] 如果接收到的数据包有效,则进入步骤S206,否则返回步骤S204,重新接收数据包。\n[0091] 在步骤S206中,节点设备判断接收到的数据包的类型,即判断是否为命令数据包或状态数据包。例如,节点设备可以通过解析数据包的内容信息来获得数据包的类型信息。\n[0092] 如果在步骤S206中判断接收到的数据包为命令数据包,则在优选的步骤S207中,节点设备获取命令数据包里的转发计数,并且将其作为最新的相对位置标识,并且更新该节点设备的相对位置标识寄存器。在该步骤可以动态更新节点设备的网络相对位置,从而适应于动态变化的网络网络结构。例如,即使在网格网络工作期间,节点设备插入或去除,也仍然可以有效地适应新的网络结构,正确执行上述数据包的转发。\n[0093] 接着,在步骤S208中,节点设备判断自身是否是该命令数据包的目标节点。例如,节点设备可以通过解析命令数据包的内容信息来获得数据包的目标节点信息。\n[0094] 如果在步骤S208中判断自身是该命令数据包的目标节点,则在步骤S209中进行随机延时。然后,在步骤S210中,节点设备产生和发送自身的状态数据包。在该步骤中,节点设备从相对位置标识寄存器中读取网络相对位置,将该节点设备的网络相对位置作为转发计数的初始值写入状态数据包中。\n[0095] 如果在步骤S208中判断自身并非是该命令数据包的目标节点,则在步骤S211中,进一步判断数据包的转变计数是否小于最大值。通过比较转发计数和该最大值,防止数据包被无限次的无效转发。\n[0096] 如果在步骤S211中判断命令数据包的转发计数大于等于最大值,则节点设备中止转发该命令数据包,返回空闲/睡眠状态。。\n[0097] 如果在步骤S211中判断命令数据的转发计数小于最大值,则在步骤S212中进行随机延时。然后,在步骤S213中,节点设备转发该命令数据包。在该步骤中,节点设备从命令数据包中读取数据包的转发计数,然后将转发计数加1获得新的转发计数,将新的转发计数写入命令数据包中。在转发命令数据包之后,节点设备返回空闲/睡眠状态。\n[0098] 如果在步骤S206中判断接收到的数据包为状态数据包,则在步骤S214中,节点设备进一步判断状态数据包的转发计数是否大于网络相对位置。在该步骤中,节点设备从状态数据包中读取数据包的转发计数,从相对位置标识寄存器中读取网络相对位置。\n[0099] 如果在步骤S214中判断状态数据包的转发计数小于等于网络相对位置,则节点设备中止转发该状态数据包,返回空闲/睡眠状态。\n[0100] 如果在步骤S214中判断状态数据包的转发计数大于网络相对位置,则在步骤S215中进行随机延时。然后,在步骤S216中,节点设备转发该状态数据包。在该步骤中,节点设备从状态数据包中读取数据包的转发计数,然后将转发计数减1获得新的转发计数,将新的转发计数写入状态数据包中。在转发状态数据包之后,节点设备返回空闲/睡眠状态。\n[0101] 在上述的实施例中描述了根据本发明实施例的节点设备及其数据转发方法,该节点设备可以用于图1所示的第一类型的网格网络,或者图2所示的第二类型的网格网络。然而,本发明不限于特定的网格网络类型。例如,在网格网络中,每个节点都可以与一个或多个相邻的节点连接,从而形成复杂的网络拓扑,以提供更多的冗余通信路径。本发明的数据转发方法可以适用于这种复杂的网络拓扑。\n[0102] 应当说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。\n[0103] 依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。本发明仅受权利要求书及其全部范围和等效物的限制。
法律信息
- 2021-10-29
专利权人的姓名或者名称、地址的变更
专利权人由上海芃矽半导体技术有限公司变更为上海矽力杰微电子技术有限公司
地址由200120 中国(上海)浦东新区自由贸易试验区耀华路251号一幢一层变更为200120 上海市浦东新区中国(上海)自由贸易试验区世博村路231号2单元3层328室
- 2019-05-17
- 2018-01-09
专利申请权的转移
登记生效日: 2017.12.21
申请人由矽力杰半导体技术(杭州)有限公司变更为上海芃矽半导体技术有限公司
地址由310012 浙江省杭州市文三路90号东部软件园科技大厦A1501变更为200120 (上海)浦东新区自由贸易试验区耀华路251号一幢一层
- 2016-07-13
实质审查的生效
IPC(主分类): H04L 12/713
专利申请号: 201610044731.5
申请日: 2016.01.21
- 2016-06-15
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-07-06
|
2011-03-17
| | |
2
| | 暂无 |
2004-12-30
| | |
3
| | 暂无 |
2003-06-23
| | |
4
| |
2015-12-02
|
2015-07-15
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |