CN109391929B - 低功耗蓝牙数据传输方法及电子设备 - Google Patents
低功耗蓝牙数据传输方法及电子设备 Download PDFInfo
- Publication number
- CN109391929B CN109391929B CN201811410188.1A CN201811410188A CN109391929B CN 109391929 B CN109391929 B CN 109391929B CN 201811410188 A CN201811410188 A CN 201811410188A CN 109391929 B CN109391929 B CN 109391929B
- Authority
- CN
- China
- Prior art keywords
- data
- buffer area
- sending
- receiving buffer
- newly received
- 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.)
- Active
Links
Images
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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)
- Quality & Reliability (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请提供一种基于低功耗蓝牙(BLE)技术的数据传输方法及电子设备。所述方法包括:建立数据接收缓冲区,将采集的数据存入所述数据接收缓冲区;建立发送数据缓冲区,在所述发送数据缓冲区有空间时,将所述数据接收缓冲区中的数据读出至所述发送数据缓冲区;反复调用BLE接口以发送所述发送数据缓冲区的数据,同时,确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区。通过本申请的方案,能够有效减少低功耗蓝牙数据传输过程中的数据包丢失情况,提高数据传输的稳定性,增强利用BLE技术进行大容量数据传输的抗干扰性。
Description
技术领域
本申请涉及无线数据传输技术领域,尤其涉及一种低功耗蓝牙数据传输方法及电子设备。
背景技术
低功耗蓝牙(Bluetooth Low Energy,以下简称:BLE)技术与经典蓝牙技术一样同属于蓝牙联盟定义的标准通信协议,主要用于蓝牙音频耳机、智能音箱等产品,这些设备功能主要是用于听音乐和接听电话使用,技术比较成熟,但是经典蓝牙技术的缺点是功耗高,一般需要配置比较大的电池,连续工作时间比较短,经常需要充电才能使用。
而BLE主要用于低功耗应用的场景领域,体现它低功耗、长待机、高寿命的优势,并且可以和手机直连,非常灵活,经常应用于低功耗可穿戴设备上如手环,遥控器,键盘鼠标等,不需要经常充电或更换电池。但它的主要缺点是低速,目前BLE5.0空中通信速率最大是2mbps,而经典蓝牙可以达到24mbps,两者差距非常大。虽然目前BLE 5.0理论的数据吞吐量可以达到1.4mbps,但受到手机系统和使用环境的限制,一般都达不到这个数值,通信带宽有限,从而无法直接应用于大容量数据传输,如音频、视频传输,因为大容量数据传输应用领域,不断的有新数据产生,在环境恶劣情况下,就容易出现漏发(丢包)问题,甚至断开链路。
针对上述问题,目前尚未提出有效的解决方式。
发明内容
有鉴于此,本申请提出了一种基于低功耗蓝牙(BLE)技术的数据传输方法及设备,通过建立数据接收缓冲区和发送数据缓冲区,并在反复调用BLE 接口将发送缓冲区中数据发送出去的同时,将数据接收缓冲区新接收的数据读出至发送数据缓冲区,能够有效减少低功耗蓝牙数据传输过程中的数据包丢失情况,提高数据传输的稳定性,增强利用BLE技术进行大容量数据传输的抗干扰性。
根据本申请的一个方面,提供一种基于低功耗蓝牙(BLE)技术的数据传输方法,包括:建立数据接收缓冲区,将采集的数据存入所述数据接收缓冲区;建立发送数据缓冲区,在所述发送数据缓冲区有空间时,将所述数据接收缓冲区中的数据读出至所述发送数据缓冲区;反复调用BLE接口以发送所述发送数据缓冲区的数据,同时,确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区。
进一步地,反复调用BLE接口以发送所述发送数据缓冲区的数据,同时,确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区,包括:A,查询所述发送数据缓冲区中是否有数据待发送;B,如有,反复调用BLE接口以发送所述发送数据缓冲区中指定数据直至发送成功,并在此过程中,反复确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的的数据读出至所述发送数据缓冲区;当发送成功后,返回步骤A继续执行。
进一步地,采用直接内存存取(DMA,Direct Memory Access中断机制以间隔一定周期触发所述数据接收缓冲区接收一次新的数据;和/或,所述数据包括音频和/或视频数据。
进一步地,采用DMA中断机制以间隔一定周期触发所述数据接收缓冲区接收一次新的数据,包括:设置预定的DMA数据接收长度以实现间隔一定周期中断触发所述数据接收缓冲区接收一次新的数据;和/或,确认所述数据接收缓冲区中是否有新接收的数据,包括:通过查询DMA事件标志确认所述数据接收缓冲区中是否有新接收的数据;
进一步地,反复调用BLE接口以发送所述发送数据缓冲区的数据包括:以预设数据量取出所述发送数据缓冲区中的数据以发送;和/或,确认所述数据接收缓冲区中是否有新接收的数据,包括:通过查询数据接收标记确认所述数据接收缓冲区中是否有新接收的数据;和/或,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区,包括:查询到所述发送数据缓冲区是否有空间写入,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区;和/或,调用BLE接口以发送所述发送数据缓冲区的数据之前包括:对待发送的数据进行格式封装。
进一步地,所述格式封装包括:加入包头序号。
进一步地,反复调用BLE接口以发送所述发送数据缓冲区的数据,同时,确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区,包括:
A,确认所述数据接收缓冲区中是否有新接收的数据;
B,如是,从所述数据接收缓冲区中取出数据;
C,查询所述发送数据缓冲区中是否有空间写入数据;
D,如是,将所述数据接收缓冲区中的数据读出至所述发送数据缓冲区;
E,如否,提示所述数据接收缓冲区已满;
F,查询所述发送数据缓冲区中是否有数据待发送,如是,执行步骤G;
G,调用BLE接口发送所述发送数据缓冲区中的至少部分数据;
H,发送成功,返回步骤A继续执行;
I,发送失败,返回执行步骤A至E和G。
根据本申请的另一个方面,提供一种基于低功耗蓝牙(BLE)技术的电子设备,包括:数据采集单元,用于采集数据;BLE接口单元,其包括BLE接口,用于发送数据;处理单元,用于执行如下功能:建立数据接收缓冲区,将采集的数据存入所述数据接收缓冲区;建立发送数据缓冲区,在所述发送数据缓冲区有空间时,将所述数据接收缓冲区中的数据读出至所述发送数据缓冲区;反复调用所述BLE接口单元的BLE接口以发送所述发送数据缓冲区的数据,同时,确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区。
进一步地,反复调用BLE接口以发送所述发送数据缓冲区的数据,同时,确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区,包括:A,查询所述发送数据缓冲区中是否有数据待发送;B,如有,反复调用BLE接口以发送所述发送数据缓冲区中指定数据直至发送成功,并在此过程中,反复确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的的数据读出至所述发送数据缓冲区;当发送成功后,返回步骤A继续执行。
进一步地,采用直接内存存取(DMA)中断机制以间隔一定周期触发所述数据接收缓冲区接收一次新的数据;和/或,所述数据包括音频和/或视频数据。
进一步地,采用DMA中断机制以间隔一定周期触发所述数据接收缓冲区接收一次新的数据,包括:设置预定的DMA数据接收长度以实现间隔一定周期中断触发所述数据接收缓冲区接收一次新的数据;和/或,确认所述数据接收缓冲区中是否有新接收的数据,包括:通过查询DMA事件标志确认所述数据接收缓冲区中是否有新接收的数据。
进一步地,反复调用BLE接口以发送所述发送数据缓冲区的数据包括:以预设数据量取出所述发送数据缓冲区中的数据以发送;和/或,确认所述数据接收缓冲区中是否有新接收的数据,包括:通过查询数据接收标记确认所述数据接收缓冲区中是否有新接收的数据;和/或,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区,包括:查询到所述发送数据缓冲区是否有空间写入,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区;和/或,调用BLE接口以发送所述发送数据缓冲区的数据之前包括:对待发送的数据进行格式封装。
进一步地,所述格式封装包括:加入包头序号。
进一步地,反复调用BLE接口以发送所述发送数据缓冲区的数据,同时,确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区,包括:
A,确认所述数据接收缓冲区中是否有新接收的数据;
B,如是,从所述数据接收缓冲区中取出数据;
C,查询所述发送数据缓冲区中是否有空间写入数据;
D,如是,将所述数据接收缓冲区中的数据读出至所述发送数据缓冲区;
E,如否,提示所述数据接收缓冲区已满;
F,查询所述发送数据缓冲区中是否有数据待发送,如是,执行步骤G;
G,调用BLE接口发送所述发送数据缓冲区中的至少部分数据;
H,发送成功,返回步骤A继续执行;
I,发送失败,返回执行步骤A至E和G。
根据本申请提出的一种基于低功耗蓝牙(BLE)技术的数据传输方法及设备,通过建立数据接收缓冲区和发送数据缓冲区,并在反复调用BLE接口将发送缓冲区中数据发送出去的同时,将数据接收缓冲区新接收的数据读出至发送数据缓冲区,能够有效减少低功耗蓝牙数据传输过程中的数据包丢失情况,提高数据传输的稳定性,增强利用BLE技术进行大容量数据传输的抗干扰性。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了本申请的一种基于低功耗蓝牙(BLE)技术的电子设备的一实施例的示意图;
图2示出了本申请的一种基于低功耗蓝牙(BLE)技术的数据传输方法的一实施例的示意图;
图3示出了本申请的主要步骤的一实施例的示意图;
图4示出了本申请的音频数据BLE上行传输流程框架的一实施例的示意图;
图5示出了本申请的音频数据BLE上行传输流程图的一实施例的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
大数据量的数据传输,既要保证实时性,又要保证尽可能不丢包。以音频传输为例,不断的有新数据产生,实时性是通过BLE技术的通信速率来解决,只有空中发送速率超过音频流数据的产生就可以保证数据是没有延时的。而丢包是因为环境干扰的问题,前面的数据包没有发送出去,处于忙的状态(如自动重传),而新的数据又过来,导致新的数据无法进入射频发射队列,而当再下一个新的数据过来又会覆盖前面那个还没传入发射队列的新数据,就会出现所谓的漏发(丢包)现象。
图1示出了本申请的一种基于低功耗蓝牙(BLE)技术的电子设备的一实施例的示意图。
如图1所示,BLE电子设备100包括数据采集单元110、处理单元120 和BLE接口单元130。BLE电子设备100例如为BLE音频耳机、BLE智能音箱、BLE可穿戴设备如手环或手表等、BLE遥控器,BLE键盘鼠标等等产品。数据采集单元110例如包括麦克风、摄像头等用于实时采集音频和或视频的电子器件。处理单元120例如包括CPU、MCU、GPU、单片机等能执行控制功能和/或进行数据运算的器件。BLE接口单元130包括基于BLE技术的用于收/发数据的接口。
图2示出了本申请的一种基于低功耗蓝牙(BLE)技术的数据传输方法的一实施例的示意图。
如图2所示,该方法包括如下步骤:
S1,建立数据接收缓冲区;
S2,建立发送数据缓冲区;
S3,反复调用BLE接口以发送数据缓冲区的数据,同时,确认数据接收缓冲区中是否有新接收的数据,如有,将数据接收缓冲区中新接收的数据读出至发送数据缓冲区。
处理单元120用于执行如图2所示的方法功能。在步骤S1中建立的数据接收缓冲区,用于存储数据采集单元110采集的数据;在步骤S2中建立的发送数据缓冲区,当其有空间时,用于存储自数据接收缓冲区读取过来的数据,以备将这些数据通过BLE接口单元130的BLE接口发送出去。
在步骤S3中,处理单元120要做的是,反复调用BLE接口单元130的 BLE接口以发送数据缓冲区的数据,例如,反复查询发送数据缓冲区的状态,是否有数据待发送,只要有数据待发送,就调用BLE接口进行发送,每次发送指定的数据,例如,一般情况下,每次发送一个帧或者指定数量的帧。在通常情况下,会发送成功,然后再进入循环查询是否还有缓冲的待发送数据,这样可最大程度的把数据发送出去,速率也能提上去。但是在异常情况,可能会出现忙状态或队列已满,即无法发出当前指定的数据如当前帧数据,如果是这样,即便再次调用BLE接口,继续尝试,直到忙状态解除或队列有空的位置,这样可以最快的进行新的数据填充,但是此时处理单元如CPU相当于一直处于等待的状态,不做其它的事情,如果此时有新的数据进来,CPU没有及时把数据写入缓冲区,就会造成数据丢失。因此,为了解决这个问题,本申请在反复调用BLE数据接口发送数据的同时,进行数据查询判断,有新的数据就接收进来,放入缓冲区,也就是说,本申请在反复调用BLE数据接口发送当前指定的数据如当前预定数量的帧数据直至发送成功的同时,反复确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区。也就是说,反复调用BLE接口以发送所述发送数据缓冲区的数据,同时,确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区,包括:A,查询所述发送数据缓冲区中是否有数据待发送;B,如有,反复调用BLE接口以发送所述发送数据缓冲区中指定数据直至发送成功,并在此过程中,反复确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的的数据读出至所述发送数据缓冲区;当发送成功后,返回步骤A继续执行。这样,在一定程度就不会丢失数据。具体能抵抗多久的干扰,主要取决于数据接收缓冲区的大小,数据接收缓冲区的大小又取决于实际的应用需求。当BLE发送成功,重新查询发送缓冲区数据,再次进行以上操作。这样通过反复调用BLE接口发送数据直至发送成功,一个是可以保证发送速率得到提升,另一个是如果有数据需要接收,可以及时处理,这样就可以做到速率快,又不漏发。
作为示例,数据采集单元110采集数据并进行处理后,数据通过特定接口如I2S(Integrated Interchip Sound,集成电路内置音频总线)接口流入处理单元120如MCU芯片进行处理,然后再把数据通过BLE接口单元 130的BLE接口转发至手机。I2S是数字音频数据交互的一种标准规范,比较通用,一般MCU都会配有这样的外设接口,这里以其为例,但不局限于 I2S,其它的数字音频接口也适用,包括但不限于如S/PDIF、PCM、AES/EBU、 ADAT、TDIF、R-BUS等。
在一种实现方式中,处理单元120采用DMA中断机制以间隔一定周期触发数据接收缓冲区接收一次新的数据,这个周期时间长度,本领域技术人员可以根据需求自行设置。DMA会把外部采集的数据例如通过I2S复制到预设空间的位置,相当于是接收的数据缓冲区。采用DMA机制可以降低处理单元120的工作负荷,提升工作效率。
进一步可选地,通过设置预定的DMA数据接收长度,以实现间隔一定周期中断触发数据缓冲区接收一次新的数据,也就是说,当接收数据缓冲区如DMA缓冲区被填充到预定长度的数据,就产生一次中断,触发发送数据缓冲区接收一次数据。通过设置合适的DMA数据接收长度,可以让处理单元120以一定的周期间隔来进行数据处理,降低处理单元120的使用率。
进一步可选地,设置一个DMA事件标志,通过查询该事件标志以确认数据接收缓冲区中是否有新接收的数据。例如,在中断里面设置一个DMA 事件标志位,当接收数据缓冲区的数据累计到要填入发送队列的数据长度,则将DMA事件标志置1(设置标志的目的是和平常空闲状态区分开,并不局限于数值1),然后在主循环外面去查询这个标志位,这样就可以通过这个标志位知道是否有数据到来,从而降低数据丢失风险。
在一种实现方式中,反复调用BLE接口以发送数据缓冲区的数据包括:以预设数据量取出发送数据缓冲区中的数据以发送。对于读取多少的数据量,可选是和采集数据的传入如I2S定义的长度是一样的,但不限于如此。
在一种实现方式中,确认数据接收缓冲区中是否有新接收的数据,包括:通过查询数据接收标记确认数据接收缓冲区中是否有新接收的数据。也就是说,在数据接收缓冲区接收到新数据时,去设置数据接收标记,从而通过查询该标记,即可确认数据接收缓冲区中是否有新接收的数据。
在一种实现方式中,将数据接收缓冲区中新接收的数据读出至发送数据缓冲区,包括:查询到发送数据缓冲区是否有空间写入,如有,将数据接收缓冲区中新接收的数据读出至发送数据缓冲区。可以理解的,只有有空间写入才能写入,在此不做赘述。
在一种实现方式中,调用BLE接口单元130以发送数据缓冲区的数据之前包括:对待发送的数据进行格式封装。处理单元120根据需要,对读出的数据进行格式封装,例如加入包头序号等,以满足实际发送数据的需要。在传输给BLE接收端如手机的过程中,每次发送包的大小要事先约定好,并且对每包的数据格式进行定义,这样可以确保手机端接收数据后正常解析,但并不局限于此,如果事先知道彼此数据状态,也可以不封装,直接发送。另外数据进行包的格式转换,可以在存入发送缓冲区的时候进行,也可以在取出发送缓冲区的时候进行格式封装。
图3示出了本申请的主要步骤的一实施例的示意图。
如图3所示,作为一种实现方式,图2的步骤S3可以细化为步骤S31 至S37。
S31,确认数据接收缓冲区中是否有新接收的数据;
S32,如是,从数据接收缓冲区中取出数据;
S33,查询发送数据缓冲区中是否有空间写入数据;
S34,如是,将数据接收缓冲区中的数据读出至发送数据缓冲区;
S35,如否,提示所述数据接收缓冲区已满;
S36,查询所述发送数据缓冲区中是否有数据待发送,如是,执行步骤 S37;
S37,调用BLE接口发送所述发送数据缓冲区中的至少部分数据;
发送成功,返回步骤S31继续执行;
发送失败,返回执行步骤S31至S35和S37,即无需再次查询发送数据缓冲是否有数据可发送直至发送成功。
为了清楚的说明本申请的方案,下面以音频数据传输为例,进一步阐述。
图4示出了本申请的音频数据BLE上行传输流程框架的一实施例的示意图。
如图4所示,从结构图可知,麦克风210收音经过音频CODEC表解码器220处理后,数据通过I2S接口流入MCU芯片230进行处理,然后再把数据通过BLE转发至手机240,主要的工作都是在MCU进行处理的。I2S是数字音频数据交互的一种标准规范,比较通用,一般MCU都会配有这样的外设接口,这里以其为例,但不局限于I2S,其它的数字音频接口也适用,包括但不限于如S/PDIF、PCM、AES/EBU、ADAT、TDIF、R-BUS等。
在一种实现方式中,对于音频数据的传入采用I2S的DMA机制进行接收;采用DMA机制可以降低MCU工作负荷,提升工作效率,通过设置合适的DMA数据接收长度,可以让MCU以一定的周期间隔来进行数据处理,降低MCU使用率。
然后通过DMA中断触发处理任务函数,设置一个DMA事件标志为1(设置标志的目的是和平常空闲状态区分开,并不局限于数值1)。另外中断的工作方式,可以保障数据能及时被MCU处理,降低数据丢失风险。
图5示出了本申请的音频数据BLE上行传输流程图的一实施例的示意图。
A1:MCU进行查询任务循环;
A2:MCU查询是否存在DMA接收标记为1,如果是,执行A3,如果不是,执行A7;
A3:执行A4,查询发送数据缓冲区是否有足够的空间可以写入该笔数据,如果是,则执行A6,把数据写入发送数据缓冲区,然后执行A7;如果不是,则执行A5,提示缓冲区数据已满,然后执行A7;(取出数据放入专属的发送缓冲区,可以实现对发送环节的单独控制,但不局限于如此,也可以直接发送)
A7:MCU查询发送数据缓冲区是否存在数据,如果是,则执行A8;如果不是,执行A1,进入任务查询循环;
A8:MCU读取一帧缓冲区数据,然后执行A9;(对于读取多少的数据量,一般是和I2S传入的长度是一样的,但不限于如此;)
A9:MCU对读出的数据进行格式封装,加入包头序号等,以满足实际发送数据的需要,然后执行A10;(在传输给手机的过程中,每次发送包的大小要事先约定好,并且对每包的数据格式进行定义,这样可以确保手机端接收数据后正常解析,但并不局限于此,如果事先知道彼此数据状态,也可以不封装,直接发送)(另外数据进行包的格式转换,可以在存入发送缓冲区的时候进行,也可以在取出发送缓冲区的时候进行格式封装)。
A10:MCU调用BLE蓝牙数据发送接口,然后执行A11;
A11:MCU检查发送返回结果是否成功,如果是执行A1,如果不是,执行A12;
A12:MCU查询DMA接收标记是否为1,如果是执行A13,如果不是,执行A10;
A13:从DMA缓冲区中取出数据,并把DMA接收标志置为0,然后执行 A14,查询发送数据缓冲区是否有空间可以写入该笔数据,如果是执行A15,如果不是,执行A16;
A15:提示发送缓冲区数据已满,然后执行A10;
A16:把数据写入发送数据缓冲区,然后执行A10;
该机制可以解决发送速率够快,同时接收数据又不易丢失,都能够及时被处理,能够解决BLE传输大容易数据如音频数据上行漏发数据的问题。
以上对本申请的基于低功耗蓝牙(BLE)技术的数据传输方法及电子设备进行了描述。本申请的上述方法及设备,通过建立数据接收缓冲区和发送数据缓冲区,并在反复调用BLE接口将发送缓冲区中数据发送出去的同时,将数据接收缓冲区新接收的数据读出至发送数据缓冲区,能够有效减少低功耗蓝牙数据传输过程中的数据包丢失情况,提高数据传输的稳定性,增强利用BLE技术进行大容量数据传输的抗干扰性。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等各种可以存储程序代码的介质。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (14)
1.一种基于低功耗蓝牙(BLE)技术的数据传输方法,其特征在于,包括:
建立数据接收缓冲区,将采集的数据存入所述数据接收缓冲区,采用直接内存存取(DMA)中断机制以间隔一定周期触发所述数据接收缓冲区接收一次新的数据;
建立发送数据缓冲区,在所述发送数据缓冲区有空间时,将所述数据接收缓冲区中的数据读出至所述发送数据缓冲区;
反复调用BLE接口以发送所述发送数据缓冲区的数据,同时,确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区,具体包括:
A,查询所述发送数据缓冲区中是否有数据待发送;
B,如有,反复调用BLE接口以发送所述发送数据缓冲区中指定数据直至发送成功,并在此过程中,反复确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区;
当发送成功后,返回步骤A继续执行。
2.如权利要求1所述的方法,其特征在于:
所述数据包括音频和/或视频数据。
3.如权利要求2所述的方法,其特征在于,
采用DMA中断机制以间隔一定周期触发所述数据接收缓冲区接收一次新的数据,包括:
设置预定的DMA数据接收长度以实现间隔一定周期中断触发所述数据接收缓冲区接收一次新的数据。
4.根据权利要求2或3所述的方法,其特征在于,
确认所述数据接收缓冲区中是否有新接收的数据,包括:通过查询DMA事件标志确认所述数据接收缓冲区中是否有新接收的数据。
5.如权利要求1所述的方法,其特征在于,
反复调用BLE接口以发送所述发送数据缓冲区的数据包括:以预设数据量取出所述发送数据缓冲区中的数据以发送;
和/或,
确认所述数据接收缓冲区中是否有新接收的数据,包括:通过查询数据接收标记确认所述数据接收缓冲区中是否有新接收的数据;
和/或,
将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区,包括:查询到所述发送数据缓冲区是否有空间写入,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区;
和/或,
调用BLE接口以发送所述发送数据缓冲区的数据之前包括:对待发送的数据进行格式封装。
6.如权利要求5所述的方法,其特征在于:
所述格式封装包括:加入包头序号。
7.如权利要求1所述的方法,其特征在于:
反复调用BLE接口以发送所述发送数据缓冲区的数据,同时,确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区,包括:
A,确认所述数据接收缓冲区中是否有新接收的数据;
B,如是,从所述数据接收缓冲区中取出数据;
C,查询所述发送数据缓冲区中是否有空间写入数据;
D,如是,将所述数据接收缓冲区中的数据读出至所述发送数据缓冲区;
E,如否,提示所述数据接收缓冲区已满;
F,查询所述发送数据缓冲区中是否有数据待发送,如是,执行步骤G;
G,调用BLE接口发送所述发送数据缓冲区中的至少部分数据;
H,发送成功,返回步骤A继续执行;
I,发送失败,返回执行步骤A至E和G。
8.一种基于低功耗蓝牙(BLE)技术的电子设备,其特征在于,包括:
数据采集单元,用于采集数据;
BLE接口单元,其包括BLE接口,用于发送数据;
处理单元,用于执行如下功能:
建立数据接收缓冲区,将采集的数据存入所述数据接收缓冲区,采用直接内存存取(DMA)中断机制以间隔一定周期触发所述数据接收缓冲区接收一次新的数据;
建立发送数据缓冲区,在所述发送数据缓冲区有空间时,将所述数据接收缓冲区中的数据读出至所述发送数据缓冲区;
反复调用所述BLE接口单元的BLE接口以发送所述发送数据缓冲区的数据,同时,确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区,具体包括:
A,查询所述发送数据缓冲区中是否有数据待发送;
B,如有,反复调用BLE接口以发送所述发送数据缓冲区中指定数据直至发送成功,并在此过程中,反复确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区;
当发送成功后,返回步骤A继续执行。
9.如权利要求8所述的电子设备,其特征在于:
所述数据包括音频和/或视频数据。
10.如权利要求9所述的电子设备,其特征在于,
采用DMA中断机制以间隔一定周期触发所述数据接收缓冲区接收一次新的数据,包括:
设置预定的DMA数据接收长度以实现间隔一定周期中断触发所述数据接收缓冲区接收一次新的数据。
11.根据权利要求9或10所述的电子设备,其特征在于,
确认所述数据接收缓冲区中是否有新接收的数据,包括:通过查询DMA事件标志确认所述数据接收缓冲区中是否有新接收的数据。
12.如权利要求8所述的电子设备,其特征在于,
反复调用BLE接口以发送所述发送数据缓冲区的数据包括:以预设数据量取出所述发送数据缓冲区中的数据以发送;
和/或,
确认所述数据接收缓冲区中是否有新接收的数据,包括:通过查询数据接收标记确认所述数据接收缓冲区中是否有新接收的数据;
和/或,
将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区,包括:查询到所述发送数据缓冲区是否有空间写入,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区;
和/或,
调用BLE接口以发送所述发送数据缓冲区的数据之前包括:对待发送的数据进行格式封装。
13.如权利要求12所述的电子设备,其特征在于:
所述格式封装包括:加入包头序号。
14.如权利要求8所述的电子设备,其特征在于:
反复调用BLE接口以发送所述发送数据缓冲区的数据,同时,确认所述数据接收缓冲区中是否有新接收的数据,如有,将所述数据接收缓冲区中新接收的数据读出至所述发送数据缓冲区,包括:
A,确认所述数据接收缓冲区中是否有新接收的数据;
B,如是,从所述数据接收缓冲区中取出数据;
C,查询所述发送数据缓冲区中是否有空间写入数据;
D,如是,将所述数据接收缓冲区中的数据读出至所述发送数据缓冲区;
E,如否,提示所述数据接收缓冲区已满;
F,查询所述发送数据缓冲区中是否有数据待发送,如是,执行步骤G;
G,调用BLE接口发送所述发送数据缓冲区中的至少部分数据;
H,发送成功,返回步骤A继续执行;
I,发送失败,返回执行步骤A至E和G。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811410188.1A CN109391929B (zh) | 2018-11-23 | 2018-11-23 | 低功耗蓝牙数据传输方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811410188.1A CN109391929B (zh) | 2018-11-23 | 2018-11-23 | 低功耗蓝牙数据传输方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109391929A CN109391929A (zh) | 2019-02-26 |
CN109391929B true CN109391929B (zh) | 2022-02-22 |
Family
ID=65429629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811410188.1A Active CN109391929B (zh) | 2018-11-23 | 2018-11-23 | 低功耗蓝牙数据传输方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109391929B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112235268B (zh) * | 2020-09-29 | 2023-01-24 | 北京智芯微电子科技有限公司 | 安全通信方法、系统及装置 |
CN112583935B (zh) * | 2020-12-28 | 2022-11-22 | 深信服科技股份有限公司 | 缓冲区窗口调整方法、网关设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604663A (zh) * | 2003-08-20 | 2005-04-06 | 三星电子株式会社 | 移动通信系统中用于调度上行链路分组传输的方法和设备 |
CN1734997A (zh) * | 2004-08-11 | 2006-02-15 | 华为技术有限公司 | 一种数据传输的方法 |
CN105516907A (zh) * | 2015-12-30 | 2016-04-20 | 广州中海达卫星导航技术股份有限公司 | 基于低功耗蓝牙技术的数据传输方法 |
CN107979582A (zh) * | 2016-10-25 | 2018-05-01 | 央视国际网络无锡有限公司 | 一种udp数据流传输方法及其装置 |
CN108200122A (zh) * | 2017-12-08 | 2018-06-22 | 北京奇虎科技有限公司 | 一种http数据处理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10211685B2 (en) * | 2015-09-16 | 2019-02-19 | Energous Corporation | Systems and methods for real or near real time wireless communications between a wireless power transmitter and a wireless power receiver |
-
2018
- 2018-11-23 CN CN201811410188.1A patent/CN109391929B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604663A (zh) * | 2003-08-20 | 2005-04-06 | 三星电子株式会社 | 移动通信系统中用于调度上行链路分组传输的方法和设备 |
CN1734997A (zh) * | 2004-08-11 | 2006-02-15 | 华为技术有限公司 | 一种数据传输的方法 |
CN105516907A (zh) * | 2015-12-30 | 2016-04-20 | 广州中海达卫星导航技术股份有限公司 | 基于低功耗蓝牙技术的数据传输方法 |
CN107979582A (zh) * | 2016-10-25 | 2018-05-01 | 央视国际网络无锡有限公司 | 一种udp数据流传输方法及其装置 |
CN108200122A (zh) * | 2017-12-08 | 2018-06-22 | 北京奇虎科技有限公司 | 一种http数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109391929A (zh) | 2019-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108718467B (zh) | 一种语音数据的传输方法、无线耳机及tws耳机 | |
CN115002934B (zh) | 音频业务处理系统、电子设备及蓝牙耳机 | |
WO2022033296A1 (zh) | 蓝牙通信方法、可穿戴设备及系统 | |
CN103179282B (zh) | 一种通话状态下信息的传达方法、系统及移动终端 | |
CN110381207B (zh) | 通信终端连接的方法、装置、计算机设备和存储介质 | |
CN109391929B (zh) | 低功耗蓝牙数据传输方法及电子设备 | |
CN110602312B (zh) | 通话方法、电子设备及计算机可读存储介质 | |
KR102491006B1 (ko) | 데이터 송신 방법 및 전자 기기 | |
WO2017091994A1 (zh) | 数据发送方法、装置和终端 | |
CN112367648B (zh) | 通话管理方法、芯片和音频输出装置 | |
WO2023020240A1 (zh) | 设备控制方法、装置、芯片、电子设备及存储介质 | |
CN114500716A (zh) | 协同通话方法、装置、设备、存储介质和程序产品 | |
CN114449576A (zh) | 一种应用数据的发送方法、装置及设备 | |
US9681494B2 (en) | Split-type mobile terminal and interaction processing method for communications event | |
WO2024199055A1 (zh) | 音频处理方法、装置、电子设备及计算机可读存储介质 | |
CN110035167B (zh) | 录音方法及相关装置 | |
CN103279447B (zh) | 信息处理方法、装置及终端 | |
CN112565876B (zh) | 投屏方法、装置、设备、系统及存储介质 | |
CN102354278A (zh) | 一种音频数据的处理方法和设备 | |
CN104717375A (zh) | 一种实现终端省电的方法和设备 | |
CN116700913B (zh) | 嵌入式文件系统的调度方法、设备及存储介质 | |
CN114501239B (zh) | 耳机的主从切换方法、装置、蓝牙耳机以及存储介质 | |
US20170139667A1 (en) | Audio play method and device | |
CN118233402A (zh) | 一种数据传输方法及电子设备 | |
CN106101367B (zh) | 录音处理方法和系统 |
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 |