当接口设备发出复位信号后,IC卡将以字符为单位(称为字符帧)发出复位应答信号(Answer to Reset,ATR),复位应答信号是由一串字符组成,它们规定了卡和接口设备间建立的通信特性。下面先介绍字符帧格式,然后描述复位应答信号。
1.基本时间单元
基本时间单元(Elementary Time Unit,ETU)是指I/O口线上传送一位所用的时间。
在复位应答期间,1ETU应与372个时钟周期相等,即1ETU=372/f,f为接口设备提供给IC卡CLK触点的时钟频率。
复位应答之后,ETU由公式得到:1ETU=F/(Df)。其中F为时钟频率转换因子,D为波特率校正因子。F和D的默认值为F=372,D=1。
2.字符帧
数据在I/O口线上是按字符帧格式进行传输的,如图2-7所示。
字符传输前,I/O口线应被置为H状态。一个字符包括10个连续位,由1位起始位、8位数据位、1位奇偶校验位组成。起始位始终为低电平,表明一个字符传输的开始;数据位占1B;奇偶校验位采用的是偶校验,即一个字符中逻辑1的个数必须为偶数,这里是指数据位和奇偶校验位所含逻辑1的个数要保证是偶数。
两个连续的字符之间有一个至少保持12个ETU的延时。在复位应答期间,卡发出的两个连续字符的上升沿间的延迟应不超过9600ETU,这个最大值被称为“初始等待时间”。
图2-7 字符帧格式
3.复位应答
复位应答是一系列字节的值,这些字节是卡作为对复位命令的响应发送给接口设备的。复位应答的字节顺序为:初始字符TS、格式字符T0、接口字符TAi- TBi-TCi-TDi(i=1,2,…)、历史字符T1-T2-…-TK(最多15个字符)和校验字符TCK(Check Character)。其中,TS和T0是必须有的,接口字符和历史字符是可选择的,且TS后发送的字符数最大不超过32个。
(1)初始字符TS
初始字符TS定义了所有后继字符的编码协议,有反向约定和正向约定两种。
反向约定:IC卡回送的TS为(H)LHHLLLLLLH,值为3FH。反向约定规定I/O口线上的低电平状态等效于逻辑1,且首先传送的是字节的最高有效位。
正向约定:IC卡回送的TS为(H)LHHLHHHLLH,值为3BH。正向约定规定I/O口线上的低电平状态等效于逻辑0,且首先传送的是字节的最低有效位。
接口设备一般都支持反向约定和正向约定,能接收IC卡回送的3FH或3BH,但实际使用更多的是正向约定。
(2)格式字符T0
格式字符T0声明了第一组接口字符和所有历史字符,其编码如图2-8所示。可以看出,T0由两部分组成:高4位b5~b8用来指明后继接口字节TA1~TD1是否存在,为1时表明对应的接口字节存在;低4位b1~b4用来指明历史字符的个数,范围为0~15。
(3)接口字符TAi-TBi-TCi-TDi(i=1,2,3,…)
接口字符用来指明协议参数。
TDi用来指明协议类型T和是否存在后续接口字符,其编码如图2-9所示。可以看出,TDi由两部分组成:一部分是由高四位b5~b8组成的Y(i+1),用来指明后续接口字符TAi+1、TBi+1、TCi+1和TDi+1是否存在,若TDi不存在,则TAi+1、TBi+1、TC i+1和TDi+1也不存在。另一部分是低4位b1~b4组成的T,用来指明后续发送到协议类型。当T=0时,表示为异步半双工字符传输协议,此时IC卡不回送TD1,且后续传输协议类型为T=0。当T=1时,表示为异步半双工块传输协议,此时IC卡回送TD1=0x81,表明TD2存在,且后续传输协议类型为T=1。
图2-8 T0编码
图2-9 TDi编码
TA1、TB1、TC1和TA2、TB2是全局性接口字符,TC2是T=0协议专用接口字符,TAi、TB i和TC i(i>2)的解释取决于TDi-1指定的协议T的类型。有关这些接口字符的具体定义请参照ISO/IEC 7816-3。
(4)历史字符T1-T2-…-TK(www.xing528.com)
历史字符由格式字符T0的K指明历史字符的个数,最多不超过15个。有关历史字符的具体定义请参照ISO/IEC 7816—4。
(5)校验字符TCK
校验字符TCK的值应使从T0到TCK的所有字节异或操作结果为0。当使用协议T=0时,将不发送TCK,而其他协议将发送TCK。
4.基本复位应答(ATR)
通常情况下,协议T=0和协议T=1是IC卡和接口设备共同支持的协议。这两种协议的基本复位应答见表2-3和表2-4。
表2-3 T=0协议的基本复位应答
T=0时,IC卡回送字符的顺序为TS、T0、TB1和TC1。
表2-4 T=1协议的基本复位应答
T=0时,IC卡回送字符的顺序为TS、T0、TB1、TC1、TD1、TD2、TA3、TB3和TCK。
5.操作模式
复位应答后,卡处于两种操作模式之一:专用模式(TA2存在)和协商模式(TA2不存在)。
图2-10显示了卡操作模式的选择。
在专用模式下,紧随复位应答之后,由TA2中b5位的取值来决定时钟频率转换因子F和波特率调节因子D的取值。当b5=1时,F和D值取默认值F=372,D=1。当b5=0时,F和D的取值请参考ISO/IEC 7816-3。
在协商模式下,若复位应答后无协议与参数选择(PPS)请求,则F和D值取默认值;若复位应答有PPS请求,则由接口设备发送带有F和D的PPS请求,使卡从协商模式转换为专用模式,并使用该F和D值。
图2-10 卡的操作模式
6.协议与参数选择(PPS)
卡和接口设备的通信总是由接口设备启动的,这意味着如果没有外部请求,卡不会送出数据。卡只响应从接口设备发来的命令。当卡插入接口设备后,自动执行上电复位,并送出一个复位应答(ATR)信号给接口设备。接口设备对卡ATR信号进行解析,然后发出第一条命令,卡对该命令进行处理并产生一应答信号回送给接口设备,这种命令和应答的来往一直持续到卡被激活。
在复位应答之后,卡如果处于协商模式,则允许接口设备向卡发送PPS(Protocol and Parameters Selection,协议和参数选择)请求。只有接口设备允许发出PPS请求,其过程如下:
1)接口设备向卡发送PPS请求。
2)若卡收到错误的PPS请求,它将不会发出响应信号。
3)若卡收到正确的PPS请求,则发出PPS响应信号,否则将超出初始等待时间。
4)若成功交换PPS请求和PPS响应,表明选择好了新的协议类型和(或)传送参数,按规定将数据从接口设备送到卡中。
如果存在下列三种情况之一:初始等待时间超时、错误的PPS请求、接口设备收到错误的PPS响应信号,接口设备将执行释放操作。
PPS请求和PPS响应信号都是由初始字符PPSS(代码为FF)、格式字符PPS0,三个任选字符PPS1、PPS2、PPS3以及最后一个校验字符PCK组成。通常情况下,如果PPS响应和PPS请求相等,则表明PPS交换成功,例外情况参见ISO/IEC 7816-3。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。