基于智能安防设备的数据处理方法、设备及存储介质

文档序号:1834488 发布日期:2021-11-12 浏览:3次 >En<

阅读说明:本技术 基于智能安防设备的数据处理方法、设备及存储介质 (Data processing method and device based on intelligent security device and storage medium ) 是由 黄燕青 谢剑 杨洋 于 2021-10-13 设计创作,主要内容包括:本公开提出一种基于智能安防设备的数据处理方法、设备及存储介质;其中,该方法包括:在第二运行环境中,确定第一运行环境停止调用所述第二运行环境的预设读接口的情况下,向蓝牙组件发送预设指令;在第一运行环境中,获取蓝牙组件所发送的第一通知消息;在第一运行环境中,响应第一通知消息,并调用第二运行环境的预设读接口;在第二运行环境中,响应预设读接口的调用,以向所述蓝牙组件获取第一预设数据,以及从预设链表中确定出当前待重新发送的第一目标数据,并重新发送至所述蓝牙组件;其中,所述预设链表中存储有待发送至所述蓝牙组件的至少一个第一目标数据。(The present disclosure provides a data processing method, device and storage medium based on intelligent security device; wherein, the method comprises the following steps: in a second operation environment, sending a preset instruction to a Bluetooth assembly under the condition that the first operation environment stops calling a preset reading interface of the second operation environment is determined; in a first operation environment, acquiring a first notification message sent by a Bluetooth assembly; in the first running environment, responding to the first notification message and calling a preset reading interface of the second running environment; in a second operation environment, responding to the calling of a preset reading interface to acquire first preset data from the Bluetooth assembly, determining first target data to be sent again currently from a preset linked list, and sending the first target data to the Bluetooth assembly again; wherein the preset linked list stores at least one first target data to be sent to the bluetooth module.)

基于智能安防设备的数据处理方法、设备及存储介质

技术领域

本公开涉及数据处理领域,尤其涉及一种基于智能安防设备的数据处理方法、设备及存储介质。

背景技术

现有重发机制中,可信执行环境(TEE,Trusted Execution Environment)作为安全环境,只能接受被动调用,并基于被动调用来进行数据发送,比如,当TEE中存在需要发送的数据,此时,若TEE未被外部环境所调用,则导致无法进行数据发送。

发明内容

本公开提出了一种基于智能安防设备的数据处理方法、设备及存储介质,用以至少解决以上技术问题。

第一方面,本公开提供了一种基于智能安防设备的数据处理方法,所述智能安防设备至少安装有第一运行环境和第二运行环境,所述第一运行环境与所述第二运行环境隔离;所述智能安防设备还能够与蓝牙组件进行通信;所述方法包括:

在所述第二运行环境中,确定所述第一运行环境停止调用所述第二运行环境的预设读接口的情况下,向所述蓝牙组件发送预设指令;其中,所述预设指令指示在所述蓝牙组件中写入第一预设数据,并将所述第一预设数据作为需要发送至所述第二运行环境的数据;

在所述第一运行环境中,获取所述蓝牙组件所发送的第一通知消息;其中,所述第一通知消息是所述蓝牙组件在接收到所述预设指令后所发送的,用于告知所述第一运行环境存在向所述第二运行环境发送的第一预设数据;

在所述第一运行环境中,响应所述第一通知消息,并循环调用所述第二运行环境的预设读接口;

在所述第二运行环境中,响应所述预设读接口的调用,以向所述蓝牙组件获取所述第一预设数据,以及从预设链表中确定出当前待重新发送的第一目标数据,并重新发送至所述蓝牙组件;其中,所述预设链表中存储有待发送至所述蓝牙组件的至少一个第一目标数据。

在一种可能的实现方式中,所述第一运行环境为富执行环境;所述第二运行环境为可信执行环境。

在一种可能的实现方式中,所述方法还包括:

在所述第一运行环境中,需要向所述蓝牙组件发送第一目标数据的情况下,在所述第一运行环境中调用所述第二运行环境的预设写接口;

在所述第二运行环境中,响应所述预设写接口的调用,将所述第一目标数据传入所述第二运行环境,并存储于所述预设链表中;

在所述第二运行环境中,将所述第一目标数据发送至所述蓝牙组件;以及为当前存储至所述预设链表的第一目标数据设置重发机制,以便于根据所述重发机制从所述预设链表中确定出当前需要重新发送的数据。

在一种可能的实现方式中,所述确定所述第一运行环境停止调用所述第二运行环境的预设读接口的步骤包括:

在所述第一目标数据传入所述第二运行环境之后,在所述第二运行环境中,判断所述预设链表中是否存在数据;

在所述预设链表中不存在数据的情况下,在所述第一运行环境中,判断所述蓝牙组件中是否存在需要发送至所述第二运行环境的数据;

在所述蓝牙组件中不存在需要发送至所述第二运行环境的数据的情况下,确定所述第一运行环境停止调用所述第二运行环境的预设读接口。

在一种可能的实现方式中,所述方法还包括:

在所述第一运行环境中,获取所述蓝牙组件发送的第二通知消息;其中,所述第二通知消息用于告知所述第一运行环境存在向所述第二运行环境发送的第二目标数据;

在所述第一运行环境中,响应所述第二通知消息,并循环调用所述第二运行环境的预设读接口;

在所述第二运行环境中,响应所述预设读接口的调用,以向所述蓝牙组件获取第二目标数据,以及将第二预设数据发送至所述蓝牙组件;其中,所述第二目标数据表征所述蓝牙组件在成功处理所述第一目标数据后需要返回至所述第二运行环境的响应数据。

在一种可能的实现方式中,所述获取所述蓝牙组件所发送的第一通知消息,包括:

基于无线传输方式,接收到所述蓝牙组件发送的第一通知消息;

和/或,所述获取所述蓝牙组件发送的第二通知消息,包括:

基于无线传输方式,接收到所述蓝牙组件发送的第二通知消息。

在一种可能的实现方式中,所述智能安防设备与蓝牙组件之间还设置有线连接方式;其中,所述方法还包括:

基于有线传输方式,接收所述蓝牙组件发送的第三通知消息,其中,所述第三通知消息用于告知所述第一运行环境存在向所述第二运行环境发送的第二预设数据;

在所述第一运行环境中,响应所述第三通知消息,并循环调用所述第二运行环境的预设读接口;

在所述第一运行环境中,从所述缓冲区域中获取到预设响应数据,以避免所述第二运行环境响应所述第二预设数据所发起的所述预设读接口的调用;

其中,所述缓冲区域设置于所述第一运行环境和所述第二运行环境之间。

第二方面,本公开提供了一种智能安防设备,所述智能安防设备至少安装有第一运行环境和第二运行环境,所述第一运行环境与所述第二运行环境隔离;所述智能安防设备还能够与蓝牙组件进行通信;其中,所述智能安防设备还包括:

预设指令发送单元,用于在所述第二运行环境中,确定所述第一运行环境停止调用所述第二运行环境的预设读接口的情况下,向所述蓝牙组件发送预设指令;其中,所述预设指令指示在所述蓝牙组件中写入第一预设数据,并将所述第一预设数据作为需要发送至所述第二运行环境的数据;

通知消息获取单元,用于在所述第一运行环境中,获取所述蓝牙组件所发送的第一通知消息;其中,所述第一通知消息是所述蓝牙组件在接收到所述预设指令后所发送的,用于告知所述第一运行环境存在向所述第二运行环境发送的第一预设数据;

读接口调用单元,用于在所述第一运行环境中,响应所述第一通知消息,并循环调用所述第二运行环境的预设读接口;

数据处理单元,用于在所述第二运行环境中,响应所述预设读接口的调用,以向所述蓝牙组件获取所述第一预设数据,以及从预设链表中确定出当前待重新发送的第一目标数据,并重新发送至所述蓝牙组件;其中,所述预设链表中存储有待发送至所述蓝牙组件的至少一个第一目标数据。

在一种可能的实现方式中,所述第一运行环境为富执行环境;所述第二运行环境为可信执行环境。

在一种可能的实现方式中,所述智能安防设备为智能门。

在一种可能的实现方式中,还包括:写接口调用单元;其中,

所述写接口调用单元,用于在所述第一运行环境中,需要向所述蓝牙组件发送第一目标数据的情况下,在所述第一运行环境中调用所述第二运行环境的预设写接口;

所述数据处理单元,还用于在所述第二运行环境中,响应所述预设写接口的调用,将所述第一目标数据传入所述第二运行环境,并存储于所述预设链表中;在所述第二运行环境中,将所述第一目标数据发送至所述蓝牙组件;以及为当前存储至所述预设链表的第一目标数据设置重发机制,以便于根据所述重发机制从所述预设链表中确定出当前需要重新发送的数据。

在一种可能的实现方式中,所述数据处理单元,还用于在所述第一目标数据传入所述第二运行环境之后,在所述第二运行环境中,判断所述预设链表中是否存在数据;在所述预设链表中不存在数据的情况下,在所述第一运行环境中,判断所述蓝牙组件中是否存在需要发送至所述第二运行环境的数据;在所述蓝牙组件中不存在需要发送至所述第二运行环境的数据的情况下,确定所述第一运行环境停止调用所述第二运行环境的预设读接口。

在一种可能的实现方式中,其中,

所述通知消息获取单元,还用于在所述第一运行环境中,获取所述蓝牙组件发送的第二通知消息;其中,所述第二通知消息用于告知所述第一运行环境存在向所述第二运行环境发送的第二目标数据;

所述读接口调用单元,还用于在所述第一运行环境中,响应所述第二通知消息,并循环调用所述第二运行环境的预设读接口;

所述数据处理单元,还用于在所述第二运行环境中,响应所述预设读接口的调用,以向所述蓝牙组件获取第二目标数据,以及将第二预设数据发送至所述蓝牙组件;其中,所述第二目标数据表征所述蓝牙组件在成功处理所述第一目标数据后需要返回至所述第二运行环境的响应数据。

在一种可能的实现方式中,所述获取所述蓝牙组件所发送的第一通知消息,包括:

基于无线传输方式,接收到所述蓝牙组件发送的第一通知消息;

和/或,所述获取所述蓝牙组件发送的第二通知消息,包括:

基于无线传输方式,接收到所述蓝牙组件发送的第二通知消息。

在一种可能的实现方式中,所述智能安防设备与蓝牙组件之间还设置有线连接方式;其中,所述智能安防设备还包括数据缓冲单元;其中,

所述通知消息获取单元,还用于基于有线传输方式,接收所述蓝牙组件发送的第三通知消息,其中,所述第三通知消息用于告知所述第一运行环境存在向所述第二运行环境发送的第二预设数据;

所述读接口调用单元,用于在所述第一运行环境中,响应所述第三通知消息,并循环调用所述第二运行环境的预设读接口;

所述数据缓冲单元,用于在所述第一运行环境中,从所述缓冲区域中获取到预设响应数据,以避免所述第二运行环境响应所述第二预设数据所发起的所述预设读接口的调用;

其中,所述缓冲区域设置于所述第一运行环境和所述第二运行环境之间。

第三方面,本公开提供了一种智能安防设备,包括:

一个或多个处理器;

与所述一个或多个处理器通信连接的存储器;

一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,当所述一个或多个计算机程序被所述智能安防设备执行时,使得所述智能安防设备执行上述第一方面所提供的方法。

第四方面,本公开提供了一种计算机可读存储介质,其存储有计算机指令,当所述计算机指令在计算机上运行时,使得所述计算机执行上述第一方面所提供的方法。

如此,本公开方案在所述第一运行环境停止调用所述第二运行环境的预设读接口的情况下,向所述蓝牙组件发送预设指令,所述预设指令指示在所述蓝牙组件中写入第一预设数据,并将所述第一预设数据作为需要发送至所述第二运行环境的数据,如此,使得所述蓝牙组件重新存在需要上报至第二运行环境的数据,进而触发所述第一运行环境重新循环调用所述第二运行环境的预设读接口,这样,在向蓝牙组件进行读数据的操作过程中,也即调用预设读接口的过程中,实现数据重发;进而在第二运行环境在被动调用的机制下,依然能够使预设链表中存储的数据最大程度地成功发送,为后续任务的正常执行奠定了基础。

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

图1为根据本公开一实施例基于智能安防设备的数据处理方法的实现流程示意图;

图2为根据本公开一实施例智能安防设备在一具体示例中逻辑单元结果示意图;

图3为根据本公开一实施例智能安防设备在一具体示例中结构示意图一;

图4为根据本公开一实施例智能安防设备在一具体示例中结构示意图二;

图5为根据本公开一实施例智能安防设备的硬件结构示意图。

具体实施方式

下面将参考附图对本公开作进一步地详细描述。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路等未作详细描述,以便于凸显本公开的主旨。

图1为根据本公开一实施例基于智能安防设备的数据处理方法的实现流程示意图。这里,本公开方案所述的智能安防设备至少安装有第一运行环境和第二运行环境,所述第一运行环境与所述第二运行环境隔离;所述智能安防设备还能够与蓝牙组件进行通信;这里,所述第二运行环境通过所述第一运行环境调用该第二运行环境的对外接口,与所述蓝牙组件进行目标数据的交互,举例来说,所述第一运行环境调用所述第二运行环境暴露给外部的预设读接口,以触发所述第二运行环境向蓝牙组件去获取数据;或者,所述第一运行环境调用所述第二运行环境暴露给外部的预设写接口,以触发所述第二运行环境将数据写入蓝牙组件。这里,所述目标数据至少包括:所述第一运行环境需要发送至所述蓝牙组件的第一目标数据,也即需要写入所述蓝牙组件的第一目标数据。

这里,需要说明的是,实际应用中,该蓝牙组件可以集成于该智能安防设备中,即为智能安防设备的内部组件;当然,还可以为智能安防设备的外部设备,本公开方案对此不作限制。进一步地,在一具体示例中,所述智能安防设备至少包括处理器和蓝牙组件,其中,该处理器安装有第一运行环境和第二运行环境。对应于具体场景中,智能安防设备可以为智能门,此时,该智能门中还可以设置有智能门锁。

如图1所示,该方法包括:

步骤S101:在所述第二运行环境中,确定所述第一运行环境停止调用所述第二运行环境的预设读接口的情况下,向所述蓝牙组件发送预设指令;其中,所述预设指令指示在所述蓝牙组件中写入第一预设数据,并将所述第一预设数据作为需要发送至所述第二运行环境的数据。

在本公开方案的一具体示例中,所述第一运行环境为富执行环境;所述第二运行环境为可信执行环境。这里,由于所述第二运行环境为安全、可信的环境,所以,经由第二运行环境与蓝牙组件进行目标数据的传输,提升了传输安全性。

举例来说,本公开方案所述的智能安防设备可以具体为智能门,该智能门中还可以设置有智能门锁,此时,为了解决安全传输问题,实现数据的安全传输,经由安全、可信的第二运行环境传输的数据可以具体为该智能门锁的门锁密码,即该智能门锁的门锁密码即为第一目标数据。如此,提升了智能门的整体安全性,进而提升了用户体验。

在本公开方案的一具体示例中,第一运行环境中存在数据需要写入所述蓝牙组件的情况下,具体步骤包括:

在所述第一运行环境中,需要向所述蓝牙组件发送第一目标数据的情况下,比如,在第一运行环境中,接收到用户输入的智能门锁的门锁密码,该门锁密码需要发送至蓝牙组件,并经由蓝牙组件发送至智能门锁的情况下,在所述第一运行环境中调用所述第二运行环境的预设写接口;

在所述第二运行环境中,响应所述预设写接口的调用,将所述第一目标数据传入所述第二运行环境,并存储于所述预设链表中;

在所述第二运行环境中,将所述第一目标数据发送至所述蓝牙组件;以及为当前存储至所述预设链表的第一目标数据设置重发机制,以便于根据所述重发机制从所述预设链表中确定出当前需要重新发送的数据。

也就是说,第一运行环境中存在需要写入蓝牙组件中的第一目标数据的情况下,调用所述第二运行环境的预设写接口;在所述第二运行环境中,响应该调用,获取第一运行环境所发送的第一目标数据,并将该第一目标数据发送至所述蓝牙组件;同时,为了记录第一目标数据是否能够成功发送至蓝牙组件,所述第二运行环境中还预先设置有预设链表,并将该第一目标数据存储于该预设链表中,通过预设链表来记录第一目标数据是否发送成功,以及是否需要重新发送,如此,为数据的有效发送奠定了基础,同时,为实现数据重发提供了支持;而且,由于第一目标数据是经由第二运行环境发送至所述蓝牙组件的,所以,在第二运行环境为安全、可信的环境时,还能实现数据的安全传输,提升用户体验。

需要说明的是,当在第二运行环境中将所述第一目标数据发送至蓝牙组件,以及该蓝牙组件成功处理该第一目标数据之后,会向所述第二运行环境反馈响应数据,如此,来告知第二运行环境该第一目标数据是否发送成功,以及是否需要重新发送。也就是说,当第二运行环境接收到蓝牙组件成功处理该第一目标数据的响应数据后,认为成功发送,且无需重发;否则,未成功发送,需要重新发送。

另外,需要说明的是,重发机制可以基于实际需求而设置,比如,设置重发次数和超时时间,如此,为实现数据的有效发送以及避免无节制重发奠定了基础。

当然,实际应用中,不同的第一目标数据可以设置不同的重发机制,也可以设置相同的重发机制,本公开方案对此不作限制。比如,为了便于记录,可以设置多个预设链表,同一个预设链表对应一个重发机制,也即同一个预设链表中的不同第一目标数据具有相同的重发机制;而不同预设链表的重发机制不同,即不同预设链表中的第一目标数据具有不同的重发机制。当然,实际应用中,可以基于实际需求而设置,本公开方案对此不作限制。

在本公开方案的一具体示例中,可以采用如下方式来确定所述第一运行环境停止调用所述第二运行环境的预设读接口,具体包括:

在所述第一目标数据传入所述第二运行环境之后,在所述第二运行环境中,判断所述预设链表中是否存在数据,也即,判断所述预设链表中是否存在历史数据,即是否存在除当前第一目标数据之前的其他数据;

在所述预设链表中不存在数据的情况下,也即不存在除当前第一目标数据之前的其他数据的情况下,在所述第一运行环境中,判断所述蓝牙组件中是否存在需要发送至所述第二运行环境的数据;需要说明的是,所述第一运行环境在判断所述蓝牙组件中是否存在需要发送至所述第二运行环境的数据之后,还会将判断结果反馈至第二运行环境,因此,该判断所述蓝牙组件中是否存在需要发送至所述第二运行环境的数据,也可以在第二运行环境中判断,即第二运行环境基于第一运行环境的判断结果,也能够得知所述蓝牙组件中是否存在需要发送至所述第二运行环境的数据。

需要说明的是,由于第一运行环境与第二运行环境隔离,所以,两者之间进行数据传输时,均是通过调用接口的方式实现。比如,通过调用预设写接口,将上述判断结果传入至TEE;同理,TEE存在需要传至REE的数据时,也可以在REE调用接口的时候,将需要发送至REE的数据传入REE。

在所述蓝牙组件中不存在需要发送至所述第二运行环境的数据的情况下,确定所述第一运行环境停止调用所述第二运行环境的预设读接口。

也就是说,在第二运行环境是被动触发的情况下,所述第一运行环境调用第二运行环境的预设读接口的时机为:

只要蓝牙组件中存在数据需要上报至第二运行环境,就会触发第一运行环境轮询调用所述第二运行环境的预设读接口;

而只有蓝牙组件中不存在数据上报至第二运行环境,同时,第二运行环境的预设链表中也没有历史数据的情况下,第一运行环境才会停止调用所述第二运行环境的预设读接口。

这样,由于本公开方案能够在特定时机(蓝牙组件中存在数据需要上报至TEE的情况)下进行预设读接口的轮询调用,而在另外时机下(蓝牙组件中不存在数据上报至TEE,同时,TEE中也不存在历史数据写入蓝牙组件的情况)下停止调用预设读接口,所以,保证了TEE在被动调用的机制下,依然能够有效进行数据发送或获取,同时,避免了TEE的预设读接口长期被调用,比如持续调用,为节约环境开销、降低系统功耗奠定了基础。

步骤S102:在所述第一运行环境中,获取所述蓝牙组件所发送的第一通知消息;其中,所述第一通知消息是所述蓝牙组件在接收到所述预设指令后所发送的,用于告知所述第一运行环境存在向所述第二运行环境发送的第一预设数据。

在一具体示例中,在所述第一运行环境中,基于无线传输方式,接收所述蓝牙组件发送的第一通知消息。

步骤S103:在所述第一运行环境中,响应所述第一通知消息,并循环调用所述第二运行环境的预设读接口。

这里,循环调用,也即轮询调用,指达到预设间隔后即进行调用,直至在满足停止条件(也即蓝牙组件中不存在数据上报至TEE,同时,TEE中也不存在历史数据写入蓝牙组件的情况)下才会停止调用。

进一步地,需要说明的是,在一具体示例中,第一运行环境对第二运行环境的预设读接口的调用是轮询调用,而第一运行环境对第二运行环境的预设写接口的调用是只有在有数据需要写入蓝牙组件的情况才调用,如此,在确保数据重发能够实现的基础上,避免无效调用,浪费资源。

步骤S104:在所述第二运行环境中,响应所述预设读接口的调用,以向所述蓝牙组件获取所述第一预设数据,以及从预设链表中确定出当前待重新发送的第一目标数据,并重新发送至所述蓝牙组件;其中,所述预设链表中存储有待发送至所述蓝牙组件的至少一个第一目标数据。

本公开方案中,蓝牙组件中存在数据需要发送至TEE的情况下,所述REE轮询调用所述TEE的预设读接口,但是,在确定出预设链表中不存在历史数据,以及所述蓝牙组件中不存在待反馈的数据的情况下,所述REE停止轮询调用所述TEE的预设读接口,这样,会导致新写入预设链表的数据(指在预设链表中不存在历史数据,以及所述蓝牙组件中不存在待反馈的数据的情况下,新写入预设链表的数据),比如第一目标数据在需要重新发送的时候,也即满足重发条件的情况下,无法有效重发至所述蓝牙组件;基于此,本公开方案,在预设链表中不存在历史数据,以及在蓝牙组件中不存在待反馈的数据,即认定所述REE停止轮询调用所述TEE的预设读接口的情况下,向所述蓝牙组件发送特定指令,如此,来触发REE再次轮询调用所述TEE的预设读接口,进而在轮询调用的过程中实现数据的重发。

如此,本公开方案向蓝牙组件进行读数据的操作过程中,也即调用预设读接口的过程中,实现数据重发;进而使得预设链表中存储的所有数据均能够最大化的成功发送,最大程度地为后续任务的正常执行奠定了基础。

在本公开方案的一具体示例中,在蓝牙组件接收到第一目标数据,并对第一目标数据成功处理后,还会向第二运行环境反馈响应数据,也即第二目标数据,具体步骤包括:

在所述第一运行环境中,获取所述蓝牙组件发送的第二通知消息;其中,所述第二通知消息用于告知所述第一运行环境存在向所述第二运行环境发送的第二目标数据;比如,在一具体示例中,在第一运行环境中,基于线传输方式,接收到所述蓝牙组件发送的第二通知消息。

在所述第一运行环境中,响应所述第二通知消息,并循环调用所述第二运行环境的预设读接口;

在所述第二运行环境中,响应所述预设读接口的调用,以向所述蓝牙组件获取第二目标数据,以及将第二预设数据发送至所述蓝牙组件;其中,所述第二目标数据表征所述蓝牙组件在成功处理所述第一目标数据后需要返回至所述第二运行环境的响应数据。

这里,需要强调的是,为了增加第一运行环境调用第二运行环境的预设读接口的时机,确保在后续数据的有效重发,本公开方案中,在第二运行环境从蓝牙组件读取数据的同时,还会向该蓝牙组件写入一个预先设置的数据,也即第二预设数据,如此,来有效避免蓝牙组件中不存在需要发送至第二运行环境的数据而导致第一运行环境停止调用第二运行环境的预设读接口,进而导致无法有效实现数据的重发;换言之,本公开方案为数据的有效重发提供了保证。

值得注意的是,上述从蓝牙组件中读数据的流程中,且在第二运行环境从所述蓝牙组件中获取所述第二目标数据的同时,还会向所述蓝牙组件发送第二预设数据,显然,该第二预设数据并非响应数据,也可以认为是假的上报数据,此时,无需将假的上报数据上报至第二运行环境;基于此,为了避免无需上报至第二运行环境的数据占用第二运行环境的资源,还可以在第一运行环境和第二运行环境之间设置缓冲区域,进而,将无需上报至第二运行环境的数据发送至该缓冲区域中,同时,从缓冲区域中获取到预设响应数据,以告知第一运行环境,第二运行环境响应了本次调用;而显然,本次调用并未直接进入了第二运行环境,第二运行环境也并非真实的响应了本次调用,如此,在能够有效确保数据的有效发送,重发数据能够得以有效重发的基础上,节约了第二运行环境的资源。具体地,在本公开方案的一具体示例中,所述智能安防设备与蓝牙组件之间还设置有线连接方式;基于此,本公开方案还包括:

基于有线传输方式,接收所述蓝牙组件发送的第三通知消息,其中,所述第三通知消息用于告知所述第一运行环境存在向所述第二运行环境发送的第二预设数据;在所述第一运行环境中,响应所述第三通知消息,并循环调用所述第二运行环境的预设读接口;所述第一运行环境,从所述缓冲区域中获取到预设响应数据,以避免所述第二运行环境响应所述第二预设数据所发起的所述预设读接口的调用;

其中,所述缓冲区域设置于所述第一运行环境和所述第二运行环境之间。

这样,有效避免了由于无用数据,也即第二预设数据而触发第二运行环境进行读流程,避免了第二运行环境中的资源浪费,同时,也节约了第二运行环境中的存储资源,即避免存储第二预设数据。

在本公开方案的一具体示例中,所述第二运行环境与蓝牙组件之间通过物理总线连接,所述第二运行环境通过该物理总线与蓝牙组件进行数据传输。也即,所述第二运行环境与所述蓝牙组件之间的数据通信通过该物理总线实现。

值得注意的是,本公开方案中,在一种方式中,蓝牙组件与REE之间的数据传输,可以是无线传输方式,即蓝牙组件需要上报的数据是第二目标数据或第一预设数据的情况下,蓝牙组件通过无线方式将相应的通知消息,即第一通知消息或第二通知消息发送至REE,此时,需要REE的预设读接口的调用进入到TEE中,以使TEE实现读流程。在另一种方式中,蓝牙组件与REE之间的数据传输,还可以是有线传输方式,即蓝牙组件需要上报的数据是第二预设数据的情况下,蓝牙组件通过有线方式将相应的通知消息,即第三通知消息发送至REE,此时,无需REE的预设读接口的调用进入到TEE中,即无需TEE实现读流程。如此,通过数据的传输方式来控制预设读接口的调用是否进入到TEE,换言之,通过数据传输方式来确定蓝牙组件中是否存在真实数据(比如,将第二目标数据和第一预设数据认定为真实数据,而第二预设数据认定为假数据)上报,进而避免了无效调用,避免了TEE的资源浪费,同时,也节约了TEE中存储资源,即避免存储第二预设数据。

以下结合具体示例对本公开方案做进一步详细说明,具体如下:

第一部分:写入流程,即REE(也即第一运行环境)将数据包(也即第一目标数据)写入蓝牙组件;

示例一,具体步骤包括:

步骤1-1:在所述REE存在第一目标数据需要向蓝牙组件发送的情况下,REE调用TEE(也即第二运行环境)的预设写接口,并利用所述预设写接口,将所述第一目标数据传入所述TEE。

这里,需要说明的是,本示例所述的预设写接口和预设写接口均为软件接口。

步骤1-2:在所述TEE中,判断预设链表中是否存在数据,也即是否存在历史数据。若所述预设链表中不存在数据,执行步骤1-3;否则,执行步骤1-4。

这里,需要说明的是,在所述TEE中预先设置该预设链表,该预设链表用于存储待发送至蓝牙组件的数据,比如,用于存储第一目标数据,同时,记录该第一目标数据的重发机制,如,设置重发次数和超时时间,进而,在到达超时时间且仍未接收到针对第一目标数据的响应数据,而且,重发次数小于预设次数的情况下,重新发送第一目标数据,这里,重新发送第一目标数据也是需要基于REE的接口调用才能实现,后续会对重发流程进行明确说明,此处不再赘述。这样,通过所述预设链表来记录第一目标数据是否发送成功,以及判断是否需要重新发送,如此,确保待发送至蓝牙组件的第一目标数据的有效发送,比如,在确定未成功发送的情况下实现及时重发,进而来确保后续任务的正常执行。

实际应用中,在第一目标数据成功发送至蓝牙组件后,所述蓝牙组件对所述第一目标数据进行处理,比如,将所述第一目标数据转发至其他设备,当然,还可以为其他处理,本公开方案对此不再赘述,并在成功处理后返回响应数据(也即第二目标数据),如此,告知TEE数据接收成功且正常处理。进一步地,在所述TEE中接收到蓝牙组件反馈的响应数据后,将该响应数据对应的第一目标数据从该预设链表中删除。这样,一方面,确保存储于预设链表中的数据均能成功发送至蓝牙组件,另一方面,还能够避免重新发送。

举例来说,本公开方案具体应用于智能门中,此时,该智能门的处理器中能够运行双系统,即REE和TEE;实际应用中,为了解决安全传输问题,实现数据的安全传输,可以将智能门上安装的智能门锁的门锁密码经由TEE传输至蓝牙组件,并经由所述蓝牙组件传输至智能门锁,实现智能门锁的开启。此时,所述第一目标数据则可以具体为用户在REE中输入的门锁密码,该门锁密码传至TEE,并传至蓝牙组件后,蓝牙组件将该门锁密码发送至智能门锁,此时,智能门锁接收到所述门锁密码并进行门锁的相关操作,比如启动操作后,向蓝牙组件返回成功使用的响应数据,也即第二目标数据,进而所述蓝牙组件也会将该响应数据反馈至智能门的处理器中,以便告知TEE,蓝牙组件成功使用该门锁密码,以使TEE从预设链表中删除该第二目标数据对应的第一目标数据。

步骤1-3:在所述TEE中,判断所述蓝牙组件中是否存在待反馈的数据,比如第二目标数据。若所述蓝牙组件中存在待反馈的数据,比如存在第二目标数据需要发送至TEE,则进入步骤1-4;否则,进入步骤1-5。

这里,需要说明的是,判断所述蓝牙组件中是否存在待反馈的数据,是在REE中进行的,即在所述REE中,判断所述蓝牙组件中是否存在待反馈的数据,并将判断结果传入TEE,如此,使得所述TEE也能够知晓(或判断)所述蓝牙组件中是否有数据需要传输。需要说明的是,由于TEE与REE隔离,所以,两者之间进行数据传输时,均是通过调用接口的方式实现。比如,通过调用预设写接口,将上述判断结果传入至TEE;同理,TEE存在需要传至REE的数据时,也可以在REE调用接口的时候,将需要发送至REE的数据传入REE。

步骤1-4:在所述TEE中,响应所述预设写接口的调用,以将所述第一目标数据写入所述预设链表;而且,在成功存储至所述预设链表后,将所述第一目标数据发送至所述蓝牙组件,完成向蓝牙组件的写操作。进入步骤1-6。

步骤1-5:在所述TEE中,向所述蓝牙组件发送特定指令(也即预设指令),该特定指令用于向蓝牙组件写入特定数据(也第一预设数据);所述蓝牙组件接收到该特定指令后,将该特定指令所指示的特定数据作为待发送至所述TEE的数据,这样,使得所述蓝牙组件中重新存在需要发送的数据。相应地,所述蓝牙组件通过软件方式,比如无线通信方式通知REE存在需要反馈的数据(也即所述蓝牙组件基于无线通信方式,向所述REE发送第一通知消息,以告知REE,该蓝牙组件中存在向所述TEE发送的特定数据),从而触发REE轮询调用TEE的预设读接口,为后续实现数据重发,避免由于REE停止调用TEE的接口而导致无法实现数据重发奠定了基础。同时,在所述TEE中,响应所述预设写接口的调用,以将所述第一目标数据写入所述预设链表;而且,在成功存储至所述预设链表后,将所述第一目标数据发送至所述蓝牙组件,完成向蓝牙组件的写操作;进入步骤1-6。

也就是说,实际应用中,所述蓝牙组件中需要发送至TEE的数据,可以是在成功处理第一目标数据后返回的响应数据,即第二目标数据,当然,还可以是基于特定指令写入的特定数据。

这里,需要说明是,在所述第一目标数据存储至所述预设链表后,还需要设置该第一目标数据的重发机制,比如,设置重发次数和超时时间,如此,为实现数据的有效发送以及避免无节制重发奠定了基础。

这里,本公开方案中,蓝牙组件中存在数据需要发送至TEE的情况下,所述REE轮询调用所述TEE的预设读接口,但是,在确定出预设链表中不存在历史数据,以及所述蓝牙组件中不存在待反馈的数据的情况下,所述REE停止轮询调用所述TEE的预设读接口,这样,会导致新写入预设链表的数据(指在预设链表中不存在历史数据,以及所述蓝牙组件中不存在待反馈的数据的情况下,新写入预设链表的数据),比如第一目标数据在需要重新发送的时候,也即满足重发条件的情况下,无法有效重发至所述蓝牙组件;基于此,本公开方案,在预设链表中不存在历史数据,以及在蓝牙组件中不存在待反馈的数据,即认定所述REE停止轮询调用所述TEE的预设读接口的情况下,向所述蓝牙组件发送特定指令,如此,来触发REE再次轮询调用所述TEE的预设读接口,进而在轮询调用的过程中实现数据的重发。

这里,由于本公开方案能够在特定时机(蓝牙组件中存在数据需要上报至TEE的情况)下进行预设读接口的轮询调用,而在另外时机下(蓝牙组件中不存在数据上报至TEE,同时,TEE中也不存在历史数据写入蓝牙组件的情况)下停止调用预设读接口,所以,保证了TEE在被动调用的机制下,依然能够有效进行数据发送或获取,同时,避免了TEE的预设读接口长期被调用,比如持续调用,为节约环境开销、降低系统功耗奠定了基础。

步骤1-6:在REE轮询调用所述TEE的预设读接口的过程中,检测到所述预设链表中的第一目标数据满足重发条件(也即确定出当前待重新发送的第一目标数据),触发所述第一目标数据重发,即在TEE中,响应所述预设读接口的调用,从预设链表中直接获取该第一目标数据,并重新将所述第一目标数据发送至蓝牙组件。

这里,该重发条件可以基于该第一目标数据的重发机制而设置。当然,实际应用中,所述预设链表中存储的不同数据,比如不同的第一目标数据所设置的重发机制可以相同,也可以不相同,本公开方案对此不作限制。相应地,所述预设链表中不同数据,比如不同第一目标数据的重发条件也可以相同,或者不相同。

实际应用中,由于步骤1-6中调用的是预设读接口,所以,在重新将所述第一目标数据发送至蓝牙组件的同时,还会从蓝牙组件中获取到一个数据,比如第一预设数据,如此,在向蓝牙组件进行读数据的操作过程中,也即调用预设读接口的过程中,实现数据的重发,进而使得预设链表中存储的所有数据均能够最大化的成功发送,最大程度地为后续任务的正常执行奠定了基础。

举例来说,设定目标时间endtime,此时,该目标时间endtime等于TEE中当前时间戳stamp加上第一目标数据的超时时间(比如1000毫秒)的情况下,在REE轮询调用TEE的预设读接口的过程中,比较当前stamp和endtime,如果当前stamp大于等于endtime,则响应所述预设读接口并触发第一目标数据重发;同时所述第一目标数据的重发次数减一,同时,更新endtime以便下次重发;

若重发后仍没有收到响应数据,则重复上述过程,直到重发次数为0,此时,将把目标时间endtime设置为0。实际应用中,预设链表中,所有endtime为0的数据会从该预设链表中删除,也即多次重发均失败的情况下,不再重发。这样,一方面确保了数据的有效重发,另一方面,又避免了无限次重发,充分权衡了数据重发的有效性以及系统效率。

示例二,具体步骤包括:

步骤2-1:在所述REE存在第一目标数据需要向蓝牙组件发送的情况下,REE调用TEE(也即第二运行环境)的预设写接口,并利用所述预设写接口,将所述第一目标数据传入所述TEE。

这里,需要说明的是,本示例所述的预设写接口和预设写接口均为软件接口。

步骤2-2:在所述TEE中,响应所述预设写接口的调用,以将所述第一目标数据写入所述预设链表;而且,在成功存储至所述预设链表后,将所述第一目标数据发送至所述蓝牙组件,完成向蓝牙组件的写操作。进入步骤2-3。

这里,需要说明的是,在所述TEE中预先设置该预设链表,该预设链表用于存储待发送至蓝牙组件的数据,比如,用于存储第一目标数据,同时,记录该第一目标数据的重发机制,如,设置重发次数和超时时间,进而,在到达超时时间且仍未接收到针对第一目标数据的响应数据,而且,重发次数小于预设次数的情况下,重新发送第一目标数据,这里,重新发送第一目标数据也是需要基于REE的接口调用才能实现,后续会对重发流程进行明确说明,此处不再赘述。这样,通过所述预设链表来记录第一目标数据是否发送成功,以及判断是否需要重新发送,如此,确保待发送至蓝牙组件的第一目标数据的有效发送,比如,在确定未成功发送的情况下实现及时重发,进而来确保后续任务的正常执行。

实际应用中,在第一目标数据成功发送至蓝牙组件后,所述蓝牙组件对所述第一目标数据进行处理,比如,将所述第一目标数据转发至其他设备,当然,还可以为其他处理,本公开方案对此不再赘述,并在成功处理后返回响应数据(也即第二目标数据),如此,告知TEE数据接收成功且正常处理。进一步地,在所述TEE中接收到蓝牙组件反馈的响应数据后,将该响应数据对应的第一目标数据从该预设链表中删除。这样,一方面,确保存储于预设链表中的数据均能成功发送至蓝牙组件,另一方面,还能够避免重新发送。

举例来说,本公开方案具体应用于智能门中,此时,该智能门的处理器中能够运行双系统,即REE和TEE;实际应用中,为了解决安全传输问题,实现数据的安全传输,可以将智能门上安装的智能门锁的门锁密码经由TEE传输至蓝牙组件,并经由所述蓝牙组件传输至智能门锁,实现智能门锁的开启。此时,所述第一目标数据则可以具体为用户在REE中输入的门锁密码,该门锁密码传至TEE,并传至蓝牙组件后,蓝牙组件将该门锁密码发送至智能门锁,此时,智能门锁接收到所述门锁密码并进行门锁的相关操作,比如启动操作后,向蓝牙组件返回成功使用的响应数据,也即第二目标数据,进而所述蓝牙组件也会将该响应数据反馈至智能门的处理器中,以便告知TEE,蓝牙组件成功使用该门锁密码,以使TEE从预设链表中删除该第二目标数据对应的第一目标数据。

步骤2-3:在所述TEE中,判断所述蓝牙组件中是否存在待反馈的数据,比如第二目标数据。若所述蓝牙组件中存在待反馈的数据,比如存在第二目标数据需要发送至TEE,则进入步骤2-5;否则,进入步骤2-4。

这里,需要说明的是,判断所述蓝牙组件中是否存在待反馈的数据,是在REE中进行的,即在所述REE中,判断所述蓝牙组件中是否存在待反馈的数据,并将判断结果传入TEE,如此,使得所述TEE也能够知晓(或判断)所述蓝牙组件中是否有数据需要传输。需要说明的是,由于TEE与REE隔离,所以,两者之间进行数据传输时,均是通过调用接口的方式实现。比如,通过调用预设写接口,将上述判断结果传入至TEE;同理,TEE存在需要传至REE的数据时,也可以在REE调用接口的时候,将需要发送至REE的数据传入REE。

步骤2-4:在所述TEE中,向所述蓝牙组件发送特定指令(也即预设指令),该特定指令用于向蓝牙组件写入特定数据(也第一预设数据);所述蓝牙组件接收到该特定指令后,将该特定指令所指示的特定数据作为待发送至所述TEE的数据,这样,使得所述蓝牙组件中重新存在需要发送的数据。相应地,所述蓝牙组件通过软件方式,比如无线通信方式通知REE存在需要反馈的数据(也即所述蓝牙组件基于无线通信方式,向所述REE发送第一通知消息,以告知REE,该蓝牙组件中存在向所述TEE发送的特定数据),从而触发REE轮询调用TEE的预设读接口,为后续实现数据重发,避免由于REE停止调用TEE的接口而导致无法实现数据重发奠定了基础。同时,在所述TEE中,响应所述预设写接口的调用,以将所述第一目标数据写入所述预设链表;而且,在成功存储至所述预设链表后,将所述第一目标数据发送至所述蓝牙组件,完成向蓝牙组件的写操作;进入步骤2-5。

也就是说,实际应用中,所述蓝牙组件中需要发送至TEE的数据,可以是在成功处理第一目标数据后返回的响应数据,即第二目标数据,当然,还可以是基于特定指令写入的特定数据。

这里,实际应用中,蓝牙组件中存在数据需要发送至TEE的情况下,所述REE轮询调用所述TEE的预设读接口,但是,在确定出预设链表中不存在历史数据,以及所述蓝牙组件中不存在待反馈的数据的情况下,所述REE停止轮询调用所述TEE的预设读接口,这样,会导致新写入预设链表的数据(指在预设链表中不存在历史数据,以及所述蓝牙组件中不存在待反馈的数据的情况下,新写入预设链表的数据),比如第一目标数据在需要重新发送的时候,也即满足重发条件的情况下,无法有效重发至所述蓝牙组件;基于此,本公开方案,在预设链表中不存在历史数据,以及在蓝牙组件中不存在待反馈的数据,即认定所述REE停止轮询调用所述TEE的预设读接口的情况下,向所述蓝牙组件发送特定指令,如此,来触发REE再次轮询调用所述TEE的预设读接口,进而在轮询调用的过程中实现数据的重发。

这里,由于本公开方案能够在特定时机(蓝牙组件中存在数据需要上报至TEE的情况)下进行预设读接口的轮询调用,而在另外时机下(蓝牙组件中不存在数据上报至TEE,同时,TEE中也不存在历史数据写入蓝牙组件的情况)下停止调用预设读接口,所以,保证了TEE在被动调用的机制下,依然能够有效进行数据发送或获取,同时,避免了TEE的预设读接口长期被调用,比如持续调用,为节约环境开销、降低系统功耗奠定了基础。

步骤2-5:在REE轮询调用所述TEE的预设读接口的过程中,检测到所述预设链表中的第一目标数据满足重发条件(也即确定出当前待重新发送的第一目标数据),触发所述第一目标数据重发,即在TEE中,响应所述预设读接口的调用,从预设链表中直接获取该第一目标数据,并重新将所述第一目标数据发送至蓝牙组件。

这里,该重发条件可以基于该第一目标数据的重发机制而设置。当然,实际应用中,所述预设链表中存储的不同数据,比如不同的第一目标数据所设置的重发机制可以相同,也可以不相同,本公开方案对此不作限制。相应地,所述预设链表中不同数据,比如不同第一目标数据的重发条件也可以相同,或者不相同。

实际应用中,由于步骤2-5中调用的是预设读接口,所以,在重新将所述第一目标数据发送至蓝牙组件的同时,还会从蓝牙组件中获取到一个数据,比如第一预设数据,如此,在向蓝牙组件进行读数据的操作过程中,也即调用预设读接口的过程中,实现数据的重发,进而使得预设链表中存储的所有数据均能够最大化的成功发送,最大程度地为后续任务的正常执行奠定了基础。

第二部分:读流程,即蓝牙组件中存在数据包(比如第二目标数据,或第一预设数据)需要上报至TEE,即TEE从蓝牙组件中读取数据。

实施方式一:蓝牙组件中需要上报至TEE的数据为第二目标数据或第一预设数据;这里,实际应用中,蓝牙组件会通过软件方式,比如无线通信方式告知REE存在第二目标数据或第一预设数据需要上报至TEE;具体步骤包括:

步骤1:蓝牙组件以无线通信方式通知REE存在第二目标数据需要上报至TEE,具体地,蓝牙组件以无线通信方式,向所述REE发送第二通知消息,所述第二通知消息用于告知所述REE蓝牙组件中存在向所述TEE发送的数据;比如,是在所述蓝牙组件成功处理接收到的所述第一目标数据后所发送的响应数据,也即第二目标数据。

步骤2:在REE中,定时调用TEE的预设读接口,也即REE轮询调用所述TEE的预设读接口。也就是说,在蓝牙组件中有数据需要上报至TEE的情况下,该蓝牙组件即会触发REE轮询调用所述TEE的预设读接口。

步骤3:所述REE的预设读接口的调用,进入所述TEE中;在所述TEE中,响应所述预设读接口的调用,从所述蓝牙组件中获取所述第二目标数据,同时,向所述蓝牙组件发送第二预设数据。

这里,需要说明的是,为了增加REE调用TEE的预设读接口的时机,确保在后续数据的有效重发,本公开方案中,在TEE从蓝牙组件读取数据的同时,还会向该蓝牙组件写入一个数据,也即第二预设数据,如此,来有效避免蓝牙组件中不存在需要发送至TEE的数据而导致REE停止调用TEE的预设读接口,进而导致无法有效实现数据的重发;换言之,为数据的有效重发提供了保证。

步骤4:在所述TEE中,从所述预设链表中确定出与所述第二目标数据相匹配的第一目标数据,并从所述预设链表中删除所述第一目标数据。

这里,当所述第二目标数据为蓝牙组件成功处理第一目标数据后所返回的响应数据的情况下,即可认为第二目标数据与第一目标数据相匹配。

当然,实际应用中,所述蓝牙组件发送至TEE的数据并非都是成功处理第一目标数据后返回的响应数据(也即第二目标数据),还可以是特定指令所指示的特定数据(也即第一预设数据);因此,当从所述预设链表中未能确定出与所述第二目标数据相匹配的第一目标数据的情况下,认定所述第二目标数据为非响应数据,即无效数据,此时,无需进行删除操作。

第三部分,值得注意的是,上述读流程中,在TEE从所述蓝牙组件中获取所述第二目标数据的同时,还会向所述蓝牙组件发送第二预设数据,显然,该第二预设数据并非响应数据,也可以认为是假的上报数据;即无需上报至TEE的数据;基于此,为了避免无需上报至TEE的数据占用TEE的资源,还可以在第一运行环境REE和第二运行环境TEE之间设置缓冲区域,进而,将无需上报至TEE的数据发送至该缓冲区域中,同时,从缓冲区域中获取到预设响应数据,以告知REE,TEE响应了本次调用;而显然,本次调用并未直接进入TEE,TEE也并非真实的响应了本次调用,如此,节约了TEE的资源,同时,还确保的数据的有效发送。

示例一,REE的预设读接口的调用通过所述缓冲区域进入到所述TEE中;具体步骤如下:

步骤1:蓝牙组件以有线通信方式通知REE存在第二目标数据需要上报至TEE,具体地,蓝牙组件以无线通信方式,向所述REE发送第二通知消息,所述第二通知消息用于告知所述REE蓝牙组件中存在向所述TEE发送的数据;比如,是在所述蓝牙组件成功处理接收到的所述第一目标数据后所发送的响应数据,也即第二目标数据。

步骤2:在REE中,通过所述缓冲区域定时调用TEE的预设读接口,也即REE通过所述缓冲区域轮询调用所述TEE的预设读接口。也就是说,在蓝牙组件中有数据需要上报至TEE的情况下,即会触发REE轮询调用所述TEE的预设读接口。

需要说明的是,由于所述REE与所述TEE隔离,REE无法感知TEE是否响应了该调用,所以,实际应用中,REE调用后,会接收到调用反馈消息,以告知REE本次调用成功与否;比如,针对预设读接口的调用,在通过所述缓冲区域进入到所述TEE后,所述REE会接收到TEE成功响应的反馈消息,当然,该TEE成功响应的反馈消息也是TEE响应该预设读接口的调用后而生成的,并经由所述缓冲区域反馈至所述REE。

步骤3:所述REE的预设读接口的调用,通过所述缓冲区域进入到所述TEE中;在所述TEE中,响应所述预设读接口的调用,从所述蓝牙组件中获取所述第二目标数据,同时,向所述蓝牙组件发送第二预设数据。

这里,需要说明的是,为了确保REE能够调用TEE的预设读接口,本公开方案中,在TEE从蓝牙组件读取数据的同时,还会向该蓝牙组件写入一个数据,也即第二预设数据,如此,来有效避免蓝牙组件中不存在需要发送至TEE的数据而导致REE停止调用TEE的预设读接口,进而导致无法有效实现数据的重发;换言之,为数据的有效重发提供的保证。

步骤4:在所述TEE中,从所述预设链表中确定出与所述第二目标数据相匹配的第一目标数据,并从所述预设链表中删除所述第一目标数据。

这里,当所述第二目标数据为蓝牙组件成功处理第一目标数据后所返回的响应数据的情况下,即可认为第二目标数据与第一目标数据相匹配。

当然,实际应用中,所述蓝牙组件发送至TEE的数据并非都是成功处理第一目标数据后返回的响应数据(也即第二目标数据),还可以是特定指令所指示的特定数据(也即第一预设数据);因此,当从所述预设链表中未能确定出与所述第二目标数据相匹配的第一目标数据的情况下,认定所述第二目标数据为非响应数据,即无效数据,此时,无需进行删除操作。

这里,由于第一预设数据是为确保重发机制有效而设置的,所以,基于第一预设数据的读接口的调用需要经由缓冲区域而进入到TEE中。基于此,TEE从蓝牙组件中读取第一预设数据和第二目标数据的流程相同,此处不再赘述。

示例二,REE的预设读接口的调用不进入所述TEE中;具体步骤如下:

步骤1:蓝牙组件以无线通信方式通知REE存在第二预设数据需要上报至TEE,具体地,蓝牙组件以无线通信方式,向所述REE发送第三通知消息,所述第三通知消息用于告知所述REE蓝牙组件中存在向所述TEE发送的第二预设数据。

步骤2:在REE中,通过所述缓冲区域定时调用TEE的预设读接口,也即REE通过所述缓冲区域轮询调用所述TEE的预设读接口。也就是说,在蓝牙组件中有数据需要上报至TEE的情况下,无论上报的数据是第二目标数据、第一预设数据还是第二预设数据,均会触发REE轮询调用所述TEE的预设读接口。

步骤3:所述REE,从所述缓冲区域中获取到预设响应数据,该预设响应数据是预先存储于该缓冲区域的,用于仿真所述TEE真实响应所述预设读接口的调用后而生成的响应数据;进而避免本次调用进入到TEE中,避免TEE响应本地调用。

这样,有效避免了由于无用数据,也即第二预设数据而触发TEE进行读流程,避免了TEE中的资源浪费,同时,也节约了TEE中存储资源,即避免存储第二预设数据。

值得注意的是,本公开方案中,在一种方式中,蓝牙组件与REE之间的数据传输,可以是无线传输方式,即蓝牙组件需要上报的数据是第二目标数据或第一预设数据的情况下,蓝牙组件通过无线方式将相应的通知消息,即第一通知消息或第二通知消息发送至REE,此时,需要REE的预设读接口的调用进入到TEE中,以使TEE实现读流程。在另一种方式中,蓝牙组件与REE之间的数据传输,还可以是有线传输方式,即蓝牙组件需要上报的数据是第二预设数据的情况下,蓝牙组件通过有线方式将相应的通知消息,即第三通知消息发送至REE,此时,无需REE的预设读接口的调用进入到TEE中,即无需TEE实现读流程。如此,通过数据的传输方式来控制预设读接口的调用是否进入到TEE,换言之,通过数据传输方式来确定蓝牙组件中是否存在真实数据(比如,将第二目标数据和第一预设数据认定为真实数据,而第二预设数据认定为假数据)上报,进而避免了无效调用,避免了TEE的资源浪费,同时,也节约了TEE中存储资源,即避免存储第二预设数据。

需要说明的是,本公开方案中,所述TEE与蓝牙组件之间通过物理总线连接,所述TEE通过该物理总线与蓝牙组件进行数据传输。

图2为根据本公开一实施例智能安防设备的结构示意图一。这里,所述智能安防设备至少安装有第一运行环境和第二运行环境,所述第一运行环境与所述第二运行环境隔离;所述智能安防设备还能够与蓝牙组件进行通信。这里,所述第二运行环境通过所述第一运行环境调用该第二运行环境的对外接口,与所述蓝牙组件进行目标数据的交互,举例来说,所述第一运行环境调用所述第二运行环境暴露给外部的预设读接口,以触发所述第二运行环境向蓝牙组件去获取数据;或者,所述第一运行环境调用所述第二运行环境暴露给外部的预设写接口,以触发所述第二运行环境将数据写入蓝牙组件。这里,所述目标数据至少包括:所述第一运行环境需要发送至所述蓝牙组件的第一目标数据,也即需要写入所述蓝牙组件的第一目标数据。

这里,需要说明的是,实际应用中,如图3和图4所示,该蓝牙组件可以集成于该智能安防设备中,即为智能安防设备的内部组件;当然,还可以为智能安防设备的外部设备,本公开方案对此不作限制。

具体地,在一具体示例中,如图3所示,所述智能安防设备至少包括处理器和蓝牙组件,其中,该处理器安装有第一运行环境和第二运行环境。对应于具体场景中,智能安防设备可以为智能门,此时,该智能门中还可以设置有智能门锁。

其中,所述智能安防设备还包括:

预设指令发送单元201,用于在所述第二运行环境中,确定所述第一运行环境停止调用所述第二运行环境的预设读接口的情况下,向所述蓝牙组件发送预设指令;其中,所述预设指令指示在所述蓝牙组件中写入第一预设数据,并将所述第一预设数据作为需要发送至所述第二运行环境的数据;

通知消息获取单元202,用于在所述第一运行环境中,获取所述蓝牙组件所发送的第一通知消息;其中,所述第一通知消息是所述蓝牙组件在接收到所述预设指令后所发送的,用于告知所述第一运行环境存在向所述第二运行环境发送的第一预设数据;

读接口调用单元203,用于在所述第一运行环境中,响应所述第一通知消息,并循环调用所述第二运行环境的预设读接口;

数据处理单元204,用于在所述第二运行环境中,响应所述预设读接口的调用,以向所述蓝牙组件获取所述第一预设数据,以及从预设链表中确定出当前待重新发送的第一目标数据,并重新发送至所述蓝牙组件;其中,所述预设链表中存储有待发送至所述蓝牙组件的至少一个第一目标数据。

在本公开方案的一具体示例中,所述第一运行环境为富执行环境;所述第二运行环境为可信执行环境。

在本公开方案的一具体示例中,所述智能安防设备为智能门。此时,该智能门的处理器中能够运行双系统,即第一运行环境和第二运行环境;实际应用中,为了解决安全传输问题,实现数据的安全传输,可以将智能门上安装的智能门锁的门锁密码经由第二运行环境传输至蓝牙组件,并经由所述蓝牙组件传输至智能门锁,实现智能门锁的开启。此时,所述第一目标数据则可以具体为用户在REE中输入的门锁密码,该门锁密码传至TEE,并传至蓝牙组件后,蓝牙组件将该门锁密码发送至智能门锁,此时,智能门锁接收到所述门锁密码并进行门锁的相关操作,比如启动操作后,向蓝牙组件返回成功使用的响应数据,也即第二目标数据,进而所述蓝牙组件也会将该响应数据反馈至智能门的处理器中,以便告知第二运行环境,蓝牙组件成功使用该门锁密码,以使TEE从预设链表中删除该第二目标数据对应的第一目标数据。

在本公开方案的一具体示例中,还包括:写接口调用单元;其中,

所述写接口调用单元,用于在所述第一运行环境中,需要向所述蓝牙组件发送第一目标数据的情况下,在所述第一运行环境中调用所述第二运行环境的预设写接口;

所述数据处理单元,还用于在所述第二运行环境中,响应所述预设写接口的调用,将所述第一目标数据传入所述第二运行环境,并存储于所述预设链表中;在所述第二运行环境中,将所述第一目标数据发送至所述蓝牙组件;以及为当前存储至所述预设链表的第一目标数据设置重发机制,以便于根据所述重发机制从所述预设链表中确定出当前需要重新发送的数据。

在本公开方案的一具体示例中,所述数据处理单元,还用于在所述第一目标数据传入所述第二运行环境之后,在所述第二运行环境中,判断所述预设链表中是否存在数据;在所述预设链表中不存在数据的情况下,在所述第一运行环境中,判断所述蓝牙组件中是否存在需要发送至所述第二运行环境的数据;在所述蓝牙组件中不存在需要发送至所述第二运行环境的数据的情况下,确定所述第一运行环境停止调用所述第二运行环境的预设读接口。

在本公开方案的一具体示例中,其中,所述通知消息获取单元,还用于在所述第一运行环境中,获取所述蓝牙组件发送的第二通知消息;其中,所述第二通知消息用于告知所述第一运行环境存在向所述第二运行环境发送的第二目标数据;

所述读接口调用单元,还用于在所述第一运行环境中,响应所述第二通知消息,并循环调用所述第二运行环境的预设读接口;

所述数据处理单元,还用于在所述第二运行环境中,响应所述预设读接口的调用,以向所述蓝牙组件获取第二目标数据,以及将第二预设数据发送至所述蓝牙组件;其中,所述第二目标数据表征所述蓝牙组件在成功处理所述第一目标数据后需要返回至所述第二运行环境的响应数据。

在本公开方案的一具体示例中,所述获取所述蓝牙组件所发送的第一通知消息,包括:

基于无线传输方式,接收到所述蓝牙组件发送的第一通知消息;

和/或,所述获取所述蓝牙组件发送的第二通知消息,包括:

基于无线传输方式,接收到所述蓝牙组件发送的第二通知消息。

在本公开方案的一具体示例中,所述智能安防设备与蓝牙组件之间还设置有线连接方式;其中,所述智能安防设备还包括数据缓冲单元;其中,

所述通知消息获取单元,还用于基于有线传输方式,接收所述蓝牙组件发送的第三通知消息,其中,所述第三通知消息用于告知所述第一运行环境存在向所述第二运行环境发送的第二预设数据;

所述读接口调用单元,用于在所述第一运行环境中,响应所述第三通知消息,并循环调用所述第二运行环境的预设读接口;

所述数据缓冲单元,用于在所述第一运行环境中,从所述缓冲区域中获取到预设响应数据,以避免所述第二运行环境响应所述第二预设数据所发起的所述预设读接口的调用;

其中,所述缓冲区域设置于所述第一运行环境和所述第二运行环境之间。

这里,基于上述设备的相关描述可以参照上述方法实施例,此处不再赘述。

需要说明的是,本公开实施例中对各功能单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本公开的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器或者网络设备等)或处理器(processor)执行本公开各个实施例提供的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。

图5为根据本公开一实施例智能安防设备的硬件结构示意图。如图5所示,该智能安防设备包括:存储器510和处理器520,存储器510内存储有可在处理器520上运行的计算机程序。存储器510和处理器520的数量可以为一个或多个。存储器510可以存储一个或多个计算机程序,当该一个或多个计算机程序被该智能安防设备执行时,使得该智能安防设备执行上述方法实施例提供的方法。

该智能安防设备还包括:

通信接口530,用于与外界设备进行通信,进行数据交互传输。

如果存储器510、处理器520和通信接口530独立实现,则存储器510、处理器520和通信接口530可以通过总线相互连接并完成相互间的通信。该总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture ,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

可选的,在具体实现上,如果存储器510、处理器520及通信接口530集成在一块芯片上,则存储器510、处理器520及通信接口530可以通过内部接口完成相互间的通信。

本公开实施例还提供一种计算机可读存储介质,其存储有计算机指令,当所述计算机指令在计算机上运行时,使得所述计算机执行上述方法实施例提供的方法。

本公开实施例还提供一种计算机程序产品,所述计算机程序产品用于存储计算机程序,该计算机程序被计算机执行时,所述计算机可以实现上述方法实施例提供的方法。

本公开实施例还提供一种芯片,所述芯片与存储器耦合,所述芯片用于实现上述方法实施例提供的方法。

应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(Advanced RISC Machines,ARM)架构的处理器。

进一步地,可选的,上述存储器可以包括只读存储器和随机存取存储器,还可以包括非易失性随机存取存储器。该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以包括只读存储器(Read-OnlyMemory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以包括随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic Random Access Memory ,DRAM) 、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct RAMBUS RAM,DR RAM)。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(例如:红外、蓝牙、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(Digital Versatile Disc,DVD))或半导体介质(例如:固态硬盘(Solid State Disk,SSD))等。值得注意的是,本公开提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本公开实施例的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本公开的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

在本公开实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。

在本公开实施例的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。

以上所述仅为本公开的示例性实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

28页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种被动重发的可靠传输方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类