- 相關(guān)推薦
IC卡接口芯片TDA8007的讀寫器設(shè)計(jì)
摘要:闡述T=0傳輸協(xié)議,給出IC卡讀寫器中使用的IC卡APDU指令流程和原理框圖;重點(diǎn)介紹其中的IC卡接口芯片Philips的TDA8007,給出通過TDA8007對CPU IC卡上下電過程、具體程序及TDA8007使用中應(yīng)注意的問題。IC卡(Integrated Circuit card)即集成電路卡,是將一個集成電路芯片鑲嵌于朔料基片中,封裝成卡的形式,外形與常用的覆蓋磁條的磁卡相似。IC卡芯片具有寫入和存儲數(shù)據(jù)的能力。IC卡存儲器中的內(nèi)容根據(jù)需要可以有條件地供外部讀取,或供內(nèi)部信息處理和判定。根據(jù)卡中所鑲嵌的集成電路的不同,可以分成存儲器卡、邏輯加密卡、CPU卡三類。其中CPU卡即為由中央處理器CPU、EEPROM、隨機(jī)存儲器RAM以及固化在只讀存儲器ROM中的片內(nèi)操作系統(tǒng)COS(Chip Operation System)組成的IC卡。IC卡按與外界數(shù)據(jù)傳送的形式來分,有接觸式和非接觸式兩種。
圖1 T=0的CPU卡APDU指令實(shí)現(xiàn)流程
1 CPU IC卡T=0的協(xié)議介紹
目前大多數(shù)CPU IC卡采用T=0模式。所謂T=0,即CPU IC卡與接口設(shè)備(即讀寫器)中數(shù)據(jù)傳輸方式為異步半雙工字符傳輸模式。
從T=0協(xié)議的功能出發(fā),該協(xié)議的實(shí)現(xiàn)可以分為物理層、數(shù)據(jù)鏈路層、終端傳輸層和應(yīng)用層。其中物理層和數(shù)據(jù)鏈路層可以具體參看ISO7816標(biāo)準(zhǔn)。在T=0協(xié)議應(yīng)用,終端傳輸層和應(yīng)用層實(shí)際上是不易分割來說明的,下面簡單說明。
終端傳輸層根據(jù)卡片返回的過程字符和狀態(tài)字節(jié)執(zhí)行相應(yīng)的操作,使讀寫器對數(shù)據(jù)的處理過程明朗清晰。卡片返回的過程字節(jié)和狀態(tài)字節(jié)跟應(yīng)用層發(fā)送給卡的APDU(Application Protocol Data Unit,應(yīng)用協(xié)議數(shù)據(jù)單元)和VPP使用等有關(guān)。表1為VPP未用時的終端傳輸層中返回的過程字節(jié)。
表1
結(jié) 果
ACKINSVPP空閑,所有其余的數(shù)據(jù)字節(jié)相繼續(xù)被傳送INS 'FF'VPP空閑,下一個數(shù)據(jù)字節(jié)隨后被傳送SW1SW2VPP空閑,接口設(shè)備等待SW2字節(jié)應(yīng)用層即為由CLA、INS、P1、P2、P3作為命令頭組成的命令消息體的APDU響應(yīng)和應(yīng)答處理層。其中CLA為指令類別,INS為指令碼,P1、P2為參數(shù),P3為根據(jù)APDU的不同格式為發(fā)送給卡的數(shù)據(jù)長度或期望響應(yīng)的數(shù)據(jù)長度。APDU的幾種情況如表2所列。
表2
CPU卡對接口設(shè)備(即讀寫器)的應(yīng)答APDU情況如表3所列。
表3
其中體中的數(shù)據(jù)字節(jié)數(shù)由命令A(yù)PDU中的LE指出;SW1、SW2是必備的,可以指明命令A(yù)PDU執(zhí)行正確或執(zhí)行出錯的錯誤類型。
2 基于T=0傳輸協(xié)議的CPU IC的APDU指令流程
根據(jù)目前CPU卡的常用T=0協(xié)議、自帶編程升壓電路的應(yīng)用情況,以及本讀寫器接收IC卡數(shù)據(jù)報文直接發(fā)送PC機(jī)處理的特點(diǎn),本讀寫器可行的APDU命令和響應(yīng)的處理流程如圖1所示。
3 讀寫器的硬件組成
讀寫器的硬件部分主要由IC接口管理芯片TDA8007、MCUAT89C52、外部數(shù)據(jù)存儲器W24257S、串口電平轉(zhuǎn)換芯片MAX3226、安全I(xiàn)C卡座(即SAM卡座)、應(yīng)用IC卡座、鍵盤口供電的串口通信線及其它相關(guān)元器件組成。
圖2所示為通過PC機(jī)控制管理的外置于PC機(jī)的接觸式CPU IC卡讀寫器。通過定制的數(shù)據(jù)線,該讀寫器的5V直流電源可直接由鍵盤口提供,同時數(shù)據(jù)線還負(fù)責(zé)PC機(jī)與讀寫器的串行數(shù)據(jù)交換。在大部分IC卡讀寫應(yīng)用中,都涉及到IC卡的認(rèn)證和數(shù)據(jù)讀寫的國解密問題,所以本讀寫器除了提供一個供用戶使用的IC卡接口卡座外,還內(nèi)置了一個SAM卡,即安全I(xiàn)C卡卡座,以方便安裝SAM卡,保證應(yīng)用IC卡讀寫時的數(shù)據(jù)安全,保護(hù)用戶的利益。
硬件的其它組成部分,如處理器,目前采用Atmel的89C52。其4KB的Flash程序存儲器可以滿足讀寫器的程序空間需要。由于PC機(jī)與89C52、89C52與TDA8007的數(shù)據(jù)交換要求的暫存數(shù)據(jù)空間比較大,89C52提供的256字節(jié)不夠,需外加一片數(shù)據(jù)存儲器。本讀寫器中使用的是華邦的W24257S。其有32KB存儲容量,IC接口部分的主要芯片為Philips的TDA8007。
4 IC卡接口芯片應(yīng)用
下面介紹一下TDA8007及其應(yīng)用。TDA8007的原理結(jié)構(gòu)如圖3所示。
TDA8007芯片能夠提供兩個能同時滿足ISO7816標(biāo)準(zhǔn)及EMV和GSM11-11標(biāo)準(zhǔn)的IC卡讀寫接口。在本讀寫器中,一個用于與應(yīng)用IC通信,另一個用于與安全I(xiàn)C卡通信。與上文CPU卡的觸點(diǎn)圖相對應(yīng),CLKi、RSTi、VCCi、I/Oi、GNDCi、PRESi、C4i、C8i(其中i=1,2;C4i、C8i未用;PRESi可用于檢測IC卡是否插入。具體應(yīng)用可參看TDA8007的技術(shù)文檔)都直接由TDA8007提供給IC卡接口相連,MCU只需通過其接口控制并行通信來管理TDA8007,便可實(shí)現(xiàn)對IC卡的上電、下電及讀寫數(shù)據(jù)處理。其中,微處理器既
【IC卡接口芯片TDA8007的讀寫器設(shè)計(jì)】相關(guān)文章:
用于非接觸式IC卡的高頻接口模塊設(shè)計(jì)03-18
網(wǎng)絡(luò)計(jì)算機(jī)中IC卡讀寫器子系統(tǒng)設(shè)計(jì)03-19
PowerPC和Dallas的時鐘芯片接口設(shè)計(jì)03-18
接觸式IC卡接口原理與不同實(shí)現(xiàn)方式對比03-18
Trimedia DSP芯片JTAG接口的仿真器設(shè)計(jì)03-18
通用運(yùn)動控制卡CompactPCI接口的設(shè)計(jì)03-18
GPIB接口專用芯片TNT488203-20