智能卡復(fù)位應(yīng)答-字符定義
文章出處:http://www.luckydriving.com 作者: 人氣: 發(fā)表時(shí)間:2012年05月06日
在符合基本ATR的情況下,一個(gè)字符是否存在,以及允許的取值范圍(如果存在)由其“基本應(yīng)答”信息指明。基本應(yīng)答描述和可能存在的其它擴(kuò)展情況之間不沖突。例如,如果IC卡支持多個(gè)傳輸協(xié)議和多種傳輸參數(shù)值,它可以回送附加字符,但是,只有在IC卡返回一個(gè)基本ATR,或者返回一個(gè)滿(mǎn)足最低功能需求的終端支持的ATR,才能夠保證接下來(lái)字符的正確交換。
如果終端不支持IC卡支持的其它傳輸協(xié)議以及傳輸參數(shù)值,IC卡應(yīng)該有能力用基本ATR定義的模式和終端進(jìn)行交互。
復(fù)位應(yīng)答中回送字符的最大個(gè)數(shù)(包括歷史字符,但不包括TS)為32個(gè)。
終端如果無(wú)法滿(mǎn)足IC卡回送ATR中定義的傳輸模式,將發(fā)送一個(gè)熱復(fù)位信號(hào),或?qū)C卡置為靜止?fàn)顟B(tài)以結(jié)束卡片操作過(guò)程。
1、TS--初始字符
起始字符TS具有兩個(gè)功能:一是向終端提供一個(gè)便于位同步的已知位模式,二是指定解釋后續(xù)字符的邏輯約定。
使用反向邏輯約定時(shí),I/O的低電平狀態(tài)等效邏輯1,并且該數(shù)據(jù)字節(jié)的最低位在起始位之后發(fā)送,第一個(gè)半字節(jié)LHHL用于位同步(其中L表示低電平,H表示高電平)。
基本響應(yīng):IC卡將回送的TS為以下兩個(gè)值之一。
* (H)LHHLLLLLLH表示反向約定,值為0x3F。
* (H)LHHLHHHLLH表示正向約定,值為0x3B。
終端一般都支持正向約定和反射約定,并接收IC卡回送的0x3F和0x3B中的任何一個(gè),對(duì)于其他值將拒絕。目前反向約定模式的卡片使用越來(lái)越少,在以后的卡片規(guī)范和應(yīng)用規(guī)范版本中可能淘汰,所以在我們的設(shè)計(jì)中,建議大家使用0x3B,即正向約定。
2、T0--格式字符
格式字符T0由兩個(gè)部分組成,高半字節(jié)(b5~b8)表示后續(xù)字符TA1到TD1是否存在,b5-b8位設(shè)置為邏輯“1”表示TA1到TD1存在,相應(yīng)的,低半字節(jié)(b1~b4)表明可選歷史字符的數(shù)目(0~15),如下所示:
[b]T0的基本響應(yīng)代碼[/b]
[b] b8 b7 b6 b5 b4 b3 b2 b1 [/b]
T=0 0 1 1 0 x x x x
T=1 1 1 1 0 x x x x
基本響應(yīng):
* 選擇T=0時(shí),IC卡應(yīng)回送T0=0x6X,表示字符TB1和TC1存在。
* 選擇T=1時(shí),IC卡應(yīng)回送T0=0xEX,表示字符TB1、TC1和TD1存在。
其中X表示歷史字符的數(shù)目。
兼容終端能夠接收滿(mǎn)足以上條件的所有值。
3、TA1~TC3--接口字符
在復(fù)位應(yīng)答后的終端與IC卡信息交換期間,TA1到TC3表示控制參數(shù)F、D、I、P、N、IFSC、BW1和CW1的值。這些參數(shù)都用于T=1協(xié)議,TA1到TC1和TC2傳送的信息將用于后續(xù)數(shù)據(jù)交換且與所使用的協(xié)議類(lèi)型無(wú)關(guān)。這些參數(shù)的具體意義在下面給出。
(1)TA1
TA1傳送FI和DI的值,其中:
* FI用于確定F的值。F為時(shí)鐘速率轉(zhuǎn)換因子,用于修改復(fù)位應(yīng)答以后終端提供的時(shí)鐘頻率。
* DI用于確定D的值。D為比特速率調(diào)節(jié)因子。用于調(diào)整復(fù)位應(yīng)答之后所使用的位持續(xù)時(shí)間。
在復(fù)位應(yīng)答期間發(fā)送ATR時(shí)所使用的默認(rèn)值FI=1、DI=1,分別表示F=372、D=1。
基本響應(yīng):如果IC卡不回送TA1值,則表示IC卡使用默認(rèn)參數(shù),在整個(gè)后續(xù)信息交換過(guò)程中繼續(xù)使用默認(rèn)值F=372和D=1。
兼容終端接收默認(rèn)的TA1值(0x11)
為提高終端與IC卡之間的數(shù)據(jù)傳送速率,某些IC卡在終端支持的情況下可以選擇使用其他的TA1值協(xié)商使用高速模式。
(2)TB1
TB1傳送PI1和II值,其中:
* PI1在b1~b5位中定義,用于確定IC卡所需的編程電壓P值,PI1=0表示IC卡不需要編程電壓VPP。
* II在b6~b7位定義,用于確定IC卡所需的最大編程電流I值。PI1=0時(shí)不使用這一參數(shù)。
* b8位不使用,設(shè)置位邏輯0。
基本響應(yīng):在目前使用的大多數(shù)IC卡芯片都不要編程電壓的支持,所以,IC卡回送TB1=0x00,表示IC卡不使用VPP。
終端接受滿(mǎn)足上述定義的任何TB1,如果不需要VPP的話(huà),終端將在卡片使用過(guò)程中保持VPP為靜止?fàn)顟B(tài)。
(3)TC1
TC1傳送N值,N用于表示增加到最小持續(xù)時(shí)間的額外保護(hù)時(shí)間,此處的最小持續(xù)時(shí)間表示從終端發(fā)送到IC卡的、作為后續(xù)信息交換的兩個(gè)連續(xù)字符的起始位上升沿之間的時(shí)間。N在TC1的b1~b8位為二進(jìn)制編碼,其值作為額外保護(hù)時(shí)間表示增加的etu數(shù)目,其值可在0到255之間任選。N=255具有特殊含義,表示在使用T=0協(xié)議時(shí),兩個(gè)連續(xù)字符的起始位上升沿之間的最小延遲時(shí)間可減少到12個(gè)etu,而在使用T=1協(xié)議時(shí)可減少到11個(gè)etu。
TC1的值定義的參數(shù)只適用于終端向IC卡發(fā)送的兩個(gè)連續(xù)字符之間的間隔時(shí)段,不適用于IC卡向終端發(fā)送字符的情況,也不適用于兩個(gè)反方向發(fā)送字符的情況。
如果TC1值在0x00到0xFE之間,增加到字符間最少持續(xù)時(shí)間的額外保護(hù)時(shí)間為0~254個(gè)etu,對(duì)于后續(xù)傳輸,意味著其額外保護(hù)時(shí)間將在12~266個(gè)etu之間。
如果TC1值為0xFF,則后續(xù)傳輸?shù)淖址钚〕掷m(xù)時(shí)間在使用T=0協(xié)議時(shí)為12個(gè)etu,使用T=1協(xié)議時(shí)為11個(gè)etu。
基本響應(yīng):根據(jù)芯片內(nèi)I/O的處理情況,IC卡回送0x00~0xFF之間的任何值。
終端能夠接收滿(mǎn)足以上條件的任何TC1值。
在實(shí)現(xiàn)過(guò)程中,我們可以計(jì)算出特定芯片可接收的最小持續(xù)時(shí)間,建議TC1設(shè)置為這個(gè)最小時(shí)間,否則TC1如果過(guò)大可能造成終端與IC卡之間的通信緩慢,延長(zhǎng)交易時(shí)間,如果TC1過(guò)小的話(huà)芯片無(wú)法及時(shí)處理I/O端口到來(lái)的數(shù)據(jù),會(huì)造成數(shù)據(jù)丟失。
第1頁(yè)第2頁(yè) |