接触式IC卡接口原理与不同实现方式对比

2007-03-09 19:03:27来源: 互联网
摘要:详细介绍接触式IC卡读写原理;结合一个基于不同读写芯片、可以同时操作6片接触式IC卡的系统,对包括并行通信、半双工串行通信和I2C通信的几种不同接口形式的IC卡读写芯片进行了详细的对比分析。 关键词:ISO/IEC7816 接口技术 接触式IC卡 并行通信 半双工串行通信 I2C总线通信 引 言 IC卡 (Integrated Circuit Card,集成电路卡)是继磁卡之后出现的又一种新型信息工具。IC卡在有些国家和地区也称智能卡(smart card)、智慧卡(intelligent card)、微电路卡(microcircuit card)或微芯片卡等。它是将一个微电子芯片嵌入符合ISO 7816标准的卡基中,做成卡片形式;已经十分广泛地应用于包括金融、交通、社保等很多领域。   IC卡读写器是IC卡与应用系统间的桥梁,在ISO国际标准中称之为接口设备IFD(Interface Device)。IFD内的CPU通过一个接口电路与IC卡相连并进行通信。IC卡接口电路是IC卡读写器中至关重要的部分,根据实际应用系统的不同,可选择并行通信、半双工串行通信和I2C通信等不同的IC卡读写芯片。 1 接触式IC卡接口技术原理   IC卡读写器要能读写符合ISO7816标准的IC卡。IC卡接口电路作为IC卡与IFD内的CPU进行通信的唯一通道,为保证通信和数据交换的安全与可靠,其产生的电信号必须满足下面的特定要求。 1.1 完成IC卡插入与退出的识别操作 IC卡接口电路对IC卡插入与退出的识别,即卡的激活和释放,有很严格的时序要求。如果不能满足相应的要求,IC卡就不能正常进行操作;严重时将损坏IC卡或IC卡读写器。 (1)激活过程 为启动对卡的操作,接口电路应按图1所示顺序激活电路: ◇RST处于L状态; ◇根据所选择卡的类型,对VCC加电A类或B类,正常操作条件下VCC的电特性见表1; 表1 正常操作条件VCC的电特性 符 号 最小值 最大值 条 件 Vvcc/V 4.5 2.7 5.5 3.3 A类 B类 Icc/mA   60500.5 A类,在最大允许频率 B类,在最大允许频率时钟停止 ◇VPP上升为空闲状态; ◇接口电路的I/O应置于接收状态; ◇向IC卡的CLK提供时钟信号(A类卡1~5MHz,B类卡1~4MHz)。 图3   如图1所示,在t’a时间对IC卡的CLK加时钟信号。I/O线路应在时钟信号加于CLK的200个时钟周期(ta)内被置于高阻状态Z(ta 时间在t’a之后)。时钟加于CLK后,保持RST为状态L至少400周期(tb)使卡复位(tb在t’a之后)。在时间t’b,RST被置于状态H。I/O上的应答应在RST上信号上升沿之后的400"40 000个时钟周期(tc)内开始(tc在t’b之后)。   在RST处于状态H的情况下,如果应答信号在40 000个时钟周期内仍未开始,RST上的信号将返回到状态L,且IC卡接口电路按照图2所示对IC卡产生释放。 (2)释放过程 当信息交换结束或失败时(例如,无卡响应或卡被移出),接口电路应按图2所示时序释放电路: ◇RST应置为状态L; ◇CLK应置为状态L(除非时钟已在状态L上停止); ◇VPP应释放(如果它已被激活); ◇I/O应置为状态A(在td时间内没有具体定义); ◇VCC应释放。 图4 1.2 通过触点向卡提供稳定的电源   IC卡接口电路应能在表1规定的电压范围内,向IC卡提供相应稳定的电流。 1.3 通过触点向卡提供稳定的时钟   IC卡接口电路向卡提供时钟信号。时钟信号的实际频率范围在复位应答期间,应在以下范围内:A类卡,时钟应在1~5MHz;B类卡,时钟应在1~4MHz。   复位后,由收到的ATR(复位应答)信号中的F(时钟频率变换因子)和D(比特率调整因子)来确定。   时钟信号的工作周期应为稳定操作期间周期的40%~60%。当频率从一个值转换到另一个值时,应注意保证没有比短周期的40%更短的脉冲。 2 几种实现方式的对比与分析   IFD内的IC卡读写芯片,按其与IFD内的CPU的通信方式进行分类,有并行通信、半双工串行通信和I2C通信的读写芯片。图3是一个基于三种不同通信方式读写芯片的通用IC卡读写器的原理示意。这个系统可以同时对6片IC卡进行操作,其中每一个IC卡读写芯片都可以驱动2片IC卡。应用系统可以根据实际情况合理选用其中的一种或多种读写芯片。 2.1 IC卡读写芯片的硬件对比分析 (1)通信方式为并行通信的CTS56I01   CTS56I01支持两个符合ISO/IEC7816-3标准的T0和T1传输协议的IC卡。它采用并行的方式与IFD内的CPU通信;可以检查到卡的插入与拔出,并自动产生激活与释放时序。CTS56I01内部每个通道都有发送缓冲空、ATR超时、释放检测完成、TS没有收到等10个独立的中断源,当CTS56I01内部的状态发生变化时,可以产生中断信号。系统通过P0口与CTS56I01的数据线相连,地址选择用P2[2:0],两个中断信号经过或门后接到89C51的INT0上。对IC卡的所有操作,只是对CTS56I01内部寄存器的读写操作,方便可靠。CTS56I01采用LQFP-32封装,仅占很小的空间。 (2)通信方式为半双工串行通信的WatchCore   WatchCore是握奇公司为了方便各种嵌入式设备与IC卡的通信开发而推出的一款IC卡读写芯片,硬件平台采用ST7261单片机,内部掩膜有握奇公司对IC卡进行读写操作的全部程序;支持ISO/IEC 7816 T=0、T=1异步传输协议的各种智能卡,支持对Memory卡操作,支持双卡头操作,与接口CPU采用半双工串行通信。系统用P1.1和P1.2模拟一个串口与WatchCore进行通信。WatchCore采用SO-20装封,占PCB板很小的位置。 图5 (3)通信方式为I2C的TDA8020   TDA8020是Philips生产的支持两个独立IC卡的读写芯片,IFD内的CPU采用I2C的方式向TDA8020发送命令和读取状态,通过TDA8020的I/OuC端口向IC卡发送和接收数据。它支持符合ISO/IEC7816-3 T=0、T=1标准的IC卡,也支持符合EMV3.1.1(Europay,MasterCard,VISA)标准的卡。与它Pin-to-Pin兼容的芯片还有ST公司生产的ST8020等。TDA8020有2个地址选择引脚。本系统的地址引脚接地,两个IC卡对应的地址分别为0x40和0x48。I2C的时钟信号和数据信号分别由89C51的P1.3和P1.4进行模拟,IC卡的数据通道I/OuC连89C51的P1.5和P1.6。TDA8020也采用LQFP-32装封。 2.2 IC卡读写芯片的软件设计 2.2.1 通信方式为并行通信的CTS56I01   CST56I01只有3根地址线,内部却有37个寄存器。其中有8个寄存器可以直接访问,另外的29个寄存器要通过索引地址寄存器(IAR)来访问。其访问分为两步:第一步是将要间接访问的寄存器的地址写到IAR寄存器中;第二步就是从数据寄存器(DR)中读出数据或写入数据到DR寄存器中,来完成对要间接访问的寄存器的访问。 下面的C51子程序是基于图3的写一个字节到要间接访问的寄存器中的子程序。 #define SN2_IAR XBYTE[0x0000] #define SN2_DR XBYTE[0x0100] void WriteByteIndexed(BYTE bIndex, BYTE bData) { P1.0=0; SN2_IAR = bIndex; SN2_DR = bData; } 2.2.2 WatchCore的软件设计   WatchCore是不带硬件的UART,其串行通信是用软件实时仿真的。通信速度采用9600bps;通信字节格式为1位起始位,8位数据位,1位偶校验位,2位停止位。TXD与RXD电气信号是标准的CMOS电平,可直接与TTL的电路相连。以下是通信时的数据包格式。 (1)命令包 命令包是IC卡读写器内的CPU发往WatchCore的数据,其包格式如下: NAD PCB LEN DATA BCC NAD为卡头选择, NAD=0x00/0x12为主卡头,NAD=0x13为从卡头; PCB与通信无关,CPU卡T=1时使用,PCB通常设置为0x00; LEN为数据的字节长度(仅DATA段的字节数); DATA为发送WactchCore或IC卡内的命令(命令参考ISO7816-4的标准); BCC为异或校验字节(BCC段前的4段所有字节的异或和)。 (2)数据包 数据包是WatchCore 收到命令包后返回的数据,其包格式如下: NAD* 是WatchCore把命令包中NAD字节的高低4位互换后的返回。例如,命令包发送NAD=0x12,WatchCore则返回NAD*=0x21; 其它各段与命令包相同。 通信举例(以下数据都用十六进制表示) 对主卡进行复位 发送命令包如下: 12 00 05 00 12 00 00 00 05 若主卡头中无卡,则WatchCore返回: 21 00 02 62 00 41 若主卡头有一张T=0的CPU卡,则可能返回: 21 00 11 3B 7A 18 00 00 21 08 11 12 13 14 15 16 17 18 90 00 D8 2.2.3 TDA8020的软件设计   TDA8020与IFD内CPU的通信是用I2C总线方式进行的。通过I2C接口,IFD内的CPU可以向TDA8020发送命令或读取TDA8020的状态。TDA8020有两个地址选择引脚(SAD0和SAD1)。在图3中,这两个地址选择引脚接地,对应两个IC卡的I2C总线地址分别是40H和48H。如果系统中有别的I2C总线器件,可以按表2的方式进行寻址。 表2 TDA8020的I2C地址选择表 SAD1 SAD0 CARD1 CARD2 0 0 40H 48H 0 1 42H 4AH 1 0 46H 4CH 1 1 48H 4EH (1)向TDA8020写入命令的格式 图4为向TDA8020写入命令的格式。按图3所示,对卡1的地址和写的字节为40H。 其中控制字节各位的含义如表3所列。 表3 命令控制字节各位的含义 名 称 位 说 明 START和/STOP 0 为1,产生一个冷复位的激活时序:为0,产生一个释放时序 WARM 1 为1,产生一个热复位时序 3/5V 2 为1,设定卡的操作电压为3V;为0,设定卡的操作电压为5V PDOWN 3 为1,设定卡为下电模式;为0,设定卡为正常工作模式 CLKPD 4 为1,设定下电模式下CLK停在高电平;为0,设定下电模式下CLK停在低电平 CLKSEL1 5 两位设定卡在正常工作模式时的工作时钟频率见表4 CLKSEL2 6 I/OEN 7 I/O使能位。为1时,I/O与I/Ouc相连;为0时,I/Ouc是高阻状态 (2)读TDA8020内部状态的数据格式 从TDA8020读出状态的格式如图5所示。按图3所示,对卡1的地址和读的字节为41H。 其中状态字节中各位的含义如表5所列。 表4 工作时钟频率选择方式 CLKSEL2 CLKSEL1 CLOCK OU 0 0 CLKIN/8 0 0 CLKIN/4 1 0 CLKIN/2 1 1 CLKIN 表5 状态字节各位的含义 名 称 位 说 明 PRES 0 卡的状态指示。为1时,检测到卡:为0时,没有检测到卡 PRESL 1 为1时,卡的状态还没有读;当为0时,卡的状态已读出 I/O 2 I/O为高时,这位为1;当I/O为低时,这位为0 SUPL 3 为1时,表示电源监控器已输出,上电后就为1,直到读出后为0 PROT 4 为1时,表示过热或过载状态 MUTE 5 为1时表示卡在规定的时间内没有发出ATR信号 EARLY 6 为1时表示卡在规定的时间前就已经发出ATR信号 ACTIVE 7 为1时,卡处于激活状态;为0时,卡处于释放状态 3 总 结   以上比较详细地介绍了三种不同接口的IC卡读写芯片。这三种方式最大的区别在于其与IFD内的CPU的通信方式不一样,并且也都符合ISO/IEC7816的标准。但是,这三个读写芯片有一些地方也存在一些差异。   TDA8020支持A类和B类卡,但是WatchCore和SNIPER II CST56I01只支持A类卡。(虽然SNIPER II CST56I01内部寄存器中有一位是卡类选择,但却只支持A类卡。)   TDA8020和SNIPER II CST56I01其ESD保护达6kV,但是WatchCore却没有ESD保护功能。   TDA8020对卡的电源可以直接支持,并有过流保护功能;但是WatchCore和SNIPER II CST56I01却只有通过一个功放管来实现,并且没有过流保护功能,只有外接保护电路(如加可复位保险丝)。   就其接口方式来说,I2C总线的TDA8020和串口的WatchCore虽然与IC卡读写器内的CPU的连接方便,但是一般CPU没有多余的串口和I2C总线接口给这两个芯片,一般要用通用I/O口来模拟串口和I2C总线接口才能进行通信。而SNIPER II CST56I01与IFD内的CPU的并行通信虽然连接线较多,但其相应的软件就方便多了。   综上所述,这三个IC卡读写芯片各有不同,在实现应用的过程中,只有根据不同的资源情况来选用不同的读写芯片。
编辑: 引用地址:http://www.eeworld.com.cn/designarticles/others/200703/10156.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved