CN115604868A - 蓝牙散射网络的平衡蓝牙树的构建方法、数据传输方法 - Google Patents

蓝牙散射网络的平衡蓝牙树的构建方法、数据传输方法 Download PDF

Info

Publication number
CN115604868A
CN115604868A CN202211203281.1A CN202211203281A CN115604868A CN 115604868 A CN115604868 A CN 115604868A CN 202211203281 A CN202211203281 A CN 202211203281A CN 115604868 A CN115604868 A CN 115604868A
Authority
CN
China
Prior art keywords
node
bluetooth
inquiry
routing path
tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211203281.1A
Other languages
English (en)
Inventor
杨子庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202211203281.1A priority Critical patent/CN115604868A/zh
Publication of CN115604868A publication Critical patent/CN115604868A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明属于蓝牙网络拓扑设计技术领域,具体提供一种蓝牙散射网络的平衡蓝牙树的构建方法、数据传输方法,构建方法包括如下步骤:选择一个节点为根节点并记录根节点的索引位置到一维数组;设置第一阈值个数的索引位置到一维数组记录根节点的子节点;扫描子节点并建立子节点与根节点的连结;将每个子节点作为下一层节点的父节点,设置第一阈值个数的索引位置到一维数组记录父节点的子节点,并建立子节点与父节点的连结以及父节点与同层的兄弟节点的连结;当子节点不存在时,索引位置对应的子节点为0;其中,每个索引位置对应一个索引值,索引值的大小根据蓝牙树每个节点的创建顺序设置。父节点所造成的通讯瓶颈将大大地改善。

Description

蓝牙散射网络的平衡蓝牙树的构建方法、数据传输方法
技术领域
本发明涉及蓝牙网络拓扑设计技术领域,具体涉及一种蓝牙散射网络的平衡蓝牙树的构建方法。
背景技术
近几年来,在短距离的无线传输网络中,蓝芽技术正以飞快的速度蓬勃发展。蓝芽技术正朝着建立设备与设备间互通的联网而努力,这些通讯设备就如手机、无线耳机、PDA、数字相机、笔记本电脑和计算机外设产品等等。蓝芽技术被嵌入在一些现有可携式的电子产品当中以达到低成本、低功率和小体积的设计目标。尤其蓝芽技术定义出电路交换与分组交换传输型态,使得蓝芽技术同时支持语音与数据传输,这有别于其它的无线通信技术,诸如802.11、红外线(IrDA)等。Bluetooth技术具备同时传送语音(Voice)和数据(Date)两种数据型态,因为Bluetooth技术支持电路交换(Circuit-switch)与分组交换(Packet-switch)两种传输方式,在Bluetooth标准中电路交换传输称为SCO(SynchronousConnection-Oriented)连结,此种传输方式为同步传输,不管有无数据传送,系统都会预留固定间隔的时槽slot给Master和Slave,其它的Slave就不能使用此连结上的时槽slot来传送数据。而分组交换的传输方式为ACL(Asynchronous Connection-Less)连结,这样的传输方式属于异步传输形态,分组交换是将高层的数据切割成一段段的封包,若在实体信道上没有任何SCO连结,ACL可以占用任何时槽来传送数据,一旦系统需要使用SCO连结,ACL就自动空出时槽提供SCO连结使用。当两个蓝芽装置靠近到可通讯的范围内,他们通过蓝芽规格所定义的inquiry和page的程序去建立两者之间的连结,这称为Link formation。inquiry的程序是用来互相发现对方,page的程序是用来建立实际的连结。两者之间“sender”的角色在inquiry state发出inquiry讯号成为Master,而在inquiry scan state保持聆听接收的“receiver”角色就成为Slav。在许多的研究中,都假设每个蓝芽装置开机后就在inquirystate和inquiry scan state两种状态之间变换,当在足以完成询问inquiry程序的时间内,即可进入呼叫page程序建立实际的连结,因此变换状态的时间间隔必需精确地估算,若是太小则无法成功地建立连结,若是太大则白白浪费时间。在连结建立后,Master与Slave之间的通讯是采用TDD(Time Division Duplex)的方式,也就是使用Time Division将channel切割成多个时间槽slot,每个slot的时间长度是625μs。Master在偶数的slot传送封包,Slave在奇数的slot传送封包。数个Bluetooth装置连接成为网络并共享同一个channel称为Piconet,每个Piconet中只能有1个Master和7个Active Slaves。在一个Piconet中,Master有权决定跳频序列,并通知所有Slave根据此顺序来做跳频的动作。
链接几个Piconet所形成的网络称为Scatternet,而建构Scatternet的过程,则称为Scatternet formation。假设一个Scatternet中间包含三个Piconet,其中每个Bluetooth装置有四种角色,分别是Master,Slave,Master/Slave,Slave/Slave,其中Master/Slave和Slave/Slave为连接的节点(Bridge node)。树状结构的Scatternet,称之为Bluetree,也就是整个连接网络的架构为树状结构,其中父节点成为Master,而所有的子节点则成为Slave,除了根节点Blueroot是Master,叶节点是Slave外,而每个节点都同时扮演Master与Slave的角色,也就是说,在树状的结构中一个节点是上一层的Slave,又是下一层的Master,这种Bluetrees称之为通用蓝牙树General Bluetree(GB)。
General Bluetree有三个缺点:第一、封包绕送之效能不佳。特别是当树状结构是歪斜树而非平衡树的时候,一个较长的绕送路径是可预见的。而我们可以看见在GeneralBluetree中并没有特别有算法来使Bluetree形成平衡树,而是任意地拓扑,这使我们无法预知所形成的蓝芽树是否有较佳的绕送路经。特别以b-tree来建立整个蓝芽树,而每个装置的地址会决定装置所摆放的位置,当装置的地址是按着小而大或是大而小的顺序来形成蓝芽树,这将是一个歪斜树。第二、其父节点在流量较大时,非常容易在Piconet中造成通讯的瓶颈,因为在树状的网络中绕送常常只有唯一的绕送路经。第三、它的可靠度较低,当一个节点装置关机、离开、或是当机,这使得此装置上的几个链结都会失去,让整个网络分裂成好几个部份,也就是此节点所有的子树及其上层原来的部份,这将花费较多的时间来恢复成原来链接的网络。
发明内容
针对通用蓝牙树存在的缺陷,本发明提供一种蓝牙散射网络的平衡蓝牙树的构建方法。
第一方面,本发明技术方案提供一种蓝牙散射网络的平衡蓝牙树的构建方法,包括如下步骤:
选择一个节点为根节点并记录根节点的索引位置到一维数组;
设置第一阈值个数的索引位置到一维数组记录根节点的子节点;扫描子节点并建立子节点与根节点的连结;
将每个子节点作为下一层节点的父节点,设置第一阈值个数的索引位置到一维数组记录父节点的子节点,并建立子节点与父节点的连结以及父节点与同层的兄弟节点的连结;当子节点不存在时,索引位置对应的子节点为0;
当一个节点加入或是离开,对应的父节点将发送更新信息到根节点用以更新一维数组;
其中,每个索引位置对应一个索引值,索引值的大小根据蓝牙树每个节点的创建顺序设置。
为解决在父节点流量拥塞的问题,设置在兄弟节点间建立额外的连结来改进原有的蓝牙树。
进一步的,该方法还包括:
当第一阈值个数的子节点已经建立,对应的父节点发送完成信息以及所在蓝牙树的深度给根节点;
蓝牙树创建完成后根节点发送许可询问信息到蓝牙树的每个叶节点;
当一个叶节点收到许可询问信息时进入询问状态。
进一步的,扫描子节点并建立子节点与根节点的连结的步骤包括:
设置根节点进入询问状态并广播询问信息,所有单独的节点进入询问扫描状态;
将接收到广播询问信息的节点的响应信息返回给根节点;
根节点接收到返回信息后进行入呼叫状态,接收到广播询问信息的节点作为根节点的子节点进入呼叫扫描状态建立与根节点的连结;
判断根节点建立连结的子节点的个数是否达到第一阈值个数;
若是,执行步骤:设置第一阈值个数的索引位置到一维数组记录根节点的子节点;扫描子节点并建立子节点与根节点的连结;
若否,执行步骤:设置根节点重新进入询问状态,并广播询问信息,所有单独的节点进入询问扫描状态。
根节点进入到询问状态将询问信息广播出去,用以发现其他蓝牙装置。所有单独的节点都进入询问扫描状态。这样的设计解决了Link formation必需小心估算蓝牙装置变换询问状态inquiry state和询问扫描状态inquiry scan state的时间间隔以确保连结的建立。因为所有单独的节点都在inquiry scan state,只有在本申请中被赋于建立连结的节点才会进入inquiry state,如此避免询问阶段浪费在连结建立失败的时间耗损上。
进一步的,该方法还包括:
节点x在询问状态定期广播询问信息并保持接收任何响应,当节点x从某节点y收到响应信息,且节点x的子节点未满第一阈值个数时,节点x锁住以拒绝其他节点的插入并进入呼叫状态。
进一步的,该方法还包括:
所有的节点在询问扫描状态保持接听询问信息,当节点y收到节点x所发出的询问信息时,响应节点x并转换至呼叫扫描状态。
进一步的,该方法还包括:
节点x在呼叫状态与响应节点y做连结建立的工作,若是连结建立成功,就进入连接状态,否则节点x跳出锁住状态并重新回到询问状态。
进一步的,该方法还包括:
节点y在呼叫扫描状态与响应询问信息给节点x做连结建立的工作,若是连结建立成功,就进入连接状态,否则节点y重新回到询问扫描状态。
第二方面,本发明提供一种基于第一方面所述的方法构建的平衡蓝牙树的数据传输方法,包括如下步骤:
当原始节点要发送数据给目的节点时,原始节点发送询问信息给平衡蓝牙树的根节点;
根节点接收到询问信息后通过一维数组计算出绕送路径,并将计算出的绕送路径传给原始节点;其中,绕送路径包含传送到目的节点所经过的节点;
原始节点将绕送路径封装在封包的header中,使得封包到每个节点时可依据绕送路径正确地传送封包到下一个节点。
进一步的,索引值的大小根据蓝牙树每个节点的创建顺序由小到大设置;根节点接收到询问信息后通过一维数组计算出绕送路径,并将计算出的绕送路径传给原始节点的步骤包括:
根节点接收到询问信息后先判断目的节点是否存在;
若不存在,响应目的节点不存在的信息到原始节点;
若存在,比较原始节点索引值与目的节点的索引值,将索引值大的节点记录到绕送路径中,并往上跳到记录到绕送路径中的节点的父节点;再重新比较父节点的索引值与上一步比较中未记录到绕送路径中的索引值,同样将索引值大的节点记录到绕送路径并往上跳到记录到绕送路径中的节点的父节点,反复相同的步骤直到遇到相同的根节点即完成所求的绕送路径;最后将绕送路径传回给待送出封包的原始节点。
进一步的,往上跳到记录到绕送路径中的节点的父节点的步骤中,当原始节点或目的节点往上跳至父节点时,设置代表原始节点的参数s加1或是代表目的节点的参数d加1;当绕送路径计算完成时,若s或d中其中一个参数值为0,代表原始节点与目的节点彼此互为祖孙关系;即当s为0表示原始节点为目的节点的祖先,当d为0表示目的节点为原始节点的祖先。
本申请提供的是一种蓝牙散射网络的有效拓扑HGB及其建构协议,HGB能维持平衡树的结构使得绕送路径小于一般的Bluetree。另外,在父节点的通讯瓶颈也因为兄弟节点间有完全的连通而解决。兄弟节点间的链接关系也提升了网络之可靠度,因为当一个节点离开或关机时,网络只会分裂成两个部份,一为互有连通的子树,另一则为此节点上层原来的树。一般的Bluetree因父节点通讯瓶颈的关系将造成通讯量的下降,但当建立兄弟节点间完全的连结关系后,大量的通讯已不再使父节点造成拥塞。在目的节点可达到比例DDR的分析中发现越高层的节点离开或关机,对于一般的Bluetree将造成较严重的分裂,可靠度大大地降低,特别在Blueroot离开或关机的情况,但在HGB的架构下却依然是连通。当分裂发生时,我们发现在HGB的架构下只会分裂成两个部份,而一般的Bluetree将可能分裂成八个部份(若离开或关机的节点分支度是7时),如此一来,恢复连通的代价必然高于HGB。
从以上技术方案可以看出,本发明具有以下优点:在整个建构期间,一直保持平衡树的状态,这与会形成歪斜树的Scatternet formation相比,HGB有较短的绕送路径。此外,在兄弟节点之间会有链结存在,封包传送可以直接通过兄弟节点,而不需经由父节点,这样父节点所造成的通讯瓶颈将大大地改善。
本申请设计的蓝牙树架构中若有一个节点关机或离开,只会分裂成两个部份,一个是其完全连结的子树部份,另一个是其上层原来的部份。如此要恢复整个网络的连通比较容易,可得到较佳的可靠度。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的蓝牙树示意图。
图2是本发明一个实施例的蓝牙树中子节点与兄弟节点连结示意图。
图3是本发明一个实施例的兄弟节点连结示意图。
图4是本发明实施例中的状态转换示意图。
图5是本申请实施例中4层的HGB蓝牙树示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
Bluetooth完整的协议架构,底层是无线电(Radio)、接着是基频(Baseband)协定、LMP协定、L2CAP协议,在LMP协议与L2CAP协议之间有一个主机控制接口HCI(Host ControlInterface),其余更高阶层的协议包括RFCOMM和SDP等。当中无线电负责调变及解调变在空气介质中传送及接收的数据;基频负责组合封包及控制跳频;LMP控制并设定到其它装置的链结;L2CAP将来自较高层的数据多任务化,并转换不同的封包大小;HCI处理在主机及蓝芽模块之间的通讯;RFCOMM类似RS232的串行接口;SDP使得蓝芽装置发现其它蓝芽装置所提拱的服务。根据蓝芽的规格显示,蓝芽无线通信技术被操作在2.4GHz的ISM(IndustrialScientific Medical)频带上,其工作频率范围是在ISM中的2.4000GHz到2.4835GHz,在这频带间共使用79个频道,每个频道的间隔是1MHz,前后有Guard Band,Lower Guard Band是2MHz,Upper Guard Band是3.5MHz。ISM频带是开放的,为了避免造成干扰,蓝芽使用了跳频(Frequency Hopping)的技术,也就是有一个跳频序列(Frequency Hopping Sequences)给两个彼此在通讯的装置使用,根据跳频序列这两个装置不断地从一个频道转到另一个频道,而不致遭到其他设备的干扰。每个蓝牙装置有三个耗电等级(Class1=100mW、Class2=2.5mW、Class3=1mW),分别用在远(~100公尺)、中(~20公尺)、近(~10公尺)距离的传输,并且可以任意切换;而在接收模块方面,蓝芽技术必须达到1%BER(Bit Error Rate)的灵敏程度,相当于-70dBm。
所有Bluetooth设备内都有一个唯一的48位BD_ADDR(Bluetooth deviceaddress)地址,如同个人计算机网络卡都有唯一物理层地址一样,负责Bluetooth系统工作的控制参数,如加密钥匙、跳频序列、access code等参数,都是透过计算BD_ADDR的值而得到,BD_ADDR地址也视为Bluetooth设备出厂时的硬件序号。
AM_ADDR(Active Member Address)是由3个位所组成,3个位组合成8个不同的数值,使得一个Piconet最多只能有8个装置的限制,而Master的AM_ADDR地址固定为000。当Slave在Piconet中为Active状态时,Master将分配每个Active Slave一个AM_ADDR地址,Master就是经由这个地址来辨识Piconet中各个不同的Slave。当Slave从Active状态进入Park状态,将会得到一个PM_ADDR(Park Member Address),PM_ADDR由8个位所组成,所以在一个Piconet中最多可以容纳256个在Park状态的Bluetooth装置。在Piconet内中的所有Park状态的Bluetooth装置,都分配到一个AR_ADDR(Access Request Address)地址,每个Bluetooth装置得到的AR_ADDR地址可能相同,当Slave要从Park状态回复到Active状态,将用此地址向Master要求唤醒Slave。
数个Bluetooth装置连接成为网络并共享同一个channel称为Piconet,每个Piconet中只能有1个Master和7个Active Slaves。在一个Piconet中,Master有权决定跳频序列,并通知所有Slave根据此顺序来做跳频的动作。Slave在连接的状态中有四种模式:Active、Sniff、Hold、Park工作模式,分别描述如下:
Active工作模式中超过7个连结于Piconet的Slaves必须进入Park的状态,无法实际地传输数据。当Slave为了节省消耗功率而进入Sniff模式后,Slave将延长在跳频序列上接收Master讯号的间隔,也就是在这些间隔时间才监听Master送来的讯号,但Slave仍保有AM_ADDR地址和在这Piconet中的跳频序列。当Piconet中的Slave进入Hold模式时,Slave将停止支持ACL连结,但是仍然支持SCO连结,如蓝芽手机连接的耳机在Hold模式下可以通话却无法收到数据。
在Slave不需要传送数据时,能够节省功率并且不离开Piconet,可以选择进入Park模式,在此模式中的Slave将丢弃AM_ADDR的地址,并从Master得到PM_ADDR地址和AR_ADDR地址,在一个Piconet中最多能有256个Park状态的Slave。而Master为了要与所有在Park状态的Slave保持联系,在Master-to-Slave的广播频道BC(Beacon Channel)上周期性发出一些广播讯号。当Master要唤醒在Piconet中Park的Slave就是透过广播频道BC传送PM_ADDR地址,并指定Slave成Active后的AM_ADDR地址,相同地当Slave要恢复为Active也是利用这个广播频道要求Master来唤醒Slave。
本申请改进了Bluetree的结构并且提出了Scatternet formation的方法来解决上述的问题。文中所提出的Bluetree称之为Hierarchical Grown Bluetree(HGB),Scatternet建构过程中是一层一层地长成,在整个建构期间,一直保持平衡树的状态,这与会形成歪斜树的Scatternet formation相比,HGB有较短的绕送路径。此外,在兄弟节点之间会有链结存在,封包传送可以直接透过兄弟节点,而不需经由父节点,如此,父节点所造成的通讯瓶颈将大大地改善。
本发明技术方案提供一种蓝牙散射网络的平衡蓝牙树的构建方法,包括如下步骤:
选择一个节点为根节点并记录根节点的索引位置到一维数组;
设置第一阈值个数的索引位置到一维数组记录根节点的子节点;扫描子节点并建立子节点与根节点的连结;
将每个子节点作为下一层节点的父节点,设置第一阈值个数的索引位置到一维数组记录父节点的子节点,并建立子节点与父节点的连结以及父节点与同层的兄弟节点的连结;当子节点不存在时,索引位置对应的子节点为0;
当一个节点加入或是离开,对应的父节点将发送更新信息到根节点用以更新一维数组;
其中,每个索引位置对应一个索引值,索引值的大小根据蓝牙树每个节点的创建顺序设置。
为解决在父节点流量拥塞的问题,设置在兄弟节点间建立额外的连结来改进原有的蓝牙树。
需要说明的是,当第一阈值个数的子节点已经建立,对应的父节点发送完成信息以及所在蓝牙树的深度给根节点;
蓝牙树创建完成后根节点发送许可询问信息到蓝牙树的每个叶节点;当一个叶节点收到许可询问信息时进入询问状态。
需要说明的是,本发明中第一阈值为五,struc_array是一维数组记录着在Bluetree的每一个节点,在Bluetree中,每个节点有,五个子节点。如图1所示的蓝牙树,表1中的一维数组记录着图1的Bluetree;索引值为0的位置储存根节点35,索引值1到5的位置记录着节点35的子节点,分别是70,21,15,39和33。节点70只有一个子节点36,索引6记录着36,而索引7到10则储存着0。在这个方法中,保留五个索引位置来记录每一个节点的子节点。
表1
Figure BDA0003873234960000151
在整个HGB Bluetree建构时,所需要的控制信息,每项描述在某种状况下所需因应之信息,并说明信息传递的方向:
当一个节点加入或是离开,父节点将送一个update的信息给Blueroot用以更新struc_array。
当五个子节点已经建立,父节点送一个complete信息和所在Bluetree的深度给Blueroot。
当整个Bluetree已经成为分支度为5的完全树时,Blueroot送出一个permit_inq信息给所有的叶节点。
在蓝芽的规格中,一个节点有几个state,分别是inquiry state,inquiry scanstate,page state,page scan state和connection state。每个节点根据它所面对的特定状况在这些state中做转变。在所有的Scatternet formation所提出在开始之时,任意地挑选出一节点当作Blueroot,先确定Blueroot的节点,以表1为例,节点35被选出成为Blueroot,进入到inquiry state将inquiry信息广播出去,用以发现其他蓝牙装置。所有单独的节点都进入inquiry scan state。因为所有单独的节点都在inquiry scan state,只有在HGB Bluetree中被赋于建立连结的节点才会进入inquiry state,如此避免inquiry阶段浪费在连结建立失败的时间耗损上。接着节点70收到inquiry信息,并将dev_info信息响应给节点35,此时节点35锁住以拒绝其它节点的插入。节点35进入page state,而节点70进入page scan state,在page的程序中建立实际连结。此时,节点35为Master而节点70为其Slave。接着,节点35重新进入inquiry state,重复这样的过程直到节点35的子节点个数达到5。为解决在父节点流量拥塞的问题,在兄弟节点间建立额外的连结来改进GeneralBluetree架构。在Bluetree的架构中,父节点扮演Master,而子节点扮演Slave。蓝芽规格限制一个Master不能超过7个Slave。在这里限定一个父节点最多只能有5个子节点,保留两个给兄弟节点。如图2中可以观察节点70所扮演的角色,其子节点36、7、19、65、45必然为它的Slave,而节点70的兄弟节点21与15也是它的Slave。这说明了每一个父节点(Blueroot节点除外)都拥有7个Slave,5个链结是与子节点建立而成,另外2个链结是与兄弟节点所形成。
当节点35只有两个子节点70和21,在兄弟节点间的Master和Slave的连结关系就像图3(a),箭头的方向代表Master对Slave。子节点的数目从3到5,兄弟节点间的连结关系描述分别从图3(b)到图3(d)。对于兄弟节点间所建立的连结关系仍是以先后的次序来形成兄弟节点间的Master与Slave关系,图3(a)~(d)可知后进来的兄弟节点为先进来的Slave,然而第4个兄弟节点会找第5个和第1个成为它的Slave,第5个兄弟节点会找第1个和第2个成为它的Slave。如此兄弟节点间不管任何时候都会形成一个完全连通的网络。这样的架构有效地解决父节点流量拥塞的问题。举一个例子说明,节点36将与节点60通讯,在GeneralBluetree中必需往上传送到节点35,再往上传送到节点60,因为任何的封包从原始节点到目的节点必须通过它们共同的根节点。这共同的根节点(就是节点35)会遭遇流量拥塞的问题。在本申请常见的蓝牙树中如图1所示,封包从节点36传送到节点70,再通过兄弟间的连结传至节点33,再传到节60。这就解决了共同根节点流量拥塞的问题。
在有些实施例中,扫描子节点并建立子节点与根节点的连结的步骤包括:
设置根节点进入询问状态并广播询问信息,所有单独的节点进入询问扫描状态;
将接收到广播询问信息的节点的响应信息返回给根节点;
根节点接收到返回信息后进行入呼叫状态,接收到广播询问信息的节点作为根节点的子节点进入呼叫扫描状态建立与根节点的连结;
判断根节点建立连结的子节点的个数是否达到第一阈值个数;
若是,执行步骤:设置第一阈值个数的索引位置到一维数组记录根节点的子节点;扫描子节点并建立子节点与根节点的连结;
若否,执行步骤:设置根节点重新进入询问状态,并广播询问信息,所有单独的节点进入询问扫描状态。
根节点进入到询问状态将询问信息广播出去,用以发现其他蓝牙装置。所有单独的节点都进入询问扫描状态。这样的设计解决了Link formation必需小心估算蓝牙装置变换询问状态inquiry state和询问扫描状态inquiry scan state的时间间隔以确保连结的建立。因为所有单独的节点都在inquiry scan state,只有在本申请中被赋于建立连结的节点才会进入inquiry state,如此避免询问阶段浪费在连结建立失败的时间耗损上。
当Blueroot有5个子节点后,所有在第二层的节点都同时进入inquiry state并广播inquiry信息用以发现其它的蓝芽装置,直到第三层都长满了,第三层的节点才会进入到inquiry state。换句话说,在h层的叶节点唯有满了5h-1个才能进入到inquiry state。这样的方法可以使Bluetree在整个Scatternet formation过程中一直保持平衡。而建构整个Bluetree是一层一层建立。
以下我们将会详细描述每个state的程序。为了更清楚地表示,state的转换图记录在图4,虚线代表信息传送方向,实线代表state转换方向。在图4中,在inquiry state和page state的节点代表sender,而在inquiry scan state和page scan state的节点代表receiver。sender传送存取信息,而receiver响应存取信息。在下面的程序中,x代表sender,y代表receiver。
也就是说,节点x在询问状态定期广播询问信息并保持接收任何响应,当节点x从某节点y收到响应信息,且节点x的子节点未满第一阈值个数时,节点x锁住以拒绝其他节点的插入并进入page state呼叫状态。
所有的节点在inquiry scan state询问扫描状态保持接听询问信息,当节点y收到节点x所发出的询问信息时,响应节点x并转换至page scan state呼叫扫描状态。
节点x在呼叫状态与响应节点y做连结建立的工作,若是连结建立成功,就进入connection state连接状态,否则节点x跳出锁住状态并重新回到inquiry state询问状态。
节点y在呼叫扫描状态与响应询问信息给节点x做连结建立的工作,若是连结建立成功,就进入connection state连接状态,否则节点y重新回到inquiry scan state询问扫描状态。
来自page state的节点(也就是Master或是父节点)首先跳出锁住状态。若是Blueroot就直接更新struc_array,否则就送update信息给Blueroot。Blueroot更新struc_array代表着连结建立成功。另外,若完成5个子节点,父节点就送complete信息给Blueroot。当Blueroot收到complete信息并发现Bluetree已经成为分支度为5的完全树,Blueroot就送出广播permit_inq信息给所有的叶节点。若是来自page scan state的节点(也就是Slave或是叶节点)只要记录它的深度并保持聆听。当一个叶节点收到permit_inq信息,就进入inquiry state。
本发明实施例还提供一种基于上述实施例所述的方法构建的平衡蓝牙树的数据传输方法,包括如下步骤:
当原始节点要发送数据给目的节点时,原始节点发送询问信息给平衡蓝牙树的根节点;
根节点接收到询问信息后通过一维数组计算出绕送路径,并将计算出的绕送路径传给原始节点;其中,绕送路径包含传送到目的节点所经过的节点;
原始节点将绕送路径封装在封包的header中,使得封包到每个节点时可依据绕送路径正确地传送封包到下一个节点。
索引值的大小根据蓝牙树每个节点的创建顺序由小到大设置;根节点接收到询问信息后通过一维数组计算出绕送路径,并将计算出的绕送路径传给原始节点的步骤包括:
根节点接收到询问信息后先判断目的节点是否存在;
若不存在,响应目的节点不存在的信息到原始节点;
若存在,比较原始节点索引值与目的节点的索引值,将索引值大的节点记录到绕送路径中,并往上跳到记录到绕送路径中的节点的父节点;再重新比较父节点的索引值与上一步比较中未记录到绕送路径中的索引值,同样将索引值大的节点记录到绕送路径并往上跳到记录到绕送路径中的节点的父节点,反复相同的步骤直到遇到相同的根节点即完成所求的绕送路径;最后将绕送路径传回给待送出封包的原始节点。
往上跳到记录到绕送路径中的节点的父节点的步骤中,当原始节点或目的节点往上跳至父节点时,设置代表原始节点的参数s加1或是代表目的节点的参数d加1;当绕送路径计算完成时,若s或d中其中一个参数值为0,代表原始节点与目的节点彼此互为祖孙关系;即当s为0表示原始节点为目的节点的祖先,当d为0表示目的节点为原始节点的祖先。在这样的状况下,HGB与GB的绕送路径是一样长。但原始节点与目的节点若不为祖孙关系,HGB的绕送路径可直接通过兄弟节点间的连结传送封包,不需再通过父节点,因此绕送路径就少GB一个hop。
图5是一个4层的HGB Bluetree,在第3层以虚线来表示省略整层全满的25个节点,而第4层是属于叶节点,也以虚线来表示省略某些的节点。举一个例子,假设节点36送资料给节点6,根据struc_array如表2所示,Blueroot发现节点36的索引值是6和节点6的索引值131。因为6小于131,Blueroot将节点6加入绕送路径rp(rp=(6))。节点6的父节点是60而它的索引值是26,因为6小于26,节点60加入rp,rp成为(60,6)。接着,节点60的父节点是33而它的索引值是5,因为6大于5,节点36加入rp,rp成为(36,60,6)。再来节点36的父节点是70而它的索引值是1,因为1小于5,节点33加入rp。rp成为(36,33,60,6)。节点33的父节点是35而它的索引值是0,因为0小于1,节点70加入rp,rp成为(36,70,33,60,6)。节点70的父节点是35而它的索引值0,共同的根节点找到了,得到rp=(36,70,33,60,6)。
再举一个例子,若节点33要送资料给节点12,根据struc_array,Blueroot发现节点33的索引值是5和节点12的索引值是151。因为5小于151,Blueroot将节点12加入rp(rp=(12))。节点12的父节点是24而它的索引值是30,因为5小于30,节点24加入rp。rp成为(24,12)。然而节点24的父节点即为33,根据旗标参数s等于0(这代表节点33为节点12的祖先),我们就将节点33加入rp。rp成为(33,24,12)即为所求之绕送路径。
表2
Figure BDA0003873234960000231
在网络绕送的方法中,在一般的绕送算法常是利用绕送表(Routing table)来达到绕送的目的,当蓝牙装置增多,网络就扩充变大,这样的方式容易造成绕送表(Routingtable)增大,而浪费内存的空间,并且必须常常维护绕送表,才能使绕送表维持最新的信息与正确的运作,这非常耗费时间。另外也常使用的方法是需要数据绕送时才开始寻找绕送路径,做法是先对目的节点做绕送路径发现(Route Discovery)的动作,当找到目的节点时就会传回绕送路径给原始节点,原始节点就将绕送路径封装在封包中,当开始传送时就依据记录在封包内的绕送路径传送。另外也是树状的Scatternet,利用b-tree的特性,计算蓝芽装置的地址,以符合b-tree的规则形成整个Bluetree。绕送的机制只需要一个小小内存区块记录一段或是几段节点地址的范围信息,不需要记录整个绕送的表格,当绕送的封包到达到节点时,使用目的节点的地址与所记录的信息做比较即可得到下个传送的节点,在这方式中,封包每到一个节点只需做小小的比较就可得到下一个传送节点,这样的方法有别于上述两种,这也是在tree架构中特殊的绕送算法,但是这种利用地址来建立b-tree架构的scatternet,可能形成歪斜树,造成更长的绕送路径。本申请提供的方法也是利用了tree架构本身的特性,特别是平衡树,适合使用一维数组来记录tree的结构,所以在Blueroot中存放记录着整个tree每个节点的一维数组,每次绕送时就通过Blueroot的计算,将绕送路径传回给原始节点,若与上述的方式(Route Discovery)比较,因为HGB所建构的是平衡树,原始节点将能快速地收到绕送路径。只有Blueroot记录整个tree的架构,也会比每个节点必需存放绕送表来得节省内存空间。然而,这样的方式需要较多控制信息和绕送信息的传递,但是这些信息只会占些许的带宽,与一般的封包相较算是微乎其微。
struc_array记录着整个Bluetree的结构,也就是每个节点的位置,透过此数组可以计算封包绕送的路径,若发生网络断裂的情形,也可以透过此数组恢复Scatternet的连通,因此必需同步备份在第二层的一个或数个节点中,用以预防Blueroot关机、或是离开而造成记录着整个Bluetree结构的一维数组消失。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种蓝牙散射网络的平衡蓝牙树的构建方法,其特征在于,包括如下步骤:
选择一个节点为根节点并记录根节点的索引位置到一维数组;
设置第一阈值个数的索引位置到一维数组记录根节点的子节点;扫描子节点并建立子节点与根节点的连结;
将每个子节点作为下一层节点的父节点,设置第一阈值个数的索引位置到一维数组记录父节点的子节点,并建立子节点与父节点的连结以及父节点与同层的兄弟节点的连结;当子节点不存在时,索引位置对应的子节点为0;
当一个节点加入或是离开,对应的父节点将发送更新信息到根节点用以更新一维数组;
其中,每个索引位置对应一个索引值,索引值的大小根据蓝牙树每个节点的创建顺序设置。
2.根据权利要求1所述的蓝牙散射网络的平衡蓝牙树的构建方法,其特征在于,该方法还包括:
当第一阈值个数的子节点已经建立,对应的父节点发送完成信息以及所在蓝牙树的深度给根节点;
蓝牙树创建完成后根节点发送许可询问信息到蓝牙树的每个叶节点;
当一个叶节点收到许可询问信息时进入询问状态。
3.根据权利要求1所述的蓝牙散射网络的平衡蓝牙树的构建方法,其特征在于,扫描子节点并建立子节点与根节点的连结的步骤包括:
设置根节点进入询问状态并广播询问信息,所有单独的节点进入询问扫描状态;
将接收到广播询问信息的节点的响应信息返回给根节点;
根节点接收到返回信息后进行入呼叫状态,接收到广播询问信息的节点作为根节点的子节点进入呼叫扫描状态建立与根节点的连结;
判断根节点建立连结的子节点的个数是否达到第一阈值个数;
若是,执行步骤:设置第一阈值个数的索引位置到一维数组记录根节点的子节点;扫描子节点并建立子节点与根节点的连结;
若否,执行步骤:设置根节点重新进入询问状态,并广播询问信息,所有单独的节点进入询问扫描状态。
4.根据权利要求1所述的蓝牙散射网络的平衡蓝牙树的构建方法,其特征在于,该方法还包括:
节点x在询问状态定期广播询问信息并保持接收任何响应,当节点x从某节点y收到响应信息,且节点x的子节点未满第一阈值个数时,节点x锁住以拒绝其他节点的插入并进入呼叫状态。
5.根据权利要求4所述的蓝牙散射网络的平衡蓝牙树的构建方法,其特征在于,该方法还包括:
所有的节点在询问扫描状态保持接听询问信息,当节点y收到节点x所发出的询问信息时,响应节点x并转换至呼叫扫描状态。
6.根据权利要求5所述的蓝牙散射网络的平衡蓝牙树的构建方法,其特征在于,该方法还包括:
节点x在呼叫状态与响应节点y做连结建立的工作,若是连结建立成功,就进入连接状态,否则节点x跳出锁住状态并重新回到询问状态。
7.根据权利要求6所述的蓝牙散射网络的平衡蓝牙树的构建方法,其特征在于,该方法还包括:
节点y在呼叫扫描状态与响应询问信息给节点x做连结建立的工作,若是连结建立成功,就进入连接状态,否则节点y重新回到询问扫描状态。
8.一种基于权利要求1-7任一项权利要求所述的方法构建的平衡蓝牙树的数据传输方法,其特征在于,包括如下步骤:
当原始节点要发送数据给目的节点时,原始节点发送询问信息给平衡蓝牙树的根节点;
根节点接收到询问信息后通过一维数组计算出绕送路径,并将计算出的绕送路径传给原始节点;其中,绕送路径包含传送到目的节点所经过的节点;
原始节点将绕送路径封装在封包的header中,使得封包到每个节点时可依据绕送路径正确地传送封包到下一个节点。
9.根据权利要求8所述的数据传输方法,其特征在于,索引值的大小根据蓝牙树每个节点的创建顺序由小到大设置;根节点接收到询问信息后通过一维数组计算出绕送路径,并将计算出的绕送路径传给原始节点的步骤包括:
根节点接收到询问信息后先判断目的节点是否存在;
若不存在,响应目的节点不存在的信息到原始节点;
若存在,比较原始节点索引值与目的节点的索引值,将索引值大的节点记录到绕送路径中,并往上跳到记录到绕送路径中的节点的父节点;再重新比较父节点的索引值与上一步比较中未记录到绕送路径中的索引值,同样将索引值大的节点记录到绕送路径并往上跳到记录到绕送路径中的节点的父节点,反复相同的步骤直到遇到相同的根节点即完成所求的绕送路径;最后将绕送路径传回给待送出封包的原始节点。
10.根据权利要求9所述的数据传输方法,其特征在于,往上跳到记录到绕送路径中的节点的父节点的步骤中,当原始节点或目的节点往上跳至父节点时,设置代表原始节点的参数s加1或是代表目的节点的参数d加1;当绕送路径计算完成时,若s或d中其中一个参数值为0,代表原始节点与目的节点彼此互为祖孙关系;即当s为0表示原始节点为目的节点的祖先,当d为0表示目的节点为原始节点的祖先。
CN202211203281.1A 2022-09-29 2022-09-29 蓝牙散射网络的平衡蓝牙树的构建方法、数据传输方法 Pending CN115604868A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211203281.1A CN115604868A (zh) 2022-09-29 2022-09-29 蓝牙散射网络的平衡蓝牙树的构建方法、数据传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211203281.1A CN115604868A (zh) 2022-09-29 2022-09-29 蓝牙散射网络的平衡蓝牙树的构建方法、数据传输方法

Publications (1)

Publication Number Publication Date
CN115604868A true CN115604868A (zh) 2023-01-13

Family

ID=84845057

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211203281.1A Pending CN115604868A (zh) 2022-09-29 2022-09-29 蓝牙散射网络的平衡蓝牙树的构建方法、数据传输方法

Country Status (1)

Country Link
CN (1) CN115604868A (zh)

Similar Documents

Publication Publication Date Title
US10567979B2 (en) Wireless communication device, wireless communication system, wireless communication method, and program
JP4751867B2 (ja) メッシュネットワークの集中制御のための装置
US7693119B2 (en) Transmission power control over a wireless ad-hoc network
CN100442786C (zh) 基于树形结构的路由方法
EP1859581B1 (en) Routing communications in an ad hoc network
KR100689550B1 (ko) 모바일 애드 혹 네트워크에서 헬로 패킷 전송 방법
CN101521895A (zh) 无线自组织网络中用于构建多跳路由转发的方法
Tseng et al. Fully power-aware and location-aware protocols for wireless multi-hop ad hoc networks
US20040082343A1 (en) Wireless communication device and method capable of connectionless broadcast
US9544906B2 (en) Channel allocation method in wireless mesh network and communication device using the method
US8411648B2 (en) Double linked wireless sensor network being capable of bidirectional communication and method thereof
WO2001041377A1 (en) Route discovery based piconet forming
CN107820697B (zh) 网格网络中的增强型对等方发现方法和系统
US20040198358A1 (en) Method for performing bluetooth high rate supervisor handover
JP6222314B2 (ja) 無線通信装置
CN115604868A (zh) 蓝牙散射网络的平衡蓝牙树的构建方法、数据传输方法
CN107852677B (zh) 网格网络中的增强型功率降低
JP5994893B2 (ja) 無線通信装置、無線通信システム、無線通信方法及びプログラム
JP2014078981A (ja) 無線通信装置、無線通信システム、無線通信方法及びプログラム
CN116321523A (zh) 云平台及其设备管理方法及存储介质
CN116017310A (zh) 一种入网方法及设备
Kuyoro Shade et al. THE WHAT, WHY AND HOW OF ADHOC NETWORKS
Chaudhry et al. Routing technique for inter slave bonding in Bluetooth scatternets formation
Zhang A new two-phase scatternet formation algorithm for bluetooth wireless personal area networks
Madhusoodanan Analysis of a new protocol for Bluetooth network formation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination