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

模式操作

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

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

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

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

 

1、  特定模式

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

——若TA(2)b5=0,使用FiDi

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

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

 

2、  协商模式

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

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

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

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

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

 

 

协议和参数选择(PPS

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

 

1PPS协议

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

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

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

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

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

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

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

 

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

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

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

PPS0根据位b5b6b7是否等于1来指明可选字节PPS1PPS2PPS3是否存在。位b4b1运送参数T的值以建议一种协议。位b8保留作将来使用并应置为0

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

PPS2PPS3保留作将来使用。

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

 

      

 

3、  成功的PPS交换

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

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

—— PPSS响应=PPSS请求;

—— PPS0响应:

      应回送位b1b4

      应回送位b5或将其置为0

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

      如果b5=0PPS1响应不存在,就意味着应使用FdDd

      应回送位b6或将其置为0

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

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

      应回送位b7或将其置为0

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

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

PPS交换的任何其他情况都应被解释为不成功。

 

posted on 2012-10-26 14:28  吴一达  阅读(269)  评论(0编辑  收藏  举报

导航