IC卡读/写器电路设计及出程序说明

控制/MCU

1878人已加入

描述

IC卡(Integrated Circuit Card)是将一个集成电路芯片嵌在塑料基片中,封装为卡片形式。IC卡最早是在20世纪70年代初提出来的,由法国布尔(BULL)公司于1976年首先创造出来,并将这项技术应用到金融、交通、医疗、身份证及餐饮等多个行业。

我国正在致力于经济信息化建设,其中以“金桥”、“金卡”及“金关”三金工程为代表。“金卡”工程(电子货币工程)是推进我国国民经济信息化的重要工程之一。它以磁卡或IC卡为媒介,利用邮电部和中国人民银行现有的网络资源,并通过“金桥”网构成经济信息系统,为银行、商贸和旅游等部门服务。由于IC卡相对磁卡而言,不但具有防水、防潮、防磁和极高的安全、保密、防伪能力,而且使用寿命长,因而是“金卡”工程的首选产品。

一、IC卡简介

IC卡芯片具有写入数据的存储数据的能力。根据嵌入卡中的集成电路的不同,可以分成以下三类。

●存储器卡:卡中的集成电路为E2 PROM;

●逻辑加密卡:卡中的集成电路具有加密逻辑和Ez PROM;

●CPU卡:卡中r集成电路包括中央处理器CPU、E2 PROM、随机存储器RAM以及固

化在只读存储器ROM中的片内操作系统COS(Chip Operating System)。

IC卡按与外界数据传递的形式分为接触型IC卡和非接触型IC卡。当前广泛使用的是接触型IC卡。

由于IC卡类型不同,因而有不同的读/写方式及硬件要求。我们在开发IC卡读/写器时,使用的是美国ATMEL公司生产的AT24COIA存储器型IC卡。AT24COIA的容量为1K位(128×8),擦写次数为100 000周期,数据存储期为100年。这种IC卡使用的模块符合ISO/IEC7816协议,其触点的安排见表1- 38和图1- 123。

IC卡

二、硬件电路设计

本节所设计的IC卡读/写器的硬件框图见图1- 124。

IC卡

IC卡读/写器电路是以8031单片机为主,辅以2764、6264、8279等芯片组成的。整个电路分为三部分:基本单片机系统、显示和键盘电路及IC卡接口电路。

基本单片机系统电路由8031单片机、8KROM2764、8K RAM6264和用于地址锁存的74LS373等芯片组成;显示和键盘电路由8279芯片、LED显示器和驱动芯片组成。采用8279芯片可使编程简单,节省8031的硬件资源。

IC卡接口电路由双向模拟开关和上拉电阻组成。由于IC卡有其独特的电气特性,所设计的硬件电路必须符合其电性能要求。

根据IC卡的电气特性设计的硬件电路见图1- 125。

IC卡

由于IC卡为存储器芯片,若接口硬件设计不当,轻则缩短IC卡使用寿命,重则会烧坏IC卡;而合理的设计会对卡有保护作用,因而增强IC卡的读/写可靠性和延长使用寿命。本节所设计的IC卡读/写器,从各方面采取了不同的措施,尽可能避免了对卡的损伤。

在IC卡的使用过程中,由于接触式IC卡是由人工插拔来完成1次读/写的,而在插拔过程中,IC卡处于不稳定接触状态。如果在这种情况下IC卡的接口设备带电,则无疑会对卡造成损伤。因此,在插拔过程中,IC卡接口设备绝不允许带电。

在IC卡的卡座上一般都有1个状态开关,卡座上有无卡可由开关信号反映出来。因此通过判断此开关信号可以知道卡的有无,从而控制lC卡接口设备的上、下电。判断此开关信号既可通过查询方式,也可通过中断方式。但查询方式的响应速度慢,尤其对于拔卡动作。由于人工拔卡带有很大的随机性,若在读/写过程中突然拔卡,则会导致读/写失败;又由于不能及时去掉接口设备电源,容易损坏lC卡。

因此,在设计中采用中断方式。将开关信号分别通过“与”、“非”门,经过整形后加到8031的2个外部中断INTO和INT1上。这样,只要插拔IC卡通过中断方式及时响应,切断或接通接口设备电源,就可保护IC卡。

但是,在插拔过程中,仅仅切断电源还是不能完全避免对卡的损害。为更进一步提高对卡的保护,在设计中将所有与卡直接接触的信号线和电源线都通过CD4066双向模拟开关与IC卡连接起来,并由图1 - 125中的Pl.1来控制CD4066的导通,实现信号和电源的通断。这样,在插拔卡时,利用中断及时响应。在没有卡时,迅速切断与卡有直接连接的信号线和电源线,在硬件上确保了对卡的保护。

如果IC卡和单片机主机共用同一组电源,它们之间就会产生干扰,尤其是主机对IC卡的干扰。为了避免这种互扰,在设计上采用双电源独立供电法,即IC卡单独由LM317高稳定性电源供电,而主机由7805供电。这样,两组电源分别向1C卡和主机供电,减弱甚至消除了IC卡与主机之间的电源干扰,提高了IC卡的读/写可靠性,保护了IC卡。

三、软件设计

下面对AT 24COIA的读/写时序进行分析,并给出程序说明。写字节时序见图l- 126(a)。

通过时序图可以看出,要写卡必须由开始状态启动,而开始状态一定是在时钟输入SCL的高有效期内;在I/O数据线SDA上有1个由低到高的跳变;紧接着送人器件地址,使卡进行读/写操作。对AT24COIA卡,器件地址高4位一定为1010,最低位为0写卡,为1读卡。信息高位先送出,见图1 - 126(b)。

IC卡

I/O数据线SDA上的状态变化一定要发生在时钟输入SCL的低有效期间。在时钟的上升沿才把数据送入E2 PROM,而在读卡上数据时,在时钟SCL的下降沿将EZ PROM数据输出,即SDA数据变化也发生在SCL的低有效期。因而一定要在SCL高有效期内才能读取卡的数据。下面给出8031编程实例。

IC卡

综上所述,写卡时,在时钟SCL低有效期向I/O数据线SDA送人数据;在时钟SCL上升沿将数据写入IC卡。读卡时,在时钟SCL下降沿,卡中数据送入I/O数据线SDA,在相应的时钟SCL高有效期读取这一数据。

IC卡

写一字节时,由于是串行传送,只能按位进行,且各位必须保证连续性,因此时钟信号SCL频率的选择既要满足卡的动态特性,又要与程序指令执行时间相配合。

以上原则同样适用于读字节程序。

该读/写器已成功应用于IC卡全自动粮食收购系统,读/写稳定可靠,应用效果良好。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分