和菜鸟一起学linux总线驱动之初识smartcard操作过程

版权声明:本文为博主东月之神原创文章,未经博主允许不得转载。 https://blog.csdn.net/eastmoon502136/article/details/8114634

       学东西还是从实际的物体开始吧,先看下我们常用的触点式IC卡的管脚定义。

                             


     接口设备应通过触点VCC向卡提供下列标称电源:

—— A类:5V

—— B类:3V

因此,卡和接口设备应仅工作在A类,或者仅工作在B类,或者工作在A类及B类(以下表示为AB类)。

A类卡应能在A类或AB类接口设备上操作。AB类卡应能在A类、B类或AB类接口设备上操作。B类卡应能在B类或AB类的接口设备上操作;B类卡应具有防护卡在A类操作条件下不被损坏的功能(根据定义,损坏的卡为不能按规定操作或包含有错误的数据的卡)。

 

一、各个管脚的功能

1、VCC

该触点用来向卡提供电源电压。表1中的电流值是1ms时间内的平均值。为卡规定了最大电流。接口设备应能在规定电压值范围内提供此电流值或者更大的电流值。

 

2、  I/O

该触点用作输入(接收模式)或输出(发送模式)。通过触点I/O的信息交换使用了以下两种逻辑状态(如GB/T 3453-1994中定义):

—— 状态Z,如果卡和接口设备处于接收模式或者该状态由发送方强制。

—— 状态A,如果这个状态是由发送方强制。

当线路的两端处于接收模式时,这条线路应处于状态Z(高状态)。当线路的两端处于不匹配发送模式时,则该线路的逻辑状态可能是不确定的。在操作期间,接口设备和卡不应都处于发送模式。

当输入电压在允许范围内时,接口设备应能支持规定范围的输入电流。接口设备应对卡呈现一个阻抗,以使接口设备不妨碍卡能保持输出电压在规定的范围内。

 

3、  CLK

该触点用来向提供时钟信号。时钟信号的实际频率由f指定。

在稳定工作期间,时钟信号周期的占空比应为40%~60%。当频率从一个值切换到另一个值时,应注意保证没有比卡允许的最短周期的40%更短的脉冲。当切换频率值时,没有信息被交换。对于切换频率值,建议使用两个不同的时间:

—— 在复位应答后立即进行,或

—— 在一次成功的PPS交换后立即进行。

 

4、  RST

该触点用来向卡提供复位信号,有冷复位和热复位

 

5、  VPP

在B类操作条件下,该触点保留待将来使用。

在A类操作条件下,该触点可用来向卡提供为了写或擦除内部非易失性存储器所要求的编程电压。表6定义了触点VPP上的两种激活状态:暂停状态和编程状态。除非卡要求编程状态,接口设备应将触点VPP保持在暂停状态。

 

二、卡的操作过程

当卡的触点与接口设备的触点在机械上被连接时,电路才被激活。

接口设备和卡之间交互应通过下列条款规定的连续操作来进行。

—— 接口设备激活电路;

—— 卡和接口设备之间的信息交换总是起始于卡对冷复位的应答;

—— 接口设备停活电路。

电路的停活序列应在卡的触点和接口设备的触点机械断开前结束

 

1、  激活

为启动与机械上连接的卡交互,接口设备应按下图所示下列次序来激活电路:

—— 将RST置为状态L;

—— 按照接口设备所选择的操作条件:A类或B类,VCC应被加电;

—— 将接口设备上的I/O置于接收模式;

—— 在A类条件下,VPP应置于暂停状态;在B类条件下,VPP保留待将来使用;

—— 应为CLK提供时钟信号。至少在复位应答期间,时钟的频率f应在以下范围内:

●      1~5MHz,A类,或

●      1~4MHz,B类。

电路的激活序列结束(RST为状态L,VCC加电,接口设备上的I/O为接收模式,当操作在A类时VPP为暂停状态,为CLK提供一个合适且稳定的时钟信号)后,按规定的时序,卡准备好冷复位。

 

 

2、  信息交换

如果卡支持操作条件的类别,则卡应对任何复位进行应答。在任何复位应答完成后,接口设备可启动卡的热复位。对于热复位的应答可能会与对前一个复位的应答不同,而无论前一个复位是冷复位,还是热复位。在完成一个指明协商方式的复位应答后,接口设备可按照规定启动PPS交换。

命令的操作规程取决于传输协议。主要有以接口设备为主的异步半双工字符传输和异步半双工块传输。当从卡没有传输(相当于一个命令完成后和另一个命令启动前),如果卡支持时钟停止,则接口设备甚至可以停止时钟信号。

 

2.1、冷复位

按上图,在Ta时刻对CLK施加时钟信号。在施加到CLK的时钟信号的200个时钟周期(ta)(时间段taTa之后)的范围内,卡应把I/O线置为状态Z。在时钟信号施加到CLK后,通过将RST保持在状态L至少400个时钟周期(tb)(时间段tbTa之后)来复位卡。

Tb时刻,RST被置于状态H。I/O上的应答应在RST上信号的上升沿之后的40040000个时钟周期tc)(时间段tcTb之后)之间开始。

在RST处于状态H的情况下,如果应答在40000个时钟周期内仍未开始,则RST上的信号应被返回到状态L,且接口设备将电路停活。

 

2.2、热复位

按图,接口设备通过将RST置为状态L至少400个时钟周期(时间段te)来启动热复位,同时VCCCLK仍保持稳定

Td时刻,RST置于状态H。I/O的应答应在RST上信号上升沿之后400到40000个时钟周期(tf)(时间段tfTd之后)之间开始。

在RST处于状态H时,如果应答在40000个周期内开始,应将RST上的信号返回状态L,且接口设备将电路停活。

 

 

2.3、时钟停止

当接口设备认为从卡没有传输且I/O保持状态Z至少1860个时钟周期(时间段tg)时,则按下图,接口设备可停止CLK上的时钟(在Te时刻)。

当时钟被停止(从Te时刻到Tf时刻),CLK应被保持在状态H或状态L;这个状态由参数X来指出。

Tf时刻,接口设备重启动时钟,I/O上的信息交换在至少700个时钟周期之后(时间段thTf之后)继续进行。

 

3、  停活

当信息交换结束或放弃时(例如,无卡响应或检测到卡移出),接口设备应按图所示下列顺序停活电路。

—— RST被置为状态L;

—— CLK置为状态L(除非时钟已停止在状态L上);

—— VPP被停活(如果它已被激活);

—— I/O置为状态A;

—— VCC停活。

 

 

 

 

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页