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

发布者:SparklingEyes最新更新时间:2010-06-10 关键字:并行通信  IC卡读写器  A类卡  接口  B类卡  接触式IC卡 手机看文章 扫描二维码
随时随地手机看文章
      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;

  ◇ 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之后)。

  

  

  图1 IC卡的激活时序

  在RST处于状态H的情况下,如果应答信号在40 000个时钟周期内仍未开始,RST上的信号将返回到状态L,且IC卡接口电路按照图2所示对IC卡产生释放。

  

  

  图2 IC卡的释放时序

  (2) 释放过程

  当信息交换结束或失败时(例如,无卡响应或卡被移出),接口电路应按图2所示时序释放电路:

  ◇ RST应置为状态L;

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

  ◇ VPP应释放(如果它已被激活);

  ◇ I/O应置为状态A(在td时间内没有具体定义);

  ◇ VCC应释放。

  1.2 通过触点向卡提供稳定的电源

  IC卡接口电路应能在表1规定的电压范围内,向IC卡提供相应稳定的电流。

  表1 正常操作条件下VCC的电特性

  

  

  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卡。应用系统可以根据实际情况合理选用其中的一种或多种读写芯片。

  

  

  图3 基于三种不同读写芯片的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为卡头选择, 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;

  其它各段与命令包相同。

  通信举例(以下数据都用十六进制表示)

  对主卡进行复位

  发送命令包弳cript type="text/javascript"> function ImgZoom(Id)//重新设置图片大小 防止撑破表格 { var w = $(Id).width; var m = 650; if(w < m){return;} else{ var h = $(Id).height; $(Id).height = parseInt(h*m/w); $(Id).width = m; } } window.onload = function() { var Imgs = $("content").getElementsByTagName("img"); var i=0; for(;i

[page]

  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地址选择表

  

  

  (1) 向TDA8020写入命令的格式

  图4为向TDA8020写入命令的格式。按图3所示,对卡1的地址和写的字节为40H。

  其中控制字节各位的含义如表3所列。

  

  

  图4 向TDA8020写入命令的时序

  表3 命令控制字节各位的含义

  

  

  表4 工作时钟频率选择方式

  

  

  (2) 读TDA8020内部状态的数据格式

  从TDA8020读出状态的格式如图5所示。按图3所示,对卡1的地址和读的字节为41H。

  

  

  图5 从TDA8020读出状态的时序

  其中状态字节中各位的含义如表5所列。

  表5 状态字节各位的含义

  

  

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

  参考文献

  1 CTS56I01 Data Sheet REV1.0.2. 2002

  2 TDA8020HL Data Sheet. 2002

  3 WatchCore用户手册. 2002-05

  4 陆永宁. IC卡应用系统. 南京:东南大学出版社, 2000

  5 张毅刚, 等. MCS-51单片机应用设计. 哈尔滨:哈尔滨工业大学出版社 , 1997

  本文使用海纳锐利编辑并转载, 版权归原作者所有。

关键字:并行通信  IC卡读写器  A类卡  接口  B类卡  接触式IC卡 引用地址:接触式IC卡接口原理与不同实现方式对比

上一篇:视频会议多点控制单元的MCU设计与实现
下一篇:GMM和SAW谐振器复合磁传感器设计与分析

推荐阅读最新更新时间:2024-03-16 10:53

采用SPI接口实现双DSP双向通信和同步
摘 要: 为了实现两片TMS320F2812 DSP之间的双向数据通信和同步,给出了运用TMS320F2812 DSP内部集成的串行SPI外设接口模块实现双DSP控制器双向数据通信和任务同步的硬件电路设计和软件协议实现方案,经过实验验证方案能满足两片DSP之间高效率、高可靠的双向数据通信和任务同步,最后提出了在通信过程中出现故障的解决方案。成功解决了两个DSP控制器的双向数据通信和任务同步的问题。 关键词: DSP;SPI;双向通信;同步 在载人航天、无人机、火控雷达等尖端技术领域的作动系统中,常用双控制器余度技术来提高系统的可靠性。两个控制器之间就需要一种高效可靠的数据通信以保证在同一时间执行相同的周期任务。利用SP
[嵌入式]
采用SPI<font color='red'>接口</font>实现双DSP双向<font color='red'>通信</font>和同步
Lattice:CrossLinkPlus是针对亚太市场推出的高集成桥接方案
日前,在莱迪思半导体(Lattice)CrossLinkPlus FPGA新品发布会上,介绍了全新CrossLinkPlus产品,拥有集成闪存、一个硬MIPI D-PHY、可实现面板瞬时显示的高速I/O以及灵活的片上编程特性。此外莱迪思还提供现成的IP和参考设计来加速实现和增强传感器与显示器的桥接、聚合和分屏功能,这些是工业、汽车、计算和消费电子等应用的常用功能。 在发布会现场,Lattice副总裁兼亚太区总经理徐宏来代表Lattice CEO强调,该新品是由亚太区提出的产品需求,也是针对亚太市场推出的产品,未来Lattice的产品规划及研发方向,都会考虑亚太区的意见,这足见Lattice对于中国及亚太市场的重视程度。 徐宏来同时
[嵌入式]
(6)s3c2440用I2C接口访问EEPROM
在前面阅读理解了I2C的官方协议文档后,就拿s3c2440和EEPROM来验证一下. 本来是想用s3c2440的SDA和SCL管脚复用为GPIO来模拟的,但在没有示波器的情况下搞了一周,怎么都出不来,最后还是放弃了.甚至参考了linux下i2c-algo-bit.c和i2c-gpio.c,依然没调出来.如果有示波器,可能很快就能找到原因,现在完全不知道问题出在哪里.其实想用GPIO模拟I2C的目的很简单,以一种简单而又深刻的方式来理解I2C. 既然这条路暂时没法走,退而求其次,用s3c2440的I2C接口来访问EEPROM,只要按照datasheet的来做,基本上不用考虑时序咯. 从s3c2440和AT24
[单片机]
(6)s3c2440用I2C<font color='red'>接口</font>访问EEPROM
高速快充USB Type-C来袭 统一接口的江湖
  从1996年USB1.0出现至今,已经近20年的历程,而接口速率也从USB1.0发展至USB3.1。每一次版本的革新都带来了更高速的传输速率。USB传输速度从1.0(1.5Mbps)、2.0(480Mbps)、3.0(5Gbps),发展到今天最大传输速度10Gbps,在速度革新的同时,每一代USB接口类型也在随之进化发展,而USB3.1 Type-C接口的出现对于移动设备将会起到很重要的作用,从目前来看,USB3.1中的Type-C最有可能成为未来的连接标准,提供数据传输、外设连接、显示输出、快速充电等一体化的连接方案。   最直观的感受就是在世界瞩目的苹果新品发布会上,其最新发布的MacBook端口进行了改变,整个机子没有任
[嵌入式]
是德科技推出 224G 以太网测试解决方案,助力片上系统制造商验证新一代高速数字接口技术
是德科技推出 224G 以太网测试解决方案,助力片上系统制造商验证新一代高速数字接口技术 新测试解决方案可快速推进 1.6 T收发信机的设计和开发 是德科技公司近日宣布,全新推出的 224G 以太网测试解决方案能够助力片上系统(SoC)制造商验证新一代电气接口技术,加快 1.6 Tb/s收发信机的设计和开发。是德科技提供先进的设计和验证解决方案,旨在加速创新,创造一个安全互联的世界。 5G、人工智能(AI)和物联网应用推动数据流量飞速增长,在网络和数据中心形成前所未见的带宽需求。 支持每通道 224 Gbps 数据连接速度的高速数字接口不仅具有更大带宽,还需要对 1.6 Tb/s高速互连技术提供支持。 是德科技的新一
[测试测量]
关于数Gpbs高速存储器接口设计的分析
  游戏机、数字电视(DTV)和个人电脑等流行的消费类电子产品的功能越来越多,性能也越来越高。这些产品数据处理能力的增强使它们的DRAM存储器接口功能与产品本身的功能紧密联系在一起,以支持更多功能和更高性能。数据速率达数Gbps的存储器接口架构可以帮助这些产品实现所需的功能和性能,但是存储器接口设计必须克服艰巨的挑战才能达到想要的产品性能和质量。   更新一代的DDR3DRAM和XDR DRAM物理层接口(PHY)具有一些特殊的性能,完全可以克服数Gbps存储器接口架构带来的挑战。但是,DDR3 SDRAM和XDR DRAM各自不同的特性使得它们适合不同的应用场合。例如,在DTV应用中,XDR DRAM比DDR3 SDRAM更具有
[嵌入式]
嵌入式家庭网关中SPI接口的软件模拟
摘要:介绍嵌入式家庭网关的基本框架和信息流程,及其CPU S3C4510B的体系结构和内部资源;说明在所选用uClinux操作系统下,添加SPI接口驱动程序的详细过程。 关键词:家庭网关 S3C4510B uClinux SPI 软件模拟 引言 随着信息社会的发展,网络和信息家电越来越地出现在人们的生活中。人们普通要求将家庭内的所有家用电器与Internet连接起来,实现主人在远方用计算机或电话通过Internet对象家庭电设施进行监控。家用电器制造商可以通过网络对其生产的设备进行售后跟踪服务;家用电器是故障时能自动按预设的邮件地址来发送电子邮件进行报警。这就需要有一个“家庭网络中央控制器”。它对外与Internet连接,对
[嵌入式]
基于EPLD技术的PCI总线接口设计
    摘要: 分析了PCI总线接口信号及时序,利用ALTERA公司的EPLD器件EPM7128设计和实现了PCI总线接口。     关键词: PCI总线 接口 EPLD器件 AHDL语言 PCI总线自其问世以来,以其诸多优点,在当今的计算机系统中得到了广泛应用,已经成为计算机设备的标准接口。本文在认真分析PCI总线的接口信号和接口时序的基础上,利用EPLD器件设计实现了PCI总线接口。由于EPLD器件支持在线编程,所以可以根据使用要求将PCI总线接口配置成即插即用和非即插即用两种形式,这种设计方式结构简单、集成度高,具有较高的实用价值。 1 PCI总线概述 局部总线特别是PCI总线的发展,打破了PC
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新安防电子文章
换一换 更多 相关热搜器件

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

站点相关: 视频监控 智能卡 防盗报警 智能管理 处理器 传感器 其他技术 综合资讯 安防论坛

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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