標籤:
ISO/IEC 7816-3標準中對ATR的資料串和資料元做了規定和描述。ATR的資料元和它們的意義:
資料元 |
說明 |
TS |
起始字元 |
T0 |
格式字元 |
TA1,TB1,TC1,TD1,... |
介面字元 |
T1,T2,... ,TK |
曆史字元 |
TCK |
校正字元 |
複位應答ATR的基本資料結構和資料元如下:
一、 起始字元TS
起始字元規定了用於在ATR中的所有資料和後繼通訊過程的約定。此外,TS位元組含有特殊的位元模式可由終端用以識別分頻值。終端測量TS中前兩個下降沿之間的時間併除以3,其結果就是一個etu的期間。然而,由於ATR的分頻值固定在372,終端通常並不評估同步模式。
TS是ATR的強制部分,總是必須送出的。此位元組只允許有兩種編碼:3B為正向約定,3F為反向約定。使用反向邏輯約定時, I/O的低電平狀態等效於邏輯1,且該資料位元組的最高位在起始位之後首先發送。使用正向邏輯約定時, I/O的高電平狀態等效於邏輯1,且該資料位元組的最低位在起始位之後首先發送。
正向約定的波形如下,一般終端讀取到的字元為3B:
反向約定的波形,一般終端讀取到的字元為03:
二、 格式字元T0
格式字元T0含有一組位表明將要傳送哪個介面字元,它同時也指出後繼曆史字元的個數。像TS一樣,每個ATR中都必須有這個位元組。
高半位元組( b5-b8) 表示後續字元TA1到TD1是否存在。(b5對應TA1,b8對應TD1);
低半位元組( b1-b4) 表明可選曆史字元的數目( 0到15);
終端應接受包含任何T0值的ATR。一般情況下,基本ATR中,當僅選擇T=0時, IC卡應回送T0=6x,表示字元TB1和TC1存在;當僅選擇T=1時, IC卡應回送T0=Ex,表示字元TB1到TD1存在。
三、 介面字元
介面字元規定所用協議的所用傳輸參數,它們包含TAi、TBi、TCi、TDi各位元組。然而,這些位元組在ATR中是可選的,它們也可以被略去。由於對協議的所用參數的預設值都做了規定,對於一般的通訊處理可以不需要ATR中的介面字元。
介面字元可以分為全域介面字元和專用介面字元。全域介面字元規定基本傳輸協議參數,諸如分頻值,它們用於所有後繼的協議;專用介面字元則是用於指明特定的傳輸協議中的參數。“工作等待時間(work waiting time)”就是T=0協議中這類參數的典型例子。
全程介面字元基本上用於所有協議,出於曆史原因(因為在ISO標準中,最初僅包含有T=0協議),這些字元中的幾個僅和T=0協議有關。如果沒有實現T=0協議,可以忽略它們,這這種情況下將使用預設值。
TDi位元組僅用於對任何跟隨介面字元的連結保護,TDi位元組的高4位組合有一個指示後繼介面字元的存在的位元模式。它類似于格式字元T0的編碼,TDi位元組的低4位則標識現行使用的傳輸協議。如果沒有TDi位元組的存在,則TAi+1、TBi+1、TCi+1和TDi+1都不傳送。
其他介面字元(TAi、TBi、TCi)它們都不用於連結,而是規定了可用的傳輸協議,按照ISO/IEC 7816-3標準,它們的含義如下:
- 1. 全域介面字元TA1:(重要)
TA1高半位元組 FI 用於確定 F 的值, F 為時脈速率轉換因子。用於修改複位應答之後終端所提供的時鐘頻率。低半位元組 DI 用於確定 D 的值, D 為位速率調節因子。用於調整複位應答之後所使用的位期間。etu =F/D * (1/f)
FI和DI編碼如下:
FI |
0000 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
F |
372 |
372 |
558 |
744 |
1116 |
1488 |
1860 |
RFU |
FI |
1000 |
1001 |
1010 |
1011 |
1100 |
1101 |
1110 |
1111 |
F |
RFU |
512 |
768 |
1024 |
1536 |
2048 |
RFU |
RFU |
DI |
0000 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
D |
RFU |
1 |
2 |
4 |
8 |
16 |
32 |
RFU |
DI |
1000 |
1001 |
1010 |
1011 |
1100 |
1101 |
1110 |
1111 |
D |
12 |
20 |
RFU |
RFU |
RFU |
RFU |
RFU |
RFU |
- 2. 全域介面字元TB1:(沒有意義了)
TB1傳送PI1和II的值,PI1 在 b1 到 b5 位中定義,用於確定 IC 卡所需的編程電壓 P 值;II 在 b6 和 b7 位中定義,用於確定 IC 卡所需的最大編程電流 I 值。一般情況下ATR中必須包含TB1=00,表示IC卡不使用VPP。
- 3. 全域介面字元TC1
TC1傳送N值,N用於表示增加到最小期間的額外保護時間,此處的最小期間表示從終端發送到IC卡的、作為後續資訊交換的兩個連續字元的起始位下降沿之間的時間。N在TC1的b1-b8位為二進位編碼,其值作為額外保護時間表示增加的etu數目,其值可在0到255之間任選。N=255具有特殊含義,表示在使用T=0協議時,兩個連續字元的起始位下降沿之間的最小延遲時間可減少到12個etu,而在使用T=1協議時可減小到11個etu。
如果TC1值在00到FE之間,增加到字元間最小期間的額外保護時間為0到254個etu。對於後續傳輸,額外保護時間必須在12到266個etu之間。如果TC1=FF,則後續傳輸的字元間最小期間在使用T=0協議時為12個etu,使用T=1協議時為11個etu。
TC1隻適用於終端向IC卡發送的兩個連續字元間的時序,而不適用於IC卡向終端發送字元的情況,也不適用於在相反方向發送字元的情況。
- 4. 全域介面字元TB2:(沒有意義了)
TB2傳送PI2, PI2用於確定IC卡所需的編程電壓P的值,當PI2出現時,它將取代TB1中回送的PI1的值。通常在ATR中不再使用。
- 5. T=0傳輸協議專用的介面字元:
1) 專用介面字元TC2
TC2專用於T=0協議, 傳輸工作等待時間整數(WI),WI用來確定由IC卡發送的任意一個字元起始位下降沿與IC卡或終端發送的前一個字元起始位下降沿之間的最大時間間隔。工作等待時間為:960×D×WI etu。
若TC2字元不出現在ATR中,則使用工作等待時間的預設值WI=10。
- 6. T=1傳輸協議專用的介面字元:
1) 專用介面字元TA3
TA3(如果TD2中指明T=1)回送IC卡的資訊域大小整數(IFSI),IFSI決定了IFSC,並指明了卡片可接收的塊資訊域的最大長度(INF)。 TA3以位元組形式表示IFSC的長度,其取值範圍從01到FE。 00和FF預留(RFU)。
2) 專用介面字元TB3
TB3(如果TD2中指明T=1)表明了用來計算字元等待時間CWT和字組等待時間BWT的CWI和BWI值, TB3由兩部分組成。低半位元組(b1-b4)用於表明CWI值,而高半位元組(b5-b8)用於表明BWI值。
3) 專用介面字元TC3
TC3(如果TD2中指明T=1)指明了所用的塊錯誤校正碼的類型,所用代碼類型用b1位表示, b2到b8位未使用。
4) 全域介面字元TA2
TA2的存在與否表示IC卡是以特定模式還是以協商模式工作。TA2的低半位元組表明的協議類型正是ATR中第一次表明的協議類型。
四、 曆史字元
很長一段時間,沒有任何標準對曆史字元做出規定,結果是隨作業系統生產者而不同,它們包含了變化廣泛的資料。
五、 校正字元TCK
TCK具有一個檢驗複位應答期間所發送資料完整性的值。TCK的值應使從T0到包括TCK在內的所有位元組進行異或運算的結果為零。
如果在ATR中僅指出了T=0協議,TCK校正和可以不在ATR的尾部出現。在這種情況下,完全沒有發送它,因為用同位已經知道了差錯位元組而在T=0協議中重複發送出錯位元組又是強制性的。相反,在T=1協議中,TCK位元組必須出現,校正和的計算從位元組T0開始,結束於最後的介面字元,如果有則是最後的曆史字元。
IC卡複位應答ATR的資料元和它們的意義