一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

近场通信方法、配置方法、NFC主机以及电子设备与流程

2022-04-09 02:01:45 来源:中国专利 TAG:
近场通信方法、配置方法、NFC主机以及电子设备与流程

本发明实施例涉及通信领域,尤其涉及一种近场通信方法、配置方法、NFC主机以及电子设备。

背景技术

近场通信(Near Field Communication,NFC)设备具有包括主动模式和被动模式等多种通信模式。一般而言,在主动模式下,NFC设备作为读卡器使用,主动发出射频信号去识别和读写具有射频功能的智能卡片;被动模式又被称为卡模拟模式,在卡模拟模式下,NFC设备可以作为智能卡片在其他NFC读卡设备发出的射频场中被动响应,以进行读写操作。

GP(GlobalPlatform)规范是一种通过制定标准和认证安全硬件或硬件组合来保护数字服务的规范,它有助于服务提供商和设备制造商之间的协作,使他们能够确保所有设备足够安全,能够防范威胁。

一些智能手机内置了NFC芯片和遵循GP规范的安全芯片(Secure Element,SE),例如,NFC芯片在近场通信中作为卡模拟模式使用,安全芯片中的非接触应用用于存储诸如门禁卡、公交卡、电子身份证、银行卡等智能卡片的卡片信息。基于GP规范,非接触应用能够通过安全芯片与处理器进行交互,使智能手机可以模拟智能卡片实现NFC刷卡操作。但是,这种方案中的安全芯片与相关硬件的依赖性较高,不利于非接触应用的灵活配置。



技术实现要素:

有鉴于此,本发明实施例提供一种近场通信方法、配置方法、NFC主机以及电子设备,以至少部分解决上述问题。

根据本发明实施例的第一方面,提供了一种近场通信方法,所述近场通信方法应用于配置有REE环境和TEE环境的NFC主机,所述TEE环境中安装有安全进程控制应用和非接触应用,所述方法包括:所述REE环境向所述安全进程控制应用通知NFC控制器的卡片发现状态;所述安全进程控制应用根据所述卡片发现状态,向所述非接触应用请求读卡指令;所述安全进程控制应用,向所述NFC控制器发送所述读卡指令,所述读卡指令指示所述NFC控制器进行读卡操作;所述安全进程控制应用获取所述NFC控制器的读卡响应,并且将所述读卡响应转发到所述非接触应用。

在另一些实施例中,所述REE环境向所述安全进程控制应用通知NFC控制器的卡片发现状态,包括:所述REE环境创建第一安全进程;所述REE环境基于所述第一安全进程向所述安全进程控制应用发送指示第一通知,所述第一通知指示所述NFC控制器的卡片发现状态。

在另一些实施例中,所述安全进程控制应用根据所述卡片发现状态,向所述非接触应用请求读卡指令,包括:所述安全进程控制应用根据所述卡片发现状态,创建第二安全进程;所述安全进程控制应用基于所述第二安全进程,向所述非接触应用请求读卡指令;所述安全进程控制应用在接收到所述非接触应用返回的读卡指令后,结束所述第二安全进程。

在另一些实施例中,所述方法还包括:在所述读卡指令的发送完成之后,所述安全进程控制应用结束所述第一安全进程。

在另一些实施例中,所述方法还包括:在所述安全进程控制应用获取所述NFC控制器的读卡响应之前,所述REE环境创建第三安全进程。所述REE环境基于所述第三安全进程向所述安全进程控制应用发送指示第二通知,所述第二通知指示所述安全进程控制应用获取所述NFC控制器的读卡响应。

在另一些实施例中,所述安全进程控制应用获取所述NFC控制器的读卡响应,并且将所述读卡响应转发到所述非接触应用,包括:所述安全进程控制应用在获取所述NFC控制器的读卡响应时,创建第四安全进程;所述安全进程控制应用基于所述第四安全进程,将所述读卡响应转发到所述非接触应用,并且结束所述第四安全进程。

在另一些实施例中,所述方法还包括:在将所述读卡响应转发到所述非接触应用之后,所述安全进程控制应用向所述非接触应用请求所述读卡指令的下一读卡指令。

在另一些实施例中,所述方法还包括:在所述非接触应用未返回所述读卡指令的下一读卡指令时,所述安全进程控制应用结束所述第三安全进程。

在另一些实施例中,所述方法还包括:在所述非接触应用返回所述读卡指令的下一读卡指令时,所述安全进程控制应用基于所述下一读卡指令更新所述读卡指令。

在另一些实施例中,所述REE环境向所述安全进程控制应用通知NFC控制器的卡片发现状态,包括:所述REE环境接收所述NFC控制器发送中断指令;所述REE环境根据所述中断指令,通知所述安全进程控制应用从所述NFC控制器获取所述卡片发现状态。

根据本发明实施例的第二方面,提供了一种近场通信方法。所述近场通信方法应用于配置有REE环境和TEE环境的NFC主机,所述TEE环境中安装有安全进程控制应用和非接触应用,所述方法包括:所述REE环境向所述安全进程控制应用通知NFC控制器的卡片被发现状态;所述安全进程控制应用根据所述卡片被发现状态,获取所述NFC控制器的读卡指令到所述非接触应用,使所述非接触应用根据所述读卡指令生成读卡响应;所述安全进程控制应用将所述非接触应用的读卡响应转发到所述NFC控制器。

在另一些实施例中,所述REE环境向所述安全进程控制应用通知NFC控制器的卡片被发现状态,包括:所述REE环境接收到NFC控制器发送的卡片被发现状态时,向所述安全进程控制应用发送第三通知,所述第三通知指示所述安全进程控制应用从所述NFC控制器获取所述NFC控制器的读卡指令。

在另一些实施例中,所述方法还包括:所述NFC控制器在发送卡片被发现状态之前,所述NFC控制器经由所述安全进程控制应用与所述NFC控制器之间的HCI接口,将所述NFC控制器的读卡指令封装成基于所述HCI接口的事件消息。相应地,所述第三通知指示所述安全进程控制应用从所述NFC控制器获取基于所述HCI接口的事件消息。

根据本发明实施例的第三方面,提供了一种近场通信配置方法,所述近场通信方法应用于配置有REE环境和TEE环境的NFC主机,所述TEE环境中安装有安全进程控制应用和非接触应用,所述方法包括:所述安全进程控制应用从所述REE环境接收RF参数请求;所述安全进程控制应用向所述非接触应用转发所述RF参数请求;所述安全进程控制应用接收所述非接触应用响应所述RF参数请求返回的RF参数;所述安全进程控制应用基于所述RF参数对NFC控制器进行配置。

在另一些实施例中,所述安全进程控制应用基于所述RF参数对NFC控制器进行配置,包括:所述安全进程控制应用向所述REE环境返回所述RF参数;所述REE环境根据与所述NFC控制器之间的NCI接口,对所述NFC控制器进行配置。

在另一些实施例中,所述安全进程控制应用基于所述RF参数对NFC控制器进行配置,包括:所述安全进程控制应用生成RF配置指令;所述安全进程控制应用向所述NFC控制器,发送所述RF配置指令,使所述NFC控制器进入RF参数配置状态;所述安全进程控制应用基于所述RF参数,对处于RF参数配置状态的NFC控制器执行配置。

根据本发明实施例的第四方面,提供了一种NFC主机,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面至第三方面中任一方面所述的方法对应的操作。

根据本发明实施例的第五方面,提供了一种电子设备,包括:NFC控制器以及根据第三方面所述的NFC主机。所述NFC控制器与所述NFC主机通信连接。

在本发明实施例中,由于用于近场通信的非接触应用安装在TEE环境这样的软件环境中,因而避免了对诸如安全芯片等相关硬件的依赖,并且提高了非接触应用的配置灵活性。此外,在读卡过程中,非接触应用和安全进程控制应用分别保证了数据处理和数据通信的安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为根据本发明的一个实施例的近场通信系统的示例性架构图。

图2A为根据本发明的另一实施例的近场通信方法的步骤流程图。

图2B为图2A的近场通信方法的一个例子的示意性交互图。

图2C为图2A的近场通信方法和配置方法的一个例子的示意性交互图。

图2D为图2A的近场通信配置方法的一个例子的示意性交互图。

图2E为根据本发明的另一实施例的近场通信中的数据帧格式的示意图。

图2F为根据本发明的另一实施例的HCI接口初始化过程的示意图。

图3为根据本发明另一实施例的近场通信配置方法的步骤流程图。

图4A为根据本发明另一实施例的近场通信方法的步骤流程图。

图4B为图4A的近场通信方法的一个例子的示意性交互图。

图5为根据本发明实施例的一种NFC主机的结构示意图。

具体实施方式

为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。

下面结合本发明实施例附图进一步说明本发明实施例具体实现。

图1为根据本发明的一个实施例的近场通信系统的示例性架构图。图1所示的近场通信系统包括NFC主机和NFC控制器(NFC Controller,NFCC)。NFC主机又可以被称为设备主机(Device Host,DH),能够对NFC控制器进行配置,使得NFC控制器实现相应的读卡模式和卡模拟模式。在读卡模式中,经由配置的NFC控制器能够对远端卡片进行读取。在卡模拟模式中,NFC控制器能够获取外部的读卡指令,并且向外部返回读卡响应,即,读卡结果。图1所示的近场通信系统能够配置在一电子设备中,电子设备包括但不限于具有近场通信能力的嵌入式设备、物联网设备、终端设备等。

NFC主机可以配置有可信执行环境(Trusted Execution Environment,TEE)和富执行环境(Rich Execution Environment,REE)。具体地,TEE环境可以配置有自身的操作系统和应用程序,REE环境也可以配置有自身的操作系统和应用程序。通常情况下,REE环境不能访问TEE环境,但是通过(Global Platform,GP)规范所规定的协议,REE环境能够通过安全进程访问TEE环境的资源,例如,REE环境可以通过诸如TA_invoke的安全进程访问TEE环境。另外,在TEE环境内,不同的应用之间也可以采用诸如TA_invoke的安全进程执行访问。诸如TA_invoke的安全进程能够使相应的内存空间在一定周期内被访问,当安全进程结束之后,相应的内存空间不可被访问,从而提高了访问的安全性。

一般而言,NFC主机能够对NFC控制器执行诸如NCI接口(NFC Controller Interface)配置等配置操作。为了提高通信可靠性,NFC主机与NFC控制器之间的数据通信通过总线实现。例如,NFC控制器和NFC主机之间的总线连接包括GPIO总线1和I2C总线,用于在REE下承载现有的NCI命令交互。

为了实现本发明实施例的近场通信方法,NFC控制器与NFC主机之间可以进一步配置第一总线和第二总线。第一总线可以为用于REE环境(例如,REE环境中的硬件抽象层)与NFC控制器之间的总线,例如,GPIO总线2,应理解,进一步配置的GPIO总线2是用于NCI接口通信的GPIO总线1之外的GPIO总线,并且基于GPIO总线2的传输能够执行诸如中断操作的单工通信。

第二总线可以为用于TEE环境与NFC控制器之间的诸如串行外设接口(Serial Peripheral Interface,SPI)或I2C的总线。第二总线可以执行诸如主设备侧与从设备侧之间的双工通信。

图2A为根据本发明的另一实施例的近场通信方法的步骤流程图。图2A的近场通信方法应用于配置有REE环境和TEE环境的NFC主机,TEE环境中安装有安全进程控制应用和非接触应用。非接触应用包括但不限于诸如支付(例如,银行卡或公交卡)、身份验证等与卡片读取或识别相关的应用。非接触应用可以为安装在电子设备中的至少一个应用程序。安全进程控制应用能够与TEE环境之外的REE环境执行基于安全进程的通信,也能够与TEE环境内的非接触应用执行基于安全进程的通信,换言之,非接触应用用于与卡片信息相关的数据处理,安全进程控制应用用于与卡片信息相关的数据通信。在一个示例中,诸如硬件抽象层(Hardware Abstraction Layer,HAL)的REE环境不允许向非接触应用请求数据或指令。非接触应用不允许向安全进程应用请求数据或指令。

本实施例的方案适用于NFC读卡模式,包括:

S2100:REE环境向安全进程控制应用通知NFC控制器的卡片发现状态。

应理解,卡片发现状态指示NFC控制器检测到存在远端卡片,例如,NFC控制器发送射频信号,当接收到射频信号的响应时,即,指示存在远端卡片。REE环境可以通过安全进程执行上述通知操作。

S2200:安全进程控制应用根据卡片发现状态,向非接触应用请求读卡指令。

应理解,安全进程控制应用可以基于安全进程请求读卡指令,在获取到读卡指令之后,可以结束安全进程。所请求的读卡指令用于对卡片信息执行读取操作,读取操作可以针对至少一个卡片。当对多个卡片执行读取时,每个读卡指令对卡片执行一次读取,换言之,可以先获取当前读卡指令,再获取下一读卡指令。在一个示例中,在读卡操作用于支付或身份识别的场景中时,一次读卡可以指示一次刷卡。

S2300:安全进程控制应用向NFC控制器发送读卡指令,读卡指令指示NFC控制器进行读卡操作。

应理解,安全进程控制应用可以在与REE环境的安全进程的周期内发送读卡指令。由于安全进程控制应用处于TEE环境中,因此,安全进程控制应用有权限在安全进程的周期内向处于TEE环境外的NFC控制器发送读卡指令。

S2400:安全进程控制应用获取NFC控制器的读卡响应,并且将读卡响应转发到非接触应用。

应理解,读卡响应指示NFC控制器的读卡结果,非接触应用获取到读卡响应之后可以执行各种后续的应用操作,例如,根据读卡响应指示的结果,执行支付刷卡或身份验证过程。

在本发明实施例中,用于近场通信的非接触应用安装在TEE环境中,提高了与非接触应用的读卡指令和读卡响应相关的数据处理的安全性,此外,安全进程控制应用保证了与TEE环境进行数据通信的安全性。

应理解,关于图1的近场通信系统中NFC控制器与NFC主机之间的数据读写过程,可以采用如下方案:

示例一、从NFC控制器向NFC主机发送数据

NFC控制器与NFC主机的REE环境之间采用诸如GPIO总线的第一总线连接,例如,NFC控制器与REE环境的硬件抽象层(HAL)连接。NFC控制器可以将目标数据置于缓存区,然后,通过第一总线向REE环境发起中断指令,中断指令的信号可以以预设的高电平或低电平实现。REE环境可以响应中断指令而发生中断,然后,通过TEE环境(例如,安全进程控制应用)向NFC控制器发送数据读取指令,将目标数据从缓冲区读取到TEE环境。具体地,TEE环境可以与NFC控制器之间采用诸如SPI或I2C的第二总线连接,TEE环境可以通过第二总线发送数据读取指令,进行数据读取过程。例如,TEE主机作为第二总线的主设备方,NFC控制器作为第二总线的从设备方,在目标数据置于NFC控制器的缓存区时,TEE环境作为主设备方向作为从设备方的NFC控制器发送数据读取指令,可以直接读取目标数据。

示例二、从NFC控制器向NFC主机发送数据

TEE环境(例如,安全进程控制应用)可以与NFC控制器之间采用诸如SPI或I2C的第二总线连接,TEE通过第二总线发送轮询读取指令,NFC控制器在确定目标数据之后接收到轮询读取指令时,向TEE环境返回目标数据。例如,TEE主机作为第二总线的主设备方,NFC控制器作为第二总线的从设备方,TEE环境作为主设备方向作为从设备方的NFC控制器发送轮询读取指令,接收到轮询读取指令的NFC控制器相应地将携带目标数据的读取响应返回到TEE环境。

在一个示例中,目标数据的数据帧结构包括起始字段和后续字段,后续字段包括数据长度信息字段、数据字段和可选字段等。例如,如图2E所示,起始字段可以为1Byte,例如,0x12。数据长度信息字段可以为2Bytes,可选字段可以为2Bytes的CRC校验信息。应理解,TEE环境在读取目标数据时,先判断是否读取到正确的起始字段,如果起始字段为正确,则继续读取目标数据的后续字段。

示例三、从NFC主机向NFC控制器发送数据

TEE环境(例如,安全进程控制应用)可以与NFC控制器之间采用诸如SPI或I2C的第二总线连接,TEE环境通过第二总线将目标数据写入到NFC控制器的缓存区,并且向NFC控制器发送中断指令。然后,NFC控制器响应中断指令,读取目标数据。

作为一个示例,NFC控制器接收到中断指令,停止当前数据处理,对中断指令进行响应。作为另一示例,NFC控制器处于等待TEE环境的中断指令的状态,当NFC控制器接收到中断指令时,对中断指令进行响应。

在一个示例中,目标数据的数据帧结构包括起始字段和后续字段,后续字段包括数据长度信息字段、数据字段和可选字段等。例如,如图2E所示,起始字段可以为1Byte,例如,例如0x34。数据长度信息字段可以为2Bytes,可选字段可以为2Bytes的CRC校验信息。

应理解,TEE环境在写入目标数据时,可以依次写入起始字段和后续字段。

下面将结合图2B对图2A的近场通信方法的一个例子进行详细描述和说明。

作为REE环境向安全进程控制应用通知NFC控制器的卡片发现状态的例子,REE环境创建第一安全进程,并且基于第一安全进程向安全进程控制应用发送第一通知。第一通知指示NFC控制器的卡片发现状态。更具体地,在图2B的步骤101中,当NFC控制器检测到对端卡片的时候,可以基于RF接口规范,产生RF接口激活通知RF_INTF_ACTIVATED_NTF,然后向NFC主机发送RF接口激活通知。然后,NFC主机通过GP标准的第一安全进程TA(Trusted Application)Invoke通知安全进程控制应用检测到卡片。可替代地,REE环境可以接收NFC控制器发送的中断指令,并且REE环境根据中断指令,通知安全进程控制应用从NFC控制器获取卡片发现状态。

另外,作为安全进程控制应用根据卡片发现状态向非接触应用请求读卡指令(即,当前读卡指令)的例子,安全进程控制应用根据卡片发现状态创建第二安全进程,并且基于第二安全进程向非接触应用请求读卡指令。具体地,在图2B的步骤102中,安全进程控制应用通过第二安全进程TA Invoke通知非接触应用检测到卡片,并获取一读卡指令。

安全进程控制应用可以在接收到非接触应用返回的读卡指令后,结束第二安全进程。例如,在步骤103中,非接触应用将读卡指令返回给安全进程控制应用,结束第二安全进程TA Invoke的调用。

作为安全进程控制应用向NFC控制器发送读卡指令的例子,在图2B的步骤104中,安全进程控制应用可以通过示例三的方式,将所述读卡指令发送给NFC控制器。

另外,在读卡指令的发送完成之后,安全进程控制应用结束第一安全进程。具体地,在步骤105中,安全进程控制应用在将读卡指令发送出去后,结束第一安全进程TA Invoke的调用。

应理解,读卡指令指示NFC控制器进行读卡操作,具体地,在步骤106中,NFC控制器收到所述读卡指令后,转发给远端卡片,并且在步骤107中,远端卡片返回读卡响应到NFC控制器。

作为安全进程控制应用获取NFC控制器的读卡响应的例子,REE环境可以创建第三安全进程。应理解,REE环境可以响应中断指令,创建第三安全进程TA Invoke。例如,在步骤108中,NFC控制器将读卡响应置于发送缓冲区,并通过GPIO向NFC主机发送中断指令,并且在步骤109中REE环境创建第三安全进程TA Invoke。

然后,REE环境基于第三安全进程向安全进程控制应用发送第二通知,第二通知指示安全进程控制应用获取NFC控制器的读卡响应。例如,在步骤109中,REE HAL通过第三安全进程TA Invoke的调用,通知安全进程控制应用读取读卡响应。

作为安全进程控制应用获取NFC控制器的读卡响应的例子,在步骤110中,安全进程控制应用可以通过上述的示例一或示例二的方式,从NFC控制器读取读卡响应。

然后,安全进程控制应用获取NFC控制器的读卡响应,并且将读卡响应转发到非接触应用。作为一个示例,安全进程控制应用在获取NFC控制器的读卡响应时,创建第四安全进程TA Invoke,然后,安全进程控制应用基于第四安全进程TA Invoke,将读卡响应转发到非接触应用,并且在转发完成之后结束第四安全进程TA Invoke。

具体地,在图2B的步骤111中,安全进程控制应用将读卡响应发送给非接触应用。例如,安全进程控制应用创建第四安全进程TA Invoke,经由第四安全进程TA Invoke将读卡响应发送给非接触应用。更具体地,在将读卡响应发送给非接触应用之后,安全进程控制应用可以直接结束第四安全进程。

可替代地,在将读卡响应转发到非接触应用之后,安全进程控制应用可以向非接触应用请求读卡指令的下一读卡指令。例如,安全进程控制应用将所述读卡响应发送给非接触应用之后,请求下一条读卡指令。然后,在非接触应用未返回读卡指令的下一读卡指令时,安全进程控制应用可以结束第三安全进程,并且读卡操作结束。例如,在图2B的步骤112中,如果非接触应用未返回下一条读卡指令,则说明读卡操作结束,所以安全进程控制应用结束第三安全进程。

可替代地,在步骤113中,如果安全进程控制应用接收到下一条读卡指令,,将下一条读卡指令发送NFC控制器。然后,在图2B的步骤114中,安全进程控制应用在将下一读卡指令成功发送给NFC控制器后,结束步骤109中创建的第三安全进程TA Invoke,并且基于下一读卡指令更新所述读卡指令(即,当前读卡指令),以返回到步骤106继续执行读卡流程。如果在非接触应用未返回读卡指令的下一读卡指令的情况下,第三安全进程TA Invoke的结束指示读卡操作的结束。

下面将结合图2C详细描述和说明图2A的近场通信方法的一个例子。应理解,在本示例的近场通信方法中,安全进程控制应用与NFC控制器之间完成了HCI(Host Controller Interface)接口的配置,能够基于HCI接口进行通信。

具体地,作为REE环境接收NFC控制器发送中断指令的例子,在步骤208中,NFC控制器在检测到对端卡片后,基于HCI接口规范,产生指示卡片发现状态的数据HCI EVT_TARGET_DISCOVERED,并基于第一总线通知NFC主机。

然后,作为REE环境根据中断指令通知安全进程控制应用从NFC控制器获取卡片发现状态的例子,在步骤209中,REE环境在接收到基于第一总线的中断指令之后,通过第一安全进程TA Invoke通知安全进程控制应用NFC控制器的卡片发现状态。然后,在步骤210中,安全进程控制应用采用示例一的方式读取指示卡片发现状态的数据HCI EVT_TARGET_DISCOVERED。应理解,在其他实现方式中,安全进程控制应用还可以采用示例二的方式读取指示卡片发现状态的数据。

然后,安全进程控制应用根据卡片发现状态创建第二安全进程,并且基于第二安全进程向非接触应用请求读卡指令。例如,在步骤211中,安全进程控制应用通知非接触应用检测到卡片,并请求一读卡指令。然后,在步骤212中,非接触应用返回读卡指令,相应地,安全进程控制应用可以直接结束第二安全进程,也可以再继续请求读卡指令的下一读卡指令。如果在步骤212中非接触应用没有返回下一条读卡指令,则在步骤214中,安全进程控制应用结束第一安全进程,换言之,返回步骤209中创建的第一安全进程TA Invoke的调用。

应理解,在执行步骤214之前,安全进程控制应用向NFC控制器发送读卡指令。例如,在步骤213中,如果安全进程控制应用接收到读卡指令,则将读卡指令主动写入到NFC控制器;如果,非接触应用没有返回下一条读卡指令,则安全进程控制应用生成指示读卡操作结束通知,并且将读卡操作结束通知发送到NFC控制器,例如,基于HCI接口向NFC控制器发送读卡操作结束通知HCI EVT_END_OPERATION。

作为读卡操作的例子,在步骤215中,NFC控制器在接收到读卡指令之后,将读卡指令转发给远端卡片;如果NFC控制器接收到读卡操作结束通知HCI EVT_END_OPERATION,则读卡操作结束。

作为安全进程控制应用获取NFC控制器的读卡响应的例子,在步骤216中,远端卡片处理完读卡指令后,返回读卡响应到NFC控制器。相应地,安全进程控制应用可以采用上述的示例一或示例二的方式从NFC控制器获取读卡响应,应理解,NFC控制器采用图2B中的实现方式执行获取读卡响应之后的流程,本示例中对此不再赘述。

图3为根据本发明另一实施例的一种近场通信配置方法的步骤流程图。图3的近场通信配置方法应用于配置有REE环境和TEE环境的NFC主机,TEE环境中安装有安全进程控制应用和非接触应用,该方法包括:

S3100:安全进程控制应用从REE环境接收RF参数请求。

S3200:安全进程控制应用向非接触应用转发RF参数请求。

S3300:安全进程控制应用接收非接触应用响应RF参数请求返回的RF参数。

S3400:安全进程控制应用基于RF参数对NFC控制器进行配置。

在本发明实施例中,用于近场通信的非接触应用安装在TEE环境中,提高了与非接触应用的RF参数相关的数据处理的安全性,此外,安全进程控制应用保证了与TEE环境进行通信的安全性,从而实现了RF参数配置的安全性。

应理解,RF参数请求用于请求RF参数,RF参数用于NFC控制器执行基于RF有关的操作,RF参数包括技术与模式信息、发现频率信息等。在非接触应用被激活的情况下,非接触应用响应RF参数请求返回RF参数;在非接触应用未被激活的情况下,用于非接触应用的激活请求可以作为RF参数请求,相应地,在非接触应用被激活时,向安全进程控制应用返回RF参数。

在一些示例中,安全进程控制应用基于RF参数对NFC控制器进行配置,包括:安全进程控制应用生成RF配置指令,安全进程控制应用向NFC控制器发送RF配置指令,使NFC控制器进入RF参数配置状态,然后,安全进程控制应用基于RF参数,对处于RF参数配置状态的NFC控制器执行配置。

下面将结合图2C描述安全进程控制应用获取RF参数的例子。具体地,在步骤201中,REE环境创建第五安全进程TA Invoke,并且经由第五安全进程向安全进程控制应用发送RF参数请求。然后,在步骤202中,安全进程控制应用创建第六安全进程TA Invoke,经由第六安全进程向非接触应用转发步骤201获取到的RF参数请求。然后,在步骤203中,非接触应用将自身的RF参数返回给安全进程控制应用。例如,RF参数请求可以用于激活非接触应用,非接触应用在被激活之后,向安全进程控制应用返回RF参数。

作为生成RF配置指令的例子,安全进程控制应用所生成的RF配置指令基于与NFC控制器之间的HCI接口,换言之,安全进程控制应用基于HCI接口协议,生成RF配置指令HCI ANY_SET_PARAMETERS CMD。

然后,在步骤204中,安全进程控制应用向NFC控制器发送RF配置指令。

具体的,安全进程控制应用可以通过上述示例三的方式以RF配置指令作为目标数据写入到NFC控制器。然后,在步骤205中,接收NFC控制器基于HCI接口返回的配置响应。NFC控制器返回配置响应之后,进入到RF参数配置状态。例如,安全进程控制应用可以采用示例一或示例二的方式读取配置响应HCI ANY_OK RSP。

然后,在步骤206中,安全进程控制应用可以将RF参数发送到处于RF参数配置状态的NFC控制器,对NFC控制器进行配置。例如,安全进程控制应用可以基于HCI接口协议,将RF参数封装成RF参数事件消息HCI EVT_READER_REQUESTED,发送到NFC控制器,具体地,安全进程控制应用可以通过上述示例三的方式以RF参数事件消息作为目标数据写入到NFC控制器。

然后,在步骤207中,在安全进程控制应用对NFC控制器进行配置完成之后,安全进程控制应用结束第五安全进程TA Invoke。

在另一些示例中,安全进程控制应用基于RF参数对NFC控制器进行配置,包括:安全进程控制应用向REE环境返回RF参数,并且REE环境根据与NFC控制器之间的NCI接口,对NFC控制器进行配置。

下面将结合图2D详细描述RF配置过程。其中,图2D中的步骤301-303可以分别对应于步骤201-203,此处不再赘述。

作为安全进程控制应用向REE环境返回RF参数的例子,在步骤304中,安全进程控制应用将RF参数返回给REE环境。

作为REE环境对NFC控制器进行配置的例子,在步骤305中,REE环境将RF参数以NCI命令的形式,配置给NFCC。

应理解,在NFC控制器或安全进程控制应用经由HCI接口发送数据之前,需要对HCI接口进行初始化。

下面将结合图2F对安全进程控制应用与NFC控制器之间的HCI接口的初始化过程进行描述。

在步骤31中,REE环境向安全进程控制应用发送用于激活非接触应用的激活指令。例如,REE环境创建第七安全进程TA Invoke,经由第七安全进程TA Invoke向安全进程控制应用发送用于激活非接触应用的激活指令。

在步骤32中,安全进程控制应用将激活指令转发到非接触应用。例如,安全进程控制应用创建第八安全进程TA Invoke,经由第八安全进程TA Invoke向非接触应用发送激活指令。应理解,激活指令用于激活非接触应用,非接触应用被激活之后,生成非接触应用的应用参数。

在步骤33中,非接触应用可以向安全进程控制应用返回应用参数,例如,非接触应用可以经由第八安全进程TA Invoke向安全进程控制应用返回应用参数。应理解,文中的应用参数包括非接触应用的激活状态、非接触参数等。

在步骤34中,安全进程控制应用向NFC控制器发送HCI接口的初始化指令。例如,安全进程控制应用保存非接触应用的应用参数,在保存应用参数之后,向NFC控制器发送HCI接口的初始化指令HCI CMD。

应理解,基于HCI接口协议,HCI CMD包括但不限于诸如Get Parameter、Clear All Pipe、Open Pipe、Set Parameter等指令。

还应理解,在HCI接口初始化完成之后,非接触应用与NFC控制器之间并不存在可以直接通信的接口,这时,安全进程控制应用需要基于应用参数,确定非接触应用的状态,从而可靠地实现与非接触应用之间的数据通信,进一步在NFC控制器与非接触应用之间实现了可靠的数据转发。

在步骤35中,安全进程控制应用接收NFC控制器返回的HCI接口的初始化响应。应理解,HCI接口的初始化响应可以为根据HCI接口协议的HCI RSP,例如,安全进程控制应用在向NFC控制器发送初始化指令HCI CMD之后,可以采用上述的示例二的方式轮询地读取HCI RSP。更具体地,NFC控制器在接收到初始化指令HCI CMD之后,将HCI RSP置于缓冲区,发送到安全进程控制应用。

在步骤36中,安全进程控制应用结束HCI初始化流程。例如,安全进程控制应用向REE环境中的HAL通知结束第七安全进程TA Invoke。

图4A为根据本发明另一实施例的近场通信方法的步骤流程图。图4A的近场通信方法应用于配置有REE环境和TEE环境的NFC主机,TEE环境中安装有安全进程控制应用和非接触应用,非接触应用包括但不限于诸如支付(例如,银行卡或公交卡)、身份验证等与卡片读取或识别相关的应用。非接触应用可以为安装在电子设备中的至少一个应用程序。安全进程控制应用能够与TEE环境之外的REE环境执行基于安全进程的通信,也能够与TEE环境内的非接触应用执行基于安全进程的通信,换言之,非接触应用用于与卡片信息相关的数据处理,安全进程控制应用用于与卡片信息相关的数据通信。在一个示例中,诸如硬件抽象层(Hardware Abstraction Layer,HAL)的REE环境不允许向非接触应用请求数据或指令。非接触应用不允许向安全进程控制应用请求数据或指令。

本实施例的方案适用于NFC卡模拟模式,包括:

S4100:REE环境向安全进程控制应用通知NFC控制器的卡片被发现状态。

S4200:安全进程控制应用根据卡片被发现状态,获取NFC控制器的读卡指令到非接触应用,使非接触应用根据读卡指令生成读卡响应。

S4300:安全进程控制应用将非接触应用的读卡响应转发到NFC控制器。

在本发明实施例中,用于近场通信的非接触应用安装在TEE环境中,提高了与非接触应用的读卡指令和读卡响应相关的数据处理的安全性,此外,安全进程控制应用保证了与TEE环境进行数据通信的安全性。

应理解,卡片被发现状态指示NFC控制器被读卡设备读取。例如,NFC控制器接收到远端读卡设备的RF读取信号。另外,转发到NFC控制器的读卡响应可以被读卡设备获取,完成读卡操作。

还应理解,与NFC读卡模式类似,读卡操作可以用于支付或身份识别的场景,一次读卡可以指示一次刷卡。

图4B示出了图4A的近场通信方法的一个示例。

作为REE环境向安全进程控制应用通知卡片被发现状态的例子,REE环境接收到NFC控制器发送的卡片被发现状态时,向安全进程控制应用发送第三通知,第三通知指示安全进程控制应用从NFC控制器获取NFC控制器的读卡指令。

更具体地,在步骤401中,远端读卡器将读卡指令发送给NFC控制器,NFC控制器接收到读卡指令之后,进入卡片被发现状态。

然后,NFC控制器向REE环境通知卡片被发现状态。具体地,在步骤402中,NFC控制器将读卡指令放置在发送缓冲区,随后经由第一总线向REE环境发送中断信号,例如,拉起GPIO中断信号。换言之,采用上述的示例一的方式发送读卡指令。

然后,REE环境向安全进程控制应用发送第三通知。具体地,在步骤403中,NFC主机基于HAL创建第九安全进程TA Invoke,并且经由第九安全进程通知安全进程控制应用卡片被发现状态。更具体地,NFC控制器在发送卡片被发现状态之前,NFC控制器经由安全进程控制应用与NFC控制器之间的HCI接口,将NFC控制器的读卡指令封装成基于HCI接口的事件消息,相应地,第三通知指示安全进程控制应用从NFC控制器获取基于HCI接口的事件消息。

作为获取NFC控制器的读卡指令到非接触应用的例子,在步骤404中,安全进程控制应用基于第二总线从NFC控制器读取读卡指令,例如,安全进程控制应用发起SPI读操作,将读卡指令读出。

在步骤405中,安全进程控制应用将读卡指令转发给非接触应用处理。例如,安全进程控制应用基于第十安全进程TA Invoke向非接触应用发送读卡指令。应理解,非接触应用接收到读卡指令之后,执行相应的读卡处理,得到读卡响应。

作为安全进程控制应用转发非接触应用的读卡响应的例子,在步骤406中,非接触应用返回对应的读卡响应。例如,仍然基于上述第十安全进程TA Invoke返回读卡响应。

然后,在步骤407中,安全进程控制应用可以基于第二总线对NFC控制器执行读卡响应的写入,例如,发起SPI写操作,将读卡响应写入到NFC控制器。

然后,在步骤408中,NFC控制器接收写入操作,接收读卡响应,然后将读卡响应返回给远端读卡器。

此外,在步骤409中,在安全进程控制应用将读卡响应写入到NFC控制器后,安全进程控制应用返回步骤403中创建的第九安全进程TA Invoke。

参照图5所示出的根据本发明的另一实施例的NFC主机的结构示意图,但应理解,本发明具体实施例并不对NFC主机的具体实现方式做限定。

如图5所示,NFC主机可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。

其中:处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。

通信接口504,用于与其它电子设备或服务器进行通信。

处理器502,用于执行程序510,具体可以执行上述方法实施例中的相关步骤。

具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。

处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。

存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

程序510具体可以用于使得处理器502执行上述近场通信方法的操作。

需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。

上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的校验码生成方法。此外,当通用计算机访问用于实现在此示出的校验码生成方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的校验码生成方法的专用计算机。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。

以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献