一种近距离通信的控制方法、装置及移动终端与流程

文档序号:12490102阅读:643来源:国知局
一种近距离通信的控制方法、装置及移动终端与流程

本发明涉及近距离通信技术领域,尤其涉及一种近距离通信的控制方法、装置及移动终端。



背景技术:

随着集成电路技术的飞速发展,移动终端的处理能力不断增强;随着网络、通信技术的不断进步,移动终端的应用场景也更加丰富,移动终端正在从简单的通话工具变为一个综合信息处理平台。移动终端集成了越来越多的功能,近距离通信(Near Field Communication,NFC)就是其中一种。利用NFC功能,用户不再需要随身携带公交卡、地铁卡,甚至银行卡,只要携带移动终端就可以随意出行。该功能不仅需要移动终端本身支持NFC功能,也需要例如用户识别模块(SIM:Subscriber Identity Module)卡或通用用户识别模块(USIM:Universal Subscriber Identity Module)卡的智能卡支持NFC功能。带有NFC功能的USIM/SIM卡中保存了公交卡信息,或是地铁卡信息,甚至是银行卡信息,当需要获取这些信息时,终端通过应用层和USIM/SIM卡进行交互,读取需要的数据,或是更改相应的数据。为了将这些数据和USIM/SIM卡中传统通信的数据分开,现有技术中通过通道将NFC通信和传统通信做了区分。移动终端的协议栈部分充当通道进行应用层和USIM/SIM卡之间的直接交互。移动终端在进行传统通信时,在主通道上对卡进行读取、写入等操作,而在进行NFC通信时,则在逻辑通道中与卡进行交互。

在现有的设计中,移动终端作为读卡器,移动终端协议栈部分仅仅作为通道而不做其他任何处理。这样的设计虽然从一定程度上保证了NFC功能与电信 规定的通信过程互不影响,但是当移动终端需要同时通过电信通信和NFC通信对USIM/SIM卡进行操作时,由于USIM/SIM卡是一个串行通信器件,其无法同时进行这两者的操作,因此传统电信通信和NFC通信的实现势必存在冲突,同时,当应用层需要在多个逻辑通道上同时对USIM/SIM卡进行操作时,多个NFC通信也会互相影响。

在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:

当在逻辑通道上通过NFC通信与卡进行数据交互时,该数据交互可能会被主通道上的传统通信所打断,也有可能被其他逻辑通道上的NFC通信所打断,从而导致无法进行完整的数据交互,影响该NFC通信。



技术实现要素:

本发明提供一种NFC通信的控制方法、装置及移动终端,能够保证正在进行的NFC通信不被传统通信和其他NFC通信所打断,保护数据不被丢失,加快NFC应用通信中的数据读取。

一方面,本发明提供一种NFC通信的控制方法,包括:

接收应用层发送的获取智能卡上与NFC通信相关的数据的指令;

分批向所述智能卡发送相应的指令以获取与所述NFC通信相关的数据,并将所述智能卡每次所返回的结果进行保存,直到通过所返回的结果判断所述智能卡上不存在可读取的与所述NFC通信相关的数据;

在判断所述智能卡上不存在可读取的与所述NFC通信相关的数据之后,将每次所保存的所述智能卡所返回的结果分批上报给应用层,

其中,在接收所述获取智能卡上与所述NFC通信相关的数据的指令后,如果又收到访问所述智能卡的其他指令,则控制所述其他指令的处理进行等待,直到判断所述智能卡上不存在可读取的与所述NFC通信相关的数据后,才处理 所述其他指令。

可选地,当所述其他指令为多个时,所述处理所述其他指令的步骤包括:按照接收所述其他指令的先后顺序,依次处理所述其他指令。

可选地,所述分批向所述智能卡发送相应的指令以获取与所述NFC通信相关的数据,并将所述智能卡每次所返回的结果进行保存,直到通过所返回的结果判断所述智能卡上不存在可读取的与所述NFC通信相关的数据的步骤包括:

将所接收的所述获取智能卡上与所述NFC通信相关的数据的指令发送到所述智能卡;

接收所述智能卡返回的状态字;

判断所述状态字是否指示所述智能卡上存在可读取的与所述NFC通信相关的数据,如果是,保存所述状态字,分批向所述智能卡发送相应的指令以获取与所述NFC通信相关的数据和状态字并进行保存,直到判断所获取的状态字指示所述智能卡上不存在可读取的与所述NFC通信相关的数据。

可选地,所述分批向所述智能卡发送相应的指令以获取与所述NFC通信相关的数据和状态字并进行保存,直到判断所获取的状态字指示所述智能卡上不存在可读取的与所述NFC通信相关的数据的步骤包括:

根据所接收的状态字向智能卡发送相应的指令,获取与所述NFC通信相关的数据和状态字;

保存所获取的数据和状态字;

判断所获取的状态字是否指示所述智能卡上存在可读取的与所述NFC通信相关的数据;

如果是,重复前面的步骤,直到判断所获取的状态字指示所述智能卡上不存在可读取的与所述NFC通信相关的数据。

可选地,所述将每次所保存的所述智能卡所返回的结果分批上报给应用层的步骤包括:

向应用层上报第一次所保存的状态字,在每次接收到应用层发送的获取数据和相应状态字的指令后,根据应用层的指令向应用层上报所保存的数据和相应状态字。

可选地,所述将所述智能卡每次所返回的结果进行保存的步骤包括:将所述智能卡每次所返回的结果依次保存在对应于所述NFC通信的同一链表中。

另一方面,本发明提供一种NFC通信的控制装置,包括:

第一接收模块,用于接收应用层发送的获取智能卡上与NFC通信相关的数据的指令;

第一发送模块,用于分批向所述智能卡发送相应的指令以获取与所述NFC通信相关的数据,直到判断模块判断所述智能卡上不存在可读取的与所述NFC通信相关的数据;

第二接收模块,用于接收所述智能卡每次响应于第一发送模块发送的相应的指令而返回的结果;

保存模块,用于保存所述智能卡每次响应于第一发送模块发送的相应的指令而返回的结果;

判断模块,用于利用第二接收模块每次所返回的结果判断所述智能卡上是否存在可读取的与所述NFC通信相关的数据;

第二发送模块,用于在所述判断模块判断所述智能卡上不存在可读取的与所述NFC通信相关的数据之后,将每次所保存的所述智能卡所返回的结果分批上报给应用层;

控制模块,用于在所述第一接收模块接收所述获取智能卡上与所述NFC通 信相关的数据的指令后,当又收到访问所述智能卡的其他指令时,控制所述其他指令的处理进行等待,并且控制所述其他指令的处理在判断所述智能卡上不存在可读取的与所述NFC通信相关的数据后才开始进行。

可选地,当所述其他指令为多个时,所述控制模块用于按照接收所述其他指令的先后顺序,依次处理所述其他指令

可选地,所述第一发送模块用于将所接收的所述获取智能卡上与所述NFC通信相关的数据的指令发送到所述智能卡;所述第二接收模块用于接收所述智能卡返回的状态字;所述判断模块用于判断所述状态字是否指示所述智能卡上存在可读取的与所述NFC通信相关的数据;所述保存模块用于保存智能卡返回的状态字;所述第二发送模块用于在所述判断模块判断所述状态字指示所述智能卡上存在可读取的与所述NFC通信相关的数据之后,分批向所述智能卡发送相应的指令以获取与所述NFC通信相关的数据和状态字,直到所述判断模块判断所获取的状态字指示所述智能卡上不存在可读取的与所述NFC通信相关的数据。

可选地,所述第二发送模块,用于根据所接收的状态字向智能卡发送相应的指令;所述第二接收模块,用于获取与所述NFC通信相关的数据和状态字;所述保存模块,用于保存所获取的数据和状态字。

可选地,所述第二发送模块用于向应用层上报第一次所保存的状态字,在每次接收到应用层发送的获取数据和相应状态字的指令后,根据应用层的指令向应用层上报所保存的数据和相应状态字。

可选地,所述保存模块用于将所述智能卡每次所返回的结果依次保存在对应于所述NFC通信的同一链表中。

再一方面,本发明提供一种移动终端,其包括所述NFC通信的控制装置。

本发明提供的NFC通信的控制方法、装置及移动终端,当NFC通信过程需要多次和智能卡进行交互时,协议栈不再仅仅作为应用层和智能卡之间进行交互的通道,而是参与其中,在收到应用层的指令后,阻止其他指令的进入,并充当应用层和智能卡进行交互,保存智能卡每次所返回的数据,直至智能卡告诉此过程结束;之后,协议栈将所保存的从智能卡获得的数据发送给应用层,在协议栈和应用层交互时,其它指令也可以和卡交互,完全不影响此次NFC通信过程。与现有技术相比,本发明通过将协议栈和智能卡、应用层和协议栈分开进行多次交互,将协议栈作为应用层获取智能卡数据的缓存池,从而能够保证正在进行的NFC通信不被传统通信和其他NFC通信所打断,避免了数据的丢失,并加快了数据的读取。

附图说明

图1为本发明一实施例提供的NFC通信的控制方法的流程图;

图2为本发明另一实施例提供的NFC通信控制方法的流程图;

图3为本发明又一实施例提供的NFC通信控制方法的流程图;

图4为本发明实施例提供的一种NFC通信的控制装置的结构示意图;

图5为本发明实施例提供的一种移动终端的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明实施例提供一种近距离通信的控制方法,如图1所示,所述方法包括:

S101、接收应用层发送的获取智能卡上与某个NFC通信相关的数据的指令;

S102、分批向智能卡发送指令以获取所述与该NFC通信相关的数据,并将智能卡每次所返回的结果进行保存,直到通过所返回的结果判断智能卡上不存在可读取的与该NFC通信相关的数据;

S103、判断智能卡上不存在可读取的与该NFC通信相关的数据之后,将所保存的智能卡所返回的结果分批上报给应用层,

S104、在步骤S102进行期间,如果又收到访问智能卡的其他指令,则控制其他指令的处理进行等待,直到判断智能卡上不存在可读取的与该NFC通信相关的数据后,才开始处理其他指令。

当上述其他指令为多个时,可以按照接收其他指令的先后顺序,顺序处理其他指令。其中,所述其他指令可以为来自逻辑通道的与NFC通信相关的指令,也可以为来自主通道的与传统通信相关的指令。

优选地,将所保存的智能卡所返回的结果分批上报给应用层的步骤包括:向应用层上报第一次所保存的结果,在每次接收到应用层发送的指令后,根据应用层的指令向应用层上报后续每次所保存的结果。

本发明实施例提供的近距离通信的控制方法,当NFC通信过程需要多次和智能卡进行交互时,协议栈不再仅仅作为应用层和智能卡之间进行交互的通道,而是参与其中,在收到应用层的指令后,阻止其他指令的进入,并充当应用层和智能卡进行交互,保存智能卡每次所返回的数据,直至智能卡告诉此过程结束;之后,协议栈将所保存的从智能卡获得的数据发送给应用层,在协议栈和应用层交互时,其它指令也可以和卡交互,完全不影响此次NFC通信过程。与现有技术相比,本发明通过将协议栈和智能卡、应用层和协议栈分开进行多次交互,将协议栈作为应用层获取智能卡数据的缓存池,从而能够保证正在进行 的NFC通信不被传统通信和其他NFC通信所打断,避免了数据的丢失,并加快了数据的读取。

本发明实施例还提供一种近距离通信的控制方法。在本实施例中,当NFC通信正在对智能卡进行操作时,传统通信也需要访问智能卡。如图2所示,所述近距离通信的控制方法包括:

S201、移动终端的应用层在逻辑通道上向智能卡发送指令,获取智能卡上某个NFC通信所需要的数据,此处,所述智能卡可以为USIM卡或SIM卡,该数据例如可以为余额信息、扣费信息等。

S202、协议栈在收到上述指令后,将该指令传送到智能卡。

S203、智能卡在收到应用层所发送的指令后,通过返回状态字告知应用层所述指令的执行情况,从而使得应用层知道下一步需要做什么。

在NFC通信中,最主要用到的状态字就是过程字节61XX和9FXX,其中,61XX是USIM卡的过程字节,而9FXX是SIM卡的过程字节,两者均表示智能卡上存在可读取的有效数据。例如USIM卡发送过程字节“61XX”时,其表明卡上尚有XX字节的数据可以返回。

S204、协议栈在接收到智能卡返回的状态字之后,判断状态字是否指示智能卡中存在可读取的有效数据。

例如,判断状态字是否为过程字节61XX或9FXX。当协议栈判断状态字不是过程字节61XX或9FXX时,将状态字上报给应用层,使得应用层根据上报的状态字,结束流程。

S205、当协议栈判断状态字是过程字节61XX或9FXX时,则将状态字进行保存。

S206、协议栈发送相应指令给智能卡,获取智能卡返回的数据和状态字。

S207、协议栈将智能卡返回的数据和状态字进行保存。

S208、协议栈判断所获取的状态字是否为过程字节61XX或9FXX,如果是,则返回步骤S206。

S209、如果协议栈判断所获取的状态字不是过程字节61XX或9FXX,将第一次所保存的状态字上报给应用层,这里,第一次所保存的状态字为过程字节61XX或9FXX。

S210、应用层接收协议栈所上报的状态字并进行处理,判断所述状态字是否为过程字节61XX或9FXX,如果否,则结束流程。

S211、如果应用层判断所述状态字是过程字节61XX或9FXX,则继续向协议栈发送指令获取数据和状态字,并对接收到的数据进行处理,直到判断所获得的状态字不是过程字节61XX或9FXX。

S212、协议栈根据应用层的指令上报其保存的数据和相应的状态字。

S213、在步骤S203至S209进行期间,若接收到来自主通道的需要访问智能卡的传统通信的指令,例如来自网络的需要通过智能卡进行鉴权的指令,则使得传统通信的指令进行等待,直到协议栈判断其所接收的来自智能卡的状态字不是过程字节61XX或9FXX时,即协议栈判断智能卡上不再存在可读取的有效数据时,才开始处理传统通信的。

其中,协议栈可以将每次所接收的来自智能卡上的状态字或数据和状态字按照接收的先后顺序保存在一个链表中,从而保证在应用层和协议栈交互时,能够顺序从链表中将数据和状态在发送给应用层。

本发明实施例还提供一种近距离通信的控制方法。在本实施例中,当一个NFC通信正在对智能卡进行操作时,另外一个NFC通信也发出对智能卡进行操作的指令。如图3所示,所述近距离通信的控制方法包括:

S301~S312、与上述步骤S201~S212相同,在此不再赘述。

S313、在步骤S303至S309进行期间,若接收到来自另一路逻辑通道上的需要访问智能卡的指令,则使得另一路逻辑通道上的指令进行等待,直到协议栈判断其所接收的来自智能卡的状态字不是过程字节61XX或9FXX时,即协议栈判断智能卡上不再存在可读取的与在先NFC通信相关的数据时,才开始处理来自另一路逻辑通道上的指令。对另一路逻辑通道上的指令的处理按照与前面基本相同的流程进行。同理,如果有更多路的逻辑通道的指令在进行等待,则按照各路逻辑通道上的指令到达的先后顺序,按照基本相同的流程依次进行指令的处理。

其中,协议栈可以根据不同的逻辑通道,保存各自的数据和状态字,逻辑通道之间互不影响。可选的,协议栈可以通过不同的链表来保存不通逻辑通道上的数据和状态字。例如,有3个逻辑通道对智能卡的操作存在时间的重叠,则需要3个保存数据的链表。

其中,当NFC通信正在对智能卡进行操作,协议栈又收到来自主通道的与传统通信相关的指令和来自其他路逻辑通道的与NFC通信相关的访问智能卡的指令,则协议栈在确认智能卡上不再存在可读取的与第一路NFC通信相关的数据时,才开始按照后续指令到达的先后顺序来依次处理后续指令。当然,后续指令不限于两路。

本发明实施例还提供一种NFC通信的控制装置,如图4所示,所述装置包括:

第一接收模块101,用于接收应用层发送的获取智能卡上与NFC通信相关的数据的指令;

第一发送模块102,用于分批向智能卡发送相应的指令以获取与所述NFC 通信相关的数据,直到判断模块105判断智能卡上不存在可读取的与所述NFC通信相关的数据;

第二接收模块103,用于接收智能卡每次响应于第一发送模块102发送的相应的指令而返回的结果;

保存模块104,用于保存智能卡每次响应于第一发送模块102发送的相应的指令而返回的结果;

判断模块105,用于利用第二接收模块103每次所返回的结果判断智能卡上是否存在可读取的与所述NFC通信相关的数据;

第二发送模块106,用于在判断模块105判断智能卡上不存在可读取的与所述NFC通信相关的数据之后,将每次所保存的智能卡所返回的结果分批上报给应用层;

控制模块107,用于在第一接收模块101接收所述获取智能卡上与所述NFC通信相关的数据的指令后,当又收到访问智能卡的其他指令时,控制所述其他指令的处理进行等待,并且控制所述其他指令的处理在判断智能卡上不存在可读取的与所述NFC通信相关的数据后才开始进行。

本发明提供的NFC通信的控制装置,当NFC通信过程需要多次和智能卡进行交互时,协议栈不再仅仅作为应用层和智能卡之间进行交互的通道,而是参与其中,在收到应用层的指令后,阻止其他指令的进入,并充当应用层和智能卡进行交互,保存智能卡每次所返回的数据,直至智能卡告诉此过程结束;之后,协议栈将所保存的从智能卡获得的数据发送给应用层,在协议栈和应用层交互时,其它指令也可以和卡交互,完全不影响此次NFC通信过程。与现有技术相比,本发明通过将协议栈和智能卡、应用层和协议栈分开进行多次交互,将协议栈作为应用层获取智能卡数据的缓存池,从而能够保证正在进行的NFC 通信不被传统通信和其他NFC通信所打断,避免了数据的丢失,并加快了数据的读取。

当所述其他指令为多个时,控制模块107用于按照接收所述其他指令的先后顺序,依次处理所述其他指令。

进一步地,第一发送模块102用于将所接收的获取智能卡上与所述NFC通信相关的数据的指令发送到智能卡;第二接收模块103用于接收智能卡返回的状态字;判断模块105用于判断所述状态字是否指示智能卡上存在可读取的与所述NFC通信相关的数据。

可选地,当状态字为过程字节61XX或9FXX时,表示所述智能卡中存在可读取的与所述NFC通信相关的数据,当状态字不为过程字节61XX或9FXX时,表示所述智能卡中不存在可读取的与所述NFC通信相关的数据;

更进一步地,保存模块104用于保存智能卡返回的状态字;第二发送模块106用于在判断模块判断所述状态字指示智能卡上存在可读取的与所述NFC通信相关的数据之后,即判断所述状态字不是过程字节61XX或9FXX时,分批向智能卡发送相应的指令以获取与所述NFC通信相关的数据和状态字,直到判断模块105判断所获取的状态字指示智能卡上不存在可读取的与所述NFC通信相关的数据,即判断所述状态字是过程字节61XX或9FXX。

更进一步地,第二发送模块106用于根据所接收的状态字向智能卡发送相应的指令,第二接收模块103用于获取与所述NFC通信相关的数据和状态字,保存模块104用于保存所获取的数据和状态字。

更进一步地,第二发送模块106用于向应用层上报第一次所保存的状态字,在每次接收到应用层发送的获取数据和相应状态字的指令后,根据应用层的指令向应用层上报所保存的数据和相应状态字。

再进一步地,保存模块104用于将智能卡每次所返回的结果依次保存在对应于所述NFC通信的同一链表中。当有多个逻辑通道上的NFC通信先后访问智能卡时,不同的链表对应于不同的逻辑通道。

如图5所示,本发明实施例还提供一种移动终端,所述移动终端包括应用层和与智能卡的接口,所述移动终端还包括上述实施例中所述的NFC通信的控制装置。

本发明实施例中的移动终端可以为手机、可穿戴设备、PAD等,但不仅限于此。本发明实施例中的智能卡可以为SIM卡或USIM卡,但不仅限于此。

本发明实施例近距离通信的控制方法、装置及移动终端,可以适用于对移动终端的NFC通信进行控制,但不仅限于此。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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