CN115001541A - 数据传输方法、装置、电子设备、存储介质和产品 - Google Patents
数据传输方法、装置、电子设备、存储介质和产品 Download PDFInfo
- Publication number
- CN115001541A CN115001541A CN202210709294.XA CN202210709294A CN115001541A CN 115001541 A CN115001541 A CN 115001541A CN 202210709294 A CN202210709294 A CN 202210709294A CN 115001541 A CN115001541 A CN 115001541A
- Authority
- CN
- China
- Prior art keywords
- data
- linked list
- terminal
- frame
- sent
- 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.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 115
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000004590 computer program Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 abstract description 33
- 238000004891 communication Methods 0.000 abstract description 20
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B5/00—Near-field transmission systems, e.g. inductive or capacitive transmission systems
- H04B5/70—Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes
- H04B5/72—Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes for local intradevice communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing 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)
Abstract
本发明涉及通信技术领域,提供一种数据传输方法、装置、电子设备、存储介质和产品。方法包括:基于链表信息,确定第一数据;发送所述第一数据给第二终端;接收所述第二终端发送的第二数据,所述第二数据包括所述第一数据中任一数据帧的确收信息;基于所述第一数据和所述第二数据的匹配结果,更新所述链表信息。本发明能够实现发送方在不需等待接收方的应答帧即可发送一定数量的数据包,最大限度的提升两个设备的蓝牙射频带宽使用率,进而提升蓝牙可靠性数据传输的速率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及数据传输方法、装置、电子设备、存储介质和产品。
背景技术
随着蓝牙低功耗(Bluetooth Low Energy,BLE)技术的不断更新和发展,蓝牙BLE通讯方式可以为收发双方提供可靠的无线通讯。现有的BLE技术在传输时,往往通过发送端发送完数据,等待接收方响应后,才继续发送下一帧数据包。若没有接收到响应,则需要进行重发,因此保证了数据的可靠性传输。
然而,现有方法在每个连接间隔只能传输一帧数据,蓝牙射频带宽使用率低,使得蓝牙低功耗传输速度慢,对于有着较大数据收发的应用,数据传输速度慢显现的更加明显。
发明内容
本发明旨在至少解决相关技术中存在的技术问题之一。为此,本发明提出一种数据传输方法,实现发送方在不需等待接收方的应答帧即可发送一定数量的数据包,最大限度的提升两个设备的蓝牙射频带宽使用率,进而提升蓝牙可靠性数据传输的速率。
本发明还提出一种数据传输装置。
本发明还提出一种电子设备。
本发明还提出一种非暂态计算机可读存储介质。
本发明还提出一种计算机程序产品。
根据本发明第一方面实施例的数据传输方法,包括:
基于链表信息,确定第一数据;
发送所述第一数据给第二终端;
接收所述第二终端发送的第二数据,所述第二数据包括所述第一数据中任一数据帧的确收信息;
基于所述第一数据和所述第二数据的匹配结果,更新所述链表信息。
根据本发明实施例的数据传输方法,第一终端通过链表信息能够确定发送第二终端的第一数据,由于第二数据包括所述第一数据中任一数据帧的确收信息,故基于所述第一数据和所述第二数据的匹配结果可以获得第二终端是否接收到第一终端的发出的数据帧。根据匹配成功与否更新链表信息后,第一终端可以根据更新的链表信息继续与第二终端实施数据传输,从而使得发送端能够一次发出多帧数据,且不需要等待发出所有数据均应答就可以继续发送数据,有效提升蓝牙可靠性数据传输的速率。
根据本发明的一个实施例,所述链表信息包括第一链表、第二链表和第三链表,所述第一链表用于存储待发送数据帧,所述第二链表用于存储待确认数据帧,所述第三链表用于存储可发送数据帧。
根据本发明实施例的数据传输方法,通过controller层内建立了三个数据链表,并根据三个链表之间待发送数据帧、待确认数据帧和可发送数据帧之间的关系获得需要发送的第一数据,从而使得第一终端一次性发送包含多个数据帧第一数据,而不必等候应答。
根据本发明的一个实施例,所述基于链表信息确定第一数据,包括:
基于所述第一链表的数据帧个数和所述第三链表的数据帧个数,确定所述第一数据的数据帧个数;
基于所述第一数据的数据帧个数和所述第一链表,确定所述第一数据。
根据本发明的一个实施例,所述基于所述第一数据和所述第二数据的匹配结果更新所述链表信息,包括:
确认所述第二数据和所述第一数据中任一数据帧匹配成功,更新所述第二链表和第三链表。
根据本发明的一个实施例,所述基于链表信息确定第一数据,之前还包括:
基于第一终端与第二终端的单帧最大容量和连接参数,确定发送和接收数据的连接间隔。
根据本发明实施例的数据传输方法,通过协商第一终端和第二终端的连接间隔,在无数据发送请求时,射频模块会关闭,用来节省功耗的流失,等待下一次连接间隔的到来才会重新唤醒射频模块进行数据的收发。
根据本发明的一个实施例,所述发送所述第一数据给第二终端,包括:
分批发送所述第一数据给第二终端,其中,每个连接间隔发送一批所述第一数据。
根据本发明实施例的数据传输方法,可以根据需要对第一数据进行分批发送,从而调节数据发送的规模,由于仅在连接间隔内发送一批第一数据,因此分批发送后可以根据实际情况调整数据发送的速度,提高了数据发送的灵活性。
根据本发明第二方面实施例的一种数据传输方法,包括:
接收第一终端发送的第一数据,所述第一数据基于链表信息确定;
发送第二数据给所述第一终端,所述第二数据包括所述第一数据中任一数据帧的确收信息,所述第二数据用于与所述第一数据匹配,更新所述链表信息。
根据本发明实施例的数据传输方法,第二终端接收到第一终端发送的第一数据后,向第一终端发送第二数据。由于第二数据中包括所述第一数据中任一数据帧的确收信息,故基于所述第一数据和所述第二数据的匹配结果可以获得第二终端是否接收到第一终端的发出的数据帧。根据匹配成功与否更新链表信息后,第二终端可以接收第一终端更新后发出的第一数据。本方法中,第一终端能够一次发出多帧数据,而第二终端对第一数据的应答是逐帧的,第一终端不需要等待发出所有数据均应答就可以继续发送数据,有效提升蓝牙可靠性数据传输的速率。
根据本发明第三方面实施例的一种数据传输装置,包括:
第一发送模块,用于基于链表信息,确定第一数据;还用于发送所述第一数据给第二终端;
第一接收模块,用于接收所述第二终端发送的第二数据,所述第二数据包括所述第一数据中任一数据帧的确收信息;还用于基于所述第一数据和所述第二数据的匹配结果,更新所述链表信息。
根据本发明第四方面实施例的一种数据传输装置,包括:
第二接收模块,用于接收第一终端发送的第一数据,所述第一数据基于链表信息确定;
第二发送模块,用于发送第二数据给所述第一终端,所述第二数据包括所述第一数据中任一数据帧的确收信息,所述第二数据用于与所述第一数据匹配,更新所述链表信息。
根据本发明第五方面实施例的电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述数据传输方法的步骤。
根据本发明第六方面实施例的非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述数据传输方法的步骤。
根据本发明第七方面实施例的计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述数据传输方法的步骤。
本发明实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:本发明实施例中发送方基于链表信息发送数据后,通过算法不需等待接收方终端的应答帧即可发送剩下的数据帧,最大限度的提升两个设备的蓝牙射频带宽使用率,进而提升蓝牙可靠性数据传输的速率。
进一步的,本发明实施例中通过设计数据链表结构存储待发送数据帧、待确认数据帧和可发送数据帧,能够提升每次发送的第一数据的可靠性,避免重发和漏发。
更进一步的,本发明实施例中基于第二数据和所述第一数据中任一数据帧匹配的结果,来更新链表信息,可以保证数据传输的可靠性。
再进一步的,本发明是实施例中第一终端和第二终端仅在连接间隔内传输数据,可以有效节省功耗的流失。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据传输方法流程示意图之一;
图2是本发明实施例提供的数据传输方法流程示意图之二;
图3是本发明实施例提供的蓝牙数据传输方法流程示意图;
图4是本发明实施例提供的一种数据传输装置的结构示意图之一;
图5是本发明实施例提供的一种数据传输装置的结构示意图之二;
图6是本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请实施例的至少一个实施例或示例中。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
下面结合附图和实施例对本申请的实施方式作进一步详细描述。以下实施例用于说明本申请,但不能用来限制本申请的范围。
图1示例了本发明实施例提供的数据传输方法的流程示意图,该方法应用于第一终端侧执行数据传输任务,该方法至少包括以下步骤:
步骤101、基于链表信息,确定第一数据;
步骤102、发送第一数据给第二终端;
步骤103、接收第二终端发送的第二数据,第二数据包括第一数据中任一数据帧的确收信息;
步骤104、基于第一数据和第二数据的匹配结果,更新链表信息。
针对步骤101,需要说明的是,第一终端和第二终端可以为用户的终端,或者还,包括但不限于手机、平板电脑、pc端、车载终端以及家用智能电器等带有蓝牙设备的终端。蓝牙为低功耗蓝牙,低功耗蓝牙的整体结构主要分为三个部分:主机host,控制层controller,以及基于此向上提供的应用层。主机中包括ATT层(Attribute protocol),ATT层用来定义用户命令及命令操作的数据,比如读取某个数据或者写某个数据。在本发明实施例中,链表信息均存储在controller层。
针对步骤102至步骤104,需要说明的是,第一数据在发送前存储在controller层的发送数据缓存区,在连接间隔事件到来后通过信号调制将第一数据发送给第二终端。第一终端收到第二数据后,通过解调获得第二数据包含的发送的数据帧中任一帧的确收信息。第一数据和第二数据的匹配可以是第一数据包括的数据帧的帧号与第二数据中数据帧的帧号的匹配,该帧号可以为id字段。
第一终端执行本发明实施例提供的数据传输过程如下:首先,第一终端根据当前的链表信息确定待发送数据和可发送数据的关系,获得包含多个数据帧的第一数据。其次,第一终端将第一数据进行信号调制后发送给第二终端。再次,第一终端接收第二终端发送的数据,并通过解调获得第二数据包含的发送数据帧中任一帧的确收信息。最后第一终端将确收信息与第一数据进行匹配,根据匹配的结果更新链表信息,进行下一次的数据传输。
本发明实施例提供的数据传输方法针对现有蓝牙传输时效性受限、串行通讯以及通信带宽利用率较低的问题,设计了多个数据链表,通过链表信息获得包含多个数据帧的第一数据。第一终端能够通过发送第一数据一次发出多帧数据,改变了以往单帧传输的固有模式。另外,第一终端根据匹配结果不需要等待发出所有数据均应答就可以继续发送数据,在保证蓝牙可靠性传输的同时提升了传输的速率。
可以理解的是,链表信息包括第一链表、第二链表和第三链表,第一链表用于存储待发送数据帧,第二链表用于存储待确认数据帧,第三链表用于存储可发送数据帧。
需要说明的是,待发送数据帧中包含的数据是需要尽快发送的数据,数据已经被加载到缓存区中了,等待发送。待确认数据帧中包含的是已发送但没有被确认的数据,这些数据被认为并没有完成发送。可发送数据帧中包含的是需要发送但是还未发送的数据帧,可发送数据帧为0时,意味着第一终端存在已发送未确认的数据帧,需要对待确认数据帧进行数据重发。
本发明实施例提供的数据传输方法通过在蓝牙协议controller层中增加3个链表包含的数据帧,确定待发送的第一数据。使发送方通过ATT_WRITE_REQ发送第一数据后,不需等待接收方的ATT_WRITE_RSP应答帧即可发送剩下的数据帧。
可以理解的是,基于链表信息确定第一数据,包括:
基于第一链表的数据帧个数和第三链表的数据帧个数,确定第一数据的数据帧个数;
基于所述第一数据的数据帧个数和所述第一链表,确定第一数据。
需要说明的是,在发送数据之前,第一终端的应用层会先通过调用ATT层接口把数据添加到第一链表后,进入数据传输data_tran_task任务。在data_tran_task任务中,需要读取第一链表即待发送数据链表的数据帧数量记为m,读取第二链表即待确认数据链表的数据帧数量记为n。
若m,n均为0,则退出此次调度,否则读取controller层内第三链表即可发送数据链表的数据帧数量记为k。
若m≥k时,依次从待发送数据链表中取出k帧数据添加到conntroller层发送数据缓存区作为第一数据,并将数据帧添加至待确认的数据链表。m≥k说明待发送数据多于可发送数据,此时能够根据可发送数据链表的最大容量从待发送数据链表里取出数据帧作为第一数据进行发送,然后再根据匹配结果可以继续从待发送数据链表取出剩下的数据进行发送。比如,当前状态下,m=14,k=8,则第一终端需要从第一链表中取出8个数据帧作为第一数据发送,剩下的6帧数据帧等待匹配结果进行发送。
若m<k时,依次从待发送数据链表中取出m帧数据添加到conntroller层发送数据缓存区作为第一数据,并将数据帧添加至待确认的数据链表。m<k说明待发送数据小于可发送数据,此时能够将待发送数据链表里所有的数据取出作为第一数据进行发送,发送完成后,待发送数据全部发完则退出此次调度。比如,当前状态下,m=6,k=8,则第一终端需要从第一链表中取出所有的6个数据帧作为第一数据发送。
具体的,在本发明实施例中,在连接参数为50ms时,n和k可以设置的最大经验值为8,m根据待发送数据的数据量确定。
更进一步的,若k=0时,意味着第一终端此时存在已发送未确认的数据帧,需要对待确认数据进行数据重发不需要更新第一链表。
本发明实施例提供的数据传输方法在第一终端通过比较第一链表和第三链表的数据帧个数,确定当前可以从待发送数据中取出多少数据帧,再从待发送数据链表中依次抽取相应数量的数据帧,保证了每次能够在连接事件最大程度地发送最多的数据。
可以理解的是,基于第一数据和第二数据的匹配结果更新链表信息,包括:
确认第二数据和第一数据中任一数据帧匹配成功,更新第二链表和第三链表。
需要说明的是,本发明实施例中第二数据是指第二终端发送的应答帧,其中应当包含有第一数据中任一帧的确收信息。匹配是指第二数据的应答帧的序号与第一数据中数据帧序号的匹配,若存在一致的序号则表示匹配成功,若不存在一致的序号,则表示匹配失败。匹配成功时,需要更新第二链表和第三链表的内容,若匹配失败,则不更新,需要重新发送现有链表对应的第一数据。
具体的,第一终端在一个连接间隔到来后,蓝牙controller将待发送的数据帧依次调制发送出去,通过解调接收到第二终端的应答帧。通过比较应答帧与待确认数据链表中数据帧的序号,存在相同序号则将该数据帧从待确认数据链表中移除,并对controller存储的可发送数据链表的数据帧数量依次加1,不存在相同则不操作,同时controller会对第一数据进行重发。
本发明实施例提供的数据传输方法,通过第二数据和第一数据的匹配,保证了第一数据传输的可靠性,同时,由于第二数据中包含第一数据中任一帧的确收信息,因此第一数据中一帧数据的确收与否不会影响其他数据帧的发送,保证了数据传输的速率。另外,本发明实施例根据匹配结果及时更新链表数据能够保证发送数据的及时性。
可以理解的是,基于链表信息确定第一数据,之前还包括:
基于第一终端与第二终端的单帧最大容量和连接参数,确定发送和接收数据的连接间隔。
需要说明的是,第一终端(发送方)与第二终端(接收方)建立好BLE无线链路后,需要先进行单帧最大容量mtu值交换以及连接参数更新。连接参数一般根据蓝牙规范来进行更新,更新前的状态通过第一终端发起连接来决定。其中,连接参数作用是在两个蓝牙设备建立链接后,需要以协商的连接参数为间隔交换心跳包,用来维持蓝牙的链接。同时在蓝牙规范中,由于BLE设备是低功耗设备,因此BLE在交换心跳包后,若无数据发送请求,射频模块会关闭,用来节省功耗的流失,等待下一次连接间隔的到来才会重新唤醒射频模块。mtu值协商是为了确定当前确定最大单帧容量,尽量保证第一数据确定发送后能够把缓存区数据发完。
具体的,在本实施例中连接参数可以选用50ms,根据实际应用中数据传输以及设备的功耗,还可以选用48.75ms或30ms。
可以理解的是,发送第一数据给第二终端,包括:
分批发送第一数据给第二终端,其中,每个连接间隔发送一批第一数据。
需要说明的是,由于第一数据中包含有多帧数据,而蓝牙设备传输的吞吐量是有限的,因此在实际场景下需要分批发送第一数据。根据实际场景的需要可以将第一数据分成1/2或1/3的间隔发出,1/2与1/3的区别是影响数据发送时间和速度。比如,第三链表中可发送数据帧数k=9,连接间隔是50ms时,若将第一数据分成两批发送占用时间为100ms,分成三批发送的占用时间是150ms。
示例性的是,在某一连接间隔事件到来后,第一终端的蓝牙controller层依次通过ATT_WRITE_REQ的方式将待发送的前1/2(向后取整)数据帧通过信号调制发送给第二终端。其中,向后去整是指在数据帧数量不能被分批数整除时,需要将分批向后取整,比如待发送数据帧为5,前1/2为3,后1/2为2;若待发送数据帧为4,前1/2为2,后1/2为2。
在下个连接间隔到来后,第一终端的蓝牙controller层将待发送的数据帧后1/2(向后取整)数据帧依次调制发送出去。同时,第一终端还会通过解调接收到第二终端的第二数据。通过比较第二数据中应答帧与待确认数据帧的序号,若存在相同序号,则将该数据帧从第一链表的待确认数据帧中移除,并对controller层的第二链表中可发送数据帧数量加1,不存在相同则不操作。
本发明实施例提供的数据传输方法,充分考虑蓝牙传输的吞吐量和实际场景对于蓝牙速率的需求,采用分批发送数据帧的方式,在每个连接间隔下利用每个可用时隙来完成数据传输,提升了数据传输的效率也保证了数据传输的可靠性。
图2示例了本发明实施例提供的数据传输方法的流程示意图,该方法应用于第二终端侧执行数据传输任务,该方法至少包括以下步骤:
步骤201、接收第一终端发送的第一数据,第一数据基于链表信息确定;
步骤202、发送第二数据给第一终端,第二数据包括第一数据中任一数据帧的确收信息,第二数据用于与第一数据匹配,更新链表信息。
需要说明的是,第二终端执行本发明实施例提供的数据传输过程如下:首先,第二终端根据接收第一终端发送的第一数据,并通过解调获得第一数据包含任一帧的数据帧,然后根据接收到的数据帧生成应答帧,再通过对应答帧进行调制后发送给第一终端。最终,第一终端能够根据解调第二数据中的应答帧获得确收信息,并通过匹配的结果更新链表信息,进行下一次的数据传输。
本发明实施例提供的数据传输方法针对现有蓝牙传输时效性受限、串行通讯以及通信带宽利用率较低的问题,设计了多个数据链表,通过链表信息获得包含多个数据帧的第一数据。发送方一次能够传输多帧数据,改变了以往单帧传输的固有模式。另外,根据匹配结果不需要等待发出所有数据均应答就可以继续发送数据,在保证蓝牙可靠性传输的同时提升了传输的速率。
可以理解的是,链表信息包括第一链表、第二链表和第三链表,第一链表用于存储待发送数据帧,第二链表用于存储待确认数据帧,第三链表用于存储可发送数据帧。
可以理解的是,接收第一终端发送的第一数据,之前还包括:
基于第一终端与第二终端的单帧最大容量和连接参数,确定发送和接收数据的连接间隔。
对此,需要说明的是,单帧最大容量的协商能够保证在发送数据量最多的情况下最大程度的利用缓存区的容量,有利于提升通信带宽利用率。而连接参数确定的是低功耗蓝牙传输的间隔,因此连接参数的协商有利于针对实际的需求,确定更合适的传输速度,二者的协商结果能够共同提供更合适的蓝牙吞吐量。
可以理解的是,接收第一终端发送的第一数据,包括:
第二终端接收第一终端分批发送的第一数据,其中,每个连接间隔发送一批第一数据。
需要说明的是,由于第一数据中包含有多帧数据,而蓝牙设备传输的吞吐量是有限的,因此在实际场景下需要分批发送第一数据。在收到一批第一数据的连接间隔内,第二终端通过解调接收到ATT_WRITE_REQ数据帧,将数据帧上报到ATT层,并把数据帧序号添加到ATT_WRITE_RSP应答帧中,在下个连接间隔到来时候,依次将应答帧发送给设备A。
智能家电设备使用蓝牙BLE技术进行可靠性数据传输时,一般会采用在协议层ATT_WRITE_REQ写数据的方式来保证数据的可靠性。因为基于最新的蓝牙规范5.3版本中,ATT_WRITE_REQ写数据方式需要等待对端设备ATT_WRITE_RSP应答后,才能继续发送下一帧数据,若没有接收到ATT_WRITE_RSP应答,需要进行重发。因此保证了数据的可靠性传输,传统的蓝牙数据传输过程中需要经过以下几个步骤:
步骤1、发送端的ATT层将调用协议栈接口待发送的数据传递给蓝牙controller层。
步骤2、发送端蓝牙controller层将在使用无线链路建立的连接间隔参数进行跳频,并在空闲状态下将数据帧通过信号调制发送出去。
步骤3、接收端通过信号解调拿到发送端的数据帧后,将数据送至接收端的ATT层。
步骤4、接收端的ATT层对数据帧做出ATT_WRITE_RSP应答帧并传递给接收端蓝牙controller层。
步骤5、接收端蓝牙controller层将在使用无线链路建立的连接间隔参数进行跳频,并在空闲状态下将数据帧通过信号调制发送出去。
步骤6、发送端通过信号解调拿到接收端的ATT_WRITE_RSP应答帧后,将数据送至发送端ATT层。
至此1次数据传输完毕,同时可以算出1次数据传输时间最少需要占用两个连接间隔。实际上对于两个设备的蓝牙数据发送占用的射频带宽时间最大为2.12ms(理论计算值),但连接间隔一般设置为50ms(常见使用值),因此两个设备间的射频带宽大多数时间均在等待,对射频的利用率为(2.12+2.12)/(50+50)=4.24%,利用率较低。同时BLE拥有低功耗,信道跳频的特性,因此在BLE中使用确认机制通信,较长的时间会使RF射频资源处于空闲状态,限制BLE的通信速率。
可以理解的是,参照图3,本发明实施例提供的蓝牙数据传输方法流程,包括如下步骤:
步骤31、发送方与接收方蓝牙连接,建立好BLE无线链路后,先进行mtu值交换以及连接参数更新,其中连接参数为50ms。
步骤32、发送方的应用层通过调用ATT层接口把数据添加到“待发送数据链表”后,进入data_tran_task任务。
步骤33、发送方读取“待发送的数据链表”的数据帧数量记为m,读取“待确认数据帧”数量记为n,读取m,n均为0则退出此次调度,否则读取controller层内可发送数据帧数量记为k。
步骤34、若m≥k时,发送方依次从待发送数据链表中取出k帧数据添加到conntroller层发送数据缓存区并将数据帧添加待确认的数据链表;
若m<k时,发送方依次从待发送数据链表中取出m帧数据添加到conntroller层发送数据缓存区并将数据帧添加待确认的数据链表。
步骤35、在连接间隔事件到来后,发送方controller层依次通过ATT_WRITE_REQ的方式将待发送的前1/2(向后取整)数据帧通过信号调制将数据发送出去。
步骤36、在步骤35的连接间隔事件内,接收方通过解调接收到ATT_WRITE_REQ数据帧,将数据帧上报到att层,并把数据帧序号添加到ATT_WRITE_RSP应答帧中,在下个连接间隔到来时候,依次将应答帧发送给发送方。
步骤37、发送方在下个连接间隔事件到来后,蓝牙controller将待发送的数据帧后1/2数据帧依次调制发送出去,通过解调接收到设备B的应答帧。
通过比较应答帧与待确认的序号比较,存在相同序号则将该数据帧从待确认数据链表中移除,并对controller层的可发送数据链表的数据帧数量依次加1,不存在相同则不操作。
步骤38、后续的待发送数据链表的数据帧发送重复步骤33~37。
本发明实施例提供的蓝牙数据传输方法,通过在蓝牙协议中增加3个数据链表结构后,通过算法实现两个蓝牙BLE设备不需等待对端设备的ATT_WRITE_RSP应答帧即可往下发送数据帧。
下面对本发明提供的数据传输装置进行描述,下文描述的数据传输装置与上文描述的第一终端侧的数据传输方法可相互对应参照。如图4所示,本发明实施例还公开了一种数据传输装置,包括:
第一发送模块401,用于基于链表信息,确定第一数据;还用于发送第一数据给第二终端;
第一接收模块402,用于接收第二终端发送的第二数据,第二数据包括第一数据中任一数据帧的确收信息;还用于基于第一数据和第二数据的匹配结果,更新链表信息。
本发明实施例提供的数据传输装置针对现有蓝牙传输时效性受限、串行通讯以及通信带宽利用率较低的问题,设计了多个数据链表,通过链表信息获得包含多个数据帧的第一数据。第一终端能够通过发送第一数据一次发出多帧数据,改变了以往单帧传输的固有模式。另外,第一终端根据匹配结果不需要等待发出所有数据均应答就可以继续发送数据,在保证蓝牙可靠性传输的同时提升了传输的速率。
可以理解的是,链表信息包括第一链表、第二链表和第三链表,第一链表用于存储待发送数据帧,第二链表用于存储待确认数据帧,第三链表用于存储可发送数据帧。
可以理解的是,第一发送模块401中基于链表信息确定第一数据,包括:
基于第一链表的数据帧个数和第三链表的数据帧个数,确定第一数据的数据帧个数;
基于所述第一数据的数据帧个数和所述第一链表,确定第一数据。
可以理解的是,第一接收模块402中基于第一数据和第二数据的匹配结果更新链表信息,包括:
确认第二数据和第一数据中任一数据帧匹配成功,更新第二链表和第三链表。
可以理解的是,第一发送模块401中基于链表信息确定第一数据,之前还包括:
基于第一终端与第二终端的单帧最大容量和连接参数,确定发送和接收数据的连接间隔。
可以理解的是,发送第一数据给第二终端,包括:
分批发送第一数据给第二终端,其中,每个连接间隔发送一批第一数据。
下面对本发明提供的数据传输装置进行描述,下文描述的数据传输装置与上文描述的第二终端侧的数据传输方法可相互对应参照。如图5所示,本发明实施例还公开了一种数据传输装置,包括:
第二接收模块501,用于接收第一终端发送的第一数据,第一数据基于链表信息确定;
第二发送模块502,用于发送第二数据给第一终端,第二数据包括第一数据中任一数据帧的确收信息,第二数据用于与第一数据匹配,更新链表信息。
本发明实施例提供的数据传输装置针对现有蓝牙传输时效性受限、串行通讯以及通信带宽利用率较低的问题,设计了多个数据链表,通过链表信息获得包含多个数据帧的第一数据。发送方一次能够传输多帧数据,改变了以往单帧传输的固有模式。另外,根据匹配结果不需要等待发出所有数据均应答就可以继续发送数据,在保证蓝牙可靠性传输的同时提升了传输的速率。
可以理解的是,链表信息包括第一链表、第二链表和第三链表,第一链表用于存储待发送数据帧,第二链表用于存储待确认数据帧,第三链表用于存储可发送数据帧。
可以理解的是,第二接收模块501中接收第一终端发送的第一数据,之前还包括:
基于第一终端与第二终端的单帧最大容量和连接参数,确定发送和接收数据的连接间隔。
可以理解的是,接收第一终端发送的第一数据,包括:
第二终端接收第一终端分批发送的第一数据,其中,每个连接间隔发送一批第一数据。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行如下方法:
基于链表信息,确定第一数据;
发送第一数据给第二终端;
接收第二终端发送的第二数据,第二数据包括第一数据中任一数据帧的确收信息;
基于第一数据和第二数据的匹配结果,更新链表信息。
或是,执行如下方法:
接收第一终端发送的第一数据,第一数据基于链表信息确定;
发送第二数据给第一终端,第二数据包括第一数据中任一数据帧的确收信息,第二数据用于与第一数据匹配,更新链表信息。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例公开一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
基于链表信息,确定第一数据;
发送第一数据给第二终端;
接收第二终端发送的第二数据,第二数据包括第一数据中任一数据帧的确收信息;
基于第一数据和第二数据的匹配结果,更新链表信息。
或是,执行如下方法:
接收第一终端发送的第一数据,第一数据基于链表信息确定;
发送第二数据给第一终端,第二数据包括第一数据中任一数据帧的确收信息,第二数据用于与第一数据匹配,更新链表信息。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:
基于链表信息,确定第一数据;
发送第一数据给第二终端;
接收第二终端发送的第二数据,第二数据包括第一数据中任一数据帧的确收信息;
基于第一数据和第二数据的匹配结果,更新链表信息。
或是,执行如下方法:
接收第一终端发送的第一数据,第一数据基于链表信息确定;
发送第二数据给第一终端,第二数据包括第一数据中任一数据帧的确收信息,第二数据用于与第一数据匹配,更新链表信息。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是,以上实施方式仅用于说明本发明,而非对本发明的限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行各种组合、修改或者等同替换,都不脱离本发明技术方案的精神和范围,均应涵盖在本发明的范围中。
Claims (12)
1.一种数据传输方法,其特征在于,包括:
基于链表信息,确定第一数据;
发送所述第一数据给第二终端;
接收所述第二终端发送的第二数据,所述第二数据包括所述第一数据中任一数据帧的确收信息;
基于所述第一数据和所述第二数据的匹配结果,更新所述链表信息。
2.根据权利要求1所述的数据传输方法,其特征在于,所述链表信息包括第一链表、第二链表和第三链表,所述第一链表用于存储待发送数据帧,所述第二链表用于存储待确认数据帧,所述第三链表用于存储可发送数据帧。
3.根据权利要求2所述的数据传输方法,其特征在于,所述基于链表信息确定第一数据,包括:
基于所述第一链表的数据帧个数和所述第三链表的数据帧个数,确定所述第一数据的数据帧个数;
基于所述第一数据的数据帧个数和所述第一链表,确定所述第一数据。
4.根据权利要求2所述的数据传输方法,其特征在于,所述基于所述第一数据和所述第二数据的匹配结果更新所述链表信息,包括:
确认所述第二数据和所述第一数据中任一数据帧匹配成功,更新所述第二链表和第三链表。
5.根据权利要求1至4中任一所述的数据传输方法,其特征在于,所述基于链表信息确定第一数据,之前还包括:
基于第一终端与第二终端的单帧最大容量和连接参数,确定发送和接收数据的连接间隔。
6.根据权利要求5所述的数据传输方法,其特征在于,所述发送所述第一数据给第二终端,包括:
分批发送所述第一数据给第二终端,其中,每个连接间隔发送一批所述第一数据。
7.一种数据传输方法,其特征在于,包括:
接收第一终端发送的第一数据,所述第一数据基于链表信息确定;
发送第二数据给所述第一终端,所述第二数据包括所述第一数据中任一数据帧的确收信息,所述第二数据用于与所述第一数据匹配,更新所述链表信息。
8.一种数据传输装置,其特征在于,包括:
第一发送模块,用于基于链表信息,确定第一数据;还用于发送所述第一数据给第二终端;
第一接收模块,用于接收所述第二终端发送的第二数据,所述第二数据包括所述第一数据中任一数据帧的确收信息;还用于基于所述第一数据和所述第二数据的匹配结果,更新所述链表信息。
9.一种数据传输装置,其特征在于,包括:
第二接收模块,用于接收第一终端发送的第一数据,所述第一数据基于链表信息确定;
第二发送模块,用于发送第二数据给所述第一终端,所述第二数据包括所述第一数据中任一数据帧的确收信息,所述第二数据用于与所述第一数据匹配,更新所述链表信息。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述数据传输方法。
11.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述数据传输方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210709294.XA CN115001541B (zh) | 2022-06-21 | 2022-06-21 | 数据传输方法、装置、电子设备、存储介质和产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210709294.XA CN115001541B (zh) | 2022-06-21 | 2022-06-21 | 数据传输方法、装置、电子设备、存储介质和产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115001541A true CN115001541A (zh) | 2022-09-02 |
CN115001541B CN115001541B (zh) | 2023-05-05 |
Family
ID=83037299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210709294.XA Active CN115001541B (zh) | 2022-06-21 | 2022-06-21 | 数据传输方法、装置、电子设备、存储介质和产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115001541B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873209A (zh) * | 2014-03-18 | 2014-06-18 | 上海交通大学 | 一种提高无线通信效率的帧校验机制 |
WO2014194515A1 (en) * | 2013-06-07 | 2014-12-11 | Apple Inc. | Managing pending acknowledgement packets in a communication device |
US20150146648A1 (en) * | 2013-11-25 | 2015-05-28 | Canon Kabushiki Kaisha | Method and device for data communication in a communication network |
WO2016091085A1 (zh) * | 2014-12-08 | 2016-06-16 | 北京奇虎科技有限公司 | 数据传输方法、装置和服务器 |
CN108322479A (zh) * | 2018-03-06 | 2018-07-24 | 深圳辉烨通讯技术有限公司 | 数据传输方法、装置、终端以及存储介质 |
CN112162875A (zh) * | 2020-10-12 | 2021-01-01 | 上交所技术有限责任公司 | 一种交易系统内部高可靠消息传输方法 |
CN112838910A (zh) * | 2021-03-23 | 2021-05-25 | 中国科学技术大学 | 一种基于混合反馈的数据传输方法及装置 |
CN114499772A (zh) * | 2020-11-12 | 2022-05-13 | 华为技术有限公司 | 数据传输方法及电子设备 |
-
2022
- 2022-06-21 CN CN202210709294.XA patent/CN115001541B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014194515A1 (en) * | 2013-06-07 | 2014-12-11 | Apple Inc. | Managing pending acknowledgement packets in a communication device |
US20150146648A1 (en) * | 2013-11-25 | 2015-05-28 | Canon Kabushiki Kaisha | Method and device for data communication in a communication network |
CN103873209A (zh) * | 2014-03-18 | 2014-06-18 | 上海交通大学 | 一种提高无线通信效率的帧校验机制 |
WO2016091085A1 (zh) * | 2014-12-08 | 2016-06-16 | 北京奇虎科技有限公司 | 数据传输方法、装置和服务器 |
CN108322479A (zh) * | 2018-03-06 | 2018-07-24 | 深圳辉烨通讯技术有限公司 | 数据传输方法、装置、终端以及存储介质 |
CN112162875A (zh) * | 2020-10-12 | 2021-01-01 | 上交所技术有限责任公司 | 一种交易系统内部高可靠消息传输方法 |
CN114499772A (zh) * | 2020-11-12 | 2022-05-13 | 华为技术有限公司 | 数据传输方法及电子设备 |
CN112838910A (zh) * | 2021-03-23 | 2021-05-25 | 中国科学技术大学 | 一种基于混合反馈的数据传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115001541B (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3248348B2 (ja) | 通信方法及び通信装置 | |
CN102685920B (zh) | 移动Ad Hoc网络中的双信道预约接入控制方法 | |
CN110461033B (zh) | 针对电力节省的接收操作模式指示 | |
US9288757B2 (en) | Techniques for conserving power for communication between wireless devices | |
CN109526020A (zh) | 数据传输方法及相关产品 | |
CN113261221B (zh) | 块确认反馈控制方法、装置、通信设备及存储介质 | |
CN111200811A (zh) | 一种tws耳机及其升级方法、装置及可读存储介质 | |
EP3911089A1 (en) | Transmission processing method and device, and apparatus and storage medium | |
CN114500528A (zh) | 一种基于云平台的数据传输方法及装置 | |
CN109445806A (zh) | 基于Ble的多设备升级方法、装置、系统及终端 | |
CN115001541B (zh) | 数据传输方法、装置、电子设备、存储介质和产品 | |
CN115038115A (zh) | 数据传输方法、装置、电子设备、存储介质和产品 | |
CN113573252B (zh) | 数据传输方法、系统、芯片、电子设备及存储介质 | |
CN102457824B (zh) | 一种事件处理方法和装置 | |
CN115038120A (zh) | 数据传输方法、装置、电子设备、存储介质及程序产品 | |
CN115038116A (zh) | 数据传输方法、装置、电子设备、存储介质和产品 | |
CN109451596B (zh) | 数据传输方法及相关装置 | |
CN109391375B (zh) | 反射映射的启动方法、通信设备及存储介质 | |
CN107786310B (zh) | 一种数据包传输方法和节点 | |
CN111328056A (zh) | 基于att和读写指令进行协议适配的通信方法及系统 | |
CN111278011B (zh) | 一种智能音箱的配网方法及智能音箱 | |
WO2023019588A1 (zh) | 帧交互控制方法、装置、设备及存储介质 | |
CN114090484B (zh) | 远程直接数据存取方法及装置 | |
CN114503476B (zh) | 信息发送方法和装置、终端、接入网设备和系统 | |
EP4184838A1 (en) | Communication method, communication device, electronic device and computer storage medium |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |