接触式IC卡接口原理与不同实现方式对比
摘要:详细介绍接触式IC卡读写原理;结合一个基于不同读写芯片、可以同时操作6片接触式IC卡的系统,对包括并行通信、半双工串行通信和I2C通信的几种不同接口形式的IC卡读写芯片进行了详细的对比分析。
关键词:ISO/IEC7816 接口技术 接触式IC卡 并行通信 半双工串行通信 I2C总线通信
引 言
IC卡 (Integrated Circuit Card,集成电路卡)是继磁卡之后出现的又一种新型信息工具。IC卡在有些国家和地区也称智能卡(smart card)、智慧卡(intelligent card)、微电路卡(microcircuit card)或微芯片卡等。它是将一个微电子芯片嵌入符合ISO 7816标准的卡基中,做成卡片形式;已经十分广泛地应用于包括金融、交通、社保等很多领域。
javascript:window.open(this.src);" style="cursor:pointer;"/>
IC卡读写器是IC卡与应用系统间的桥梁,在ISO国际标准中称之为接口设备IFD(Interface Device)。IFD内的CPU通过一个接口电路与IC卡相连并进行通信。IC卡接口电路是IC卡读写器中至关重要的部分,根据实际应用系统的不同,可选择并行通信、半双工串行通信和I2C通信等不同的IC卡读写芯片。
1 接触式IC卡接口技术原理
IC卡读写器要能读写符合ISO7816标准的IC卡。IC卡接口电路作为IC卡与IFD内的CPU进行通信的唯一通道,为保证通信和数据交换的安全与可靠,其产生的电信号必须满足下面的特定要求。
javascript:window.open(this.src);" style="cursor:pointer;"/>
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时间内没有具体定义);
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