专利名称:一种cpu 卡数据处理方法、系统及cpu 卡的制作方法
技术领域:
本申请涉及CPU卡底层数据处理领域,特别是涉及一种CPU卡数据处理方法、系统及CPU卡。
背景技术:
随着技术的发展,终端越来越多,并且功能也越来越多,相应的终端的承接相关功能的CPU(Central Processing Unit,中央处理器)卡(比如 sim卡(Subscriber Identity Module客户识别模块)等智能卡)操作指令繁多复杂,并且耗费时间,特别是移动终端,比如手机,受限与手机承接相关功能的CPU卡(比如sim卡等智能卡)的性能,现有的数据处理过程导致终端与CPU卡交互速度慢,效率低。现有技术中,CPU卡在与终端(比如手机)的交互过程中,比如处理手机的某款应用的业务逻辑的过程中,均采用收一条指令处理一条再将处理内容返回至终端,即现有技术执行的指令处理方式是CPU卡对于单次收到的指令CPU卡收到一条指令,处理该条指令,再将处理结果发送出去。但是一个业务流程对应的指令流包括多条指令,因此在CPU卡和终端需要多条的指令交互,而当出现一个完整的指令流特别是包含大量数据内容的指令流时,上述单一的收发处理过程将受限于CPU卡的性能,交互的时间就占了很大一部分业务处理的时间并导致数据交互速度较慢,影响了业务流程的处理效率。
发明内容
本申请所要解决的技术问题是提供一种CPU卡数据处理方法、系统及CPU卡,减少 CPU卡和终端的交互时间,提高业务流对应的指令流的执行效率。为了解决上述问题,本申请公开了一种CPU卡数据处理方法,其特征在于,包括预置步骤,将终端应用的各业务流程对应各指令流标识,并将所述各业务流程对应的各条指令划分为该业务流程的指令流,将所述指令流结合相应业务流程的指令流标识存储在CPU卡中;所述指令流中各条指令依据指令处理顺序依次进行存储;接收判断步骤,接收终端发送的指令,并判断所述指令是否为终端应用的带指令流标识的APDU指令;查找步骤,如果是终端应用的带指令流标识的APDU指令,则根据所述APDU指令中的指令流标识,查找CPU卡中存储的对应指令流标识的指令流;处理步骤,按照所述指令流中各条指令的存储顺序,逐条执行所述指令流中的各条指令,并将处理结果存入缓存;发送步骤,当所述指令流中最后一条指令执行完毕后,将缓存中的处理结果一起发送给终端。优选的,按照所述指令流的各条指令存储顺序,逐条执行所述指令流中的各条指令,并将处理结果存入缓存时还包括对于不需要发送到终端的指令处理结果,不将该处理结果存入缓存。
优选的,,通过以下方式判断指令的处理结果是否需要存入缓存为指令流中各条指令配置一个返回判断值,根据当前指令的返回判断值判断是否需要将该指令的处理结果存入缓存。优选的,将所述指令流结合相应业务流程的指令流标识存储在CPU卡中的方式包括将业务流程对应的指令流以TLV的结构保存在CPU卡的电可擦可编程只读存储器中,其中所述的τ代表指令流标识,L代表指令流长度,V代表指令流数据;或将业务流程对应的带有指令流标识的指令流直接编译在CPU卡的代码中。优选的,在所述的存储指令流数据的结构V中将当前指令流的各条指令按处理顺序排列,并对每条指令设置一个返回判断值。优选的,所述带指令流标识的APDU指令的发送方式包括终端发送数字短信指令到CPU卡,所述数字短信指令封装带有指令流标识的标准 APDU指令;或者终端通过特定指令通道发送带有指令流标识的自定义APDU指令到CPU卡。优选的,根据终端对于带指令流标识的APDU指令的发送方式,在CPU卡设置相应方式的解析方式处理对应业务流的指令流标识。相应的本申请还公开了一种CPU卡数据处理系统,包括预置模块,用于将终端应用的各业务流程对应各指令流标识,并将所述各业务流程对应的各条指令划分为该业务流程的指令流,将所述指令流结合相应业务流程的指令流标识存储在CPU卡中;所述指令流中各条指令依据指令处理顺序依次进行存储;接收判断模块,用于接收终端发送的指令,并判断所述指令是否为终端应用的带指令流标识的APDU指令;查找模块,用于如果是终端应用的带指令流标识的APDU指令,则根据所述APDU指令中的指令流标识,查找CPU卡中存储的对应指令流标识的指令流;处理模块,用于按照所述指令流的各条指令存储顺序,逐条执行所述指令流中的各条指令,并将处理结果存入缓存;发送模块,用于当所述指令流中最后一条指令执行完毕后,将缓存中的处理结果一起发送给终端。优选的,所述处理模块中包括返回判断模块,用于对于不需要发送到终端的指令处理结果,不将该处理结果存入缓存。相应的本申请还公开了一种CPU卡,包括接收判断模块,用于接收终端发送的指令,并判断所述指令是否为终端应用的带指令流标识的APDU指令;查找模块,用于如果是终端应用的带指令流标识的APDU指令,则根据所述APDU指令中的指令流标识,查找CPU卡中存储的对应指令流标识的指令流;所述指令流根据各业务流程对应的各条指令划分,所述指令流标识对应各业务流程及相应的指令流;所述指令流结合相应业务流程的指令流标识存储在CPU卡中;所述指令流中各条指令依据指令处理顺序依次进行存储;
处理模块,用于按照所述指令流的各条指令存储顺序,逐条执行所述指令流中的各条指令,并将处理结果存入缓存;发送模块,用于当所述指令流中最后一条指令执行完毕后,将缓存中的处理结果一起发送给终端。与现有技术相比,本申请包括以下优点本申请将对应业务流程的各条指令划分为一个完整的指令流,并设置指令流标识对应所述业务流程和指令流;然后将业务流程对应的指令流结合其指令流标识,将指令流中的各条指令按处理顺序存储在CPU卡中。CPU卡根据终端发送的指令流标识,从CPU卡内调用处理相应的标号指令流对应的多条指令,处理完毕后,CPU卡再将处理结果一起发送给终端。首先,通过本申请,终端只需发送一次指令流标识到CPU卡,即终端发送指令时只需要与卡交互一次,减少了终端发送指令时与CPU卡的交互。其次,通过本申请,CPU卡将相应指令流的指令处理完毕后再将处理结果一起发送给终端,即CPU卡只需要通过与终端交互极少次数即可接收所有的处理结果。比如,如果处理结果小于256个字节,那么CPU卡只需与终端交互一次即可将所有处理结果发送给终端,而不需要每处理一条指令就与终端交互一次。总之,本申请大大减少了终端和CPU卡的交互过程,从而节省了交互时间,提高了业务流程对应的指令流的执行效率。
图1是本申请一种CPU卡数据处理方法的流程示意图;图2是本申请优选的一种CPU卡数据处理方法的流程示意图;图3是本申请的一种CPU卡数据处理系统的结构示意图;图4是本申请的一种CPU卡的结构示意图。
具体实施例方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本申请作进一步详细的说明。参照图1,示出了本申请一种CPU卡数据处理方法的流程示意图,包括预置步骤100,将终端应用的各业务流程对应各指令流标识,并将所述各业务流程对应的各条指令划分为该业务流程的指令流,将所述指令流结合相应业务流程的指令流标识存储在CPU卡中;所述指令流中各条指令依据指令处理顺序依次进行存储。比如,终端应用的业务流程为A,对应该业务流程的各条指令为Ni,N2, N3,并且需要在CPU卡中依次处理m,N2,N3,则以WN2N3作为对应业务流程A的指令流,同时在终端将业务流程对应指令流标识TA,在CPU卡中将指令流WN2N3也对应指令流标识TA。即终端需要执行某个业务流程时,只需发送对应业务流的指令流标识,CPU卡根据接收到的指令流标识对相应的指令流进行处理,其中所述指令流对应终端的业务流程。然后,将业务流程A对应的指令流WN2N3结合指令流标识Ta存储在CPU卡中。在实际中,优选的,将所述指令流结合相应业务流程的指令流标识存储在CPU卡中的记录方式包括
6
将业务流程对应的指令流以TLV的结构保存在CPU卡的电可擦可编程只读存储器 (EEPROM, Electrically Erasable Programmable Read-Only Memory)中,其中所述的 T 代表指令流标识,L代表指令流长度,V代表指令流数据,比如TLS1M1S2M2...的格式,其中 S1M1S2M2表示指令流数据的存储形式,S值指示本条指令是否需要返回处理结果给终端,M 值表示本条指令的长度。即将业务流程对应的指令流标识及指令流以TLV的格式存入变长记录文件写入CPU卡的电可擦可编程只读存储器中。TLV是一种可变格式,TLV的意思就是 Tag标签,Length长度,Value值。Tag和Length的长度固定,一般是2或4个字节;Value 的长度由Length指定;在本申请中T代表指令流标识,L代表指令流长度,V代表指令流数据。其中,在所述的存储指令流数据的结构V中将当前指令流的各条指令按处理顺序排列,并对每条指令设置一个返回判断值。对于业务流程对应的指令流,将业务流程对应的指令流标识放置在T结构,将指令流的长度放置在L结构,将指令流的数据放置在V结构。实际中V结构为数据区,即在数据区依距处理次序存储指令流的各个指令,其存放格式可自由配置,比如数据区格式可划
分为S1M1S2M2......,其中,1表示指令流的第一条指令,2表示指令流的第二条指令,S值
指示本条指令是否需要返回处理结果给终端,M值表示本条指令的长度。对于TLV结构的记录,CPU卡可通过如下方法解析1.读取tag得到指令流标识;指针偏移,具体指针偏移量根据实际tag长度设置偏移;2.读取length得到长度;指针偏移,具体指针偏移量根据实际Length长度设置偏移;3.根据得到的长度读取value进行处理,指针指向Length+Ι的位置;即指向下一条指令流中TAG的位置;继续处理后面的TLV。在本申请中,各业务流程对应的指令流记录是按序排列存储在CPU卡的电可擦可编程只读存储器空间地址中的,而空间地址是有顺序的。以该种方式记录业务流程对应的指令流标识和指令流时,可在终端进行预个人化进行存储,即根据终端的不同软件,将其业务流程对应的指令流标识和指令流存入该TLV 结构的变长记录文件写入CPU卡的电可擦可编程只读存储器中。上述种指令流存储方式可在系统开始处理前根据终端的业务流程预置相应的带指令标识指令流记录,其中所述指令标识对应业务流程,即变长记录文件中的指令流及其标识可根据终端的要求进行修改。或者,优选的,将所述指令流结合相应业务流程的指令流标识存储在CPU卡中的记录方式包括将业务流程对应的带有指令流标识的指令流直接编译在CPU卡的代码中。本申请还可以根据终端的软件的业务流程对应的指令流标识和相应指令流,将指令流标识及相应指令流直接编译在CPU卡的代码中。在实际中,可将指令流中各条指令对应的数据直接编译在CPU卡的代码中。对于此种方式,在后续的步骤中,可根据接收到的指令流标识直接将对应的指令流依次写入CPU卡的处理区进行处理。因此该种方式可节省 CPU卡的存储空间,比如电可擦可编程只读存储器(EEPROM)的存储空间。接收步骤110,接收终端发送的指令,并判断所述指令是否为终端应用的带指令流标识的APDU指令。CPU卡接收到终端发送的指令后,首先会判断该指令是否为终端应用的带指令流标识的APDU指令,如果是则进入指令流处理过程。实际中APDU指令依次包括CLA (class,类)字节,INS (INStructic,命令)字节, 两个参数字节Pl和P2 (parameters 1 and 2),和Le字节,表示数据区的长度,APDU指令还包括数据区。CPU卡通过INS的值判断所述APDU指令是否为终端应用的带指令流标识的 APDU指令。当终端需要执行某个业务流程的时候,会将对应该业务流程的指令流标识发送给 CPU卡,CPU卡即可接收终端发送的所述指令流标识。比如手机端的某个应用需要进行读交易记录业务流程,手机端则将该业务流程对应的指令流标识发送到CPU卡,则CPU卡即可接收手机端发送的该业务流程的指令标识。在实际中,终端会将对应某业务流程的指令流标识以指令的形式发送给CPU卡。 优选的,终端发送的对应业务流的指令流标识的方式包括(1)终端发送数字短信指令到CPU卡,所述数字短信指令封装带有指令流标识的标准APDU指令。在实际中,终端的各应用软件可能需要相应手机厂商进行认证,通过认证的应用软件才能以数字短信指令的形式发送指令到CPU卡,即以标准的APDU(Application Protocol Data Unit,应用协议数据单元)格式命令的形式发送指令到CPU卡。在实际中 APDU指令通过PUDU指令的前五个字节决定APDU指令是否为标准格式指令,如果各应用软件通过了相应手机厂商的认证,那么即可发送标准的数字短信指令,即所述数字短信指令中,APDU指令的前五个字节为标准指令格式,APDU指令的数据区封装有对应业务流程的指令流标识,在数据区的任意位置规定放置指令流标识。比如A0C2000006D11122334455即为一条标准的APDU指令,APDU指令的前五个字节部分包括A0C2000006,APDU指令的数据区包括D11122334455,比如规定1122所在位置为指令流标识,其标识为1122。或者,( 者终端通过特定指令通道发送带有指令流标识的自定义APDU指令到 CPU 卡。如果终端的应用软件没有经过手机厂商认证,那么该应用软件不能发送标准格式的数字短信指令。此时可根据实际情况自定义APDU指令,终端通过特定指令通道将自定义APDU指令发送给CPU卡,该指令带有对应业务流程的指令流标识。比如通过更新电话簿 (6F3A文件)的方式将自定义APDU指令发送给CPU卡。对于将自定义APDU指令发送给CPU 卡的方式可以有多种,本申请不加以限制。在实际中,一般将指令流标识放置在APDU指令的前五个字节中的参数区。实际中 APDU指令依次包括CLA (class,类)字节,INS (INStructic,命令)字节,两个参数字节Pl 和P2 (parameters land 2),和L。字节,表示数据区的长度,则终端的应用软件可以纯下发自定义APDU指令的形式将业务流程对应的指令流标识发送给CPU卡,比如A9⑶000100,其中CLA字节为A9,INS字节为⑶,参数字节为0001,00表示发送给CPU卡的数据区数据的长度,其中01即为对应业务流程的指令流标识。查找步骤120,如果是终端应用的带指令流标识的APDU指令,则根据所述APDU指令中的指令流标识,查找CPU卡中存储的对应指令流标识的指令流。
如果CPU卡收到的指令是终端应用的带指令流标识的APDU指令,即CPU卡获得终端的对应业务流程的指令流标识后,根据指令流标识在指令流记录中查找对应指令流,其中所述指令流记录中包括带有指令流标识的指令流。即对应业务流程的指令流在CPU卡进行预个人化时(即步骤100中)是以对应业务流程的指令流标识为查找的标识进行存储的。在本申请中,对于将业务流程对应的指令流以TLV的结构保存在CPU卡的电可擦可编程只读存储器中的存储方式,各业务流程对应的指令流记录是按序排列存储在CPU卡的电可擦可编程只读存储器空间地址中的,而空间地址是有顺序的。在CPU卡接收到指令流标识后,从指定的排头地址开始(其指令流存储的排头地址可根据实际情况指定), 将指令流标识与指令流记录中的指令流标识进行匹配,如果未匹配上,则跳到指令流记录中下一个指令流标识进行匹配,直至匹配上,然后将匹配上的指令流标识对应的指令流调到处理区转入步骤130进行处理。比如CPU卡中内存空间地址中的指令流记录排列为
T1L1V1T2L2V2T3L3V3......,CPU卡收到的指令流标识为T2,则CPU卡首先将T2与T1进行匹配,
发现没匹配上,则指针根据该指令流的长度L1指向下一个指令流标识T2,发现匹配上,则将该指令流记录的指令流数据V2调到处理区转入步骤130进行处理。而对于将业务流程对应的带有指令流标识的指令流直接编译在CPU卡的代码中这种存储方式,直接在CPU卡的代码中相应位置查询对应指令流标识的指令流。另外,根据终端对于带指令流标识的APDU指令的发送方式,在CPU卡设置相应方式的解析方式处理对应业务流的指令流标识。比如根据前述(1)终端发送数字短信指令到CPU卡,所述数字短信指令封装带有指令流标识的标准APDU指令。根据该数字短信指令的规定,CPU提取该标准APDU指令中规定位置的数据,即为指令流标识。比如前述例子中A0C2000006D11122334455,其中指令流标识为1122,则CPU卡对数字短信指令提取指令流标识的位置为1122所在位置。比如对于前述( 者终端通过特定指令通道发送带有指令流标识的自定义APDU 指令到CPU卡。则提取所述指令中规定参数位置的值,即为指令流标识。比如A9⑶000100, 其中01为指令流标识,则CPU卡提取指令流标识的位置为01所在的位置。处理步骤130,按指令流顺序逐个执行所述指令流中的各条指令,并将处理结果存入缓存。当步骤120查找到与指令流标识相应的指令流后,对于指令流中的各个指令,按顺序逐个执行,并将处理结果放入缓存。在实际中,对于终端不需要的指令处理结果,可不将该处理结果存入缓存,也即可不发送给终端。比如查询余额这个业务流程对应的指令流有两个指令00A40000023F01和 805C000204,当步骤120中CPU卡根据该业务流程的指令流标识查到该指令流后,CPU卡首先处理00A40000023F01指令去选择3F01文件,再处理805C000204指令查询余额,其中 00A40000023F01指令选择文件的处理结果FCI信息并不是终端必须要的(在实际中,是根据终端的软件需不需要确认CPU卡的处理结果是否返回给终端,即是否是终端需要的),则可不将该信息存入缓存,即可不将该处理结果返回终端。在实际中,可为指令流中各条指令配置一个返回判断值,根据当前指令的返回判断值判断是否需要将该指令的处理结果存入缓存。比如前述以TLV结构进行记录时,在数据区对每条指令配置一个S值,S为00时表示不需要返回处理结果给终端,S为01时标识需要返回处理结果给终端。在实际中,针对以TLV结构存储在内存中的指令流记录,当CPU卡在步骤120中查找到对应指令流标识的指令流后,将该指令流的的各条指令提取出放入缓存,然后再从缓存中逐个提取指令放入处理区执行。针对直接写在CPU代码中的指令流记录,当CPU卡在步骤120中查找到代码中的指令流后,将其中的指令的数据直接写入处理区执行。发送步骤140,当所述指令流的各条指令执行完毕后,将缓存中的处理结果一起发送给终端。对于在CPU卡缓存中处理结果的放置位置可以根据实际需求规定,比如处理结果放置的位置可于CPU卡的发送缓存区复用,即先将处理结果放入发送缓存区,在需要发送时再将发送缓存区的处理结果依次排序再一起发送给终端。在实际中,如果处理结果小于 256个字节,那么CPU卡只需与终端交互一次即可将所有处理结果发送给终端,而不需要每处理一条指令就与终端交互一次。参照图2,其示出了本申请优选的一种CPU卡数据处理方法的流程示意图。系统开始工作后步骤Al,CPU卡首先接收终端的指令并判断是否为终端应用的带有指令流标识的 APDU指令。步骤A2,将接收到APDU指令中的指令流标识与CPU卡内指令流记录中的指令流的指令流标识进行匹配;如果未匹配上,转入步骤A3 ;如果匹配上,转入步骤A4。步骤A3,根据指令流长度指向下一条指令流,并转入步骤A2。比如记录文件结构为T1L1SlMiszicT2L2SlMisziCT3L3SlMlSziC,当步骤Al接收到的指令流标识为T2,T2首先第一条指令流的指令流标识T1匹配,未匹配上,然后根据第一条指令流的长度L1指向下一条指令流,与下一条指令流的指令流标识T2进行匹配。 步骤A4,从CPU卡内对出对应指令流标识的指令流。比如将存储在CPU卡EEPROM存储器中的对于指令流标识的指令流取出放入CPU 卡的处理区。步骤A5,按顺序逐个执行指令流中的指令。步骤A6,判断当前执行的指令的S值是否为01 ;如果不是,则转入步骤A5继续执行下一个指令;如果是则转入步骤A7。其中,当所述S值为01时表示当前指令的处理结果需要返回到终端。步骤A7,将当前指令的处理结果放入缓存(其中存放处理结果的缓存可与发送缓存区复用)。步骤A8,判断执行完当前指令后整个业务流程对应的指令流是否执行完毕;如果不是,转入步骤A5执行下一个指令;如果是,则转入步骤A9。步骤A9,将步骤A7中存入缓存中的处理结果依次放入发送缓存区,并发送给终端。整个业务流程处理完毕后即可结束本次业务流程CPU卡与终端的交互。参照图3,其示出了本申请一种CPU卡数据处理系统的结构示意图,包括预置模块200,用于将终端应用的各业务流程对应各指令流标识,并将所述各业务流程对应的各条指令划分为该业务流程的指令流,将所述指令流结合相应业务流程的指令流标识存储在CPU卡中;所述指令流中各条指令依据指令处理顺序依次进行存储;接收判断模块210,用于接收终端发送的指令,并判断所述指令是否为终端应用的带指令流标识的APDU指令;查找模块220,用于如果是终端应用的带指令流标识的APDU指令,则根据所述 APDU指令中的指令流标识,查找CPU卡中存储的对应指令流标识的指令流;处理模块230,用于按照所述指令流的各条指令存储顺序,逐条执行所述指令流中的各条指令,并将处理结果存入缓存;发送模块M0,用于当所述指令流中最后一条指令执行完毕后,将缓存中的处理结果一起发送给终端。其中,所述处理模块中包括返回判断模块,用于对于不需要发送到终端的指令处理结果,不将该处理结果存入缓存。参照图4,其示出了本申请一种CPU卡,包括接收判断模块310,用于接收终端发送的指令,并判断所述指令是否为终端应用的带指令流标识的APDU指令;查找模块320,用于如果是终端应用的带指令流标识的APDU指令,则根据所述 APDU指令中的指令流标识,查找CPU卡中存储的对应指令流标识的指令流;所述指令流根据各业务流程对应的各条指令划分,所述指令流标识对应各业务流程及相应的指令流;所述指令流结合相应业务流程的指令流标识存储在CPU卡中;所述指令流中各条指令依据指令处理顺序依次进行存储;处理模块330,用于按照所述指令流的各条指令存储顺序,逐条执行所述指令流中的各条指令,并将处理结果存入缓存;发送模块340,用于当所述指令流中最后一条指令执行完毕后,将缓存中的处理结果一起发送给终端。其中,所述处理模块中包括返回判断模块,用于对于不需要发送到终端的指令处理结果,不将该处理结果存入缓存。本申请可用于众多通用或专用的计算系统环境或配置中。例如手持设备或便携式设备、平板型设备等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。以上对本申请所提供的一种CPU卡数据处理方法、系统及CPU卡,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
权利要求
1.一种CPU卡数据处理方法,其特征在于,包括预置步骤,将终端应用的各业务流程对应各指令流标识,并将所述各业务流程对应的各条指令划分为该业务流程的指令流,将所述指令流结合相应业务流程的指令流标识存储在CPU卡中;所述指令流中各条指令依据指令处理顺序依次进行存储;接收判断步骤,接收终端发送的指令,并判断所述指令是否为终端应用的带指令流标识的APDU指令;查找步骤,如果是终端应用的带指令流标识的APDU指令,则根据所述APDU指令中的指令流标识,查找CPU卡中存储的对应指令流标识的指令流;处理步骤,按照所述指令流中各条指令的存储顺序,逐条执行所述指令流中的各条指令,并将处理结果存入缓存;发送步骤,当所述指令流中最后一条指令执行完毕后,将缓存中的处理结果一起发送给终端。
2.根据权利要求1所述的方法,其特征在于,按照所述指令流的各条指令存储顺序,逐条执行所述指令流中的各条指令,并将处理结果存入缓存时还包括对于不需要发送到终端的指令处理结果,不将该处理结果存入缓存。
3.根据权利要求2所述的方法,其特征在于,通过以下方式判断指令的处理结果是否需要存入缓存为指令流中各条指令配置一个返回判断值,根据当前指令的返回判断值判断是否需要将该指令的处理结果存入缓存。
4.根据权利要求3所述的方法,其特征在于,将所述指令流结合相应业务流程的指令流标识存储在CPU卡中的方式包括将业务流程对应的指令流以TLV的结构保存在CPU卡的电可擦可编程只读存储器中, 其中所述的T代表指令流标识,L代表指令流长度,V代表指令流数据;或将业务流程对应的带有指令流标识的指令流直接编译在CPU卡的代码中。
5.根据权利要求4所述的方法,其特征在于,在所述的存储指令流数据的结构V中将当前指令流的各条指令按处理顺序排列,并对每条指令设置一个返回判断值。
6.根据权利要求1所述的方法,其特征在于,所述带指令流标识的APDU指令的发送方式包括终端发送数字短信指令到CPU卡,所述数字短信指令封装带有指令流标识的标准APDU 指令;或者终端通过特定指令通道发送带有指令流标识的自定义APDU指令到CPU卡。
7.根据权利要求6所述的方法,其特征在于根据终端对于带指令流标识的APDU指令的发送方式,在CPU卡设置相应方式的解析方式处理对应业务流的指令流标识。
8.—种CPU卡数据处理系统,其特征在于,包括预置模块,用于将终端应用的各业务流程对应各指令流标识,并将所述各业务流程对应的各条指令划分为该业务流程的指令流,将所述指令流结合相应业务流程的指令流标识存储在CPU卡中;所述指令流中各条指令依据指令处理顺序依次进行存储;接收判断模块,用于接收终端发送的指令,并判断所述指令是否为终端应用的带指令流标识的APDU指令;查找模块,用于如果是终端应用的带指令流标识的APDU指令,则根据所述APDU指令中的指令流标识,查找CPU卡中存储的对应指令流标识的指令流;处理模块,用于按照所述指令流的各条指令存储顺序,逐条执行所述指令流中的各条指令,并将处理结果存入缓存;发送模块,用于当所述指令流中最后一条指令执行完毕后,将缓存中的处理结果一起发送给终端。
9.根据权利要求8所述的系统,其特征在于,所述处理模块中包括返回判断模块,用于对于不需要发送到终端的指令处理结果,不将该处理结果存入缓存。
10.一种CPU卡,其特征在于,包括接收判断模块,用于接收终端发送的指令,并判断所述指令是否为终端应用的带指令流标识的APDU指令;查找模块,用于如果是终端应用的带指令流标识的APDU指令,则根据所述APDU指令中的指令流标识,查找CPU卡中存储的对应指令流标识的指令流;所述指令流根据各业务流程对应的各条指令划分,所述指令流标识对应各业务流程及相应的指令流;所述指令流结合相应业务流程的指令流标识存储在CPU卡中;所述指令流中各条指令依据指令处理顺序依次进行存储;处理模块,用于按照所述指令流的各条指令存储顺序,逐条执行所述指令流中的各条指令,并将处理结果存入缓存;发送模块,用于当所述指令流中最后一条指令执行完毕后,将缓存中的处理结果一起发送给终端。
全文摘要
本申请提供了一种CPU卡数据处理方法、系统及CPU卡,涉及CPU卡底层数据处理领域。本申请将对应业务流程的各条指令划分为一个完整的指令流,并设置指令流标识对应所述业务流程和指令流;然后将业务流程对应的指令流结合其指令流标识,将指令流中的各条指令按处理顺序存储在CPU卡中。CPU卡根据终端发送的指令流标识,调用处理相应的标号指令流对应的多条指令,处理完毕后,CPU卡再将处理结果一起发送给终端。通过本申请,终端只需发送一次指令流标识到CPU卡,即终端发送指令时只需要与卡交互一次,并且CPU卡将相应指令流的指令处理完毕后再将处理结果一起发送给终端,减少了终端和CPU卡的交互过程,节省了交互时间,提高了业务流程对应的指令流的执行效率。
文档编号G06F9/46GK102541639SQ20111044267
公开日2012年7月4日 申请日期2011年12月26日 优先权日2011年12月26日
发明者赵昊 申请人:北京握奇数据系统有限公司