<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > CPU卡的接口特性、傳輸協(xié)議與讀寫(xiě)程序設計

CPU卡的接口特性、傳輸協(xié)議與讀寫(xiě)程序設計

作者: 時(shí)間:2011-12-20 來(lái)源:網(wǎng)絡(luò ) 收藏

 IC卡的概念是20世紀70年代提出的。法國B(niǎo)ULL公司首創(chuàng )IC卡產(chǎn)品,并將這項技術(shù)應用到金融、交通、醫療、身份證明等多個(gè)方面。IC卡的核心是集成電路芯片,一般為3μm以下的半導體技術(shù)制造。IC卡具有寫(xiě)入數據和存儲數據的能力。IC可存儲其中的內容,根據需要可以有條件地供外部讀取,或供內部信息處理或校驗用。

本文引用地址:http://dyxdggzs.com/article/187077.htm

  根據各種集成電路的不同,IC卡可以分為以下三類(lèi):存儲器卡、邏輯加密卡與卡。其中,存儲器卡僅有數據存儲能力,沒(méi)有安全措施;邏輯加密卡僅有幾個(gè)字節的密碼,卡中有一個(gè)錯誤計數器,如果指定次數驗證密碼失敗,則卡中數據被自動(dòng)鎖死,該卡數據不能再更改;卡是這三類(lèi)IC卡中最高級的卡,一般有ROM、RAM和EEPROM三種存儲器。ROM中存放的是程序,程序是為IC卡的專(zhuān)門(mén)設計的,用來(lái)解釋讀寫(xiě)器終端送來(lái)的命令。IC卡應用系統根據應用需要由終端送一系列命令到CPU卡,通過(guò)改變命令的內容和命令的順序就可以滿(mǎn)足不同的需要,因此有較高的靈活性;同時(shí),因為CPU有計算功能,存儲容量又大,可以進(jìn)行比較復雜的加密/解密運算,極大提高了安全性。EEPROM主要用來(lái)存放一些應用數據,其容量比邏輯加密卡大,可實(shí)現一卡多用,是目前最安全的卡類(lèi)型。因此,CPU卡是目前IC卡的重要發(fā)展方向之一。

  1 CPU卡的特性

  1.1 觸點(diǎn)定義

  觸點(diǎn)的定義遵循ISO7816-2的規定,如圖1所示。符號說(shuō)明如表1所列。

  

  圖1 CPU卡的觸點(diǎn)

  表1 符號說(shuō)明

  

  1.2 字符幀

  數據在I/O上以圖2所示的字符幀方式傳輸。

  

  圖2 字符幀傳輸方式

  每個(gè)位寬是1個(gè)etu,etu = 372/f。在此處,f = 3.57 MHz。

  起始位由接收端通過(guò)對I/O周期采樣獲得,采樣周期應小于0.2 etu。2個(gè)連續字符起始位上升沿之間的間隔時(shí)間等于(10±0.2)etu加上1個(gè)保護時(shí)間(最少2個(gè)etu)。在保護時(shí)間內,卡與終端都應處于接收模式(I/O為高電平狀態(tài))。如果卡或終端作為接收方檢測出奇偶錯誤,則I/O被置為低電平,以向發(fā)送方表明出現錯誤。

  1.3 卡操作

  卡操作的步驟如下:

 ?、?將卡插入終端設備,使兩者的觸點(diǎn)相接并激活觸點(diǎn);

 ?、?將卡復位,建立卡與終端間的通信;

 ?、?執行操作;

 ?、?釋放觸點(diǎn),并從設備取出卡片。

  以下是除第③步(執行操作)以外,各步的時(shí)序要求。

 ?。?) 觸點(diǎn)激活

  時(shí)序如圖3所示。

  

  圖3 觸點(diǎn)激活時(shí)序

 ?。?) 卡復位

  卡利用低電平復位來(lái)完成異步復位應答,隨著(zhù)觸點(diǎn)的激活,終端將進(jìn)行一個(gè)冷復位并從卡獲得復位應答。冷復位時(shí)序如圖4所示。

  

  圖4 冷復位時(shí)序

  冷復位過(guò)程之后,如果收到的復位應答信號不滿(mǎn)足標準的規定,終端將啟動(dòng)一個(gè)熱復位并從卡獲得復位響應。熱復位時(shí)序如圖5所示。

  

  圖5 熱復位時(shí)序

  在實(shí)際時(shí),由Reset子程序實(shí)現觸點(diǎn)激活和卡復位。

 ?。?) 觸點(diǎn)釋放時(shí)序

  觸點(diǎn)釋放時(shí)序過(guò)程如圖6所示。

  

  圖6 觸點(diǎn)釋放時(shí)序

  2 與卡命令處理程序

  ISO7816-4及中國金融集成電路(IC)卡規范所規定的異步半雙工,是關(guān)于終端為實(shí)現傳輸控制和特殊控制而發(fā)出的命令的結構及其處理過(guò)程,包括了兩種協(xié)議:字符(T = 0)和塊傳輸協(xié)議(T = 1)。本文著(zhù)重討論字符傳輸協(xié)議(T = 0)協(xié)議,它是IC卡推薦使用的通信協(xié)議。

  2.1 命令

  命令包含1個(gè)連續4字節的命令頭,用CLA、INS、P1和P2以及1個(gè)可變長(cháng)度的條件體來(lái)表示。

  命令頭定義如下:

  ◇ CLA:指令類(lèi)別,除“FF”外的任何值;

  ◇ INS:在指令類(lèi)別中的指令碼,當最低位是“0”,并且高位半字節既不是“6”也不是“9”時(shí),INS才有效;

  ◇ P1、P2完成INS的參數字節。

  條件體定義如下:

  ◇ Lc(發(fā)送數據長(cháng)度)占1個(gè)字節,在命令中定義為發(fā)送數據的字節數,取值范圍是1~255。

  ◇ Data為將要發(fā)送的命令數據域,字節數由Lc定義。

  ◇ Le (接收數據長(cháng)度)占1個(gè)字節,指出命令響應中預期的數據最大字節數。Le的取值范圍是0~255。如果Le=0,預期數據字節的最大長(cháng)度是256。

  可能的命令結構的4種情況定義如表2所列。

  表2

  

  命令全部由終端應用層(TAL)初始化。它通過(guò)終端傳輸層(TTL)向卡發(fā)送1個(gè)由5個(gè)字節組成的命令頭,并等待一個(gè)過(guò)程字節。

  2.2 過(guò)程字節

  卡收到命令后,緊接著(zhù)返回一個(gè)過(guò)程字節給TTL,指明下一步該作什么,如表3所列。

  表3

  

  在(1)、(2)情況中,TTL完成動(dòng)作后將等待另一個(gè)過(guò)程字節。在(3)情況中,第二個(gè)過(guò)程字節或狀態(tài)碼(SW2)被收到后,TTL將做以下事情:

  ◇ 如果過(guò)程字節為“61”,TTL將發(fā)送一個(gè)最大長(cháng)度(P3)為“XX”的得到響應命令(GET RESPONSE)給卡,“XX”為SW2的值。GET RESPONSE命令僅適用于T = 0協(xié)議。命令報文的結構如表4所列。

  表4

  

  ◇ 如果過(guò)程字節為“6C”,TTL將立即重發(fā)前一個(gè)命令的命令頭給卡,它的P3值用“XX”代替。“XX”是SW2的值。

  ◇ 如果過(guò)程字節是“6X”(除“60”、“61”及“6C”之外)或“9X”,與前兩者TTL自己處理不同,TTL將通過(guò)命令響應返回狀態(tài)碼給上一層--終端應用層(TAL),由TAL處理,并等待下一個(gè)命令。

  2.3 卡命令處理程序流程圖

  圖 7 是卡命令處理程序,即終端與卡的信息交互過(guò)程的流程圖,具體程序見(jiàn)本刊網(wǎng)站。

  

  圖7 卡命令處理程序流程圖

  以下是引腳說(shuō)明。

  ECPU:決定卡的CLK觸點(diǎn)上是否有CLK信號的引腳;

  ICVCC:終端與卡的Vcc觸點(diǎn)相接觸的引腳;

  ICIO: 終端與卡的I/O觸點(diǎn)相接觸的引腳;

  ICCLK:終端與卡的CLK觸點(diǎn)相接觸的引腳;

  ICRST:終端與卡的RST觸點(diǎn)相接觸的引腳。

  以下是程序中函數介紹。

  ◇ void isr_timer1(void) interrupt 3:定時(shí)器1中斷子程序,用于按位發(fā)送和接收數據字節;

  ◇ void Snd(void): 發(fā)送數據子程序,由定時(shí)器1實(shí)現;

  ◇ void Rcv(BYTE bytenr,BYTE *Buffer):接收數據子程序(參數含義分別是:接收數據字節數、接收數據的存放處),由定時(shí)器1實(shí)現;

  ◇ 函數1 void Reset(BYTE *len, BYTE *resp):復位子程序(參數含義分別是:返回復位響應數據的長(cháng)度、復位響應數據);

  ◇ 函數2 void Power_off(void):觸點(diǎn)釋放子程序;

  ◇ 函數3 WORD CPUC_Cmd(BYTE len,BYTE* comm, BYTE *lenr, BYTE* resp):CPU卡命令子程序(參數含義分別是:發(fā)送命令長(cháng)度、發(fā)送命令、返回字節數、返回數據),函數返回狀態(tài)字節SW1SW2。

  參考文獻

  1 全國標準化技術(shù)委員。 中國金融集成電路(IC)卡規范(V1.0)。 北京:中國金融出版社

  2 中國華大集成電路設計中心。 CIU9102智能卡接口特性和通信規程

塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>