IC卡复位应答ATR的数据元和它们的意义
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的数据元和它们的意义的更多相关文章
- IC卡复位应答ATR解析
输入的是ATR,通过解析输出TA.TB.TC.TD的信息. 似乎没有容错处理,~~~~(>_<)~~~~ #include <stdio.h> #define TA_BIT ( ...
- 复位应答ATR的基本结构和数据元
根据定义,复位应答是一系列字节的值,这些字节是由卡作为对复位命令的响应发送给接口设备的 ,在I/O电路上,每个字节在一个异步字符中传输.每个成功的复位操作,都会导致I/O上的一个初始字符TS,TS后面 ...
- EMV卡复位应答的时间特性 ---ISO7816协议
1.冷复位的时间特性 图1 如图1所示: T0为200clk 从T0结束到RST变为高电平为40000-45000个clock 从RST变为高电平后,卡片必须在400-40000个clock之间应答, ...
- IC卡热复位时序
热复位(warm reset):在时钟CLK和电源电压VCC处于激活状态的前提下,IC卡收到复位信号时产生的复位. 冷复位过程之后,如果收到的复位应答信号不满足规定,终端将启动热复位并从IC卡获得复位 ...
- 智能IC卡与终端(读卡器)之间的传输协议
1.有两种协议 T=0,异步半双工字符传输协议 T=1,异步半双工块传输协议 终端一般都支持这两种协议,IC卡可以选择支持其中的一种.(因为终端可能需要面对各种类型的卡片,所以必须两种协议都支持,而卡 ...
- IC卡的传输协议(1)-字符传输协议T=0【转】
转自:http://bbs.ednchina.com/BLOG_ARTICLE_172022.HTM 在异步半双工传输协议中,主要定义了终端为实现传输控制和特殊需要发出的命令及这些命令的处理过程. 在 ...
- IC卡的传输协议(2)-块传输协议T=1【转】
转自:http://bbs.ednchina.com/BLOG_ARTICLE_172024.HTM 2.4 块传输协议T=1 T=1协议中,在TAL和IC卡之间传送的命令.R-APDU和传输控制信息 ...
- "软掩膜"和“硬掩膜”-智能IC卡
目录 一.“软掩膜”和“硬掩膜”... 2 二.EMV迁移进程... 3 三.PBOC规范和EMV规范对比... 3 四.总结... 5 五.关于SDA和DDA. 6 一.“软掩膜”和“硬掩膜” “软 ...
- 智能IC卡中的文件系统
1.文件系统是COS的重要模块之一,它负责组织.管理.维护IC卡内存储的所有数据. 文件系统的设计和实现既是COS系统中最灵活.最有个性的部分,也是对系统整体结构影响最大的模块之一. 2.在IC卡内, ...
随机推荐
- android两种基本联网方式与一种第三方开源项目的使用
安卓请求网络的三种方式 在请求网络的时候一般常用的提交方式是post或者get请求,post请求安全,传输大小无限制,但是代码量多些,get请求是浏览器有大小限制,用户提交的信息在浏览器的地址栏显示出 ...
- Bootstrap <基础二十一>徽章(Badges)
Bootstrap 徽章(Badges).徽章与标签相似,主要的区别在于徽章的边角更加圆滑. 徽章(Badges)主要用于突出显示新的或未读的项.如需使用徽章,只需要把 <span class= ...
- UITableViewCell里面separator的设置
最近cell显示的时候左边一直有15个像素的偏移,查了下面的方法 //1. 不管用 [self.tableView setSeparatorInset:UIEdgeInsetsZero]; // 2. ...
- CodeForces 474B E(Contest #1)
题意: 给你一个数n,代表n段区间,接下来有n个数(a1,a2,...an)代表每段区间的长度,第一段区间为[1,a1],第二段区间为[a1+1,a1+a2],...第i段区间为[ai-1+1,ai- ...
- EasyUI ComboGrid的绑定,上下键和回车事件,输入条件查询
首先我们先看一下前台的绑定事件 1.先定义标签 <input id="cmbXm" type="text" style="width: 100p ...
- 【CSS3 入门教程系列】CSS3 Media Queries 实现响应式设计
在 CSS2 中,你可以为不同的媒介设备(如屏幕.打印机)指定专用的样式表,而现在借助 CSS3 的 Media Queries 特性,可以更为有效的实现这个功能.你可以为媒介类型添加某些条件,检测设 ...
- Android事件分发机制(上)
Android事件分发机制这个问题不止一个人问过我,每次我的回答都显得模拟两可,是因为自己一直对这个没有很好的理解,趁现在比较闲对这个做一点总结 举个例子: 你当前有一个非常简单的项目,只有一个Act ...
- POJ 题目1141 Brackets Sequence(区间DP记录路径)
Brackets Sequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 27793 Accepted: 788 ...
- RGB与16进制颜色转换的原理
Integer有进制转换的方法.也可以自己写进制转换的方法.
- Cocoapods的安装
1.先升级Gem sudo gem update --system 2.切换cocoapods的数据源 [先删除,再添加,查看] gem sources --remove https://rubyge ...