数据传输方法、系统、芯片、电子设备及存储介质与流程

文档序号:26186726发布日期:2021-08-06 18:38阅读:147来源:国知局
数据传输方法、系统、芯片、电子设备及存储介质与流程

本发明实施例涉及通信技术领域,特别涉及一种数据传输方法、系统、芯片、电子设备及存储介质。



背景技术:

随着通信技术的飞速发展,蓝牙低功耗(bluetoothlowenergy,简称:ble)技术应运而生。在基于ble技术的广播音频技术中,音频数据通过广播同步组(broadcastisochronousgroups,简称:big)的数据流的方式发送到广播中,big中的第一蓝牙端(发送设备)使用这个非连接的方式来发送big的数据流,无需理会big中的其他第二蓝牙端(接收设备)的状态。第二蓝牙端(接收设备)可以接收big的数据流,然后进行播放或使用。在big技术中,一个设备发送的big的数据流,可以被big内多个设备接收到,这就可以实现多个设备均播放同一个设备的音频。

然而,第一蓝牙端在发送big的数据流时,大多采用基于扩展广播生成周期广播的形式,发送广播同步组信息(broadcastisochronousgroupsinformation,简称:biginfo),供各第二蓝牙端获取。只要第二蓝牙端能够同步上周期广播,就能获取到biginfo,也就可以接收big的数据流,第一蓝牙端无法控制接收big的数据流的第二蓝牙端的数量,即无法实现只让部分第二蓝牙端接收big的数据流,big的数据流传输过程的隐私性、安全性很差,容易被不法分子盗取信息。



技术实现要素:

本发明实施例的目的在于提供一种数据传输方法、系统、芯片、电子设备及存储介质,可以使第一蓝牙端具有对接收big的数据流的第二蓝牙端进行筛选的能力,从而有效提升big的数据流传输过程的隐私性、安全性。

为解决上述技术问题,本发明的实施例提供了一种数据传输方法,应用于第一蓝牙端,方法包括以下步骤:与第二蓝牙端建立异步无连接(asynchronousconnectionlesslink,简称:acl)链路连接;通过建立的acl链路连接获取第二蓝牙端的身份信息;当第二蓝牙端的身份信息验证通过时,通过建立的acl链路连接向第二蓝牙端发送广播同步组信息biginfo,供第二蓝牙端根据biginfo接收第一蓝牙端发送的广播同步组big的数据流。

本申请的实施例还提供了一种数据传输方法,应用于第二蓝牙端,方法包括以下步骤:与第一蓝牙端建立acl链路连接;通过建立的acl链路连接向第一蓝牙端发送第二蓝牙端的身份信息;在接收到第一蓝牙端发送的biginfo后,根据biginfo,接收第一蓝牙端发送的广播同步组big的数据流;其中,第一蓝牙端在第二蓝牙端的身份信息验证通过时,通过建立的acl链路连接向第二蓝牙端发送biginfo。

本申请的实施例还提供了一种数据传输系统,包括:第一蓝牙端和第二蓝牙端:第一蓝牙端与第二蓝牙端建立acl链路连接;第一蓝牙端用于通过建立的acl链路连接获取第二蓝牙端的身份信息,当第二蓝牙端的身份信息验证通过时,通过建立的acl链路连接向第二蓝牙端发送广播同步组信息biginfo;第二蓝牙端用于通过建立的acl链路连接向第一蓝牙端发送第二蓝牙端的身份信息,在接收到第一蓝牙端发送的biginfo后,根据biginfo,接收第一蓝牙端发送的广播同步组big的数据流。

本申请的实施例还提供了一种芯片,包括:处理模块和存储模块;存储模块存储有可被处理模块执行的指令,指令被处理模块执行,以使处理模块能够执行上述数据传输方法,其中,芯片为第一蓝牙端或第二蓝牙端。

本申请的实施例还提供了一种电子设备,包括:上述芯片和蓝牙天线,蓝牙天线与芯片连接。

本申请的实施例还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述应用于第一蓝牙端的数据传输方法,或实现上述应用于第二蓝牙端的数据传输方法。

本申请的实施例相较于由第一蓝牙端发送携带biginfo的无连接的周期广播,任意一个第二蓝牙端均能从接收的周期广播中获取biginfo,从而接收big的数据流的技术方案而言,本申请的实施例中,第一蓝牙端与第二蓝牙端建立acl链路连接、通过建立的acl链路连接获取第二蓝牙端的身份信息,且只通过建立的acl链路连接向身份信息验证通过的第二蓝牙端发送biginfo,即只有身份信息验证通过的第二蓝牙端才能接收big的数据流,使得第一蓝牙端具有对接收big的数据流的第二蓝牙端进行筛选的能力,从而有效提升big的数据流传输过程的隐私性、安全性。另外,本申请实施例中,只有在第二蓝牙端身份验证通过时才会通过建立的acl链路连接将biginfo发送至第二蓝牙端,相较于在周期性发送的每个周期广播中都需携带biginfo的技术方案而言,本申请的实施例占用带宽比较小,可以节约空口资源的占用。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是本申请一个实施例中提到的一种数据传输方法的流程图一;

图2是本申请一个实施例中提到的一种数据传输方法的流程图二;

图3是本申请一个实施例中提到的向第二蓝牙端发送biginfo的流程图一;

图4是本申请一个实施例中提供的确定时间偏移量的示意图;

图5是本申请一个实施例中提到的与第二蓝牙端建立acl链路连接的流程图;

图6是本申请一个实施例中提到的一种数据传输方法的流程图三;

图7是本申请一个实施例中提到的一种数据传输方法的流程图四;

图8是本申请一个实施例中提到的第二蓝牙端对经过第一密钥加密的biginfo进行解密的流程图;

图9是本申请一个实施例中提到的一种数据传输方法的流程图五;

图10是本申请一个实施例中提到的数据传输系统的示意图;

图11是本申请一个实施例中提到的芯片的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。

在相关的基于ble技术的广播音频技术中,发送设备可以基于广播同步流(broadcastisochronousstreams,简称:bis)协议,通过发送big的数据流的方式,将数据以广播的形式发送出去,发送设备使用这个非连接的方式来发送同步数据,无需理会其他设备,即接收设备的状态,接收设备可以基于bis协议,接收big的数据流。发送设备发送的数据可以被多个接收设备接收到,从而实现多个接收设备均播放同一个发送设备的音频数据。

当发送设备需要发送big的数据流时,需要先创建一个big,基于创建的big发送big的数据流,发送设备还需要创建一个与创建的big相关的周期广播,周期广播中的内容包含biginfo,之后按照big的数据流的周期和周期广播的周期,持续发送big的数据流和周期广播。

接收设备则随时扫描空口中的广播,若扫描到发送设备创建的周期广播,同步上该周期广播,并解析该周期广播,获取biginfo,通过biginfo计算出第一蓝牙端发送的big的数据流的周期、调频参数、当前信道和时序等信息。第二蓝牙端根据计算出的信息调整自己的参数,使得第二蓝牙端能根据第一蓝牙端发送的big的数据流的节奏,周期性的接收big的数据流。在传输过程中,第一蓝牙端发送的big的数据流本身只负责承载数据,第二蓝牙端想要获取到big的数据流中包含的数据,必须先根据biginfo接收big的数据流,才能获取到big的数据流中包含的数据。

由此可见,第一蓝牙端只负责发送,而第二蓝牙端的同步过程只是拿到biginfo,根据biginfo调整自身参数的过程,所以第二蓝牙端数量的增加或是减少并不影响第一蓝牙端,这在理论上可以实现无限多个第二蓝牙端都接收到第一蓝牙端发送的big的数据流。比如在机场中,机场公告由第一蓝牙端通过big的数据流的形式发出来,每个机场旅客均持有一个第二蓝牙端(如手机等),只要第二蓝牙端进入机场范围,就能同步机场中的周期广播,就能拿到biginfo,也就能同步上big的数据流,获取到机场公告。

本申请的发明人发现,在某些情况下,第一蓝牙端发送的big的数据流只想让部分第二蓝牙端接收到,比如在机场中,机场公告由第一蓝牙端通过big的数据流的形式发出来,每个机场旅客均持有一个第二蓝牙端(如手机等),该机场公告只想让贵宾用户的第二蓝牙端接收到,普通用户的第二蓝牙端无法接收到。而相关技术中由于第二蓝牙端不会影响第一蓝牙端,第一蓝牙端无法控制接收big的数据流的第二蓝牙端的数量,无法实现只让部分第二蓝牙端接收big的数据流。这导致big的数据流传输过程的隐私性、安全性很差,很容易被不法分子盗取信息。

为了解决上述的big的数据流传输过程的隐私性、安全性很差,很容易被不法分子盗取信息的问题,本申请的实施例提供了一种数据传输方法,应用于第一蓝牙端,本实施例中的数据传输方法的流程图可以参考图1,包括:

步骤101,发送可连接广播。

在具体实现中,第一蓝牙端发送的可连接广播可以为支持异步无连接acl链路连接的可连接广播。

步骤102,根据可连接广播,与第二蓝牙端建立acl链路连接。

步骤103,通过建立的acl链路连接获取第二蓝牙端的身份信息。

步骤104,当第二蓝牙端的身份信息验证通过时,通过建立的acl链路连接向第二蓝牙端发送biginfo,供第二蓝牙端根据biginfo接收第一蓝牙端发送的big的数据流。

在一个例子中,第一蓝牙端内部存储有预设的第二蓝牙端的身份信息标准,第一蓝牙端获取到第二蓝牙端的身份信息后,可以对第二蓝牙端的身份信息进行验证,只要第二蓝牙端的身份信息符合预设的第二蓝牙端的身份信息标准,第一蓝牙端就可以向第二蓝牙端发送biginfo,第一蓝牙端发送给各第二蓝牙端的biginfo是相同的。

本申请的实施例中,第一蓝牙端通过发送可连接广播与第二蓝牙端建立acl链路连接,通过建立的acl链路连接获取第二蓝牙端的身份信息,且只通过建立的acl链路连接向身份信息验证通过的第二蓝牙端发送biginfo,即只有身份信息验证通过的第二蓝牙端才能接收big的数据流,使得第一蓝牙端具有对接收big的数据流的第二蓝牙端进行筛选的能力,从而有效提升big的数据流传输过程的隐私性、安全性;另外,本申请的实施例中,只有在第二蓝牙端的身份验证通过时,第一蓝牙端才会将biginfo发送至第二蓝牙端,可连接广播中不需要携带biginfo,相较于在周期性发送的每个周期广播中都需携带biginfo的技术方案而言,本申请的实施例占用带宽比较小,可以节约空口资源。

在一个实施例中,步骤101中的发送可连接广播不是必须的,步骤102中根据可连接广播与第二蓝牙端建立acl链路连接也不是必须的。例如,对于经典蓝牙(bluetooth,简称:bt)来说,第一蓝牙端不需要借助于可连接广播,第一蓝牙端可以通过面向连接的同步(synchronousconnectionoriented,简称:sco)链路来获取第二端的身份信息,然后通过该sco链路向第二蓝牙端发送biginfo。对于仅支持bt的单模蓝牙来说,第一蓝牙端可以通过sco链路来实现本方案;对于双模蓝牙来说,即同时支持ble和bt的蓝牙设备来说,第一蓝牙端既可以通过sco链路来实现本方案,也可以通过acl链路实现本方案;对于仅支持ble的蓝牙设备来说,第一蓝牙端可以通过acl链路来实现本方案,以下各实施例以通过acl链路实现本方案来进行举例说明。

在一个实施例中,步骤101和步骤102是为了使得第一蓝牙端和第二蓝牙端之间建立一个点对点的连接,然后通过该点对点的连接传输身份信息和biginfo,并不一定需要通过建立acl链路连接来传输身份信息和biginfo。

在一个实施例中,步骤104中第一蓝牙端通过建立的acl链路连接向第二蓝牙端发送biginfo,可以根据预存的身份信息与big的对应关系,通过建立的acl链路连接向第二蓝牙端发送与第二蓝牙端的身份信息对应的big的biginfo,本实施例中,对于ble设备来说,通过建立acl链路连接获取第二蓝牙端的身份信息以及向第二蓝牙端发送biginfo,相对于通过其他点对点的连接,例如,sco链路连接来说,可以简化传输流程。

在具体实现中,第一蓝牙端内部可以预存有第二蓝牙端的身份信息与big的对应关系,并根据第二蓝牙端的身份信息与big的对应关系建立多个big,各big均有自己专属的biginfo,第一蓝牙端在确定第二蓝牙端的身份信息验证通过后,可以通过建立的acl链路连接向第二蓝牙端发送与第二蓝牙端的身份信息对应的big的biginfo,即不同身份信息的第二蓝牙端,接收到的biginfo不同,相当于加入的big不同,第二蓝牙端只能接收到与自己身份信息对应的big的biginfo,也就只能接收到与自己的身份信息对应的big的数据流,不能接收到与其他身份信息对应的big的数据流,从而进一步提升了big的数据流传输过程的隐私性和安全性。

比如:第一蓝牙端需要发送针对贵宾用户的机场公告和针对普通用户的机场公告,第一蓝牙端可以基于贵宾用户和普通用户建立两个big,第一蓝牙端在第一big中发送包含针对贵宾用户的机场公告的big的数据流,在第二big中发送包含针对普通用户的机场公告的big的数据流。第一蓝牙端在第二蓝牙端的身份信息验证通过后,可以判断第二蓝牙端的身份信息类型,若第二蓝牙端为贵宾用户,则向第二蓝牙端发送与贵宾用户对应的big的biginfo(即第一big的biginfo);若第二蓝牙端为普通用户,则向第二蓝牙端发送与普通用户对应的big的biginfo(即第二big的biginfo)。

另外,在周期性发送的每个周期广播中都需携带biginfo的技术方案中,第一蓝牙端只是发送周期广播来发送biginfo,第一蓝牙端无法知晓第二蓝牙端什么时候同步上周期广播获取biginfo,即第一蓝牙端不知道第二蓝牙端什么时候需要big的数据流,第一蓝牙端需要在周期广播的每个周期都计算一次biginfo,保证第二蓝牙端可以拿到biginfo,而本申请的实施例,第一蓝牙端与第二蓝牙端建立acl链路连接,并且可以通过建立的acl链路连接获取到第二蓝牙端发送来的第二蓝牙端的身份信息,第二蓝牙端在需要big的数据流时可以向第一蓝牙端发送身份信息,因此第一蓝牙端可以知道第二蓝牙端在什么时候需要biginfo,只需要在此时计算得到biginfo即可,计算量相对较少,有效降低了第一蓝牙端的功耗。

在一个实施例中,第一蓝牙端向第二蓝牙端发送的biginfo为经过第一密钥加密的biginfo,第一密钥是根据第二蓝牙端的身份信息和第一蓝牙端的身份信息获取的。

在具体实现中,第一蓝牙端在向第二蓝牙端发送biginfo时,可以先基于预设的加密方法,结合第二蓝牙端的身份信息和第一蓝牙端的身份信息,实时生成第一密钥,根据第一密钥,对biginfo进行加密,再通过建立的acl链路连接向第二蓝牙端发送加密后的biginfo。由于不同的第二蓝牙端的身份信息不同,因此基于预设的加密方法,结合第二蓝牙端的身份信息和第一蓝牙端的身份信息而生成的第一密钥也不同,根据第一密钥加密后的biginfo获得的密文信息也就不同。预设的加密方法可以在蓝牙端出厂时进行设置,也可以下载相应的软件来获取,以保证第二蓝牙端知晓第一蓝牙端是基于何种预设的加密方法进行加密的,因此只有收到加密后的biginfo的第二蓝牙端能对加密后的biginfo进行解密,只有在预设的加密方法、第二蓝牙端的身份信息和第一蓝牙端的身份信息同时被窃取时,加密的biginfo才可能被窃取。本申请的实施例,有效提升了加密的biginfo被不法分子破解而导致的信息泄露的难度,进一步提升了big的数据流传输过程的隐私性和安全性。

在一个例子中,第二蓝牙端的身份信息可以为第二蓝牙端的id,也可以为第二蓝牙端的设备型号等,本申请的实施例对此不做具体限定。

在一个实施例中,第一蓝牙端也可以直接根据预设的密钥对biginfo进行加密,并通过建立的连接将密钥发送至第二蓝牙端,供第二蓝牙端对经该密钥加密的biginfo进行解密。

在一个实施例中,big的数据流为经过预设的第二密钥加密的big的数据流,biginfo中包含第二密钥,第二蓝牙端在接收第一蓝牙端发送的big的数据流之后,可以根据biginfo中的第二密钥,对经过第二密钥加密的big的数据流进行解密。

在具体实现中,biginfo包含的第二密钥可以为组初始化向量(groupinitializationvector,简称:giv),也可以为组会话密钥分集器(groupsessionkeydiversifier,简称:gskd),本申请的实施例对此不做具体限定。

在一个实施例中,第一蓝牙端可以根据第一密钥,对biginfo进行加密,并使用预设的第二密钥对big的数据流进行加密,第一密钥是根据第一蓝牙端的身份信息和第二蓝牙端的身份信息实时获取的,第二密钥是预设的giv或gskd,第一密钥与第二密钥为不同的密钥,可以实现对big的数据流传输过程的两道不同的加密,进一步提升big的数据流传输过程的隐私性和安全性。

在一个实施例中,big的数据流为经过第二密钥加密的big的数据流,本实施例的数据传输方法可以如图2所示,具体包括:

步骤201,发送携带biginfo的可连接广播,供第二蓝牙端根据biginfo接收第一蓝牙端发送的经过第二密钥加密的big的数据流。

步骤202,根据可连接广播,与第二蓝牙端建立acl链路连接。

步骤203,通过建立的acl链路连接向第二蓝牙端发送第二密钥,供第二蓝牙端根据第二密钥对经过第二密钥加密的big的数据流进行解密,获取到big的数据流。

在具体实现中,第一蓝牙端可以采用在可连接广播中携带biginfo的方式,供第二蓝牙端获取biginfo,从而获取到经过第二密钥加密的big的数据流,第一蓝牙端可以根据可连接广播与第二蓝牙端建立acl链路连接,通过建立的acl链路连接向第二蓝牙端发送第二密钥,只有收到第二密钥的第二蓝牙端才能对经过第二密钥加密的big的数据流进行解密,获取到big的数据流,从而使得第一蓝牙端具备对接收big的数据流的第二蓝牙端进行筛选的能力,有效提升big的数据流传输过程的隐私性、安全性,第二密钥可以是基于第一蓝牙端的身份信息和第二蓝牙端的身份信息实时获取的,也可以是本领域的技术人员根据实际需要预先设置的。

在一个实施例中,第一蓝牙端也可以先创建扩展广播,再基于创建的扩展广播创建周期广播,在周期广播中携带biginfo,供第二蓝牙端获取biginfo,同时,第一蓝牙端创建可连接广播,根据可连接广播与第二蓝牙端建立acl链路连接,通过建立的acl链路连接向第二蓝牙端发送第二密钥,供第二蓝牙端根据第二密钥对经过第二密钥加密的big的数据流进行解密,从而获取到big的数据流。

在一个实施例中,向第二蓝牙端发送biginfo,可以由如图3所示的各步骤实现,具体包括:

步骤301,确定一个在与第二蓝牙端建立acl链路连接之后的与第二蓝牙端的连接事件,并记录连接事件的时间锚点。

具体而言,第一蓝牙端与第二蓝牙端可以基于acl链路的连接事件进行通信。第一蓝牙端和第二蓝牙端建立连接后,会不断发生跳频,每发生一次跳频,就发生一次连接事件。第一蓝牙端和第二蓝牙端内都有连接事件计数器,第一蓝牙端和第二蓝牙端内的连接事件计数器会对该acl链路的连接事件同步计数。每一次连接事件都具有持续时长,第一蓝牙端和第二蓝牙端在每一次连接事件的持续时长内传输数据。如图4所示,a事件即为一个连接事件。

在具体实现中,第一蓝牙端可以确定一个在与第二蓝牙端建立acl链路连接之后的与第二蓝牙端的连接事件,并记录该连接事件的时间锚点,其中,连接事件的时间锚点即该连接事件开始的时间点。

在一个例子中,如图4所示,第一蓝牙端与第二蓝牙端在10ms时已经建立连接,第一蓝牙端确定的一个在与第二蓝牙端建立acl链路连接之后的与第二蓝牙端的连接事件可以为a事件,考虑到数据传输会存在一定的延迟,第一蓝牙端确定的一个在与第二蓝牙端建立acl链路连接之后的与第二个第二蓝牙端的连接事件,例如可以选为b事件,防止出现因数据传输延迟导致获得的时间偏移量无法发挥作用的情况。

在一个例子中,如图4所示,第一蓝牙端开始发送可连接广播,供第二蓝牙端扫描到可连接广播并建立acl链路连接,第一蓝牙端将开始发送可连接广播的时间记作0ms,第二蓝牙端可以一直开启通信接收单元(rxreceive,简称:rx),并在第一蓝牙端开始发送可连接广播后,扫描到可连接广播,第一蓝牙端与第二蓝牙端建立acl链路连接,并确认在10ms时已经完成acl链路连接的建立,第一蓝牙端在a事件中与第二蓝牙端进行必要的交互,持续保持连接,并确定b事件为在与第二蓝牙端建立acl链路连接之后的与第二蓝牙端的连接事件,记录b事件的时间锚点为40ms。

步骤302,确定连接事件之后的最近的一个big事件的时间锚点。

在具体实现中,第一蓝牙端确定一个在与第二蓝牙端建立acl链路连接之后的与第二蓝牙端的连接事件后,可以按照在与第二蓝牙端建立acl链路连接之后的与第二蓝牙端的连接事件的时间锚点,找到连接事件之后的最近的一个big事件的时间锚点,其中,big事件的时间锚点即该big事件开始时的时间点。

在一个例子中,如图4所示,若第一蓝牙端确定的在与第二蓝牙端建立acl链路连接之后的与第二蓝牙端的连接事件为b事件,则服务器确定b事件之后的最近的一个big事件为c事件,并确定c事件的时间锚点为52.5ms;若第一蓝牙端确定的在与第二蓝牙端建立acl链路连接之后的与第二蓝牙端的连接事件为d事件,则服务器确定d事件之后的最近的一个big事件为e事件,并确定e事件的时间锚点为100ms。

在一个例子中,如图4所示,acl链路的时隙为30ms,big的数据流的周期为47.5ms,e事件为big事件,e事件的时间锚点为100ms,虽然此时连接事件与big事件在同一个时间点开始,对于具备两个天线的蓝牙端来说,连接事件和big事件可以同时发生,或者,第一蓝牙端可以在该时间锚点之前的连接事件中,告知第二蓝牙端在100ms时不接收连接事件,而是接收big事件,即接收big的数据流,这样在100ms之前,acl链路可以断开,在100ms时,开始接收big数据流,不需要通过acl链路进行数据交互。

步骤303,计算连接事件的时间锚点和big事件的时间锚点之间的差值,将差值作为时间偏移量。

具体而言,时间偏移量用于供第二蓝牙端在该big事件的时间锚点接收第一蓝牙端发送的big的数据流。

在一个例子中,如图4所示,0ms时,第一蓝牙端开始发送可连接广播,并在10ms时,与第二蓝牙端成功建立连接,第一蓝牙端在a事件中与第二蓝牙端进行必要的交互,持续保持连接,并确定b事件为在与第二蓝牙端建立acl链路连接之后的与第二蓝牙端的连接事件,b事件的时间锚点为40ms,b事件之后的最近的一个big事件为c事件,c事件的时间锚点为52.5ms,第一蓝牙端计算b事件的时间锚点与c事件的时间锚点之间的差值为12.5ms,第一蓝牙端可以将12.5ms作为时间偏移量,该时间偏移量可以告知第二蓝牙端在收到biginfo后,先定位到b事件的时间锚点,再等待12.5ms,即到达c事件的时间锚点,在c事件时间锚点接收big的数据流。

在一个例子中,如图4所示,第二蓝牙端在确定c事件的时间锚点后,可以在到达c事件的时间锚点之前的预设时间打开rx,从而当c事件的时间锚点到达后,接收big的数据流,并在收到big的数据流后,关闭rx。

在另一个例子中,如图4所示,0ms时,第一蓝牙端开始发送可连接广播,第一蓝牙端在10ms时,与第二蓝牙端成功建立连接,第一蓝牙端确定的在与第二蓝牙端建立acl链路连接之后的与第二蓝牙端的连接事件为d事件,d时间事件的时间锚点为70ms,d事件之后的最近的一个big事件为e事件,e事件的时间锚点为100ms,第一蓝牙端计算d事件的时间锚点与e事件的时间锚点之间的差值为30ms,第一蓝牙端将30ms作为时间偏移量,该时间偏移量可以告知第二蓝牙端在收到biginfo后,先定位到d事件的时间锚点,再等待30ms,即到达e事件的时间锚点,在e事件时间锚点接收big的数据流。

在具体实现中,biginfo中包含big数值,即bigoffset字段,和big数值计算单位,即bigoffsetunits字段,第一蓝牙端在得到时间偏移量后,可以将时间偏移量换算成这两个字段,并插入到biginfo中。

在一个实施例中,第一蓝牙端在通过建立的acl链路连接获取第二蓝牙端的身份信息之后,还可以通过建立的acl链路连接向第二蓝牙端发送与第二蓝牙端的身份信息对应的指令信息,其中,指令信息用于指示第二蓝牙端从big的数据流中接收的bis。

在具体实现中,第一蓝牙端可以针对连接上的不同身份信息的第二蓝牙端,在big的数据流中的big事件中设置多个与第二蓝牙端的身份信息对应的bis,第一蓝牙端可以向所有第二蓝牙端发送相同的biginfo,但第一蓝牙端可以根据第二蓝牙端的身份信息向第二蓝牙端发送用于指示第二蓝牙端从big的数据流中接收的bis的指令信息,指定第二蓝牙端从big的数据流中接收某个或某些bis。第一蓝牙端主动发送指令信息,可以进一步加强第一蓝牙端对第二蓝牙端的控制能力。

在一个例子中,第一蓝牙端在big的数据流中的big事件中设置有五个bis,第一bis为贵宾用户需接收的bis,第三bis为普通用户需接收的bis,第一蓝牙端在获取到第二蓝牙端的身份信息后,若确定第二蓝牙端为贵宾用户,则向第二蓝牙端发送指示第二蓝牙端从big的数据流中接收第一bis的指令信息;若第二蓝牙端为普通用户,则向第二蓝牙端发送指示第二蓝牙端从big的数据流中接收第三bis的指令信息。

在一个实施例中,第一蓝牙端可以通过在biginfo中携带与第二蓝牙端的身份信息对应的指令信息的方式,向第二蓝牙端发送与第二蓝牙端的身份信息对应的指令信息。第一蓝牙端给身份信息不同的第二蓝牙端发送不同的biginfo,第二蓝牙端根据biginfo中包含的指令信息只接收自己需要的bis,可以降低第二蓝牙端的功耗,防止收到与自身无关的数据。

在一个例子中,第一蓝牙端在big的数据流中的big事件中设置有五个bis,第一bis为贵宾用户需接收的bis,第三bis为普通用户需接收的bis,第一蓝牙端可以在biginfo中携带指示第二蓝牙端从big的数据流中接收第一bis的指令信息,将携带有接收第一bis的指令信息的biginfo发送给vip用户的第二蓝牙端,第一蓝牙端也可以在biginfo中携带指示第二蓝牙端从big的数据流中接收第三bis的指令信息,将携带有接收第三bis的指令信息的biginfo发送给普通用户的第二蓝牙端。

在一个实施例中,与第二蓝牙端建立连接,可以由如图5所示的各步骤实现,具体包括:

步骤401,接收第二蓝牙端发送的连接请求,并从连接请求中获取第二蓝牙端的地址信息。

步骤402,当第二蓝牙端的地址信息验证通过时,与第二蓝牙端建立acl链路连接。

其中,地址信息用于表征第二蓝牙端的合法性。

在具体实现中,第一蓝牙端在根据可连接广播,与第二蓝牙端建立acl链路连接的过程中,可以先根据可连接广播,接收第二蓝牙端发送的连接请求,并从连接请求中获取第二蓝牙端的地址信息,第一蓝牙端内部存储有预设的地址信息黑名单,若第二蓝牙端的地址信息不在预设的地址信息黑名单中,则确定第二蓝牙端的地址信息为合法地址,验证通过,与第二蓝牙端建立acl链路连接,即第一蓝牙端在根据第二蓝牙端的身份信息对第二蓝牙端进行筛选之前,先根据第二蓝牙端的地址信息将地址信息不合法的第二蓝牙端筛选出去,再根据第二蓝牙端的身份信息进行第二轮筛选,从而实现双重筛选,可以进一步提升广播big的数据流传输过程的隐私性和安全性。

在一个实施例中,第一蓝牙端发送的可连接广播为包含标识信息的可连接广播,其中,标识信息用于告知第二蓝牙端根据可连接广播与第一蓝牙端建立acl链路连接。相较于传统的由第二蓝牙端扫描到可连接广播后,向第一蓝牙端问询是否可以连接,第一蓝牙端对问询进行反馈的连接方式而言,本申请的实施例通过发送包含标识信息的可连接广播的方式,提前告知第二蓝牙端可以根据可连接广播与第一蓝牙端建立acl链路连接,减少了不必要的信息交互,进一步提升big的数据流的传输效率。

在一个实施例中,第一蓝牙端在确定第二蓝牙端接收到第一蓝牙端发送的big的数据流之后,可以断开与第二蓝牙端建立的acl链路连接,进一步节约第一蓝牙端的功耗,提高第一蓝牙端工作效率。

在一个实施例中,数据传输方法的流程图可以参考图6,包括:

步骤501,发送可连接广播。

步骤502,根据可连接广播,接收第二蓝牙端发送的连接请求,并从连接请求中获取第二蓝牙端的地址信息。

步骤503,当第二蓝牙端的地址信息验证通过时,与第二蓝牙端建立acl链路连接。

步骤504,通过建立的acl链路连接获取第二蓝牙端的身份信息。

步骤505,当第二蓝牙端的身份信息验证通过时,根据第二蓝牙端的身份信息和第一蓝牙端的身份信息,获取第一密钥。

步骤506,根据第一密钥,对biginfo进行加密。

步骤507,通过建立的acl链路连接向第二蓝牙端发送加密后的biginfo,供第二蓝牙端根据biginfo接收第一蓝牙端发送的big的数据流。

本申请的一个实施例提供了一种数据传输方法,应用于第二蓝牙端,本实施例中的数据传输方法的流程图可以参考图7,包括:

步骤601,当扫描到第一蓝牙端发送的可连接广播时,与第一蓝牙端建立acl链路连接。

步骤602,通过建立的acl链路连接向第一蓝牙端发送第二蓝牙端的身份信息。

步骤603,在接收到第一蓝牙端发送的biginfo后,根据biginfo,接收第一蓝牙端发送的big的数据流。

本申请的实施例中,第二蓝牙端通过扫描第一蓝牙端发送的可连接广播,与第一蓝牙端建立acl链路连接,通过建立的acl链路连接向第一蓝牙端发送第二蓝牙端的身份信息且通过建立的acl链路连接获取第一蓝牙端发送的biginfo,即只有与第一蓝牙端建立acl链路连接的第二蓝牙端能收到biginfo,也就只有与第一蓝牙端连接的第二蓝牙端能收到big的数据流,从而有效提升big的数据流传输过程的隐私性、安全性。

在一个实施例中,第一蓝牙端无需发送可连接广播,第一蓝牙端和第二蓝牙端可以先建立sco链路连接,然后通过该sco连接向第二蓝牙端发送第二蓝牙端的身份信息以实现选择第二蓝牙端的功能。

在一个实施例中,步骤603中第二蓝牙端接收到第一蓝牙端发送的biginfo为与第二蓝牙端的身份信息对应的biginfo。其中,身份信息用于表征第二蓝牙端的类别。

在具体实现中,第一蓝牙端预存有身份信息与big的对应关系,即第一蓝牙端可以针对连接上的不同身份信息的第二蓝牙端建立多个big,各big均有自己专属的biginfo,第二蓝牙端可以接收第一蓝牙端发送的与第二蓝牙端的身份信息对应的big的biginfo,即第二蓝牙端只能收到与自己的身份信息对应的big的数据流,不能接收到与其他身份信息对应的big的数据流,进一步提升了big的数据流传输过程的隐私性和安全性。

比如:第一蓝牙端需要发送针对贵宾用户的机场公告和针对普通用户的机场公告,第一蓝牙端可以基于贵宾用户和普通用户建立两个big,第一蓝牙端在第一big中发送包含针对贵宾用户的机场公告的big的数据流,在第二big中发送包含针对普通用户的机场公告的big的数据流。第二蓝牙端若收到与贵宾用户对应的big的biginfo(即第一big的biginfo),则可以根据与贵宾用户对应的big的biginfo,接收包含针对贵宾用户的机场公告的big的数据流;第二蓝牙端若收到与普通用户对应的big的biginfo(即第二big的biginfo),则可以根据与普通用户对应的big的biginfo,接收包含针对普通用户的机场公告的big的数据流。

在一个实施例中,第一蓝牙端向第二蓝牙端发送的biginfo为经过第一密钥加密的biginfo,第二蓝牙端可以通过如图8所示的各步骤对经过第一密钥加密的biginfo进行解密,具体包括:

步骤701,通过建立的acl链路连接获取第一蓝牙端的身份信息。

步骤702,根据第二蓝牙端的身份信息和第一蓝牙端的身份信息,获取第一密钥。

步骤703,根据第一密钥,对经过第一密钥加密的biginfo进行解密。

在具体实现中,第二蓝牙端在接收到第一蓝牙端通过建立的acl链路连接发送的biginfo后,可以基于第一蓝牙端与第二蓝牙端之间建立的acl链路连接,先获取第一蓝牙端的身份信息,基于预设的加密方法,结合第二蓝牙端的身份信息和第一蓝牙端的身份信息,实时生成第一密钥,根据第一密钥,对经过第一密钥加密的biginfo进行解密。预设的加密方法可以在蓝牙端出厂时进行设置,也可以下载相应的软件来获取,以保证第二蓝牙端知晓第一蓝牙端是基于何种预设的加密方法进行加密的,只有在预设的加密方法、第二蓝牙端的身份信息和第一蓝牙端的身份信息同时被窃取时,加密的biginfo才可能会被窃取,本申请的实施例,有效提升了加密的biginfo被不法分子破解而导致的信息泄露的难度,进一步提升了big的数据流传输过程的隐私性和安全性。

在一个实施例中,big的数据流为经过预设的第二密钥加密的big的数据流,biginfo中包含第二密钥,在接收第一蓝牙端发送的big的数据流之后,第二蓝牙端还可以根据第二密钥,对经过第二密钥加密的big的数据流进行解密。

在具体实现中,biginfo包含的第二密钥可以为giv,也可以为gskd等,本申请的实施例对此不做具体限定。

在一个实施例中,第一密钥与第二密钥为不同的密钥,可以实现对big的数据流传输过程的两道不同的加密,进一步提升big的数据流传输过程的隐私性和安全性。

在一个实施例中,big的数据流为经过第二密钥加密的big的数据流,本实施例的数据传输方法可以如图9所示,具体包括:

步骤801,当扫描到第一蓝牙端发送的携带biginfo的可连接广播时,与第一蓝牙端建立acl链路连接。

步骤802,根据biginfo接收经过第二密钥加密的big的数据流。

步骤803,在接收到第一蓝牙端通过建立的acl链路连接发送的第二密钥后,根据第二密钥对经过第二密钥加密的big的数据流进行解密,获取到big的数据流。

在具体实现中,第一蓝牙端可以采用在可连接广播中携带biginfo的方式,供第二蓝牙端获取biginfo,第二蓝牙端在获取到biginfo后,可以根据biginfo获取到经过第二密钥加密的big的数据流,第二蓝牙端可以根据可连接广播与第一蓝牙端建立acl链路连接,通过建立的acl链路连接获取第一蓝牙端发送的第二密钥,只有收到第二密钥的第二蓝牙端才能对经过第二密钥加密的big的数据流进行解密,获取到big的数据流,从而使得第一蓝牙端具备对接收big的数据流的第二蓝牙端进行筛选的能力,有效提升big的数据流传输过程的隐私性、安全性,第二密钥可以是基于第一蓝牙端的身份信息和第二蓝牙端的身份信息实时获取的,也可以是本领域的技术人员根据实际需要预先设置的。

在一个实施例中,第一蓝牙端也可以先创建扩展广播,再基于创建的扩展广播创建周期广播,在周期广播中携带biginfo,第二蓝牙端同步上周期广播后,可以获取到biginfo,同时,第一蓝牙端创建可连接广播,第二蓝牙端在扫描到可连接广播后,根据可连接广播与第一蓝牙端建立acl链路连接,通过建立的acl链路连接接收第一蓝牙端发送第二密钥,第二蓝牙端可以根据第二密钥对经过第二密钥加密的big的数据流进行解密,从而获取到big的数据流。

在一个实施例中,biginfo中包含时间偏移量,第一蓝牙端可以先确定一个在与第二蓝牙端建立acl链路连接之后的与第二蓝牙端的连接事件,并记录该连接事件的时间锚点,再确定该连接事件之后的最近的一个big事件的时间锚点,最后计算该连接事件的时间锚点和该big事件的时间锚点之间的差值,将所计算出的差值作为时间偏移量,第二蓝牙端在收到biginfo后,可以根据biginfo中包含的时间偏移量,在该big事件的时间锚点接收第一蓝牙端发送的big的数据流。

在一个实施例中,第二蓝牙端在通过建立的acl链路连接向第一蓝牙端发送第二蓝牙端的身份信息之后,还可以接收第一蓝牙端发送的与第二蓝牙端的身份信息对应的指令信息。其中,指令信息用于指示第二蓝牙端从big的数据流中接收的bis。

在一个实施例中,第二蓝牙端可以通过获取biginfo中携带的与第二蓝牙端的身份信息对应的指令信息的方式,接收第一蓝牙端发送的指令信息。

在一个实施例中,第二蓝牙端在根据biginfo,接收第一蓝牙端发送的big的数据流之后,可以断开与第一蓝牙端建立的acl链路连接连接,进一步节约第一蓝牙端的功耗,提高第一蓝牙端工作效率。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本申请的一个实施例涉及一种数据传输系统,下面对本实施例的数据传输系统的细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本例的必须,图10是本实施例所述的数据传输系统的示意图,包括:第一蓝牙端901和第二蓝牙端902。

第一蓝牙端901与第二蓝牙端902建立有acl链路连接。

第一蓝牙端901用于通过建立的acl链路连接获取第二蓝牙端902的身份信息,当第二蓝牙端902的身份信息验证通过时,向第二蓝牙端902发送biginfo。

第二蓝牙端902用于通过建立的acl链路连接向第一蓝牙端901发送第二蓝牙端902的身份信息,在接收到第一蓝牙端901发送的biginfo后,根据biginfo,接收第一蓝牙端901发送的big的数据流。

不难发现,本实施例为与上述方法实施例对应的系统实施例,本实施例可以与上述方法实施例互相配合实施。上述实施例中提到的相关技术细节和技术效果在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述实施例中。

值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。

本申请的实施例还涉及一种芯片,如图11所示,包括处理模块1001和与所述处理模块1001连接的存储模块1002,所述存储模块1002存储有可被所述处理模块1001执行的指令,所述指令被所述处理模块1001执行,以使所述处理模块1001能够执行上述任意一个实施例中的数据传输方法。

本申请的实施例还涉及一种电子设备,包括如图11所示的芯片和蓝牙天线,所述蓝牙天线与所述芯片连接。

本申请实施例还提供一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施例是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1