欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種移動(dòng)終端與智能卡之間的大容量數(shù)據(jù)交換方法

文檔序號(hào):7654364閱讀:157來源:國知局

專利名稱::一種移動(dòng)終端與智能卡之間的大容量數(shù)據(jù)交換方法
技術(shù)領(lǐng)域
:本發(fā)明涉及移動(dòng)終端與智能卡應(yīng)用,具體涉及一種移動(dòng)終端與智能卡之間的大容量數(shù)據(jù)交換方法。
背景技術(shù)
:(-)隨著無線通信技術(shù)的飛速發(fā)展和廣泛應(yīng)用,各種各樣的移動(dòng)增值業(yè)務(wù)/應(yīng)用相繼出現(xiàn)。其中比較典型的有兩類基于移動(dòng)終端的應(yīng)用和基于智能卡的應(yīng)用。前者雖得到了一定程度的發(fā)展,但由于很少受運(yùn)營商的監(jiān)管,因此得不到運(yùn)營商的大力支持;而基于智能卡的應(yīng)用,由于其集成在智能卡內(nèi),完全受運(yùn)營商的監(jiān)控,因此,比基于移動(dòng)終端的應(yīng)用更容易得到運(yùn)營商的支持,從而得到大面積的推廣。但是,由于受到包括智能卡的處理能力、通信手段和容量在內(nèi)的諸多技術(shù)條件的限制,導(dǎo)致目前基于智能卡的應(yīng)用只能提供功能簡單、模式單一的應(yīng)用,典型的如SIM卡應(yīng)用工具箱(SIMApplicationToolkit,簡稱SAT或STK),只能提供純文字菜單式的顯示。這與基于移動(dòng)終端的應(yīng)用發(fā)展形成了很大反差,與整個(gè)移動(dòng)通信行業(yè)的飛速發(fā)展脫節(jié)。針對(duì)這種情況,已經(jīng)出現(xiàn)多種具有超大容量的智能卡,其容量通常以兆字節(jié)為單位計(jì),遠(yuǎn)大于目前市面上的普通智能卡,其最大容量為256k字節(jié)。從而使得在智能卡上開發(fā)和部署大量新的應(yīng)用成為可能。但由于目前移動(dòng)終端與智能卡之間仍然采用ISO/IEC7816以及移動(dòng)通信的有關(guān)協(xié)議,導(dǎo)致其通信手段和模式仍然單一,很難滿足這些應(yīng)用的通信要求。tl)目前,移動(dòng)終端訪問智能卡中數(shù)據(jù)的方法如圖l所示,移動(dòng)終端與智能卡間的通信完全通過移動(dòng)終端的基帶處理器來完成,其底層物理傳輸通道遵循ISO/IEC7816-3、-4標(biāo)準(zhǔn)。(1)在實(shí)際操作中,移動(dòng)終端上層應(yīng)用或其它終端,如個(gè)人電腦PC,將AT命令發(fā)送給基帶處理器,基帶處理器再將其轉(zhuǎn)換成符合ISO/IEC7816標(biāo)準(zhǔn)的應(yīng)用協(xié)議數(shù)據(jù)單元(ApplicationProtocolDataUnit,簡稱APDU)命令將其發(fā)送給智能卡,來實(shí)現(xiàn)命令的執(zhí)行和數(shù)據(jù)的傳輸。終端的AT命令集。除了一些針對(duì)具體應(yīng)用的①專用命令外,如選擇電話本存儲(chǔ)空間等,還有②兩條通用AT命令可用于直接向用戶識(shí)別模塊一SIM卡發(fā)送APDU命令。這兩條命令分別是CSIM和CRSM。其中,CSIM是通用SIM訪問命令(GenericSIMaccess),通過jt匕命令-多動(dòng)纟冬端可以向SIM發(fā)送和返回所有符合GSM11.11規(guī)范中的APDU命令;而CRSM是受限SIM訪問命令(RestrictedSIMaccess),只可以傳輸GSM11.11規(guī)范中指定的六條命令,包括讀/更新二進(jìn)制READ/UPDATEBINARY、讀/更新記錄READ/UPDATERECORD、取響應(yīng)GETRESPONSE,獲取狀態(tài)STATUS等。(2)由于上述直接向智能卡發(fā)送APDU的AT命令都是可選命令,并非所有的基帶處理器都提供對(duì)它們的支持。即便提供,如果移動(dòng)終端的操作系統(tǒng)或人機(jī)接口MMI不對(duì)上層應(yīng)用軟件提供相應(yīng)的應(yīng)用編程接口(ApplicationProgrammingInterface,筒稱API),移動(dòng)終端的應(yīng)用庫欠件仍無法使用所述AT命令來建立一種統(tǒng)一的、通用的可以直接訪問智能卡內(nèi)數(shù)據(jù)的通道。目前的實(shí)際情況是這兩種可能性均存在,即①有些基帶處理器不支持直接向智能卡發(fā)送APDU的AT命令,②有些移動(dòng)終端操作系統(tǒng)不向上層應(yīng)用軟件開放所述命令的接口?;诖?,從通用性和兼容性的角度來看,移動(dòng)終端的上層應(yīng)用軟件不能釆用直接向智能卡發(fā)送可選APDU的AT命令的方式來訪問智能卡,只能借助移動(dòng)終端當(dāng)前提供的訪問智能卡的功能或接口來實(shí)現(xiàn)數(shù)據(jù)/文件的傳輸,以便在移動(dòng)終端上建立各種基于智能卡的移動(dòng)增值應(yīng)用。此外,由于APDU命令格式本身的限制,智能卡文件的最大容量不超過64k字節(jié),而APDU每次傳送的數(shù)據(jù)不超過256字節(jié)或6斗K字節(jié),如此小的文件容量和lt據(jù)傳輸量導(dǎo)致無法在智能卡上實(shí)現(xiàn)復(fù)雜的應(yīng)用,比如圖形化的應(yīng)用。因此,有必要擴(kuò)展智能卡可以容納和傳輸?shù)臄?shù)據(jù)容量,尤其是要解決如何利用標(biāo)準(zhǔn)的ISO/IEC7816接口來傳輸大容量數(shù)據(jù)。曰ISO/IEC7816-4是主從結(jié)構(gòu)、命令響應(yīng)式的協(xié)議。APDU分為命令A(yù)PDU和響應(yīng)APDU兩類。由主機(jī)端向智能卡發(fā)出命令A(yù)PDU;智能卡接受命令A(yù)PDU后,執(zhí)行命令并返回響應(yīng)APDU。命令A(yù)PDU包括一個(gè)必備的4字節(jié)的命令頭(CLA、INS、Pl、P2)和一個(gè)可選的可變長度的命令體(Lc、Data、Le),如下所示<table>tableseeoriginaldocumentpage6</column></row><table>命令頭為命令的編碼,Lc為體內(nèi)數(shù)據(jù)Data的長度;Data為發(fā)送的數(shù)據(jù);Le是期望應(yīng)答APDU數(shù)據(jù)字段的最大字節(jié)數(shù)。當(dāng)Le-0時(shí),表示請(qǐng)求送回最大應(yīng)答數(shù)據(jù)字節(jié)數(shù),如Le為l字節(jié)長度,則最大數(shù)據(jù)字節(jié)數(shù)為256。命令A(yù)PDU命令頭中的各字節(jié)的含義為CLA:指令類別,GSM11.11規(guī)定,OxAO用于GSM應(yīng)用;INS:指令代碼;Pl、P2:指令的參數(shù),Pl、P2的含義和具體指令相關(guān)。在GSM應(yīng)用中,對(duì)ISO/IEC7816-4的命令A(yù)PDU格式進(jìn)行了精簡,其命令A(yù)PDU的格式如下<table>tableseeoriginaldocumentpage6</column></row><table>其中,P3表示指令中送給SIM卡的數(shù)據(jù)長度,或是表示等待從卡響應(yīng)的數(shù)據(jù)最大長度。響應(yīng)APDU由可變長度的數(shù)據(jù)體和2字節(jié)尾部組成,其中數(shù)據(jù)體可選,尾部必備,如下表所示<table>tableseeoriginaldocumentpage6</column></row><table>其中,數(shù)據(jù)體的字節(jié)數(shù)由命令A(yù)PDU的Le指出。Data是接收設(shè)備,如智能卡,接收命令A(yù)PDU并進(jìn)行處理后送回發(fā)送設(shè)備,如接口設(shè)備,的數(shù)據(jù)。尾部SW1和SW2為狀態(tài)代碼,各一個(gè)字節(jié),指示命令執(zhí)行的結(jié)果正確與否。無論是命令A(yù)PDU,還是響應(yīng)APDU,其中的數(shù)據(jù)體Data都可用于傳輸自定義的數(shù)據(jù)。但由于APDU格式及定義所限,其長度由Le、Lc或P3來決定。Lc、Le有短型和擴(kuò)展型兩種,其長度分別為l個(gè)字節(jié)和3個(gè)字節(jié),3個(gè)字節(jié)中第一個(gè)字節(jié)值為0。因此,每條APDU所能傳輸?shù)臄?shù)據(jù)長度最多為64k字節(jié)。而在GSM協(xié)議中P3的長度固定為1字節(jié),意味著每條APDU所能傳輸?shù)臄?shù)據(jù)長度最多為256字節(jié)。因此,要傳輸更大容量的數(shù)據(jù),必須采用多條APDU和/或多個(gè)文件才能實(shí)現(xiàn)。在移動(dòng)通信協(xié)議中,通過狀態(tài)字節(jié)SW1、SW2的值可以自動(dòng)發(fā)送多條APDU命令。當(dāng)SWl/SW2-0x9FXX時(shí),移動(dòng)終端需要發(fā)送GETRESPONSE命令來獲取輸出數(shù)據(jù)。當(dāng)采用ENVELOPE命令進(jìn)行智能卡數(shù)據(jù)下載時(shí),如果SW1/SW2=0x9EXX時(shí),移動(dòng)終端同樣需要發(fā)送GETRESPONSE命令來獲取響應(yīng)數(shù)據(jù)。在支持主動(dòng)式命令移動(dòng)終端中,當(dāng)SWl/SW2-0x91XX時(shí),移動(dòng)終端需要發(fā)送FETCH命令來獲取智能卡需要發(fā)送的數(shù)據(jù)。這樣,通過狀態(tài)字節(jié),就可以在移動(dòng)終端與智能卡之間自動(dòng)進(jìn)行多條APDU命令或大容量數(shù)據(jù)的傳送。雖然移動(dòng)終端與智能卡都支持上述機(jī)制,但由于這些命令或機(jī)制都屬于硬件底層命令,并沒有完全對(duì)上層應(yīng)用開放。因此,移動(dòng)終端的上層應(yīng)用軟件無法利用這種數(shù)據(jù)傳輸機(jī)制。尤其是主動(dòng)式命令,需要智能卡和移動(dòng)終端同時(shí)都支持時(shí)才能使用。
發(fā)明內(nèi)容本發(fā)明需要解決的技術(shù)問題是提供一種移動(dòng)終端與智能卡之間的大容量數(shù)據(jù)交換方法,能夠使移動(dòng)終端應(yīng)用直接與智能卡交換大容量數(shù)據(jù),并進(jìn)一步保證數(shù)據(jù)傳輸?shù)耐暾院陀行?。本發(fā)明的上述技術(shù)問題這樣解決,提供一種移動(dòng)終端與智能卡之間的大容量數(shù)據(jù)交換方法,包括以下步驟1.1)利用通用APDU命令建立移動(dòng)終端與智能卡之間的數(shù)據(jù)傳輸通道;解決一致性和兼容性問題;1.2)利用額外附加在傳輸數(shù)據(jù)上的用于區(qū)分不同移動(dòng)終端應(yīng)用或不同智能卡文件的目的地址和源地址建立具體邏輯通道;1.3)利用所述數(shù)據(jù)傳輸通道和具體邏輯通道分塊傳輸其各分塊大小符合標(biāo)準(zhǔn)規(guī)定的大容量數(shù)據(jù)。按照本發(fā)明提供的數(shù)據(jù)交換方法,所述通用APDU命令包括對(duì)移動(dòng)終端應(yīng)用開放的更新二進(jìn)制UPDATEBINARYAPDU命令及其響應(yīng)和讀二進(jìn)制READBINARYAPDU命令及其響應(yīng);所述更新二進(jìn)制UPDATEBINARYAPDU命令和讀二進(jìn)制READBINARYAPDU命令響應(yīng)攜帶被傳輸數(shù)據(jù)。按照本發(fā)明提供的數(shù)據(jù)交換方法,所述分塊包括所述大容量數(shù)據(jù)的分割塊單元以及對(duì)應(yīng)目的地址單元和源地址單元;其中最后一個(gè)分塊包括結(jié)束標(biāo)志o按照本發(fā)明提供的數(shù)據(jù)交換方法,所述分塊還包括下一個(gè)數(shù)據(jù)塊長度單元,所述下一個(gè)數(shù)據(jù)塊長度單元的值為0是傳輸結(jié)束標(biāo)志,所述傳輸結(jié)束標(biāo)志包括但不限制于該方式。按照本發(fā)明提供的數(shù)據(jù)交換方法,所述分塊還可包括數(shù)據(jù)校驗(yàn)單元,所述步驟1.3)包括發(fā)送方的計(jì)算校驗(yàn)值,并將該校驗(yàn)值封裝到所述校驗(yàn)單元,和接收方根據(jù)所述數(shù)據(jù)校驗(yàn)單元進(jìn)行接收數(shù)據(jù)校驗(yàn)的過程。按照本發(fā)明提供的數(shù)據(jù)交換方法,移動(dòng)終端應(yīng)用向智能卡進(jìn)行數(shù)據(jù)傳輸時(shí),所述步驟1.3)包括智能卡利用APDU命令響應(yīng)的狀態(tài)字節(jié)SW1/SW2向移動(dòng)終端應(yīng)用發(fā)送命令執(zhí)行和校驗(yàn)成功/失敗。按照本發(fā)明提供的數(shù)據(jù)交換方法,所述步驟1.3)還可包括命令執(zhí)行或校-驗(yàn)失敗后進(jìn)行重傳;所述重傳包括利用所述讀二進(jìn)制READBINARYAPDU命令及其響應(yīng)獲取錯(cuò)誤狀態(tài)記錄文件并分析錯(cuò)誤狀態(tài)記錄決定是否重傳。按照本發(fā)明提供的數(shù)據(jù)交換方法,每一個(gè)所述分塊包括與自身數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)校驗(yàn)單元。按照本發(fā)明提供的數(shù)據(jù)交換方法,每多個(gè)所述分塊包括一個(gè)與該多個(gè)所述分塊對(duì)應(yīng)的數(shù)據(jù)校驗(yàn)單元,可節(jié)省數(shù)據(jù)校驗(yàn)單元,多傳輸有效數(shù)據(jù)。按照本發(fā)明提供的數(shù)據(jù)交換方法,每一個(gè)所述分塊包括與本塊及其存在的前一分塊對(duì)應(yīng)的數(shù)據(jù)校驗(yàn)單元,即第一分塊的數(shù)據(jù)校驗(yàn)單元與自身的數(shù)據(jù)對(duì)應(yīng),其他與兩分塊的數(shù)據(jù)對(duì)應(yīng),校驗(yàn)時(shí)與前一分塊結(jié)合校驗(yàn),這樣進(jìn)一步保證數(shù)據(jù)鏈接的正確性。按照本發(fā)明提供的數(shù)據(jù)交換方法,每多個(gè)所述分塊包括一個(gè)與本多個(gè)分塊及其存在的前一個(gè)分塊對(duì)應(yīng)的數(shù)據(jù)校^r單元,即最先傳輸?shù)亩鄠€(gè)分塊的數(shù)據(jù)校驗(yàn)單元與自身的多個(gè)分塊數(shù)據(jù)對(duì)應(yīng),其他多個(gè)分塊的數(shù)據(jù)校驗(yàn)單元與本多個(gè)分塊以及前一個(gè)分塊的數(shù)據(jù)相對(duì)應(yīng),校驗(yàn)時(shí)與前一個(gè)分塊結(jié)合校驗(yàn),這樣,不僅進(jìn)一步保證數(shù)據(jù)鏈接的正確性,還可以節(jié)省校驗(yàn)單元。按照本發(fā)明提供的數(shù)據(jù)交換方法,所述標(biāo)準(zhǔn)是ISO/IEC7816標(biāo)準(zhǔn),所述標(biāo)準(zhǔn)規(guī)定每條APDU最大傳輸數(shù)據(jù)可以是256字節(jié)或64k字節(jié)。按照本發(fā)明提供的數(shù)據(jù)交換方法,在GSM協(xié)議中,所述標(biāo)準(zhǔn)規(guī)定每條APDU最大傳輸數(shù)據(jù)是256字節(jié)。本發(fā)明提供的移動(dòng)終端與智能卡之間大容量數(shù)據(jù)交換方法,通過采用通用APDU命令,在移動(dòng)終端與智能卡之間建立統(tǒng)一數(shù)據(jù)傳輸通道,進(jìn)一步采用數(shù)據(jù)封裝和隧道協(xié)議的方法,解決利用標(biāo)準(zhǔn)ISO/IEC7816接口進(jìn)行大容量數(shù)據(jù)傳輸問題,采用本發(fā)明方法,具有以下明顯效果1)移動(dòng)終端可以直接訪問智能卡內(nèi)的任意數(shù)據(jù),同時(shí)不用考慮是否存在硬件兼容性的問題;2)移動(dòng)終端與智能卡之間可以可靠地傳輸大容量數(shù)據(jù),以實(shí)現(xiàn)各種基于智能卡的應(yīng)用;3)移動(dòng)終端可以采用文件系統(tǒng)的操作方式直接訪問智能卡數(shù)據(jù),極大地方便了應(yīng)用的實(shí)現(xiàn)。下面結(jié)合附圖和具體實(shí)施例進(jìn)一步對(duì)本發(fā)明進(jìn)行詳細(xì)說明。圖l為傳統(tǒng)移動(dòng)終端應(yīng)用訪問智能卡數(shù)據(jù)的結(jié)構(gòu)示意圖;圖2為本發(fā)明的移動(dòng)終端應(yīng)用訪問智能卡數(shù)據(jù)的訪問模型示意圖;圖3為本發(fā)明的數(shù)據(jù)包格式說明;圖4為本發(fā)明的數(shù)據(jù)封裝過程示意圖5為本發(fā)明的移動(dòng)終端向智能卡傳輸大容量數(shù)據(jù)的流程示意圖6為本發(fā)明的移動(dòng)終端向智能卡傳輸大容量數(shù)據(jù)時(shí)出錯(cuò)處理流程示意圖7為本發(fā)明的移動(dòng)終端從智能卡獲取大容量數(shù)據(jù)的流程示意圖8為本發(fā)明的移動(dòng)終端從智能卡獲取大容量數(shù)據(jù)時(shí)出錯(cuò)處理流程示意圖。具體實(shí)施例方式首先,說明本發(fā)明移動(dòng)終端與智能卡之間大容量數(shù)據(jù)交換方法中移動(dòng)終端應(yīng)用訪問智能卡數(shù)據(jù)方式與目前方式的區(qū)別,本發(fā)明模型如圖2所示,在目前方式(圖1)的基礎(chǔ)上,利用通用的APDU命令,在移動(dòng)終端與智能卡之間建立起通用的數(shù)據(jù)傳輸通道。移動(dòng)終端上層應(yīng)用采用通用的APDU命令直接訪問智能卡進(jìn)行大數(shù)據(jù)量傳輸,而不采用STK命令或AT命令;以避免圖1中可能由于軟件(如STK虛擬機(jī))接口或硬件接口(如AT命令)引起的不兼容性。第二步,說明本發(fā)明思路和主要手段(-)采用對(duì)上層應(yīng)用開放的通用APDU命令如采用讀二進(jìn)制READBINARY和更新二進(jìn)制UPDATEBINARY的命令來實(shí)現(xiàn)大容量數(shù)據(jù)傳輸。仁)建立邏輯通道由于移動(dòng)終端與智能卡均可以支持多種應(yīng)用,因此,在移動(dòng)終端與智能卡之間也需要建立與多種應(yīng)用同時(shí)進(jìn)行數(shù)據(jù)傳輸?shù)臋C(jī)制。本發(fā)明采用邏輯通道的方法來區(qū)別不同應(yīng)用間的數(shù)據(jù)傳輸。邏輯通道包括目的地址和源地址,分別代表不同的應(yīng)用或文件。曰使用"下一個(gè)數(shù)據(jù)塊長度標(biāo)識(shí)"由于移動(dòng)終端對(duì)底層命令的屏蔽,往往也無法使用0x9FXX、0x9EXX和0x91XX等狀態(tài)字來告訴接收端數(shù)據(jù)是否已經(jīng)傳輸完成。因此,本發(fā)明在每個(gè)數(shù)據(jù)包的傳輸標(biāo)識(shí)中采用"下一個(gè)數(shù)據(jù)塊長度標(biāo)識(shí)"來說明本次數(shù)據(jù)傳輸是否完成,以指示是否需要繼續(xù)發(fā)送APDU命令。接收端可以根據(jù)"下一個(gè)數(shù)據(jù)塊長度標(biāo)識(shí)"來決定是否需要繼續(xù)進(jìn)行APDU傳輸。當(dāng)"下一個(gè)數(shù)據(jù)塊長度標(biāo)識(shí),,值為0x00時(shí),表示沒有數(shù)據(jù)可傳,本次傳輸結(jié)束;當(dāng)"下一個(gè)數(shù)據(jù)塊長度標(biāo)識(shí),,值為非零時(shí),則表示下一個(gè)APDU命令需要傳送的字節(jié)數(shù)。通過這種機(jī)制,可以實(shí)現(xiàn)自動(dòng)完成大容量數(shù)據(jù)的傳送任務(wù)。卿校驗(yàn)由于大容量數(shù)據(jù)需要利用多次APDU來傳輸,而且,每次傳輸?shù)臄?shù)據(jù)量也相對(duì)較大。因此,為了保證數(shù)據(jù)的完整性以及可靠性,需要加入數(shù)據(jù)校驗(yàn)機(jī)制即每發(fā)送n(n>1)條APDU命令,傳輸n塊數(shù)據(jù)后,對(duì)這n塊數(shù)據(jù)進(jìn)行校驗(yàn),當(dāng)校驗(yàn)發(fā)現(xiàn)數(shù)據(jù)錯(cuò)誤時(shí),則重傳n塊數(shù)據(jù)。最后傳輸?shù)臄?shù)據(jù)塊數(shù)k《n。當(dāng)n=l時(shí),每傳輸一塊數(shù)據(jù)就校驗(yàn)一次,當(dāng)發(fā)現(xiàn)校驗(yàn)錯(cuò)誤時(shí),發(fā)送端重發(fā)本次APDU命令,及時(shí)地糾正出錯(cuò)的數(shù)據(jù)。當(dāng)n為所有要傳輸?shù)臄?shù)據(jù)塊時(shí),只需在傳輸完畢后對(duì)所有的數(shù)據(jù)進(jìn)行一次校驗(yàn),但是校驗(yàn)一旦發(fā)現(xiàn)數(shù)據(jù)錯(cuò)誤,則需要重傳所有的數(shù)據(jù)塊。(S)級(jí)聯(lián)校驗(yàn)由于大文件需要分解為多個(gè)數(shù)據(jù)塊進(jìn)行傳輸,為了防止數(shù)據(jù)合并出錯(cuò),進(jìn)一步,本發(fā)明采用級(jí)聯(lián)驗(yàn)證方法除最先傳輸?shù)膎(n》1)塊數(shù)據(jù)外,生成對(duì)應(yīng)的數(shù)據(jù)校驗(yàn)值時(shí),是對(duì)前一次傳輸?shù)囊粔K數(shù)據(jù)和本n塊數(shù)據(jù)一起計(jì)算校驗(yàn)值。這樣,最先傳輸?shù)膎塊數(shù)據(jù)的校驗(yàn)值是利用該n塊數(shù)據(jù)計(jì)算校驗(yàn)值,后續(xù)傳輸?shù)膎塊數(shù)據(jù)的校驗(yàn)值是利用前一次傳輸?shù)囊粔K數(shù)據(jù)和本傳輸?shù)膎塊數(shù)據(jù)共n+l塊數(shù)據(jù)計(jì)算校驗(yàn)值,對(duì)最后傳輸?shù)膋《n塊數(shù)據(jù)計(jì)算校驗(yàn)值時(shí),是利用前一次傳輸?shù)囊粔K數(shù)據(jù)和本傳輸?shù)膋塊數(shù)據(jù)共k+l塊數(shù)據(jù)計(jì)算校驗(yàn)值。驗(yàn)證時(shí),需要將本傳輸?shù)膎塊或k塊數(shù)據(jù)與前一次傳輸?shù)囊粔K數(shù)據(jù)一起合并計(jì)算校驗(yàn)值,從而可以防止數(shù)據(jù)鏈路出錯(cuò)。的狀態(tài)字節(jié)SW1/SW2重定義在移動(dòng)終端應(yīng)用作接收方時(shí),可直接通過校驗(yàn)成功與否判斷是否傳輸成功,但對(duì)于移動(dòng)終端應(yīng)用作發(fā)送方時(shí),由于在采用APDU進(jìn)行數(shù)據(jù)傳輸時(shí),APDU命令響應(yīng)的狀態(tài)字節(jié)SW1/SW^只能表明本次APDU命令是否成功執(zhí)行,無法向移動(dòng)終端應(yīng)用表明本次更新二進(jìn)制文件的傳輸是否成功,即無法判斷數(shù)據(jù)校驗(yàn)成功。因此,本發(fā)明仍然采用狀態(tài)字節(jié)來表示更新二進(jìn)制文件APDU命令執(zhí)行狀態(tài),返回0x卯00狀態(tài)字節(jié)時(shí),表示傳輸和校驗(yàn)均成功;當(dāng)返回其它值,則說明傳輸或校驗(yàn)出錯(cuò),暫停數(shù)據(jù)傳輸,并將錯(cuò)誤狀態(tài)或信息寫到一個(gè)記錄錯(cuò)誤狀態(tài)的文件中,然后返回傳輸失敗的狀態(tài)字節(jié),等待發(fā)送端發(fā)送查詢操作狀態(tài)的指令,然后根據(jù)情況決定是否重發(fā)數(shù)據(jù)或中止傳輸。同樣地,查詢操作狀態(tài)的指令也是通過常用的APDU命令讀取特定的錯(cuò)誤狀態(tài)記錄文件來實(shí)現(xiàn)的。第三步,詳細(xì)說明本發(fā)明移動(dòng)終端與智能卡之間大容量數(shù)據(jù)交換方法具體可以采用的一種數(shù)據(jù)包格式及其對(duì)應(yīng)數(shù)據(jù)封裝過程(-)數(shù)據(jù)包格式,如圖3所示,該數(shù)據(jù)包DATA最大256字節(jié),封裝在APDU命令中,包括2字節(jié)的傳輸標(biāo)識(shí)、最多250字節(jié)的數(shù)據(jù)塊和4字節(jié)的CRC32校-瞼值,其中傳輸標(biāo)識(shí)包括1字節(jié)的邏輯通道和1字節(jié)的下一個(gè)數(shù)據(jù)塊長度,其中1字節(jié)的邏輯通道b8-b5為目的地址,b4-bl為源地址,下一個(gè)數(shù)據(jù)塊長度為00時(shí),本次是最后一次傳輸。(二)數(shù)據(jù)封裝過程,如圖4所示,包括以下步驟401)數(shù)據(jù)分塊和計(jì)算校驗(yàn)值對(duì)所有要傳輸?shù)臄?shù)據(jù)進(jìn)行分塊處理,分解成適合APDU命令傳送的大小,并對(duì)傳輸?shù)臄?shù)據(jù)生成級(jí)聯(lián)校驗(yàn)碼;402)~407)給加入級(jí)聯(lián)校驗(yàn)碼的數(shù)據(jù)塊打上相應(yīng)的傳輸標(biāo)識(shí)進(jìn)行封裝,所有的數(shù)據(jù)包傳送完畢。當(dāng)n=l時(shí),對(duì)傳輸?shù)拿恳粔K數(shù)據(jù)都生成級(jí)聯(lián)校驗(yàn)碼,將所述校驗(yàn)碼、傳輸標(biāo)識(shí)和傳輸?shù)脑搲K數(shù)據(jù)進(jìn)行封裝;當(dāng)n>l時(shí),對(duì)傳輸?shù)膎塊數(shù)據(jù)生成一個(gè)級(jí)聯(lián)校驗(yàn)碼,將所述校驗(yàn)碼、傳輸標(biāo)識(shí)和n塊數(shù)據(jù)的一個(gè)數(shù)據(jù)塊進(jìn)行封裝,例如n塊數(shù)據(jù)的最后一個(gè)數(shù)據(jù)塊,將傳輸標(biāo)識(shí)和其余n-l塊數(shù)據(jù)進(jìn)行封裝;最后傳輸?shù)臄?shù)據(jù)塊k《n,對(duì)傳輸?shù)膋塊數(shù)據(jù)生成一個(gè)級(jí)聯(lián)校驗(yàn)碼,將所述校驗(yàn)碼、傳輸標(biāo)識(shí)和k塊數(shù)據(jù)的一個(gè)數(shù)據(jù)塊進(jìn)行封裝,例如k塊數(shù)據(jù)的最后一個(gè)數(shù)據(jù)塊,將傳輸標(biāo)識(shí)和其余k-l塊數(shù)據(jù)進(jìn)行封裝。最后,以釆用WindowsMobile操作系統(tǒng)的智能移動(dòng)終端作為實(shí)例對(duì)本發(fā)明方法進(jìn)行詳細(xì)說明(—WindowsMobile基礎(chǔ)①在WindowsMobile操作系統(tǒng)中,其提供了SIMManagerAPI來實(shí)現(xiàn)與SIM卡的數(shù)據(jù)交互。在simmgr.h頭文件中定義了部分函數(shù),用于從SIM卡獲取信息,按功能進(jìn)行分類,這些函數(shù)主要包括安全、電話簿、短信、文件等幾大類??梢耘cSIM卡進(jìn)行數(shù)據(jù)交換的函數(shù)主要是電話簿、短信、記錄/文件三類操作函數(shù)。電話本、短信兩類函數(shù)主要是是針對(duì)特定的數(shù)據(jù)結(jié)構(gòu),如電話簿、短信,提供出來的,不適用于自定義數(shù)據(jù)結(jié)構(gòu);如果需要傳輸自定義的數(shù)據(jù)結(jié)構(gòu),則釆用記錄/文件類操作函數(shù)比較合適。②在WindowsMobile中,支持ISO/IEC7816-4和GSM11.11規(guī)定的多種基本文件結(jié)構(gòu)1、透明文件/人接口看到的文件是一個(gè)lt據(jù)單元序列;2、線性定長記錄文件具有固定長度記錄的線性文件;3、線性不定長記錄文件具有可變長度記錄的線性文件;4、具有固定長度記錄的循環(huán)文件;具體的文件類型編碼如下<table>tableseeoriginaldocumentpage13</column></row><table>本發(fā)明用讀/寫/更新透明文件的方式來實(shí)現(xiàn)數(shù)據(jù)交換,通過連續(xù)多次的操作來實(shí)現(xiàn)大容量數(shù)據(jù)的交換。GSM11.11中與之對(duì)應(yīng)的APDU命令為READBINARY和UPDATEBINARY,相應(yīng)的格式如下<table>tableseeoriginaldocumentpage13</column></row><table><table>tableseeoriginaldocumentpage14</column></row><table>在WindowsMobile系統(tǒng)中,上述透明文件的讀寫功能是通過SimReadRecord和SimWriteRecord兩個(gè)函凄t來完成。由于這兩個(gè)函數(shù)與上述的APDU命4---對(duì)應(yīng),因此,為簡明起見,下面以GSM協(xié)議中的APDU命令為例進(jìn)行說明。①建立數(shù)據(jù)交換文件在執(zhí)行上述兩條APDU命令之前,需要選擇文件。本實(shí)施例在SIM卡內(nèi)建立三個(gè)透明文件用于數(shù)據(jù)交換。一個(gè)用于向SIM卡內(nèi)傳輸數(shù)據(jù),設(shè)為0x2FA0;—個(gè)用于從SIM卡內(nèi)傳出數(shù)據(jù),設(shè)為0x2FAl;一個(gè)用于記錄錯(cuò)誤狀態(tài),設(shè)為0x2FA2。實(shí)際上,這幾個(gè)文件都可以僅僅是一個(gè)虛擬文件,只有文件名,沒有實(shí)際為其分配存儲(chǔ)空間。將其與常用的APDU命令綁定,就可以形成用于傳輸大容量數(shù)據(jù)的專用APDU命令,由移動(dòng)終端的上層應(yīng)用和SIM卡負(fù)責(zé)對(duì)這些專用APDU命令的具體含義與功能進(jìn)行解釋和執(zhí)行。②硬件要求由于遵從ISO/IEC7816規(guī)范的SIM卡的文件大小不超過64k字節(jié),而本發(fā)明所要傳輸?shù)奈募笮〔粦?yīng)受任何限制。因此,需要SIM卡的文件系統(tǒng)支持超過64k字節(jié)容量的文件,這可以通過采用通用的文件系統(tǒng),如FAT16/32來實(shí)現(xiàn)。SIM卡操作系統(tǒng)及其文件系統(tǒng)的實(shí)現(xiàn)問題不在本發(fā)明討論之列,因此,若無特殊說明,本發(fā)明所指的SIM卡是指已經(jīng)具備這種大容量(超過64k字節(jié))文件訪問功能的SIM卡。目前,移動(dòng)終端的文件系統(tǒng)都支持超過64k字節(jié)的文件,因此,本發(fā)明對(duì)移動(dòng)終端沒有特殊要求。③APDU命令移動(dòng)終端與SIM卡之間的數(shù)據(jù)交換可以是雙向的,既可以由移動(dòng)終端向SIM卡傳輸數(shù)據(jù),也可以由SIM卡向移動(dòng)終端傳輸數(shù)據(jù)。但由于APDU命令是主從結(jié)構(gòu),通常是移動(dòng)終端主動(dòng)發(fā)送APDU命令,SIM卡被動(dòng)接收和執(zhí)行APDU命令,并返回執(zhí)行結(jié)果。因此,在此實(shí)施例中,為了保持對(duì)現(xiàn)有技術(shù)的兼容性和適應(yīng)性,仍然以移動(dòng)終端作為主動(dòng)者,發(fā)送APDU命令;SIM卡作為從動(dòng)者,接收APDU。當(dāng)移動(dòng)終端需要向SIM卡傳輸數(shù)據(jù)時(shí),移動(dòng)終端主動(dòng)發(fā)送APDU命令。當(dāng)需要從SIM卡中讀取數(shù)據(jù)時(shí),也是由移動(dòng)終端主動(dòng)發(fā)起讀取數(shù)據(jù)的APDU命令。對(duì)于支持主動(dòng)式命令的移動(dòng)終端和SIM卡,可以采用相同的設(shè)計(jì)原理,通過對(duì)ENVELOPE和FETCH等相關(guān)指令進(jìn)行功能擴(kuò)展,也可以實(shí)現(xiàn)大容量任意數(shù)據(jù)的傳輸和交換??紤]到移動(dòng)終端上層應(yīng)用對(duì)主動(dòng)式命令支持和開放的局限性,為了盡量擴(kuò)大使用范圍,提高兼容性,本實(shí)施例以傳統(tǒng)的(GSM11.11協(xié)議中指定的)APDU命令來例來實(shí)現(xiàn)任意格式的數(shù)據(jù)傳輸和交換。④數(shù)據(jù)校驗(yàn)和重傳在本發(fā)明的實(shí)施例中,如果數(shù)據(jù)傳輸出錯(cuò),則可以重發(fā)上次傳輸?shù)臄?shù)據(jù);同時(shí)也需要在每次APDU傳送完成后告訴接收端傳輸數(shù)據(jù)是否已經(jīng)傳完,是否需要繼續(xù)傳輸。為此,為每塊需要傳送的數(shù)據(jù)附以相應(yīng)的傳輸標(biāo)識(shí)和校驗(yàn)值,數(shù)據(jù)包格式如圖3所示,最前面2個(gè)字節(jié)為傳輸標(biāo)識(shí),最后4個(gè)字節(jié)為CRC32校驗(yàn)值,中間為所要傳輸?shù)目勺冮L度的數(shù)據(jù)塊,最長250字節(jié)。傳輸標(biāo)識(shí)包括兩個(gè)字節(jié),第一個(gè)字節(jié)為邏輯通道,表明本次傳輸?shù)哪康牡刂泛驮吹刂?。第二個(gè)字節(jié)為下一個(gè)數(shù)據(jù)塊長度標(biāo)識(shí),用于表明下一次APDU需要傳輸?shù)淖止?jié)數(shù),最大為250字節(jié);當(dāng)其值為0x00時(shí),表示已無數(shù)據(jù)可傳,本次數(shù)據(jù)傳輸過程結(jié)束;當(dāng)其值為非零值(不超過0xFA)時(shí),則表明還有數(shù)據(jù)需要繼續(xù)傳送,同時(shí)也說明下一個(gè)APDU命令需要傳送多少字節(jié)。數(shù)據(jù)塊采用CRC32算法進(jìn)行校驗(yàn),采用級(jí)聯(lián)方式,除第一塊數(shù)據(jù)的校驗(yàn)值就是它本身的校驗(yàn)值外,其它塊的校驗(yàn)值則是本塊與前一塊兩塊數(shù)據(jù)級(jí)聯(lián)結(jié)果的校驗(yàn)值。G)具體實(shí)施,本發(fā)明移動(dòng)終端與智能卡之間大容量數(shù)據(jù)交換方法具體包有四種情況,分別說明如下情況一如圖5所示,當(dāng)移動(dòng)終端向SIM卡傳輸大容量數(shù)據(jù)時(shí),連續(xù)多次地發(fā)送UPDATEBINARY命令,以實(shí)現(xiàn)大容量數(shù)據(jù)傳輸,SIM卡接收到由移動(dòng)終端發(fā)送的數(shù)據(jù)包時(shí),對(duì)數(shù)據(jù)包進(jìn)行拆包處理,獲取相應(yīng)的數(shù)據(jù)塊,并對(duì)其進(jìn)行校驗(yàn);校驗(yàn)成功后,返回成功執(zhí)行的狀態(tài)字節(jié),移動(dòng)終端接收到成功執(zhí)行的響應(yīng)APDU后,繼續(xù)發(fā)送余下的數(shù)據(jù),直至將所有的數(shù)據(jù)包發(fā)送完畢。情況二如圖6所示,當(dāng)移動(dòng)終端向SIM卡傳輸大容量數(shù)據(jù)時(shí),連續(xù)多次地發(fā)送UPDATEBINARY命令,以實(shí)現(xiàn)大容量數(shù)據(jù)傳輸,SIM卡接收到由移動(dòng)終端發(fā)送的數(shù)據(jù)包時(shí),對(duì)數(shù)據(jù)包進(jìn)行拆包處理,獲取相應(yīng)的數(shù)據(jù)塊,并對(duì)其進(jìn)行校驗(yàn);校驗(yàn)失敗后,返回執(zhí)行失敗的狀態(tài)字節(jié),并將有關(guān)失敗的原因?qū)懭胗糜谟涗涘e(cuò)誤狀態(tài)的文件0x2FA2,移動(dòng)終端接收到失敗的響應(yīng)APDU,則暫停發(fā)送下一條APDU命令,改為讀取記錄4晉誤狀態(tài)的文件0x2FA2,分析原因后決定是否重發(fā)或停止。情況一和情況二中,SIM卡每接收成功一條APDU命令,就將接收的數(shù)據(jù)塊寫入到大容量數(shù)據(jù)文件中保存起來,直至數(shù)據(jù)最后傳完為止。情況三和情況四由于SIM卡只能被動(dòng)地接受APDU命令,因此,當(dāng)需要從SIM卡內(nèi)讀出數(shù)據(jù)時(shí),仍然需要由移動(dòng)終端主動(dòng)發(fā)送APDU命令READBINARY,通過多次讀取特定文件(形成專用的APDU命令)的方式來實(shí)現(xiàn)。由于每次APDU命令傳送的最大數(shù)據(jù)容量為256字節(jié),因此,每次傳遞完256字節(jié)后,需要由SIM卡操作系統(tǒng)負(fù)責(zé)及時(shí)地更新APDU命令中的數(shù)據(jù),以便于移動(dòng)終端讀取后面的數(shù)據(jù)。數(shù)據(jù)更新的操作完全由SIM卡操作系統(tǒng)來完成。這既可以通過文件系統(tǒng)來完成,也可以采用GSM協(xié)議中更新透明文件的方式來實(shí)現(xiàn)。這樣,每執(zhí)行一次APDU命令后,就及時(shí)更新需要傳輸?shù)腁PDU數(shù)據(jù),重復(fù)多次更新和讀取,就可以實(shí)現(xiàn)大容量數(shù)據(jù)的傳輸,流程如圖6所示。當(dāng)移動(dòng)終端校驗(yàn)數(shù)據(jù)失敗后,需要將出錯(cuò)信息寫入到SIM卡內(nèi)的錯(cuò)誤狀態(tài)記錄文件,以通知SIM卡進(jìn)行相應(yīng)的處理。SIM卡處理完畢后,返回執(zhí)行成功的響應(yīng)APDU。之后,移動(dòng)終端就可以重新向SIM卡發(fā)送讀二進(jìn)制文件的APDU命令READBINARY,以從SIM卡中獲取數(shù)據(jù),有關(guān)流程如圖7所示。權(quán)利要求1、一種移動(dòng)終端與智能卡之間的大容量數(shù)據(jù)交換方法,其特征在于,包括以下步驟1.1)利用通用APDU命令建立移動(dòng)終端與智能卡之間的數(shù)據(jù)傳輸通道;1.2)利用額外附加在傳輸數(shù)據(jù)上的用于區(qū)分不同移動(dòng)終端應(yīng)用或不同智能卡文件的目的和源地址建立具體邏輯通道;1.3)利用所述數(shù)據(jù)傳輸通道和具體邏輯通道分塊傳輸其各分塊大小符合標(biāo)準(zhǔn)規(guī)定的大容量數(shù)據(jù)。2、根據(jù)權(quán)利要求1所述數(shù)據(jù)交換方法,其特征在于,所述通用APDU命令包括對(duì)移動(dòng)終端應(yīng)用開》文的讀二進(jìn)制READBINARTAPDU命令及其響應(yīng)和更新二進(jìn)制UPDATEBINARYAPDU命令及其響應(yīng)。3、根據(jù)權(quán)利要求1所述數(shù)據(jù)交換方法,其特征在于,所述分塊包括所述大容量數(shù)據(jù)的分割塊單元以及對(duì)應(yīng)目的地址單元和源地址單元;其中最后一個(gè)分塊包括結(jié)束標(biāo)志。4、根據(jù)權(quán)利要求3所述數(shù)據(jù)交換方法,其特征在于,所述分塊還包括下一個(gè)數(shù)據(jù)塊長度單元,所述下一個(gè)數(shù)據(jù)塊長度單元的值為0時(shí)表示所述結(jié)束標(biāo)志。5、根據(jù)權(quán)利要求3或4所述數(shù)據(jù)交換方法,其特征在于,所述分塊還可包括數(shù)據(jù)校驗(yàn)單元,所述步驟1.3)包括發(fā)送方計(jì)算校驗(yàn)值,并將校驗(yàn)值封裝到所述校驗(yàn)單元,和接收方根據(jù)所述數(shù)據(jù)校驗(yàn)單元進(jìn)行接收數(shù)據(jù)校驗(yàn)的過程。6、根據(jù)權(quán)利要求5所述數(shù)據(jù)交換方法,其特征在于,移動(dòng)終端應(yīng)用向智能卡進(jìn)行數(shù)據(jù)傳輸時(shí),所述步驟1.3)包括智能卡利用APDU命令響應(yīng)的狀態(tài)字節(jié)向移動(dòng)終端應(yīng)用發(fā)送命令執(zhí)行和校驗(yàn)成功/失敗。7、根據(jù)權(quán)利要求6所述數(shù)據(jù)交換方法,其特征在于,所述步驟I.3)還可包括命令執(zhí)行或校驗(yàn)失敗后進(jìn)行重傳;所述重傳包括利用所述讀二進(jìn)制READBINARYAPDU命令及其響應(yīng)獲取錯(cuò)誤狀態(tài)記錄文件。8、根據(jù)權(quán)利要求5所述數(shù)據(jù)交換方法,其特征在于,每一個(gè)所述分塊包括與自身數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)校驗(yàn)單元。9、根據(jù)權(quán)利要求5所述數(shù)據(jù)交換方法,其特征在于,每多個(gè)所述分塊包括與該多個(gè)所述分塊的數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)校驗(yàn)單元。10、根據(jù)權(quán)利要求5所述數(shù)據(jù)交換方法,其特征在于,每一個(gè)所述分塊包括與本塊及其存在的前一分塊的數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)校驗(yàn)單元。11、根據(jù)權(quán)利要求5所述數(shù)據(jù)交換方法,其特征在于,每多個(gè)所述分塊包括與本多個(gè)分塊及其存在的前一個(gè)分塊的數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)校驗(yàn)單元。全文摘要本發(fā)明涉及一種移動(dòng)終端與智能卡之間的大容量數(shù)據(jù)交換方法,包括利用通用APDU命令建立移動(dòng)終端與智能卡之間的數(shù)據(jù)傳輸通道;利用對(duì)應(yīng)移動(dòng)終端應(yīng)用和智能卡文件的目的地址和源地址建立具體邏輯通道;利用所述兩通道分塊傳輸各分塊大小符合標(biāo)準(zhǔn)規(guī)定的大容量數(shù)據(jù)。這種方法通過采用對(duì)上層應(yīng)用開放的通用APDU命令在移動(dòng)終端與智能卡之間建立公用數(shù)據(jù)傳輸通道,進(jìn)一步采用數(shù)據(jù)封裝和隧道協(xié)議的方法,解決利用標(biāo)準(zhǔn)ISO/IEC7816接口進(jìn)行大容量數(shù)據(jù)傳輸問題。文檔編號(hào)H04M1/02GK101321336SQ200710110448公開日2008年12月10日申請(qǐng)日期2007年6月6日優(yōu)先權(quán)日2007年6月6日發(fā)明者溯張,楊延輝,潘智勇,黃正全申請(qǐng)人:鳳凰微電子(中國)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
永吉县| 晋州市| 南江县| 姚安县| 濮阳县| 巴彦县| 天祝| 佛坪县| 罗平县| 高邑县| 盘山县| 高要市| 类乌齐县| 肥西县| 龙陵县| 新余市| 河南省| 榆树市| 马公市| 大化| 万盛区| 饶阳县| 万宁市| 繁峙县| 天津市| 凤凰县| 深水埗区| 新昌县| 湘潭市| 高陵县| 汨罗市| 广德县| 罗田县| 灵璧县| 泗洪县| 任丘市| 营山县| 邳州市| 赫章县| 通江县| 泽普县|