积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 首页 >> 行业应用 >> IC设计 >> IC设计
  相关分类:
两种加密IC卡在同一系统中的共存技术
 
作者:李佰战   来源:电子工程世界    点击数:177   更新时间:2008-2-22
您可以添加到网摘 让更多人关注此文章:

    摘要两种读写时序完全不同的IC卡在同一种系统中共存时,系统必须能够正确识别卡类型,然后才能按对应的读写时序对其读写。文章以AT88SC1604加密卡和SLE4442加密卡为典型样例,通过分析具体时序,给出获取卡型的方法及完整程序。

  关键词AT88SC1604卡 SLE4442卡 卡型识别 程序设计

  引言

  随着国家“金卡工程”的不断发展,各种IC卡应用方案不断涌现。如预付费系统、门禁系统、保险系统等。在某一特定系统中,很可能不同用户对象使用两种不同IC卡。如本文设计的电能预付费系统中,管理员采集数据时,使用的是Atmel公司出品的大容量加密IC卡AT88SC1604;而普通用户使用的是Siemens公司出品的小容量预付费卡SLE4442。这两种卡的读写时序完全不同。这就需要系统在对IC卡读写之前,能够自动识别卡的类型,然后才能按照对应的时序对其读写。下面谈谈AT88SC1604卡与SLE4442卡在系统中的共存技术。

  1IC卡简介

  国际标准化组织针对IC卡在不同领域的不同应用,制定了IC卡应用时所应参考图1IC卡引脚或遵循的标准——ISO7816标准。然而该标准只严格定义了IC卡的物理特征及某些特定时序,预留了某些特性供不同厂家自己扩充。IC卡引脚示意如图1所示。

  AT88SC1604卡为Atmel公司出品的大容量加密IC卡,内部有4个分区(分等分区卡和不等分区卡两种),每个分区均有独立的安全验证逻辑。整张卡还有一个总的验证逻辑。对于等分区卡,内部前三个分区每个分区的EEPROM容量为4096×1位,分区四的容量为3656×1位,EEPROM按位组织。SLE4442卡为Siemens公司出品的小容量加密IC卡,EEPROM容量为256×8位,按字节组织。二者引脚特性如表1所列。

  图2SLE4442卡的命令帧格式AT88SC1604的FUS引脚为编程信号端,PGM为擦、写控制信号端。这是与SLE4442卡在硬件特性上的不同之处。

  表1引脚特性

  引脚号〖〗C1〖〗C2〖〗C3〖〗C4〖〗C5〖〗C6〖〗C7〖〗C8AT88SC1604〖〗VCC〖〗RST〖〗CLK〖〗N.C.〖〗GND〖〗N.C.〖〗I/O〖〗N.C.SLE4442〖〗VCC〖〗RST〖〗CLK〖〗FUS〖〗GND〖〗N.C.〖〗I/O〖〗PGM

  2AT88SC1604卡与SLE4442卡时序分析

  AT88SC1604与SLE4442卡均符合ISO78163规定的同步协议,也就是在时钟的下降沿后读取数据。对于AT88SC1604卡,某个地址读、写时,需要先设定其内部地址计数器到指定地址,然后才能开始对该地址读写。时钟信号的每个下降沿,都会令其内部地址计数器的值自动增1;每次的复位操作,都会令其内部的地址计数器归零。由于其内部地址计数器的值是不可读的,因此在对该卡读、写之前,必须先复位一次,才能确保让其内部的地址计数器到指定的地址。而SLE4442卡则无需繁琐的地址计数器。SLE4442工作在命令/响应模式,每帧命令为3字节。对其内部某个地址读、写时,3字节的指令包含了该地址信息。其命令帧格式如图2所示。其中Control字段为命令关键字,Address字段为地址信息,Data字段为写操作时的待写入数据。这一点与AT88SC1604卡是截然不同的。

  因此,当对插入的IC卡进行读写之前,必须先得到卡类型,才能按照对应的时序对其读写。SLE4442卡的复位与应答(ATR: Answer To Reset)时序如图3所示。

  从图2中可以看出,SLE4442卡在复位后,需要额外的32个脉冲。此时输出的32位数据为卡对复位的应答响应。

  图3SLE4442卡ATR操作AT88SC1604卡的复位操作时序如图4所示。

  图4AT88SC1604卡复位操作AT88SC1604卡在复位后,地址计数器被清零,内部第0单元的数据被送到数据线上。以后每个时钟的下降沿,地址计数器自动增1,同时该地址单元的数据自动图5IC卡接口电路被送到数据线上。按照SLE4442卡的ATR复位方式对卡复位,会令AT88SC1604卡复位的同时,其内部地址计数器的值提高到32。如果接着按SLE4442卡的读时序发送3字节读命令,会将AT88SC1604卡的位地址计数器提高到56(字节地址为7)。此时按照统一的读时序就可以读出此字节地址的值。对于AT88SC1604卡,此地址为发行者区(IZ);对SLE4442卡,此地址为厂商标识区(FZ)。若二者此地址的数据不同,则系统便能正确识别出该卡类型。这两个地址的数据出厂时可以根据需要定制,默认情况下AT88SC1604卡为0xFF,SLE4442卡为0x15。因此,可以按照读SLE4442卡的方式读第7字节地址。根据该地址的数据判断卡的类型。

  3程序设计

  系统IC卡接口电路如图5所示。

  需要注意的一点是,IC卡在上电前,RST引脚必须保持低电平,上电后卡才会被“激活”。否则对于AT88SC1604卡,验证密码的操作将不会通过。

  获取卡类型的程序如下:void ICReset (void)

  {unsigned char i,ATRBuf\[4\];

  IC_DAT=1;_nop_();_nop_();

  /*释放数据口线*/

  IC_RST=1;_nop_();_nop_();

  IC_CLK=1;_nop_();_nop_();

  IC_CLK=0;_nop_();_nop_();

  IC_RST=0;_nop_();_nop_();/*复位操作结束*/

  for(i=0;i<4;i++)

  {ATRBuf\[i\]=ICReadByte ();

  /*对于SLE4442卡,这是ATR操作*/

  }

  }

  unsigned char ICReadByte (void)

  {unsigned char i,RData=0;

  IC_DAT=1;IC_CLK=0;_nop_();_nop_();

  for(i=0;i<8;i++)

  {RData<<=1;

  RData =IC_DAT;

  IC_CLK=1;_nop_();_nop_();IC_CLK=0;

  }

  return (DataInvert(RData));

  /*将读出的数据逆序返回,为实际读取的数据*/

  }

  void ICSendCmd (unsigned char *CmdBuf)

  {unsigned char i,j,ch;

  IC_CLK=1;_nop_();_nop_();

  IC_DAT=0;_nop_();_nop_();

  IC_CLK=0;_nop_();_nop_();

  /*IFD:SLE4442卡的启动条件*/

  for(i=0;i<3;i++)

  {ch=CmdBuf\[i\];

  for(j=0;j<8;j++)

  {IC_DAT=ch&0X01; /*输出数据到IC卡*/

  IC_CLK=1;_nop_();_nop_(); IC_CLK=0;

  ch>>=1;

  }

  }

  IC_DAT=0;_nop_();_nop_();

  IC_CLK=1;_nop_();_nop_();

  IC_DAT=1;_nop_();_nop_();/*停止卡*/

  }

  unsigned charICGetCardType(void)

  {unsigned char CmdBuf\[3\]={0x30,0x07,0xFF},ch,CardType=0;

  ICReset (); /*发送32个脉冲*/

  ICSendCmd (CmdBuf);/*发送24个脉冲*/

  ch=ICReadByte (); /*读取该地址的值*/

  switch(ch) {/*卡型判断*/

  case0x15:CardType=CARD_TP_4442;

  break;/*这是4442卡*/

  case0xFF : CardType=CARD_TP_1604;

  break;/*这是1604卡*/

  default:break;

  }

  return CardType;/*返回卡类型编号*/

  }

  结语

  通过分析两种卡读写时序的异同来编写控制程序,系统可以正确识别所插入IC卡的类型。之后,系统就可以分别按照相应的读写逻辑对其读写,达到了读写时序不同的两种卡在同一种系统中共存的目的。

  参考文献

  1于宏军,赵冬艳. 智能(IC)卡技术全书. 北京:电子工业出版社,1996

  2Atmel. AT88SC1604 Datasheet

  3Siemens. SLE4442 Datasheet

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



相关文章
· 减小50%开关损耗的MOSFET[137]
· Actel新添低至0.99美元的FPGA[247]
热门评论排行
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·VHDL设计中电路简化问题的
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
“科技奥运与计算机技术的应用”研讨会
性能差异化功率器件制造面临多重挑战
探索中国特色IC业发展新模式
研祥专家做客嵌入式技术网,谈科技奥运
搭建多方交流平台 中国嵌入
Compuware Cha
中华嵌入式人才库正式运营新闻发布会
“科技奥运与计算机技术的应用”研讨会
意法半导体(ST)2007年企业责任
Diodes Incorp
 
热门下载 [更多]
 
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
[ ] 实用电源电路集锦
 
论坛新帖 [更多]
 
[原创]NRF2401 NRF...
需要LM324中文资料...
[求助]大家用过lm331的可...
单片机培训班于7月12日在华北...
重磅资料-------65K色...
价格不到3元!国产“双核”51...
[转帖]关于DSP该怎么学的讨...
[转帖]在2407上实现SPW...
以常用集成块制作的声控灯光控制...
触摸式电子开关电路...

 
赞助商 [更多]
 


 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网