專(zhuān)利名稱(chēng)::制作智能卡的方法、裝置、母卡及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及智能卡領(lǐng)域,尤其涉及一種制作智能卡的方法、裝置、母卡及和系統(tǒng)。技術(shù)背景智能卡由硬件和軟件共同組成,硬件體系主要包括中央處理器CPU、非易失性存儲(chǔ)器NVM、隨才凡存4諸器(randomaccessmemory,RAM)、只讀存儲(chǔ)器(readonlymemory,ROM)等部分。軟件體系包括芯片操作系統(tǒng)(ChipOperationSystem:COS)、運(yùn)行于COS上的應(yīng)用程序以及用于存儲(chǔ)的文件。初預(yù)工序是智能卡生產(chǎn)的一個(gè)重要工序,其目的是在目標(biāo)卡上完成軟件系統(tǒng)的寫(xiě)入,從而完成智能卡的制作。目前在生產(chǎn)中由上位機(jī)依次執(zhí)行初始化程序和預(yù)個(gè)人化程序來(lái)完成智能卡片初預(yù)。上位機(jī)首先執(zhí)行初始化程序?yàn)榭ㄆ瑢?xiě)入COS,之后對(duì)卡片進(jìn)行復(fù)位,重新上電后,COS激活開(kāi)始運(yùn)行。再通過(guò)預(yù)個(gè)人化程序?yàn)榭ㄆ瑢?xiě)入應(yīng)用程序和存儲(chǔ)文件,COS通過(guò)個(gè)人化APDU指令來(lái)支持這種寫(xiě)入,主要包括創(chuàng)建文件,寫(xiě)文件內(nèi)容,寫(xiě)密鑰等幾個(gè)基本指令,上述指令由COS解釋并將數(shù)據(jù)寫(xiě)入卡片NVM區(qū)域。個(gè)人化指令執(zhí)行中包含大量的空間計(jì)算和地址分配的時(shí)間,所以在智能卡生產(chǎn)中需要提高初預(yù)的速度,從而提高生產(chǎn)效率。目前智能卡生產(chǎn)中提高初預(yù)速度的方法有兩種,一是減少初預(yù)程序所需要寫(xiě)入智能卡的數(shù)據(jù)量;二是提高卡片與上位機(jī)間的通訊速率,縮短寫(xiě)入數(shù)據(jù)需要的時(shí)間。但是,方法一增加了COS和應(yīng)用程序的設(shè)計(jì)難度,而且目前智能卡開(kāi)發(fā)框架已經(jīng)比較成熟,COS系統(tǒng)和應(yīng)用程序能夠精簡(jiǎn)的部分有限,方法二中通訊速率提升空間有限,所以綜上所述現(xiàn)有方法不能有效地提高初預(yù)速度。
發(fā)明內(nèi)容本發(fā)明實(shí)施例提供了一種智能卡制作的方法、裝置、母卡及系統(tǒng),能夠提高初預(yù)速度。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案一種制作智能卡的方法,包括讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù),所述母卡為通過(guò)初預(yù)工序制作的智能卡;存儲(chǔ)所讀取的數(shù)據(jù),將所述讀取的數(shù)據(jù)和初始化程序合并為初預(yù)文件;通過(guò)數(shù)據(jù)地址寫(xiě)操作將所述初預(yù)文件寫(xiě)入目標(biāo)卡。一種制作智能卡的裝置,包括讀取模塊,用于讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù),所述母卡為通過(guò)初預(yù)工序制作的智能卡;合并模塊,用于存儲(chǔ)所述讀取模塊所讀取的數(shù)據(jù),并將所述數(shù)據(jù)和初始化程序合并為初預(yù)文件;寫(xiě)入模塊,用于通過(guò)數(shù)據(jù)地址寫(xiě)操作將所述合并模塊生成的初預(yù)文件寫(xiě)入目標(biāo)卡。一種用于初預(yù)工序的母卡,包括接收模塊,用于接收制作智能卡的裝置下發(fā)的指令;第一接口模塊,用于根據(jù)所述接收模塊接收到的第一指令將所述母卡非易失性存儲(chǔ)器上有效數(shù)據(jù)的分布情況發(fā)送給所述制作智能卡的裝置;第二接口模塊,用于根據(jù)所述接收模塊接收到的第二指令確定母卡非易失性存儲(chǔ)器上要從中讀取數(shù)據(jù)的數(shù)據(jù)塊;第三接口模塊,用于根據(jù)所述接收模塊接收到的第三指令將所述第二接口模塊所確定數(shù)據(jù)塊上的有效數(shù)據(jù)發(fā)送給所述制作智能卡的裝置。一種制作智能卡的系統(tǒng),包括制作智能卡的裝置,用于向母卡下發(fā)指令,讀取所述母卡非易失性存儲(chǔ)器上的數(shù)據(jù),存儲(chǔ)從所述母卡上讀取的數(shù)據(jù),將所述數(shù)據(jù)和初始化程序合并為初預(yù)文件,通過(guò)數(shù)據(jù)地址寫(xiě)操作將所述初預(yù)文件寫(xiě)入目標(biāo)卡;母卡,用于接收所述制作智能卡的裝置下發(fā)的指令,并根據(jù)制作智能卡的裝置下發(fā)的第一指令將所述母卡非易失性存儲(chǔ)器上有效數(shù)據(jù)的分布情況發(fā)送給所述制作智能卡的裝置,或根據(jù)接收到的第二指令確定母卡非易失性存儲(chǔ)器上要從中讀取數(shù)據(jù)的數(shù)據(jù)塊,或根據(jù)接收到的第三指令將所確定數(shù)據(jù)塊上的有效數(shù)據(jù)發(fā)送給所述制作智能卡的裝置;目標(biāo)卡,用于所述制作智能卡的裝置通過(guò)數(shù)據(jù)地址寫(xiě)操作在目標(biāo)卡非易失性存儲(chǔ)器上寫(xiě)入初預(yù)文件。本發(fā)明實(shí)施例提供了一種制作智能卡的方法、裝置、母卡及系統(tǒng),先制作母卡,再讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù),將讀取出的數(shù)據(jù)經(jīng)處理后和初始化程序合并為初預(yù)文件,通過(guò)數(shù)據(jù)地址寫(xiě)操作將初預(yù)文件寫(xiě)入目標(biāo)卡,完成目標(biāo)卡軟件系統(tǒng)的寫(xiě)入。本發(fā)明實(shí)施例通過(guò)寫(xiě)數(shù)據(jù)的操作方式完成智能卡軟件系統(tǒng)的寫(xiě)入,代替了現(xiàn)有預(yù)個(gè)人化方法中由COS解析并執(zhí)行個(gè)人化指令的操作方式,節(jié)省了個(gè)人化指令執(zhí)行中所包含的空間計(jì)算和地址分配的時(shí)間,提高了智能卡生產(chǎn)中卡片初預(yù)的速度。圖1為本發(fā)明實(shí)施例所述制作智能卡的方法流程圖;圖2為本發(fā)明實(shí)施例所述制作智能卡的裝置框圖;圖3為本發(fā)明實(shí)施例所述用于初預(yù)工序的母卡框圖;圖4為本發(fā)明實(shí)施例所述制作智能卡的系統(tǒng)框圖;圖5為本發(fā)明實(shí)施例所述制作智能卡的方法流程圖。具體實(shí)施方式下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例提供的制作智能卡的方法、裝置、母卡及系統(tǒng)進(jìn)行詳細(xì)描述。以下實(shí)施例均為本發(fā)明的可選方案,實(shí)施例的排列順序并不代表其優(yōu)先順序。實(shí)施例一本發(fā)明實(shí)施例提供了一種制作智能卡的方法,如圖1所示,該方法包括101、讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù),所述母卡為通過(guò)初預(yù)工序制作的智能卡;首先由上位機(jī)依次執(zhí)行初始化程序和預(yù)個(gè)人化程序來(lái)制作好一張智能卡,稱(chēng)之為母卡,將待生產(chǎn)的卡片稱(chēng)為目標(biāo)卡。制作母卡與一般的智能卡不同,在制作母卡時(shí),母卡的COS設(shè)計(jì)功能函數(shù)實(shí)現(xiàn)非易失性存儲(chǔ)器區(qū)域數(shù)據(jù)接口,供上位機(jī)讀取母卡非易失性存儲(chǔ)器區(qū)域數(shù)據(jù)。這里是為了導(dǎo)出母卡非易失性存儲(chǔ)器區(qū)域數(shù)據(jù),才為母卡設(shè)計(jì)了接口,對(duì)于目標(biāo)卡,從安全角度來(lái)說(shuō),是一定要屏蔽這種接口的。在制作好母卡之后,上位機(jī)通過(guò)母卡中設(shè)定的接口讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù)。102、存儲(chǔ)所讀取的數(shù)據(jù),將所述讀取的數(shù)據(jù)和初始化程序合并為初預(yù)文件;先將初始化程序?qū)懭肽繕?biāo)卡的初預(yù)文件中,之后將上述讀取的數(shù)據(jù)分段,去除無(wú)效字符后重新組織為按照邏輯地址寫(xiě)卡的指令并寫(xiě)入到預(yù)個(gè)人化程序中,再將預(yù)個(gè)人化程序?qū)懭肽繕?biāo)卡的初預(yù)文件中。103、通過(guò)數(shù)據(jù)地址寫(xiě)操作將所述初預(yù)文件寫(xiě)入目標(biāo)卡。首先可以通過(guò)指令一選擇目標(biāo)卡非易失性存儲(chǔ)器上的lt據(jù)塊,指令一<table>tableseeoriginaldocumentpage9</column></row><table>其中,CLAINS是對(duì)指令的描述,BlockNo為要選擇的數(shù)據(jù)塊號(hào),01為所選擇的數(shù)據(jù)塊號(hào)所占用的字節(jié)長(zhǎng)度。之后通過(guò)指令二在所選擇的數(shù)據(jù)塊上按偏移地址將初預(yù)文件寫(xiě)入所述數(shù)據(jù)塊。指令二按偏移地址寫(xiě)數(shù)據(jù)<table>tableseeoriginaldocumentpage10</column></row><table>其中,CLAINS是對(duì)指令的描述,PIP2為相對(duì)于所選數(shù)據(jù)塊起始地址的偏移,Data為要寫(xiě)入數(shù)據(jù)塊的數(shù)據(jù),Lc為Data所占用的字節(jié)長(zhǎng)度。這樣將初預(yù)文件寫(xiě)入目標(biāo)卡的數(shù)據(jù)塊中,就完成了目標(biāo)卡軟件系統(tǒng)的寫(xiě)入。在目標(biāo)卡完成軟件系統(tǒng)的寫(xiě)入之后,還可以對(duì)目標(biāo)卡進(jìn)行檢驗(yàn)。先獲取母卡NVM區(qū)域數(shù)據(jù)的摘要信息,再獲取目標(biāo)卡NVM區(qū)域數(shù)據(jù)的摘要信息,對(duì)比所獲取的兩個(gè)摘要信息,如果兩個(gè)摘要信息一致,那么認(rèn)為目標(biāo)卡通過(guò)檢驗(yàn),如果兩個(gè)摘要信息不一致,那么認(rèn)為目標(biāo)卡未通過(guò)檢驗(yàn)。這樣就可以防止不合格的智能卡流通出去。本發(fā)明實(shí)施例提供了一種制作智能卡的方法,先制作母卡,再讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù),將讀取出的數(shù)據(jù)經(jīng)處理后和初始化程序合并為初預(yù)文件,通過(guò)數(shù)據(jù)地址寫(xiě)操作將初預(yù)文件寫(xiě)入目標(biāo)卡,完成目標(biāo)卡軟件系統(tǒng)的寫(xiě)入。本發(fā)明實(shí)施例通過(guò)寫(xiě)數(shù)據(jù)的操作方式完成智能卡軟件系統(tǒng)的寫(xiě)入,代替了現(xiàn)有預(yù)個(gè)人化方法中由COS解析并執(zhí)行個(gè)人化指令的操作方式,節(jié)省了個(gè)人化指令執(zhí)行中所包含的空間計(jì)算和地址分配的時(shí)間,提高了智能卡生產(chǎn)中卡片初預(yù)的速度。實(shí)施例二本發(fā)明實(shí)施例提供了一種制作智能卡的裝置,如圖2所示,該裝置包括讀取模塊201、合并模塊202和寫(xiě)入模塊203。其中,讀取模塊201用于讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù),所述母卡為通過(guò)初預(yù)工序制作的智能卡;合并模塊202用于存儲(chǔ)所述讀取模塊所讀取的數(shù)據(jù),并將所述數(shù)據(jù)和初始化程序合并為初預(yù)文件;寫(xiě)入模塊203用于通過(guò)數(shù)據(jù)地址寫(xiě)操作將所述合并模塊生成的初預(yù)文件寫(xiě)入目標(biāo)卡。其中,讀取模塊201通過(guò)母卡中設(shè)定的接口讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù),包括發(fā)送單元205、第一讀取單元206、第二讀取單元207和第三讀取單元208。其中,發(fā)送單元205用于向所述母卡下發(fā)指令;第一讀取單元206用于根據(jù)發(fā)送單元205下發(fā)的第一指令通過(guò)所述母卡的第一接口獲取所述母卡非易失性存儲(chǔ)器上有效數(shù)據(jù)的分布情況;第二讀取單元207用于根據(jù)第一讀取單元206所讀取的分布情況,根據(jù)發(fā)送單元205下發(fā)的第二指令通過(guò)所述母卡的第二接口選擇所述母卡非易失性存儲(chǔ)器上要從中讀取數(shù)據(jù)的數(shù)據(jù)塊;第三讀取單元208用于根據(jù)發(fā)送單元205下發(fā)的第三指令通過(guò)所述母卡的第三接口讀取第二讀取單元207所選擇數(shù)據(jù)塊上的有效數(shù)據(jù)。其中,合并模塊202包括第一寫(xiě)入單元209、組織單元210和第二寫(xiě)入單元Hl。其中,第一寫(xiě)入單元209用于將初始化程序?qū)懭肽繕?biāo)卡的初預(yù)文件中;組織單元210用于將所述讀取的數(shù)據(jù)分段,去除無(wú)效字符后重新組織為按照邏輯地址寫(xiě)卡的指令并寫(xiě)入到預(yù)個(gè)人化程序中;第二寫(xiě)入單元211用于在第一寫(xiě)入單元209將初始化程序?qū)懭肽繕?biāo)卡的初預(yù)文件中之后,將組織單元210生成的預(yù)個(gè)人化程序?qū)懭肽繕?biāo)卡的初預(yù)文件中。其中,寫(xiě)入模塊203包括選擇單元212和第三寫(xiě)入單元213。其中,選擇單元212用于選擇目標(biāo)卡非易失性存儲(chǔ)器上的數(shù)據(jù)塊;第三寫(xiě)入單元213用于在選擇單元212所選擇的數(shù)據(jù)塊上按偏移地址將初預(yù)文件寫(xiě)入所述數(shù)據(jù)塊。在目標(biāo)卡完成軟件系統(tǒng)的寫(xiě)入之后,還可以對(duì)目標(biāo)卡進(jìn)行檢驗(yàn)。所以該裝置還包括檢驗(yàn)?zāi)K204,用于分別獲取所述母卡和所述目標(biāo)卡非易失性存儲(chǔ)器上的摘要信息,并對(duì)比所獲取的摘要信息,如果所述兩個(gè)摘要信息一致,則該目標(biāo)卡通過(guò)檢驗(yàn);如果所述兩個(gè)摘要信息不一致,則該目標(biāo)卡未通過(guò)檢驗(yàn)。本發(fā)明實(shí)施例提供了一種用于初預(yù)工序的母卡,如圖3所示,該母卡包括接收模塊301、第一接口模塊302、第二接口模塊303和第三接口模塊304。其中,接收模塊301用于接收制作智能卡的裝置下發(fā)的指令;第一接口模塊302用于根據(jù)接收模塊301接收到的第一指令將所述母卡非易失性存儲(chǔ)器上有效數(shù)據(jù)的分布情況發(fā)送給所述制作智能卡的裝置;第二接口模塊303用于根據(jù)接收模塊301接收到的第二指令確定母卡非易失性存儲(chǔ)器上要從中讀取數(shù)據(jù)的數(shù)據(jù)塊;第三接口模塊304用于根據(jù)接收模塊301接收到的第三指令將第二接口模塊303所確定數(shù)據(jù)塊上的有效數(shù)據(jù)發(fā)送給所述制作智能卡的裝置。本發(fā)明實(shí)施例提供了一種制作智能卡的裝置和用于初預(yù)工序的母卡,先制作母卡,再讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù),將讀取出的數(shù)據(jù)經(jīng)處理后和初始化程序合并為初預(yù)文件,通過(guò)數(shù)據(jù)地址寫(xiě)操作將初預(yù)文件寫(xiě)入目標(biāo)卡,完成目標(biāo)卡軟件系統(tǒng)的寫(xiě)入。本發(fā)明實(shí)施例通過(guò)寫(xiě)數(shù)據(jù)的操作方式完成智能卡軟件系統(tǒng)的寫(xiě)入,代替了現(xiàn)有預(yù)個(gè)人化方法中由COS解析并執(zhí)行個(gè)人化指令的操作方式,節(jié)省了個(gè)人化指令執(zhí)行中所包含的空間計(jì)算和地址分配的時(shí)間,提高了智能卡生產(chǎn)中卡片初預(yù)的速度。實(shí)施例三本發(fā)明實(shí)施例提供了一種制作智能卡的系統(tǒng),如圖4所示,該系統(tǒng)包括制作智能卡的裝置401、母卡402和目標(biāo)卡403。其中,制作智能卡的裝置401用于向母卡402下發(fā)指令,讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù),存儲(chǔ)從母卡402上讀取的數(shù)據(jù),將所述數(shù)據(jù)和初始化程序合并為初預(yù)文件,通過(guò)數(shù)據(jù)地址寫(xiě)操作將所述初預(yù)文件寫(xiě)入目標(biāo)卡403;母卡402為通過(guò)初預(yù)工序制作的智能卡,用于接收制作智能卡的裝置401下發(fā)的指令,并根據(jù)制作智能卡的裝置401下發(fā)的第一指令將母卡非易失性存儲(chǔ)器上有效數(shù)據(jù)的分布情況發(fā)送給制作智能卡的裝置401,或才艮據(jù)接收到的第二指令確定母卡非易失性存儲(chǔ)器上要從中讀取數(shù)據(jù)的數(shù)據(jù)塊,或根據(jù)接收到的第三指令將所確定數(shù)據(jù)塊上的有效數(shù)據(jù)發(fā)送給制作智能卡的裝置401;目標(biāo)卡403為待生產(chǎn)的智能卡,用于制作智能卡的裝置401通過(guò)數(shù)據(jù)地址寫(xiě)操作在目標(biāo)卡非易失性存儲(chǔ)器上寫(xiě)入初預(yù)文件,完成自身軟件系統(tǒng)的寫(xiě)入。本發(fā)明實(shí)施例提供了一種制作智能卡的系統(tǒng),先制作母卡,再讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù),將讀取出的數(shù)據(jù)經(jīng)處理后和初始化程序合并為初預(yù)文件,通過(guò)數(shù)據(jù)地址寫(xiě)操作將初預(yù)文件寫(xiě)入目標(biāo)卡,完成目標(biāo)卡軟件系統(tǒng)的寫(xiě)入。本發(fā)明實(shí)施例通過(guò)寫(xiě)數(shù)據(jù)的操作方式完成智能卡軟件系統(tǒng)的寫(xiě)入,代替了現(xiàn)有預(yù)個(gè)人化方法中由COS解析并執(zhí)行個(gè)人化指令的操作方式,節(jié)省了個(gè)人化指令執(zhí)行中所包含的空間計(jì)算和地址分配的時(shí)間,提高了智能卡生產(chǎn)中卡片初預(yù)的速度。實(shí)施例四本發(fā)明實(shí)施例提供了一種制作智能卡的方法,如圖5所示,該方法包括501、使用初預(yù)工序制作一張母卡。使用傳統(tǒng)的初預(yù)工序,上位才幾依次執(zhí)行初始化程序和預(yù)個(gè)人化程序制作一張母卡,將批量生產(chǎn)的卡片稱(chēng)為目標(biāo)卡。母卡保存著數(shù)據(jù)源,在開(kāi)發(fā)測(cè)試階段還可以使用硬件仿真器來(lái)充當(dāng)母卡。在生產(chǎn)階段,母卡和目標(biāo)卡是同型號(hào)的芯片,母卡和目標(biāo)卡在硬件存儲(chǔ)性能上完全相同。13502、獲取母卡非易失性存儲(chǔ)器上的有效數(shù)據(jù);在制作母卡時(shí),母卡的COS設(shè)計(jì)三個(gè)功能函數(shù)實(shí)現(xiàn)非易失性存儲(chǔ)器區(qū)域數(shù)據(jù)接口,供上位機(jī)程序讀取母卡非易失性存儲(chǔ)器區(qū)域數(shù)據(jù)。為了導(dǎo)出母卡非易失性存儲(chǔ)器區(qū)域數(shù)據(jù),才為母卡設(shè)計(jì)了接口,對(duì)于目標(biāo)卡,從安全角度來(lái)說(shuō),是一定要屏蔽這種接口的。利用APDU指令(A)CLAINS0000Le通過(guò)母卡第一接口來(lái)獲取母卡非易失性存儲(chǔ)器上有效數(shù)據(jù)的分布情況,得到以列表形式返回的結(jié)果,返回的列表形式如下ItemlItem2…ItemNItemi的結(jié)構(gòu)為第i個(gè)有效數(shù)據(jù)塊起始地址(3字節(jié))+第i個(gè)有效數(shù)據(jù)塊的長(zhǎng)度(3字節(jié)),Le為獲取的分布情況占用的字節(jié)長(zhǎng)度,所以Le=6*N(N=l,2,3…)。利用APDU指令(B)CLAINS000001BlockNo通過(guò)母卡第二接口來(lái)為后續(xù)操作選擇數(shù)據(jù)塊號(hào),其中,BlockNo為所選擇的要從中讀取數(shù)據(jù)的數(shù)據(jù)塊的塊號(hào),Ol表明所選取數(shù)據(jù)塊的塊號(hào)所占用的字節(jié)長(zhǎng)度為1。利用APDU指令(C)CLAINSpip2Le通過(guò)母卡第三接口來(lái)讀取所選擇數(shù)據(jù)塊上的有效數(shù)據(jù),讀取所選擇數(shù)據(jù)塊從地址plp2開(kāi)始的Le個(gè)字節(jié)的數(shù)據(jù)。上位機(jī)獲取母卡非易失性存儲(chǔ)器上的有效數(shù)據(jù)流程如下1、上位機(jī)通過(guò)指令A(yù)獲得母卡非易失性存儲(chǔ)器上各數(shù)據(jù)塊起始地址和空間大小,并根據(jù)上述起始地址和空間大小計(jì)算出各數(shù)據(jù)塊的結(jié)束地址,在上位機(jī)上建立對(duì)應(yīng)的鏡像文件并指定鏡像文件的大小。2、按照數(shù)據(jù)塊的順序讀取數(shù)據(jù)塊上的數(shù)據(jù)。判斷當(dāng)前所選取的數(shù)據(jù)塊的塊號(hào)是否是最大塊號(hào),如果大于最大塊號(hào),表明已經(jīng)將所有數(shù)據(jù)塊上的數(shù)據(jù)讀取完畢,如果小于等于最大塊號(hào),則讀取當(dāng)前數(shù)據(jù)塊上的凄t據(jù)。3、在讀取當(dāng)前數(shù)據(jù)塊上的數(shù)據(jù)時(shí),以數(shù)據(jù)包的形式一次讀取一個(gè)數(shù)據(jù)包的數(shù)據(jù),數(shù)據(jù)包是固定長(zhǎng)度的,最多包括255個(gè)字節(jié)數(shù)據(jù)。將當(dāng)前數(shù)據(jù)塊的起始偏移地址作為初始地址開(kāi)始讀取數(shù)據(jù),每次都是讀取一個(gè)數(shù)據(jù)包的數(shù)據(jù),如果一個(gè)數(shù)據(jù)塊上的數(shù)據(jù)長(zhǎng)度是數(shù)據(jù)包長(zhǎng)度的整數(shù)倍,那么該數(shù)據(jù)塊上的數(shù)據(jù)可以全部被讀??;如果一個(gè)數(shù)據(jù)塊上的數(shù)據(jù)長(zhǎng)度不是數(shù)據(jù)包長(zhǎng)度的整數(shù)倍,那么會(huì)剩下長(zhǎng)度不足一個(gè)數(shù)據(jù)包長(zhǎng)度的數(shù)據(jù)不能夠被讀取。假如數(shù)據(jù)包的長(zhǎng)度固定為250個(gè)字節(jié),當(dāng)前數(shù)據(jù)塊上共有5000個(gè)字節(jié)的數(shù)據(jù),那么在讀取20個(gè)數(shù)據(jù)包之后正好可以將該數(shù)據(jù)塊上的數(shù)據(jù)讀取完畢,繼續(xù)讀取下一數(shù)據(jù)塊的數(shù)據(jù)。但是如果數(shù)據(jù)塊上共有5050個(gè)字節(jié)的數(shù)據(jù),那么在讀取20個(gè)數(shù)據(jù)包之后還剩下50個(gè)字節(jié)的數(shù)據(jù)沒(méi)有被讀取,那么將指令C開(kāi)始讀取數(shù)據(jù)的起始地址設(shè)置為剩下數(shù)據(jù)的起始地址,將Lc設(shè)為剩下數(shù)據(jù)的長(zhǎng)度,利用指令C讀取該數(shù)據(jù)塊剩下的數(shù)據(jù)。503、存儲(chǔ)所讀取的數(shù)據(jù),將所讀取的數(shù)據(jù)和初始化程序合并為初預(yù)文件;將所讀取出的數(shù)據(jù)存儲(chǔ)在上位機(jī)的磁盤(pán)中。在上位機(jī)的磁盤(pán)中存儲(chǔ)有初始化程序和從母卡非易失性存儲(chǔ)器上獲得的數(shù)據(jù),將從母卡非易失性存儲(chǔ)器上獲得的數(shù)據(jù)稱(chēng)為預(yù)個(gè)人化數(shù)據(jù)。初始化程序和預(yù)個(gè)人化數(shù)據(jù)中間以標(biāo)記<WriteUserData〉隔開(kāi)。先將初始化程序?qū)懭肽繕?biāo)卡的初預(yù)文件中,之后將預(yù)個(gè)人化數(shù)據(jù)分為i塊,每塊分為j條長(zhǎng)度為L(zhǎng)en的數(shù)據(jù),同時(shí)在上位機(jī)的內(nèi)存中存儲(chǔ)一條長(zhǎng)度為L(zhǎng)en,內(nèi)容全為FFF…的對(duì)比數(shù)據(jù)。然后將預(yù)個(gè)人化數(shù)據(jù)中的ixj條數(shù)據(jù)與對(duì)比數(shù)據(jù)逐條對(duì)比,直至發(fā)現(xiàn)第m(m<i)塊第n(n<j)條的數(shù)據(jù)與對(duì)比數(shù)據(jù)一致,則將第m塊第n條之后的數(shù)據(jù)舍棄,保存之前的數(shù)據(jù),并將之前所有的數(shù)據(jù)重新劃分為長(zhǎng)度為APDULen,一共k段的數(shù)據(jù),組織為按照邏輯地址寫(xiě)卡的指令并保存為預(yù)個(gè)人化程序。其中,APDULen與Len是不同取值的。如果k段數(shù)據(jù)中,有些段的數(shù)據(jù)頭、尾存在無(wú)效數(shù)據(jù)"FF",那么將這些無(wú)效數(shù)據(jù)全部去除,將去除無(wú)效數(shù)據(jù)后預(yù)個(gè)人化程序?qū)懭肽繕?biāo)卡的初預(yù)文件。504、通過(guò)數(shù)據(jù)地址寫(xiě)操作將所述初預(yù)文件寫(xiě)入目標(biāo)卡。首先可以通過(guò)指令一選擇目標(biāo)卡非易失性存儲(chǔ)器上的數(shù)據(jù)塊,指令一CLAINSPlP201BlockNo其中,CLAINS是對(duì)指令的描述,BlockNo為要選擇的數(shù)據(jù)塊號(hào),01為所選擇的數(shù)據(jù)塊號(hào)所占用的字節(jié)長(zhǎng)度。之后通過(guò)指令二在所選擇的數(shù)據(jù)塊上按偏移地址將初預(yù)文件寫(xiě)入所述數(shù)據(jù)塊。指令二按偏移地址寫(xiě)數(shù)據(jù)CLAINSPIP2Data其中,CLAINS是對(duì)指令的描述,PIP2為相對(duì)于所選數(shù)據(jù)塊起始地址的偏移,Data為要寫(xiě)入數(shù)據(jù)塊的數(shù)據(jù),Lc為Data所占用的字節(jié)長(zhǎng)度。這樣將初預(yù)文件寫(xiě)入目標(biāo)卡的數(shù)據(jù)塊中,就完成了目標(biāo)卡軟件系統(tǒng)的寫(xiě)入。在目標(biāo)卡完成軟件系統(tǒng)的寫(xiě)入之后,還可以對(duì)目標(biāo)卡進(jìn)行檢驗(yàn)。通過(guò)SHA-l、CRC16等公開(kāi)算法先獲取母卡NVM區(qū)域數(shù)據(jù)的摘要信息,再獲取目標(biāo)卡NVM區(qū)域數(shù)據(jù)的摘要信息,對(duì)比所獲取的兩個(gè)摘要信息,如果兩個(gè)摘要信息一致,那么認(rèn)為目標(biāo)卡通過(guò)檢驗(yàn),如果兩個(gè)摘要信息不一致,那么認(rèn)為目標(biāo)卡未通過(guò)檢驗(yàn)。這樣就可以防止不合格的智能卡流通出去。本發(fā)明實(shí)施例提供了一種制作智能卡的方法,先制作母卡,再讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù),將讀取出的數(shù)據(jù)經(jīng)處理后和初始化程序合并為初預(yù)文件,通過(guò)數(shù)據(jù)地址寫(xiě)操作將初預(yù)文件寫(xiě)入目標(biāo)卡,完成目標(biāo)卡軟件系統(tǒng)的寫(xiě)入。本發(fā)明實(shí)施例通過(guò)寫(xiě)數(shù)據(jù)的操作方式完成智能卡軟件系統(tǒng)的寫(xiě)入,代替了現(xiàn)有預(yù)個(gè)人化方法中由COS解析并執(zhí)行個(gè)人化指令的操作方式,節(jié)省了個(gè)人化指令執(zhí)行中所包含的空間計(jì)算和地址分配的時(shí)間,提高了智能卡生產(chǎn)中卡片初預(yù)的速度。以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本
技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。權(quán)利要求1、一種制作智能卡的方法,其特征在于,包括讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù),所述母卡為通過(guò)初預(yù)工序制作的智能卡;存儲(chǔ)所讀取的數(shù)據(jù),將所述讀取的數(shù)據(jù)和初始化程序合并為初預(yù)文件;通過(guò)數(shù)據(jù)地址寫(xiě)操作將所述初預(yù)文件寫(xiě)入目標(biāo)卡。2、根據(jù)權(quán)利要求i所述的制作智能卡的方法,其特征在于,所述讀取母卡非易失性存儲(chǔ)器上的教:據(jù)具體為通過(guò)母卡中設(shè)定的接口讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù)。3、根據(jù)權(quán)利要求2所述的制作智能卡的方法,其特征在于,所述通過(guò)母卡中設(shè)定的接口讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù)具體為通過(guò)所述母卡的第一接口獲取母卡非易失性存儲(chǔ)器上有效數(shù)據(jù)的分布情況;通過(guò)所述母卡的第二接口選擇母卡非易失性存儲(chǔ)器上要從中讀取數(shù)據(jù)的數(shù)據(jù)塊;通過(guò)所述母卡的第三接口讀取所選擇數(shù)據(jù)塊上的有效數(shù)據(jù)。4、根據(jù)權(quán)利要求l所述的制作智能卡的方法,其特征在于,所述通過(guò)數(shù)據(jù)地址寫(xiě)操作將所述初預(yù)文件寫(xiě)入目標(biāo)卡之后還包括分別獲取所述母卡和所述目標(biāo)卡非易失性存儲(chǔ)器上的摘要信息,并對(duì)比所獲取的摘要信息,如杲所述兩個(gè)摘要信息一致,則該目標(biāo)卡通過(guò)檢驗(yàn);如果所述兩個(gè)摘要信息不一致,則該目標(biāo)卡未通過(guò)檢驗(yàn)。5、根據(jù)權(quán)利要求l所述的制作智能卡的方法,其特征在于,所述存儲(chǔ)所讀取的數(shù)據(jù),將所述讀取的數(shù)據(jù)和初始化程序合并為初預(yù)文件具體為將初始化程序?qū)懭肽繕?biāo)卡的初預(yù)文件中;將所述讀取的數(shù)據(jù)分段,去除無(wú)效字符后重新組織為按照邏輯地址寫(xiě)卡的指令并寫(xiě)入到預(yù)個(gè)人化程序中;將預(yù)個(gè)人化程序?qū)懭肽繕?biāo)卡的初預(yù)文件中。6、根據(jù)權(quán)利要求1所述的制作智能卡的方法,其特征在于,所述通過(guò)數(shù)據(jù)地址寫(xiě)操作將所述初預(yù)文件寫(xiě)入目標(biāo)卡具體為選擇目標(biāo)卡非易失性存儲(chǔ)器上的數(shù)據(jù)塊;在所選擇的數(shù)據(jù)塊上按偏移地址將初預(yù)文件寫(xiě)入所述數(shù)據(jù)塊。7、一種制作智能卡的裝置,其特征在于,包括讀取模塊,用于讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù),所述母卡為通過(guò)初預(yù)工序制作的智能卡;合并模塊,用于存儲(chǔ)所述讀取模塊所讀取的數(shù)據(jù),并將所述數(shù)據(jù)和初始化程序合并為初預(yù)文件;寫(xiě)入模塊,用于通過(guò)數(shù)據(jù)地址寫(xiě)操作將所述合并模塊生成的初預(yù)文件寫(xiě)入目標(biāo)卡。8、根據(jù)權(quán)利要求7所述的制作智能卡的裝置,其特征在于,還包括檢驗(yàn)?zāi)K,用于分別獲取所述母卡和所述目標(biāo)卡非易失性存儲(chǔ)器上的摘要信息,并對(duì)比所獲取的摘要信息,如果所述兩個(gè)摘要信息一致,則該目標(biāo)卡通過(guò)檢驗(yàn);如果所述兩個(gè)摘要信息不一致,則該目標(biāo)卡未通過(guò)檢驗(yàn)。9、根據(jù)權(quán)利要求7所述的制作智能卡的裝置,其特征在于,所述讀取模塊下發(fā)指令,通過(guò)母卡中設(shè)定的接口讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù)。10、根據(jù)權(quán)利要求7或9所述的制作智能卡的裝置,其特征在于,所述讀取模塊包括發(fā)送單元,用于向所述母卡下發(fā)指令;第一讀取單元,用于根據(jù)所述發(fā)送單元下發(fā)的第一指令通過(guò)所述母卡的第一接口獲取所述母卡非易失性存儲(chǔ)器上有效數(shù)據(jù)的分布情況;第二讀取單元,用于根據(jù)所述第一讀取單元讀取的分布情況,根據(jù)所述發(fā)送單元下發(fā)的第二指令通過(guò)所述母卡的第二接口選擇所述母卡非易失性存儲(chǔ)器上要從中讀取數(shù)據(jù)的數(shù)據(jù)塊;第三讀取單元,用于根據(jù)所述發(fā)送單元下發(fā)的第三指令通過(guò)所述母卡的第三接口讀取所述第二讀取單元所選擇數(shù)據(jù)塊上的有效數(shù)據(jù)。11、根據(jù)權(quán)利要求7所述的制作智能卡的裝置,其特征在于,所述合并模塊包括第一寫(xiě)入單元,用于將初始化程序?qū)懭肽繕?biāo)卡的初預(yù)文件中;組織單元,用于將所述讀取的數(shù)據(jù)分段,去除無(wú)效字符后重新組織為按照邏輯地址寫(xiě)卡的指令并寫(xiě)入到預(yù)個(gè)人化程序中;第二寫(xiě)入單元,用于在所述第一寫(xiě)入單元將初始化程序?qū)懭肽繕?biāo)卡的初預(yù)文件中之后,將所述組織單元生成的預(yù)個(gè)人化程序?qū)懭肽繕?biāo)卡的初預(yù)文件中。12、根據(jù)權(quán)利要求7所述的制作智能卡的裝置,其特征在于,所述寫(xiě)入模塊包括選擇單元,用于選擇目標(biāo)卡非易失性存儲(chǔ)器上的數(shù)據(jù)塊;第三寫(xiě)入單元,用于在所述選擇單元所選擇的數(shù)據(jù)塊上按偏移地址將初預(yù)文件寫(xiě)入所述數(shù)據(jù)塊。13、一種用于初預(yù)工序的母卡,其特征在于,包括接收模塊,用于接收制作智能卡的裝置下發(fā)的指令;第一接口模塊,用于根據(jù)所述接收模塊接收到的第一指令將所述母卡非易失性存儲(chǔ)器上有效數(shù)據(jù)的分布情況發(fā)送給所述制作智能卡的裝置;第二接口模塊,用于根據(jù)所述接收模塊接收到的第二指令確定母卡非易失性存儲(chǔ)器上要從中讀取數(shù)據(jù)的數(shù)據(jù)塊;第三接口模塊,用于根據(jù)所述接收模塊接收到的第三指令將所述第二接口模塊所確定數(shù)據(jù)塊上的有效lt據(jù)發(fā)送給所述制作智能卡的裝置。14、一種制作智能卡的系統(tǒng),其特征在于,包括制作智能卡的裝置,用于向母卡下發(fā)指令,讀取所述母卡非易失性存儲(chǔ)器上的數(shù)據(jù),存儲(chǔ)從所述母卡上讀取的數(shù)據(jù),將所述數(shù)據(jù)和初始化程序合并為初預(yù)文件,通過(guò)數(shù)據(jù)地址寫(xiě)操作將所述初預(yù)文件寫(xiě)入目標(biāo)卡;母卡,用于接收所述制作智能卡的裝置下發(fā)的指令,并根據(jù)制作智能卡的裝置下發(fā)的第一指令將所述母卡非易失性存儲(chǔ)器上有效數(shù)據(jù)的分布情況發(fā)送給所述制作智能卡的裝置,或根據(jù)接收到的第二指令確定母卡非易失性存儲(chǔ)器上要從中讀取數(shù)據(jù)的數(shù)據(jù)塊,或根據(jù)接收到的第三指令將所確定數(shù)據(jù)塊上的有效數(shù)據(jù)發(fā)送給所述制作智能卡的裝置;目標(biāo)卡,用于所述制作智能卡的裝置通過(guò)數(shù)據(jù)地址寫(xiě)操作在目標(biāo)卡非易失性存儲(chǔ)器上寫(xiě)入初預(yù)文件。全文摘要本發(fā)明實(shí)施例公開(kāi)了一種制作智能卡的方法、裝置、母卡及系統(tǒng),屬于智能卡領(lǐng)域,能夠提高智能卡生產(chǎn)中卡片初預(yù)的速度。本發(fā)明實(shí)施例提供的技術(shù)方案為一種制作智能卡的方法,包括讀取母卡非易失性存儲(chǔ)器上的數(shù)據(jù),所述母卡為通過(guò)初預(yù)工序制作的智能卡;存儲(chǔ)所讀取的數(shù)據(jù),將所述讀取的數(shù)據(jù)和初始化程序合并為初預(yù)文件;通過(guò)數(shù)據(jù)地址寫(xiě)操作將所述初預(yù)文件寫(xiě)入目標(biāo)卡。本發(fā)明實(shí)施例提供的技術(shù)方案適用于智能卡生產(chǎn)系統(tǒng)中。文檔編號(hào)G06F9/445GK101556541SQ20091008441公開(kāi)日2009年10月14日申請(qǐng)日期2009年5月14日優(yōu)先權(quán)日2009年5月14日發(fā)明者劉承濤,臧宏偉,賈振波申請(qǐng)人:北京握奇數(shù)據(jù)系統(tǒng)有限公司