无标题文档
首页 资讯 产品 技术 方案 案例 访谈 专题 供求 企业 论坛 下载 标准 会展 联盟 设为首页 旧版入口
电子标签 读写器 标签打印 中间件 应用软件 智能卡 制卡办证 二代证 门禁考勤 巡更 停车场 一卡通 其它识别
物流 零售 制造 服装 医疗 交通 食品 动物 图书 煤矿 资产 票证 汽车 支付 防伪 航空 军事 其它
用户名: 密 码: 免费注册 忘记密码
站内搜索:
  您所在的位置RFID中国网 >> 技术 >> 基本原理 >>  接触式IC卡接口原理与不同实现方式对比
接触式IC卡接口原理与不同实现方式对比
作者: 慧聪网 发布时间: 2007-07-27 08:55:01 来源: RFID中国论坛
关键词:  IC卡  接触式
文档: 技术文档| 技术原理 | 软件 | 产品资料 | 方案案例 | 智能卡

  摘要:详细介绍接触式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)。

  如图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应释放。

    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板很小的位置。

    (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卡读写芯片各有不同,在实现应用的过程中,只有根据不同的资源情况来选用不同的读写芯片。
(fengminxing)

 

[字体: ] [打印] [进入论坛] [推荐给朋友]
相关文章 相关产品
·非接触式移动支付迎来市场发展良机
·坚持自主创新发展 打破知识产权垄断
·羊城通 不妨学学八达通
·NFC技术引领移动支付业务规模突破
·“回乡卡”今年全面启用 通关只需八秒
·北京华北电力大学推行刷卡洗衣 受到学生青睐
·非接触式移动支付发展需解决7个难题
·广东省对直通粤港澳车辆实行IC卡管理
  更多产品>>
 
远望谷徐玉锁:建设基业长青的RFID公众型公司
复旦微电子:我们已能做出媲美国际品牌的产品
 
“一卡通”为何不通了?【全文】
智能卡技术与市场评测 【全文】
 

2004-2006 Copyright RFID China Organization.All Rights Reserved.
隐私保护 版权声明 京ICP备05067666号