来源:网络 作者:李铁军,何永洪 发布时间:2012-07-10 08:53:42 字体:[大 中 小]
摘 要:介绍了以单片机AT89C51为核心的IC卡系统的设计。设计了单片机控制IC卡数据读写的软/硬件、LCD显示以及与PC机之间的串口通信。
IC卡(IntegratedCircuitCard)是将一个集成电路芯片镶在塑料基片中,封装为卡片形式,具有读写数据和存储数据的能力。接触式IC卡是现代智能卡中的一种,它是继条码卡、磁卡等之后出现的一种高性能标识卡,是微电子、计算机及电子信息等高新技术综合发展的产物。IC卡比磁卡存储容量大,可靠性和安全性高,在应用上除了覆盖磁卡的全部应用范围以外,还提供了许多磁卡所不具备的应用特性。正是这些特性,使IC卡在脱机业务处理和联网数据一致性等方面表现出前所未有的优势。现已广泛应用在金融、交通、通信、保安、娱乐等诸多领域。
1 AT24C08卡
存储卡是IC卡的一种,它是一种用可电擦写的可编程内存(E2PROM)为核心的IC卡,能够多次重复使用。AT24C08是ATMEL公司出品的I2C接口、高集成度串行E2PROM内存IC卡。AT24C08具有以下特点:与400kHzI2C总线兼容、低功耗CMOS技术、1000000次编程/擦除周期及可保存数据100年以上。
AT24C08芯片的触点位置与功能符合ISO7816-2标准,触点位置如图1所示,触点功能如表1所示。
2 电路设计与读写控制
2.1 接口电路的设计
本设计采用的单片机是AT89C51[1]。AT24C08卡座与AT89C51的电路连接如图2所示[2]。SLC为串行时钟,在时钟的上升沿,数据写入E2PROM;在时钟的下降沿,数据从E2PROM被读出。SDA为双向数据端口,是一个漏极开路的引脚,满足“线与”的条件,在使用过程中需要加上拉电阻。SW1、SW2为IC卡卡座的1对常开触点,SW1与Vcc连接,SW2与AT89C51的引脚P1.0连接,平时P1.0通过1个电阻连接到地,当有卡插入时,SW1和SW2短接,Vcc将P1.0上拉到高电平,通过对P1.0上的电平查询就可以知道是否有卡插入。
2.2 AT24C08内存读写操作
AT24C08的数据接口完全符合I2C的标准。I2C总线是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。I2C总线协议规定:只有在总线空闲时才允许启动数据传送。在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态,不允许有跳变;且数据线的任何电平变化都将被看作总线的启动或停止信号。I2C总线在传送数据过程中共有以下3种类型信号:
(1)起始信号:当SCL处于高电平时,SDA从高到低地跳变作为I2C总线的启动信号,启动状态应该在操作命令(读/写)之前进行建立。
(2)停止信号:当SCL处于高电平时,SDA从低到高的跳变作为I2C总线的停止信号,表示一种操作的结束,马上即将结束所有的相关通信。
(3)应答信号:AT24C08在接收到8bit数据后,在第9个脉冲向AT89C51发出1个低电平,表示已收到数据。如图3(a)所示。
通过时序图可看出,要写卡必须由起始信号启动,紧接着送入器件地址,使卡进行读/写操作。对AT24C08卡,器件地址高4位一定为1010,最低位作为读写控制位,“0”表示对IC卡进行写操作,“1”表示对IC卡进行读操作。信息高位先送出,如图3(b)所示。
推荐文章
论坛热帖