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