你好,欢迎访问达普芯片交易网!|  电话:010-82614113

智能卡数据传输复位应答

发布时间:2008-11-20阅读:3754

  当加上供电电压、时钟和复位信号后,智能卡经I/O引线送出其复位应答ATR。这个数据串,它最多含有33 字节,总是按分频值(时钟频率转换因子)为372传送的,这是遵照ISO/IEC7816-3标准的规定。它含有关于 传输协议和卡的各种数据,即使在ATR之后的传输协议使用的是不同的分频值(例如:512),也应当用这个 分频值。这就保证了从任何卡总能接收到一个ATR,而不管传输协议的参数是怎样的。

  ATR很少具有最大的允许长度,通常ATR只有几个字节,特别是对那些在激活序列之后卡应快速投人使用的 应用来说,ATR应当很短。典型的例子是智能卡电子钱包、公路收费的支付等。不管交通工具通过收费闸门 的速度如何,都必须可靠地将卡在此可使用的短时间内记人借方。

  在终端发出复位信号后的400~40 000个时钟周期之内必须出现ATR传输的开始。对于3.5712MHz的时钟频率 来说,这相应于112μs至11.20ms的区间;而4.9152MHz的区间则为81.38μs至8.14ms。如果在此区间内终端 没有接收到ATR的开始,它把激活序列重复数次(通常最多为三次)以试图检测到ATR。如果所有这些尝试都 失败了,则终端认为卡是有故障的并据此做出反应。

  按照ISO/IEC 7816-3,在ATR中相邻两字节的前沿间的时间可以高达9 600etu。这段时间被称为起始等待时 间,对3.5712MHz的时钟频率,它精确地为Is。这就是说,标准中允许送往终端的ATR各个字节之间有Is的延 迟。在某些智能卡操作系统中,这段时间被用于内部计算和对EEPROM的写访问,如图1所示。


图1  复位信号和ATR的开始的时间安排图解(按照ISO/IEC 1816-3,t1为400至40 000时钟周期)

  ISO/IEC 7816-3标准中对ATR的数据串和数据元做了规定和描述。在表1和图2中对ATR的基本格式做了说明 ,头两个字节,命名为飞和TO。规定了不同的基本传输参数和后继字节的存在,接口字符规定协议的特殊传 输参数,它们对于以后的数据传输是重要的。历史字符说明了对智能卡基本功能的扩充,校验字符是前面字 节的校验和,是ATR可选的最后传送的字节,由传输协议决定。

  表1 按照ISO/IEC 7816-3,ATR的数据元和它们的意义

图2 ATIt的基本结构和数据元

  1.起始字符

  起始字符规定了用于在ATR中的所有数据和后继通信过程的约定。此外,TS字节含有特殊的位模式可由终端 用以识别分频值。终端测量咒中前两个下降边之间的时间并除以3,其结果就是一个etu的持续期。然而,由 于ATR的分频值固定在372,终端通常并不评估同步模式。第1个字节是ATR的强制成分,总是必须送出的 。此字节只允许有两种编码:“3B”为正向约定:“3F”是反向约定,可参看图3、图4和表2。


图3  使用正向约定(“3B”)的初始字符TS的时间安排图解


图4 使用反向约定(“3F”)的初始字符TS的时间安排图解

  表2 初始字符(TS)的编码

  在德国通常使用正向约定,反向约定通常用于法国。约定并不影响传输的安全J跬。当然,每个操作系统的 生产者由于历史原因选择了这个或那个,但所有的终端和许多智能卡都支持正向和反向两种约定。

  2,格式字符

  第2个字节TO,含有一组位表明将传送那个接口字符。它同时也指出后继历史字符的数量。像TS一样,每个 ATR中都必须有这个字节,表3为格式字符的编码。

  表3  格式字符TO的编码

  3.接口字符

  接口字符规定所用协议的所有传输参数,它们包括有TAi、TBi、TCi和TDi诸字节。然而,这些字节在ATR中是可选的,它们也可以被略去。由于对协议的所有参数的基本值都做了规定,对于正常的 通信处理都不需要ATR中的接口字符。

  接口字符可以分为全程接口字符和专用接口字符。第1种类型规定基本传输协议参数,诸如分频值,它们用 于所有后继的协议;第2种类型相反,规定一个非常专用的传输协议的参数。“工作等待时间”就是T=0协 议中这类参数的典型例子。

  全程接口字符基本上用于所有协议,出于历史的原因(因为在ISO标准中最初仅包括有T=0协议),这些字 符中的几个仅和T=0协议有关。如果没有实现T=,它们可被略去,在这种情况下将使用缺省值。

  TDi字节仅用于对任何跟随接口字符的链接保护,TDi字节的高4位组合有一个指示后继接口字符的存在的位 模式。它类似于格式字符TO的编码,TDi字节的低4位组则标志现行使用的传输协议,TDi的编码见表4。

  表4  TDi字节的编码

  如果没有TDi字节的存在,则TAi+1、TBi+1、TCi+1和TDi+1都不传送。

  其他接口字符(TAi,TBi和TCi),它们都不用于链接,而是规定了可用的传输协议,按照ISO/IEC 7816-3 标准它们的含义如下。

  1)全程接口字符TAI

  分频值(时钟频率转换因子F)被作为Fl编码在高4位组中,比特率调整因子D作为Dl被编码在低4位组中。 TAI、Fl和Dl的编码见表5、表6和表7。

  表5 TA1编码

  表6 F1编码

  表7 D1编码

  分频值F和调整因子D使得典型的传输率得以按照标准规定发生。应用了如下关系。

  ·ATR和PTS的位区间被称为初始etu,规定为:

  ·遵照ATR和FTS的传输协议,规定了与ATR无关的位区间,它被称为工作etu,被规定如下:

  这两个参数,比特率调整因子D和时钟频率转换因数F使得传输率可以调整到满足个别情况的需要。所加时 钟频率在上列公式中作为∫给出,其单位为Hz。

  2)全程接口字符TB1

  这个字节的b7和b6编码是一个称为“I1”的可编程电压因数,从b5到b1各位规定了参数“P11”。最高位b8 ,总是被置为0,意即它未被使用。这些参数是第1代智能卡所需要的,它用EPROM而不是EEPROM作为数据存 储器,而后者是当前的标准。对EPROM编程所需的高电压和电流由终端经Vpp触点供给。然而,自从不包括内 部电荷泵的智能卡已不复存在,我们可以忽略这个字节编码。TB1的编码见表8。

  表8 TB1编码

  于是参数P11和I1之值总是为0,它表明不需要外部编程电压。如果在ATR中省略了TB1的数据元,则如标准 中所规定,所用Vpp的缺省值设定为5V,50mA。

  3)全程接口字符TC1

  它对命名为N的无符号十六进制整数的额外保护时间编码。此值规定了扩充保护时间的etu的数量,除了若N =“FF”之外,对TC1的解释是直接的。对T=1协议标准保护时间必须缩短至11etu;对T=0协议,额外保护时 间中止于12etu,允许用保护时间区间内的低电平来指示出差错的存在。在实践中,对于T=1协议,把保护 时间缩短至11etu带来的速度增加约为10%,因为可少传送1位。TC1的编码见表9。

  表9 TC1编码

  4)全程接口字符TB2

  这个字节保存m之值,此参数规定外部编程电压为伏特数的10倍。于是,通常在ATR中不再使用,理由和TB1 是一样的。TB2的编码见表10。

  表10 TB2编码

  4.T=0传输协议专用的接口字符

  1)专用接口字符TC2    

  T=0传输协议专用的接口字符是T=0,协议中最后的数据元用来对指定为“TC2”的”工作等待时间”编码 。工作等待时间是相继两个字节上升边之间的最大时间区间。

  工作等待时间=(960·D·WI)工作etu

  若TC2字符不出现在ATR中,则使用工作等待时间的缺省值(WI=10)。TC2的编码见表11。

  表11 TC2编码

  5.T=1传输协议专用的接口字符

  下述额外的字符是遵照ISO/IEC 7816-3 Amd 1为T=1传输协议规定的,T=1传输协议专用的接口字符。而接 口字符在此处对T=o的规定只在需要时使用。对于此协议,数据元的下标i必须总是大于2,在这种情况下, 专用接口字符TAi、TBi和TCi(i>2)总是用于由TD(i-1)规定的通信协议。

  1)专用接口字符TAi(i>2)

  TAi字节含有所能接收的信息字段(IFSC)的最大长度,其值必须在1~254之间,1FSE的缺省值为32字节。 TAi(i>2)的编码见表12.

  表12 当i>2时的TAI编码

  2)专用接口字符TBi(i>2)

  低4位组(由b4至bl的4位)含有字符等待时间CWT的编码CWI,它的计算如下:

  

  TBi(i>2)的编码见表13。

  表13 当i>2时的TBi编码

  3)专用接口字符Tai(i>2)

  bl位对所用的差错检测法编码。因为标准覆盖的ATR的数据元并未规定按照接口字符定 4.T=0传输协议专用的接口字符

  1)专用接口字符TC2    

  T=0传输协议专用的接口字符是T=0,协议中最后的数据元用来对指定为“TC2”的”工作等待时间”编码 。工作等待时间是相继两个字节上升边之间的最大时间区间。

  工作等待时间=(960·D·WI)工作etu

  若TC2字符不出现在ATR中,则使用工作等待时间的缺省值(WI=10)。TC2的编码见表14。

  表14 TC2编码

  5.T=1传输协议专用的接口字符

  下述额外的字符是遵照ISO/IEC 7816-3 Amd 1为T=1传输协议规定的,T=1传输协议专用的接口字符。而接 口字符在此处对T=o的规定只在需要时使用。对于此协议,数据元的下标i必须总是大于2,在这种情况下, 专用接口字符TAi、TBi和TCi(i>2)总是用于由TD(i-1)规定的通信协议。

  1)专用接口字符TAi(i>2)

  TAi字节含有所能接收的信息字段(IFSC)的最大长度,其值必须在1~254之间,1FSE的缺省值为32字节。 TAi(i>2)的编码见表15.

  表15 当i>2时的TAI编码

  2)专用接口字符TBi(i>2)

  低4位组(由b4至bl的4位)含有字符等待时间CWT的编码CWI,它的计算如下:

  CWT=(2CWI+11)工作etu

  高四位组保存BWI之值,由它可以算出字组等待时间BWT如下:

  TBi(i>2)的编码见表13。

  表13 当i>2时的TBi编码

  3)专用接口字符Tai(i>2)

  bl位对所用的差错检测法编码。因为标准覆盖的ATR的数据元并未规定按照接口字符定 4.T=0传输协议专用的接口字符

  1)专用接口字符TC2

  T=0传输协议专用的接口字符是T=0,协议中最后的数据元用来对指定为“TC2”的”工作等待时间”编码 。工作等待时间是相继两个字节上升边之间的最大时间区间。

  工作等待时间=(960·D·WI)工作etu

  若TC2字符不出现在ATR中,则使用工作等待时间的缺省值(WI=10)。TC2的编码见表11。

  表11 TC2编码

  5.T=1传输协议专用的接口字符

  下述额外的字符是遵照ISO/IEC 7816-3 Amd 1为T=1传输协议规定的,T=1传输协议专用的接口字符。而接 口字符在此处对T=o的规定只在需要时使用。对于此协议,数据元的下标i必须总是大于2,在这种情况下, 专用接口字符TAi、TBi和TCi(i>2)总是用于由TD(i-1)规定的通信协议。

  1)专用接口字符TAi(i>2)

  TAi字节含有所能接收的信息字段(IFSC)的最大长度,其值必须在1~254之间,1FSE的缺省值为32字节。 TAi(i>2)的编码见表12.

  表12 当i>2时的TAI编码

  2)专用接口字符TBi(i>2)

  低4位组(由b4至bl的4位)含有字符等待时间CWT的编码CWI,它的计算如下:

  CWT=(2CWI+11)工作etu

  高四位组保存BWI之值,由它可以算出字组等待时间BWT如下:

  TBi(i>2)的编码见表13。

  表13 当i>2时的TBi编码

  3)专用接口字符Tai(i>2)

  bl位对所用的差错检测法编码。因为标准覆盖的ATR的数据元并未规定按照接口字符定义的所有可能的传输协议参数,不同的实现就可用另外的接口字符。TCi的编码见表14。

  表14 当i>2时的TCi编码

  德国T=14协议提供了一个典型的例子,数个额外的ATR字节被此协议定义来满足其特殊需要。它们只能由 协议的用户来解码,因为只有他们知道所用的规范,它不是标准化的,而且在使用此应用的范围之外也不为 人所知。

  4)全程接口字符TA2

  这个字节指示所允许的PTS模式,TA2的编码见表15。

  表15 TA2编码

  6,历史字符

  很长一段时间,没有任何标准对历史字符做出规定,结果是随操作系统生产者而不同,它们包含了变化广 泛的数据。

  很多公司使用适当的字节来识别操作系统和相关的ROM掩膜的版本号。通常用ASCII编码,使之易于解释。 历史字符在ATR中的存在不是规定的,可以把它全们全部删除掉。在某些情况下,这会显得有利,因为能使 ATR短些并能较快送出。

  ISO/IEC 7814-4标准提供了一个除历史字符之外的ATR文件,这个文件具有保留的FID“2F01”,含有关于 ATft的附加数据。其目的在于对限制为15字节的历史字符的扩充。这个文件的内容是由ASN,1编码的,其结 构未被标准规定。

  在ATR中的数据元或历史字符可以包含着关于智能卡和所采用的操作系统的综合信息。例如,它们可以用来 存储由智能卡支持的文件选择功能和隐含选择功能,以及有关逻辑通道的机制信息,它们也可以用来存储另 外的有关卡发行商、卡和芯片的序列号、掩膜ROM、芯片和操作系统的版本号等信息。在ISO/IEC 7816-4和 -5标准中对有关数据的编码做了规定。

  7.校验字符

  ATR的最后一个字节为从字节TO开始到校验和字符(TCK)之前的最后一字节的X0R校验和。这个校验和可用 于除奇偶性检测之外的ATR传输的正确性核查。然而,尽管这个校验和的结构和计算虽然很简单,在不同的 传输协议申仍有数个明显的差异。

  如果在ATR中仅指出了T=0协议,TCK校验和可以不在ATR的尾部出现。在这种情况下,完全没有发送它,因 为用奇偶校验已经知道了差错字节而在T=0协议中重复发送出错字节又是强制性的。相反,在T=1协议中, TCK字节必须出现,校验和的计算从字节TO开始结束于最后的接口字符,如果有则是最后的历史字符。

在线人工客服

点击这里给我发消息

点击这里给我发消息

点击这里给我发消息

010-82614113

客服在线时间周一至周五
9:00-17:30