1.本发明涉及蓝牙通信技术领域,具体涉及一种基于中继蓝牙节点实现的中继广播方法及蓝牙中继系统。
背景技术:
2.蓝牙技术是一种低成本的近距离无线通信技术,蓝牙通信方法主要分为连接通信和广播通信两种。
3.连接通信即设备间通过建立连接的方法进行通信,采用连接通信的方法需要建立连接、保持连接并定期检测连接状态。连接的建立与保持需要进行高频率的数据收发,因此连接通信增大了设备的功耗,并且,蓝牙设备建立连接的数目具有上限,若同时连接的设备数量过多,会导致蓝牙通信效率下降或通信异常。
4.广播通信即设备间无需建立连接,发送方通过广播的方式发送数据,接收方接收一定范围内所有的广播数据,从而实现通信。采用广播的通信方式相较于连接的方式具有更低的功耗。使用广播通信方法的蓝牙通信系统内,通常采用泛洪的方法进行通信,即一个设备发送广播数据后,其周围一定范围内的所有蓝牙设备都能够接收到该广播数据并进行转发,广播数据不断转发,直至数据转发到达目标接收设备。该方法的弊端在于,由于发送广播数据的设备的周围一定范围内的所有设备都能够接收到该广播数据并进行转发,因此,广播数据的传递是无向的,在较坏的情况下,广播数据的传递方向甚至可能与目标接收设备所在方向完全相反,产生不必要的转发,随着蓝牙通信系统中设备数量的增加,一条广播消息被转发的次数大大增加,由此增大带宽消耗,可能导致网络堵塞,降低通信效率。
5.因此,如何避免不必要的带宽消耗,并提高通信效率成为亟待解决的技术问题。
技术实现要素:
6.基于上述现状,本发明的主要目的在于提供基于中继蓝牙节点实现的中继广播方法与蓝牙中继系统,以避免不必要的带宽消耗,并提高通信效率。
7.为实现上述目的,本发明采用的技术方案如下:
8.第一方面,本实施例公开了一种基于中继蓝牙节点实现的中继广播方法,用于蓝牙中继系统中蓝牙主节点和蓝牙子节点之间的广播通信,蓝牙中继系统包括蓝牙主节点和若干蓝牙子节点,中继蓝牙节点为蓝牙子节点,该方法包括:
9.步骤s100,在蓝牙中继系统中,第一蓝牙节点通过广播第一广播数据向目标方发起通信,第一广播数据中加载了通信路径信息,通信路径信息包含了转发第一广播数据的中继蓝牙节点的中继标识,以指明按序转发第一广播数据的中继蓝牙节点;第一蓝牙节点为蓝牙主节点,目标方为若干蓝牙子节点中的一个节点,或者,第一蓝牙节点为若干蓝牙子节点中的一个节点,目标方为蓝牙主节点;
10.步骤s200,第二蓝牙节点解析通信路径信息得到各个中继标识;第二蓝牙节点为接收到第一广播数据的蓝牙子节点;
11.步骤s300,第二蓝牙节点依据各个中继标识确定是否指向自身为中继蓝牙节点;当第二蓝牙节点确定自身为中继蓝牙节点时,则执行步骤s400;
12.步骤s400,第二蓝牙节点转发第一广播数据,以使第一广播数据传向第二蓝牙节点之后的下一个中继蓝牙节点;
13.重复执行步骤s200、步骤s300和步骤s400,以使第一广播数据按序由各个中继蓝牙节点传向目标方。
14.优选地,在步骤s300中,当第二蓝牙节点确定自身不是中继蓝牙节点时,则执行步骤s500;
15.步骤s500,在中继蓝牙节点转发第一广播数据期间进入低功耗模式。
16.优选地,中继标识包括位层标识与设备标识,位层标识唯一确定一层位层,同位层内蓝牙节点的设备标识唯一确定一个蓝牙节点,其中,蓝牙主节点位于第1层位层,若干蓝牙子节点按梯度排布于除第1层位层之外的各位层中。
17.优选地,在步骤s100中,通信路径信息中的各个中继标识按各个中继蓝牙节点转发第一广播数据的顺序排布得到中继标识序列,以使第一广播数据经由各个中继蓝牙节点按序传向目标方。
18.优选地,步骤s200还包括:第二蓝牙节点解析第一广播数据得到中继标识序列;
19.在步骤s300中,第二蓝牙节点确定自身的中继标识是否为中继标识序列中下一个中继标识,下一个中继标识为下一个中继蓝牙节点的中继标识,下一个中继蓝牙节点为排布于发送第一广播数据的蓝牙节点之后的中继蓝牙节点,当第二蓝牙节点确定自身的中继标识为中继标识序列中下一个中继标识时,第二蓝牙节点执行步骤s400。
20.优选地,当第一蓝牙节点为若干蓝牙子节点中的一个节点,目标方为蓝牙主节点时,在重复执行步骤s200、步骤s300和步骤s400中,顺序执行步骤s200和步骤s300。
21.优选地,当第一蓝牙节点为蓝牙主节点,目标方为若干蓝牙子节点中的一个节点时,在步骤s200和步骤s300之间,还包括:
22.步骤s210,第二蓝牙节点判断自身是否为目标方;当第二蓝牙节点不是目标方时,第二蓝牙节点执行步骤s300;当第二蓝牙节点是目标方时,第二蓝牙节点以目标方的身份执行步骤s600;
23.步骤s600,当目标方接收到第一广播数据时,解析第一广播数据得到第一蓝牙节点发送的通信数据。
24.优选地,在步骤s100之前,还包括:
25.步骤s001,当第一蓝牙节点初次向目标方发起通信时,第一蓝牙节点广播第一广播数据;
26.步骤s002,当第三蓝牙节点所在位层相对于广播第一广播数据的蓝牙节点更靠近目标方时,第三蓝牙节点将自身的中继标识写入第一广播数据中,并广播更新后的第一广播数据,其中第三蓝牙节点为接收到第一广播数据的蓝牙节点;
27.步骤s003,重复执行步骤s002,以使第一广播数据不断被更新,并逐层传向目标方;
28.步骤s004,目标方解析接收到的第一广播数据,得到通信路径信息。
29.优选地,在步骤s400之后还包括:
30.当第二蓝牙节点发送预设次数第一广播数据后均未被下一个中继蓝牙节点接收时:
31.第二蓝牙节点通过与下一个中继蓝牙节点同位层的蓝牙节点向目标方转发第一广播数据;或者,
32.第二蓝牙节点通过与第二蓝牙节点同位层的蓝牙节点向目标方转发第一广播数据。
33.第二方面,本实施例公开了一种蓝牙中继系统,包括蓝牙主节点和若干蓝牙子节点;
34.蓝牙主节点和若干蓝牙子节点之间采用如上述第一方面公开的方法实现中继广播。
35.依据本发明实施例公开的一种基于中继蓝牙节点实现的中继广播方法及蓝牙中继系统,在蓝牙中继系统中,第一蓝牙节点向目标方发起通信时,第一蓝牙节点广播加载有通信路径信息的第一广播数据,其中通信路径信息包含转发第一广播数据的中继蓝牙节点的中继标识,使得接收到该第一广播数据的第二蓝牙节点能够基于通信路径信息确定自身是否需要对第一广播数据进行转发,也就是说,位于通信路径上的第二蓝牙节点对第一广播数据进行转发,不在通信路径上的第二蓝牙节点接收到该第一广播数据时不需要对其进行转发,即通信路径信息中包含其中继标识的第二蓝牙节点对接收到的第一广播数据进行转发,通信路径信息中不包括其中继标识的第二蓝牙节点对接收到的该第一广播数据不进行转发,从而使得第一广播数据按通信路径有序向目标方传递,一方面,确保广播数据收发的针对性,提高了广播通信效率,另一方面,避免了多个蓝牙节点接收到同一蓝牙节点发送的第一广播数据时,多个蓝牙节点同时对该第一广播数据进行转发,即避免冗余的数据转发,从而避免网络堵塞。
36.本发明的其他有益效果,将在具体实施方式中通过具体技术特征和技术方案的介绍来阐述,本领域技术人员通过这些技术特征和技术方案的介绍,应能理解所述技术特征和技术方案带来的有益技术效果。
附图说明
37.以下将参照附图对本发明优选实施方式进行描述。图中:
38.图1为本实施例公开的一种基于中继蓝牙节点实现的中继广播方法流程图;
39.图2为本实施例公开的蓝牙节点模块示例性结构示意图;
40.图3为本实施例公开的蓝牙中继系统的示例性示意图。
具体实施方式
41.以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分,为了避免混淆本发明的实质,公知的方法、过程、流程、元件并没有详细叙述。
42.此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
43.除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似
词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
44.在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
45.为了降低蓝牙通信系统功耗,并避免广播数据的无序传递,本实施例公开了一种基于中继蓝牙节点实现的中继广播方法及蓝牙中继系统,请参考图1,为本实施例公开的一种基于中继蓝牙节点实现的中继广播方法流程图,该方法用于蓝牙中继系统中蓝牙主节点和蓝牙子节点之间的广播通信,该蓝牙中继系统包括多个蓝牙节点,多个蓝牙节点包括蓝牙主节点和若干蓝牙子节点。本实施例中,蓝牙主节点可以为带蓝牙功能的系统级芯片(system on chip,soc),也可以为其他带蓝牙功能的设备,如pc等,用于汇总蓝牙子节点的数据,蓝牙主节点连接至服务器、网关等设备以将汇总处理后的数据发送至电脑或服务器;蓝牙子节点可以为带蓝牙功能的系统级芯片,或微控制单元(microcontroller unit,mcu)与蓝牙模块的组合等设备,蓝牙子节点用于检测自身传感器、发送自身的数据或转发其它蓝牙节点的数据。蓝牙中继系统是指,对于由蓝牙主节点与若干蓝牙子节点构成的蓝牙通信系统中,蓝牙主节点和蓝牙子节点之间能够通过其它蓝牙节点中继通信的蓝牙通信系统。
46.请参见图2,为本实施例公开的蓝牙节点模块示例性结构示意图,蓝牙主节点与蓝牙子节点具有相似的模块结构,每个蓝牙节点均包括收发模块、记录模块、处理模块,在具体实施例中,收发模块用于接收、发送广播数据,收发模块包括广播单元与接收单元,广播单元用于发送广播数据;接收单元用于接收广播数据;记录模块用于记录本蓝牙节点的关键信息,如本蓝牙节点的节点唯一标识;处理模块用于定时唤醒接收模块以接收广播数据、比对接收到的广播数据中的信息与记录模块中记载的信息、修改记录模块中的信息及控制广播模块广播数据。在具体实施过程中,可以根据实际需要来对蓝牙节点进行模块划分,或进行模块功能的调整,例如:将收发模块拆分为广播模块与接收模块,以减小各模块功能的耦合。本实施例中,示例性地,蓝牙节点的工作状态包括接收状态、广播状态与休眠状态:当蓝牙节点处于接收状态时,可以接收其周围其他蓝牙节点发送的广播数据;当蓝牙节点处于广播状态,蓝牙节点发送广播数据;当蓝牙节点处于休眠状态,蓝牙节点不收发广播数据,功耗较低。蓝牙通信系统中的蓝牙节点通常工作在接收并定时休眠状态,即在接收状态下周期性的进入休眠状态,一方面不影响蓝牙节点正常的接收功能,另一方面降低功耗,延长蓝牙节点使用时长;当蓝牙节点需要发送广播数据时,蓝牙节点工作在广播并定时接收状态,即在广播状态下周期性的进入接收状态以接收其它蓝牙节点发送的广播数据,在自身发送广播数据的同时不影响接收其他广播数据。
47.请参见图1,本实施例中基于中继蓝牙节点实现的中继广播方法包括步骤s100、s200、s300及s400,其中:
48.步骤s100,在蓝牙中继系统中,第一蓝牙节点通过广播第一广播数据向目标方发起通信。本实施例中,第一广播数据中加载了通信路径信息,通信路径信息包含了转发第一广播数据的中继蓝牙节点的中继标识,以指明按序转发第一广播数据的中继蓝牙节点;第一蓝牙节点为蓝牙主节点,目标方为若干蓝牙子节点中的一个节点,或者,第一蓝牙节点为
若干蓝牙子节点中的一个节点,目标方为蓝牙主节点。
49.本实施例中,蓝牙节点具有唯一确定的中继标识,从而基于中继标识即可唯一确定一个蓝牙节点,第一广播数据中加载的通信路径信息中包含了转发第一广播数据的中继蓝牙节点的中继标识,从而基于通信路径信息即可确定该第一广播数据在传递过程中需经由的各个中继蓝牙节点,以便后续第一广播数据的传递。
50.在具体实施例中,蓝牙中继系统的位层数不限,但不少于三个位层,每个位层中至少包含有一个蓝牙节点,各位层呈梯度排布,也就是说,第i层位层高于第i 1层位层,或第i层位层低于第i 1层位层(i为正整数),为便于理解,本实施例中,以第i层位层高于第i 1层位层进行说明。
51.本发明实施例中,中继标识包括位层标识与设备标识,位层标识唯一确定一层位层,同位层内蓝牙节点的设备标识唯一确定一个蓝牙节点,其中,蓝牙主节点位于第1层位层,若干蓝牙子节点按梯度排布于除第1层位层之外的各位层中。
52.请参见图3,为本实施例公开的蓝牙中继系统的示例性示意图。蓝牙中继系统共具有四个位层w0、w1、w2及w3,各位层呈梯度排布,第1层位层w0高于第2层位层w1,第2层位层w1高于第3层位层w2,并以此类推;蓝牙主节点100位于第1层位层w0,蓝牙子节点101至蓝牙子节点104位于第2层位层w1,蓝牙子节点105至蓝牙子节点112位于第3层位层w2,蓝牙子节点113至蓝牙子节点124位于第4层位层。
53.在可选地实施例中,通过设定接收信号强度指示(received signal strength indication,rssi)的范围来逐层确定各蓝牙节点的位层。示例性地,蓝牙节点100为蓝牙主节点,其位于第1层位层,蓝牙节点100的预置rssi范围如图1中虚线圆201所示,即在该虚线圆201范围内,接收到蓝牙节点100发送的广播数据时,接收信号的信号强度达到了预置值,确定在该范围内的蓝牙节点101至蓝牙节点104的位层为第2层位层;蓝牙节点101的预置rssi范围如图3中虚线圆202所示,在该范围内有四个蓝牙节点,分别为蓝牙节点100、蓝牙节点102、蓝牙节点104与蓝牙节点105,其中蓝牙节点100、蓝牙节点102与蓝牙节点104已确定位层,不对其进行更改,确定蓝牙节点105的位层为第3层位层,以此类推,确定各蓝牙节点的位层。还可以通过人工设定的方式确定各蓝牙节点的位层。
54.在可选地实施例中,约束第i层位层的蓝牙节点与第i-1至第i 1层位层的蓝牙节点直接通信,与其他位层的蓝牙节点通过第i-1至第i 1层位层的蓝牙节点转发广播数据进行间接通信,使得广播数据基于位层逐层有序传递;进一步地,通过最大化地设置位层范围,可以使得数据传输过程中经过较少的转发即可到达目标方,提高通信效率,也就是说,位于第i层的任意一个蓝牙节点的预置rssi范围内,只包含第i-1至第i 1层位层的蓝牙节点。
55.蓝牙主节点与蓝牙子节点均具有中继标识,中继标识唯一确定一个蓝牙节点。可选地,所有蓝牙节点均具有其唯一确定的中继标识wxdy,其中,wx为位层标识,表示蓝牙节点位于第x层位层,具体地,位层标识可以是字母、数字和符号中的一种或任意组合;dy为设备标识,表示蓝牙节点的设备号为y,具体地,设备标识可以是字母、数字和符号中的一种或任意组合。本实施例中,各个蓝牙节点的中继标识互不相同,可以是位层标识不同,也可以是设备标识不同,还可以是位层标识与设备标识都不同;在具体实施过程中,异位层间蓝牙节点的设备标识可以相同也可以不同,但同位层内蓝牙节点的设备标识各不相同。示例性
地,蓝牙主节点100的节点唯一标识为w0d0,位层标识w0表示第1层位层,设备标识d0表示其在第1层位层w0中的设备号为d0;再例如蓝牙子节点102的节点唯一标识为w1d2,位层标识w1表示第2层位层,设备标识d2表示其在第2层位层w1中的设备号为d2。
56.本实施例中,梯度排布的位层设置使得各蓝牙子节点相对于蓝牙主节点的位置易于衡量,明确了各蓝牙子节点之间的层级关系;中继标识的设置方式使得基于中继标识可唯一确定一个蓝牙节点,同时基于中继标识能够确定一个蓝牙节点所属的位层,从而确定该蓝牙节点相较于蓝牙主节点的距离远近,便于后续数据传输。
57.进一步地,多个蓝牙节点中,位于第m层位层的蓝牙节点与第n层位层的蓝牙节点经由第m层和第n层之间的位层中的蓝牙节点逐层传递通信信息,其中,m和n为正整数,|m-n|≥2。
58.优选地,蓝牙节点与同位层或相邻位层的蓝牙节点直接通信,并通过同位层或相邻位层的蓝牙节点与其它位层的蓝牙节点间接通信。本实施例中,通过约束蓝牙节点直接通信的范围为相邻位层或同位层,一方面使得数据有序地进行传递,另一方面通过将直接通信的距离约束在一定范围内,减小因信号不稳定造成的丢包现象,有效降低丢包率,保证通信质量。
59.优选地,蓝牙中继系统中的通信数据单向传递,也就是说,当广播数据从高位层向低位层逐层传递时,高位层蓝牙节点不转发低位层蓝牙节点发送的该广播数据;当通信数据从低位层向高位层逐层传递时,低位层蓝牙节点不转发高位层蓝牙节点发送的该广播数据;从而保证广播数据不向远离目标方的位层传递,提高数据传输效率。
60.可选地,在步骤s100之前,还包括:
61.步骤s001,当第一蓝牙节点初次向目标方发起通信时,第一蓝牙节点广播第二广播数据;
62.步骤s002,当第三蓝牙节点所在位层相对于广播第二广播数据的蓝牙节点更靠近目标方时,第三蓝牙节点将自身的中继标识写入第二广播数据中,并广播更新后的第二广播数据,其中第三蓝牙节点为接收到第二广播数据的蓝牙节点;
63.步骤s003,重复执行步骤s002,以使第二广播数据不断被更新,并逐层传向目标方;
64.步骤s004,目标方解析接收到的第二广播数据,得到通信路径信息。
65.本实施例中,第一蓝牙节点发送的第二广播数据中包括第一蓝牙节点的中继标识与目标方的中继标识,从而当第三蓝牙节点接收到第二广播数据时,解析后即能够确定第一蓝牙节点与目标方的中继标识,继而确定自身是否需要对该第二广播数据进行转发;若确定自身需要对该第二广播数据进行转发,第二广播数据的蓝牙节点按序将自身的中继标识写入第二广播数据中,以更新第二广播数据中的通信路径信息,并广播更新后的第二广播数据,使其传向下一个更靠近目标方的蓝牙节点(位层更靠近目标方所在位层的蓝牙节点);当目标方接收到第二广播数据时,解析第二广播数据即可得到第一蓝牙节点与目标方之间的通信路径信息。
66.请参见图3,示例性地,当蓝牙节点116(第一蓝牙节点)初次向蓝牙节点100(目标方)发起通信时,蓝牙节点广播包含有自身的中继标识w3d4与蓝牙节点100的中继标识w0d0的第二广播数据,蓝牙节点107(第三蓝牙节点)接收到该第二广播数据,且蓝牙节点107所
在位层(w2)相对于蓝牙节点116所在位层(w3)更靠近蓝牙节点100所在位层(w0),蓝牙节点107将自身的中继标识(w2d3)写入第二广播数据中,更新后的第二广播数据中的通信路径信息中,中继标识为w2d3,蓝牙节点107广播更新后的第二广播数据,以此类推,蓝牙节点102更新后的第二广播数据中的通信路径信息中,中继标识依次为w2d3、w1d2,蓝牙节点100接收到蓝牙节点102发送的第二广播数据后解析得到的通信路径信息包括按序排列的中继标识w2d3、w1d2。
67.本实施例中,蓝牙节点基于位层确定是否需要对接收到的第二广播数据进行转发,从而使得第二广播数据按位层逐层传向目标方,减少了不必要的数据转发,从而减少带宽消耗;同时由于第二广播数据按位层逐层传向目标方,使得得到的通信路径信息中的路径是较优的,提高后续第一蓝牙节点与目标方之间的通信效率。
68.优选地,当第一蓝牙节点为蓝牙主节点,目标方为蓝牙子节点时,第三蓝牙节点接收到第二广播数据时,判断自身是否为目标方,当第三蓝牙节点确定自身为目标方时,执行步骤s004;当第三蓝牙节点确定自身不是目标方时,第三蓝牙节点基于位层确定自身是否需要将自身的中继标识写入第二广播数据中,并广播更新后的第二广播数据;本实施例中,第三蓝牙节点判断自己是否为目标方,若是目标方,直接解析第二广播数据即可,无需再进行转发,一方面减少不必要的转发,从而减少对其他蓝牙节点的干扰,减少带宽消耗,另一方面跳过不必要的广播数据更新、转发步骤,提高通信效率。
69.优选地,当第一蓝牙节点为蓝牙子节点,目标方为蓝牙主节点时,第三蓝牙节点接收到第二广播数据时,第三蓝牙节点直接判断自身是否需要将自身的中继标识写入第二广播数据中,并广播更新后的第二广播数据;本实施例中第三蓝牙节点无需判断自己是否为目标方,减少判断从而简化了业务逻辑,易于后期维护,并且减少不必要的判断步骤提高了通信效率。
70.可选地,通信路径信息中的各个中继标识按各个中继蓝牙节点转发第一广播数据的顺序排布得到中继标识序列,以使第一广播数据经由各个中继蓝牙节点按序传向目标方。
71.请参见图3,示例性地,蓝牙节点116向蓝牙节点100发起通信时,发送的第一广播数据中加载的通信路径信息包括中继标识w1d2与中继标识w2d3,即蓝牙节点116与蓝牙节点100的通信经由中继蓝牙节点102与中继蓝牙节点107,通信路径信息中中继蓝牙节点102与中继蓝牙节点107的中继标识以w2d3、w1d2的顺序排布,得到中继标识序列w2d3
→
w1d2。
72.本实施例中,各个中继蓝牙节点的中继标识按第一广播数据途经各个中继蓝牙节点的顺序写入第一广播数据中,从而使得第一广播数据中记录有各个中继蓝牙节点的传递顺序,使得接收到第一广播数据的蓝牙节点解析该第一广播数据即可得到该第一广播数据经由的各个中继蓝牙节点及该第一广播数据经由该各个中继蓝牙节点的顺序,第一广播数据基于通信路径信息被传递即可确保第一广播数据有序向目标方传递。
73.请参见图1,步骤s200,第二蓝牙节点解析所述通信路径信息得到各个中继标识;所述第二蓝牙节点为接收到所述第一广播数据的蓝牙子节点。
74.请参见图1,步骤s300,第二蓝牙节点依据所述各个中继标识确定是否指向自身为中继蓝牙节点;当第二蓝牙节点确定自身为中继蓝牙节点时,则执行步骤s400。
75.在具体实施例中,通信路径信息中包含了转发第一广播数据的中继蓝牙节点的中
继标识,当通信路径信息中的中继标识包括第二蓝牙节点的中继标识时,确定第二蓝牙节点为中继蓝牙节点。
76.请参见图3,示例性地,当蓝牙节点116(第一蓝牙节点)向蓝牙节点100(目标方)发起通信时,第一广播数据中的中继标识序列为w3d4
→
w2d3
→
w1d2
→
w0d0,当蓝牙节点115接收到蓝牙节点116发送的第一广播数据后,蓝牙节点115解析通信路径信息得到各个中继标识,即w3d4、w2d3、w1d2与w0d0,不包括蓝牙节点115的中继标识w3d3,因此,蓝牙节点115确定自身不是中继蓝牙节点;当蓝牙节点107(第二蓝牙节点)接收到蓝牙节点116发送的第一广播数据后,解析通信路径信息得到各个中继标识,其中包括蓝牙节点107的中继标识w2d3,因此,蓝牙节点107确定自身是中继蓝牙节点。
77.本实施例中,第二蓝牙节点首先确定自身是否为中继蓝牙节点,当确定自身为中继蓝牙节点后才会对第一广播数据进行转发,也就是当确定自身为通信路径中的中继蓝牙节点后转发第一广播数据,非通信路径中的中继蓝牙节点不转发第一广播数据,一方面,使得第一广播数据按通信路径有序向目标方传递,另一方面,减少不必要的数据转发,从而减少带宽消耗,避免网络堵塞,减小通信系统功耗。
78.请参见图1,可选地,在步骤s300中,当第二蓝牙节点确定自身不是中继蓝牙节点时,则执行步骤s500;步骤s500,在中继蓝牙节点转发第一广播数据期间进入低功耗模式。
79.本实施例中,低功耗模式是指在该模式下的蓝牙节点相较于在广播状态下的蓝牙节点具有更低的功耗,通常是蓝牙节点进入睡眠并定时唤醒接收状态,即在睡眠过程中定时唤醒接收广播数据,进一步降低功耗,延长蓝牙设备使用时长。
80.在具体实施例中,当第二蓝牙节点确定自身是中继蓝牙节点后,第二蓝牙节点工作在广播并定时接收状态,在广播期间对第一广播数据进行转发;当第二蓝牙节点确定自身不是中继蓝牙节点后,第二蓝牙节点不需要对第一广播数据进行转发,第二蓝牙节点工作在接收并定时休眠状态,在对应的广播第一广播数据的时间段进入休眠状态。
81.本实施例中,蓝牙节点在不需要发送广播数据的时候进入低功耗模式,一方面,低功耗模式降低了蓝牙节点的功耗,延长蓝牙设备的使用时长,另一方面,蓝牙节点处于低功耗模式中的休眠状态时,不进行数据的收发,避免占用宽带。
82.可选地,步骤s200还包括:第二蓝牙节点解析第一广播数据得到中继标识序列;
83.在步骤s300中,第二蓝牙节点确定自身的中继标识是否为中继标识序列中下一个中继标识,当第二蓝牙节点确定自身的中继标识为中继标识序列中下一个中继标识时,第二蓝牙节点执行步骤s400。本实施例中,下一个中继标识为下一个中继蓝牙节点的中继标识,下一个中继蓝牙节点为排布于发送第一广播数据的蓝牙节点之后的中继蓝牙节点,
84.本实施例中,发送第一广播数据的蓝牙节点的中继标识记为第一中继标识,下一个中继蓝牙节点为排布于发送第一广播数据的蓝牙节点之后的中继蓝牙节点,即下一个中继蓝牙节点对应的下一个中继标识在中继标识序列中位于第一中继标识之后。当第二蓝牙节点确定自身的中继标识为下一个中继标识时才转发相应的第一广播数据,使得不在第一广播数据加载的通信路径中的蓝牙节点对该第一广播数据不进行转发,一方面使第一广播数据有序传向目标方,另一方面减少冗余的转发,从而减少带宽消耗,避免网络堵塞,提高系统内通信效率。
85.在优选地实施例中,下一个中继标识与第一中继标识在中继标识序列中位于相邻
位置,即当下一个中继标识为第一中继标识之后的第一个中继标识时,下一个中继标识对应的中继蓝牙节点转发相应的第一广播数据,也就是说,与第一中继标识对应的中继蓝牙节点非相邻的蓝牙节点不对该第一广播数据进行转发。第二蓝牙节点确定自身为发送第一广播数据的蓝牙节点之后相邻的下一个中继蓝牙节点时才会对第一广播数据进行转发,即一个指定的蓝牙节点对另一个指定的蓝牙节点发送的第一广播数据进行转发,一方面确保了广播数据收发的针对性,提高了广播效率,另一方面,当多个中继蓝牙节点距离较近时,避免了当多个中继蓝牙节点同时接收到同一蓝牙节点发送的第一广播数据时,多个中继蓝牙节点都对该第一广播数据进行转发而产生的干扰,保证通信质量,同时确保第一广播数据有序传向目标方。
86.第一广播数据中包含了发送该第一广播数据的蓝牙节点的中继标识,第二蓝牙节点接收到第一广播数据后解析即可确定发送该第一广播数据的蓝牙节点的中继标识,同时,第一广播数据中包括中继标识序列,因此,第二蓝牙节点基于该中继标识序列能够确定自身的中继标识是否为下一个中继标识,即确定自身是否为下一个对该第一广播数据进行转发的中继蓝牙节点。
87.请参见图3,示例性地,当蓝牙节点116(第一蓝牙节点)向蓝牙节点100(目标方)发起通信时,第一广播数据中的中继标识序列为w3d4
→
w2d3
→
w1d2
→
w0d0,当蓝牙节点107接收到蓝牙节点116发送的第一广播数据后,解析第一广播数据得到中继标识序列,确定自身的中继标识为下一个中继标识,因此,蓝牙节点107确定自身是中继蓝牙节点并转发该第一广播数据;当蓝牙节点102(第二蓝牙节点)接收到蓝牙节点116发送的第一广播数据后,解析得到中继标识序列,继而确定自身的中继标识虽然位于发送该第一广播数据的蓝牙节点的中继标识之后,但不是下一个中继标识,因此,蓝牙节点102在接收到蓝牙节点116发送的第一广播数据后不转发该第一广播数据,但当蓝牙节点102接收到蓝牙节点107发送的第一广播数据后,解析确定自身是下一个中继蓝牙节点,对蓝牙节点107发送的第一广播数据进行转发。
88.请参见图1,步骤s400,第二蓝牙节点转发第一广播数据,以使第一广播数据传向第二蓝牙节点之后的下一个中继蓝牙节点。
89.本实施例中,第一广播数据中加载了通信路径信息,使得接收到第一广播数据的蓝牙节点能够确定自身是否需要对第一广播数据进行转发,从而使第一广播数据逐个经由通信路径中的中继蓝牙节点有序转发,传递到达目标方,非通信路径中的蓝牙节点不对第一广播数据进行转发,减少了不必要的转发,从而减少带宽消耗,避免网络堵塞。
90.此外,由于非通信路径中的蓝牙节点不对第一广播数据进行转发,减少了不必要的转发,从而减小了蓝牙通信系统的功耗,延长系统内各蓝牙设备的使用时长。
91.需要说明的是,当蓝牙主节点在一个时段内分别向多个蓝牙子节点发起通信时,或多个蓝牙子节点在同一时段内向蓝牙主节点发起通信时,当某一个第二蓝牙节点接收到多个不同的第一广播数据时,各个第一广播数据的传递秩序不会互相干扰,也就是说,第二蓝牙节点分别解析各个第一广播数据得到各个第一广播数据中的中继标识,并确定自身相对于各个第一广播数据来说是否为中继蓝牙节点,对于确定自身是相应中继蓝牙节点的第一广播数据进行转发,否则不转发,使得蓝牙中继系统中存在多个广播通信时,各个广播数据的传递互不干扰,能够分别依据其加载的通信路径信息有序向各自的目标方传递。
92.请参见图1,本实施例中,重复执行步骤s200、步骤s300和步骤s400,以使第一广播数据按序由各个中继蓝牙节点传向目标方。
93.请参见图1,可选地,当第一蓝牙节点为若干蓝牙子节点中的一个节点,目标方为蓝牙主节点时,在重复执行步骤s200、步骤s300和步骤s400中,顺序执行步骤s200和步骤s300。
94.在具体实施过程中,当蓝牙子节点向蓝牙主节点发起通信时,接收到第一广播数据的第二蓝牙节点确定自身为蓝牙子节点,不是蓝牙主节点,因此,第二蓝牙节点不是目标方,直接执行后续步骤s300与步骤s400。
95.本实施例中,当蓝牙子节点向蓝牙主节点发起通信时,接收到第一广播数据的第二蓝牙节点无需判断自己是否为目标方,一方面,减少判断简化了业务逻辑,便于后期维护,另一方面,减少判断步骤,提高通信效率。
96.可选地,第一蓝牙节点为蓝牙主节点,目标方为若干蓝牙子节点中的一个节点时,在步骤s200和步骤s300之间,还包括:
97.步骤s210,第二蓝牙节点判断自身是否为目标方;当第二蓝牙节点不是目标方时,第二蓝牙节点执行步骤s300;当第二蓝牙节点是目标方时,第二蓝牙节点执行步骤s600;
98.步骤s600,解析第一广播数据得到第一蓝牙节点发送的通信数据。
99.在具体实施过程中,当蓝牙主节点向蓝牙子节点发起通信时,接收到第一广播数据的第二蓝牙节点首先判断自己是否为目标方,即判断自己是否为目标接收的蓝牙子节点,若不是目标方,则继续执行步骤s300,判断自身是否为中继蓝牙节点;若是目标方,则无需执行后续步骤s300与步骤s400,解析即可得到第一蓝牙节点发送的数据。
100.本实施例中,当蓝牙主节点向蓝牙子节点发起通信时,接收到第一广播数据的第二蓝牙节点判断自己是否为目标方,若是目标方,直接解析第一广播数据即可,跳过不必要的判断、转发步骤,提高通信效率。
101.可选地,在步骤s400之后还包括:
102.当第二蓝牙节点发送预设次数第一广播数据后均未被下一个中继蓝牙节点接收时:
103.第二蓝牙节点通过与下一个中继蓝牙节点位于同位层的蓝牙节点向目标方转发第一广播数据;或者,
104.第二蓝牙节点通过与第二蓝牙节点位于同位层的蓝牙节点向目标方转发第一广播数据。
105.具体地,第二蓝牙节点在广播第一广播数据达到一定次数或一定时长后仍未被下一个中继蓝牙节点接收时,下一个中继蓝牙节点可能出现异常,需要通过其他蓝牙节点向目标方发送第一广播数据,第二蓝牙节点发送具有预置格式的广播数据,使得与第二蓝牙节点位于同位层或与下一个中继蓝牙节点位于同位层的蓝牙节点转发该第一广播数据;可选地,与第二蓝牙节点位于同位层的蓝牙节点对接收到的具有第一格式的广播数据进行转发,与下一个中继蓝牙节点位于同位层的蓝牙节点对接受到的具有第二格式的广播数据进行转发。
106.优选地,当第二蓝牙节点发送预设次数第一广播数据后均未被下一个中继蓝牙节点接收时,第二蓝牙节点通过与下一个中继蓝牙节点位于同位层的蓝牙节点向目标方转发
第一广播数据,第二蓝牙节点发送具有第二格式的第一广播数据,当第二蓝牙节点发送预设次数具有第二格式的第一广播数据后均未被任意一个与下一个中继蓝牙节点位于同位层的蓝牙节点接收到,第二蓝牙节点通过与自身位于同位层的蓝牙节点向目标方转发第一广播数据,第二蓝牙节点发送具有第一格式的第一广播数据。
107.请参见图3,示例性地,当蓝牙节点116(第一蓝牙节点)向蓝牙节点100(目标方)发起通信时,第一广播数据中的中继标识序列为w3d4
→
w2d3
→
w1d2
→
w0d0,当蓝牙节点107发送预设次数第一广播数据后均未被下一个中继蓝牙节点(蓝牙节点102)接收时,蓝牙节点107通过与下一个中继蓝牙节点(蓝牙节点102)同位层的蓝牙节点向目标方转发第一广播数据,即通过w1位层的其它蓝牙节点向目标方转发第一广播数据;或者,蓝牙节点107通过与自身同位层的蓝牙节点向目标方转发第一广播数据,即通过w2位层的其它蓝牙节点向目标方转发第一广播数据。接收到该第一广播数据的w1位层的蓝牙节点或w2位层的蓝牙节点将第一广播数据发送至更靠近目标方的位层的蓝牙节点,以此类推,直至目标方接收到第一广播数据。
108.本实施例中,在通信异常时,通过与第二蓝牙节点同位层的蓝牙节点转发数据,或通过与下一中继蓝牙节点同位层的蓝牙节点转发数据,使得第一广播数据依旧基于位层向目标方传递,一方面,确保第一蓝牙节点与目标方能够成功通信,提高通信系统容错率,另一方面,确保广播数据逐层有序传向目标方。
109.在可选地实施例中,第一蓝牙节点与目标方的通信路径中存在k个蓝牙节点,当第i个蓝牙节点接收到第i 1个蓝牙节点发送的第一广播数据时,则第i个蓝牙节点确认自身的第一广播数据已被下一蓝牙节点转发。
110.需要说明的是,第k-1个蓝牙节点通过监听第k个蓝牙节点向第1个蓝牙节点返回的广播数据来确定自身的广播数据是否被第k个蓝牙节点接收到。
111.在现有技术中,当前蓝牙节点向下一个蓝牙节点发送广播数据时,下一个蓝牙节点接收到广播数据并确认无误后需向当前蓝牙节点返回确认字符(acknowledge character,ack),当前蓝牙节点接收到确认字符后确定自身发送的广播数据已被下一个蓝牙节点接收到;而本实施例中当前蓝牙节点监听下一个蓝牙节点的广播数据即可确认自身的广播数据是否被下一个蓝牙节点接收到,无需ack应答,简化蓝牙节点间通信流程,提高通信效率。
112.本实施例还公开了一种蓝牙中继系统,请参考图3,该蓝牙中继系统包括:蓝牙主节点100和若干蓝牙子节点101至124;
113.蓝牙主节点100和若干蓝牙子节点101至124之间通过上述实施例公开的主子节点蓝牙通信路径确定方法确定主子节点的蓝牙通信路径。
114.本领域的技术人员能够理解的是,在不冲突的前提下,上述各优选方案可以自由地组合、叠加。其中,附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生,例如,两个接连表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本文中对于各步骤的编号仅为了方便说明和引用,并不用于限定前后顺序,具体的执行顺序是由技术本身确定的,本领域技术人员可以根据技术本身确定各种允许的、合理的顺序。
115.需要说明的是,本发明中采用步骤编号(字母或数字编号)来指代某些具体的方法步骤,仅仅是出于描述方便和简洁的目的,而绝不是用字母或数字来限制这些方法步骤的顺序。本领域的技术人员能够明了,相关方法步骤的顺序,应由技术本身决定,不应因步骤编号的存在而被不适当地限制,本领域技术人员可以根据技术本身确定各种允许的、合理的步骤顺序。
116.本领域的技术人员能够理解的是,在不冲突的前提下,上述各优选方案可以自由地组合、叠加。
117.应当理解,上述的实施方式仅是示例性的,而非限制性的,在不偏离本发明的基本原理的情况下,本领域的技术人员可以针对上述细节做出的各种明显的或等同的修改或替换,都将包含于本发明的权利要求范围内。