ISO7816-3 / ATR / Baud Rate / PPS - 1

本文详细解析了ISO7816-3中智能卡ATR(Answer To Reset)的内容及其含义,并通过具体实例介绍了不同类型的智能卡ATR。此外还探讨了智能卡与设备之间的通信波特率协商过程及PPS(Protocol and Parameters Selection)格式。

ISO7816-3 describes smart card electric signals and transmission protocols, the detail can refer to the spec, below are some examples about for better understanding about the spec,

1, ATR and Baud Rate

my Singapore cash card ATR "3B2A00806524B0000200829000"

3B = TS - (H) LHHL HHH LLH sets up the direct convention

2A = T0, includes Y1 = bit8 to bit5 value as 2, bit wise as 0010, means only TB1 exists, and K as bit4 to bit1 value as 0x0A, history bytes length 0x0A.

00 = TB1, EMV still requires that the card includes TB1 = ‘00’, and that remains common practice.

History bytes = 806524B0000200829000, length as 10 bytes(0x0A).

My Citi bank credit card ATR "3B6E000080318066B0840C016E0183009000"

3B = TS - (H) LHHL HHH LLH sets up the direct convention

6E = T0, includes Y1 = bit8 to bit5 value as 6, bit wise as 0110, means only TB1 and TC1 exist, and K as bit4 to bit1 value as 0x0E history bytes length 0x0E .

00 = TB1, EMV still requires that the card includes TB1 = ‘00’, and that remains common practice.

00 = TC1, encodes the extra guard time integer (N) from 0 to 255 over the eight bits. The default value is N = 0

History bytes = 80318066B0840C016E0183009000, length as 14 bytes(0x0E).

(U)SIM card ATR example: "3B9796801F438031E073FE211B3B"

3B = TS - (H) LHHL HHH LLH sets up the direct convention

97 = T0, includes Y1 = bit8 to bit5 value as 9, bit wise as 1001, means only TA1 and TD1 exists, and K as bit4 to bit1 value as 0x07, history bytes length 0x07.

96 = TA1, encodes the maximum clock frequency f(max) supported by the card. Now the value as 0x96, bitwise as 10010110, ETU(Elementary time unit)= (F/D)*(1/f). For 0x96, Fi = 512, D = 32, the etu = (512/32)*(1/3.575945* 10exp6) = 4.48 us, the Baud Rate  = 1/4.48 us = 223K bps, if f = 5MHZ, then using the same formula, the Baud Rate  = 312K bps

When TA1 is absent, it's assumed default value is ‘11’, corresponding to fmax = 5 MHz, Fi = 372, Di = 1.

Different TA(1) has different baud rate selection, below are some frequently used baud rate,

11 = 9600
13 = 38400
14 = 76800
94 = 56000

95 = 112000

96 = 223000

97 = 446000

80 = TD1, bitwise as 10000000, bits 8 to 5 state whether TA2, for bit 5, TB2, for bit 6, TC2 for bit 7, TD2 for bit 8 are present or absent, here means TD2 exists. bit4 to bit1 are for the T, T = 0 is the protocol T = 0

1F = TD2, here means TA3 exists. T = 15, does not refer to transmission protocol.

43 = TA3, bit8~bit7 as 01, State L, bit6~bit1, as 000011, means class A and B.

History bytes = 8031E073FE211B, length as 07 bytes(0x07).

3B = TCK,  If T=0 and T=15 are present and in all the other cases, TCK shall be present, exclusive-oring all the bytes T0 to TCK inclusive shall give '00'

T = 1 ATR example: "3BD49600C01071FE4501112233441D"

3B = TS - (H) LHHL HHH LLH sets up the direct convention

D4 = T0, includes Y1 = bit8 to bit5 value as D, bit wise as 1101, means only TA1, TC1 and TD1 exists, and K as bit4 to bit1 value as 0x07, history bytes length 0x07.

96 = TA1, calculation is the same as above 0x96

00 = TC1, encodes the extra guard time, the same as above.

C0 = TD1, bitwise as 11000000, bits 8 to 5 state whether TA2, for bit 5, TB2, for bit 6, TC2 for bit 7, TD2 for bit 8 are present or absent, here means TC2 and TD2 exist. bit4 to bit1 are for the T, T = 0 is the protocol T = 0

10 = TC2, WI(Waiting Time Integer), to calculate the WT (Waiting Time) = WI * 960 * Fi / f, can get it from Chapter 10.2 in ISO7816-3

71 = TD2, bitwise, 01110001, means TA3, TB3 and TC3 exist, bit4~bit1 means T = 1

FE = TA3, the initial value of IFSC (maximum information field size for the card)

45 = TB3, CWI (character waiting time integer), CWT(character waiting time), CWT is
calculated from CWI by the following formula.

01 = TC3, CRC or LRC,

History bytes = 11223344

1D = TCK,  If T=0 and T=15 are present and in all the other cases, TCK shall be present, exclusive-oring all the bytes T0 to TCK inclusive shall give '00'

2, PPS (Protocol and Parameters Selection)

the smart card and device to negotiate the communication baud rate by request and response.

The format is PPSS + PPS0 + (PPS1 + PPS2 + PPS3) + PCK

PPSS is FF,

PPS0, each bit 5,6 or 7 set to 1 indicates the presence of an optional byte PPS1, PPS2 and PPS3, bit4 ~ bit1 indicates proposed transmission protocol.

Example one, FF10957A, PPS0 as 10, means PPS1 exist and T = 0, the baud rate proposed as 95, PCK = 7A

Example two, FF109679, PPS0 as 10, means PPS1 exist and T = 0, the baud rate proposed as 96, PCK = 79

Example three, FF1111FF, PPS0 as 11, means PPS1 exist and T = 1, the baud rate proposed as 11, PCK = FF.

3, Reference:

ISO/IEC 7816-3:2006 — Identification cards — Integrated circuit cards — Part 3: Cards with contacts — Electrical interface and transmission protocols (partial preview)

http://blog.youkuaiyun.com/eastmoon502136/article/details/8115298

http://www.smartcard.co.uk/tutorials/sct-itsc.pdf

http://www.sat.su/satxpress/SmartCard/quartz.htm

http://smartcardguide.blogspot.sg/2013/05/protocol-t0t1.html

http://www.pcscworkgroup.com/membership/members.php


I will try to get some example to write on the T = 1 protocol in detail in near future.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值