CPU卡的接口特性、傳輸協議與讀寫程序設計培訓講學_第1頁
CPU卡的接口特性、傳輸協議與讀寫程序設計培訓講學_第2頁
CPU卡的接口特性、傳輸協議與讀寫程序設計培訓講學_第3頁
CPU卡的接口特性、傳輸協議與讀寫程序設計培訓講學_第4頁
CPU卡的接口特性、傳輸協議與讀寫程序設計培訓講學_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Good is good, but better carries it.精益求精,善益求善。CPU卡的接口特性、傳輸協議與讀寫程序設計-CPU卡的接口特性、傳輸協議與讀寫程序設計摘要介紹ISO78164及中國金融集成電路(IC)卡規范所規定的T=0協議的CPU卡與終端之間的接口特性和傳輸協議,及以C51語言設計的CPU卡復位、下電及讀寫程序。關鍵詞IC卡CPU卡終端復位字符傳輸協議(T=0協議)IC卡的概念是20世紀70年代提出的。法國BULL公司首創IC卡產品,并將這項技術應用到金融、交通、醫療、身份證明等多個方面。IC卡的核心是集成電路芯片,一般為3m以下的半導體技術制造。IC卡具有寫入數

2、據和存儲數據的能力。IC可存儲其中的內容,根據需要可以有條件地供外部讀取,或供內部信息處理或校驗用。根據各種集成電路的不同,IC卡可以分為以下三類:存儲器卡、邏輯加密卡與CPU卡。其中,存儲器卡僅有數據存儲能力,沒有安全措施;邏輯加密卡僅有幾個字節的密碼,卡中有一個錯誤計數器,如果指定次數驗證密碼失敗,則卡中數據被自動鎖死,該卡數據不能再更改;CPU卡是這三類IC卡中最高級的卡,一般有ROM、RAM和EEPROM三種存儲器。ROM中存放的是程序,程序是為IC卡的CPU專門設計的,用來解釋讀寫器終端送來的命令。IC卡應用系統根據應用需要由終端送一系列命令到CPU卡,通過改變命令的內容和命令的順序

3、就可以滿足不同的需要,因此有較高的靈活性;同時,因為CPU有計算功能,存儲容量又大,可以進行比較復雜的加密/解密運算,極大提高了安全性。EEPROM主要用來存放一些應用數據,其容量比邏輯加密卡大,可實現一卡多用,是目前最安全的卡類型。因此,CPU卡是目前IC卡的重要發展方向之一。1CPU卡的接口特性1.1觸點定義觸點的定義遵循ISO78162的規定,如圖1所示。符號說明如表1所列。圖1CPU卡的觸點表1符號說明1.2字符幀數據在I/O上以圖2所示的字符幀方式傳輸。圖2字符幀傳輸方式每個位寬是1個etu,etu=372/f。在此處,f=3.57MHz。起始位由接收端通過對I/O周期采樣獲得,采樣

4、周期應小于0.2etu。2個連續字符起始位上升沿之間的間隔時間等于(100.2)etu加上1個保護時間(最少2個etu)。在保護時間內,卡與終端都應處于接收模式(I/O為高電平狀態)。如果卡或終端作為接收方檢測出奇偶錯誤,則I/O被置為低電平,以向發送方表明出現錯誤。1.3卡操作卡操作的步驟如下:將卡插入終端接口設備,使兩者的觸點相接并激活觸點;將卡復位,建立卡與終端間的通信;執行操作;釋放觸點,并從接口設備取出卡片。以下是除第步(執行操作)以外,各步的時序要求。(1)觸點激活時序如圖3所示。圖3觸點激活時序(2)卡復位卡利用低電平復位來完成異步復位應答,隨著觸點的激活,終端將進行一個冷復位并

5、從卡獲得復位應答。冷復位時序如圖4所示。圖4冷復位時序冷復位過程之后,如果收到的復位應答信號不滿足標準的規定,終端將啟動一個熱復位并從卡獲得復位響應。熱復位時序如圖5所示。圖5熱復位時序在實際程序設計時,由Reset子程序實現觸點激活和卡復位。(3)觸點釋放時序觸點釋放時序過程如圖6所示。圖6觸點釋放時序2傳輸協議與卡命令處理程序ISO78164及中國金融集成電路(IC)卡規范所規定的異步半雙工傳輸協議,是關于終端為實現傳輸控制和特殊控制而發出的命令的結構及其處理過程,包括了兩種協議:字符傳輸協議(T=0)和塊傳輸協議(T=1)。本文著重討論字符傳輸協議(T=0)協議,它是IC卡推薦使用的通信

6、協議。2.1命令命令包含1個連續4字節的命令頭,用CLA、INS、P1和P2以及1個可變長度的條件體來表示。命令頭定義如下:CLA:指令類別,除FF外的任何值;INS:在指令類別中的指令碼,當最低位是0,并且高位半字節既不是6也不是9時,INS才有效;P1、P2完成INS的參數字節。條件體定義如下:Lc(發送數據長度)占1個字節,在命令中定義為發送數據的字節數,取值范圍是1255。Data為將要發送的命令數據域,字節數由Lc定義。Le(接收數據長度)占1個字節,指出命令響應中預期的數據最大字節數。Le的取值范圍是0255。如果Le=0,預期數據字節的最大長度是256。可能的命令結構的4種情況定

7、義如表2所列。表2命令全部由終端應用層(TAL)初始化。它通過終端傳輸層(TTL)向卡發送1個由5個字節組成的命令頭,并等待一個過程字節。2.2過程字節卡收到命令后,緊接著返回一個過程字節給TTL,指明下一步該作什么,如表3所列。表3在(1)、(2)情況中,TTL完成動作后將等待另一個過程字節。在(3)情況中,第二個過程字節或狀態碼(SW2)被收到后,TTL將做以下事情:如果過程字節為61,TTL將發送一個最大長度(P3)為XX的得到響應命令(GETRESPONSE)給卡,XX為SW2的值。GETRESPONSE命令僅適用于T=0協議。命令報文的結構如表4所列。表4如果過程字節為6C,TTL將

8、立即重發前一個命令的命令頭給卡,它的P3值用XX代替。XX是SW2的值。如果過程字節是6X(除60、61及6C之外)或9X,與前兩者TTL自己處理不同,TTL將通過命令響應返回狀態碼給上一層-終端應用層(TAL),由TAL處理,并等待下一個命令。2.3卡命令處理程序流程圖圖7是卡命令處理程序,即終端與卡的信息交互過程的流程圖,具體程序見本刊網站。圖7卡命令處理程序流程圖以下是引腳說明。ECPU:決定卡的CLK觸點上是否有CLK信號的引腳;ICVCC:終端與卡的Vcc觸點相接觸的引腳;ICIO:終端與卡的I/O觸點相接觸的引腳;ICCLK:終端與卡的CLK觸點相接觸的引腳;ICRST:終端與卡的RST觸點相接觸的引腳。以下是程序中函數介紹。voidisr_timer1(void)interrupt3:定時器1中斷子程序,用于按位發送和接收數據字節;voidSnd(void):發送數據子程序,由定時器1實現;voidRcv(BYTEbytenr,BYTE*Buffer):接收數據子程序(參數含義分別是:接收數據字節數、接收數據的存放處),由定時器1實現;函數1voidReset(BYTE*len,BYTE*resp):復位子程序(參數含義分別是:返回復位響應數據的長度、復位響應數據);函數2v

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論