專利名稱:一種cpu 卡數(shù)據(jù)處理方法、系統(tǒng)及cpu 卡的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及CPU卡底層數(shù)據(jù)處理領(lǐng)域,特別是涉及一種CPU卡數(shù)據(jù)處理方法、系統(tǒng)及CPU卡。
背景技術(shù):
隨著技術(shù)的發(fā)展,終端越來越多,并且功能也越來越多,相應(yīng)的終端的承接相關(guān)功能的CPU(Central Processing Unit,中央處理器)卡(比如 sim卡(Subscriber Identity Module客戶識(shí)別模塊)等智能卡)操作指令繁多復(fù)雜,并且耗費(fèi)時(shí)間,特別是移動(dòng)終端,比如手機(jī),受限與手機(jī)承接相關(guān)功能的CPU卡(比如sim卡等智能卡)的性能,現(xiàn)有的數(shù)據(jù)處理過程導(dǎo)致終端與CPU卡交互速度慢,效率低。現(xiàn)有技術(shù)中,CPU卡在與終端(比如手機(jī))的交互過程中,比如處理手機(jī)的某款應(yīng)用的業(yè)務(wù)邏輯的過程中,均采用收一條指令處理一條再將處理內(nèi)容返回至終端,即現(xiàn)有技術(shù)執(zhí)行的指令處理方式是CPU卡對(duì)于單次收到的指令CPU卡收到一條指令,處理該條指令,再將處理結(jié)果發(fā)送出去。但是一個(gè)業(yè)務(wù)流程對(duì)應(yīng)的指令流包括多條指令,因此在CPU卡和終端需要多條的指令交互,而當(dāng)出現(xiàn)一個(gè)完整的指令流特別是包含大量數(shù)據(jù)內(nèi)容的指令流時(shí),上述單一的收發(fā)處理過程將受限于CPU卡的性能,交互的時(shí)間就占了很大一部分業(yè)務(wù)處理的時(shí)間并導(dǎo)致數(shù)據(jù)交互速度較慢,影響了業(yè)務(wù)流程的處理效率。
發(fā)明內(nèi)容
本申請(qǐng)所要解決的技術(shù)問題是提供一種CPU卡數(shù)據(jù)處理方法、系統(tǒng)及CPU卡,減少 CPU卡和終端的交互時(shí)間,提高業(yè)務(wù)流對(duì)應(yīng)的指令流的執(zhí)行效率。為了解決上述問題,本申請(qǐng)公開了一種CPU卡數(shù)據(jù)處理方法,其特征在于,包括預(yù)置步驟,將終端應(yīng)用的各業(yè)務(wù)流程對(duì)應(yīng)各指令流標(biāo)識(shí),并將所述各業(yè)務(wù)流程對(duì)應(yīng)的各條指令劃分為該業(yè)務(wù)流程的指令流,將所述指令流結(jié)合相應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)存儲(chǔ)在CPU卡中;所述指令流中各條指令依據(jù)指令處理順序依次進(jìn)行存儲(chǔ);接收判斷步驟,接收終端發(fā)送的指令,并判斷所述指令是否為終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令;查找步驟,如果是終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令,則根據(jù)所述APDU指令中的指令流標(biāo)識(shí),查找CPU卡中存儲(chǔ)的對(duì)應(yīng)指令流標(biāo)識(shí)的指令流;處理步驟,按照所述指令流中各條指令的存儲(chǔ)順序,逐條執(zhí)行所述指令流中的各條指令,并將處理結(jié)果存入緩存;發(fā)送步驟,當(dāng)所述指令流中最后一條指令執(zhí)行完畢后,將緩存中的處理結(jié)果一起發(fā)送給終端。優(yōu)選的,按照所述指令流的各條指令存儲(chǔ)順序,逐條執(zhí)行所述指令流中的各條指令,并將處理結(jié)果存入緩存時(shí)還包括對(duì)于不需要發(fā)送到終端的指令處理結(jié)果,不將該處理結(jié)果存入緩存。
優(yōu)選的,,通過以下方式判斷指令的處理結(jié)果是否需要存入緩存為指令流中各條指令配置一個(gè)返回判斷值,根據(jù)當(dāng)前指令的返回判斷值判斷是否需要將該指令的處理結(jié)果存入緩存。優(yōu)選的,將所述指令流結(jié)合相應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)存儲(chǔ)在CPU卡中的方式包括將業(yè)務(wù)流程對(duì)應(yīng)的指令流以TLV的結(jié)構(gòu)保存在CPU卡的電可擦可編程只讀存儲(chǔ)器中,其中所述的τ代表指令流標(biāo)識(shí),L代表指令流長(zhǎng)度,V代表指令流數(shù)據(jù);或?qū)I(yè)務(wù)流程對(duì)應(yīng)的帶有指令流標(biāo)識(shí)的指令流直接編譯在CPU卡的代碼中。優(yōu)選的,在所述的存儲(chǔ)指令流數(shù)據(jù)的結(jié)構(gòu)V中將當(dāng)前指令流的各條指令按處理順序排列,并對(duì)每條指令設(shè)置一個(gè)返回判斷值。優(yōu)選的,所述帶指令流標(biāo)識(shí)的APDU指令的發(fā)送方式包括終端發(fā)送數(shù)字短信指令到CPU卡,所述數(shù)字短信指令封裝帶有指令流標(biāo)識(shí)的標(biāo)準(zhǔn) APDU指令;或者終端通過特定指令通道發(fā)送帶有指令流標(biāo)識(shí)的自定義APDU指令到CPU卡。優(yōu)選的,根據(jù)終端對(duì)于帶指令流標(biāo)識(shí)的APDU指令的發(fā)送方式,在CPU卡設(shè)置相應(yīng)方式的解析方式處理對(duì)應(yīng)業(yè)務(wù)流的指令流標(biāo)識(shí)。相應(yīng)的本申請(qǐng)還公開了一種CPU卡數(shù)據(jù)處理系統(tǒng),包括預(yù)置模塊,用于將終端應(yīng)用的各業(yè)務(wù)流程對(duì)應(yīng)各指令流標(biāo)識(shí),并將所述各業(yè)務(wù)流程對(duì)應(yīng)的各條指令劃分為該業(yè)務(wù)流程的指令流,將所述指令流結(jié)合相應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)存儲(chǔ)在CPU卡中;所述指令流中各條指令依據(jù)指令處理順序依次進(jìn)行存儲(chǔ);接收判斷模塊,用于接收終端發(fā)送的指令,并判斷所述指令是否為終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令;查找模塊,用于如果是終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令,則根據(jù)所述APDU指令中的指令流標(biāo)識(shí),查找CPU卡中存儲(chǔ)的對(duì)應(yīng)指令流標(biāo)識(shí)的指令流;處理模塊,用于按照所述指令流的各條指令存儲(chǔ)順序,逐條執(zhí)行所述指令流中的各條指令,并將處理結(jié)果存入緩存;發(fā)送模塊,用于當(dāng)所述指令流中最后一條指令執(zhí)行完畢后,將緩存中的處理結(jié)果一起發(fā)送給終端。優(yōu)選的,所述處理模塊中包括返回判斷模塊,用于對(duì)于不需要發(fā)送到終端的指令處理結(jié)果,不將該處理結(jié)果存入緩存。相應(yīng)的本申請(qǐng)還公開了一種CPU卡,包括接收判斷模塊,用于接收終端發(fā)送的指令,并判斷所述指令是否為終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令;查找模塊,用于如果是終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令,則根據(jù)所述APDU指令中的指令流標(biāo)識(shí),查找CPU卡中存儲(chǔ)的對(duì)應(yīng)指令流標(biāo)識(shí)的指令流;所述指令流根據(jù)各業(yè)務(wù)流程對(duì)應(yīng)的各條指令劃分,所述指令流標(biāo)識(shí)對(duì)應(yīng)各業(yè)務(wù)流程及相應(yīng)的指令流;所述指令流結(jié)合相應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)存儲(chǔ)在CPU卡中;所述指令流中各條指令依據(jù)指令處理順序依次進(jìn)行存儲(chǔ);
處理模塊,用于按照所述指令流的各條指令存儲(chǔ)順序,逐條執(zhí)行所述指令流中的各條指令,并將處理結(jié)果存入緩存;發(fā)送模塊,用于當(dāng)所述指令流中最后一條指令執(zhí)行完畢后,將緩存中的處理結(jié)果一起發(fā)送給終端。與現(xiàn)有技術(shù)相比,本申請(qǐng)包括以下優(yōu)點(diǎn)本申請(qǐng)將對(duì)應(yīng)業(yè)務(wù)流程的各條指令劃分為一個(gè)完整的指令流,并設(shè)置指令流標(biāo)識(shí)對(duì)應(yīng)所述業(yè)務(wù)流程和指令流;然后將業(yè)務(wù)流程對(duì)應(yīng)的指令流結(jié)合其指令流標(biāo)識(shí),將指令流中的各條指令按處理順序存儲(chǔ)在CPU卡中。CPU卡根據(jù)終端發(fā)送的指令流標(biāo)識(shí),從CPU卡內(nèi)調(diào)用處理相應(yīng)的標(biāo)號(hào)指令流對(duì)應(yīng)的多條指令,處理完畢后,CPU卡再將處理結(jié)果一起發(fā)送給終端。首先,通過本申請(qǐng),終端只需發(fā)送一次指令流標(biāo)識(shí)到CPU卡,即終端發(fā)送指令時(shí)只需要與卡交互一次,減少了終端發(fā)送指令時(shí)與CPU卡的交互。其次,通過本申請(qǐng),CPU卡將相應(yīng)指令流的指令處理完畢后再將處理結(jié)果一起發(fā)送給終端,即CPU卡只需要通過與終端交互極少次數(shù)即可接收所有的處理結(jié)果。比如,如果處理結(jié)果小于256個(gè)字節(jié),那么CPU卡只需與終端交互一次即可將所有處理結(jié)果發(fā)送給終端,而不需要每處理一條指令就與終端交互一次。總之,本申請(qǐng)大大減少了終端和CPU卡的交互過程,從而節(jié)省了交互時(shí)間,提高了業(yè)務(wù)流程對(duì)應(yīng)的指令流的執(zhí)行效率。
圖1是本申請(qǐng)一種CPU卡數(shù)據(jù)處理方法的流程示意圖;圖2是本申請(qǐng)優(yōu)選的一種CPU卡數(shù)據(jù)處理方法的流程示意圖;圖3是本申請(qǐng)的一種CPU卡數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖;圖4是本申請(qǐng)的一種CPU卡的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說明。參照?qǐng)D1,示出了本申請(qǐng)一種CPU卡數(shù)據(jù)處理方法的流程示意圖,包括預(yù)置步驟100,將終端應(yīng)用的各業(yè)務(wù)流程對(duì)應(yīng)各指令流標(biāo)識(shí),并將所述各業(yè)務(wù)流程對(duì)應(yīng)的各條指令劃分為該業(yè)務(wù)流程的指令流,將所述指令流結(jié)合相應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)存儲(chǔ)在CPU卡中;所述指令流中各條指令依據(jù)指令處理順序依次進(jìn)行存儲(chǔ)。比如,終端應(yīng)用的業(yè)務(wù)流程為A,對(duì)應(yīng)該業(yè)務(wù)流程的各條指令為Ni,N2, N3,并且需要在CPU卡中依次處理m,N2,N3,則以WN2N3作為對(duì)應(yīng)業(yè)務(wù)流程A的指令流,同時(shí)在終端將業(yè)務(wù)流程對(duì)應(yīng)指令流標(biāo)識(shí)TA,在CPU卡中將指令流WN2N3也對(duì)應(yīng)指令流標(biāo)識(shí)TA。即終端需要執(zhí)行某個(gè)業(yè)務(wù)流程時(shí),只需發(fā)送對(duì)應(yīng)業(yè)務(wù)流的指令流標(biāo)識(shí),CPU卡根據(jù)接收到的指令流標(biāo)識(shí)對(duì)相應(yīng)的指令流進(jìn)行處理,其中所述指令流對(duì)應(yīng)終端的業(yè)務(wù)流程。然后,將業(yè)務(wù)流程A對(duì)應(yīng)的指令流WN2N3結(jié)合指令流標(biāo)識(shí)Ta存儲(chǔ)在CPU卡中。在實(shí)際中,優(yōu)選的,將所述指令流結(jié)合相應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)存儲(chǔ)在CPU卡中的記錄方式包括
6
將業(yè)務(wù)流程對(duì)應(yīng)的指令流以TLV的結(jié)構(gòu)保存在CPU卡的電可擦可編程只讀存儲(chǔ)器 (EEPROM, Electrically Erasable Programmable Read-Only Memory)中,其中所述的 T 代表指令流標(biāo)識(shí),L代表指令流長(zhǎng)度,V代表指令流數(shù)據(jù),比如TLS1M1S2M2...的格式,其中 S1M1S2M2表示指令流數(shù)據(jù)的存儲(chǔ)形式,S值指示本條指令是否需要返回處理結(jié)果給終端,M 值表示本條指令的長(zhǎng)度。即將業(yè)務(wù)流程對(duì)應(yīng)的指令流標(biāo)識(shí)及指令流以TLV的格式存入變長(zhǎng)記錄文件寫入CPU卡的電可擦可編程只讀存儲(chǔ)器中。TLV是一種可變格式,TLV的意思就是 Tag標(biāo)簽,Length長(zhǎng)度,Value值。Tag和Length的長(zhǎng)度固定,一般是2或4個(gè)字節(jié);Value 的長(zhǎng)度由Length指定;在本申請(qǐng)中T代表指令流標(biāo)識(shí),L代表指令流長(zhǎng)度,V代表指令流數(shù)據(jù)。其中,在所述的存儲(chǔ)指令流數(shù)據(jù)的結(jié)構(gòu)V中將當(dāng)前指令流的各條指令按處理順序排列,并對(duì)每條指令設(shè)置一個(gè)返回判斷值。對(duì)于業(yè)務(wù)流程對(duì)應(yīng)的指令流,將業(yè)務(wù)流程對(duì)應(yīng)的指令流標(biāo)識(shí)放置在T結(jié)構(gòu),將指令流的長(zhǎng)度放置在L結(jié)構(gòu),將指令流的數(shù)據(jù)放置在V結(jié)構(gòu)。實(shí)際中V結(jié)構(gòu)為數(shù)據(jù)區(qū),即在數(shù)據(jù)區(qū)依距處理次序存儲(chǔ)指令流的各個(gè)指令,其存放格式可自由配置,比如數(shù)據(jù)區(qū)格式可劃
分為S1M1S2M2......,其中,1表示指令流的第一條指令,2表示指令流的第二條指令,S值
指示本條指令是否需要返回處理結(jié)果給終端,M值表示本條指令的長(zhǎng)度。對(duì)于TLV結(jié)構(gòu)的記錄,CPU卡可通過如下方法解析1.讀取tag得到指令流標(biāo)識(shí);指針偏移,具體指針偏移量根據(jù)實(shí)際tag長(zhǎng)度設(shè)置偏移;2.讀取length得到長(zhǎng)度;指針偏移,具體指針偏移量根據(jù)實(shí)際Length長(zhǎng)度設(shè)置偏移;3.根據(jù)得到的長(zhǎng)度讀取value進(jìn)行處理,指針指向Length+Ι的位置;即指向下一條指令流中TAG的位置;繼續(xù)處理后面的TLV。在本申請(qǐng)中,各業(yè)務(wù)流程對(duì)應(yīng)的指令流記錄是按序排列存儲(chǔ)在CPU卡的電可擦可編程只讀存儲(chǔ)器空間地址中的,而空間地址是有順序的。以該種方式記錄業(yè)務(wù)流程對(duì)應(yīng)的指令流標(biāo)識(shí)和指令流時(shí),可在終端進(jìn)行預(yù)個(gè)人化進(jìn)行存儲(chǔ),即根據(jù)終端的不同軟件,將其業(yè)務(wù)流程對(duì)應(yīng)的指令流標(biāo)識(shí)和指令流存入該TLV 結(jié)構(gòu)的變長(zhǎng)記錄文件寫入CPU卡的電可擦可編程只讀存儲(chǔ)器中。上述種指令流存儲(chǔ)方式可在系統(tǒng)開始處理前根據(jù)終端的業(yè)務(wù)流程預(yù)置相應(yīng)的帶指令標(biāo)識(shí)指令流記錄,其中所述指令標(biāo)識(shí)對(duì)應(yīng)業(yè)務(wù)流程,即變長(zhǎng)記錄文件中的指令流及其標(biāo)識(shí)可根據(jù)終端的要求進(jìn)行修改?;蛘?,優(yōu)選的,將所述指令流結(jié)合相應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)存儲(chǔ)在CPU卡中的記錄方式包括將業(yè)務(wù)流程對(duì)應(yīng)的帶有指令流標(biāo)識(shí)的指令流直接編譯在CPU卡的代碼中。本申請(qǐng)還可以根據(jù)終端的軟件的業(yè)務(wù)流程對(duì)應(yīng)的指令流標(biāo)識(shí)和相應(yīng)指令流,將指令流標(biāo)識(shí)及相應(yīng)指令流直接編譯在CPU卡的代碼中。在實(shí)際中,可將指令流中各條指令對(duì)應(yīng)的數(shù)據(jù)直接編譯在CPU卡的代碼中。對(duì)于此種方式,在后續(xù)的步驟中,可根據(jù)接收到的指令流標(biāo)識(shí)直接將對(duì)應(yīng)的指令流依次寫入CPU卡的處理區(qū)進(jìn)行處理。因此該種方式可節(jié)省 CPU卡的存儲(chǔ)空間,比如電可擦可編程只讀存儲(chǔ)器(EEPROM)的存儲(chǔ)空間。接收步驟110,接收終端發(fā)送的指令,并判斷所述指令是否為終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令。CPU卡接收到終端發(fā)送的指令后,首先會(huì)判斷該指令是否為終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令,如果是則進(jìn)入指令流處理過程。實(shí)際中APDU指令依次包括CLA (class,類)字節(jié),INS (INStructic,命令)字節(jié), 兩個(gè)參數(shù)字節(jié)Pl和P2 (parameters 1 and 2),和Le字節(jié),表示數(shù)據(jù)區(qū)的長(zhǎng)度,APDU指令還包括數(shù)據(jù)區(qū)。CPU卡通過INS的值判斷所述APDU指令是否為終端應(yīng)用的帶指令流標(biāo)識(shí)的 APDU指令。當(dāng)終端需要執(zhí)行某個(gè)業(yè)務(wù)流程的時(shí)候,會(huì)將對(duì)應(yīng)該業(yè)務(wù)流程的指令流標(biāo)識(shí)發(fā)送給 CPU卡,CPU卡即可接收終端發(fā)送的所述指令流標(biāo)識(shí)。比如手機(jī)端的某個(gè)應(yīng)用需要進(jìn)行讀交易記錄業(yè)務(wù)流程,手機(jī)端則將該業(yè)務(wù)流程對(duì)應(yīng)的指令流標(biāo)識(shí)發(fā)送到CPU卡,則CPU卡即可接收手機(jī)端發(fā)送的該業(yè)務(wù)流程的指令標(biāo)識(shí)。在實(shí)際中,終端會(huì)將對(duì)應(yīng)某業(yè)務(wù)流程的指令流標(biāo)識(shí)以指令的形式發(fā)送給CPU卡。 優(yōu)選的,終端發(fā)送的對(duì)應(yīng)業(yè)務(wù)流的指令流標(biāo)識(shí)的方式包括(1)終端發(fā)送數(shù)字短信指令到CPU卡,所述數(shù)字短信指令封裝帶有指令流標(biāo)識(shí)的標(biāo)準(zhǔn)APDU指令。在實(shí)際中,終端的各應(yīng)用軟件可能需要相應(yīng)手機(jī)廠商進(jìn)行認(rèn)證,通過認(rèn)證的應(yīng)用軟件才能以數(shù)字短信指令的形式發(fā)送指令到CPU卡,即以標(biāo)準(zhǔn)的APDU(Application Protocol Data Unit,應(yīng)用協(xié)議數(shù)據(jù)單元)格式命令的形式發(fā)送指令到CPU卡。在實(shí)際中 APDU指令通過PUDU指令的前五個(gè)字節(jié)決定APDU指令是否為標(biāo)準(zhǔn)格式指令,如果各應(yīng)用軟件通過了相應(yīng)手機(jī)廠商的認(rèn)證,那么即可發(fā)送標(biāo)準(zhǔn)的數(shù)字短信指令,即所述數(shù)字短信指令中,APDU指令的前五個(gè)字節(jié)為標(biāo)準(zhǔn)指令格式,APDU指令的數(shù)據(jù)區(qū)封裝有對(duì)應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí),在數(shù)據(jù)區(qū)的任意位置規(guī)定放置指令流標(biāo)識(shí)。比如A0C2000006D11122334455即為一條標(biāo)準(zhǔn)的APDU指令,APDU指令的前五個(gè)字節(jié)部分包括A0C2000006,APDU指令的數(shù)據(jù)區(qū)包括D11122334455,比如規(guī)定1122所在位置為指令流標(biāo)識(shí),其標(biāo)識(shí)為1122?;蛘?,( 者終端通過特定指令通道發(fā)送帶有指令流標(biāo)識(shí)的自定義APDU指令到 CPU 卡。如果終端的應(yīng)用軟件沒有經(jīng)過手機(jī)廠商認(rèn)證,那么該應(yīng)用軟件不能發(fā)送標(biāo)準(zhǔn)格式的數(shù)字短信指令。此時(shí)可根據(jù)實(shí)際情況自定義APDU指令,終端通過特定指令通道將自定義APDU指令發(fā)送給CPU卡,該指令帶有對(duì)應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)。比如通過更新電話簿 (6F3A文件)的方式將自定義APDU指令發(fā)送給CPU卡。對(duì)于將自定義APDU指令發(fā)送給CPU 卡的方式可以有多種,本申請(qǐng)不加以限制。在實(shí)際中,一般將指令流標(biāo)識(shí)放置在APDU指令的前五個(gè)字節(jié)中的參數(shù)區(qū)。實(shí)際中 APDU指令依次包括CLA (class,類)字節(jié),INS (INStructic,命令)字節(jié),兩個(gè)參數(shù)字節(jié)Pl 和P2 (parameters land 2),和L。字節(jié),表示數(shù)據(jù)區(qū)的長(zhǎng)度,則終端的應(yīng)用軟件可以純下發(fā)自定義APDU指令的形式將業(yè)務(wù)流程對(duì)應(yīng)的指令流標(biāo)識(shí)發(fā)送給CPU卡,比如A9⑶000100,其中CLA字節(jié)為A9,INS字節(jié)為⑶,參數(shù)字節(jié)為0001,00表示發(fā)送給CPU卡的數(shù)據(jù)區(qū)數(shù)據(jù)的長(zhǎng)度,其中01即為對(duì)應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)。查找步驟120,如果是終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令,則根據(jù)所述APDU指令中的指令流標(biāo)識(shí),查找CPU卡中存儲(chǔ)的對(duì)應(yīng)指令流標(biāo)識(shí)的指令流。
如果CPU卡收到的指令是終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令,即CPU卡獲得終端的對(duì)應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)后,根據(jù)指令流標(biāo)識(shí)在指令流記錄中查找對(duì)應(yīng)指令流,其中所述指令流記錄中包括帶有指令流標(biāo)識(shí)的指令流。即對(duì)應(yīng)業(yè)務(wù)流程的指令流在CPU卡進(jìn)行預(yù)個(gè)人化時(shí)(即步驟100中)是以對(duì)應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)為查找的標(biāo)識(shí)進(jìn)行存儲(chǔ)的。在本申請(qǐng)中,對(duì)于將業(yè)務(wù)流程對(duì)應(yīng)的指令流以TLV的結(jié)構(gòu)保存在CPU卡的電可擦可編程只讀存儲(chǔ)器中的存儲(chǔ)方式,各業(yè)務(wù)流程對(duì)應(yīng)的指令流記錄是按序排列存儲(chǔ)在CPU卡的電可擦可編程只讀存儲(chǔ)器空間地址中的,而空間地址是有順序的。在CPU卡接收到指令流標(biāo)識(shí)后,從指定的排頭地址開始(其指令流存儲(chǔ)的排頭地址可根據(jù)實(shí)際情況指定), 將指令流標(biāo)識(shí)與指令流記錄中的指令流標(biāo)識(shí)進(jìn)行匹配,如果未匹配上,則跳到指令流記錄中下一個(gè)指令流標(biāo)識(shí)進(jìn)行匹配,直至匹配上,然后將匹配上的指令流標(biāo)識(shí)對(duì)應(yīng)的指令流調(diào)到處理區(qū)轉(zhuǎn)入步驟130進(jìn)行處理。比如CPU卡中內(nèi)存空間地址中的指令流記錄排列為
T1L1V1T2L2V2T3L3V3......,CPU卡收到的指令流標(biāo)識(shí)為T2,則CPU卡首先將T2與T1進(jìn)行匹配,
發(fā)現(xiàn)沒匹配上,則指針根據(jù)該指令流的長(zhǎng)度L1指向下一個(gè)指令流標(biāo)識(shí)T2,發(fā)現(xiàn)匹配上,則將該指令流記錄的指令流數(shù)據(jù)V2調(diào)到處理區(qū)轉(zhuǎn)入步驟130進(jìn)行處理。而對(duì)于將業(yè)務(wù)流程對(duì)應(yīng)的帶有指令流標(biāo)識(shí)的指令流直接編譯在CPU卡的代碼中這種存儲(chǔ)方式,直接在CPU卡的代碼中相應(yīng)位置查詢對(duì)應(yīng)指令流標(biāo)識(shí)的指令流。另外,根據(jù)終端對(duì)于帶指令流標(biāo)識(shí)的APDU指令的發(fā)送方式,在CPU卡設(shè)置相應(yīng)方式的解析方式處理對(duì)應(yīng)業(yè)務(wù)流的指令流標(biāo)識(shí)。比如根據(jù)前述(1)終端發(fā)送數(shù)字短信指令到CPU卡,所述數(shù)字短信指令封裝帶有指令流標(biāo)識(shí)的標(biāo)準(zhǔn)APDU指令。根據(jù)該數(shù)字短信指令的規(guī)定,CPU提取該標(biāo)準(zhǔn)APDU指令中規(guī)定位置的數(shù)據(jù),即為指令流標(biāo)識(shí)。比如前述例子中A0C2000006D11122334455,其中指令流標(biāo)識(shí)為1122,則CPU卡對(duì)數(shù)字短信指令提取指令流標(biāo)識(shí)的位置為1122所在位置。比如對(duì)于前述( 者終端通過特定指令通道發(fā)送帶有指令流標(biāo)識(shí)的自定義APDU 指令到CPU卡。則提取所述指令中規(guī)定參數(shù)位置的值,即為指令流標(biāo)識(shí)。比如A9⑶000100, 其中01為指令流標(biāo)識(shí),則CPU卡提取指令流標(biāo)識(shí)的位置為01所在的位置。處理步驟130,按指令流順序逐個(gè)執(zhí)行所述指令流中的各條指令,并將處理結(jié)果存入緩存。當(dāng)步驟120查找到與指令流標(biāo)識(shí)相應(yīng)的指令流后,對(duì)于指令流中的各個(gè)指令,按順序逐個(gè)執(zhí)行,并將處理結(jié)果放入緩存。在實(shí)際中,對(duì)于終端不需要的指令處理結(jié)果,可不將該處理結(jié)果存入緩存,也即可不發(fā)送給終端。比如查詢余額這個(gè)業(yè)務(wù)流程對(duì)應(yīng)的指令流有兩個(gè)指令00A40000023F01和 805C000204,當(dāng)步驟120中CPU卡根據(jù)該業(yè)務(wù)流程的指令流標(biāo)識(shí)查到該指令流后,CPU卡首先處理00A40000023F01指令去選擇3F01文件,再處理805C000204指令查詢余額,其中 00A40000023F01指令選擇文件的處理結(jié)果FCI信息并不是終端必須要的(在實(shí)際中,是根據(jù)終端的軟件需不需要確認(rèn)CPU卡的處理結(jié)果是否返回給終端,即是否是終端需要的),則可不將該信息存入緩存,即可不將該處理結(jié)果返回終端。在實(shí)際中,可為指令流中各條指令配置一個(gè)返回判斷值,根據(jù)當(dāng)前指令的返回判斷值判斷是否需要將該指令的處理結(jié)果存入緩存。比如前述以TLV結(jié)構(gòu)進(jìn)行記錄時(shí),在數(shù)據(jù)區(qū)對(duì)每條指令配置一個(gè)S值,S為00時(shí)表示不需要返回處理結(jié)果給終端,S為01時(shí)標(biāo)識(shí)需要返回處理結(jié)果給終端。在實(shí)際中,針對(duì)以TLV結(jié)構(gòu)存儲(chǔ)在內(nèi)存中的指令流記錄,當(dāng)CPU卡在步驟120中查找到對(duì)應(yīng)指令流標(biāo)識(shí)的指令流后,將該指令流的的各條指令提取出放入緩存,然后再?gòu)木彺嬷兄饌€(gè)提取指令放入處理區(qū)執(zhí)行。針對(duì)直接寫在CPU代碼中的指令流記錄,當(dāng)CPU卡在步驟120中查找到代碼中的指令流后,將其中的指令的數(shù)據(jù)直接寫入處理區(qū)執(zhí)行。發(fā)送步驟140,當(dāng)所述指令流的各條指令執(zhí)行完畢后,將緩存中的處理結(jié)果一起發(fā)送給終端。對(duì)于在CPU卡緩存中處理結(jié)果的放置位置可以根據(jù)實(shí)際需求規(guī)定,比如處理結(jié)果放置的位置可于CPU卡的發(fā)送緩存區(qū)復(fù)用,即先將處理結(jié)果放入發(fā)送緩存區(qū),在需要發(fā)送時(shí)再將發(fā)送緩存區(qū)的處理結(jié)果依次排序再一起發(fā)送給終端。在實(shí)際中,如果處理結(jié)果小于 256個(gè)字節(jié),那么CPU卡只需與終端交互一次即可將所有處理結(jié)果發(fā)送給終端,而不需要每處理一條指令就與終端交互一次。參照?qǐng)D2,其示出了本申請(qǐng)優(yōu)選的一種CPU卡數(shù)據(jù)處理方法的流程示意圖。系統(tǒng)開始工作后步驟Al,CPU卡首先接收終端的指令并判斷是否為終端應(yīng)用的帶有指令流標(biāo)識(shí)的 APDU指令。步驟A2,將接收到APDU指令中的指令流標(biāo)識(shí)與CPU卡內(nèi)指令流記錄中的指令流的指令流標(biāo)識(shí)進(jìn)行匹配;如果未匹配上,轉(zhuǎn)入步驟A3 ;如果匹配上,轉(zhuǎn)入步驟A4。步驟A3,根據(jù)指令流長(zhǎng)度指向下一條指令流,并轉(zhuǎn)入步驟A2。比如記錄文件結(jié)構(gòu)為T1L1SlMiszicT2L2SlMisziCT3L3SlMlSziC,當(dāng)步驟Al接收到的指令流標(biāo)識(shí)為T2,T2首先第一條指令流的指令流標(biāo)識(shí)T1匹配,未匹配上,然后根據(jù)第一條指令流的長(zhǎng)度L1指向下一條指令流,與下一條指令流的指令流標(biāo)識(shí)T2進(jìn)行匹配。 步驟A4,從CPU卡內(nèi)對(duì)出對(duì)應(yīng)指令流標(biāo)識(shí)的指令流。比如將存儲(chǔ)在CPU卡EEPROM存儲(chǔ)器中的對(duì)于指令流標(biāo)識(shí)的指令流取出放入CPU 卡的處理區(qū)。步驟A5,按順序逐個(gè)執(zhí)行指令流中的指令。步驟A6,判斷當(dāng)前執(zhí)行的指令的S值是否為01 ;如果不是,則轉(zhuǎn)入步驟A5繼續(xù)執(zhí)行下一個(gè)指令;如果是則轉(zhuǎn)入步驟A7。其中,當(dāng)所述S值為01時(shí)表示當(dāng)前指令的處理結(jié)果需要返回到終端。步驟A7,將當(dāng)前指令的處理結(jié)果放入緩存(其中存放處理結(jié)果的緩存可與發(fā)送緩存區(qū)復(fù)用)。步驟A8,判斷執(zhí)行完當(dāng)前指令后整個(gè)業(yè)務(wù)流程對(duì)應(yīng)的指令流是否執(zhí)行完畢;如果不是,轉(zhuǎn)入步驟A5執(zhí)行下一個(gè)指令;如果是,則轉(zhuǎn)入步驟A9。步驟A9,將步驟A7中存入緩存中的處理結(jié)果依次放入發(fā)送緩存區(qū),并發(fā)送給終端。整個(gè)業(yè)務(wù)流程處理完畢后即可結(jié)束本次業(yè)務(wù)流程CPU卡與終端的交互。參照?qǐng)D3,其示出了本申請(qǐng)一種CPU卡數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖,包括預(yù)置模塊200,用于將終端應(yīng)用的各業(yè)務(wù)流程對(duì)應(yīng)各指令流標(biāo)識(shí),并將所述各業(yè)務(wù)流程對(duì)應(yīng)的各條指令劃分為該業(yè)務(wù)流程的指令流,將所述指令流結(jié)合相應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)存儲(chǔ)在CPU卡中;所述指令流中各條指令依據(jù)指令處理順序依次進(jìn)行存儲(chǔ);接收判斷模塊210,用于接收終端發(fā)送的指令,并判斷所述指令是否為終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令;查找模塊220,用于如果是終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令,則根據(jù)所述 APDU指令中的指令流標(biāo)識(shí),查找CPU卡中存儲(chǔ)的對(duì)應(yīng)指令流標(biāo)識(shí)的指令流;處理模塊230,用于按照所述指令流的各條指令存儲(chǔ)順序,逐條執(zhí)行所述指令流中的各條指令,并將處理結(jié)果存入緩存;發(fā)送模塊M0,用于當(dāng)所述指令流中最后一條指令執(zhí)行完畢后,將緩存中的處理結(jié)果一起發(fā)送給終端。其中,所述處理模塊中包括返回判斷模塊,用于對(duì)于不需要發(fā)送到終端的指令處理結(jié)果,不將該處理結(jié)果存入緩存。參照?qǐng)D4,其示出了本申請(qǐng)一種CPU卡,包括接收判斷模塊310,用于接收終端發(fā)送的指令,并判斷所述指令是否為終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令;查找模塊320,用于如果是終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令,則根據(jù)所述 APDU指令中的指令流標(biāo)識(shí),查找CPU卡中存儲(chǔ)的對(duì)應(yīng)指令流標(biāo)識(shí)的指令流;所述指令流根據(jù)各業(yè)務(wù)流程對(duì)應(yīng)的各條指令劃分,所述指令流標(biāo)識(shí)對(duì)應(yīng)各業(yè)務(wù)流程及相應(yīng)的指令流;所述指令流結(jié)合相應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)存儲(chǔ)在CPU卡中;所述指令流中各條指令依據(jù)指令處理順序依次進(jìn)行存儲(chǔ);處理模塊330,用于按照所述指令流的各條指令存儲(chǔ)順序,逐條執(zhí)行所述指令流中的各條指令,并將處理結(jié)果存入緩存;發(fā)送模塊340,用于當(dāng)所述指令流中最后一條指令執(zhí)行完畢后,將緩存中的處理結(jié)果一起發(fā)送給終端。其中,所述處理模塊中包括返回判斷模塊,用于對(duì)于不需要發(fā)送到終端的指令處理結(jié)果,不將該處理結(jié)果存入緩存。本申請(qǐng)可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置中。例如手持設(shè)備或便攜式設(shè)備、平板型設(shè)備等等。本申請(qǐng)可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請(qǐng),在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。對(duì)于系統(tǒng)實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。以上對(duì)本申請(qǐng)所提供的一種CPU卡數(shù)據(jù)處理方法、系統(tǒng)及CPU卡,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。
權(quán)利要求
1.一種CPU卡數(shù)據(jù)處理方法,其特征在于,包括預(yù)置步驟,將終端應(yīng)用的各業(yè)務(wù)流程對(duì)應(yīng)各指令流標(biāo)識(shí),并將所述各業(yè)務(wù)流程對(duì)應(yīng)的各條指令劃分為該業(yè)務(wù)流程的指令流,將所述指令流結(jié)合相應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)存儲(chǔ)在CPU卡中;所述指令流中各條指令依據(jù)指令處理順序依次進(jìn)行存儲(chǔ);接收判斷步驟,接收終端發(fā)送的指令,并判斷所述指令是否為終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令;查找步驟,如果是終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令,則根據(jù)所述APDU指令中的指令流標(biāo)識(shí),查找CPU卡中存儲(chǔ)的對(duì)應(yīng)指令流標(biāo)識(shí)的指令流;處理步驟,按照所述指令流中各條指令的存儲(chǔ)順序,逐條執(zhí)行所述指令流中的各條指令,并將處理結(jié)果存入緩存;發(fā)送步驟,當(dāng)所述指令流中最后一條指令執(zhí)行完畢后,將緩存中的處理結(jié)果一起發(fā)送給終端。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,按照所述指令流的各條指令存儲(chǔ)順序,逐條執(zhí)行所述指令流中的各條指令,并將處理結(jié)果存入緩存時(shí)還包括對(duì)于不需要發(fā)送到終端的指令處理結(jié)果,不將該處理結(jié)果存入緩存。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,通過以下方式判斷指令的處理結(jié)果是否需要存入緩存為指令流中各條指令配置一個(gè)返回判斷值,根據(jù)當(dāng)前指令的返回判斷值判斷是否需要將該指令的處理結(jié)果存入緩存。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,將所述指令流結(jié)合相應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)存儲(chǔ)在CPU卡中的方式包括將業(yè)務(wù)流程對(duì)應(yīng)的指令流以TLV的結(jié)構(gòu)保存在CPU卡的電可擦可編程只讀存儲(chǔ)器中, 其中所述的T代表指令流標(biāo)識(shí),L代表指令流長(zhǎng)度,V代表指令流數(shù)據(jù);或?qū)I(yè)務(wù)流程對(duì)應(yīng)的帶有指令流標(biāo)識(shí)的指令流直接編譯在CPU卡的代碼中。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述的存儲(chǔ)指令流數(shù)據(jù)的結(jié)構(gòu)V中將當(dāng)前指令流的各條指令按處理順序排列,并對(duì)每條指令設(shè)置一個(gè)返回判斷值。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述帶指令流標(biāo)識(shí)的APDU指令的發(fā)送方式包括終端發(fā)送數(shù)字短信指令到CPU卡,所述數(shù)字短信指令封裝帶有指令流標(biāo)識(shí)的標(biāo)準(zhǔn)APDU 指令;或者終端通過特定指令通道發(fā)送帶有指令流標(biāo)識(shí)的自定義APDU指令到CPU卡。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于根據(jù)終端對(duì)于帶指令流標(biāo)識(shí)的APDU指令的發(fā)送方式,在CPU卡設(shè)置相應(yīng)方式的解析方式處理對(duì)應(yīng)業(yè)務(wù)流的指令流標(biāo)識(shí)。
8.—種CPU卡數(shù)據(jù)處理系統(tǒng),其特征在于,包括預(yù)置模塊,用于將終端應(yīng)用的各業(yè)務(wù)流程對(duì)應(yīng)各指令流標(biāo)識(shí),并將所述各業(yè)務(wù)流程對(duì)應(yīng)的各條指令劃分為該業(yè)務(wù)流程的指令流,將所述指令流結(jié)合相應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)存儲(chǔ)在CPU卡中;所述指令流中各條指令依據(jù)指令處理順序依次進(jìn)行存儲(chǔ);接收判斷模塊,用于接收終端發(fā)送的指令,并判斷所述指令是否為終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令;查找模塊,用于如果是終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令,則根據(jù)所述APDU指令中的指令流標(biāo)識(shí),查找CPU卡中存儲(chǔ)的對(duì)應(yīng)指令流標(biāo)識(shí)的指令流;處理模塊,用于按照所述指令流的各條指令存儲(chǔ)順序,逐條執(zhí)行所述指令流中的各條指令,并將處理結(jié)果存入緩存;發(fā)送模塊,用于當(dāng)所述指令流中最后一條指令執(zhí)行完畢后,將緩存中的處理結(jié)果一起發(fā)送給終端。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述處理模塊中包括返回判斷模塊,用于對(duì)于不需要發(fā)送到終端的指令處理結(jié)果,不將該處理結(jié)果存入緩存。
10.一種CPU卡,其特征在于,包括接收判斷模塊,用于接收終端發(fā)送的指令,并判斷所述指令是否為終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令;查找模塊,用于如果是終端應(yīng)用的帶指令流標(biāo)識(shí)的APDU指令,則根據(jù)所述APDU指令中的指令流標(biāo)識(shí),查找CPU卡中存儲(chǔ)的對(duì)應(yīng)指令流標(biāo)識(shí)的指令流;所述指令流根據(jù)各業(yè)務(wù)流程對(duì)應(yīng)的各條指令劃分,所述指令流標(biāo)識(shí)對(duì)應(yīng)各業(yè)務(wù)流程及相應(yīng)的指令流;所述指令流結(jié)合相應(yīng)業(yè)務(wù)流程的指令流標(biāo)識(shí)存儲(chǔ)在CPU卡中;所述指令流中各條指令依據(jù)指令處理順序依次進(jìn)行存儲(chǔ);處理模塊,用于按照所述指令流的各條指令存儲(chǔ)順序,逐條執(zhí)行所述指令流中的各條指令,并將處理結(jié)果存入緩存;發(fā)送模塊,用于當(dāng)所述指令流中最后一條指令執(zhí)行完畢后,將緩存中的處理結(jié)果一起發(fā)送給終端。
全文摘要
本申請(qǐng)?zhí)峁┝艘环NCPU卡數(shù)據(jù)處理方法、系統(tǒng)及CPU卡,涉及CPU卡底層數(shù)據(jù)處理領(lǐng)域。本申請(qǐng)將對(duì)應(yīng)業(yè)務(wù)流程的各條指令劃分為一個(gè)完整的指令流,并設(shè)置指令流標(biāo)識(shí)對(duì)應(yīng)所述業(yè)務(wù)流程和指令流;然后將業(yè)務(wù)流程對(duì)應(yīng)的指令流結(jié)合其指令流標(biāo)識(shí),將指令流中的各條指令按處理順序存儲(chǔ)在CPU卡中。CPU卡根據(jù)終端發(fā)送的指令流標(biāo)識(shí),調(diào)用處理相應(yīng)的標(biāo)號(hào)指令流對(duì)應(yīng)的多條指令,處理完畢后,CPU卡再將處理結(jié)果一起發(fā)送給終端。通過本申請(qǐng),終端只需發(fā)送一次指令流標(biāo)識(shí)到CPU卡,即終端發(fā)送指令時(shí)只需要與卡交互一次,并且CPU卡將相應(yīng)指令流的指令處理完畢后再將處理結(jié)果一起發(fā)送給終端,減少了終端和CPU卡的交互過程,節(jié)省了交互時(shí)間,提高了業(yè)務(wù)流程對(duì)應(yīng)的指令流的執(zhí)行效率。
文檔編號(hào)G06F9/46GK102541639SQ20111044267
公開日2012年7月4日 申請(qǐng)日期2011年12月26日 優(yōu)先權(quán)日2011年12月26日
發(fā)明者趙昊 申請(qǐng)人:北京握奇數(shù)據(jù)系統(tǒng)有限公司