IC卡协议开发理解

IC卡的终端驱动芯片采用AT83C26,这款芯片是目前使用比较广泛的IC卡读卡芯片,AT91SO系列是atmel公司针对安全芯片领域开发的芯片系列,其中内嵌了83c26芯片,其使用原理同单独使用主芯片控制83c26方法相同。
    IC
卡主要遵循ISO-7816的协议,下面主要介绍下本人在IC卡驱动开发过程中的经验和心得。

At83c26对于ic卡的控制已经很成熟,对于数据比特流的大多数分析读取都通过硬件完成,但是对于总体的控制和释放还是需要非常严格的程序代码控制。Ic卡主要通过四个io进行通信,VccRstClkCio

Vcc:就是提供ic卡电压,目前主要有2ic卡,分别支持不同的电压,A类卡5vB类卡3.3v,一般使用A类卡。

Rst:复位信号管脚,通过制高该管脚,产生复位应答。

Clk:时钟输出。

Cio:数据读取。

Sam卡只需要上面四种接口就可以通讯,Ic卡和sam卡协议相同,但是还有c4c8管脚,是留作未来使用的管脚。

对于ic卡的数据读取,都必须严格的遵照时间基本单元,即ETU

Etu = 372 / f f 为系统驱动ic卡的时钟频率

首先介绍复位应答:

对于复位应答的介绍,emv协议中有详细的阐述,对此,并不想照搬的说一遍,而是加入本人对于这块内容的理解,emv协议介绍的很详细,但是想要好好的理解却要花费不少的功夫,本人归纳了下,对于复位应答的流程,就是先上电,就是vcc端先上电,说白了,不上电,什么都做不了,然后这段时间可以由你控制,你可以什么都不做,等在那儿,都没关系,这里emv协议都没有做出明确规定,然而,当你准备启动时钟的时候,即clk输出的时候,就要严格按照emv规定了,从clk启动开始,就开始计时,在200个时钟周期内,cio必须制高,进入等待接收模式,同时,在40000~45000个时钟周期内,rst脚必须制高电平,当然,在这之前必须保持低电平,当rst制高的那一时刻,就是ic卡复位,从这一时刻开始,在某段时间内,cio必须收到卡发出的应答信号,这段时间也很严格,必须是400~40000个时钟周期范围内,如果超出这个时间,还没有收到,那么就当做错误处理了。以上这个过程叫做冷复位,就是读卡的第一步操作,当然有了冷复位,就有热复位了。

  热复位紧跟冷复位之后,当冷复位失败后,就启动热复位了,热复位流程相对少点,首先将rst脚制低电平,这时必须保持clkvcc不变,然后在200个时钟周期内,将cio口制高,在rst制低的400~40000个时钟周期内,将rst制高电平,这一时刻,ic卡复位,接下去和冷复位的步骤一样,如果在40000个周期内还是没有收到应答,那么就当作复位失败了。

那么不管复位是成功还是失败,都是要进行释放的,释放的过程也必须严格按照emv协议上规定的,首先,cio制为z,紧跟着,retz,然后clk也这么做,最后vcc制低,整个过程就结束了,每一步之间没有严格的时钟控制,只要按照这一步骤就可以。

复位应答成功后,会收到一连串字符,长度不等,跟ic卡有关,这串字符就是ic卡能够进行下一步操作的关键了,所谓的字符,就是长度不等的一串字节,当然,对于每一个字节的定义,在emv协议中都做出的明确的规定,这里主要介绍几个关键的,或者说本人在开发过程认为比较关键的字节,其中TA1)就是控制etu的关键字节,在复位应答开始前,默认将etu设置为 372/f,这是默认配置,就是不管什么卡,都是通用的配置,在得到复位应答后,根据分析后,如果有TA1)存在,那说明卡告诉读卡设备,要用TA1)来重新配置etu,这时,etu = F/(Df),而FD就是通过TA1)确定的,如果没有TA1),那么也不要紧,采用缺省配置,即Fd = 372Dd = 1,这样,etu就等于复位应答时的etu了。当然,如果在选择协议时,加入了pps协商,那么在复位应答后,还要再加上一步pps协商应答,在应答前,也采用默认的FdDd,协商完成后,采用协商得到的FnDn,这样,FD可以通过三种形式来得到,当然,具体的操作模式也影响FD的选择,当TA2)存在时,说明采用专用模式,如果TA2)的b5 = 0,复位应答后立刻采用FiDi,如果b5 = 1,则使用缺省值,当TA2)不存在时,采用协商模式,使用缺省的FdDd,直至获得pps协商的FnDn为止,别的字节,参照emv协议,基本就差不多了。

这样,复位应答能够得到,后面的协议应答也就基本没有问题了,emvlevle1就是基于这个基础来完成的。

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值