您的位置:首页 > 运维架构 > Linux

和菜鸟一起学linux总线驱动之smartcard操作模式和协议与参数选择

2012-10-26 14:28 399 查看
模式操作

在复位应答后,卡处于下面两种操作模式之一:

——
若TA(2)存在,则处于特定模式;

——
若TA(2)不存在,则处于协商模式。

图示出了卡操作模式的选择和切换。



1、 特定模式

在特定模式中,直接在复位应答之后,由TA(2)所指示的协议应使用

——若TA(2)中b5=0,使用Fi和Di;

——若TA(2)中b5=1,使用隐含值。

然而,IFD可启动热复位来调用卡中的协商模式。

2、 协商模式

在协商模式中,只要IFD发送给ICC的第一个字节允许在PPS请求与协议命令之间有无二义性差别,则“隐式选择”是可能的。

——若在复位应答后无PPS请求被直接发送,应使用Fd和Dd来应用“第一次提供的协议”;

——对于另一个由ICC提供的协议和/或参数F、D的其他值(F范围为Fd到Fi,D的范围为Dd到Di),IFD应发送一个使用Fd和Dd的PPS请求,以便从协商模式转到特定模式。直接在成功的PPS交换之后,应使用Fn和Dn来应用协商的协议。

如果复位应答仅提供某个协议(T=0到14)以及Fd和Dd,则该协议应使用Fd和Dd且紧随复位应答之后启动。因此,这样的卡不必支持PPS。

既不支持PPS又不支持“第1次提供的协议”的IFD或者可以复位ICC以尝试从协商模式转到IFD支持的特定模式,或者可以拒绝卡。

协议和参数选择(PPS)

PPS请求和响应应该以与复位应答相同的方式来发送,即,以相同的波特率(因此使用Fd和Dd),符合TS建立的约定,并且在连续两个字符的起始沿具有最小延迟12etu。然而如果接口字节TC(1)出现在复位应答中,且不等于“FF”,则应保证有附加的保护时间。PPS响应的两个连续字符的起始沿之间的延迟不应超过“初始等待时间”

1、PPS协议

只有IFD被允许启动PPS交换。

—— IFD应发送一个PPS请求给ICC;

——
如果ICC收到一个错误PPS请求,则它不发送任何响应;

——
如果ICC收到一个正确PPS请求,如果完成,则它应发送一个PPS响应,否则将超过初始等待时间;

——
如果超过初始等待时间,则IFD或者复位,或者拒绝ICC;

——
如果IFD收到错误PPS响应,则IFD或者复位,或者拒绝ICC;

如果PPS交换不成功,则IFD或者复位,或者拒绝ICC。

2、 PPS请求和响应的结构和内容

PPS请求和响应分别包括一个初始字节PPSS,后面是格式字节PPS0,三个可选参数字节PPS1、PPS2、PPS3和一个检验字节PCK作为最后一个字节。

PPSS标识了PPS请求或响应并等于“FF”。

PPS0根据位b5、b6、b7是否等于1来指明可选字节PPS1、PPS2、PPS3是否存在。位b4到b1运送参数T的值以建议一种协议。位b8保留作将来使用并应置为0。

PPS1允许IFD向卡建议F和D的值。按与TA(1)中相同方法进行编码,这些值应分别位于Fd~Fi和Dd~Di的范围内。如果IFD不发送PPS1,则它建议继续使用Fd和Dd。ICC或者通过回送PPS1来确认两个值(然后这两个值就变为Fn和Dn),或者不发送PPS1,继续使用Fd和Dd(然后,Fn置为372,Dn置为1)。

PPS2和PPS3保留作将来使用。

PCK的值是这样的,以致使涉及所有字节PPSS至PCK(包括PPSS和PCK)的异或运算结果为0。



3、 成功的PPS交换

如果PPS响应准确地回复了PPS请求,则PPS交换是成功的。这是最常见的情况。然而也可能发生其他情况。

当PPS响应属于下列情况之一时,该PPS交换也是成功的:

—— PPSS响应=PPSS请求;

—— PPS0响应:

 
应回送位b1至b4;

 
应回送位b5或将其置为0;

 
如果b5=1,PPS1响应=PPS1请求;

 
如果b5=0,PPS1响应不存在,就意味着应使用Fd和Dd。

 
应回送位b6或将其置为0;

 
如果b6=1,PPS2响应=PPS2请求;

 
如果b6=0,则PPS2响应和PPS2请求都不存在。

 
应回送位b7或将其置为0。

 
如果b7=1,PPS3响应=PPS3请求;

 
如果b7=0,则PPS3响应和PPS3请求都不存在。

PPS交换的任何其他情况都应被解释为不成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: