---智能卡(SmartCard)又稱集成電路卡(Integrated Circuit Card,即IC卡),將微電子技術(shù)和單片機技術(shù)結(jié)合在一起,具有高的可靠性、安全性和靈活性,其廣泛地應(yīng)用于電信、金融、交通及公共事業(yè)等領(lǐng)域。智能卡接口控制器是連接智能卡和主控設(shè)備的橋梁,是智能卡處理設(shè)備中的最重要組成部分之一。面對龐大的市場需求,各大芯片廠商都推出了各自的智能卡接口控制器芯片,例如,Philips的8007、Linear的LTC1755/6等。本文也提出一種實用的智能卡接口控制器的設(shè)計方案。
單片機智能卡設(shè)計的硬件結(jié)構(gòu)
讀寫器的硬件組成如圖1所示。包括電源、單片機系統(tǒng)、RS 232接口、IC卡讀寫接口、多路 時鐘系統(tǒng)和復(fù)位電路等幾個主要部分。
單片機系統(tǒng)由89C52CPU、三態(tài)地址鎖存器和靜態(tài)存貯器組成。89C52的P0口與三態(tài)地址鎖存 器形成地址總線的低8位,即A0~A7,以及數(shù)據(jù)總線D0~D7;89C52的P2.0~P2.6形成地址 總線的高8位,即A8~A12。靜態(tài)存貯器用于保存讀寫器運行過程中預(yù)設(shè)的一系列軟件指令。串行接口用于實現(xiàn)讀寫器與用戶端設(shè)備,如PC機等之間的數(shù)據(jù)通信。在當(dāng)前系統(tǒng)中采用了一片MAX232,其中的RXD、TXD做為數(shù)據(jù)的I/O通道接CPU串行口,完成讀寫器CPU與外部間的數(shù)據(jù)交換。同時,外部用戶端還可通過串口的RTS信號對IC卡讀寫器進(jìn)行軟件上的復(fù)位。
通用的智能卡多為異步型CPU卡,在其時鐘方面多需要不同的控制和發(fā)生體系。因此在讀寫 器中設(shè)置有專門的時鐘電路和時鐘控制電路,主要由74LS253雙四選一電路及D觸發(fā)器等組成 。晶振提供的脈沖經(jīng)分頻產(chǎn)生時鐘信號分別送到四選一電路輸入端。另外2個輸入端分別接地和T0(89C52CPU的T0引腳),T0信號通過軟件編程分頻后向IC卡提供時鐘信號,時鐘頻率、脈沖寬度可由具體編程決定。四選一電路的選擇控制端分別接P1.0和P1.1、P1.0和P1.1,分別對應(yīng)于不同的頻率關(guān)系。
在讀寫器的硬件構(gòu)成上,還提供有上/下電控制電路。這部分電路用于控制對卡的上電和下 電操作,也就是提供對卡的電源開關(guān)控制。主要由89C52的P1.7、R3,R4和三極管Q2等組成開關(guān)電路來控制對卡的上/下電。當(dāng)需要給IC卡加電時,通過預(yù)先設(shè)定的程序使P17置“0”,使Q2導(dǎo)通,VCC通過Q2將CVCC送至IC卡;當(dāng)I C卡下電時,置P1.7為“1”使Q2截止,從而禁止向IC卡供電。詳細(xì)電路如圖2所示。
作為用戶與IC卡之間的交互平臺,讀寫器需要分別建立與外部用戶和內(nèi)部IC卡之間的數(shù)據(jù)通 信體系。讀寫器中的IC卡接口即提供讀寫器與IC卡間進(jìn)行數(shù)據(jù)交換的通道。根據(jù)目前通用的IC卡接口標(biāo)準(zhǔn),與IC卡的接口基本上由8個信號組成:CLK時鐘、I/O數(shù)據(jù)、RST復(fù)位等,另外有3個NC信號供用戶自己定義。將他們分別與讀寫器中CPU接口線相連,再由CPU通過預(yù)設(shè)的軟件指令控制和實現(xiàn)與IC卡間的數(shù)據(jù)交換,如圖3所示。
3讀寫器的軟件體系
用戶以何種方式和過程使用讀寫器是讀寫器開發(fā)中的關(guān)鍵部分之一,其核心目標(biāo)是在設(shè)備硬件體系的基礎(chǔ)上,開發(fā)并提供一個使用戶能夠?qū)τ布M(jìn)行直接操作的軟件層,這個軟件層部分包括的主要是一系列的應(yīng)用協(xié)議和與其相配合的控制程序。在使用讀寫器的過程中,PC機或其他外部用戶系統(tǒng)必須遵循或借助于這些協(xié)議,才能夠與讀寫器內(nèi)部的控制程序正確互動和協(xié)調(diào)一致,以實現(xiàn)對設(shè)備有效的使用。依據(jù)實際的應(yīng)用要求,該讀寫器的軟件體系主要包含以下幾個組成部分。
3.1對讀寫器的啟動
用戶在開始使用讀寫器,也就是要求與讀寫器進(jìn)行數(shù)據(jù)通信前,首先需對設(shè)備進(jìn)行復(fù)位,使其加電啟動系統(tǒng)并進(jìn)入待機狀態(tài)。
具體實施過程為PC機端首先通過已選擇好的串口,根據(jù)標(biāo)準(zhǔn)串口通信協(xié)議發(fā)送一個正脈沖至 讀寫器端的RTS引腳。同時在讀寫器中,為了使用戶(如PC機)能夠驗證設(shè)備的當(dāng)前復(fù)位狀態(tài),在讀寫器被正確復(fù)位后,其上的控制系統(tǒng)會發(fā)送一個第一響應(yīng)碼至用戶端,在用戶正確接收到后,需返回一個第二響應(yīng)碼至讀寫器,使讀寫器端與用戶端能夠相互確認(rèn)并建立起正確有效的通信體系。否則在用戶端需要繼續(xù)等待,讀寫器在一定限時內(nèi)會重發(fā)第一響應(yīng)碼。但如果用戶端長時間未能收到正確數(shù)據(jù),此時重新進(jìn)行復(fù)位操作。
3.2通信“握手”
為保證數(shù)據(jù)通信過程的正確有效,使讀寫器保持較好的通信質(zhì)量,在協(xié)議中規(guī)定對用戶設(shè)備 與讀寫器間建立的通信信道的可靠性進(jìn)行實時的校驗。即在對讀寫器進(jìn)行復(fù)位啟動后,還需要在用戶端與讀寫器間進(jìn)行一個稱為通信“握手”的校驗程序,目的在于檢驗當(dāng)前通信信道的工作狀態(tài)是否正常。其具體內(nèi)容主要是對一組預(yù)定義的數(shù)據(jù),在用戶端與讀寫器之間進(jìn)行通信傳輸,通過驗證通信結(jié)果是否符合預(yù)設(shè)的數(shù)據(jù)內(nèi)容,校驗當(dāng)前通信信道是否正確可靠。通常為用戶發(fā)送第一響應(yīng)碼至讀寫器,讀寫器正確接收到則返回第二響應(yīng)碼至用戶端,而用戶端若正確接收到第二響應(yīng)碼則繼續(xù)下一步工作,否則等待讀寫器端重發(fā)數(shù)據(jù)。但如果在限時內(nèi)未收到正確的第二響應(yīng)碼數(shù)據(jù)則確認(rèn)為當(dāng)前通信出現(xiàn)異常,并提示系統(tǒng)報告當(dāng)前錯誤情況。
3.3指令格式
讀寫器的用戶在與讀寫器進(jìn)行數(shù)據(jù)通信時,根據(jù)智能卡應(yīng)用規(guī)范,用戶端都應(yīng)當(dāng)遵循一定的 格式組織和創(chuàng)建指令及提供所需的相關(guān)數(shù)據(jù),目前在讀寫器的控制與使用協(xié)議中定義并使用了以下的一種指令格式。
指令由5個基本字節(jié)組成:字節(jié)1:CLA,指令標(biāo)識符一;字節(jié)2:INS,指令標(biāo)識符二;字節(jié)3,4:P1和P2,指令參數(shù);字節(jié)5:LC,數(shù)據(jù)長度。
用戶端依據(jù)這樣格式建立和發(fā)送指令序列至讀寫器,其中字節(jié)1和字節(jié)2形成一個二級的指令標(biāo)識,說明當(dāng)前指令操作碼的含義;字節(jié)3和字節(jié)4提供一個參數(shù)空間,輔助說明指令操作碼;字節(jié)5說明當(dāng)前指令操作數(shù)的數(shù)據(jù)長度,主要是針對于非定長數(shù)據(jù)的通信傳輸過程。
3.4操作流程
在用戶實際使用讀寫器操作智能卡的過程中,絕大部分操作都是在完成一個由用戶端發(fā)送指令和數(shù)據(jù)至讀寫器,由讀寫器解釋執(zhí)行并轉(zhuǎn)發(fā)至智能卡,最后由智能卡端返回結(jié)果至讀寫器,讀寫器最終返回至用戶端的一個操作過程。因此也以他作為主要依據(jù)來規(guī)范相關(guān)的軟件協(xié)議,具體如下所示:
復(fù)位啟動讀寫器協(xié)議要求中的第一步工作。
通信“握手”為確保通信過程的正確有效,用戶與讀寫器進(jìn)行數(shù)據(jù)通信 前都將要先進(jìn)行這一步工作。
發(fā)送指令用戶向讀寫器發(fā)送操作指令時,指令組建必須要符合協(xié)議中的 規(guī)定格式。
發(fā)送數(shù)據(jù)對于含有操作數(shù)的指令,在送出指令碼后,還必須將相關(guān)的 數(shù)據(jù)送至讀寫器。
接收狀態(tài)碼讀寫器在接收到并執(zhí)行用戶指令后,會根據(jù)執(zhí)行結(jié)果的內(nèi)容返回執(zhí)行狀態(tài)碼和結(jié)果數(shù)據(jù)至PC機,由此用戶可得到指令的執(zhí)行結(jié)果。
接收數(shù)據(jù)如果當(dāng)前用戶指令要求讀寫器提供結(jié)果數(shù)據(jù),讀寫器在返回執(zhí)行狀態(tài)碼后,需繼續(xù)送結(jié)果數(shù)據(jù)至PC機。根據(jù)協(xié)議,結(jié)果數(shù)據(jù)的長度由指令碼中的LC字節(jié)說明。
4對智能卡的操作COS命令接口
讀寫器作為用戶端與IC卡間的操作平臺,在接受用戶端控制與使用的同時,還有一個重要的 功能就是實現(xiàn)對智能卡的操作。COS命令接口就是對智能卡操作的前端實現(xiàn)部分。通常在智能卡應(yīng)用當(dāng)中,智能卡本身都具備一個COS系統(tǒng),由他協(xié)調(diào)并控制卡上的所有指令和數(shù)據(jù)處理過程,讀寫器必須借助于COS系統(tǒng)才能夠?qū)崿F(xiàn)相應(yīng)的功能。COS命令接口做為讀寫器端的CO S數(shù)據(jù)通道直接影響到讀寫器對卡的操作。在這一部分協(xié)議中規(guī)定讀寫器向IC卡發(fā)送一組定制的指令數(shù)據(jù),IC卡接收到這組協(xié)議數(shù)據(jù)后,通過解釋這組指令數(shù)據(jù)的具體含義、形成操作指示,再進(jìn)一步轉(zhuǎn)換為讀、寫、比較、認(rèn)證及其他控制操作,然后將操作結(jié)果返回給接口設(shè)備,從而完成一次對卡的操作過程。讀寫器向卡發(fā)送的具有特定操作含義的數(shù)據(jù)塊就是對智能卡的操作命令;而從卡返回讀寫器的狀態(tài)及數(shù)據(jù)信息即為執(zhí)行結(jié)果。其詳細(xì)過程如圖4所示。
-
單片機
+關(guān)注
關(guān)注
6040文章
44594瀏覽量
636941 -
控制器
+關(guān)注
關(guān)注
112文章
16418瀏覽量
178790 -
cpu
+關(guān)注
關(guān)注
68文章
10890瀏覽量
212419
發(fā)布評論請先 登錄
相關(guān)推薦
評論