IC卡技術(shù)講座之三:IC卡開發(fā)和制作環(huán)境
文章出處:http://m.mjagi.com 作者: 人氣: 發(fā)表時間:2012年02月23日
IC卡是攜帶應(yīng)用信息和數(shù)據(jù)的媒體,空白IC卡是不能立即使用的,必須對IC卡應(yīng)用系統(tǒng)進(jìn)行個人化,寫入系統(tǒng)IC卡和個人密碼,個人專用信息和應(yīng)用數(shù)據(jù). 這就要在銀行登記購買金融卡,輸入個人密碼,姓名等標(biāo)識,交費(fèi)并記帳.在IC卡使用過程中也需要核對密碼,多次讀出和修改卡上數(shù)據(jù).如在商場交費(fèi)時刷卡結(jié)帳,在ATM自動取款機(jī)取現(xiàn)金等.這些操作都需要一個使用環(huán)境,需要專用的IC卡讀寫器等硬件, 也需要應(yīng)用系統(tǒng)開發(fā)的軟件.
一.IC卡讀寫設(shè)備
IC卡讀寫設(shè)備大致可分為兩大類:一類為專用讀寫設(shè)備或稱脫機(jī)讀寫器.其特點是:充分利用IC卡存儲量大,可以獨立存儲和工作, 不需要和主機(jī)相聯(lián)就可完成數(shù)據(jù)讀寫的優(yōu)點,可與應(yīng)用設(shè)備結(jié)合或單獨工作.例如:IC卡電表,水表,ATM機(jī), 商場收款機(jī).另一類為通用讀寫設(shè)備,或稱聯(lián)機(jī)讀寫器,是帶有單片機(jī)和存儲器的設(shè)備,通過并行或串行口與PC機(jī)或應(yīng)用系統(tǒng)網(wǎng)絡(luò)相連接. 在運(yùn)行不同軟件時可以讀寫不同種類的IC卡,組成不同的應(yīng)用系統(tǒng).如果配備開發(fā)系統(tǒng)軟件,可對IC卡作初始規(guī)劃,數(shù)據(jù)加密和初始寫入,從而構(gòu)成IC卡應(yīng)用開發(fā)制作環(huán)境.在本講中, 我們重點討論這種通用開發(fā)系統(tǒng)的原理和使用方法.
IC卡讀寫設(shè)備由IC卡卡座,單片機(jī),數(shù)據(jù)存儲器RAM,程序存儲器EEPROM,接口電路和外圍設(shè)備等組成.接口包括與IC卡的通訊接口和與主機(jī)的通訊接口.
讀寫器各部分結(jié)構(gòu)與功能如下:
1.IC卡卡座
IC卡卡座是連接IC卡與讀寫器的.其功能包括對IC卡供電,提供讀寫信號和偉送數(shù)據(jù).要求提供方便的插拔方式和可靠的接觸,并帶有帶電插拔,過流保護(hù),插卡檢測等能力.IC卡和插座的結(jié)構(gòu)尺寸必須符合國際標(biāo)準(zhǔn)化組織(ISO)7816的標(biāo)準(zhǔn). 對觸點數(shù)目,位置,信號名稱和功能都有明確規(guī)定,以保證兼容性.
其中:C1(VCC)為電源;C2(RST)復(fù)位信號;C3(CLK)時鐘脈沖;C4(RFU) 待用; C5(GND)接地端;C6(VPP)編程電壓,用于對EPROM編程;C7( I/O) 數(shù)據(jù)輸入輸出端; C8(RFU)待用.
有些系統(tǒng)中IC卡的C4和C8未用,可見卡上僅有六個觸點.由于IC卡與我們常見的磁卡,條碼卡的動態(tài)掃描方式(俗稱-刷卡-)不同,是通過卡座觸點與IC卡上引腳接觸,用電信號靜態(tài)讀寫的,因此插拔方式應(yīng)保證插拔迅速,接觸可靠,磨損小.目前IC 卡插拔一般有下述幾種形式.
(1)推入-拉出機(jī)構(gòu):卡的插拔均為手動,因此結(jié)構(gòu)簡單.
(2)推入-推入彈出機(jī)構(gòu):插入為手動,讀寫后再向內(nèi)推卡,卡自動彈出.
(3)推入-彈出機(jī)構(gòu):手動推入,卡由機(jī)構(gòu)鎖定,操作后,系統(tǒng)自動釋放,將卡彈出.
(4)電動式出入卡機(jī)構(gòu):卡輕輕插入,卡由機(jī)構(gòu)自動引入,讀寫后自動送出.
在開發(fā)一個IC卡應(yīng)用系統(tǒng)時,應(yīng)該根據(jù)應(yīng)用特點來選擇卡座類型.如公交售票系統(tǒng)中.要求以快速挺拔,而金融卡則更重視可靠性和壽命.
2.單片機(jī)和存儲器
讀寫器中配備單片機(jī)和ROM,RAM存儲器,構(gòu)成微機(jī)系統(tǒng),單片機(jī)運(yùn)行ROM中固化的軟件,執(zhí)行與IC卡和上位PC機(jī)的通迅規(guī)程.控制對IC卡的讀寫,完成IC 卡與主機(jī)間數(shù)據(jù)的格式轉(zhuǎn)換.如果卡上數(shù)據(jù)加密加密存儲,讀寫時要執(zhí)行解密操作.密碼,密鑰和處理中間結(jié)果等參數(shù)保存在RAM中.對數(shù)據(jù)全部加密時,為減輕單片機(jī)負(fù)擔(dān),提高讀寫速度,常配有硬件密文轉(zhuǎn)換和單元.
3.接口電路和外圍設(shè)備
專用型和通用型讀寫器的接口和外圍設(shè)備有所不同.
由于專用讀寫器脫機(jī)工作, 一般直接配備小型外圍設(shè)備. 如LCD 液晶顯示器或LED發(fā)光二極管顯示器,用于系統(tǒng)狀態(tài)監(jiān)測和輸入輸出數(shù)據(jù)顯示.配小型16鍵或24 鍵鍵盤,用于數(shù)據(jù)和密碼輸入.有些帶打印機(jī)接口,可外接微型或小型打印機(jī).例如收款機(jī),ATM機(jī)可自動打印發(fā)貨票和清單.由于用于不同領(lǐng)域,專用機(jī)外型,體積,功能和操作方式相差很大,對外接口也多為專用接口.
通用讀寫器一般與PC機(jī)或網(wǎng)絡(luò)聯(lián)機(jī)工作, 常用標(biāo)準(zhǔn)并行或串行口與上位機(jī)連接和通訊.常用的是帶有25芯或9芯插口的RS232- C 型串行接口, 可直接接到PC 機(jī)的COM1或COM2上.此時,可利用主機(jī)的顯示器作監(jiān)視器,主機(jī)鍵盤作控制和輸入,利用主機(jī)打印機(jī)輸出.此時主機(jī)與讀寫器組成了IC卡應(yīng)用與開發(fā)系統(tǒng),操作與一般微機(jī)相仿,但用戶界面將隨所配軟件而有很大不同.
二.IC卡開發(fā)軟件及其使用
PC機(jī)配備通用讀卡器后,可以對多種IC 卡進(jìn)行開發(fā)和使用. 至于系統(tǒng)功能則要由PC機(jī)中運(yùn)行的軟件決定.運(yùn)行已開發(fā)好的應(yīng)用軟件,就組成相應(yīng)的IC卡開發(fā)系統(tǒng). 在這一環(huán)境中,既可以對應(yīng)用系統(tǒng)中的IC卡進(jìn)行規(guī)劃設(shè)計,完成卡的個人化進(jìn)程, 也可用于開發(fā)應(yīng)用管理程序,如醫(yī)療數(shù)據(jù)庫系統(tǒng).下面以一種常見的IC卡開發(fā)系統(tǒng)──明華IC卡讀寫系統(tǒng)為例,說明開發(fā)軟件的功能和使用方法.該軟件由深圳明華公司隨讀寫器一起提供.主要包括一個菜單式IC 卡讀寫程序, 以及一組可由高級語言調(diào)用的IC卡讀寫函數(shù).
軟件安裝方法如下:
將系統(tǒng)軟盤插入驅(qū)動器A:或B:中,鍵入INSTALL X:然后回車(X:為軟件安裝的目標(biāo)路徑,一般為C:).此時安裝軟件運(yùn)行,并自動在X:盤根目錄下建立MWIC\DEMO 子目錄,運(yùn)行DEMO.EXE文件即可進(jìn)入IC卡開發(fā)系統(tǒng)主菜單窗口,DEMO程序運(yùn)行中會自動識別與讀寫器連接的串行口,自動識別讀寫器中的IC 卡型號,相應(yīng)參數(shù)顯示在屏幕上.然后程序檢測IC卡,若卡參數(shù)正常,則光亮條定于讀卡操作項上,回車即可讀卡.
各行菜單列出了讀寫器軟件基本功能,用鼠標(biāo)加以選擇, 單擊即可產(chǎn)生下拉菜單或直接執(zhí)行相應(yīng)功能.主要功能解釋如下:
卡型選擇:通用讀寫器適于多種卡型.選中此功能產(chǎn)生下拉菜單, 可執(zhí)行自動檢測卡型,IC卡自動彈出及手動選擇卡型三個子功能.本讀寫器適用于美國ATMEL 公司的AT系列和德國西門子公司的SEL系列各種IC卡讀寫.
選通迅口:根據(jù)選擇的卡型,可將IC卡上可讀數(shù)據(jù)讀出, 并以十六進(jìn)制形式顯示在屏幕上. 多存儲區(qū)的卡上, 不同區(qū)內(nèi)容以不同顏色顯示. 加密區(qū)密碼和數(shù)據(jù)顯示FFH,表示不能讀出.
擦除操作:在改寫卡上數(shù)據(jù)時,需先將待寫區(qū)域內(nèi)容擦除. 選中此功能可以輸入擦除密碼,核對正確,即可擦除指定存儲區(qū)數(shù)據(jù).
寫卡操作:選中此功能,移動插入點到寫入位置,鍵入寫入數(shù)據(jù)后,按F5鍵, 即可寫入.對寫保護(hù)數(shù)據(jù),用空格鍵切換,決定是否寫入寫保護(hù)位. 鍵可退出寫入操作.
核對密碼:對加有密碼保護(hù)的IC卡,輸入密碼后,屏幕中顯示錯誤計數(shù)的當(dāng)前值,右下方顯示輸入密碼是否正確.密碼輸入出錯一次,次數(shù)減1, 計數(shù)值為零則此卡作廢.
熔斷操作:用于熔斷帶熔絲的IC卡上的熔絲.熔斷前表示該卡未個人化, 卡上發(fā)行商密碼可讀,可改寫,即可用于不同系統(tǒng).熔斷后密碼不可改寫,不可讀出, 表示已個人化.
利用上述功能,我們可以對多種類型的IC存儲卡,邏輯加密卡, 多分區(qū)卡進(jìn)行分區(qū),數(shù)據(jù)規(guī)劃,加密,可讀出,寫入,修改卡上數(shù)據(jù)了.當(dāng)然, 這時僅舉一種開發(fā)軟件及讀寫器實例.其它讀寫器和軟件功能雖有差異,但基本功能和操作方法是大同小異的.可參考相應(yīng)使用手冊.
除此之外,在一個實際的IC卡應(yīng)用系統(tǒng)中,上述功能應(yīng)包含在應(yīng)用軟件中. 即軟件程序員應(yīng)該能在應(yīng)用程序中使用高級語言對IC卡進(jìn)行上述操作. 實現(xiàn)方法是: 在IC卡開發(fā)系統(tǒng)中提供了適于不同語言的調(diào)用函數(shù), 用戶可以在用戶程序中通過函數(shù)調(diào)用來實現(xiàn)對IC卡操作的各種功能. 常見的函數(shù)有適于FOXPRO FOR DOS, FOXPROFOR WINDOWS,適用于VB和VC的等.
在IC卡應(yīng)用系統(tǒng)中,IC 卡上數(shù)據(jù)常需與管理系統(tǒng)中的數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交換. 用IC卡上數(shù)據(jù)更新數(shù)據(jù)庫內(nèi)容,或以數(shù)據(jù)庫內(nèi)容修改卡上數(shù)據(jù).因此開發(fā)一個IC卡應(yīng)用系統(tǒng),除了要對IC卡作規(guī)劃,進(jìn)行初始數(shù)據(jù)寫入,還需設(shè)計應(yīng)用系統(tǒng)的程序和數(shù)據(jù)庫,即要構(gòu)造上述一些高級語言程序開發(fā)環(huán)境.
綜上所述,開發(fā)一個IC卡應(yīng)用系統(tǒng)所需要的軟硬件環(huán)境包括:PC機(jī)或局域網(wǎng)絡(luò)工作站,連接通用IC卡讀寫器;與讀寫器配套的IC卡讀寫控制軟件, 設(shè)計應(yīng)用程序的高級程序開發(fā)環(huán)境.有了這些條件,下一講我們將討論IC卡數(shù)據(jù)存儲結(jié)構(gòu)和對IC卡編程使用的方法.