发明内容
(一)要解决的技术问题
本发明提供一种微功率无线通信节点和一种微功率无线通信网络,能够解决现有技术中同一时刻需要发送大量数据,而易引发洪泛现象的技术问题。
(二)技术方案
为解决上述技术问题,本发明提供一种微功率无线通信节点,包括:数据发送单元、数据接收单元和处理单元,处理单元与数据发送单元、数据接收单元分别相连,其中:
数据发送单元,用于利用处理单元的处理结果,向邻居节点发送包含自身路由信息和友好节点路由信息的Hello包;利用深度优先算法发送或转发数据;
数据接收单元,用于接收由邻居节点发送的Hello包,接收邻居节点所发送的数据,并将结果发送至处理单元;
处理单元,用于根据接收到的所述邻居节点发送的Hello包,更新自身的友好节点路由信息并控制信息发送单元发送Hello包信息;处理数据接收单元所接收的数据;根据Hello包的信息判断友好节点的数据发送优先级,当友好节点路由信息中包含需发送的数据的目的地址时,根据数据发送优先级控制数据发送单元发送或转发数据。
进一步地,所述数据发送单元和数据接收单元都位于射频芯片中。
进一步地,所述处理单元包括:
链路更新子单元,用于判断并更新所述友好节点到发送该Hello包的邻居节点的链路质量信息;
和/或,邻居表子单元,用于根据所接收到的发送Hello包的邻居节点信息建立邻居表,所建立的邻居表包括:邻居节点地址、所接收的邻居节点信号的发射强度、与邻居节点的链路质量、与邻居节点的链路可靠度中的一个或多个信息;
和/或,优先级判定子单元,用于根据所述链路质量信息、所述邻居表判断该友好节点、邻居节点的数据发送优先级;
和/或,地址查询子单元,用于上电时向外部设备发起地址查询命令,将自身路由信息更改为外部设备地址;
和/或,数据判定子单元,用于处理数据接收单元所接收的数据,判断目的地址是否为自身,当是自身时,发送至外部数据收发子单元;当不是自身但在友好节点路由信息中时,发送至数据发送单元;当数据是自身发送并被邻居节点返回的数据时,则控制数据发送单元将数据发送给其他邻居节点;
和/或,外部数据收发子单元,用于接收外部设备发送的数据请求并发送至数据发送单元;接收需外部设备处理的数据,并将外部设备的回复发送至数据发送单元。
进一步地,
所述邻居表子单元包括:
链路可靠度计算模块,用于计算邻居节点的链路可靠度,计算公式为:
LR=A(SysRunTime/RecHelloTimes),
其中LR为链路可靠度,A为运算系数,与信号强度相关,SysRunTime为微功率无线通信节点上电后的运行时间,RecHelloTimes为微功率无线通信节点上电后接收到所述邻居节点发送的Hello包次数;
删除模块,用于当邻居节点故障无法发送Hello包时,将邻居节点信息从所述邻居表中去除;
所述优先级判定子单元包括:优先级降低模块,用于当邻居节点故障无法发送Hello包时,把所述邻居节点的数据发送优先级降低。
进一步地,
所述链路更新子单元、邻居表子单元、优先级判定子单元、地址查询子单元、数据判定子单元和外部数据收发子单元均位于中央处理器中;
所述处理单元还包括:晶振,与中央处理器相连,用于提供中央处理器的工作频率,控制数据发送单元按照固定的时间间隔向邻居节点发送包含自身路由信息和友好节点路由信息的Hello包;
所述晶振用于控制Hello包发送的的固定时间间隔为:3分钟;
所述晶振为32MHZ无源晶振。
进一步地,
所述节点还包括:射频晶振,与射频芯片相连,用于提供射频芯片的工作频率;
所述射频晶振为32MHZ无源晶振。
进一步地,所述节点还包括:
射频开关和功率放大器,用于控制射频信号输出并放大所输出的射频信号;
和/或,射频开关和低噪放大器,用于控制射频信号接收并对所接收的射频信号做低噪声放大、滤波处理;
和/或,天线,用于接收和发送射频信号。
进一步地,
所述中央处理器为:STM32芯片;
和/或,所述射频芯片为:SI4438芯片;
和/或,所述中央处理器和所述射频芯片之间通过串行外设接口相连。
和/或,所述中央处理器与外部设备连接的装置为:异步接收或发送装置。
进一步地,所述节点的通信频率为:470MHZ~510MHZ,发射功率为50mW。
另一方面,本发明还提供一种微功率无线通信网络,其特征在于,由多个上述任一项所述的微功率无线通信节点组成。
(三)有益效果
在本发明提出的一种微功率无线通信节点和一种微功率无线通信网络中,由网络中的每一个节点分别发送Hello包信息,从而能够将自身节点和友好节点的路由信息通过广播发送出去,并且可以根据从邻居节点接收到的信息来及时更新自身的友好节点路由信息。根据上述本发明法得到的路由信息可以判断友好节点数据发送的优先级,并在此基础上利用深度优先算法发送或转发数据,避免了同一时刻发送大量数据的做法,所传输的信息量较小,不会引起网络资源占用所造成的洪泛现象,从而增加了网络中节点的跳数,使得网络通信距离增加,网络覆盖范围也相应增加。
同时,本发明还能实时地更新邻居节点的状态,及时有效地发现邻居节点的故障并迅速去除并降低其数据发送优先级,实现了网络的智能自愈功能,保证了数据传输的正常进行和传输路径的优化选择。本发明的微功率无线通信方法通信距离远、穿透能力强,最大通信距离可以达到1200米。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例首先提出一种微功率无线通信节点,包括:数据发送单元101、数据接收单元102和处理单元103,处理单元103与数据发送单元101、数据接收单元102分别相连,其中:
数据发送单元101,用于利用处理单元103的处理结果,向邻居节点发送包含自身路由信息和友好节点路由信息的Hello包;利用深度优先算法发送或转发数据;
数据接收单元102,用于接收由邻居节点发送的Hello包,接收邻居节点所发送的数据,并将结果发送至处理单元103;
处理单元103,用于根据接收到的所述邻居节点发送的Hello包,更新自身的友好节点路由信息并控制信息发送单元发送Hello包信息;处理数据接收单元所接收的数据;根据Hello包的信息判断友好节点的数据发送优先级,当友好节点路由信息中包含需发送的数据的目的地址时,根据数据发送优先级控制数据发送单元发送或转发数据。
可见,在本发明实施例提出的一种微功率无线通信节点中,由网络中的每一个微功率无线通信节点分别发送Hello包信息,从而能够将自身节点和友好节点的路由信息通过广播发送出去,并且可以根据从邻居节点接收到的信息来及时更新自身的友好节点路由信息。根据上述本发明实施例得到的路由信息可以判断友好节点数据发送的优先级,并在此基础上利用深度优先算法发送或转发数据,避免了同一时刻发送大量数据的做法,所传输的信息量较小,不会引起网络资源占用所造成的洪泛现象,从而增加了网络中节点的跳数,使得网络通信距离增加,网络覆盖范围也相应增加。
在本发明实施例的具体实现中,如图2所示,优选地,数据发送单元101和数据接收单元102都位于射频芯片201中。
在本发明的一个实施例中,为了更好地掌握微功率无线通信节点的状态,优选地,处理单元103可以包括:链路更新子单元202,用于判断并更新友好节点到发送该Hello包的邻居节点的链路质量信息;在本发明的另一个实施例中,为了进一步掌握自身节点周围一跳传输范围内的邻居节点的信息,处理单元103还可以包括:邻居表子单元203,用于根据所接收到的发送Hello包的邻居节点信息建立邻居表,通过监听邻居节点发送的Hello包,来建立邻居表并取得邻居表节点信息。所建立的邻居表包括:邻居节点地址、所接收的邻居节点信号的发射强度、与邻居节点、与邻居节点的链路质量、与邻居节点的链路可靠度中的一个或多个信息。相应地,为了根据上述信息来判断数据发送优先级,处理单元103还可以包括:优先级判定子单元204,用于根据链路质量信息或邻居表判断友好节点或邻居节点的数据发送优先级:当友好节点的链路质量信息越高时,相应友好节点的数据发送优先级越高,反之则越低;当所接收到的邻居节点信号发射强度越强,与邻居节点的链路质量越好,链路可靠度越高时,邻居节点的数据发送优先级越高,反之,优先级则越低。
在本发明的另一个实施例中,优选地,处理单元103还可以包括:地址查询子单元205,用于当微功率无线通信节点刚上电时,向外部设备发起地址查询命令,建立正常通信之后,节点将自身的地址更改为外部设备的地址,该地址即为数据的目的地址。
在本发明的一个实施例中,优选地,处理单元103还可以包括:数据判定子单元206,用于用于处理数据接收单元所接收的数据,判断目的地址是否为自身,当是自身时,发送至外部数据收发子单元207;当不是自身但在友好节点路由信息中时,发送至数据发送单元101;当数据是自身发送并被邻居节点返回的数据时,则控制数据发送单元将数据发送给其他邻居节点。在本发明另一个实施例中,处理单元103还可以包括:外部数据收发子单元207,用于接收外部设备发送的数据请求并发送至数据发送单元101,或者接收需外部设备处理的数据,并将外部设备的回复发送至数据发送单元101。
在本发明的一个实施例中,优选地,邻居表子单元203可以包括:链路可靠度计算模块,用于计算邻居节点的链路可靠度,计算公式为:
LR=A(SysRunTime/RecHelloTimes),
其中LR为链路可靠度,A为运算系数,与信号强度相关,SysRunTime为微功率无线通信网络节点上电后的运行时间,RecHelloTimes为微功率无线通信网络节点上电后接收到所述邻居节点发送的Hello包次数。
在本发明另一个实施例中,还可以包括:删除模块,用于当邻居节点故障无法发送Hello包时,将邻居节点信息从所述邻居表中去除。邻居节点故障的判断依据是在有效时间(一个或几个Hello包周期)内,未收到已知邻居节点的Hello包。相应地,优选地,优先级判定子单元204还可以包括:优先级降低模块,用于用于当邻居节点故障无法发送Hello包时,把所述邻居节点的数据发送优先级降低。
在本发明的一个实施例中,优选地,可以采用中央处理器(MCU)208来进行数据的存储和处理,链路更新子单元202、邻居表子单元203、优先级判定子单元204、地址查询子单元205、数据判定子单元206和外部数据收发子单元207均可以位于中央处理器208中。在本发明的一个实施例中,为了提供中央处理器208的工作频率,控制数据发送单元101按照固定的时间间隔向邻居节点发送包含自身路由信息和友好节点路由信息的Hello包,优选地,处理单元103还可以包括:晶振209,与中央处理器208相连,以保证微功率无线通信节点能构更加及时有效地更新Hello包中的友好节点路由信息和邻居节点的动态。为了能够更好地适应Hello包的大小和更新要求,需要选择适当的时间间隔来发送和接收Hello包信息,时间过长则系统不能够及时获取最新信息,过短会导致应用数据传输困难。优选的,晶振209用于控制Hello包发送的的固定时间间隔为:3分钟。在本发明的实际应用中,需要选择合适参数的晶振来控制中央处理器208,优选地,晶振可以选择为32MHZ无源晶振。
在本发明的另一个实施例中,为了提供射频芯片的工作频率,优选地,微功率无线通信节点还可以包括:射频晶振210,与射频芯片201相连,射频晶振可以选择为32MHZ无源晶振。
在本发明的一个实施例中,为了对射频信号的接收和发送进行更好地控制,优选地,微功率无线通信节点还可以包括:射频开关211和功率放大器212,用于控制射频信号输出并放大所输出的射频信号;还可以包括:射频开关213和低噪放大器214,用于控制射频信号接收并对所接收的射频信号做低噪声放大、滤波处理,将频率不同的波过滤,然后将同波段的信号接收并处理;还可以包括:天线215,用于接收和发送射频信号。
在本发明的另一个实施例中,需要选择合适的芯片型号来满足节点配置的要求,优选的,中央处理器208可以选择:意法半导体公司的STM32芯片,该芯片具有运行速度高、处理能力强、价格低廉等特点;射频芯片201可以选择:芯科实验室(SiliconLabs)公司的无线通信芯片SI4438,该芯片具有外围电路简单、功耗低、价格低廉等优点。中央处理器208和射频芯片201之间可以通过串行外设接口(SPI)相连。优选地,中央处理器208与外部设备连接的装置为:异步接收或发送装置(UART)。
在本发明的另一个实施例中,为了适应行业应用中国家无线电管理委员会对国家无线电频谱划分的规定,将民用计量仪器仪表的无线电通信划分在470MHZ~510MHZ范围内,发射功率的最大限值为:50mW。所以优选地,本发明实施例中微功率无线通信节点的通信频率也为:470MHZ~510MHZ,发射功率为:50mW。
需要说明的是,上述图2所示的微功率无线通信节点的各个实施例的结构可以进行任意组合使用。
下面以具体描述一个微功率无线通信节点的工作结构为例,来详细说明本发明一个实施例的实现过程,具体实施例的装置原理框图如图3所示,本发明实施例的工作流程如图4所示,包括:
步骤401:给微功率无线通信节点上电。
微功率无线通信节点上电后,即处于工作状态,可以参与微功率无线通信网络的组建、数据的采集及传输。微功率无线通信节点刚上电时,首先向外部设备发起地址查询命令,建立正常通信之后,节点将自身的地址更改为外部设备的地址,该地址即为数据的目的地址。
步骤402:等待设定的时间间隔一一3分钟到达后,由中央处理器控制数据发送单元,发送包含自身节点路由信息的Hello包。
此时微功率无线通信节点还未曾接收过友好节点的路由信息,所以这里微功率无线通信节点能够发送的只有自身节点的路由信息。
在信息发送过程中,首先控制射频开关211打开,然后经过功率放大器212将射频信号放大并发送。
步骤403:由数据接收单元收到其他节点发送的无线数据,利用中央处理器208判断是否是Hello包,如果不是,则回到步骤402,继续等待重新接收;如果是,则进入步骤404。
在信息接收过程中,控制射频开关213一直处于接收状态,将信号通过低噪放大器214对天线215所接收的射频信号做低噪声放大、滤波处理,将频率不同的波过滤,然后将同波段的信号接收并处理
步骤404:利用中央处理器208解析出MAC层源地址,通过邻居表子单元203建立邻居表,并得到邻居表信息。
微功率无线通信节点根据监听接收到的Hello包中邻居节点的信息来建立邻居表并得到相应信息,这样可以更好地掌握自身节点周围一跳范围内的邻居节点的情况,其中邻居表包括:邻居节点地址、接收到的邻居节点发送信息的信号强度、与邻居节点的链路质量、与邻居节点的链路可靠度。
链路可靠度计算模块用来计算邻居表节点信息中链路可靠度的公式为:
LR=A(SysRunTime/RecHelloTimes)
其中,LR为链路可靠度,A为运算系数,与信号强度相关,SysRunTime为微功率无线通信节点上电后运行时间,RecHelloTimes为微功率无线通信节点上电后接收到所述邻居节点发送的Hello包次数。当接收到的Hello包次数越多时,邻居节点被认为越可靠,LR值相应的越小;相反地,接收到的Hello包次数越少,LR值越大,邻居节点越不可靠。
步骤405:由中央处理器解析收到的Hello包中友好节点的路由信息,创建友好节点列表和路由信息。
网络节点根据收到的其他节点的Hello包中信息,可以创建自身节点的友好节点列表,并存储友好节点的路由信息。
步骤406:继续等待设定的3分钟时间间隔后,发送包含自身节点路由信息、已收集的友好节点路由信息以及友好节点到自身节点链路质量信息的Hello包,其中链路质量信息根据链路更新子单元202来判断。
此时微功率无线通信节点发送的Hello包不仅包括了自身节点的路由信息,还包括了根据之前接收到Hello包所创建的友好节点列表和路由信息,另外为了更好地掌握微功率无线通信节点的状态,Hello包中还包括了友好节点到自身节点的链路质量信息。
步骤407:中央处理器根据收到的其他节点的无线数据,判断是否是Hello包。如果不是,则回到步骤402继续等待重新接收;如果是,则进入步骤408。
步骤408:解析MAC层源地址并检索邻居表子单元203:如果邻居表中没有该地址,则进行步骤409,如果邻居表中有该地址,进入步骤410。
步骤409:将收到的Hello包中解析出的该MAC层源地址添加至邻居表并添加相关信息。
邻居表中没有该MAC地址时,需要添加新地址和相关信息到邻居表中。
步骤410:将该MAC层源地址存在邻居表中的条目信息更新。
邻居节点的状态也在不断地变化,所以对于已存在的邻居表地址条目,也需要根据接收到的信息不断更新邻居表。
步骤411:解析收到的Hello包中友好节点的路由信息,检索友好节点路由信息列表:如果没有该路由信息,则进行步骤412;如果已经有该路由信息,进入步骤413。
步骤412:将收到的Hello包中解析出的该友好节点路由信息添加至友好节点列表。
此步骤中添加新的友好节点路由信息至友好节点列表。
步骤413:将该友好节点路由信息存在友好节点列表中的条目信息更新。
本步骤中即时地更新友好节点列表中条目信息可以得到该友好节点路由信息的最新状态。
步骤414:利用优先级判定子单元根据所接收到的Hello包中的友好节点链路质量信息和邻居表的信息判断数据发送优先级。
本步骤中,根据链路质量信息来判断友好节点的数据发送优先级,当友好节点的链路质量信息越高时,相应友好节点的数据发送优先级越高;反之则越低;根据邻居表的信息判断该邻居节点的数据发送优先级,当所接收到的邻居节点信号发射强度越强,与邻居节点的链路质量越好,链路可靠度越高时,邻居节点的数据发送优先级越高;反之,优先级则越低。
步骤415:节点A接收外部设备发送的数据请求并选择路由发送数据至节点H。
本发明实施例中,所形成的微功率无线通信网络如图5所示。
当外接设备有数据请求时,会向微功率无线通信节点发送数据请求,数据请求的数据经过处理后通过射频信号发送出去。本发明实施例中,节点A的外部设备需要发送数据至节点H,则会向节点A发送数据请求,节点A将数据进行处理,并通过深度优先算法选择路由将射频信号发送出去,图中的501-507表示了节点A选择路由的整个搜索过程。
其中,虚线表示友好节点,对于节点A而言,各节点之间的优先级按照字母顺序排列,为由B至H。在数据的发送过程中,首先由节点A根据数据发送优先级发送至B,而B会向C和E发送:其中节点E判断是由节点A发出的搜索,而自己没有再下一级节点,所以会返回给B未搜索到H;而节点C会再发送给D,D没有下级节点,所以会返回未搜索到H,一直返回到节点A。则节点A知道通过B和E都搜索不到H,会继续发送给节点F,由F到G再到H完成发送,并组建路由A-F-G-H,则由节点A发送的数据可以通过图5中的A-F-G-H路径发送至节点H。
这种深度优先算法的数据收发方式有效地避免了网络洪泛现象,并且当经过一定的Hello包收发周期之后,节点A可以依靠更新自己的友好节点列表和路由表信息,来直接定义到节点H的路由为:A-F-G-H,此后一旦有同样的数据发送请求,节点A就可以按照上述路由表中的路径信息直接发送,而无需执行上述的搜索程序。如果在数据发送过程中产生了故障节点,则首先判断路由表中是否还有其他路由,如果没有,则进行深度搜索重新查找新的路由。
步骤416:节点H接收节点A所发送的数据,判断数据的目的地址,处理数据并返回回复数据至节点A。
至此,则完成了本发明实施例中下面以具体对一个微功率无线通信网络进行组网,并由A节点向H节点进行无线通信的全过程。
另外,需要说明的是,上述基于图4的所有流程描述是本发明微功率无线通信节点结构的一种优选的实现过程,在本发明微功率无线通信节点结构的实际实现中,可以根据需要在图4所示流程的基础上进行任意变形,可以是选择图3、图4中的任意结构来实现,各结构的先后顺序也可以根据需要调整等。
本发明的一个实施例中,还提出了一种微功率无线通信网络,由多个上述任一发明实施例中的微功率无线通信节点组成。
可见,本发明实施例具有如下有益效果:
在本发明实施例提出的一种微功率无线通信节点和一种微功率无线通信网络中,由网络中的每一个节点分别发送Hello包信息,从而能够将自身节点和友好节点的路由信息通过广播发送出去,并且可以根据从邻居节点接收到的信息来及时更新自身的友好节点路由信息。根据上述本发明实施例得到的路由信息可以判断友好节点数据发送的优先级,并在此基础上利用深度优先算法发送或转发数据,避免了同一时刻发送大量数据的做法,所传输的信息量较小,不会引起网络资源占用所造成的洪泛现象,从而增加了网络中节点的跳数,使得网络通信距离增加,网络覆盖范围也相应增加。
同时,本发明实施例还能实时地更新邻居节点的状态,及时有效地发现邻居节点的故障并迅速去除并降低其数据发送优先级,实现了网络的智能自愈功能,保证了数据传输的正常进行和传输路径的优化选择。本发明实施例的微功率无线通信方法通信距离远、穿透能力强,最大通信距离可以达到1200米。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。