智能卡数据传输T=0传输协议
发布时间:2008/11/22 0:00:00 访问次数:1458
这个传输协议在智能卡发展之初首先用于法国,它也是第1个智能卡协议的国际标准。它开创于智能卡技术 的早期,因而它的设计使用了最少量的存储器并具有简单性。这项协议被在世界范围内用于gsm卡,并在所 有的智能卡协议中享有最广泛的流行。t=0协议在iso/iec 7816-3中被标准化,另外的相容规范被包含在 csm 11.11和emv规范中。
t=0协议是面向字节的,这就是说协议所处理的最小单位是单个字节。传送的数据单元中含有一个头标、类 字节、命令字节和三个参数字节构成。它可能跟随着一个可选的数据部分,和被iso/iec 7816-4标准化的 apdu相反,长度信息仅由参数p3提供。它或是指明命令数据或是应答的长度,它也由iso/iec 7816-3标准中 规定,参见图1
图1 t=0的一条命令的结构
由于t=0协议是面向字节的,如果检测到一个传输错误,则对错误字节的重传必须立即请求。而字组协议 则相反,如果发现了差错则整个字组(一系列字节)都必须重传。
t=0差错检测采用附在每一被传送的字节后的奇偶校验位。
如果接收方检测出一个传输差错,它必须从出错字节的保护时间的第1位区间的中间开始,把i/0线在一个 etu持续期内置为低电平。这样向通信的另一方表示最近的一个字节必须重新传送。这种字节重复的机制是 十分简单的,而其好处在于它的选择性,只有不正确的字节才被重复。遗憾地是,这个方法也存在一个严重 的缺'点,大多数ic卡接口把etu区间当做是最小的可检测单元,所以它们不能识别从停止位中间设定的i/0 线上的低电平。因此,标准的ic卡接口不适于t=0协议。然而,如果每1位用软件分别接收,就不会有这个问 题。图2和图3分别表明了用t=0传输协议,在无差错和有差错时,i/0接口的信号时序图。
图2 用t=0传输协议(一字节无差错地经i/0接口传送)
图3 t=0传输协议(一个数据传输差错,在保护时间用i/0接口的低电平来指示)
t=0协议也允许eeprom或eprom的外部可编程电压接通或断开。这可用在接收的命令字节附加个“1”并把它 作为确认字节回送给终端。这就是为什么只允许偶数值的命令字节,否则这个机制就无法工作。然而,接通 一外部可编程电压现在技术上已经废弃,所有现代的智能卡微控制器都在芯片上自己产生编程电压,因此我 们无需更深人讨论这一主题。
保护时间的主要作用是在传输时把各个字节分开,使得发送者和接收者双方有充裕的时间去执行传输协议 的功能。
为了解释t=0命令-应答序列,让我们假定终端发送给卡一条带有数据部分的命令,而卡则应答以数据和 回送代码。终端首先发送给卡以5字节的命令头标、类字节、命令字节和pl、p2以及p3组成。如果它们被正 确地接收了,则卡送回一个为过程字节pb(procedure byte)形式的确认ack(acknowledge),确认的编码 和收到的命令字节是相同的。收到过程字节后,终端送出由"字节表明准确数量的数据字节。至此,卡已收 到了完整的命令,它可以处理它并产生一应答。
如果应答中含有2字节回送代码之外的数据,卡用一特殊的回送代码通知终端,由sw2来表明数据量。接收 到此应答后,终端向卡发出get response命令,它仅包括了具有要传送的数据量的头标。于是卡向终端传送 由第1条命令所产生的具有所请求的长度和相应的回送代码的数据,这样就完成了一条命令序列。
如果一条命令发送给卡,而卡仅产生没有数据部分的回送代码。则图4中的getresponse部分就不会发生。 因为要完成这些作用(馈送和前一条命令有关的数据)才需要应用层的额外的命令。当然,这里不再有协议 各层之间的严格界限。一条应用层命令(getresponse)必须用在这里以支持数据链路层,它对正谈到的应 用层有着某些影响。乍看起来,这些似乎有点复杂,所以再用图5来表明。
图4 在命令和应答中都有数据的典型的t=0通信过程(例如mutual authenticate命令)
t=0协议允许卡在接收头标后接收数据部分的单个字节。为此,卡只需要把反相的命令字节作为过程字节传 送给终端,于是终端就传送一个单独的数据字节,第2个数据字节是接着由卡发出的第2个过程字节。这种字 节方式的传送可一直继续到卡接收了数据部分的所有字节,或者直到卡送出非反相的命令字节,终端则将所 有剩余的字节传送给卡,使之接收到完整的命令。单字节的传输过程如图6所示。
至于对传输协议的考虑,用户的根本兴趣所在仅是数据传输率和差错检测与校正机制。传送一个包括了8位 的字节,需要传送12位,其中还有1开始位,1奇偶校验位和
这个传输协议在智能卡发展之初首先用于法国,它也是第1个智能卡协议的国际标准。它开创于智能卡技术 的早期,因而它的设计使用了最少量的存储器并具有简单性。这项协议被在世界范围内用于gsm卡,并在所 有的智能卡协议中享有最广泛的流行。t=0协议在iso/iec 7816-3中被标准化,另外的相容规范被包含在 csm 11.11和emv规范中。
t=0协议是面向字节的,这就是说协议所处理的最小单位是单个字节。传送的数据单元中含有一个头标、类 字节、命令字节和三个参数字节构成。它可能跟随着一个可选的数据部分,和被iso/iec 7816-4标准化的 apdu相反,长度信息仅由参数p3提供。它或是指明命令数据或是应答的长度,它也由iso/iec 7816-3标准中 规定,参见图1
图1 t=0的一条命令的结构
由于t=0协议是面向字节的,如果检测到一个传输错误,则对错误字节的重传必须立即请求。而字组协议 则相反,如果发现了差错则整个字组(一系列字节)都必须重传。
t=0差错检测采用附在每一被传送的字节后的奇偶校验位。
如果接收方检测出一个传输差错,它必须从出错字节的保护时间的第1位区间的中间开始,把i/0线在一个 etu持续期内置为低电平。这样向通信的另一方表示最近的一个字节必须重新传送。这种字节重复的机制是 十分简单的,而其好处在于它的选择性,只有不正确的字节才被重复。遗憾地是,这个方法也存在一个严重 的缺'点,大多数ic卡接口把etu区间当做是最小的可检测单元,所以它们不能识别从停止位中间设定的i/0 线上的低电平。因此,标准的ic卡接口不适于t=0协议。然而,如果每1位用软件分别接收,就不会有这个问 题。图2和图3分别表明了用t=0传输协议,在无差错和有差错时,i/0接口的信号时序图。
图2 用t=0传输协议(一字节无差错地经i/0接口传送)
图3 t=0传输协议(一个数据传输差错,在保护时间用i/0接口的低电平来指示)
t=0协议也允许eeprom或eprom的外部可编程电压接通或断开。这可用在接收的命令字节附加个“1”并把它 作为确认字节回送给终端。这就是为什么只允许偶数值的命令字节,否则这个机制就无法工作。然而,接通 一外部可编程电压现在技术上已经废弃,所有现代的智能卡微控制器都在芯片上自己产生编程电压,因此我 们无需更深人讨论这一主题。
保护时间的主要作用是在传输时把各个字节分开,使得发送者和接收者双方有充裕的时间去执行传输协议 的功能。
为了解释t=0命令-应答序列,让我们假定终端发送给卡一条带有数据部分的命令,而卡则应答以数据和 回送代码。终端首先发送给卡以5字节的命令头标、类字节、命令字节和pl、p2以及p3组成。如果它们被正 确地接收了,则卡送回一个为过程字节pb(procedure byte)形式的确认ack(acknowledge),确认的编码 和收到的命令字节是相同的。收到过程字节后,终端送出由"字节表明准确数量的数据字节。至此,卡已收 到了完整的命令,它可以处理它并产生一应答。
如果应答中含有2字节回送代码之外的数据,卡用一特殊的回送代码通知终端,由sw2来表明数据量。接收 到此应答后,终端向卡发出get response命令,它仅包括了具有要传送的数据量的头标。于是卡向终端传送 由第1条命令所产生的具有所请求的长度和相应的回送代码的数据,这样就完成了一条命令序列。
如果一条命令发送给卡,而卡仅产生没有数据部分的回送代码。则图4中的getresponse部分就不会发生。 因为要完成这些作用(馈送和前一条命令有关的数据)才需要应用层的额外的命令。当然,这里不再有协议 各层之间的严格界限。一条应用层命令(getresponse)必须用在这里以支持数据链路层,它对正谈到的应 用层有着某些影响。乍看起来,这些似乎有点复杂,所以再用图5来表明。
图4 在命令和应答中都有数据的典型的t=0通信过程(例如mutual authenticate命令)
t=0协议允许卡在接收头标后接收数据部分的单个字节。为此,卡只需要把反相的命令字节作为过程字节传 送给终端,于是终端就传送一个单独的数据字节,第2个数据字节是接着由卡发出的第2个过程字节。这种字 节方式的传送可一直继续到卡接收了数据部分的所有字节,或者直到卡送出非反相的命令字节,终端则将所 有剩余的字节传送给卡,使之接收到完整的命令。单字节的传输过程如图6所示。
至于对传输协议的考虑,用户的根本兴趣所在仅是数据传输率和差错检测与校正机制。传送一个包括了8位 的字节,需要传送12位,其中还有1开始位,1奇偶校验位和
上一篇:接触卡与其他卡之间的差异
上一篇:智能卡数据传输协议I2C总线